<?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-7451925207957448617</id><updated>2011-08-31T06:02:08.961-07:00</updated><category term='hibernate'/><category term='dry'/><category term='jsf'/><category term='google maps'/><category term='java'/><category term='seam'/><category term='rhds'/><category term='engineering'/><category term='ajax'/><category term='howto'/><category term='programming'/><category term='tutorial'/><category term='best practices'/><category term='iso'/><category term='dilbert'/><category term='blewspace'/><category term='blog'/><category term='RichFaces'/><category term='book'/><category term='google chrome'/><category term='netbeans'/><category term='chrome'/><category term='job'/><category term='developers'/><category term='geolocation'/><category term='software'/><category term='software engineering'/><category term='red hat developer studio'/><category term='ajax4jsf'/><category term='mashup'/><category term='maps'/><category term='j2ee'/><category term='review'/><category term='google'/><title type='text'>Ideas + Software Engineering</title><subtitle type='html'>0.00 version of a blog on &lt;strong&gt;development&lt;/strong&gt;, &lt;strong&gt;Software Engineering&lt;/strong&gt; and &lt;strong&gt;ITs&lt;/strong&gt;. We'll discuss on &lt;strong&gt;methodologies&lt;/strong&gt; (Scrum...), &lt;strong&gt;tools&lt;/strong&gt; (Eclipse...), &lt;strong&gt;technologies&lt;/strong&gt; (J2EE...), &lt;strong&gt;frameworks&lt;/strong&gt; (JSF...), &lt;strong&gt;Ajax&lt;/strong&gt; (RichFaces, Ajax4JSF...), &lt;strong&gt;best practices...&lt;/strong&gt; (DRY...)...

As you can see English is not my native language, every correction will be welcome :)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ideasse.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ideasse.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Nacho</name><uri>http://www.blogger.com/profile/14619363914899206503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_ThiAJt9Eftg/SNktLKE5qRI/AAAAAAAACjE/mFgHhx3mxqk/S220/Encuadre.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7451925207957448617.post-11774277601831429</id><published>2009-12-06T02:45:00.001-08:00</published><updated>2009-12-06T03:39:04.911-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='review'/><category scheme='http://www.blogger.com/atom/ns#' term='RichFaces'/><category scheme='http://www.blogger.com/atom/ns#' term='book'/><title type='text'>Book review: JBoss RichFaces 3.3</title><content type='html'>Several weeks ago Packt Publishing marketing department came into contact with me in order to review a book they've just delivered: &lt;span style="font-weight: bold;"&gt;JBoss RichFaces 3.3&lt;/span&gt;. As you can see if you read my blogs, I've been using that technology for several years now and I was obviously interested on the book, so I accepted their invitation.&lt;br /&gt;The company I work for runs several projects involving RichFaces now. We like using bleeding edge technology, we are JBoss partners, early adopters in general. For the last weeks me and my team have been using the book as reference for our work, and I'll summarize here our conclusions.&lt;br /&gt;First of all I must admit I don't use to like technical books, so I'll be a hard reviewer. Don't get me wrong, there're many great ones out there ("In Action" series, for example), but it's difficult to catch my eye. Every open source project I'm user of is well documented. Seam, RichFaces, jBPM... Almost every JBoss project have great documentation: good reference manuals, javadoc, and even better source code. I'm not interested on undocumented software. For example, I quit Dojo framework because of that. I love &lt;span style="font-style: italic;"&gt;deep&lt;/span&gt;, classic books, like &lt;span style="font-style: italic;"&gt;Peopleware&lt;/span&gt; or  &lt;span style="font-style: italic;"&gt;The Mythical Man Month&lt;/span&gt;, books that would be read for decades. Technical books, on the contrary, have shorter lifetimes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;The book&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The book guides the reader into building a new project from the very beginning (environment, deployment) to the end (skinning and so on). Book structure is like this:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Introduction and environment configuration.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Application development.&lt;/li&gt;&lt;li&gt;Advanced techniques: skinning, components...&lt;/li&gt;&lt;li&gt;Tag reference.&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;The good&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When you begin programming JSF and RichFaces things can turn complicated. There's not "jsf-blank.war", and IDE support isn't always that useful. This book focuses on teaching you on building up an application from the beginning, and I think it succeds on it. You can think on this book like a &lt;span style="font-weight: bold;"&gt;detailed tutorial&lt;/span&gt; which will teach you on everything you need to begin working with RichFaces.&lt;br /&gt;Java Enterprise Edition developing can be cumbersome: it takes a while to begin, and you need many components to work together until you get the app running. The book helps you on configuring RichFaces several ways: on its own, with Seam, with Facelets... It's quite complete.&lt;br /&gt;It covers almost everything of the framework. If you follow it you'll use most components and features. Even more valuable, you'll learn to use the right tool the right time.&lt;br /&gt;This is probably the book  I'd have needed two years ago when I began using RichFaces. Blogs and online tutorials are not this comprehensive.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;The bad&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is a learning book. It's aimed on people who wants to learn to use RichFaces, and it's good on it. But it's not that useful if you are already using it, or if reference documentation is good enough for you.&lt;br /&gt;Sometimes it looks like a reduced reference version. For example, I'm using CDK (Component Development Kit), and its chapter is smaller and less detailed than the original reference. Sometimes this detail pruning leads to errors (version numbers is not something you should ignore when you're working with Java).&lt;br /&gt;The appendix, the component reference, is useless. It's just a list of available components with an small paragraph. It shouldn't have been included.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;The ugly&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;IMHO RichFaces is the best Ajax JSF library right now. 3.3.x branch is stable, mature and full featured. Nevertheless, JSF 2.0 is almost with us, and it will lead to RichFaces 4. It will be a big leap forward for standarization and ease of use. If you learn RichFaces 3.3 now you'll find 100% of it valuable for the following version, but the book loses a little bit of its value as reference.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;In sort&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In sort, if you want to learn RichFaces right now (wise choice) and you want to be guided through it, this is the book for you. If you're already a RichFaces developer, probably not.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can download a sample chapter: &lt;a href="http://www.packtpub.com/files/6880-jboss-richfaces-3-3-sample-chapter-8-skin-customization.pdf"&gt;RichFaces Skin Customization&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;PD: as you will have probably realized, I'm not a native English speaker. Please let me know every language mistake I've made ;).&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7451925207957448617-11774277601831429?l=ideasse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/11774277601831429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/11774277601831429'/><link rel='alternate' type='text/html' href='http://ideasse.blogspot.com/2009/12/book-review-jboss-richfaces-33.html' title='Book review: JBoss RichFaces 3.3'/><author><name>Nacho</name><uri>http://www.blogger.com/profile/14619363914899206503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_ThiAJt9Eftg/SNktLKE5qRI/AAAAAAAACjE/mFgHhx3mxqk/S220/Encuadre.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7451925207957448617.post-8623168229720986259</id><published>2008-10-16T08:36:00.000-07:00</published><updated>2009-01-04T11:53:32.470-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><title type='text'>Designing an arquitecture (I/IV): current situation study</title><content type='html'>First of all, please feel free of correct me not only technically but also linguistically, this is part of my English training :) If you can read Spanish you might prefer &lt;a href="http://iiso.blogspot.com/2008/09/diseando-una-arquitectura-iiv-estudio.html"&gt;the Spanish version&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="dropcaps"&gt;O&lt;/span&gt;ne year and a half ago I begun what has been my most complex, important and interesting professional experience: &lt;span style="font-weight: bold;"&gt;improving software development technique at an organization&lt;/span&gt;. This is a good time to look backwards.&lt;div&gt;I'll do it within four chapters:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;I&lt;/span&gt;: &lt;span style="font-weight: bold;"&gt;current&lt;/span&gt; (one year an a half ago) &lt;span style="font-weight: bold;"&gt;situation study&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;II&lt;/span&gt;: &lt;span style="font-weight: bold;"&gt;altertatives selection&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;III&lt;/span&gt;: &lt;span style="font-weight: bold;"&gt;solution deployment&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;IV&lt;/span&gt;: &lt;span style="font-weight: bold;"&gt;conclusions&lt;/span&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:130%;"&gt;0. Precedents&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I had been working with &lt;span style="font-weight: bold;"&gt;J2EE technologies&lt;/span&gt;, both profesionally and at home. I had previously done some things with PHP, and I liked to be up-to-date at &lt;span style="font-weight: bold;"&gt;industry innovations&lt;/span&gt; (RoR, Python...), altough I couldn't devote time in depth. Everything I did was, more or less, for decision taking management applications (I can't talk on real-time systems or high technology electronics, sorry).&lt;br /&gt;From this experience I build up some &lt;span style="font-weight: bold;"&gt;axioms&lt;/span&gt; that I use to suppose as certain (altough when you're in computing you know the only right answer is 'it depends'):&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Layer separation is a Good Thing&lt;/span&gt;:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;There must be a &lt;span style="font-style: italic;"&gt;dumb&lt;/span&gt; data access layer, decisionless, just to communicate with the database. It should essentially have just 4 CRUD methods.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The bussiness rules layer, above data, under presentation, is where you code specifications rules, from application data flow to data control ("who can see/edit what when").&lt;/li&gt;&lt;li&gt;Dependencies goes downwards, data, upwards.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Don't Repeat Yourself &lt;/span&gt;(DRY).&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Corolary: don't cut'n'paste.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;If you can choose, PHP, RoR or similar for small applications. For complex applications, J2EE&lt;/span&gt;.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Please don't begin a flamewar :) Yes, I know you can do far better things with other languages. Nevertheless, with Java you have great tools, great documentation, great libraries... and it's easier to control if you have to manage many people. Yes, of course, 4 great Python programmers will do a far better app that 10 mediocre Java ones, but this wasn't my case, you know what I mean ;).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Writing Java snippets at JSPs is bad.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Ajax is A Good Thing&lt;/span&gt;. If you do it by hand it might be good, but it's much better if a library provides you it..&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Corolary: &lt;span style="font-style: italic;"&gt;ajaxifying data is (probably) more efficient (from a networking point of view), ajaxifying interface is (probably) more productive (from a project manager point of view)&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:130%;"&gt;I. Current Situation Study&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;It was late 2oo6. Struts (Action, 1) begun feeling old, and 'Ajax' was the term you should say at an interview if you wanted to catch the attention. JSF already had its bulletproof bad health, just like now. A myriad of web frameworks (Spring Web, Wicket, Web Works, Tapestry...) waited its actual death to begin bragging. Microsoft, after his war against Sun, had published .NET, and every manager question was J2EE oe .NET?. Dojo was The Javascript Library, with his "no documentation at all" (or "document just a little, badly...) policy. If you wanted to keep a geek conversation, you had to know how cool RoR was, or that Google had broken every convention with GWT.&lt;br /&gt;&lt;br /&gt;When I got to the new company I found a situation... well... uncommon. The whole World tried optimizing productivity and improving product quality with Java libraries, but they were developing with plain old servlets plus JSP, with embedded SQL... We belonged to another company (lets call it 'the supercompany') who imposed some other problems:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Old IDE:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Bad CVS client. It was no problem for the &lt;span style="font-style: italic;"&gt;supercompany&lt;/span&gt; because they held the code at shared folders (sad but true), but it was for us, forcing us to use an external application.&lt;/li&gt;&lt;li&gt;Development on a different server, not the same as the production one.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Propietary server, badly documented.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In-house developed framework:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Classes generating HTML (forcing us to do things like new DropDown() at jsps).&lt;/li&gt;&lt;li&gt;One layer design, even with SQL at JSPs.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Wrappers for existing classes (we couldn't even access the actual Connection object).&lt;/li&gt;&lt;li&gt;Unavailability of source code.&lt;/li&gt;&lt;li&gt;Outdated documentation.&lt;/li&gt;&lt;li&gt;No standard library, not even Log4J or any other logging system.&lt;/li&gt;&lt;li&gt;Undocumented, hidden dependency on session variables.&lt;/li&gt;&lt;li&gt;Internet Explorer only.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;This restrictions had led to &lt;span style="font-weight: bold;"&gt;many antipatterns&lt;/span&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Tons of repeated code.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Javascript only form validation.&lt;/li&gt;&lt;/ul&gt;After doing a first application "the old way" I was given a chance of &lt;span style="font-weight: bold;"&gt;doing a brand new design, a new arquitecture, a new framework&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7451925207957448617-8623168229720986259?l=ideasse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/8623168229720986259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/8623168229720986259'/><link rel='alternate' type='text/html' href='http://ideasse.blogspot.com/2008/10/designing-arquitecture-iiv-current.html' title='Designing an arquitecture (I/IV): current situation study'/><author><name>Nacho</name><uri>http://www.blogger.com/profile/14619363914899206503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_ThiAJt9Eftg/SNktLKE5qRI/AAAAAAAACjE/mFgHhx3mxqk/S220/Encuadre.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7451925207957448617.post-1030106640590441251</id><published>2008-09-02T12:10:00.000-07:00</published><updated>2008-09-02T12:17:36.523-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='google chrome'/><title type='text'>Chrome first impressions</title><content type='html'>First 5-minute impressions:&lt;div&gt;&lt;ol&gt;&lt;li&gt;It has downloaded and installed seamless and quick, importing Firefox configuration.&lt;/li&gt;&lt;li&gt;I have three tabs (start one, Chrome presentation and this blogger one), and 4 processes at the task manager. Total, 95MB. Firefox, with the same tabs, 60MB. They've already said that one tab - one process model would have some startup overcharge. I don't mind if it cleans memory as good as it should.&lt;/li&gt;&lt;li&gt;Vista windows look... but optimized. No right, left or bottom border, and tabs are placed on the title bar, smaller than XP standard ones. Clean UI.&lt;/li&gt;&lt;li&gt;Quick start page displays also last searches.&lt;/li&gt;&lt;li&gt;Flickr Organizr works REALLY fast, and it doesn't make browser stop at all... Javascript is the key and reason of being of Chrome, that's sure...&lt;/li&gt;&lt;li&gt;Moving through tabs isn't fast, it's instantaneous.&lt;/li&gt;&lt;li&gt;Flash works from the very beginning.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;Stay tuned :)&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7451925207957448617-1030106640590441251?l=ideasse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/1030106640590441251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/1030106640590441251'/><link rel='alternate' type='text/html' href='http://ideasse.blogspot.com/2008/09/chrome-first-impressions.html' title='Chrome first impressions'/><author><name>Nacho</name><uri>http://www.blogger.com/profile/14619363914899206503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_ThiAJt9Eftg/SNktLKE5qRI/AAAAAAAACjE/mFgHhx3mxqk/S220/Encuadre.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7451925207957448617.post-1363311068650750819</id><published>2008-09-02T11:30:00.000-07:00</published><updated>2008-09-02T11:57:19.496-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='google chrome'/><title type='text'>Google Chrome: web operative system</title><content type='html'>&lt;span class="dropcaps"&gt;Y&lt;/span&gt;ou all know a browser has almost nothing in common with the traditional operative system concept,  but if applications keep on their current trend of being at web &lt;span style="font-weight: bold;"&gt;the browser will be our application runtime environment&lt;/span&gt;.&lt;br /&gt;This is why Google (is going to) publish Chrome, and they say it in a subtle way at page 4 of &lt;span style="text-decoration: underline;"&gt;the &lt;/span&gt;&lt;a href="http://www.google.com/googlebooks/chrome/index.html"&gt;comic&lt;/a&gt;: "we're applying the same kind of process isolation you find in modern operative systems".&lt;br /&gt;It also shows some other interesting things:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;When they build the core a bot test it against "millions of pages". Can you imagine &lt;span style="font-weight: bold;"&gt;testing against the n most used pages?&lt;/span&gt;&lt;/li&gt;&lt;li&gt;They've built a &lt;span style="font-weight: bold;"&gt;Javascript virtual machine which is a JIT compilar which produces machine code&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;'&lt;span style="font-weight: bold;"&gt;Omnibox&lt;/span&gt;': the knowledge they've gained with its search box is applied to the URL bar address. Seems terribly simple and useful.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Silent mode&lt;/span&gt; for being traceless.&lt;/li&gt;&lt;li&gt;They critizise Vista &lt;span style="font-weight: bold;"&gt;security model&lt;/span&gt;, which allows reading upwards at the security stack, in spite of having sensible information at the middle of it. Chrome, isn't based at levels but at a sandbox where code can only retrieve information user explicitally gives. &lt;span style="font-style: italic;"&gt;They compare Chrome again against a OS instead of a browser&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Plugin isolation at a different process&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Blacklisting.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Development improvements will be integrated at Google Gears&lt;/span&gt;. This way other browsers can still benefit Google improvements, and applications can be cross-browser compilant. But, if Chrome has a much bigger throughput, Gears will crawl instead of running on them (IMHO)...&lt;/li&gt;&lt;li&gt;At page 36 they state &lt;span style="font-weight: bold;"&gt;they believe Open Source, not standards &lt;/span&gt;(at least not at their 'unifing' function): "Open standards are one way to help all browsers get better. The team has also done some interesting things with speed, stability and the ui, like the new tab page. Some of them might become standards, some might not. But since it's open source other browser developers cant take what they want out of it".&lt;/li&gt;&lt;ul&gt;&lt;li&gt;IMHO tis is true... in part. If you "unstandar"what browsers do, pages won't behave the same way. Nevertheless, also IMHO, this is the right way of thinking. Standards are slow and burocracy limited.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;Let's see what it has to offer... Reading the comic has created a great envy on me. It must be great working at Google pushing the limits of the web instead of struggling with its limitations!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7451925207957448617-1363311068650750819?l=ideasse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/1363311068650750819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/1363311068650750819'/><link rel='alternate' type='text/html' href='http://ideasse.blogspot.com/2008/09/google-chrome-web-operative-system.html' title='Google Chrome: web operative system'/><author><name>Nacho</name><uri>http://www.blogger.com/profile/14619363914899206503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_ThiAJt9Eftg/SNktLKE5qRI/AAAAAAAACjE/mFgHhx3mxqk/S220/Encuadre.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7451925207957448617.post-5195470751443422048</id><published>2007-12-16T05:12:00.000-08:00</published><updated>2007-12-16T06:10:11.478-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='maps'/><category scheme='http://www.blogger.com/atom/ns#' term='blewspace'/><category scheme='http://www.blogger.com/atom/ns#' term='geolocation'/><category scheme='http://www.blogger.com/atom/ns#' term='mashup'/><category scheme='http://www.blogger.com/atom/ns#' term='google maps'/><title type='text'>BlewSpace: blog geolocation (put your blog in the map!)</title><content type='html'>&lt;span class="dropcaps"&gt;I&lt;/span&gt;s geolocation interesting information? Have you ever wanted to &lt;a href="http://www.blewspace.com/"&gt;geolocate a blog&lt;/a&gt;? &lt;a href="http://www.blewspace.com/"&gt;BlewSpace&lt;/a&gt; is a new Google Maps mashup which aims geolocating every blog out there. It might not be considered geolocation but geo&lt;span style="font-style: italic;"&gt;registration&lt;/span&gt;, but in the end there's a map full  of blogs so you can place yours. You can register your blogs for people to locate it. You can also categorize it, and even ping it (so I can't register other people blogs and say it's about crap).&lt;br /&gt;It's still in early beta (2.0 fashion ;) ), and there's an interesting wishlist you can increase.&lt;br /&gt;From a commercial point of view I think &lt;a href="http://www.blewspace.com/"&gt;BlewSpace&lt;/a&gt; has some interesting potential, specially for bloggers meeting arrangement. When &lt;a href="http://www.blewspace.com/"&gt;BlewSpace&lt;/a&gt; activates spatial querying you could list the blogs at your city, for example.&lt;br /&gt;Geolocation makes Web 2.0 communities more tangible. They're not only groups of virtual avatars, but actual people, some of them living next to you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7451925207957448617-5195470751443422048?l=ideasse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/5195470751443422048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/5195470751443422048'/><link rel='alternate' type='text/html' href='http://ideasse.blogspot.com/2007/12/blewspace-blog-geolocation-put-your.html' title='BlewSpace: blog geolocation (put your blog in the map!)'/><author><name>Nacho</name><uri>http://www.blogger.com/profile/14619363914899206503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_ThiAJt9Eftg/SNktLKE5qRI/AAAAAAAACjE/mFgHhx3mxqk/S220/Encuadre.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7451925207957448617.post-6763133906219087894</id><published>2007-09-11T09:23:00.000-07:00</published><updated>2007-09-11T09:38:42.617-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ajax4jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='RichFaces'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>Richfaces 3.1 RC6</title><content type='html'>&lt;span class="dropcaps"&gt;T&lt;/span&gt;oday, &lt;a href="http://jboss.com/index.html?module=bb&amp;op=viewtopic&amp;amp;t=118305"&gt;Richfaces 3.1&lt;/a&gt; RC6 has been released. It's not the final, stable version (which was promised for 9/6), but at least you can finally visit &lt;a href="http://livedemo.exadel.com/richfaces-demo-3.1.0-rc6/"&gt;Richfaces 3.1 Demos&lt;/a&gt;. This is a long awaited version for all of us who use this library because it finally includes a must-have: &lt;a href="http://livedemo.exadel.com/richfaces-demo-3.1.0-rc6/richfaces/calendar.jsf"&gt;calendar component&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;For those who doesn't know Richfaces, I'll just say it's an Ajax-powered JSF component library, just like ICEFaces. I tried both some months, and I chose Richfaces.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Main new features&lt;/span&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;rich:calendar - until now, a reason to use ICEFaces instead of Ajax4JSF + RichFaces&lt;br /&gt;&lt;/li&gt;&lt;li&gt;rich:message and rich:messages, replacements for h:message and h:messages.&lt;/li&gt;&lt;li&gt;rich:tooltip&lt;/li&gt;&lt;li&gt;rich:scrollableDataTable&lt;/li&gt;&lt;/ul&gt;Last but not least, &lt;span style="font-weight: bold;"&gt;Ajax4JSF and Richfaces have merged&lt;/span&gt;. This is good for users (having a library is easier and more comfortable than having two), but it's important from a marketing point of view: they can now say Richfaces has 50+ components, so they can compete against ICEFaces in a numerical fashion. You know, I realize this is just marketing, but this kind of comparisons are important for newcomers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7451925207957448617-6763133906219087894?l=ideasse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/6763133906219087894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/6763133906219087894'/><link rel='alternate' type='text/html' href='http://ideasse.blogspot.com/2007/09/richfaces-31-rc6.html' title='Richfaces 3.1 RC6'/><author><name>Nacho</name><uri>http://www.blogger.com/profile/14619363914899206503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_ThiAJt9Eftg/SNktLKE5qRI/AAAAAAAACjE/mFgHhx3mxqk/S220/Encuadre.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7451925207957448617.post-524648816791302229</id><published>2007-08-22T00:26:00.000-07:00</published><updated>2008-12-10T00:16:10.120-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax4jsf'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><category scheme='http://www.blogger.com/atom/ns#' term='j2ee'/><category scheme='http://www.blogger.com/atom/ns#' term='RichFaces'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>First RichFaces application on Netbeans 6</title><content type='html'>&lt;span class="dropcaps"&gt;A&lt;/span&gt;s part of almost sadomasochistic effort vocational software developer have, I'm doing a brief introduction to &lt;span style="font-weight: bold;"&gt;developing with RichFaces&lt;/span&gt;, from new IDE installation until minimal working application. The aim is not doing a tutorial, neither howto nor step by step (if you're reading this I suppose you don't want anybody to tell you to press 'next').&lt;br /&gt;&lt;br /&gt;I've recently &lt;a href="http://ideasse.blogspot.com/2007/08/red-hat-developer-studio.html"&gt;installed Red Hat Developer Studio&lt;/a&gt; beta 1, but I think it's still interesting using Richfaces on other IDEs so you don't have to switch between environments.&lt;br /&gt;&lt;br /&gt;1.- Download last version of &lt;a href="http://www.netbeans.org/servlets/NewsItemView?newsItemID=1073"&gt;NetBeans 6 M10&lt;/a&gt;.&lt;br /&gt;2.- Download last builds of &lt;a href="http://maven.exadel.com/org/richfaces/richfaces/3.0.2-SNAPSHOT/"&gt;RichFaces&lt;/a&gt; and &lt;a href="http://maven.exadel.com/org/ajax4jsf/ajax4jsf/1.1.2-SNAPSHOT/"&gt;Ajax4JSF&lt;/a&gt;, including sources (it contains javadoc and allows you to debug). They're &lt;a href="http://jboss.com/index.html?module=bb&amp;op=viewtopic&amp;amp;t=112221"&gt;merging soon in one only project&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;**I'm using unstable versions because I'm at home, don't tell your boss to do this if you don't want to be fired ;).&lt;br /&gt;&lt;br /&gt;3.- During the 180MB download you'd take a look at &lt;a href="http://labs.jboss.com/file-access/default/members/jbossrichfaces/freezone/docs/devguide/en/html_single/index.html#SettingAWebApplication"&gt;Richfaces&lt;/a&gt; and &lt;a href="http://labs.jboss.com/jbossajax4jsf/docs/devguide/en/html/index.html"&gt;Ajax4JSF developer guides&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;4.- Launch installer. Just some notes during the installation:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Tell installer to configure Tomcat 6.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Change default passwords and ports and write them down.&lt;/li&gt;&lt;/ul&gt;5.- Open Netbeans and create a new Web project running on recently installed SJSAS 9. Activate JSF.&lt;br /&gt;6.- Press F6 for running the server, deploying and opening a browser. It should show 'JavaServer Faces' inside an html H1 element.&lt;br /&gt;&lt;br /&gt;7.- Untar RichFaces, which contains both Ajax4JSF and RichFaces.&lt;br /&gt;8.- Create a new library with those jars and add it to the project: project properties --&gt; libraries --&gt; add --&gt; manage --&gt; new library. Add both binary jars and sources.&lt;br /&gt;9.- Apply the &lt;a href="http://labs.jboss.com/file-access/default/members/jbossrichfaces/freezone/docs/devguide/en/html_single/index.html#SettingAWebApplication"&gt;needed changes for a Richfaces application&lt;/a&gt;: add web.xml configuration and richfaces taglib.&lt;br /&gt;10.- Restart application server. During the boot you could say hello at &lt;a href="http://jboss.com/?f=261&amp;module=bb&amp;amp;op=viewforum"&gt;Richfaces users forum&lt;/a&gt;. You're going to use it very much, and Richfaces developers have been infinitely patient with me :). I had never seen such a good support in an OpenSource project.&lt;br /&gt;&lt;br /&gt;11.- Ooops, first error! NoClassDefFound because of absence of Commons Logging, del que depende. You must add the following libraries:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;commons-logging (bundled with Netbeansincluída con NetBeans)&lt;/li&gt;&lt;li&gt;commons-digester (&lt;a href="http://jakarta.apache.org/commons/digester/"&gt;download&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;commons-collections (&lt;a href="http://jakarta.apache.org/commons/collections/"&gt;download&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;commons-beanutils (&lt;a href="http://jakarta.apache.org/commons/beanutils/"&gt;download&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;12.- Restart the server and ¡voila!&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ThiAJt9Eftg/RoqObwdARhI/AAAAAAAAABI/mqWOvyHCgsU/s1600-h/jsf-richfaces.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_ThiAJt9Eftg/RoqObwdARhI/AAAAAAAAABI/mqWOvyHCgsU/s400/jsf-richfaces.png" alt="" id="BLOGGER_PHOTO_ID_5083031736955192850" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Nothing spectacular, but it'a a beginning.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7451925207957448617-524648816791302229?l=ideasse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/524648816791302229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/524648816791302229'/><link rel='alternate' type='text/html' href='http://ideasse.blogspot.com/2007/08/first-richfaces-application-on-netbeans.html' title='First RichFaces application on Netbeans 6'/><author><name>Nacho</name><uri>http://www.blogger.com/profile/14619363914899206503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_ThiAJt9Eftg/SNktLKE5qRI/AAAAAAAACjE/mFgHhx3mxqk/S220/Encuadre.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ThiAJt9Eftg/RoqObwdARhI/AAAAAAAAABI/mqWOvyHCgsU/s72-c/jsf-richfaces.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7451925207957448617.post-7333807049619957456</id><published>2007-08-14T10:34:00.000-07:00</published><updated>2007-08-15T00:54:38.731-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rhds'/><category scheme='http://www.blogger.com/atom/ns#' term='hibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='red hat developer studio'/><category scheme='http://www.blogger.com/atom/ns#' term='j2ee'/><category scheme='http://www.blogger.com/atom/ns#' term='seam'/><category scheme='http://www.blogger.com/atom/ns#' term='RichFaces'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>Red Hat Developer Studio first contact</title><content type='html'>&lt;span class="dropcaps"&gt;I&lt;/span&gt;'ve been working on a relative small project for some months ago (more than a year). Since I began it on the Old Days it was done with Struts + Hibernate. Since then J2EE community has evolved very much, and there are some technologies that make my old fashioned design look old. More specifically, I want Ajax for my users.&lt;br /&gt;&lt;br /&gt;I wanted to migrate it to a &lt;span style="font-weight: bold;"&gt;JSF + &lt;a href="http://labs.jboss.com/jbossrichfaces/"&gt;RichFaces&lt;/a&gt; + &lt;a href="http://www.jboss.com/products/seam"&gt;Seam&lt;/a&gt; + &lt;a href="http://www.hibernate.org/"&gt;Hibernate&lt;/a&gt; arquitecture&lt;/span&gt;, but I wanted to wait until &lt;a href="http://www.redhat.com/developers/rhds/index.html"&gt;Red Hat Developer Studio&lt;/a&gt; was released, since it supports every technology I want to use. That day is finally here, and you can download &lt;a href="http://www.redhat.com/developers/rhds/index.html"&gt;Red Hat Developer Studio &lt;/a&gt;Beta 1. In this post I'll tell you about its installation and my first minutes with it (real time). This is neither a deep review of RHDS (can't be, yet) nor a study on Seam (same) or a J2EE for dummies guide. Hope somebody finds is interesting.&lt;br /&gt;&lt;br /&gt;FYI, this is a 2GB Centrino laptop running Gentoo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;STARTUP&lt;/span&gt;&lt;br /&gt;1.- &lt;span style="font-weight: bold;"&gt;Download &lt;a href="ftp://ftp.redhat.com/pub/redhat/rhdevstudio/beta/rhdevstudio-1.0-Beta1/rhdevstudio-linux-gtk-1.0.0.beta1.jar"&gt;Red Hat Developer Studio Beta 1 for Linux&lt;/a&gt;&lt;/span&gt;: ~530MB! It's huge!&lt;br /&gt;2.- &lt;span style="font-weight: bold;"&gt;Launch installation&lt;/span&gt;: &lt;span style="font-family:courier new;"&gt;java -jar rhdevstudio-linux-gtk-1.0.0.beta1.jar&lt;/span&gt;.&lt;br /&gt;3.- Follow instructions. 3 minutes long, no important notes. It creates a beautiful red icon in my desktop :).&lt;br /&gt;4.- Clicking the beautiful icon leads to an instant beautiful crash (one of those eclipse crash dialog) on my system (java 1.5.0_12 by default). I don't know why, but specifying java path manually solves the problem: &lt;span style="font-family:courier new;"&gt;./eclipse -vm /opt/sun-jdk-1.5.0.12/bin/java&lt;/span&gt;.&lt;br /&gt;5.- It begins with a migration (from JBoss Studio) wizard I can't take advantage of, so it gets closed after doing nothing. I suppose JBoss Studio users will appreciate it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;FIRST IMPRESSIONS&lt;/span&gt;&lt;br /&gt;It looks exactly like you'd expect Eclipse look like after installing a bunch of plugins. RHDS perspective gives me a first joy: a RichFaces palette (no calendar yet, I'll have to wait). A quick look at "Manage Configuration" reveals it includes, among others, these plugins:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Dali (JPA).&lt;/li&gt;&lt;li&gt;EMF (Modeling).&lt;/li&gt;&lt;li&gt;JST (checked as it had problems, hope this doesn't turns severe).&lt;/li&gt;&lt;li&gt;WST.&lt;/li&gt;&lt;li&gt;Hibernate Tools.&lt;/li&gt;&lt;li&gt;JBoss stuff.&lt;/li&gt;&lt;li&gt;Shale tools.&lt;/li&gt;&lt;li&gt;Spring.&lt;/li&gt;&lt;/ul&gt;There are also some new (at least for me) perspectives probably interesting: jBPM PDL and JBoss AS. I'll go deeper on them other day.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;FIRST PROJECT&lt;/span&gt;&lt;br /&gt;My aim is starting a RichFaces + Seam + Hibernate (JPA) project from scratch. Theoretically this is the best IDE for this. Let's see if it succedes. From RHDS perspective:&lt;br /&gt;1.- File --&gt; New --&gt; Seam Web Project.&lt;br /&gt;2.- Add Java Persistence facet to the project.&lt;br /&gt;3.- Create a database connection profile (mine's MySQL 5.0).&lt;br /&gt;&lt;br /&gt;After a little browsing through views it gets slower and crashes ("double free or corruption"). I'll increase memory (eclipse.ini) and restart. Later it gets obvious that it's "Red Hat HTML Editor" (JSPs default one) which causes the problem. It's maybe related to a&lt;a href="http://www.redhat.com/developers/rhds/Getting_Started/GettingStartedWithRHDS.html#Troubleshooting"&gt; known issue at the FAQ&lt;/a&gt;. Nothing urgent, anyway.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Update: this problem has automagically vanished. I can use RHHE ok now, dunno why...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Project has a nice 'All JBoss Libraries' library which contains 50+ jars which will hopefully let me develop without worrying on jars (for a while at least). Something similar happens with 'Web App Libraries', which includes not only seam but also other &lt;span style="font-style: italic;"&gt;must-have&lt;/span&gt; like facelets.&lt;br /&gt;&lt;br /&gt;It has an error (red square). You can find the error at 'Problems' view: "no persistence.xml" file in project. That's wrong, since it's at src/META-INF. Well, let's deploy! Shift+Alt+X, R will run it on a server. Since it's not configured yet it asks me which. I choose bundled JBoss 4.2 and cross my fingers. Starting... crash! :-\ Sigh... Well... Something wrong with the database: "Apparently wrong driver class specified for URL: class: com.mysql.jdbc.Driver". It seems something doesn't like my mysql connector.&lt;br /&gt;&lt;br /&gt;It finally got solved copying mysql connector at jboss-as/server/default/lib. First JBoss lesson learned. After that, the welcome page was accessible.&lt;br /&gt;&lt;br /&gt;RH HTML Editor issue aside, RHDS seems promising. &lt;span style="font-style: italic; font-weight: bold;"&gt;Is finally the time Java development meets Visual Whatever integration? &lt;/span&gt;&lt;span style="font-style: italic;"&gt;Hope so...&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7451925207957448617-7333807049619957456?l=ideasse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/7333807049619957456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/7333807049619957456'/><link rel='alternate' type='text/html' href='http://ideasse.blogspot.com/2007/08/red-hat-developer-studio.html' title='Red Hat Developer Studio first contact'/><author><name>Nacho</name><uri>http://www.blogger.com/profile/14619363914899206503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_ThiAJt9Eftg/SNktLKE5qRI/AAAAAAAACjE/mFgHhx3mxqk/S220/Encuadre.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7451925207957448617.post-4794303771117173986</id><published>2007-08-03T11:45:00.000-07:00</published><updated>2007-08-03T12:03:02.966-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='developers'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='job'/><title type='text'>Ave, Good Programmer!</title><content type='html'>&lt;span class="dropcaps"&gt;S&lt;/span&gt;ome days ago I was in a room with some developers. I was grumbling, as usual, on something (I can't remember what). As usual, my idea of throwing my salary away and building an enterprise came out again. Some of them thought I was joking, but I said my intention was hiring only the best developers available and paying them double salary of what they can find at the city. I, as I've &lt;a href="http://iiso.blogspot.com/2007/07/orgullo-programador.html"&gt;said&lt;/a&gt; &lt;a href="http://iiso.blogspot.com/2007/06/el-talento-y-el-desarrollo-obviedades.html"&gt;before&lt;/a&gt; (in Spanish yet), believe the difference between the best and the others is spectacular. I've just read another worthless post: &lt;a href="http://haacked.com/archive/2007/06/25/understanding-productivity-differences-between-developers.aspx"&gt;10 Developers for the Price of one&lt;/a&gt;.&lt;br /&gt;If I just could get four of five of them, paying double salary (or even more!), there would be margin to make big money, at the same time they get a great payslip and a gratifying job...&lt;br /&gt;&lt;br /&gt;Dreaming's free, I suppose...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7451925207957448617-4794303771117173986?l=ideasse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/4794303771117173986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/4794303771117173986'/><link rel='alternate' type='text/html' href='http://ideasse.blogspot.com/2007/08/ave-good-programmer.html' title='Ave, Good Programmer!'/><author><name>Nacho</name><uri>http://www.blogger.com/profile/14619363914899206503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_ThiAJt9Eftg/SNktLKE5qRI/AAAAAAAACjE/mFgHhx3mxqk/S220/Encuadre.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7451925207957448617.post-3444661382614021725</id><published>2007-07-29T22:40:00.000-07:00</published><updated>2007-07-29T22:44:16.541-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dilbert'/><title type='text'>Deadlines</title><content type='html'>&lt;span class="dropcaps"&gt;D&lt;/span&gt;&lt;a href="http://www.dilbert.com"&gt;ilbert&lt;/a&gt;, actual as usual&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.dilbert.com/comics/dilbert/archive/images/dilbert21047500070730.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 500px;" src="http://www.dilbert.com/comics/dilbert/archive/images/dilbert21047500070730.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7451925207957448617-3444661382614021725?l=ideasse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/3444661382614021725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/3444661382614021725'/><link rel='alternate' type='text/html' href='http://ideasse.blogspot.com/2007/07/deadlines.html' title='Deadlines'/><author><name>Nacho</name><uri>http://www.blogger.com/profile/14619363914899206503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_ThiAJt9Eftg/SNktLKE5qRI/AAAAAAAACjE/mFgHhx3mxqk/S220/Encuadre.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7451925207957448617.post-4090838552175921646</id><published>2007-07-27T23:22:00.000-07:00</published><updated>2008-12-10T00:16:10.314-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='RichFaces'/><category scheme='http://www.blogger.com/atom/ns#' term='jsf'/><title type='text'>JSF (A love and hate story, endless yet)</title><content type='html'>&lt;span class="dropcaps"&gt;W&lt;/span&gt;hen I first met JSF I was having another relationship. I had been for 2 years with &lt;span style="font-weight: bold;"&gt;Struts&lt;/span&gt;. In the beginning it seemed to me (Struts) &lt;span style="font-weight: bold;"&gt;dull and thorny&lt;/span&gt; (I had just had a long affair with PHP), but when I met its parents Validator and Tiles, I fell in love. &lt;span style="font-weight: bold;"&gt;I was convinced by&lt;/span&gt; their configuration-files-for-everything approach, and its action-oriented workflow seemed to be a &lt;span style="font-weight: bold;"&gt;natural way to develop MVC&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;In a travel I was presented JSF, and the first sight couldn't be more half-hearted. I felt I was  &lt;span style="font-weight: bold;"&gt;doing just the same&lt;/span&gt;, and with worse tag libraries. Furthermore, it was not alone, but came with Spring and IBatis, so breaking the ice was even &lt;span style="font-weight: bold;"&gt;more difficult&lt;/span&gt;. &lt;span style="font-weight: bold;"&gt;Thinking on components and events? What for?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Suddenly, a third one came into my way and everything turned clearer: &lt;span style="font-weight: bold;"&gt;Ajax&lt;/span&gt;. Everything made sense. A text field would never ever be an empty box until somebody presses a button. Now, &lt;span style="font-style: italic;"&gt;a text field deploys suggestions, connects to the server to asynchronously validate itself, activates and disables page fragments...&lt;/span&gt; And &lt;span style="font-weight: bold;"&gt;if you want to develop this the good way, JSF is a must&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;This is the beautiful part of every love story, but every good thing has a catch: &lt;span style="font-weight: bold;"&gt;JSF is a very limited standard in term of components&lt;/span&gt; (&lt;a href="http://www.theserverside.com/tt/articles/article.tss?l=RethinkingJSF"&gt;and I am not the only one who says it&lt;/a&gt;). &lt;span style="font-weight: bold;"&gt;JSF is only a framework you can use as basement for something really interesting&lt;/span&gt;. It was born in 2004 as Sun fix to the gap at presentation layer at J2EE, but it was not only until Ajax when people has invested on it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Implementations &lt;/span&gt;(&lt;a href="http://www.myfaces.org/"&gt;MyFaces&lt;/a&gt;, &lt;a href="http://java.sun.com/javaee/javaserverfaces/"&gt;Sun RI&lt;/a&gt;, &lt;a href="https://facelets.dev.java.net/"&gt;Facelets&lt;/a&gt;...), &lt;span style="font-weight: bold;"&gt;frameworks&lt;/span&gt; (&lt;a href="http://labs.jboss.com/jbossajax4jsf/"&gt;Ajax4JSF&lt;/a&gt;, &lt;a href="http://www.icefaces.org/main/home/index.jsp"&gt;ICEFaces&lt;/a&gt;, &lt;a href="http://myfaces.apache.org/tobago/"&gt;Tobago&lt;/a&gt;...) &lt;span style="font-weight: bold;"&gt;and component libraries &lt;/span&gt;(&lt;a href="http://livedemo.exadel.com/richfaces-demo/"&gt;RichFaces&lt;/a&gt;, &lt;a href="http://myfaces.apache.org/tomahawk/"&gt;Tomahawk&lt;/a&gt;, &lt;a href="https://ajax.dev.java.net/"&gt;jMaki&lt;/a&gt;...) &lt;span style="font-weight: bold;"&gt;promise a lot, but managing to make them work together is often annoying&lt;/span&gt;. Bad documentation, incompatibilities, the need for betas, sandboxes, nightshots...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Despite it, I think JSF is the best choice for MVC if you want Ajax&lt;/span&gt;. More specifically, (MyFaces + Tomahawk (a must)) + (Ajax4JSF + RichFaces (really powerful)). First ones give an stable enough and comprehensive base set, and latter, the full power of Ajax.&lt;br /&gt;&lt;br /&gt;P.D.: MyFaces won't stop. They've &lt;a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=10600&amp;styleName=Html&amp;amp;version=12312576"&gt;recently delivered 1.2&lt;/a&gt;. In the wiki there's a &lt;a href="http://wiki.apache.org/myfaces/"&gt;good amount of JSF, MyFaces and even integration with other libraries&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;P.D.2: &lt;a href="http://raibledesigns.com/rd/entry/java_web_framework_tools_how"&gt; interesting graph on Ajax for different technologies&lt;/a&gt;.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ThiAJt9Eftg/RlSJDzxPAdI/AAAAAAAAAAw/ymbhaFWS0eY/s1600-h/tools-comparison.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_ThiAJt9Eftg/RlSJDzxPAdI/AAAAAAAAAAw/ymbhaFWS0eY/s320/tools-comparison.png" alt="" id="BLOGGER_PHOTO_ID_5067826179227976146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It comes from a &lt;span style="font-weight: bold;"&gt;&lt;a href="http://static.raibledesigns.com/repository/presentations/ComparingJavaWebFrameworks.pdf"&gt;J2EE Framework comparative&lt;/a&gt;&lt;/span&gt;, really up-to-date.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7451925207957448617-4090838552175921646?l=ideasse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/4090838552175921646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/4090838552175921646'/><link rel='alternate' type='text/html' href='http://ideasse.blogspot.com/2007/07/jsf-love-and-hate-story-endless-yet.html' title='JSF (A love and hate story, endless yet)'/><author><name>Nacho</name><uri>http://www.blogger.com/profile/14619363914899206503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_ThiAJt9Eftg/SNktLKE5qRI/AAAAAAAACjE/mFgHhx3mxqk/S220/Encuadre.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ThiAJt9Eftg/RlSJDzxPAdI/AAAAAAAAAAw/ymbhaFWS0eY/s72-c/tools-comparison.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7451925207957448617.post-47170537399635128</id><published>2007-07-25T23:25:00.000-07:00</published><updated>2007-07-25T23:52:50.761-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='dry'/><category scheme='http://www.blogger.com/atom/ns#' term='j2ee'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>DRY: brief guide to keep you dry</title><content type='html'>&lt;span class="dropcaps"&gt;S&lt;/span&gt;ome years ago a Bachelor teacher told us &lt;span style="font-weight: bold;"&gt;there's enough with a few principles to explain most nature phenomena&lt;/span&gt;. Osmosis, conservation of energy and a few others can model most of the things we see.&lt;br /&gt;&lt;br /&gt;I think it happens the same with computing. In spite of the huge amount of languages, libraries and platforms there are, the grounds which make them good tools are very similar. Maybe the most important among them is "&lt;a href="http://en.wikipedia.org/wiki/Don%27t_repeat_yourself"&gt;DRY principle&lt;/a&gt;"&lt;span style="font-weight: bold;"&gt;: Don't Repeat Yourself&lt;/span&gt;. Repeating implies more work (a good programmer should be &lt;span style="font-style: italic;"&gt;lazy&lt;/span&gt;),  duplicating errors, reducing code mantainability,  making changes harder... Here it comes the great sentence: &lt;span style="font-style: italic;"&gt;"Every time you copy-paste, Lord kills a kitten"&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;My work environment for the last years has been J2EE, and I use the following tools &lt;span style="font-style: italic;"&gt;to keep me dry&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://www.hibernate.org/"&gt;Hibernate&lt;/a&gt;&lt;/span&gt;: minimizes data access code.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;a href="http://www.hibernate.org/412.html"&gt;Hibernate Validator&lt;/a&gt;&lt;/span&gt;: takes advantage of persistence specification to check form data correctness and shows user error messages. If you don't use Hibernate you should have a try on &lt;span style="font-weight: bold;"&gt;Commons Validator&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Templating and cutting up pages, whether &lt;span style="font-weight: bold;"&gt;Tiles&lt;/span&gt; (a must if you still use &lt;span style="font-style: italic;"&gt;Struts&lt;/span&gt;) o &lt;span style="font-weight: bold;"&gt;Facelets&lt;/span&gt; (best reusing with JSF).&lt;br /&gt;&lt;br /&gt;Intensive &lt;span style="font-weight: bold;"&gt;CSS&lt;/span&gt; for presentation. There's no good at "improving presentation with CSS". The best thing you can do is composing web pages structure with XHTML independently from presentation, delegating 99% to CSS (1% left is for IE hacking).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7451925207957448617-47170537399635128?l=ideasse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/47170537399635128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/47170537399635128'/><link rel='alternate' type='text/html' href='http://ideasse.blogspot.com/2007/07/dry-brief-guide-to-keep-you-dry.html' title='DRY: brief guide to keep you dry'/><author><name>Nacho</name><uri>http://www.blogger.com/profile/14619363914899206503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_ThiAJt9Eftg/SNktLKE5qRI/AAAAAAAACjE/mFgHhx3mxqk/S220/Encuadre.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7451925207957448617.post-3204751851599388098</id><published>2007-07-25T10:41:00.000-07:00</published><updated>2007-07-25T10:43:04.547-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='j2ee'/><category scheme='http://www.blogger.com/atom/ns#' term='iso'/><title type='text'>Ideas + Software Engineering</title><content type='html'>&lt;code&gt;&lt;br /&gt;/**&lt;br /&gt;* Software developing blog.&lt;br /&gt;*&lt;br /&gt;* @author Juan Ignacio Sánchez Lara&lt;br /&gt;* @version v0.00&lt;br /&gt;* @since 070725&lt;br /&gt;* @see http://iiso.blogspot.com/&lt;br /&gt;*/&lt;br /&gt;public class ISE extends Blog implements SoftwareDeveloping, J2EE {&lt;br /&gt;&lt;br /&gt;   //TODO: funny comment for first post.&lt;br /&gt;&lt;br /&gt;   //FIXME: missing funny jokes libraries&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7451925207957448617-3204751851599388098?l=ideasse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/3204751851599388098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7451925207957448617/posts/default/3204751851599388098'/><link rel='alternate' type='text/html' href='http://ideasse.blogspot.com/2007/07/ideas-software-engineering.html' title='Ideas + Software Engineering'/><author><name>Nacho</name><uri>http://www.blogger.com/profile/14619363914899206503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_ThiAJt9Eftg/SNktLKE5qRI/AAAAAAAACjE/mFgHhx3mxqk/S220/Encuadre.jpg'/></author></entry></feed>
