<?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-12365887</id><updated>2012-01-06T16:25:17.176-08:00</updated><category term='microsoft'/><category term='job'/><title type='text'>Random Roni</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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>33</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-12365887.post-2622431657385959127</id><published>2008-07-30T17:14:00.000-07:00</published><updated>2008-07-30T17:36:06.605-07:00</updated><title type='text'>Comments on quality</title><content type='html'>&lt;a href="http://www.25hoursaday.com/weblog/"&gt;Dare &lt;/a&gt;recently made a comment about quality from my previous post in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;SaaS&lt;/span&gt;. Here is right in what I meant is better accountability in SLA, but I was also thinking to about quality that is not in the software itself, but rather from customer service and accountability.&lt;br /&gt;&lt;br /&gt;When Apache breaks in an enterprise, there is no one to call, no one to claim to directly, no one to fire (except the guy who made the decision to go with open source). There is the desire that the feature/bug be addressed in a timely manner. Also, new features are not driven by existing customers as much as when someone is paying real $$$.&lt;br /&gt;&lt;br /&gt;If GE goes to Apache foundation and tells them to fix something, they would say: stay in line (or worse: that is stupid, fix your process). If GE goes to a big software company they are paying top dollars to and say the same, the answer will be: yes sir.&lt;br /&gt;&lt;br /&gt;Also, if users start complaining that they don't understand how to configure &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;apache&lt;/span&gt;, the best solution is to say: hire an expensive consultant or learn it. The quality that comes from other service because of big margins is: call our technical support, or read the tons of books, or heck..we'll even send you an expert on it.&lt;br /&gt;&lt;br /&gt;As a matter of fact, this is exactly what Red Hat sells. They may not sell the software, but all that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;devs&lt;/span&gt; they have are either paid by support money they get from their users or from developers working for another big company that pays them kind of in the same way. Either way, the users always has to pay. There is no such things as a free lunch.&lt;br /&gt;&lt;br /&gt;SaaS may be similar in that the margins are very very very small. You need tremendous scale to support infrastrucutre or transfer the cost to someone else. Ads don't have a place in productivity applications, so that cost is transfered to the user by subscription. What SaaS as basically done is said: we'll charge you much less for the same thing, and we are able to do this by economies of scale. And we'll also reduce your TCO because we'll do the upgrades and deployment for you. But nothing prevents a shrinked wrapped software company to say: wel'll deploy and fix all your problems for free, and we'll give you free upgrades for life. Just don't burden us with servers costs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-2622431657385959127?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/2622431657385959127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=2622431657385959127' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/2622431657385959127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/2622431657385959127'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2008/07/comments-on-quality.html' title='Comments on quality'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12365887.post-295429192005284458</id><published>2008-07-22T23:25:00.000-07:00</published><updated>2008-07-22T23:55:57.511-07:00</updated><title type='text'>SaaS thoughts</title><content type='html'>Dare, a coworker has posted an &lt;a href="http://www.25hoursaday.com/weblog/2008/07/21/SoftwareAsAServiceWhenYourBusinessModelBecomesAParadox.aspx"&gt;article&lt;/a&gt; about Software as a Service (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;SaaS&lt;/span&gt;) and the paradox it creates for software vendors. His thoughts are on target when he compares the Innovator's &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Dilema&lt;/span&gt; theory that and cheaper and seemingly worse technology overtakes a higher profit and apparently better technology over time.&lt;br /&gt;&lt;br /&gt;Even though I agree with Dare, I sometimes remember the multiple rises and falls of server/desktop environments and the prediction of how free software models will topple the old &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;shrinked&lt;/span&gt; wrap ones. With &lt;a href="http://en.wikipedia.org/wiki/Linux"&gt;Linux &lt;/a&gt;turning  17 years or &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;OpenOffice&lt;/span&gt; at age 8, I still wonder how come they haven't fulfilled their rein the world destines. That is because things have to be put in perspective and analyzed case by case. (before you flame me, I know that Linux and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;OO&lt;/span&gt; is pervasive but you can't argue that the prediction of Linux ruling the desktop has not materialized and Windows still dominates even the server)&lt;br /&gt;&lt;br /&gt;The main reason I believe that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;shrinked&lt;/span&gt; wrapped software still has plenty of life against &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;SaaS&lt;/span&gt; (or open source) is because it brings something that neither free nor cloud can give easily: accountability and quality. Both things go hand in hand and cost a lot of money, things that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;SaaS&lt;/span&gt; has little of (low margins) and OS has none.&lt;br /&gt;&lt;br /&gt;Accountability is probably the biggest one. Imagine a manager explaining that the company went down last weekend because your cloud provider was not working. Not easy to point fingers here: most will points to the manager. And this is not the same as electricity. Just because you can outsource marketing, back end processing, etc, doesn't mean you do it. You still keep some things close while you outsource others. Same with computing. You may outsource backup processing, peak load, and similar, but not the main processing.&lt;br /&gt;&lt;br /&gt;Then comes quality. Quality is not only in service but also in products. To be fair, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Salesforce&lt;/span&gt;, Linux desktop (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;KDE&lt;/span&gt;==windows or Mac) &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;OpenOffice&lt;/span&gt; (==MS Office) and other alternatives take most of use-and-feel from existing software that were paid by larger profits.&lt;br /&gt;&lt;br /&gt;Finally, comes the whole processing power in our hands thing. If we offload everything to the cloud, why do we need all that processing power for? I claim that software needs a bigger transformation, like smart AI, &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;context&lt;/span&gt; awareness and Data Mining and use the cloud like a huge database. There is where I feel software + services will go.&lt;br /&gt;&lt;br /&gt;I drifted off topic, like always, but anyways...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-295429192005284458?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/295429192005284458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=295429192005284458' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/295429192005284458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/295429192005284458'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2008/07/saas-thoughts.html' title='SaaS thoughts'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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-12365887.post-3253577457061907983</id><published>2008-06-30T18:25:00.000-07:00</published><updated>2008-06-30T18:27:06.095-07:00</updated><title type='text'>Howto: Argentinean BBQ == Asado</title><content type='html'>One of the things I miss the most from home is the food. Being from Argentina, that means beef in particular. Argentina is known for their meat, not only because of its quality, but because of the quantity. We eat almost every other weekend an average of 1.1 lb of meat per person in a feast called &lt;a href="http://en.wikipedia.org/wiki/Asado"&gt;Asado&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Asado is nothing more than glorified BBQ that you share with friends and family, where multiple different types of 'cuts' are served. The most famous cuts are asado de tira (or costilas), bife de chorizo, vacio, matambre, entraña. The food is prepared using coal (or preferably wood coal) to give the meat a better taste. We also marinate the food with an assortment of things and serve it together with empanadas and salads, but the main event is the meat.&lt;br /&gt;&lt;br /&gt;While trying to make an Asado I was faced with the problem of getting those cuts (and the price of course). After almost 2 years here, I have found the way to get them and just wanted to share the knowledge. Like in Argentina, the secret is to know a butcher. Any butcher can do, even those you find in your local convenience store. I'm in Seattle, so I go to my local Safeway ask specifically for the following:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Asado de tira:&lt;/span&gt; ask for ribs, flaken style, 2 inch wide and as much meat on top as possible. &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Entraña&lt;/span&gt;:  ask for skirt, and tell him to leave the fat that comes on top.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Matambre&lt;/span&gt;:  rolled flank stake. This is very easy to get at any grocery store, although in the US they remove most of the fat. You can ask them to keep it.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Vacio&lt;/span&gt;: flank stake, although not quite. This is hard to get right as well. It is flank stake together with sirloin, so it is hard to ask.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Bife de Chorizo&lt;/span&gt;: I found this hard to get. You should ask for New York style Strip steak.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-3253577457061907983?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/3253577457061907983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=3253577457061907983' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/3253577457061907983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/3253577457061907983'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2008/06/one-of-things-i-miss-most-from-home-is.html' title='Howto: Argentinean BBQ == Asado'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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-12365887.post-8133954720307190977</id><published>2008-06-27T21:50:00.000-07:00</published><updated>2008-06-27T21:57:13.773-07:00</updated><title type='text'>Friendfeed vs. Facebook</title><content type='html'>Today I read an interesting &lt;a href="http://www.25hoursaday.com/weblog/2008/06/26/ThePopularityOfFriendFeedIsABugInTheSocialSoftwareEcosystem.aspx"&gt;entry&lt;/a&gt; from Dare about his prediction of how much time it would take F/B to mimic Friendfeed. I actually always thought about it, because after all, FF is just a fancier feed aggregator that people have to configure while everyone else is already using F/B.&lt;br /&gt;&lt;br /&gt;I'm really starting to hate the fragmentation so I welcome F/B additions. Although I think it is really irrelevant as FF is becoming the hub for Twitter frustrutaed users.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-8133954720307190977?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/8133954720307190977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=8133954720307190977' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/8133954720307190977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/8133954720307190977'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2008/06/friendfeed-vs-facebook.html' title='Friendfeed vs. Facebook'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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-12365887.post-3037297407209973090</id><published>2008-06-17T00:46:00.000-07:00</published><updated>2008-06-17T00:48:33.776-07:00</updated><title type='text'>Active Sharing vs. Passive Sharing</title><content type='html'>Came home and was reading about Supernova Conference down in the Valley. Something resonated with me was a talk by Joe &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Kraus&lt;/span&gt; (a Google PM). Although he was talking about &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Google's&lt;/span&gt; Open Social, I was more interested in his framing of Active Sharing vs. Passive Sharing (the thinking revolves around something our group is working, but I like the Active/Passive term more).&lt;br /&gt;&lt;br /&gt;The difference is kind of obvious. Active sharing, you are using email or other direct communication to 'share' some information with someone. You consciously decide the receivers. During this process you may miss people, may not be sure if they are interested or simply don't consider the information that important (people can become arrogant or &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;spammers&lt;/span&gt; for sharing certain things, right?) In the presentation, Joe calls it high social activation energy. I think he misses the point that this is not only social, but that is because I believe he sees things through the Open Social lens.&lt;br /&gt;&lt;br /&gt;The passive sharing is when I don't necessary send people direct communication, but relay on he connections to the people I have to get notified for me. There is a certain contract with this form of communication (that is represented most prominently in the form of feeds) that the recipient can access the information if they choose to and if they find it interesting. From there, they can even navigate and discover more information I left open to other people.&lt;br /&gt;&lt;br /&gt;F/B personifies this example as it enables, through the social connections, the ability to notify my friends and let them filter out what they want. However, F/B lacks a compelling active sharing mechanism, or at least one as solid as email. They have direct messaging and even chat now, but they are not tightly integrated into each other as well as the feed. Before F/B, people relied on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;RSS&lt;/span&gt; as the feed. Blogs, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;flickr&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;youtube&lt;/span&gt; allowed to passively sharing news, photos and video while attracting eye balls to a site. But &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;RSS&lt;/span&gt; is not as friendly as F/B connections which I'm sure make uploading pics in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;flickrs&lt;/span&gt; less popular these days (F/B statistics &lt;a href="http://www.facebook.com/press/info.php?statistics"&gt;here &lt;/a&gt;and &lt;a href="http://blog.facebook.com/blog.php?post=2406207130"&gt;here&lt;/a&gt;). Nonetheless, because of their demographics and branding, they appeal more for the "social" interactions, and not the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;IW&lt;/span&gt; one, which is where I believe we should focus on.&lt;br /&gt;&lt;br /&gt;The most critical discussion though remains how to move users from one model to the other, without alienating them of their current habits. I have some ideas (that may not work), but was more interested in yours.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-3037297407209973090?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/3037297407209973090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=3037297407209973090' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/3037297407209973090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/3037297407209973090'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2008/06/active-sharing-vs-passive-sharing.html' title='Active Sharing vs. Passive Sharing'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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-12365887.post-4003176990492439922</id><published>2008-05-01T23:48:00.000-07:00</published><updated>2008-05-01T23:51:51.374-07:00</updated><title type='text'>Getting sucked into the borg</title><content type='html'>I printed a large sign in my office that read "avoid conforming to the norm". I worte as a reminder to myself that I now belong to a big company, and that in that company, you are normally just a cog.&lt;br /&gt;&lt;br /&gt;I believe that my group is not like that, and at moments, feel like a smaller company within a company. But lately I'm starting to doubt myself. Everything takes sooo long to get done. I wish I could code so I can help people get some of the stuff done. Í wonder what good am I doing planning if I have to wait 'till my stuff gets done. Unfortunatly, I'm conforming to the norm and adapting to the way things get done.&lt;br /&gt;&lt;br /&gt;I need to get strenght to fight this. I must admit that there is a reason why MS products are not that used today and I wish...just wish...to be able to change a litlle bit of that. Lets just see.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-4003176990492439922?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/4003176990492439922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=4003176990492439922' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/4003176990492439922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/4003176990492439922'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2008/05/getting-sucked-into-borg.html' title='Getting sucked into the borg'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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-12365887.post-4456030491565937424</id><published>2008-03-30T16:01:00.000-07:00</published><updated>2008-03-30T22:57:50.608-07:00</updated><title type='text'>Apple wired article</title><content type='html'>Yesterday I read a wired article of how Apple creates their products. Working at MS right now, it is interesting to me the comparison of how Apple vs. the rest of the industry, where is seems like most is designed by committee. The article highlights that Apple products can only be a result of employees having less power and that most decisions are made by a benevolent dictator (AKA Steve Jobs).&lt;br /&gt;&lt;br /&gt;This model of not giving employees’ power only works when Steve is around, and is the reason why he is so revered by Apple. When Steve was out, Apple did not innovate; the model did not work, and the rest of the industry passed them. Now that Jobs is back, it seems like a great model to follow. So, the reality here is that, simply put, &lt;strong&gt;Steve Jobs has good taste&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Witness other companies that have higher level executive making decisions on what is good for customers: mobile companies. They demand certain designs from manufacturers and had (until the iPhone) the final call. Some executive have really bad taste and are the opposite of hip-Steve. Thus the need to give control back to employees so they can innovate.&lt;br /&gt;&lt;br /&gt;But having employees control causes another problem. How do you create a seamless user experience if you have every single person thinking about their own feature in a different way. The only solution I see is to have a good process to review and merge different feature into one consistent way. I've seen these processes at work, but &lt;strong&gt;they tend to only focus on review and fail at the merging stage&lt;/strong&gt;. This is why you see some products as a frankefeature of things, instead of a consistent whole.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-4456030491565937424?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/4456030491565937424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=4456030491565937424' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/4456030491565937424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/4456030491565937424'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2008/03/apple-wired-article.html' title='Apple wired article'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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-12365887.post-5442042560299561452</id><published>2008-03-26T13:41:00.001-07:00</published><updated>2008-03-26T18:23:00.491-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='job'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Why I joined Microsoft?</title><content type='html'>&lt;p&gt;So I finished school, joined a big corporation, received my first 3 paychecks and settle down. Honeymoon period is over...Now I can reflect why I joined MS Office Live Workspace.Even more...why as a Program Manager when I'm a hacker at heart?&lt;/p&gt;  &lt;p&gt;The main reason is that I got a little bored of coding. I used to think that I am really good at it, and enjoy it a lot, but just didn't get the kick out of it as I used to. I love writing code because I like to see the program do what I want it to do. The problem in my career was that I had to do what other people wanted the computer to, even though it didn't make sense to me sometimes. &lt;/p&gt;  &lt;p&gt;In consulting companies, the decision was left to the client, which normally didn't care much for technology. This made my coding experience miserable. In product companies, the role normally falls to a Product Manager. Product Managers tend care about the product itself but are sometimes too focuses on the marketing aspect, pricing and other stuff that don't necessarily translate into what the product should do. &lt;/p&gt;  &lt;p&gt;In Microsoft, there is a special role called Program Manager that is responsible exactly for this middle piece of deciding what the software should do, without actually be responsible for coding it. This role objective is to translate (or parse) the costumer needs, which can be captured by a Product Manager, to a working software. Additionally, this role need to be able to make sure that all the parts are collaborating correctly to deliver that vision, without actually having the power of a programmer to code the things you would like. &lt;/p&gt;  &lt;p&gt;So far I'm happy and excited, although I feel sometimes the weigh of the Microsoft culture on me. It is difficult and irritating to work on some ideas and suddenly realize that they don't fit nicely with other people's items, and as a result, PM's compromise their work just to make sure their stuff get in, sacrificing the end product in the process. I guess this is the really challenge after all..getting people to do what you want them to do :)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-5442042560299561452?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/5442042560299561452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=5442042560299561452' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/5442042560299561452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/5442042560299561452'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2008/03/why-i-joined-microsoft.html' title='Why I joined Microsoft?'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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-12365887.post-4494910966082210575</id><published>2007-11-19T21:54:00.001-08:00</published><updated>2007-11-19T21:59:19.470-08:00</updated><title type='text'></title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_g_9MEdOyegY/R0J3G5--weI/AAAAAAAAEL0/ABHD9LJd7RI/s1600-h/Haloween.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_g_9MEdOyegY/R0J3G5--weI/AAAAAAAAEL0/ABHD9LJd7RI/s320/Haloween.jpg" alt="" id="BLOGGER_PHOTO_ID_5134797485683687906" border="0" /&gt;&lt;/a&gt;Ok, so although this is a 2006 picture, I still used the same costume as last year. I haven't yet posted the pictures on picasa and I also created this entry just to keep the blog a little bit alive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-4494910966082210575?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/4494910966082210575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=4494910966082210575' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/4494910966082210575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/4494910966082210575'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2007/11/ok-so-although-this-is-2006-picture-i.html' title=''/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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://2.bp.blogspot.com/_g_9MEdOyegY/R0J3G5--weI/AAAAAAAAEL0/ABHD9LJd7RI/s72-c/Haloween.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12365887.post-3902148567436927085</id><published>2007-08-14T08:07:00.000-07:00</published><updated>2007-08-14T08:44:30.446-07:00</updated><title type='text'>Paintball</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_g_9MEdOyegY/RsHNcsdAzdI/AAAAAAAAD9o/PzeHfQPS29c/s1600-h/spaceball2.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_g_9MEdOyegY/RsHNcsdAzdI/AAAAAAAAD9o/PzeHfQPS29c/s320/spaceball2.gif" alt="" id="BLOGGER_PHOTO_ID_5098582146012990930" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_g_9MEdOyegY/RsHNc8dAzeI/AAAAAAAAD9w/KmCERaXWFtM/s1600-h/spaceball4.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_g_9MEdOyegY/RsHNc8dAzeI/AAAAAAAAD9w/KmCERaXWFtM/s320/spaceball4.gif" alt="" id="BLOGGER_PHOTO_ID_5098582150307958242" border="0" /&gt;&lt;/a&gt;After finishing the summer semester, I organized to go with my friends to go and have a team-building experience: paintball!. I had never played this "game"before and was a little anxious about it, and I think all my other friends were as well.&lt;br /&gt;&lt;br /&gt;We drove about 20 minutes out of Pittsburgh and arrived to this outdoor field full of nice props. It was raining throughout the trip so this would add some interesting realism to the game. After getting our gear (a gun an a mask) we were explained the rules of safe playing and where taken to our first game. The game consisted of one team trying to run uphill through a forest and reach a fort where we had to plant a flag. The other team had to stay in the fort and repel the attack. I was in charge of taking the flag.&lt;br /&gt;&lt;br /&gt;After we reached the top of the hill we started getting shot at. I remember that I was worried about that point if I would "get into the game" and duck into the bushed and dirt. Ohhh boy did I crawled into the mud. After trying various strategies, we decided that I was going to have covering fire to help gain a higher ground. After I started running I received my first shot ever. In that particular moment you know if you like the game or not. The pain lasts only about a second, but I didn't care, all I wanted was to get there again with my team.&lt;br /&gt;&lt;br /&gt;We played all afternoon in different scenarios: old scrapyard,  inflatable obstacles, etc. Some had different rules like trying to get the other team out while others where more strategic in which you had to capture the enemy's flag.&lt;br /&gt;&lt;br /&gt;I've posted some pictures (&lt;a href="http://www.flickr.com/photos/twilightinvasion/sets/72157601415237308/"&gt;others are available here&lt;/a&gt;), but you have to get a feeling of what it is like to have 14 Software Engineers trying to shoot each other. Everyone has a strategy and think they are the smarter player, until they get a couple of shoots out of nowhere. Then every team start getting their own natural leader that organizes the assault and trusting the wisdom (and firing coverage) of the group.&lt;br /&gt;&lt;br /&gt;All in all, it was an amazing experience and I had a blast. I can't wait to go play this again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-3902148567436927085?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/3902148567436927085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=3902148567436927085' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/3902148567436927085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/3902148567436927085'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2007/08/paintball.html' title='Paintball'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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://2.bp.blogspot.com/_g_9MEdOyegY/RsHNcsdAzdI/AAAAAAAAD9o/PzeHfQPS29c/s72-c/spaceball2.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12365887.post-11962858334280378</id><published>2007-08-09T11:34:00.001-07:00</published><updated>2007-08-09T11:40:38.402-07:00</updated><title type='text'>Summer capstone project finished!</title><content type='html'>Wow!! I thought this day would never come. Today, the last day of my summer semester at the Masters of Software Engineering, we presented the project in which me and other 4 people worked for the last year.&lt;br /&gt;&lt;br /&gt;I've been involved in many projects as developer and manager, and I this has been the best project I have ever delivered: on time, on quality and above scope. I must say that some of the techniques learned in the program has helped me as team lead to achieve this goal. Off course, this would have been possible without my team mates. All exceptional individuals.&lt;br /&gt;&lt;br /&gt;So, if you are curious, the presentation slides can be found here (hope the stay there forever):&lt;br /&gt;http://dogbert.mse.cs.cmu.edu/MSE2007/Studio/EOSP_S3_Slides/SOS_S3EOSP2007.ppt&lt;br /&gt;&lt;br /&gt;Unfortunately, my semester is not yet over. In a couple of hours I have to go take a Data Mining exam. Then I''m done and I'm off to celebrating this rough year.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-11962858334280378?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/11962858334280378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=11962858334280378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/11962858334280378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/11962858334280378'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2007/08/summer-capstone-project-finished.html' title='Summer capstone project finished!'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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-12365887.post-940667381307914420</id><published>2007-08-03T08:21:00.000-07:00</published><updated>2007-08-03T08:21:44.075-07:00</updated><title type='text'>A picture from CMU</title><content type='html'>I was thinking that I have never posted any picture on my blog of my time in CMU. I found this nice picture of last year's Fall when my girlfriend (now wife :)) came to visit.&lt;br /&gt;&lt;br /&gt;What you&lt;a href="http://1.bp.blogspot.com/_g_9MEdOyegY/RrNIB8dAzcI/AAAAAAAAD9Y/z_HZhS6aSQ8/s1600-h/Picture+005.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_" style="CLEAR: both; FLOAT: right; MARGIN: 0px 0px 10px 10px" alt="" src="http://1.bp.blogspot.com/_g_9MEdOyegY/RrNIB8dAzcI/AAAAAAAAD9Y/z_HZhS6aSQ8/s320/Picture+005.jpg" border="0" /&gt;&lt;/a&gt; can see in the picture is on of the areas Carnegie Mellon. The small building behing me is called Hamerschlag Hall. The long towering building behind it is the Cathedral of Learning, par of the the University of Pittsburgh.&lt;div style='clear:both; text-align:RIGHT'&gt;&lt;a href='http://picasa.google.com/blogger/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbp.gif' alt='Posted by Picasa' style='border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;' align='middle' border='0' /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-940667381307914420?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/940667381307914420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=940667381307914420' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/940667381307914420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/940667381307914420'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2007/08/picture-from-cmu.html' title='A picture from CMU'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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/_g_9MEdOyegY/RrNIB8dAzcI/AAAAAAAAD9Y/z_HZhS6aSQ8/s72-c/Picture+005.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12365887.post-5157832972863066897</id><published>2007-08-03T01:33:00.000-07:00</published><updated>2007-08-03T01:37:46.184-07:00</updated><title type='text'>Almost there....</title><content type='html'>Well..its 4:30 am and I'm still awake. After a long year of pulling all nighters I'm starting to feel dizzy. I need a break and I need it soon. This last couple of days, knowing that the end of the semester is near is making every day more difficult.&lt;br /&gt;&lt;br /&gt;After this semester I will start pointing my guns in a new direction:finding what to do after CMU. Although, as my mentor says, I'm like a kid in a candy store here at, I want to go back to industry. The ideal setting would be to find something research-like. Lets see where the tide takes me in the next couple of months.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-5157832972863066897?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/5157832972863066897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=5157832972863066897' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/5157832972863066897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/5157832972863066897'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2007/08/almost-there.html' title='Almost there....'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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-12365887.post-5027498379388476201</id><published>2007-07-30T20:18:00.000-07:00</published><updated>2007-07-30T20:36:13.649-07:00</updated><title type='text'>Interesting summer semester</title><content type='html'>Even though I promised myself to write more I can't seem to find time.&lt;br /&gt;&lt;br /&gt;Well, its my fault. After all, as a grad student in the MSE program you are supposed to take at most 60 unit (a unit is computed as the average hours per week required in the course) but I got greedy and took 72 units. I couldn't help it. Too many interesting course and opportunities to venture into unknown territory.&lt;br /&gt;&lt;br /&gt;Ok, here are my courses this semester:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Studio III&lt;/span&gt;(48 units):  this is a core course. After 2 semesters or designing and preparing to create a search-and-rescue simulator for our client (DoD &lt;a href="http://www.l-3com.com/"&gt;L3-Communications&lt;/a&gt;). Last semester I was chief architect and this semester I've rotated to the role of Team Lead. The project was delivered on time and exceeding our client's expectations.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Statistics&lt;/span&gt;: (6 units): I took this course mainly as a refreshed to take data mining later on&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Data Mining&lt;/span&gt; (6 units): This course, although interesting lacks the depth I was expecting. We are learning classification methods and different techniques of data mining, but it lacks the mathematics in-depth that I was expecting to learn. At least I get a good hands on with some cool tools that I will be able to use later in my life&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Product Management in IT:&lt;/span&gt; I took this course so in the future I'm more adept at communicating with this group in a company. I was also curious to see what the responsibilities of a PM are, like building Product Marketing Plans and Strategy Plans...interesting indeed.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Independent Study-architecture evolution &lt;/span&gt;(6 units): this turned out to be pretty cool stuff indeed. A new group within CMU was formed lead by &lt;a href="http://www.cs.cmu.edu/%7Egarlan/"&gt;Dr. David Garlan&lt;/a&gt;. The group is in its initial phases and we are currently reading possible papers regarding the evolution of an architecture through time. It deals with how to reason about changes and what techniques and method exists to help this transition. This group was interesting not only because of the exposure of the people involved in it, but also because it helped me articulate my thoughts better. As my first splash into academia, I found it to be very challenging and entertaining at the same time.&lt;/li&gt;&lt;/ul&gt;Next semester I'm going to take it easier, maybe 36 units and audit the rest. No more stress and all nighters. I've been doing this for a year now and my body needs a rest (and the fact that my wife haven't seen me in a while :))&lt;br /&gt;&lt;br /&gt;As a glance of what where my past courses:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Managing Software development&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Formal Models&lt;/li&gt;&lt;li&gt;Methods: deciding what to design&lt;/li&gt;&lt;li&gt;Software Architecture&lt;/li&gt;&lt;li&gt;Managing Intellectual Capital Intensive Businesses&lt;/li&gt;&lt;li&gt;Real-time decision making with ERP&lt;/li&gt;&lt;li&gt;Developing Star performers&lt;/li&gt;&lt;li&gt;Analysis&lt;/li&gt;&lt;li&gt;Studio I &amp;amp; II&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;See you!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-5027498379388476201?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/5027498379388476201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=5027498379388476201' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/5027498379388476201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/5027498379388476201'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2007/07/interesting-summer-semester.html' title='Interesting summer semester'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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-12365887.post-7672787353280897562</id><published>2007-02-26T23:34:00.000-08:00</published><updated>2007-02-26T23:37:38.209-08:00</updated><title type='text'>Back to life</title><content type='html'>So, after about 6 months of feeling the pressures of life of being a Carnegie Mellon student I've decided to put some time aside and write a little bit of what is going on.&lt;br /&gt;&lt;br /&gt;Since I'll be here for another year I guess my thoughts will be mixed between the difficulties and daily chores of a grad student  as well as some insight of the new stuff I learn.&lt;br /&gt;&lt;br /&gt;Regardless of who reads this, it will be nice to see my thought down the road when I'm older.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-7672787353280897562?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/7672787353280897562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=7672787353280897562' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/7672787353280897562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/7672787353280897562'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2007/02/back-to-life.html' title='Back to life'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12365887.post-115428856470673939</id><published>2006-07-30T12:40:00.000-07:00</published><updated>2006-07-30T12:49:21.873-07:00</updated><title type='text'>Thinking about view objects with DDD</title><content type='html'>Continuing a &lt;a href="http://groups.yahoo.com/group/domaindrivendesign/message/3932"&gt;discussion &lt;/a&gt;that started in the DDD forum about how to display object in the UI layer, and a &lt;a href="http://sbtourist.blogspot.com/2006/07/constructing-view-objects-with-builder.html"&gt;post&lt;/a&gt; from Sergio about his solution using the Builder pattern, I wanted to add a few thoughts to an already interesting issue.&lt;br /&gt;&lt;br /&gt;First of all, I admit that the use of a Builder pattern doesn’t strike me as the best overall solution to all the view objects problems, but I liked the separation of concerns that it conveys. I would tend to keep the code away from the Façade because for me, the Façade is merely an entry point and a coordinator. &lt;br /&gt;&lt;br /&gt;Maybe we could solve this problem as with any other domain related problem. I think we are guilty of focusing too hard on technical issues and wanting to solve the problem with a silver bullet instead of realizing that this is simply a different domain in which we, as developers, are the domain experts. Perhaps we have should try to face this issue having in mind that our existing model (Employees and Office) and our screen requirements are the data we have about this domain. In this context, each use-case (or screen) has the information necessary to help us build a model: a model composed of view objects and some sort of repositories (Sergio’s Builder?). &lt;br /&gt;&lt;br /&gt;In several projects I was involved in it always surprised me how little one screen reuses view object code from the next (or most code except for UI components). It was like each developer coding a screen was living in complete isolation from the rest of the team. Perhaps giving the problem a more DDD approach we could start having a more supple design to this specific problem. At this stage, the use of a Builder pattern (or other pattern for that matter) could start to arise as deeper insight into our model.&lt;br /&gt;&lt;br /&gt;Summing things up, I don’t think we will ever reach a consensus on what is the “best way” of solving this issue. Some UI domain will be better solved with a particular model subset, while other will not. Sergio’s solution is an already digested solution to his domain but it isn’t fitting Jesse’s needs any more than a generic Cargo Shipping model (like the one in the book) would fit a real cargo company software. Nevertheless I will keep Sergio’s proposal (as well as others) as Patterns and/or starting points to address my future UI domain modeling.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-115428856470673939?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/115428856470673939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=115428856470673939' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/115428856470673939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/115428856470673939'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2006/07/thinking-about-view-objects-with-ddd.html' title='Thinking about view objects with DDD'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12365887.post-115263302519708588</id><published>2006-07-11T08:35:00.000-07:00</published><updated>2006-07-16T16:22:05.266-07:00</updated><title type='text'>Injecting into domain objects</title><content type='html'>As a proponent that a model should be rich and expressive I struggle in most project to avoid the anemic domain model anti-pattern. The post will use Eric Evans domain driven design terminology. &lt;br /&gt;&lt;br /&gt;I've sometimes participate in DDD forum and the some of the most recurring question is whether using Repositories (aka DAO but from a model POV) inside Entites is a good thing. My belief is that most of the time it is a necessary thing if you want to avoid using services for everything but the simplest of operations inside your model. So if your are using an ORM and Spring (defacto web app architecture nowadays) the problem arises on how to inject the repository implementation (the DAO implementation) inside the instantiated objects hibernate or another ORM is doing the instantiation instead of Spring. I will not detail on how to do this but just point to 2 blog entries that explain this better than I do. &lt;br /&gt;&lt;br /&gt;If you are using the newest Spring 2.0 this issue is actually addressed and is explained &lt;a href="http://debasishg.blogspot.com/2006/07/spring-20-aop-spruce-up-your-domain.html"&gt;here&lt;/a&gt; and &lt;a href="http://chris-richardson.blog-city.com/migrating_to_spring_2_part_3__injecting_dependencies_into_en.htm"&gt;here&lt;/a&gt;. There are some &lt;a href="http://www.digizenstudio.com/blog/2006/02/06/the-circular-bean-reference-problem-in-spring-20s-arbitrary-domain-object-wiring/"&gt;things&lt;/a&gt; to note if you're using hibernate.&lt;br /&gt;If you are using an older version on Spring you have other options which are discussed &lt;a href="http://www.digizenstudio.com/blog/2005/06/07/inject-into-domain-objects/"&gt;here &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hope it helps someone out there. I know it will help me again to have the information readily available here :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-115263302519708588?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/115263302519708588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=115263302519708588' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/115263302519708588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/115263302519708588'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2006/07/injecting-into-domain-objects.html' title='Injecting into domain objects'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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-12365887.post-115213082977260223</id><published>2006-07-05T08:50:00.000-07:00</published><updated>2006-07-11T07:27:37.376-07:00</updated><title type='text'>Custom data exception with Spring + hibernate</title><content type='html'>Today a colleague of mine (Poli) came asking for a way to convert error codes produced in stored procedures in an Oracle legacy database. The project was using hibernate and spring.&lt;br /&gt;&lt;br /&gt;Out first reaction was to dig into hibernate and look for mechanisms to intercept exception but unfortunately neither hibernate interceptors or the new event system has support for a onException or onError pointcut. We quickly turned to spring and realized this was actually a better idea since spring already does it own convention of multiple exceptions into its coherent exception hierarchy.&lt;br /&gt;&lt;br /&gt;What we ended up doing was this:&lt;br /&gt;1)  Create your own exception. Lets call it  MyCustomException (what and original name)&lt;br /&gt;&lt;br /&gt;2)  Copy sql-error-codes.xml from Spring source to your classpath.&lt;br /&gt;&lt;br /&gt;3)  Modify the copied sql-error-codes.xml and add your own entry in the database dialect you are using (MS-SQL, Oracle, etc). We added the 20999 code to Oracle so our bean definition looked something like this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;bean id="Oracle" class="org.springframework.jdbc.support.SQLErrorCodes"&amp;gt;&lt;br /&gt;    &amp;lt;property name="badSqlGrammarCodes"&amp;gt;&amp;lt;value&amp;gt;900,903,904,917,936,942,17006&amp;lt;/value&amp;gt;&amp;lt;/property&amp;gt;&lt;br /&gt;    &amp;lt;property name="dataIntegrityViolationCodes"&amp;gt;&amp;lt;value&amp;gt;1400,1722,2291&amp;lt;/value&amp;gt;&amp;lt;/property&amp;gt;&lt;br /&gt;    &amp;lt;property name="cannotAcquireLockCodes"&amp;gt;&amp;lt;value&amp;gt;54&amp;lt;/value&amp;gt;&amp;lt;/property&amp;gt;&lt;br /&gt;    &amp;lt;property name="customTranslations"&amp;gt;&lt;br /&gt;        &amp;lt;list&amp;gt;&lt;br /&gt;            &amp;lt;bean class="org.springframework.jdbc.support.CustomSQLErrorCodesTranslation"&amp;gt;&lt;br /&gt;                &amp;lt;property name="errorCodes"&amp;gt;&amp;lt;value&amp;gt;20999&amp;lt;/value&amp;gt;&amp;lt;/property&amp;gt;&lt;br /&gt;                &amp;lt;property name="exceptionClass"&amp;gt;&amp;lt;value&amp;gt;MyCustom&amp;lt;/value&amp;gt;&amp;lt;/property&amp;gt;&lt;br /&gt;            &amp;lt;/bean&amp;gt;&lt;br /&gt;        &amp;lt;/list&amp;gt;&lt;br /&gt;    &amp;lt;/property&amp;gt;&lt;br /&gt;&amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Note the use of CustomSQLErrorCodesTranslation to set a special bean we will look at later. Later you input the errorCodes that you should trap and the exception it should throw. What puzzeles is why I need to copy the entire sql-error-codes.xml. Maybe someone can check if this actually is needed or not.&lt;br /&gt;&lt;br /&gt;4)  In you hibernate respository or DAO make:&lt;br /&gt;    a)  If you make use of Spring hibernateTempalate and callback Spring will automatically wrap you exceptions. It will look something like this (in this case I’m not inheriting from HibernateDAOSupport from Spring that should make this could simpler)&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public Collection loadProductsByCategory(final String category) throws DataAccessException {&lt;br /&gt;    HibernateTemplate ht = new HibernateTemplate(this.sessionFactory);&lt;br /&gt;    return (Collection) ht.execute(new HibernateCallback() {&lt;br /&gt;        public Object doInHibernate(Session session) throws HibernateException {&lt;br /&gt;            Query query = session.createQuery("from test.Product product where product.category=?");&lt;br /&gt;            query.setString(0, category);&lt;br /&gt;            return query.list();&lt;br /&gt;        }&lt;br /&gt;    });&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;    b)  If you don’t use callback you’ll have to tell Spring to do the exception convertion explicitly like:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;public Collection loadProductsByCategory(String category) throws DataAccessException, MyException {&lt;br /&gt;&lt;br /&gt;    Session session = getSession(getSessionFactory(), false);&lt;br /&gt;    try {&lt;br /&gt;        List result = session.find("from test.Product product where product.category=?",category, Hibernate.STRING);&lt;br /&gt;        if (result == null) {&lt;br /&gt;            throw new MyException("invalid search result");&lt;br /&gt;        }&lt;br /&gt;        return result;&lt;br /&gt;    } catch (HibernateException ex) {&lt;br /&gt;        throw SessionFactoryUtils.convertHibernateAccessException(ex);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;    As you can see, there is a call to convertHibernateAccessException that converts the hibernate exception to the defined Spring hierarchy.&lt;br /&gt;&lt;br /&gt;Now you can have typed exceptions thrown from your repositories instead of nasty generic Hibernate or JDBC exceptions. Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-115213082977260223?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/115213082977260223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=115213082977260223' title='29 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/115213082977260223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/115213082977260223'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2006/07/custom-data-exception-with-spring.html' title='Custom data exception with Spring + hibernate'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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>29</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12365887.post-115198013569059725</id><published>2006-07-03T19:20:00.000-07:00</published><updated>2006-07-03T19:28:55.706-07:00</updated><title type='text'>Cell phone carriers opening their gardens</title><content type='html'>It seems that we weren't so behind in South America vs. the US in matters of cell phone openness. It seems that in the US carrier also had a closed garden infrastructure like in other parts of the worlds fending off would-be startup to use their network to create new products to post content online.&lt;br /&gt;&lt;br /&gt;A recent &lt;a href="http://www.technologyreview.com/read_article.aspx?id=17079&amp;amp;ch=infotech"&gt;news &lt;/a&gt;has shown that at least this is changing an several 2 startups &lt;a href="http://www.q121.com/"&gt;Q121 &lt;/a&gt;and &lt;a href="http://www.rabble.com/"&gt;Rabble &lt;/a&gt;are already taking advantage of this new scenario to create a better improve social networks using mobile phones. In an interesting analogy (similar to a previous link of mine) the article goes on saying that '&lt;span id="article_body"&gt;This "walled garden" concept harkens back to the closed dial-up computer networks of yesteryear, such as AOL, Compuserve, and Prodigy&lt;/span&gt;'&lt;br /&gt;&lt;br /&gt;This is a great step forward for the mobile phone to become the next computing platform.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-115198013569059725?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/115198013569059725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=115198013569059725' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/115198013569059725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/115198013569059725'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2006/07/cell-phone-carriers-opening-their.html' title='Cell phone carriers opening their gardens'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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-12365887.post-115005915190731870</id><published>2006-06-11T13:43:00.000-07:00</published><updated>2006-06-11T13:52:31.923-07:00</updated><title type='text'>1st class - distance learning</title><content type='html'>Believe it or not I'm a student again. Classes have begun for me in the form of distance learning. This is the first course of CMU's Master in Soft. Engineering (and the first distance course I ever take in my life). The course will be about the Personal Software Process (PSP), basically a way to measure one's personal effort and improve on it. It draws on the basics of the CMM and applies forces you to log your coding, design and testing time, defect types and where they were fixed etc., un hopes of doing a better job at estimating your future development efforts.&lt;br /&gt;&lt;br /&gt;For the course I was given a DVD with recorded lectures that I have to watch on certain days with addition to reading some chapters from the "A Discipline for Software Engineering" from Watts Humphrey. Every week we also get into a java based virtual classroom where we basically chat and ask questions to our instructor. So far there has been nothing really new except some statistics. Hope it gets more useful down the road.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-115005915190731870?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/115005915190731870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=115005915190731870' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/115005915190731870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/115005915190731870'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2006/06/1st-class-distance-learning.html' title='1st class - distance learning'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12365887.post-114789674726995421</id><published>2006-05-17T13:07:00.000-07:00</published><updated>2006-05-17T13:12:27.283-07:00</updated><title type='text'>PSP distance learning</title><content type='html'>I thought I would be able to rest these couple of weeks before going to Pittsburgh to study but it seems I have to start studying before that. Actually I started taking the dust of my learning-mode brain and read a few book on discreet math and a bit of algorithms, not too deeply, but just to review a few forgotten things and refresh mi mind and help lower the shock that will be studying again 24/7.&lt;br /&gt;&lt;br /&gt;But is seems CMU is going to give me a hand and throw a distance course my way that is to start on may 29th: Personal Software Process. I already received a DVD with distance lectures (videos) and bought the book; what I peeked so far looked interesting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-114789674726995421?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/114789674726995421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=114789674726995421' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/114789674726995421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/114789674726995421'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2006/05/psp-distance-learning.html' title='PSP distance learning'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12365887.post-114680169589726497</id><published>2006-05-04T20:41:00.000-07:00</published><updated>2006-05-04T21:01:35.933-07:00</updated><title type='text'>Sending papers in</title><content type='html'>&lt;p class="MsoNormal"&gt;What a busy month this was!!&lt;br /&gt;&lt;br /&gt;After receiving CMU acceptance letter I had to go and get funding, plan a "what if" scenery with my personal life (read girlfriend) and how to make a clean exist out of my current employment, so I had little time to write. Also, MSE program director David Garlan was visiting &lt;st1:country-region st="on"&gt;&lt;st1:place st="on"&gt;Argentina&lt;/st1:place&gt;&lt;/st1:country-region&gt; so I got a chance to be up close and personal with him. For those who don't know him, Dr. David wrote several books on software architecture, formal methods and other interesting stuff besides being a very avid tango dancer. He is a very sharp and interesting person to talk to.&lt;br /&gt;&lt;br /&gt;After much discussion with other international students I got to realize that financially speaking, one has to get enough money to start college and plan on getting funding along the way in order to finish it, instead of coping with the entire cost of the program at the beginning. After the first 8 months, most former students seem to agree that a student loan, even without a &lt;st1:country-region st="on"&gt;&lt;st1:place st="on"&gt;US&lt;/st1:place&gt;&lt;/st1:country-region&gt; co-signer, is possible (but with a higher interest rate). So thinking about college as an investment, I have enough to start it but I’ll have to figure out how to finish it along the way. Once I’m out I’m hopeful I’ll be able to repay my debts. So after sending in most documentation all I have to do is wait for the I20, a special form sent by the University that allows student to obtain F1 visas to study in the &lt;st1:place st="on"&gt;&lt;st1:country-region st="on"&gt;US&lt;/st1:country-region&gt;&lt;/st1:place&gt;. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;To close this posting, I received today an email about some distance course preparation before attending campus that is supposed to start at the en of May, so I'll keep writing on about that in the future. Right now I'm really scared on how all this will turn out hoping I'm making the right choice. Of course, I'm aslo very very excited to start...what a contradiction right?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-114680169589726497?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/114680169589726497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=114680169589726497' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/114680169589726497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/114680169589726497'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2006/05/sending-papers-in.html' title='Sending papers in'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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-12365887.post-114417535818238862</id><published>2006-04-04T10:57:00.000-07:00</published><updated>2006-04-04T13:24:21.213-07:00</updated><title type='text'>Java from Scratch - part II</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;A few week back I &lt;a href="http://roniburd.blogspot.com/2006/02/starting-j2ee-project-from-scratch.html"&gt;posted &lt;/a&gt;about how long it was since I've built anything with java from scratch. What I want to do in the long run is to produce a DDD oriented projects with hibernate+spring. Bear in mind the last time I used java was with EJBs and JBuilder 8.&lt;br /&gt;&lt;br /&gt;So after reading about the myriad of different options that are in the Java world I decided not to try to configure everything for myself and instead rely on a "template" project that would help me. I went with AppFuse to kick start the project since it comes with a mixture of framework decisions you can dream of, from hibernate, IBATIS, Spring and others to JSP, Tapestry and JSF for presentation with included security, transaction support and even &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;AJAX&lt;/st1:place&gt;&lt;/st1:City&gt;..&lt;br /&gt;&lt;br /&gt;So here are the dummy proof steps I followed:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Getting started: Java, Ant, Tomcat and MySQL&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;The first thing is to download and install the JDK 5.0 in your local computer. For windows there is a simple installer that you can get from &lt;a href="http://java.sun.com/j2se/1.5.0/download.jsp"&gt;Sun's Java site&lt;/a&gt;. Try and find something like "Download JDK 5.0 Update XX". After that you should add the JAVA_HOME environment to you system and JAVA_HOME\bin to your path. To do so in XP press Win + Brake, go to Advanced -&gt; Environment Variables and add a new "System Variable" and enter JAVA_HOME and the directory of your java. In my case it looks like this: "C:\Program Files\java\jdk1.5.0_06". Afterwards, find the PATH variables and at add at the end a %JAVA_HOME%\bin entry.&lt;br /&gt;&lt;br /&gt;Another thing to install is Tomcat and Ant which I will not get into to much detail. For Tomcat you have the option of a windows installer (I grabbed my 5.5 version &lt;a href="http://tomcat.apache.org/download-55.cgi"&gt;here&lt;/a&gt;) and for ant you should simply download the &lt;a href="http://ant.apache.org/bindownload.cgi"&gt;latest binaries&lt;/a&gt; and uncompress them to the desired folder. After that you should repeat the same procedure as with the JAVA_HOME environment and PATH addition but with CATALINA_HOME and ANT_HOME, the former pointing the Tomcat home installation and latter to ant's.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Finally you need to download MySQL database. Although version 5 is available I downloaded &lt;a href="http://dev.mysql.com/downloads/mysql/4.1.html"&gt;version 4.1&lt;/a&gt; since there seems to be more support so far. A good idea is to also download the Administrator and Query Browser. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;Eclipse &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Then we need a IDE for easier code writing, in this case eclipse. Eclipse is actually more than just an IDE, but a platform in itself. This is why you will not find a simple download for developing in Java. If you head to the &lt;a href="http://www.eclipse.org/downloads/"&gt;download section&lt;/a&gt; you will see smacked in the middle of the screen the more "usual" download: the latest stable download for the eclipse SDK. This download includes the tools necessary to build plugins and expand eclipse, that since are written in Java, serves as an excellent Java IDE (actually the java tools are called Java development tools (JDT)).&lt;br /&gt;&lt;br /&gt;Fortunate for me there was a new production release of what is known as the Web Tools Platform (WTP) a few weeks ago. This project aims helping the creation of J2EE and web projects and is bundled with several subproject and goodies that might prove useful in the future. So try and &lt;a href="http://download.eclipse.org/webtools/downloads/"&gt;grab&lt;/a&gt; the latest version of the WTP and uncompress it to a folder and lunch eclipse.exe.&lt;br /&gt;&lt;br /&gt;After you start eclipse, the first thing you should do is to set add the JDK as an installed JRE environment. For this, in eclipse, go to Windows -&gt; Preferences. There, find the Java / Installed JRE entry in the left side tree and click on "Add". In the dialog presented enter any name you feel comfortable with (something like JDKJRE1.5.xx) and point to the same directory as the JAVA_HOME environment set earlier. Why eclipse is not smart enough to add this on its own? My guess is because it searches the Windows registry.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Most of the steps above are similar to what you can find &lt;a href="http://raibledesigns.com/wiki/Wiki.jsp?page=DevelopmentEnvironment"&gt;here&lt;/a&gt;, but I found so much information on the page confusing for some reason. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;AppFuse&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;As I said before, &lt;a href="http://raibledesigns.com/wiki/Wiki.jsp?page=AppFuse"&gt;AppFuse&lt;/a&gt; is nice "template" project that help you get started on a new project. It uses Ant to its work, and what you end up having is a project with the name you assign to it in its own directory structure, ready to be built and deployed to a server. The standard tools AppFuse uses is ant and java, Tomcat as a web container and MySQL as its database. That is why with set up those things at the beginning. Also, the default architecture consists of hibernate+spring+struts with other assorted goodies. There are instructions at AppFuse wiki on how to configure these things differently but I haven't tried them yet. I’ll probably delve into this later since I want to use Tapestry instead of Struts.&lt;br /&gt;&lt;br /&gt;Obviously the first thing to do is &lt;a href="https://appfuse.dev.java.net/servlets/ProjectDocumentList"&gt;download&lt;/a&gt; the latest version and extract it to any directory. Then, with you command prompt pointing in the AppFuse directory type:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;ant new&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you set everything alright it will be ask 1) the name of the application, 2) the database name and 3) the name of the packages. This will generate a directory with your project name that is ready to be built, tested and deployed.&lt;br /&gt;&lt;br /&gt;Since AppFuse knows nothing about how do you wish to connect to your database you should supply these values by modifying build.properties file at the root of the new application directory. There, just unremark the lines with&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;database.admin.password=myrootpassword&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After that, navigate to the new project directory and type&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;br /&gt;ant setup&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This should build the DB, configure tomcat and deploy the resulting application. After this point you should be able to go to localhost:8080/&lt;yourappname&gt;/ and see a login page.  Quite neat....&lt;br /&gt;&lt;br /&gt;Since this blog entry is quite long so far, I will cut it here to return later and explore how AppFuse automates other development tasks and how to use Eclipse to edit the files.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-114417535818238862?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/114417535818238862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=114417535818238862' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/114417535818238862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/114417535818238862'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2006/04/java-from-scratch-part-ii.html' title='Java from Scratch - part II'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12365887.post-114366047692677611</id><published>2006-03-29T11:14:00.000-08:00</published><updated>2006-03-29T11:27:57.700-08:00</updated><title type='text'>Carnegie Mellon financing</title><content type='html'>The last couple of weeks have been kind of depressing. Getting admitted to CMU 's MSE and not being able to pay for the tuition was a real turn down. Thanks to the tremendous effort by my family, especially my parents and my sister I will probably going to be able to attend for the intensive 12-month course. The real problem was that since I'm an international student, securing a loan is very difficult, and in my home county there aren't any provisions for this sort of things. Fortunately, I have an uncle in the US that may be willing to lend a hand in case I need it.&lt;br /&gt;&lt;br /&gt;While investigating for loans I found and interesting site called MyRichUnlce that lends money,  but instead of repaying the loan the traditional way with a interest fee, you are bound to pay 1% of your salary for an X amount of time after graduation. Seems really interesting idea since these guys know that once you get your higher education your probably have better paying job opportunities.&lt;br /&gt;&lt;br /&gt;The next step is to complete and submit the required forms, that include standard user forms and medical records and then wait for the I20 which will allow me to get my student Visa.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-114366047692677611?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/114366047692677611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=114366047692677611' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/114366047692677611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/114366047692677611'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2006/03/carnegie-mellon-financing.html' title='Carnegie Mellon financing'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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-12365887.post-114281055177323837</id><published>2006-03-19T15:12:00.000-08:00</published><updated>2006-03-19T15:22:31.806-08:00</updated><title type='text'>Carnegie Mellon acceptance!!</title><content type='html'>&lt;p class="MsoNormal"&gt;Wow!! Today I received an acceptance letter from Carnegie Mellon Master in Software Engineering program. I'm ecstatic and really happy for the news. I remember taking the GRE 2 years ago in case I one day decided to got to a US school and also sending the application forms on december when I actually thought my chances where slim. I believe it was my work at my current company with CMM practices and belonging to the SEPG that helped. Anyways...it's going to be cool.&lt;br /&gt;&lt;br /&gt;The only thing left now is to find financial support to go there since the Argentinean economic collapse 2 years ago has left the country (and my savings) with a devaluated 350%. A good salary development salary here is about U$S 18.000 a year. You do the math...So here I am analyzing my possibilities with a strong conviction to make it somehow (donations and loans accepted :) ).&lt;br /&gt;&lt;br /&gt;And I haven't got into the difficulty that’s going to be surviving the program. I promise I'll keep posting how this process advances.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-114281055177323837?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/114281055177323837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=114281055177323837' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/114281055177323837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/114281055177323837'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2006/03/carnegie-mellon-acceptance.html' title='Carnegie Mellon acceptance!!'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12365887.post-114204331537814590</id><published>2006-03-10T18:01:00.000-08:00</published><updated>2006-03-10T18:15:15.393-08:00</updated><title type='text'>Web 2.0 rants</title><content type='html'>Hi couldn't help to marvel at what is going on with these new cool web 2.0 sites that are poping up everywhere. In only a year I realized I haven't almost installed any new rich client applications on my computer. I use Gmail to email and chats, Plaxo to have to store contacts and calendar events (but soon google will have a calendar too), bloglines for RSS, del.icio.us for bookmarks a of course blogger to blog about whatever is on my mind.&lt;br /&gt;&lt;br /&gt;After the news spread about google buying &lt;a href="http://www2.writely.com"&gt;writley&lt;/a&gt;it seems we will not need office anymore. Google seems to be THE web company since they understand what the internet is all about. Anoter site that cought my atenttion today was &lt;a href="http://www.thumbstacks.com"&gt;thumbstacks&lt;/a&gt;, an online PowerPoint style program that looks promising.&lt;br /&gt;&lt;br /&gt;I just can't wait to see what's next!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-114204331537814590?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/114204331537814590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=114204331537814590' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/114204331537814590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/114204331537814590'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2006/03/web-20-rants.html' title='Web 2.0 rants'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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-12365887.post-114177253579859927</id><published>2006-03-07T14:05:00.000-08:00</published><updated>2006-03-10T18:01:46.060-08:00</updated><title type='text'>About DTO, ViewObjects and friends</title><content type='html'>&lt;p class="MsoNormal"&gt;A few weeks ago at the DDD forum a user (plind69) asked a &lt;a href="http://groups.yahoo.com/group/domaindrivendesign/message/3377"&gt;question&lt;/a&gt; about how to send business objects to the presentation layer but have them show only a subset of data based on security settings. Needless to say, this is a much debated topic as witnessed by the large response and variety of opinions. Most solutions where based on the idea of DTOs, weather they are static or dynamic with proxies.&lt;br /&gt;&lt;br /&gt;Users that had used DTO in a solution know how painful they can be: for starters DTOs are hard to maintain since every time a domain class changes so must the DTO (and also their assemblers/desassemblers). Then, there is this strange code-smell feelilng that you're duplicating code all over just for the presentation to use. To avoid this some suggest using dynamic DTOs (a nice dynamic DTO framework can be found &lt;a href="https://dynadto.dev.java.net/"&gt;here&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Although somewhat similar to dynamic DTO, some &lt;a href="http://sbtourist.blogspot.com/2006/02/protecting-domain-objects-with.html#links"&gt;suggested &lt;/a&gt;using dynamic proxies to restrict the view. The solution looks promising for the particular issue of restrict certain fields, but I still believe that other issues should be accounted that are not possible to address with this particular implementation, like the fact that sometimes there are performance implications that make it undesirable to expose domain objects directly. Per example, imagine a fictional complicated purchase algorithm. If the result is calculated on the server, there is no need to send the actual value but a cached value. DTOs are perfect for the task since all its members are cached values. A DTO is basically only a cached set of data from the domain.&lt;br /&gt;&lt;br /&gt;So, is there a solution? I don’t know &lt;span style="font-family:Wingdings;"&gt;&lt;span style=""&gt;J&lt;/span&gt;&lt;/span&gt;. First of all, let me tell you that I don't believe there is a silver bullet (at least not that I found) to solve this issues. I think that the mechanics of how to present domain classes to the user (or WS for that matter) should be considered on a use case-by-use case basis.&lt;br /&gt;&lt;br /&gt;Maybe using a mix of adapter and proxy pattern could make life easier? A domain object could be proxified to return (or not according to security permissions) the information from the domain object itself, but if needed it could return a cached value. This could be similar to how you use a mock object but instead of creating all mock interfaces by default you pass in the actual domain object. So assuming you could do something like this:&lt;/p&gt;&lt;span style="font-family:courier new;"&gt;V&lt;span style="font-size:85%;"&gt;O viewObject = new VO(personRepository.ForId(1));&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;viewObject.cacheValue(“complexProperty”).returnValue(complexValue);&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;viewObject.restrictView(“restrictedProperty”).throwException(IllegalAccessException.Class);&lt;/span&gt;&lt;p style="font-family: courier new;" class="MsoNormal"&gt; &lt;/p&gt;        &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;In this way when you accessed regular properties or method, the information will be requested to the actual Person class; if you request a getComplexProperty you will be returned the cached value and if you request getRestrictedProperty you will get an IllegalAccessException.  Also I don't think this approach is usuable in the case of Web Services (DTO seem more appropriate here).&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;So, what do you think? Is this practical or even possible? How do you feel about the different approaches?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-114177253579859927?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/114177253579859927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=114177253579859927' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/114177253579859927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/114177253579859927'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2006/03/about-dto-viewobjects-and-friends.html' title='About DTO, ViewObjects and friends'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12365887.post-114093270458365537</id><published>2006-02-25T21:11:00.000-08:00</published><updated>2006-02-26T09:05:51.930-08:00</updated><title type='text'>Location based communities</title><content type='html'>&lt;p class="MsoNormal"&gt;One of my latest interests has been mobile phone technologies. A few years back I remember looking down on these devices as limited and awkward computer wannabes. Today, the mobile phone market looks really promising and similar to the early years of the PC. The increasing use of the phone as a way to access the internet will bring about an improvement on how people use the web today. &lt;/p&gt;            &lt;p class="MsoNormal"&gt;Web 2.0, more about technology, is about giving the power to the users: user created content and photos uploaded and tagged are few examples of how people are creating and communities and sharing interests around particular issues. What is missing from most of the content today is location, some that can be improved by mobility.&lt;br /&gt;&lt;br /&gt;In a couple of days I will attend a U2 concert in &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Buenos Aires&lt;/st1:place&gt;&lt;/st1:city&gt;. As in many concerts, the most ubiquitous device will be the mobile phone. With it people will take pictures, shoot short videos and eventually share it with others. Unfortunately these mountains of information will be location agnostic; they will lack the context of location that gives them meaning.&lt;br /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;Imagine if I as soon as I upload the picture I'm automatically assigning it a geolocation based on my current position. A few weeks later I could search for other people that took a snapshot of Bono the same day and share live again the experience from a different angle. I could share my experience in my blog and have it linked to other blog users that where nearby the same day and added blog entries of their own. Creating a mashup with this information together with sites like GoogleMaps will be trivial as I already have the coordinates for the information that was uploaded. If you have used google local or even map quest you’ll realize the potential for queries in the vicinity of you current position as you surf.&lt;br /&gt;&lt;br /&gt;Finally, locating a mobile phone will become more commonplace with the new 911E proposal that requires that a cell phone could be located in case of need with a mandatory GPS in each phone. The industry is also showing increasing support for location based services with API for geolocation using their network.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;Let the location-based-web begin…(maybe Web 3.0 ??)&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-114093270458365537?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/114093270458365537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=114093270458365537' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/114093270458365537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/114093270458365537'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2006/02/location-based-communities.html' title='Location based communities'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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-12365887.post-114021882063887718</id><published>2006-02-17T15:09:00.000-08:00</published><updated>2006-02-22T05:46:04.853-08:00</updated><title type='text'>DDD Specification pattern</title><content type='html'>&lt;p class="MsoNormal"&gt;I just read a nice &lt;a href="http://sbtourist.blogspot.com/2006/01/case-for-specifications.html"&gt;blog entry&lt;/a&gt; from Segio Bossa giving an example of the DDD Specification pattern. I wanted to keep his article in here so I could reference it in the future.&lt;br /&gt;&lt;br /&gt;Following the specification discussion, in his book, Eric explores the Specification pattern more in depth and analyze the possibilities of doing composite Specifications. Then I remembered something I saw a while back on the Apache Commons project. The org.apache.commons.collections package (I wonder why is it there?) has a &lt;a href="http://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_1/org/apache/commons/collections/Predicate.html"&gt;Predicate interface&lt;/a&gt; that fit's nicely with these concepts. Instead of a .isSatifiedBy() method you are given a evaluate(object) method.&lt;br /&gt;&lt;br /&gt;I haven't really explored the idea in code by you could inherit a specifications interface and use the supplied AndPredicate, NotPredicate, etc to make composite Specifications.&lt;/p&gt;  Excelent!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-114021882063887718?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/114021882063887718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=114021882063887718' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/114021882063887718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/114021882063887718'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2006/02/ddd-specification-pattern.html' title='DDD Specification pattern'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12365887.post-113987752683247389</id><published>2006-02-13T16:27:00.000-08:00</published><updated>2006-02-13T16:38:46.846-08:00</updated><title type='text'>Starting a J2EE project from scratch</title><content type='html'>As an architect I don't usually have the chance to sit down and write a lot of code. I spend most of my time just drawing models, solving client problems, helping with deployment and ensuring most developers are doing their job. I admit it, probably I'm not the best architect out there but I'm just starting.&lt;br /&gt;&lt;br /&gt;My past 2 project were in .NET. When the projects begin I usually sit down and write some reference code myself and then let the developers continue. Lately I felt technology was getting by me since and I missed coding in Java. Wow how things have changed since Jbuilder 9!&lt;br /&gt;&lt;br /&gt;I want to start a new project from scracth and know how I want the architecture to be based on my previous knowledge and reading countless forums and mails. I want the persistence to be based on hibernate, I need Spring for IoC and AOP for things like Transaction and logging. For the front end I'm still not sure. The application server is going to be JBoss since I need JMS and other goodies.&lt;br /&gt;&lt;br /&gt;After much struggeling I realize what M$ has in it favor: it is stupidily easy to set up a project. I am overwhlmed by the amount of option and not sure how to even start this project in Eclipse. I even downloaded AppFuse in order help me jumpstart the project. I'll keep posting on how I advance as I go along.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-113987752683247389?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/113987752683247389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=113987752683247389' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/113987752683247389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/113987752683247389'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2006/02/starting-j2ee-project-from-scratch.html' title='Starting a J2EE project from scratch'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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-12365887.post-113926592191892960</id><published>2006-02-06T14:36:00.000-08:00</published><updated>2006-02-06T14:45:21.936-08:00</updated><title type='text'>POJO in Action Review</title><content type='html'>At last a nice and well written book summing up ideas from Domain-Driven-Design (DDD) and how to apply them to a real development project. I think the book's title is a bit misleading and should be called something like DDD in Action. This wat it could have been oriented to a wider audience (.NET developers)&lt;br /&gt;&lt;br /&gt;As a software architect I found most of the book similar to previous projects I've tried to build since I read the DDD book. The advantage to have this book at our company is that when a new developer gets on my team I can point him straight to a book that is easy to read and understand. &lt;br /&gt;&lt;br /&gt;Thank you Chris!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-113926592191892960?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/113926592191892960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=113926592191892960' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/113926592191892960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/113926592191892960'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2006/02/pojo-in-action-review.html' title='POJO in Action Review'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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-12365887.post-113898642314558915</id><published>2006-02-03T08:49:00.000-08:00</published><updated>2006-02-03T10:00:46.640-08:00</updated><title type='text'>Cell vs Laptop debate reviewed</title><content type='html'>The other days I was reading this &lt;a href="http://www.technologyreview.com/InfoTech/wtr_16279,294,p1.html"&gt;article&lt;/a&gt; that I read on MIT's Review newsletter. It discusses whether the cell phone or the $100 laptop will help developing nations breaking the "digital devide".&lt;br /&gt;&lt;br /&gt;Living in a what is considered a developing nation (Argentina) I can see all around me the pervasivness of the cell phone in peoples lives, realying on it not only to speak, but also to chat in chatrooms and take picture and upload them in their personal fotoblog (Argentina and Brasil have one of the highest clients in www.fotolog.net). Thus I strongly believe that the cheap laptop is no contender to the cell phone.&lt;br /&gt;&lt;br /&gt;But still, as in the past, the cell phone makers and more importantly the telco companies are blind to see the potential for their product. Their industry major concern is that these new technologies will eat into their fat voice business model.&lt;br /&gt;&lt;br /&gt;It was not long ago that telcos where afraid to interconnect their SMS systems and exploit it in fearing that people will speak less on their phone. Once they did, they realize the inmense potential of this new market. In fact, in Argentina this milestone happened about 20 months ago and cell phone sales has skyrocketed since. No the telcos are crazy offering chat, ringtones and stuff...Now comes MMS: it is still too expensive to be useful and interconetion problem exists. And I haven't even touched the subject about data transfer that still is in it infancy and incredibly expensive because they are afraid that once you'll be able to install Skype on your phone the game's over.&lt;br /&gt;&lt;br /&gt;And then there is the problem with the cell phone itself: incompatible OS and programming languages (Java vs. BREW vs Java Flavors..) that ressembles the PC industry in the 70's.&lt;br /&gt;&lt;br /&gt;Unfortunately until this problems are not solved I don't think the cell phone stand a chance in becoming the next PC revolution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-113898642314558915?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/113898642314558915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=113898642314558915' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/113898642314558915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/113898642314558915'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2006/02/cell-vs-laptop-debate-reviewed.html' title='Cell vs Laptop debate reviewed'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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-12365887.post-111420673681645780</id><published>2005-04-22T14:50:00.000-07:00</published><updated>2005-04-22T14:52:16.816-07:00</updated><title type='text'>Random Roni</title><content type='html'>Here goes my first blog entry:&lt;br /&gt;&lt;br /&gt;hello world!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12365887-111420673681645780?l=roniburd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://roniburd.blogspot.com/feeds/111420673681645780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12365887&amp;postID=111420673681645780' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/111420673681645780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12365887/posts/default/111420673681645780'/><link rel='alternate' type='text/html' href='http://roniburd.blogspot.com/2005/04/random-roni.html' title='Random Roni'/><author><name>Roni &amp;amp; Cindy</name><uri>http://www.blogger.com/profile/11442220403217805641</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></feed>
