<?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-5876243571774162043</id><updated>2011-07-30T17:40:34.775-07:00</updated><category term='jet'/><category term='templates'/><category term='macos'/><category term='tools'/><category term='web-services'/><category term='java'/><category term='web'/><category term='ajax'/><category term='development'/><category term='xmas offtopic'/><category term='software development frameworks'/><category term='blog'/><category term='offtopic'/><category term='flex'/><category term='project development gwt html5'/><category term='otros'/><category term='macos tips'/><category term='java ruby groovy roo'/><category term='software'/><category term='tips'/><category term='video'/><category term='uml'/><category term='nosql'/><category term='eclipse'/><category term='ria'/><category term='axis2'/><category term='presupuestando user-histories'/><title type='text'>Hug a developer</title><subtitle type='html'>powered by Juan Francisco Valdés Gayo</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://hugadeveloper.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://hugadeveloper.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>juanfri</name><uri>http://www.blogger.com/profile/11121074568351167467</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5876243571774162043.post-4521910575864475241</id><published>2010-06-01T15:19:00.000-07:00</published><updated>2010-06-29T14:06:40.116-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java ruby groovy roo'/><title type='text'>Is Java dying? Dependency injection and other Java necessary evils</title><content type='html'>My friend &lt;a href="http://jorgemanrubia.net"&gt;Jorge Manrubia&lt;/a&gt; have published a very interesting post &lt;a href="http://jorgemanrubia.net/2010/05/30/dependency-injection-and-other-java-necessary-evils/"&gt;about the necessary evils in Java&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This post helps me to thing about this: Is Java as alanguage dying?&lt;br /&gt;&lt;br /&gt;I agree with Jorge, a huge movement from Java to dynamic typing languages has started (including here in Spain), and this is normal as Java is a 15 years old language, the new languages are combining dynamic typing, metaprograming and another awesome features and (very important) the JVM/J2EE platform is executing these languages.&lt;br /&gt;&lt;br /&gt;I also believe Java is not dead at all, the strong typing has its advantages and with hard work people have achieved some of the goals he is talking about. &lt;br /&gt;&lt;br /&gt;Dependency injection is a language agnostic concept that was implemented first with a container (Spring has almost six years, Plexus or Avalon even more), then in a lighter way (Guice) and also without a container in &lt;a href="http://www.springsource.org/roo"&gt;Spring ROO&lt;/a&gt;, but yes, it's a natural feature via metaprogramming in Ruby and other languages.&lt;br /&gt;&lt;br /&gt;I would like to test Spring Roo in a real environment, because it lets you do something that years ago I found impossible in Java platform, Domain Driven development that in the end translates the concepts to classes, I mean, real object oriented programming and &lt;a href="http://en.wikipedia.org/wiki/Anemic_Domain_Model"&gt;no anemic classes&lt;/a&gt; and a lot of procedural artifacts (managers, daos,...) Spring Roo achieves this with a massive use of Aspect J (not java at all).&lt;br /&gt;&lt;br /&gt;The question is, is it enough using this kind of tools in Java, or is better migrate to Ruby/Groovy/Scala? And I don't think is an easy question, maybe it depends on the developer profile and experience, but it's very important to know these tools do exist and there are patterns and practices that are global to all languages.&lt;br /&gt;&lt;br /&gt;About Strong Typing, I would change the &lt;a href="http://code.google.com/webtoolkit/"&gt;GWT&lt;/a&gt; examples by others. Not because I do like this technology, but because GWT is not really Java, it has the Java syntax but is a tool that compiles Java to JavaScript, and uses a series of tricks (like JSNI) to communicate the original Java (then Javascript) code with the native one. In this case, the GWT advantages have got a syntactic overhead when you want to use native Javascript (usually to do REST) in your code.&lt;br /&gt;&lt;br /&gt;Actually GWT could be a good example of the advantages of strong typing. It would be awesome if the Google guys have built a tool that let you write Ruby, Groovy, Scala and compile it to JavaScript, but probably this is not possible without the Strong Typing stuff.&lt;br /&gt;&lt;br /&gt;And about Object disorientation, I haven't nothing to say, when Java drives you to this type of non-oriented programing, it sucks!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Update [June 29, 2010] Thanks &lt;a href="http://code-jive.blogspot.com"&gt;Tako&lt;/a&gt; for the grammatical corrections!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5876243571774162043-4521910575864475241?l=hugadeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hugadeveloper.blogspot.com/feeds/4521910575864475241/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5876243571774162043&amp;postID=4521910575864475241' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/4521910575864475241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/4521910575864475241'/><link rel='alternate' type='text/html' href='http://hugadeveloper.blogspot.com/2010/06/is-java-dying-dependency-injection-and.html' title='Is Java dying? Dependency injection and other Java necessary evils'/><author><name>juanfri</name><uri>http://www.blogger.com/profile/11121074568351167467</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5876243571774162043.post-3885643984167841668</id><published>2010-05-16T12:14:00.000-07:00</published><updated>2010-05-16T12:20:10.277-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='presupuestando user-histories'/><title type='text'>Presupuestando: User stories</title><content type='html'>Presupuestando (budgeting in Spanish) is the name of my little project. It's aim be a site in which a user can request a budget (for example, reparations in the customer house, car or maybe travels), and the companies can interact presenting its budgets to the user.&lt;br /&gt;&lt;br /&gt;At the beginning of the project i have compelled (from my mind) the following user stories:&lt;br /&gt;&lt;br /&gt;Customer stories&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A customer request for a budget in its own words&lt;/li&gt;&lt;li&gt;There is only a filter of budget type (Travelling, Housekeeping...)&amp;nbsp;&lt;/li&gt;&lt;li&gt;The user can add a new type but the Prespuestando admin have to approve it (and find vendors to do it), so in this case the interactions finish&amp;nbsp;at this point.&lt;/li&gt;&lt;li&gt;The customer can be an existing customer or a new one, but the form would be the same for the two types&lt;/li&gt;&lt;li&gt;The customer can fill an expected range of money for the budget or not&lt;/li&gt;&lt;li&gt;The customer's location is detected and shown in the form. The user can edit this location (or drop it), the customer also can restrict the budget request to vendors in a specified perimeter from this point.&lt;/li&gt;&lt;li&gt;The customer is notified when a vendor applies for a budget, &amp;nbsp;at this moment can request a change in the budget, approve the budget or discard it.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Vendor stories&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;A vendor is notified when a customer request for a budget in one of his areas of interest&amp;nbsp;&lt;/li&gt;&lt;li&gt;A vendor is registered and assigned to one or more budget types, one of the vendor's data will be its location&lt;/li&gt;&lt;li&gt;The registration of a vendor is approved by the site admin.&lt;/li&gt;&lt;li&gt;A budget is described in general and in lines, in a flexible and UX based interface (this story will be detailed prior its development)&lt;/li&gt;&lt;li&gt;A vendor can request intervention details to the customer&lt;/li&gt;&lt;li&gt;Vendor can save a budget in database&lt;/li&gt;&lt;li&gt;Vendor can send a budget to the customer or&amp;nbsp;discard&amp;nbsp;it&lt;/li&gt;&lt;li&gt;Vendor can change a applied budget if customer request it.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Admin stories&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;An admin fills the types of budgets&lt;/li&gt;&lt;li&gt;And admin approves the registration of a vendor&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Additional notes:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;At this moment is not determined the channel selected to the communication vendor-customer. The easy solution would be the email, but a twitter solution will be studied&lt;/li&gt;&lt;li&gt;The admin stories has a very low priority to the web application. The admin can introduce the types by hand in database and vendor approves can be automatically approves (and disabled via Database if case of problems)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5876243571774162043-3885643984167841668?l=hugadeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hugadeveloper.blogspot.com/feeds/3885643984167841668/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5876243571774162043&amp;postID=3885643984167841668' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/3885643984167841668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/3885643984167841668'/><link rel='alternate' type='text/html' href='http://hugadeveloper.blogspot.com/2010/05/presupuestando-user-histories.html' title='Presupuestando: User stories'/><author><name>juanfri</name><uri>http://www.blogger.com/profile/11121074568351167467</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5876243571774162043.post-4844516399875871969</id><published>2010-05-15T03:57:00.000-07:00</published><updated>2010-05-15T04:00:13.356-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='nosql'/><title type='text'>Backend for my project, choosing a NoSQL database</title><content type='html'>One of the goals of this projects is to have the possibility to work with a &lt;a href="http://en.wikipedia.org/wiki/NoSQL"&gt;NoSQL&lt;/a&gt; approach. There are a lot of NoSQL documentation in the Internet, so I only gonna do a brief comments about its philosofity and principes:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It's not a clear definition about the features of a NoSQL database, there are a lot of tools with differents approaches (document or object oriented, big hashes, &lt;a href="http://en.wikipedia.org/wiki/ACID"&gt;ACID&lt;/a&gt; and no ACID),&amp;nbsp;&lt;/li&gt;&lt;li&gt;A NoSQL database can provide you a huge scalability and high performance. Twitter, Google, Facebook does need this, and your application. Well, about performance, why not?.&lt;/li&gt;&lt;li&gt;Typically object-oriented applications are builded around the SQL databases, letting the business logic reside in the database and working as simple CRUD interfaces. This is not&amp;nbsp;necessary&amp;nbsp;bad, SQL has its optimizations, performance, specialized teams,... but NoSQL gives you more options to have in mind.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After a short investigation, and following recomendations, I decide to use &lt;a href="http://www.mongodb.org/"&gt;MongoDB&lt;/a&gt; as my first approach to NoSQL databases. My first option was &lt;a href="http://cassandra.apache.org/"&gt;Cassandra&lt;/a&gt;, with has a lot of hype around because is used by Twitter and Facebook. Its main features are a descentralized approach, Cassandra is never designed to run as single node but in a bunch of them, and is not ACID compliant.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the other hand, MongoDB is ACID compliant and is an document oriented database, you can use JSON to manipulate data, is scalable depending on your needs but valid in a single node. It also seems well documented and supported.&lt;br /&gt;&lt;br /&gt;A would like to combine with some sort of business &lt;a href="http://en.wikipedia.org/wiki/Domain_Specific_Language"&gt;DSL&lt;/a&gt; (in my next post i'm gonna talk about business oriented development and DSLs) and test two things.&lt;br /&gt;&lt;br /&gt;The first one, If my front-end is build in GWT, my business logic in the DSL and &amp;nbsp;I don't want to use traditional CRUD generation, does I really need Grails building plugins or It's better that i develop another command system around my DSL?&lt;br /&gt;&lt;br /&gt;The second is as follows, in many projects there are a considerable amount of repetitive code to access to certain tables (master tables), to display combos, completers, sometimes i18n... Most of this times, this data has no associated business logic, only data retrieval from Database.&lt;br /&gt;&lt;br /&gt;Well, if MongoDB can be queried using JSON, and my GWT Front-End understands JSON, is it viable access this tables directly from the front-end? Can this method be productive dropping the repetitive backend code? Would I be acting against layer encapsulation?&lt;br /&gt;&lt;br /&gt;I'll let you know my conclusions, give me some time!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5876243571774162043-4844516399875871969?l=hugadeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hugadeveloper.blogspot.com/feeds/4844516399875871969/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5876243571774162043&amp;postID=4844516399875871969' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/4844516399875871969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/4844516399875871969'/><link rel='alternate' type='text/html' href='http://hugadeveloper.blogspot.com/2010/05/backend-for-my-project-choosing-nosql.html' title='Backend for my project, choosing a NoSQL database'/><author><name>juanfri</name><uri>http://www.blogger.com/profile/11121074568351167467</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5876243571774162043.post-167756430718877894</id><published>2010-05-03T14:44:00.000-07:00</published><updated>2010-05-05T00:32:54.574-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='project development gwt html5'/><title type='text'>Front-end stack for the new project: GWT</title><content type='html'>I'm going to start the project talking about the technologies I want to use. Obviously this technological election isn't the result of a reasoned study to fix the architecture to both client and functional environment. There are no client, there are no functional study, (neither name for the project!).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AhAWXnRREKM/S-AzKlfv7BI/AAAAAAAAEhQ/KUtIYUcdC1c/s1600/gwt-box-150.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 150px; height: 137px;" src="http://4.bp.blogspot.com/_AhAWXnRREKM/S-AzKlfv7BI/AAAAAAAAEhQ/KUtIYUcdC1c/s320/gwt-box-150.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5467426204584766482" /&gt;&lt;/a&gt;&lt;br /&gt;Today I'm gonna talk about Front End Stack. I would like to implement the UX of the project using &lt;a href="http://code.google.com/webtoolkit"&gt;Google Web Toolkit, GWT&lt;/a&gt;, and GWT are going to comunicate the server side via REST calls to a Grais Backend.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The main difference of this election is that I already know GWT. I worked in a pretty serious GWT project for 9 months, also I'm the responsible of GWT workshops in my company, and, the most important part, I do like GWT!&lt;br /&gt;&lt;br /&gt;One reason is that I think I'm the perfect user profile of this technology, I have a knowledge of front end techonologies such a HTML, JavaScript, CSS, but I'm far from be a good front-end programmer. I am not confortable writing jQuery (although I feel is a great technology), and with these capabilities, GWT fixed pretty well as Java tool to build Rich Client Interfaces.  &lt;br /&gt;&lt;br /&gt;As GWT is a Java tool based on a Java-&gt;HTML/Javascript compiler it main benefits are that you write the code in Java, with a strong typing, easy unit testing (i'm talking about UNIT testing), quite productive APIs (from Google, vendors and J2SE) optimization process, and component oriented programming model.&lt;br /&gt;&lt;br /&gt;I also think GWT can be a perfect tool to embrace &lt;a href="http://apirocks.com/html5/html5.html#slide1"&gt;HTML5&lt;/a&gt;, using its Java-Component based encapsulation, you can easilly migrate the implementation of a component to a HTML5 one, or add new advanced components to your toolset.&lt;br /&gt;&lt;br /&gt;But probably my favorite feature of GWT is not a feature. GWT is a tool, it's not a framework. There are a lot of frameworks in Java. Struts2, Wicket, Spring MVC, JSF,.. but you can view GWT as a tool to translate Java into Javascript. And from this tool you can build your infraestructure (your framework if you want), and this infraestructure can be quite productive.&lt;br /&gt;&lt;br /&gt;In my nine months project with GWT, we only reach the surface of this capability using code generations tools and I have the feeling that there are not a lot people talking about building GWT tools. I would like to do some research on this field.&lt;br /&gt;&lt;br /&gt;Another feature I wanna test is the REST integration. In our project we use GWT RPC API, with an excellent result. This API seems a bit unfashioned, its name reminds you college times, it's simillar to RMI (at least without RMIException), but it's very productive. With this API you can have tested and compiled calls, it's very simple to integrate the calls with Spring IoC container, and the problems with proxied objets can be avoided. I recommend this sollution: &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AhAWXnRREKM/S-Az47Lr0DI/AAAAAAAAEhY/lrxXPPawGSs/s1600/96.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 285px; height: 148px;" src="http://1.bp.blogspot.com/_AhAWXnRREKM/S-Az47Lr0DI/AAAAAAAAEhY/lrxXPPawGSs/s320/96.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5467427000680173618" /&gt;&lt;/a&gt;&lt;br /&gt;But this calls are no REST-complain. In other environments you may require to do this REST calls, for example, in my project. I want to use Grails as rapid web development framework, because i also want to test it (I worked with Groovy to do some scripts a time ago), also the dynamic capabilities of the language to build something not far from business oriented language (but this is another post), and is tool and command oriented development style as a via to implement my own code-generation tools.&lt;br /&gt;&lt;br /&gt;To do this the best option seems to be GWT Overlay types, and combine it with &lt;a href="http://en.wikipedia.org/wiki/Model-view-presenter"&gt;Model View Presenter (MVP)&lt;/a&gt; pattern. This pattern is also a pending task for me, In our project we use a quite rudimentary MVC that got us trouble when the project growed.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To finish the post, a great presentation on GWT, Grails, REST and MVP from &lt;a href="http://raibledesigns.com/"&gt;Matt Raible&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="width:425px" id="__ss_2484656"&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/mraible/building-sofea-applications-with-gwt-and-grails" title="Building SOFEA Applications with GWT and Grails"&gt;Building SOFEA Applications with GWT and Grails&lt;/a&gt;&lt;/strong&gt;&lt;object id="__sse2484656" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=sofeawithgwtandgrails-091112101640-phpapp01&amp;stripped_title=building-sofea-applications-with-gwt-and-grails" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse2484656" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=sofeawithgwtandgrails-091112101640-phpapp01&amp;stripped_title=building-sofea-applications-with-gwt-and-grails" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="padding:5px 0 12px"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/mraible"&gt;Matt Raible&lt;/a&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/5876243571774162043-167756430718877894?l=hugadeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hugadeveloper.blogspot.com/feeds/167756430718877894/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5876243571774162043&amp;postID=167756430718877894' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/167756430718877894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/167756430718877894'/><link rel='alternate' type='text/html' href='http://hugadeveloper.blogspot.com/2010/05/front-end-stack-for-new-project-gwt.html' title='Front-end stack for the new project: GWT'/><author><name>juanfri</name><uri>http://www.blogger.com/profile/11121074568351167467</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_AhAWXnRREKM/S-AzKlfv7BI/AAAAAAAAEhQ/KUtIYUcdC1c/s72-c/gwt-box-150.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5876243571774162043.post-118289720234387</id><published>2010-05-01T06:59:00.000-07:00</published><updated>2010-05-01T07:54:42.419-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><title type='text'>New project, old blog</title><content type='html'>Fortunately Google guys have a lot of disk space and my old blog hasn't been dropped yet!&lt;br /&gt;&lt;br /&gt;I started this blog two years ago without a clear purpose to share some general thoughts, tricks, and to try to improve my writing level in English (typical Spanish!) and as many blogs, the blog was abandoned.&lt;br /&gt;&lt;br /&gt;Today, I reopen the blog to write about a new personal project. What project? I'm not sure at this moment, but is for sure that the project exists.&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://blip.tv/play/gYwjwZJqjdEh" type="application/x-shockwave-flash" width="640" height="390" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;The blog's name source, via &lt;a href="http://www.microsiervos.com/archivo/humor/abraza-a-un-programador.html"&gt;Microsiervos&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For the last years I've been having the pleasure to work in interesting projects, with state of art technologies, sometimes with the responsibility of evaluate and choose them as Software Architect. In my free time I have read several books, blogs, articles, workshops, worked in small conferences and thinks like that, important stuff but no "real" development work.&lt;br /&gt;&lt;br /&gt;Nowadays the situation is different, I'm working in a static phase of an old project, most of the time in maintenance tasks and, although I think you can learn and become a better professional in all situations, I have the feeling that I must start something and evaluate new technologies and paradigms.&lt;br /&gt;&lt;br /&gt;So this is the motivation of the new era of the blog, share the steps and thoughts of the new project, wish me luck!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5876243571774162043-118289720234387?l=hugadeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hugadeveloper.blogspot.com/feeds/118289720234387/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5876243571774162043&amp;postID=118289720234387' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/118289720234387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/118289720234387'/><link rel='alternate' type='text/html' href='http://hugadeveloper.blogspot.com/2010/05/new-project-old-blog.html' title='New project, old blog'/><author><name>juanfri</name><uri>http://www.blogger.com/profile/11121074568351167467</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5876243571774162043.post-6142813136198320005</id><published>2009-01-16T05:53:00.000-08:00</published><updated>2009-01-18T23:50:11.618-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>Applying Software Development techniques to real life</title><content type='html'>This is an empirical demostration of the successful translation of some 'bug fixing' techniques from software development groups to real life&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/lKJcBx9cXKo&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/lKJcBx9cXKo&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5876243571774162043-6142813136198320005?l=hugadeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hugadeveloper.blogspot.com/feeds/6142813136198320005/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5876243571774162043&amp;postID=6142813136198320005' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/6142813136198320005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/6142813136198320005'/><link rel='alternate' type='text/html' href='http://hugadeveloper.blogspot.com/2009/01/applying-software-development-techiques.html' title='Applying Software Development techniques to real life'/><author><name>juanfri</name><uri>http://www.blogger.com/profile/11121074568351167467</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5876243571774162043.post-8423388797360883744</id><published>2008-12-24T05:52:00.000-08:00</published><updated>2008-12-24T05:56:06.593-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='offtopic'/><title type='text'>The IT Support, by Scott Adams (Dilbert)</title><content type='html'>&lt;a href="http://dilbert.com/strips/comic/2008-12-24/" title="Dilbert.com"&gt;&lt;img src="http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/30000/6000/500/36591/36591.strip.gif" border="0" alt="Dilbert.com" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dilbert.com"&gt;&lt;br /&gt;More Dilbert strips and resources&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5876243571774162043-8423388797360883744?l=hugadeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hugadeveloper.blogspot.com/feeds/8423388797360883744/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5876243571774162043&amp;postID=8423388797360883744' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/8423388797360883744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/8423388797360883744'/><link rel='alternate' type='text/html' href='http://hugadeveloper.blogspot.com/2008/12/it-support-from-dilbert.html' title='The IT Support, by Scott Adams (Dilbert)'/><author><name>juanfri</name><uri>http://www.blogger.com/profile/11121074568351167467</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5876243571774162043.post-5396418377259219973</id><published>2008-12-12T00:39:00.000-08:00</published><updated>2008-12-12T00:41:54.545-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xmas offtopic'/><title type='text'>Christmas is coming!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AhAWXnRREKM/SUIjyavdBoI/AAAAAAAABmk/th7jojXgFwA/s1600-h/n5710098_41595615_3316.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 225px; height: 320px;" src="http://3.bp.blogspot.com/_AhAWXnRREKM/SUIjyavdBoI/AAAAAAAABmk/th7jojXgFwA/s320/n5710098_41595615_3316.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5278821062310430338" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5876243571774162043-5396418377259219973?l=hugadeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hugadeveloper.blogspot.com/feeds/5396418377259219973/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5876243571774162043&amp;postID=5396418377259219973' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/5396418377259219973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/5396418377259219973'/><link rel='alternate' type='text/html' href='http://hugadeveloper.blogspot.com/2008/12/christmas-is-coming.html' title='Christmas is coming!'/><author><name>juanfri</name><uri>http://www.blogger.com/profile/11121074568351167467</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_AhAWXnRREKM/SUIjyavdBoI/AAAAAAAABmk/th7jojXgFwA/s72-c/n5710098_41595615_3316.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5876243571774162043.post-3826429256612755776</id><published>2008-11-28T03:04:00.000-08:00</published><updated>2008-11-28T05:06:18.713-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software development frameworks'/><title type='text'>Why this guy hate frameworks?</title><content type='html'>&lt;a href="http://discuss.joelonsoftware.com/default.asp?joel.3.219431.12"&gt;This is a funny and very interesting post&lt;/a&gt; about frameworks and, I think, overdesign in software development from &lt;a href="http://benjismith.net/"&gt;Benji smith&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Found in &lt;a href="http://www.joelonsoftware.com"&gt;The Joel on software&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5876243571774162043-3826429256612755776?l=hugadeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hugadeveloper.blogspot.com/feeds/3826429256612755776/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5876243571774162043&amp;postID=3826429256612755776' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/3826429256612755776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/3826429256612755776'/><link rel='alternate' type='text/html' href='http://hugadeveloper.blogspot.com/2008/11/why-this-guy-hate-frameworks.html' title='Why this guy hate frameworks?'/><author><name>juanfri</name><uri>http://www.blogger.com/profile/11121074568351167467</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5876243571774162043.post-786832385076566765</id><published>2008-11-08T04:46:00.000-08:00</published><updated>2008-11-08T04:49:40.401-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='macos tips'/><title type='text'>15 free tools for Mac OS</title><content type='html'>&lt;a href="http://www.smashingapps.com/2008/11/07/15-free-tools-for-mac-os-x-you-should-bookmark.html"&gt;Interesting...&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5876243571774162043-786832385076566765?l=hugadeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hugadeveloper.blogspot.com/feeds/786832385076566765/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5876243571774162043&amp;postID=786832385076566765' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/786832385076566765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/786832385076566765'/><link rel='alternate' type='text/html' href='http://hugadeveloper.blogspot.com/2008/11/15-free-tools-from-mac-os.html' title='15 free tools for Mac OS'/><author><name>juanfri</name><uri>http://www.blogger.com/profile/11121074568351167467</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5876243571774162043.post-7027330622321057837</id><published>2008-11-04T03:40:00.000-08:00</published><updated>2008-11-04T04:01:27.609-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='uml'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Simple UML diagrams with UMLet</title><content type='html'>&lt;a href="http://www.umlet.com/"&gt;UMLet&lt;/a&gt; it's a nice tool for drawing Sequence and Use Cases UML diagrams. It's very simple, intuitive and also funny to use.&lt;br /&gt;&lt;br /&gt;My favorite features are the edition of artifacts based in plain text and, mainly, that it's no a pure UML tool, you can draw not fully UML compliant diagrams, and this can be very useful (sometimes)&lt;br /&gt;&lt;br /&gt;I think it's a fantastic tool to draw simple and descriptive diagrams rapidly. Of course it's not CASE tool, but also it's cleaner than use a blackboard&lt;br /&gt;&lt;br /&gt;UMLet runs as Eclipse plugin, and also as standalone application. Try it!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AhAWXnRREKM/SRA2DusnASI/AAAAAAAABPM/r-hTpKkMTQI/s1600-h/umlet.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 193px;" src="http://4.bp.blogspot.com/_AhAWXnRREKM/SRA2DusnASI/AAAAAAAABPM/r-hTpKkMTQI/s320/umlet.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5264767402098753826" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5876243571774162043-7027330622321057837?l=hugadeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hugadeveloper.blogspot.com/feeds/7027330622321057837/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5876243571774162043&amp;postID=7027330622321057837' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/7027330622321057837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/7027330622321057837'/><link rel='alternate' type='text/html' href='http://hugadeveloper.blogspot.com/2008/11/simple-uml-diagrams-with-umlet.html' title='Simple UML diagrams with UMLet'/><author><name>juanfri</name><uri>http://www.blogger.com/profile/11121074568351167467</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_AhAWXnRREKM/SRA2DusnASI/AAAAAAAABPM/r-hTpKkMTQI/s72-c/umlet.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5876243571774162043.post-277488166923947656</id><published>2008-10-24T12:28:00.000-07:00</published><updated>2008-12-16T03:02:10.190-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='macos'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><title type='text'>Using dashboard widgets in Your Desktop</title><content type='html'>&lt;a href="http://www.macosxhints.com/article.php?story=20050422172929402"&gt;This article&lt;/a&gt; explains how to drag widgets from your Dashboard to your Desktop&lt;br /&gt;&lt;br /&gt;Cool!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5876243571774162043-277488166923947656?l=hugadeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hugadeveloper.blogspot.com/feeds/277488166923947656/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5876243571774162043&amp;postID=277488166923947656' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/277488166923947656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/277488166923947656'/><link rel='alternate' type='text/html' href='http://hugadeveloper.blogspot.com/2008/10/using-dashboard-widgets-in-your-desktop.html' title='Using dashboard widgets in Your Desktop'/><author><name>juanfri</name><uri>http://www.blogger.com/profile/11121074568351167467</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5876243571774162043.post-7015828455688966477</id><published>2008-10-23T00:00:00.000-07:00</published><updated>2008-10-24T12:34:41.357-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='ria'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>RIA Frameworks</title><content type='html'>Althought traditionally I have not been working extensively in User Interfaces, and of course I'm not an expert on this area, I'm pretty sure that somethings goes wrong in traditional Java web interfaces development (Struts, JSF, Spring MVC).&lt;br /&gt;&lt;br /&gt;It's too hard develop a Web application, too much code, too much errors, too much programmers!&lt;br /&gt;&lt;br /&gt;I'm not sure about the future, but RIA interfaces (&lt;a href="http://anthonyfranco.wordpress.com/2007/06/22/flex-and-ajax-friends-or-foes/"&gt;Ajax or Flex&lt;/a&gt;) in Service Oriented User Interfaces (SOUI) seems more razonable approaches.&lt;br /&gt;&lt;br /&gt;This is a very interesting presentation about RIA (focuses in &lt;a href="http://www.appcelerator.org/"&gt;Appcelerator framework&lt;/a&gt;) from &lt;a href="http://www.raibledesigns.com"&gt;Matt Raible&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="width:425px;text-align:left" id="__ss_682571"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/mraible/building-rich-applications-with-appcelerator?type=powerpoint" title="Building Rich Applications with Appcelerator"&gt;Building Rich Applications with Appcelerator&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=building-rich-applications-with-appcelerator-12002&amp;stripped_title=building-rich-applications-with-appcelerator" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=building-rich-applications-with-appcelerator-12002&amp;stripped_title=building-rich-applications-with-appcelerator" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View SlideShare &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/mraible/building-rich-applications-with-appcelerator?type=powerpoint" title="View Building Rich Applications with Appcelerator on SlideShare"&gt;presentation&lt;/a&gt; or &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint"&gt;Upload&lt;/a&gt; your own. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/flex"&gt;flex&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/rest"&gt;rest&lt;/a&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/5876243571774162043-7015828455688966477?l=hugadeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hugadeveloper.blogspot.com/feeds/7015828455688966477/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5876243571774162043&amp;postID=7015828455688966477' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/7015828455688966477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/7015828455688966477'/><link rel='alternate' type='text/html' href='http://hugadeveloper.blogspot.com/2008/10/ria-frameworks.html' title='RIA Frameworks'/><author><name>juanfri</name><uri>http://www.blogger.com/profile/11121074568351167467</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5876243571774162043.post-7339757934954051014</id><published>2008-09-26T10:53:00.000-07:00</published><updated>2008-12-16T03:02:51.649-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='macos'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><title type='text'>Viewing CHM files in Mac OS Leopard</title><content type='html'>Unfortunately the very best operative system in the world, &lt;a href="http://en.wikipedia.org/wiki/Mac_OS_X"&gt;Mac Os X&lt;/a&gt;, version 10.5 (Leopard) doesn't have native support for viewing CHM files.&lt;br /&gt;&lt;br /&gt;But I found a free and multiplatform application, &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=87007"&gt;xCHM&lt;/a&gt; that opens these kind of files with a clear interface.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AhAWXnRREKM/SN0kojVnyCI/AAAAAAAABNo/pH5xkPwXI9M/s1600-h/Picture+3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_AhAWXnRREKM/SN0kojVnyCI/AAAAAAAABNo/pH5xkPwXI9M/s320/Picture+3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5250393019683162146" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks to &lt;a href="http://davidtse916.wordpress.com/2007/12/21/viewing-chm-files-under-mac-os-x/"&gt;David's Logbook&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5876243571774162043-7339757934954051014?l=hugadeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hugadeveloper.blogspot.com/feeds/7339757934954051014/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5876243571774162043&amp;postID=7339757934954051014' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/7339757934954051014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/7339757934954051014'/><link rel='alternate' type='text/html' href='http://hugadeveloper.blogspot.com/2008/09/viewing-chm-files-in-mac-os-leopard.html' title='Viewing CHM files in Mac OS Leopard'/><author><name>juanfri</name><uri>http://www.blogger.com/profile/11121074568351167467</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_AhAWXnRREKM/SN0kojVnyCI/AAAAAAAABNo/pH5xkPwXI9M/s72-c/Picture+3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5876243571774162043.post-6490679014887134914</id><published>2008-09-23T02:43:00.000-07:00</published><updated>2008-09-23T03:37:02.887-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web-services'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='axis2'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='jet'/><category scheme='http://www.blogger.com/atom/ns#' term='templates'/><title type='text'>Generating code from code with Eclipse JET</title><content type='html'>In my current project we need to generate two kind of artifacts, some Java classes that represents  bottom up Web Services, and very few XML, the &lt;a href="http://ws.apache.org/axis2/"&gt;Axis2&lt;/a&gt; descriptor to expose these services.&lt;br /&gt;&lt;br /&gt;I admit it, &lt;a href="http://en.wikipedia.org/wiki/XSLT"&gt;XSLT&lt;/a&gt; engines scares me! I've been looking for solutions and it seems that the best approach are template engines. The code to generate is very simple, but i want an MVC approach. I can generate XML with standard apis, using java.xml.Transformer but i didn't found a similar approach to metagenerate Java with a predefined view and controller. Anyway it would be two different apis to manage.&lt;br /&gt;&lt;br /&gt;A Template engine is a unified approach for the two artifacts generation, it generates a output based in a template in a language which works with the model. &lt;br /&gt;&lt;br /&gt;The template language  is the main difference between Apache Velocity and Eclipse JET. Velocity seems more powerful but JET has the advantage that the templates are written in JSP syntax. The other main advantage is that is integrated in Eclipse IDE environment to generate a Java class from the template that performs the transformation, so you can use the template "compiled" in a standalone environment.&lt;br /&gt;&lt;br /&gt;As JET is part of &lt;a href="http://www.eclipse.org/modeling/emf/"&gt;Eclipse Modeling Framework EMF&lt;/a&gt;, you can use in combination with an EMF meta-model, but we are not going to use this feature.&lt;br /&gt;&lt;br /&gt;The next release of JET, JET2 is included in another Eclipse subproject, &lt;a href="http://www.eclipse.org/modeling/m2t/"&gt;M2T&lt;/a&gt; and it will include new interesting features like &lt;a href="http://java.sun.com/products/jsp/jstl/"&gt;JSTL&lt;/a&gt; tags and a powerful visual editor. &lt;br /&gt;&lt;br /&gt;As there's not a stable release of JET2 and for our requirements version 1 is capable and runs with our Eclipse version we are going to use the stable release.&lt;br /&gt;&lt;br /&gt;If you want to start with JET (version 1) these are two fantastic introductory resources:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.eclipse.org/articles/Article-JET/jet_tutorial1.html"&gt;JET Tutorial, part 1&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.eclipse.org/articles/Article-JET2/jet_tutorial2.html"&gt;JET Tutorial, part 2&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5876243571774162043-6490679014887134914?l=hugadeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hugadeveloper.blogspot.com/feeds/6490679014887134914/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5876243571774162043&amp;postID=6490679014887134914' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/6490679014887134914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/6490679014887134914'/><link rel='alternate' type='text/html' href='http://hugadeveloper.blogspot.com/2008/09/in-my-current-project-we-need-to.html' title='Generating code from code with Eclipse JET'/><author><name>juanfri</name><uri>http://www.blogger.com/profile/11121074568351167467</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5876243571774162043.post-7542316009515189270</id><published>2008-09-23T01:32:00.000-07:00</published><updated>2008-09-23T03:36:28.602-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><title type='text'>Why a blog? Why in English?</title><content type='html'>Well, this is my first entry, at least the first with text.&lt;br /&gt;&lt;br /&gt;Why a blog? I've been heard about them, and it seems cool! &lt;br /&gt;&lt;br /&gt;I would like to start talking about Software Development,Architecture, practices, and then, we will see.. and i'd like to improve my English too, &lt;br /&gt;&lt;br /&gt;So, sorry for the posible mistakes!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5876243571774162043-7542316009515189270?l=hugadeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hugadeveloper.blogspot.com/feeds/7542316009515189270/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5876243571774162043&amp;postID=7542316009515189270' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/7542316009515189270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/7542316009515189270'/><link rel='alternate' type='text/html' href='http://hugadeveloper.blogspot.com/2008/09/why-blog-why-in-english.html' title='Why a blog? Why in English?'/><author><name>juanfri</name><uri>http://www.blogger.com/profile/11121074568351167467</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5876243571774162043.post-5369383172678124541</id><published>2008-09-04T00:58:00.000-07:00</published><updated>2008-09-23T03:35:52.609-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='otros'/><title type='text'>Do it!</title><content type='html'>&lt;embed src="http://blip.tv/play/gYwjwZJqjdEh" type="application/x-shockwave-flash" width="640" height="390" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;From &lt;a href="http://www.microsiervos.com/archivo/humor/abraza-a-un-programador.html"&gt;Microsiervos&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5876243571774162043-5369383172678124541?l=hugadeveloper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hugadeveloper.blogspot.com/feeds/5369383172678124541/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5876243571774162043&amp;postID=5369383172678124541' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/5369383172678124541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5876243571774162043/posts/default/5369383172678124541'/><link rel='alternate' type='text/html' href='http://hugadeveloper.blogspot.com/2008/09/do-it.html' title='Do it!'/><author><name>juanfri</name><uri>http://www.blogger.com/profile/11121074568351167467</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
