<?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-1858487565753914438</id><updated>2012-01-02T01:01:17.329+02:00</updated><category term='JD'/><category term='MVC'/><category term='cache'/><category term='David Cutler'/><category term='OneSwarm'/><category term='.Net'/><category term='Internet Service Provider'/><category term='Windows'/><category term='open source'/><category term='http'/><category term='Comic'/><category term='Oracle'/><category term='stackoverfow'/><category term='browsers'/><category term='chrome'/><category term='Managed Beans.'/><category term='ISP'/><category term='firefox'/><category term='7-zip'/><category term='MRU'/><category term='Jeff Atwood'/><category term='foxit reader'/><category term='File sharing'/><category term='platform wars'/><category term='sun'/><category term='Java EE 6'/><category term='HEAD and GET'/><category term='The Pirate Bay case'/><category term='Apache'/><category term='programming languages'/><category term='Jeol Spolsky'/><category term='IBM'/><category term='scala'/><category term='orkut'/><category term='java'/><category term='Portal'/><category term='Unit Test'/><category term='functional languages'/><category term='java decompiler'/><category term='Search'/><category term='Web Profile'/><category term='WebSphere'/><category term='.java'/><category term='economic slowdown'/><category term='JDBC'/><category term='.NET vs Java'/><category term='Nutch'/><category term='servlet container'/><category term='chrome os'/><category term='fan language'/><category term='JSR-316'/><category term='Proxy'/><category term='Software development'/><category term='microsoft'/><category term='asp.net'/><category term='MySql'/><category term='virtual box'/><category term='jad'/><category term='Solr'/><category term='google'/><category term='newspeak'/><title type='text'>Alon Aizenberg's Tech Blog</title><subtitle type='html'>Web, Java and Technology Thoughts</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-199211271418961445</id><published>2012-01-02T01:01:00.000+02:00</published><updated>2012-01-02T01:01:17.334+02:00</updated><title type='text'>Gad J. Meir wrote a couple of lines in his blog about my lecture :)</title><content type='html'>I gave a lecture in the Mamram performance day, which was briefly mentioned by&amp;nbsp;Gad J. Meir on his&amp;nbsp;&lt;a href="http://blogs.microsoft.co.il/blogs/gadim/archive/2011/12/29/972441.aspx"&gt;Hebrew&amp;nbsp;blog&lt;/a&gt; :), skip to the end of the post to read about it. Thanks Gad.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-199211271418961445?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/199211271418961445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2012/01/gad-j-meir-wrote-couple-of-lines-in-his.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/199211271418961445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/199211271418961445'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2012/01/gad-j-meir-wrote-couple-of-lines-in-his.html' title='Gad J. Meir wrote a couple of lines in his blog about my lecture :)'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-7913500110629470226</id><published>2011-12-17T12:09:00.000+02:00</published><updated>2011-12-17T21:25:25.405+02:00</updated><title type='text'>Why continuous delivery is a must practice for software development teams?</title><content type='html'>My good friend,&amp;nbsp;&lt;a href="https://twitter.com/elad_roz"&gt;@elad_roz&lt;/a&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #444444; font-family: 'Helvetica Neue', Arial, Helvetica, 'Liberation Sans', FreeSans, sans-serif; font-size: 19px; font-weight: bold; line-height: 22px;"&gt;&amp;nbsp;&lt;/span&gt;said something interesting about &lt;a href="http://www.yaml.org/"&gt;YAML&lt;/a&gt;. He said that YAML is better format then &lt;a href="http://www.json.org/"&gt;JSON&lt;/a&gt;, not because it's more simple, but because it forces you to work with right text indentation due to it's nature of figuring out the data structure according to the text indentation. We all know that source code / data file which is correctly and&amp;nbsp;uniformly&amp;nbsp;indented, is much simpler to understand and maintain.&lt;br /&gt;&lt;br /&gt;Same principal goes for software development. We know that in the new&amp;nbsp;challenging&amp;nbsp;world of increasing demands from the software quality, complexity and the speed software is delivered, our only saviour is automation. If we don't automate things like build, deployment,&amp;nbsp;integration tests, regression tests and functional tests, we don't have a&amp;nbsp;chance&amp;nbsp;to deliver&amp;nbsp;valuable&amp;nbsp;software to our&amp;nbsp;customers.&lt;br /&gt;&lt;br /&gt;The point in&amp;nbsp;&lt;a href="http://continuousdelivery.com/"&gt;continuous delivery&lt;/a&gt; practice, is that it enforces the development team, the QA team and the Managers, to invest&amp;nbsp;heavily&amp;nbsp;in automation. If each code change, is a potential production version, to keep up the speed, you have to automate everything. There is no time for manual regression testing, there is no time to write deployment manuals and there is no time to execute any of the steps needed to promote a software change to production, manually.&lt;br /&gt;&lt;br /&gt;The pace and the complexity of the&amp;nbsp;business&amp;nbsp;requirements from software&amp;nbsp;development&amp;nbsp;teams is constantly increasing. The only way teams can continue to successfully deliver the&amp;nbsp;expectation, is by increasing the pace of the development by&amp;nbsp;embracing&amp;nbsp;the latest technologies and agile practices.&amp;nbsp;Continuous&amp;nbsp;delivery is a practice which will help you to understand the&amp;nbsp;benefits of automation because it's not always clear to development teams and managers what is the&amp;nbsp;benefit, in the first look. The reason for the&amp;nbsp;unclarity&amp;nbsp;is usually due to the fact that automation is hard to start with. If you don't have a single automatic&amp;nbsp;functional&amp;nbsp;test, you will have to invest a lot of resources, just to get started. And if you already started, each new feature&amp;nbsp;or a bug fix you deliver, has to come with automation. This, from one point of view, extends the time to production floor of the feature, but from a different point of view, pays off in a later stage, where you discover problems in a very early stage of the development process, and don't waste valuable&amp;nbsp;time on manual testing and version promotions. Another reason why this pays off greatly is the human nature. People are not very good at doing the same steps over and over again. They eventually get bored, and then the quality of execution will suffer.Automation saves your team from this&amp;nbsp;boredom, and saves a LOT of time.&lt;br /&gt;&lt;br /&gt;As the&amp;nbsp;continuous delivery starts to be very trendy, some of the teams might start working with this paradigm, without fully understanding the practice. This might happen due to different reasons starting from leadership enforcing the teams to work in this manner, but not providing the teams time and resources to learn and adapt, or even a&amp;nbsp;business&amp;nbsp;pressure to deliver, where the management decides to cut in the automation, because it's the easiest place to cut the development times. Teams with this problem, will fail to deliver quality and speed. It's might not be seen right away, but only after some iterations of the development / production&amp;nbsp;cycle.&lt;br /&gt;&lt;br /&gt;Conclusion: if you decided to go the wonderful path of&amp;nbsp;continuous delivery, first you must understand the&amp;nbsp;philosophy, then you must be ready to invest heavily in the infrastructures of such a practice, and only then you will be able to enjoy the major&amp;nbsp;benefits.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-7913500110629470226?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/7913500110629470226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2011/12/why-continuous-delivery-is-must.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/7913500110629470226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/7913500110629470226'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2011/12/why-continuous-delivery-is-must.html' title='Why continuous delivery is a must practice for software development teams?'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-8803192276044892546</id><published>2011-11-13T17:38:00.001+02:00</published><updated>2011-11-13T17:51:32.038+02:00</updated><title type='text'>Web application multi language support - rule of thumb</title><content type='html'>Often, web application, support different languages. Some of the applications, even automatically selects a language, after checking the location of your request. For example, the site is checking your source IP address, and if you are coming from a country, they support, the site will automatically select the proper language.&lt;br /&gt;These sites, must &lt;u&gt;always &lt;/u&gt;support, easy "switch language" feature. It should be visible, on all pages,&amp;nbsp;preferable&amp;nbsp;on the site header, so it does not take more then 1-2 seconds for a user to to switch the language, if he prefers a different one. This is a must from my perspective to any web site, that support custom languages.&lt;br /&gt;&lt;br /&gt;So why I decided to write this? Because it seems that google does not respect this practice. Unfortunately, Google Adsense, selects automatically Hebrew, for me, as i'm located in Israel and I cannot find easy way to switch it back to English (actually i cannot find this option at all, on the new UI of the Adsence application). I cannot stand the terms in Hebrew, it takes me so much longer, to understand what they are talking about.&lt;br /&gt;&lt;br /&gt;Shame on you google.&lt;br /&gt;&lt;br /&gt;So, when you design a web application, please make sure that this fundamental feature, is found easily by your users.&lt;br /&gt;&lt;br /&gt;:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-8803192276044892546?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/8803192276044892546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2011/11/web-application-multi-language-support.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/8803192276044892546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/8803192276044892546'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2011/11/web-application-multi-language-support.html' title='Web application multi language support - rule of thumb'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-3443566189992335331</id><published>2010-04-19T19:51:00.007+03:00</published><updated>2010-04-20T22:01:01.578+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='http'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='servlet container'/><category scheme='http://www.blogger.com/atom/ns#' term='HEAD and GET'/><title type='text'>When doGet is not really doGet and why it is dangerous?</title><content type='html'>HTTP specification defines 7 HTTP methods: GET, PUT, HEAD, TRACE, POST, DELETE and OPTIONS. When you write a HttpServlet you may decide to implement each and every one of these methods. For example if i implement the doPost method, this method will be invoked when a HTTP POST request is sent to my server. Simple enough. I don't expect any other method to be executed when i implement the POST method.&lt;br /&gt;&lt;br /&gt;Now if we look at the HTTP specification at the definition of the HEAD method we see :&lt;div&gt;&lt;br /&gt;&lt;blockquote&gt;The HEAD method is identical to GET except that the server MUST NOT    return a message-body in the response.&lt;br /&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Now what happens if you implement the doGet method, and don't implement the doHead? I would expect the servlet container return 405 method not allowed status, as it would do for any other HTTP method that i did not implement. But what really happens is the servlet container is calling the doGet instead, and drops the body (if you wrote anything to it). I can understand why this was the servlet container implementation, according the the specification the functionality still holds if we drop the body, we still return the HTTP headers and everybody happy...&lt;br /&gt;&lt;br /&gt;So what is the problem?&lt;br /&gt;&lt;br /&gt;The problem is performance. If the body generation is "CPU / IO / MEMORY" intensive operation you would like to do this operation as little as possible, so what you really should do in this case is implement the doHead method and calculate the HTTP headers for this request and set them, then implement the doGet method in the same way in addition to the body generation and setting. Because the default servlet container is working in this way, it is very easy not to pay attention to this, and implement only the doGet (which is very common thing to do) and don't think of implement anything else.&lt;br /&gt;&lt;br /&gt;Now for browser based applications, this is fine, because when writing a web UI you usually will implement only doGet and doPost methods, but when working with servlets you often do not write regular user UI application. It is very low level API for this, so it is used for web services, or other processing methods. At this time i would expect the container not to act as it acts.&lt;br /&gt;&lt;br /&gt;By the way, if you implement doPost for example and execute HEAD on the same servlet, you get 405 method not allowed status, as expected, so the only confusion happens when you implement doGet.&lt;br /&gt;&lt;br /&gt;I even looked at the servlet 2.5 spec itself to see if the spec authors are mentioning this behavior anywhere, but could not find anything. Hence this is just container's optimization :)&lt;br /&gt;&lt;br /&gt;I guess that in some cases this could even lead to some memory problems if the servlet container implementation is poor...&lt;br /&gt;&lt;br /&gt;Beware...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-3443566189992335331?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/3443566189992335331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2010/04/when-doget-is-not-really-doget-and-why.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/3443566189992335331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/3443566189992335331'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2010/04/when-doget-is-not-really-doget-and-why.html' title='When doGet is not really doGet and why it is dangerous?'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-254746303088580109</id><published>2010-04-14T11:08:00.010+03:00</published><updated>2010-04-14T11:21:37.388+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='newspeak'/><category scheme='http://www.blogger.com/atom/ns#' term='programming languages'/><title type='text'>Gilad Bracha's lecture on Newspeak programming language</title><content type='html'>&lt;p&gt;Yesterday i atteneded a very interesting lecture by &lt;a class="jive-link-external-small" href="http://en.wikipedia.org/wiki/Gilad_Bracha"&gt;Gilad Bracha &lt;/a&gt;about &lt;a class="jive-link-external-small" href="http://newspeaklanguage.org/"&gt;Newspeak  &lt;/a&gt;programming language. Here is a quote from his web site about the language  design:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;"Newspeak is a new programming language in the tradition of &lt;a class="jive-link-external-small" href="http://research.sun.com/self/language.html"&gt;Self&lt;/a&gt; and Smalltalk.  Newspeak is highly dynamic and reflective  - but designed to support modularity  and security. It supports both object-oriented and functional programming."&lt;/blockquote&gt; &lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;You can read more &lt;a class="jive-link-external-small" href="http://bracha.org/Site/Newspeak.html"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Gilad was a co-author of the second and third editions of the Java Language Specification, a major contributor to the second edition of the Java Virtual Machine Specification.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;In the lecture he gave yesterday he talked about the major design problems in  the Java language and how Newspeak is different. The topics were:&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;The problem with Java's global namespace.&lt;/li&gt;&lt;li&gt;Software modularity (built in the Newspeak language, a paper on this topic &lt;a href="http://bracha.org/newspeak-modules.pdf"&gt;here&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;What it means to be a dynamic languge.&lt;/li&gt;&lt;li&gt;Built in security features.&lt;/li&gt;&lt;li&gt;High reflectivity of the language.&lt;/li&gt;&lt;li&gt;Interoperability.&lt;/li&gt;&lt;li&gt;Threading models (what is wrong with Java's and where the world of  languages is going to - Actors model).&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;       &lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I enjoyed the lecture very much, Gilad is a great computer science  theoretican in addition to his high practice in real word (When worked at Sun on  Java and in Cadence Design Systems on Newspeak). I think that this is where his power is, the conjunction of theory and  practice.&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;You can read more about him and about Newspeak in the folloing links:&lt;/p&gt; &lt;p&gt;&lt;a class="jive-link-external-small" href="http://newspeaklanguage.org/"&gt;newspeaklanguage.org/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a class="jive-link-external-small" href="http://bracha.org/Site/Home.html"&gt;bracha.org/Site/Home.html&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a class="jive-link-external-small" href="http://jaxenter.com/gilad-bracha-java-is-becoming-cobol-2-0-10456.html"&gt;jaxenter.com/gilad-bracha-java-is-becoming-cobol-2-0-10456.html&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-254746303088580109?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/254746303088580109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2010/04/gilad-brachas-lecture-on-newspeak.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/254746303088580109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/254746303088580109'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2010/04/gilad-brachas-lecture-on-newspeak.html' title='Gilad Bracha&apos;s lecture on Newspeak programming language'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-4252897510127366259</id><published>2010-01-11T01:10:00.008+02:00</published><updated>2010-01-16T08:43:45.957+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Search'/><category scheme='http://www.blogger.com/atom/ns#' term='Solr'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><category scheme='http://www.blogger.com/atom/ns#' term='Nutch'/><title type='text'>Solr 1.4 - Nutch 1.0 integration</title><content type='html'>Solr is open source enterprise search platform build on top of the famous Apache Lucene project. Nutch is open source web-search software used mostly as a web crawler. I needed to check out the Solr search engine, and integrate it with Nutch web crawler. So i followed the tutorial &lt;a href="http://www.lucidimagination.com/blog/2009/03/09/nutch-solr/"&gt;here &lt;/a&gt;which differs a bit with the versions (the tutorial was written with Solr 1.3.0). The versions i used:&lt;br /&gt;&lt;br /&gt;Ubuntu 9.04&lt;br /&gt;Solr 1.4.0&lt;br /&gt;Nutch 1.0&lt;br /&gt;&lt;br /&gt;Here is the list of problems i encountered and their solution:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;0. Install java :) - I had a plain installation of Ubuntu so, this is basic.&lt;br /&gt;then add JAVA_HOME to your .bashrc file in your home directory (if JAVA_HOME is not set), just add the line&lt;br /&gt;export JAVA_HOME=/usr/lib/jvm/java-6-openjdk/&lt;br /&gt;and replace the path with your java installation.&lt;br /&gt;&lt;bool hl="true"&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. In solrconfig.xml, the boolean value must be a full xml notation, and not a partial one, other wise the Solr server won't start with error about parsing boolean value.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Change in regex-urlfilter.txt the domain name from&lt;/div&gt;&lt;div&gt;# allow urls in foofactory.fi domain&lt;/div&gt;&lt;div&gt;+^http://([a-z0-9\-A-Z]*\.)*lucidimagination.com/&lt;/div&gt;&lt;div&gt;to your domain name in the end - like:&lt;/div&gt;&lt;div&gt;# allow urls in foofactory.fi domain&lt;/div&gt;&lt;div&gt;+^http://([a-z0-9\-A-Z]*\.)*blogspot.com/ for example.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Other wise you will see the following output:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Generator: Selecting best-scoring urls due for fetch.&lt;/div&gt;&lt;div&gt;Generator: starting&lt;/div&gt;&lt;div&gt;Generator: segment: crawl/segments/20100111014122&lt;/div&gt;&lt;div&gt;Generator: filtering: true&lt;/div&gt;&lt;div&gt;Generator: jobtracker is 'local', generating exactly one partition.&lt;/div&gt;&lt;div&gt;Generator: 0 records selected for fetching, exiting ...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;which is basically says that there is nothing to fetch ..&lt;/div&gt;&lt;/div&gt;&lt;/bool&gt;&lt;div&gt;&lt;bool hl="true"&gt;&lt;br /&gt;&lt;/bool&gt;&lt;/div&gt;&lt;div&gt;&lt;bool hl="true"&gt;All the rest worked like a charm :)&lt;/bool&gt;&lt;/div&gt;&lt;div&gt;&lt;bool hl="true"&gt;Note that nutch distribution comes only with linux / unix shell scripts so running this on windows is a bit tricky, but doable via Cygwin, i preferred using my Virtual Boxed ubuntu installation.. &lt;/bool&gt;&lt;/div&gt;&lt;div&gt;&lt;bool hl="true"&gt;&lt;br /&gt;&lt;/bool&gt;&lt;/div&gt;&lt;div&gt;&lt;bool hl="true"&gt;Have fun   &lt;/bool&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-4252897510127366259?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/4252897510127366259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2010/01/solr-nutch-integration.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/4252897510127366259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/4252897510127366259'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2010/01/solr-nutch-integration.html' title='Solr 1.4 - Nutch 1.0 integration'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-3648729264032082727</id><published>2010-01-04T22:43:00.003+02:00</published><updated>2010-12-28T10:09:02.427+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MRU'/><category scheme='http://www.blogger.com/atom/ns#' term='cache'/><title type='text'>Simple MRU Cache for Java</title><content type='html'>A generic, and synchronized implementation of "Most Recently Used" cache can be found &lt;a href="http://www.small-software.hostei.com/programming/java-mru-cache.html"&gt;here&lt;/a&gt;. This implementation is based on simple HashMap and LinkedList, and used by extending the abstract class. Very useful :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-3648729264032082727?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/3648729264032082727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2010/01/simple-mru-cache-for-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/3648729264032082727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/3648729264032082727'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2010/01/simple-mru-cache-for-java.html' title='Simple MRU Cache for Java'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-7435105045303519812</id><published>2009-12-28T16:15:00.007+02:00</published><updated>2009-12-28T18:18:19.761+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java decompiler'/><category scheme='http://www.blogger.com/atom/ns#' term='jad'/><category scheme='http://www.blogger.com/atom/ns#' term='JD'/><title type='text'>A brilliant java decompiler</title><content type='html'>Each of us, every now and then needs a java de-compiler. Up until now i was using Jad. Jad is a command line tool, which make it very easy to decompile java class files into readable java source code. Then i discovered the DJ decompiler, which is just a GUI on top of the jad command line utility. I must say that is was very handy to work with DJ, it saved me tons of time, and made the work easier. So now i needed to use a decompiler once again, so i googled "java decompiler" and the first google answer was the JD java decompiler. It was new to me, so i checked it out. It has 2 versions. First is a standalone version, which is a exe file, that is written in c and c++ and hence works very fast and does not need any jdk or JRE installations. The second version is actually an eclipse plugin, which i did not check, mainly because i was very very happy with the standalone version... It's brilliant. Fast, intuitive, minimalistic, download and run (no installation needed, no dependency), small footprint, and very good search and class type browsing capabilities (very much like in eclipse, even same icons). JD is a free software, the only restriction is not to embed it in other commercial tools. You can download it from &lt;a href="http://java.decompiler.free.fr/"&gt;here&lt;/a&gt;.  My complements go to the sole developer of this handy utility : Emmanuel Dupuy.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Wc4skoSQmcM/SzjBvMyRgxI/AAAAAAAADC0/COXXG4ijbyg/s1600-h/JD.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 280px;" src="http://4.bp.blogspot.com/_Wc4skoSQmcM/SzjBvMyRgxI/AAAAAAAADC0/COXXG4ijbyg/s400/JD.JPG" alt="" id="BLOGGER_PHOTO_ID_5420295168170492690" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-7435105045303519812?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/7435105045303519812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2009/12/brilliant-java-decompiler.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/7435105045303519812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/7435105045303519812'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2009/12/brilliant-java-decompiler.html' title='A brilliant java decompiler'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Wc4skoSQmcM/SzjBvMyRgxI/AAAAAAAADC0/COXXG4ijbyg/s72-c/JD.JPG' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-3831254977659535647</id><published>2009-12-15T21:45:00.002+02:00</published><updated>2009-12-15T21:47:54.625+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySql'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>The full Oracle commitment on the MySql issue.</title><content type='html'>You can read the whole oracle commitment &lt;a href="http://www.marketwire.com/press-release/Oracle-Corporation-NASDAQ-ORCL-1090000.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It is very interesting, i will post my interpretation on this issue soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-3831254977659535647?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/3831254977659535647/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2009/12/full-oracle-commitment-on-mysql-issue.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/3831254977659535647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/3831254977659535647'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2009/12/full-oracle-commitment-on-mysql-issue.html' title='The full Oracle commitment on the MySql issue.'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-4477715195700584931</id><published>2009-12-08T17:09:00.008+02:00</published><updated>2009-12-09T01:17:50.483+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Managed Beans.'/><category scheme='http://www.blogger.com/atom/ns#' term='JSR-316'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Profile'/><category scheme='http://www.blogger.com/atom/ns#' term='Java EE 6'/><title type='text'>So, what we have in the JEE6 (JSR-316) final draft after all?</title><content type='html'>We all heard about the innovations of EE 6 platform. We read about the servlet 3.0 spec, about the EJB3.1, about JAX-RS, about CDI, about JPA 2.0 and JSF 2.0. But what do we know about JSR-316, the JSR behind the JEE 6 platform itself?&lt;br /&gt;Basically this spec is talking about the general things in the platform, such as security, transaction, profiles and so on, but if you look at the &lt;a href="http://jcp.org/en/jsr/detail?id=316"&gt;download page of JSR-316&lt;/a&gt; you see 3 different specification documents:&lt;br /&gt;&lt;br /&gt;1. Java EE 6 Specification.&lt;br /&gt;2. Java EE Web Profile Specification.&lt;br /&gt;3. Java EE 6 Managed Beans Specification.&lt;br /&gt;&lt;br /&gt;The first 2 specs are well known (to me at least), for there were some talks about them on the blog-sphere. On the other hand the Managed Beans thing is new to my eyes.. So lets understand what each document is talking about...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Java EE 6 Specification&lt;/span&gt; is the general document that is talking about the EE platform:&lt;br /&gt;&lt;br /&gt;  1. The first meaningful chapter is an introduction to the platform. It talks about general architecture, containers and the role of application servers in general. It also mentions key components and apis of the platform, these are not new to EE 6 but they are inseparable from it (for example the JMS, JPA, JNDI etc..). Another thing that is explained here is the roles of the different parties such as application server vendors, developers, deployers, tool providers and system administrators.&lt;br /&gt;&lt;br /&gt;  2. Next chapter talking about security, which is a common component to some main specs such as EJB and Servlet containers.&lt;br /&gt;&lt;br /&gt;  3. The next chapters are talking about transaction management, resources, namings (JNDI) and dependency injection. All these are cross cutting issues that many components and apis are usign in this way or another.&lt;br /&gt;&lt;br /&gt;  4. Following is the most interesting chapter for developers. It's called application programming interface (API) and is basically explaining the various apis that are part of the platform, what the aim of each api, and what problems they are solving and how. There no deep dive into the apis. Just a general summaries.&lt;br /&gt;&lt;br /&gt;  5. Then we have a boring interoperability chapter and application assembly and  deployment chapters, which i find quite fascinating. Don't know why but i just love all the packaging and deployment issues.&lt;br /&gt;&lt;br /&gt;  6. And now comes the new kid on the block, the profiles. This chapter is explaining the philosophy behind profiles, and defines some rules that must apply to any profile that is created (via a different specification documents).  In short, what happened here is that the vendors of the EE platform (IBM, ORACLE, JBOSS and many others) were (and still are) expected to implement the whole EE spec. This includes many technologies and many specs, with the respect and backward comparability to previous versions of the platform. For example, to implement EE6 IBM will have to work very hard to provide application server which implements all the specs. It takes many ears to produce a mature working implementation of EE server. So, The profiles were introduced, to make life easier. The web profile for example is just a subset of technologies which needed to help developers write web based application. We usually don't need iteration with messaging systems when writing a simple web application. So only technologies that are related to the web will be inside the web profile. This will help the vendors to produce some functionality faster. The first profile that is introduced is the WEB profile, which has it's own document as part of JSR-316, we will dive into it shortly..&lt;br /&gt;&lt;br /&gt;  7. After the profiles chapter nothing interesting pops up, some chapters about Application clients, service providers and migration from older platform issues.&lt;br /&gt;&lt;br /&gt;   So to summarize the first document in the EE  spec , it talks about the cross platform issues such as naming, security, assembly and deployment, development model and transaction management as well as the newly introduced features such as profiles (the spec defines what will be common to all defined profiles, for example) .&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Java EE Web Profile Specification&lt;/span&gt; is a small spec which basically defines the subset of technologies and specs needed for the EE 6 web profile. These are the required components on the Web Profile:&lt;br /&gt;&lt;br /&gt;•Servlet 3.0&lt;br /&gt;•JavaServer Pages (JSP) 2.2&lt;br /&gt;•Expression Language (EL) 2.2&lt;br /&gt;•Debugging Support for Other Languages (JSR-45) 1.0&lt;br /&gt;•Standard Tag Library for JavaServer Pages (JSTL) 1.2&lt;br /&gt;•JavaServer Faces (JSF) 2.0&lt;br /&gt;•Common Annotations for Java Platform (JSR-250) 1.1&lt;br /&gt;•Enterprise JavaBeans (EJB) 3.1 Lite&lt;br /&gt;•Java Transaction API (JTA) 1.1&lt;br /&gt;•Java Persistence API (JPA) 2.0&lt;br /&gt;•Bean Validation 1.0&lt;br /&gt;•Managed Beans 1.0&lt;br /&gt;•Interceptors 1.1&lt;br /&gt;•JSR-299 1.0&lt;br /&gt;•JSR-330 1.0&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Java EE 6 Managed Beans Specification.&lt;/span&gt; As said before i don't know a lot about this spec, if we look inside the document we can see the flowing introduction "Managed Beans are container-managed objects with minimal requirements, otherwise known under the acronym “POJOs” (Plain Old Java Objects). They support a small set of basic services, such as resource injection, life cycle callbacks and interceptors. Other, more advanced, aspects will be introduced in companion specifications, so as to keep the basic model as simple and as universally useful as possible." I guess that this introduction explains everything, now lets look deeper inside the spec.. Actually the spec is pretty shell, it defines the annotation for the managed bean and two life cycle annotations, Post Construct and Pre destroy. Another thing is that these beans can use is injected resources and interceptors as defined each in their own specification. The last thing is the extension specs. Basically as i understand this, this spec will be extended by other specs, providing a powerful component model for the EE platform.  The only question that left is why so many component models?? We have the EJB, We have the JSFs Manages Beans and now we will have the extended Managed Beans? Oh well..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-4477715195700584931?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/4477715195700584931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2009/12/so-what-we-have-in-jee6-jsr-316-final.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/4477715195700584931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/4477715195700584931'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2009/12/so-what-we-have-in-jee6-jsr-316-final.html' title='So, what we have in the JEE6 (JSR-316) final draft after all?'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-5501654192298853260</id><published>2009-11-22T22:16:00.006+02:00</published><updated>2009-11-22T22:32:05.425+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sun'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome os'/><category scheme='http://www.blogger.com/atom/ns#' term='virtual box'/><title type='text'>Just to boast  :)</title><content type='html'>I've got the new Chrome OS running on Sun VurtualBox :)&lt;br /&gt;I don't know why but it is sluggish a bit...&lt;br /&gt;Oh well..&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Wc4skoSQmcM/SwmfsNim2HI/AAAAAAAADBw/TIAr0cvwMTY/s1600/chromeos.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 340px;" src="http://2.bp.blogspot.com/_Wc4skoSQmcM/SwmfsNim2HI/AAAAAAAADBw/TIAr0cvwMTY/s400/chromeos.jpg" alt="" id="BLOGGER_PHOTO_ID_5407028409532864626" border="0" /&gt;&lt;/a&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-5501654192298853260?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/5501654192298853260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2009/11/just-to-boast.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/5501654192298853260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/5501654192298853260'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2009/11/just-to-boast.html' title='Just to boast  :)'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Wc4skoSQmcM/SwmfsNim2HI/AAAAAAAADBw/TIAr0cvwMTY/s72-c/chromeos.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-6553973407074896362</id><published>2009-10-23T18:08:00.007+02:00</published><updated>2009-10-26T15:28:47.235+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVC'/><title type='text'>The REAL benifit of the MVC pattern.</title><content type='html'>The MVC pattern is a good old proven programming paradigm. It has many benefits for software development and software maintenance. This is why we have so many successful programming frameworks that this pattern is in their heart and soul (Ruby on Rails, Struts, JSF, Spring MVC and many many more). The following are the trivial benefits of using an MVC pattern in the design of our system:&lt;div&gt;&lt;br /&gt;&lt;div&gt;1. Decouples the model, view and controllers, to increase flexibility and reuse.&lt;/div&gt;&lt;div&gt;2. Easier support for new types of clients.&lt;br /&gt;&lt;div&gt;3. Makes it possible to easily divide work between software developers and UI designers.&lt;/div&gt;&lt;div&gt;4. Ease of maintenance even on huge code bases.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;All these are excellent benefits for our projects but in my opinion the real benefit of this pattern is that it &lt;b&gt;makes you work in a very organized way&lt;/b&gt;. The system architecture is so clear that you know exactly the steps you need to do in order to implement the new functionality.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Once you are working with a clear architecture and organized development form you get:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Easy to understand and maintain the code, even for new developers.&lt;/div&gt;&lt;div&gt;2. Easy to add new functionality (just the same way other modules are developed).&lt;/div&gt;&lt;div&gt;3. Better and faster to track errors and bugs.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Just try to develop a simple web application without using this pattern and you see how each and every page and module look and behave differently. Class names don't have conventions and it is hard to understand the boundaries of different layers. Of course if you are working alone this is not a problem but in big teams each developer has it's own style and capabilities.. Working with MVC framework make is easy to collaborate in big teams by making clear organization of the components and makes all team members work by the rules of the framework.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-6553973407074896362?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/6553973407074896362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2009/10/real-benifit-of-mvc-pattern.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/6553973407074896362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/6553973407074896362'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2009/10/real-benifit-of-mvc-pattern.html' title='The REAL benifit of the MVC pattern.'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-5308297946439305593</id><published>2009-08-09T23:58:00.008+03:00</published><updated>2009-08-11T00:21:34.018+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='David Cutler'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Who wrote the most successful lines of code in the world?</title><content type='html'>&lt;span style="color: rgb(0, 0, 0);font-size:100%;"&gt;So, how do we measure the successfulness of lines of code? I think most of the people will think that this is a pretty hard question. A successful code should have the characteristics of great performance and good maintainability and of course do the thing it was meant to do, and only it, in the most simple way that is possible, but not simpler than this. I think that all those things indeed show the quality of code, but in my opinion something else should be considered as criteria for measuring successful code. I think the code has one propose in the world and it is to be EXECUTED as many times as possible. So if we could count the times of each execution of some piece of  code we could effectively measure the successfulness of some given code.&lt;/span&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;So how can we know who is the man who wrote the most successful code in the world according to my definition of the EXECUTION? The answer to this i found in the this &lt;a href="http://channel9.msdn.com/shows/Going+Deep/Arun-Kishan-Farewell-to-the-Windows-Kernel-Dispatcher-Lock/"&gt;blog post&lt;/a&gt;.  The post basically talks about the change that was in the scheduler mechanism in windows 7. For those who are not familiar with the term, this is the code that decides which process and which thread will be run by the processor according to priority and time sharing. So where is the connection?&lt;/span&gt;&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;The b&lt;/span&gt;&lt;span style="font-size:100%;"&gt;log mentions a man &lt;/span&gt;&lt;span class="Apple-style-span"   style="color: rgb(42, 15, 1);font-family:'Segoe UI',Verdana,Arial,Helvetica,sans-serif;font-size:100%;"&gt;&lt;span class="Apple-style-span"&gt;called &lt;a href="http://en.wikipedia.org/wiki/Dave_Cutler"&gt;David Cutler&lt;/a&gt; who is &lt;/span&gt;&lt;span class="Apple-style-span"&gt;"one of the world's greatest software engineers"  according to the post. He indeed worked on many interesting things in his life but the most significant thing that i'm talking about is the windows scheduling mechanism. Yes Dave Cutler wrote the lines of code that run on each windows machine (version prior to windows 7 i guess) and decide what program to run next and for how much time... Just think about this.. These lines of code are running all over when we know that by now, windows is the most popular operating system in the world (by far i would say...) So if all my calculations are true, this code is by far the winner of the title &lt;span style="font-weight: bold;"&gt;"&lt;/span&gt;&lt;span class="Apple-style-span"&gt;&lt;span style="font-weight: bold;"&gt;The Most Successful Code Ever Written"&lt;/span&gt; and t&lt;/span&gt;his makes David Cutler the man who wrote the most successful lines of code in the world :)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;&lt;span class="Apple-style-span"   style="color: rgb(42, 15, 1);font-family:'Segoe UI',Verdana,Arial,Helvetica,sans-serif;font-size:100%;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0);"&gt;&lt;span class="Apple-style-span"   style="color: rgb(42, 15, 1);font-family:'Segoe UI',Verdana,Arial,Helvetica,sans-serif;font-size:100%;"&gt;&lt;span class="Apple-style-span"&gt;Think about this.. if you find a piece of other code or program that takes the crown from my king (David) let me know :)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-5308297946439305593?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/5308297946439305593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2009/08/who-wrote-most-successful-lines-of-code.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/5308297946439305593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/5308297946439305593'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2009/08/who-wrote-most-successful-lines-of-code.html' title='Who wrote the most successful lines of code in the world?'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-7493756530660886424</id><published>2009-07-22T07:40:00.003+03:00</published><updated>2009-07-22T08:35:41.327+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software development'/><category scheme='http://www.blogger.com/atom/ns#' term='Comic'/><title type='text'>Funny on comic on software project :)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Wc4skoSQmcM/SmalFZzv7EI/AAAAAAAADAo/6JjKE5vp7vU/s1600-h/dontmakemethinkpg131smaos4.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 212px; height: 400px;" src="http://1.bp.blogspot.com/_Wc4skoSQmcM/SmalFZzv7EI/AAAAAAAADAo/6JjKE5vp7vU/s400/dontmakemethinkpg131smaos4.png" alt="" id="BLOGGER_PHOTO_ID_5361153918677019714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Found some place on the web :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-7493756530660886424?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/7493756530660886424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2009/07/very-funny-on-comic-on-software-project.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/7493756530660886424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/7493756530660886424'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2009/07/very-funny-on-comic-on-software-project.html' title='Funny on comic on software project :)'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Wc4skoSQmcM/SmalFZzv7EI/AAAAAAAADAo/6JjKE5vp7vU/s72-c/dontmakemethinkpg131smaos4.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-4100954574686314297</id><published>2009-07-22T07:31:00.002+03:00</published><updated>2009-07-22T07:39:15.183+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IBM'/><category scheme='http://www.blogger.com/atom/ns#' term='WebSphere'/><category scheme='http://www.blogger.com/atom/ns#' term='Portal'/><title type='text'>Why IBM websphere family products suck?</title><content type='html'>I've been working with IBM products for awhile now and it seems that each version their products become even worse. A developer who know well engough his work need to read huge tutorials just to understand all the extended (and sometimes not nessasary) functionality. I will not talk about the performance and configuration.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I will not go dive into technichal details but you can find them on other blogs as:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.big-bubbles.fluff.org/blogs/bubbles/archives/000374.html"&gt;BigBublles&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;and &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://badportal.wordpress.com/category/ibm-webspehere/"&gt;BadPortal&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Have fun using IBM tools&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-4100954574686314297?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/4100954574686314297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2009/07/why-ibm-websphere-family-products-suck.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/4100954574686314297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/4100954574686314297'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2009/07/why-ibm-websphere-family-products-suck.html' title='Why IBM websphere family products suck?'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-19579480078751569</id><published>2009-07-12T22:20:00.004+03:00</published><updated>2009-07-12T22:44:21.971+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='functional languages'/><category scheme='http://www.blogger.com/atom/ns#' term='fan language'/><category scheme='http://www.blogger.com/atom/ns#' term='scala'/><title type='text'>Scala - further understandings</title><content type='html'>This post is kinda future plan for the 6 most interesting features of the scala language from my opinion. In my next blogs i will be exploring these 6 features : &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Scala is functional, so what does functional really mean? Does it mean that each function is a object and hence can be passed as a parameter to other functions? Yes but not least. It means many more things like higher-order functions (which is basically what i've said before but more) and so on as i will be exploring in my next posts. Lots of new languages state that they are functional, but what is "&lt;a href="http://en.wikipedia.org/wiki/Functional_programming"&gt;functional&lt;/a&gt;" we will have to find out.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Scalas interfaces as traits and multiple inheritance via mixins. These too things are basically the same thing.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. Scala cuncurrency model known as Actors. As i read this was taked from earlang and seems to be very interesting way to look at concurency. Much more high level than Java did.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. Scalas views. I don't know alot on this issue but from the fist look it seems something stange..&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5. Scalas XML processing build in capabilities.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;6. Scalas annotations and the diffrences from Javas annotations.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My first impressions from the language is that it is a little but complicated. For someone who came from Java and .NET worlds. I hope that this will be just the first impression but as i alrady seen some people on the net say that it is too much sientific... Meanwhile i found another interesting language which is less sientific than scala... it is &lt;a href="http://fandev.org/"&gt;Fan&lt;/a&gt;. more on this in next posts.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-19579480078751569?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/19579480078751569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2009/07/scala-further-understandings.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/19579480078751569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/19579480078751569'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2009/07/scala-further-understandings.html' title='Scala - further understandings'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-6149500866532134701</id><published>2009-07-10T10:02:00.002+03:00</published><updated>2009-07-10T10:15:23.766+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.java'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='scala'/><title type='text'>My Scala wonderings Lesson number 1, Classes and Objects.</title><content type='html'>So everybody are talking about &lt;a href="http://www.scala-lang.org/"&gt;scala&lt;/a&gt;. People say that this is the programming language of the future. My first encounter with it was about a year ago when the fuzz about it just started to be heard. Back then i gave it a try, but because a lack of time had not entered the language deep enough. So now i have some spare time in my life and i will be writing a series of blog posts about my experience with the scala lang.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Lesson number 1, Classes and Objects. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The first thing that i noticed was the lack of static concept in Scalas glossary. In Scala you have the Class concept which is the same as in Java and .NET and c++ and all other oo languages, and the concept of Object which is a Class definition as well as a single instance of this Class initialization. So Object is basically a singletone. This is Scalas substitution for the static notation. All static functionality in Scala will be declared as Object and hence be a singltone. I think that this is a great simplifying concept for a OO language, From now on you don't need to understand the static concepts and you just have Classes and Instances. Some of the classes have multiple instances and some have single... Simple enough..&lt;span style="height: 10px; font-family: arial; font-size: 9pt; color: rgb(0, 0, 153);" dir="ltr" id="spnTrans1"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-6149500866532134701?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/6149500866532134701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2009/07/my-scala-wonderings-lesson-number-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/6149500866532134701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/6149500866532134701'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2009/07/my-scala-wonderings-lesson-number-1.html' title='My Scala wonderings Lesson number 1, Classes and Objects.'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-5164148774685865519</id><published>2009-05-03T18:59:00.008+03:00</published><updated>2009-07-10T09:32:42.703+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Jeff Atwood'/><category scheme='http://www.blogger.com/atom/ns#' term='stackoverfow'/><category scheme='http://www.blogger.com/atom/ns#' term='Jeol Spolsky'/><title type='text'>Stackoverflow</title><content type='html'>Today i read on the read write web the article about &lt;a href="http://www.blogger.com/www.stackoverflow.com"&gt;www.stackoverflow.com&lt;/a&gt; site. I'm a user of this site for some time now and i love it! This is the perfect example of&lt;br /&gt;smart developed site. It was developed by software developers for the use of other software developers. If you read the &lt;a href="http://www.readwriteweb.com/archives/anthropology_the_art_of_building_a_successful_soci.php"&gt;article &lt;/a&gt;(Anthropology: The Art of Building a Successful Social Site) on read write web site you will get the sun of experience for great web 2.0 website building . The site was build by &lt;a href="www.joelonsoftware.com/"&gt;Joel Spolsky&lt;/a&gt; and &lt;a href="www.codinghorror.com/"&gt;Jeff Atwood&lt;/a&gt;. They both have very interesting software related blogs which i recommend reading very much.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-5164148774685865519?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/5164148774685865519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2009/05/stackoverflow.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/5164148774685865519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/5164148774685865519'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2009/05/stackoverflow.html' title='Stackoverflow'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-8965004051046665158</id><published>2009-04-14T15:11:00.010+03:00</published><updated>2009-07-08T17:32:14.946+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='orkut'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Google Orkut using ASP.NET?!</title><content type='html'>I might be wrong but how is this possible?&lt;br /&gt;Just looked at Orkut, the google social network and look what i found:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Wc4skoSQmcM/SeSB-UCAd7I/AAAAAAAACrA/yJTohc_gHRk/s1600-h/orkut.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 157px;" src="http://4.bp.blogspot.com/_Wc4skoSQmcM/SeSB-UCAd7I/AAAAAAAACrA/yJTohc_gHRk/s400/orkut.JPG" alt="" id="BLOGGER_PHOTO_ID_5324523566987769778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Are they using ASP.NET to develop this application? Google? Anyone has answers to this mystery? If so share your information!&lt;br /&gt;&lt;br /&gt;More data on the topic can be found here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.oliviertravers.com/archives/2004/05/05/orkut-an-aspnet-application-using-squid/"&gt;http://www.oliviertravers.com/archives/2004/05/05/orkut-an-aspnet-application-using-squid/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.techdreams.org/2008/04/google-orkut-is-powered-by-microsoft.html"&gt;http://blog.techdreams.org/2008/04/google-orkut-is-powered-by-microsoft.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Orkut_B%C3%BCy%C3%BCkk%C3%B6kten"&gt;Wikipedia article on the Orkut crator&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-8965004051046665158?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/8965004051046665158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2009/04/google-orkut-using-aspnet.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/8965004051046665158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/8965004051046665158'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2009/04/google-orkut-using-aspnet.html' title='Google Orkut using ASP.NET?!'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Wc4skoSQmcM/SeSB-UCAd7I/AAAAAAAACrA/yJTohc_gHRk/s72-c/orkut.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-2447203362582502070</id><published>2009-04-05T18:09:00.013+03:00</published><updated>2009-04-06T20:28:32.071+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISP'/><category scheme='http://www.blogger.com/atom/ns#' term='OneSwarm'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Service Provider'/><category scheme='http://www.blogger.com/atom/ns#' term='The Pirate Bay case'/><category scheme='http://www.blogger.com/atom/ns#' term='File sharing'/><title type='text'>How to solve the file-sharing-copyright problem?</title><content type='html'>&lt;div&gt;&lt;img src="http://upload.wikimedia.org/wikipedia/commons/2/27/Pro_piracy_demonstration.jpg" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Every couple of years a new star of internet file sharing programs arise. The pattern of rising and passing away of these services is quite obvious:&lt;div&gt;&lt;br /&gt;&lt;div&gt;1. A new idea and implementation of file shring technology comes to life.&lt;/div&gt;&lt;div&gt;2. It gains popularity little by little and after two-three years becomes the most spreaded on the         internet.&lt;/div&gt;&lt;div&gt;3. The big media companies taking the technologie representitives to the court of law with their             pack of lawyers (see the last &lt;a href="http://news.bbc.co.uk/2/hi/technology/7892073.stm"&gt;pirate bay trial&lt;/a&gt; for more info)&lt;/div&gt;&lt;div&gt;4. From this point it will take sometime but in the end the current technologie will be replaced by         more new one, for which the fight in the court will be much more bitter then for the privious one.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We saw this with &lt;a href="http://free.napster.com/"&gt;Napster&lt;/a&gt;, then with &lt;a href="www.emule-project.net"&gt;Emule &lt;/a&gt;and now we see this with the &lt;a href="http://en.wikipedia.org/wiki/BitTorrent_%28protocol%29"&gt;Bittorrent protocol&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;Each time we see more and more sofisticated and better technologies, each step closer towords privacy preserving. For example now we have the &lt;a href="http://oneswarm.cs.washington.edu/"&gt;OneSwarm&lt;/a&gt; client which is permissions based file sharing client. We are now one step closer to private-closed-trust-based file sharing communities.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One day will come and the technologie will be so smart that all the sharing and downloading will be anonimus and thus no more court will be able to fight the sharing of their preccious copy-righted media.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, as we all may agree there is some justice to the anger of the media companies. They are the ones who invest money into music and films we all love, but as the file sharing bocomes more and more easy and not threatening, people will move away from payed movies in theatres or even the Cable TV.... All will be accessible online - via the fast internet connection, and annonimously shared by the crowds.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The future of the internet file sharing as comnanies like &lt;a href="www.apple.com"&gt;Apple&lt;/a&gt; see it is the payed media stores (such as &lt;a href="http://store.apple.com/us"&gt;Apple Store&lt;/a&gt;) where anyone can buy (download) their favorite music / tv show / movie / etc..&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The users of file sharing on the other hand want to see their content for free. The solution for this kind of problem as it seems will be in the middle, we must provide a system for content delivery over the net with global payment to the copy-protected  media. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;How can we do this that all the parties will be happy? &lt;/div&gt;&lt;div&gt;Easy... Each internet user is paying his Internet Service Provider (ISP) each month, for using the internet access, which includes the web browsing as well as other services such as VoIP services and Instant Messaging. All the services are using the same pre-payed network share, wich is provided by the ISP. The ISP will charge another global amount of money for the media companies, and will legalize the downloading of the media from file sharing sources. Then ISP will pass the media companies the money which will make up the compensation for the "Stolen-No-More" content... All are happy :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-2447203362582502070?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/2447203362582502070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2009/04/how-to-solve-file-sharing-copyright.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/2447203362582502070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/2447203362582502070'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2009/04/how-to-solve-file-sharing-copyright.html' title='How to solve the file-sharing-copyright problem?'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-5583243694247458379</id><published>2009-01-17T19:12:00.004+02:00</published><updated>2009-01-17T19:16:46.967+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='platform wars'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET vs Java'/><title type='text'>The everlasting question .NET vs Java</title><content type='html'>I sow someone asking a question about development platform choice, they need to decide weather use .NET platform or the Java platform for some inner company development task. You can read my answer here :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/313894/what-are-the-advantages-of-using-j2ee-over-asp-net#453620"&gt;.NET vs Java 2009&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-5583243694247458379?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/5583243694247458379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2009/01/everlasting-question-net-vs-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/5583243694247458379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/5583243694247458379'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2009/01/everlasting-question-net-vs-java.html' title='The everlasting question .NET vs Java'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-97155319963709284</id><published>2009-01-17T14:34:00.003+02:00</published><updated>2009-01-17T14:47:37.825+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='browsers'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Google Chrome 2.0.157.2</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Wc4skoSQmcM/SXHTJrOO3YI/AAAAAAAACNg/hD635Rkk-AA/s1600-h/gogoleChrome.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 212px;" src="http://4.bp.blogspot.com/_Wc4skoSQmcM/SXHTJrOO3YI/AAAAAAAACNg/hD635Rkk-AA/s320/gogoleChrome.PNG" alt="" id="BLOGGER_PHOTO_ID_5292243200311745922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Version 2.0.157.2 of chrome is out. Yet it is not official release and if you type chrome in google search engine you will find the 1.0 version download page. The chrome updates are done via the "about google chrome" menu in the browser. When you open the window you see the the browser is looking for updates. If you want to use the new version you need to dowload special executable that will change the update mechanism in the chrome browser and point it to the Beta realease. After doing this you will open the "about google chrome" page again and see the updating of the browser going on. I find nice mechanism for installing beta software - it is not simple and only the geeks that relly want to see the beta priview will make it :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-97155319963709284?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/97155319963709284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2009/01/google-chrome-201572.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/97155319963709284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/97155319963709284'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2009/01/google-chrome-201572.html' title='Google Chrome 2.0.157.2'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Wc4skoSQmcM/SXHTJrOO3YI/AAAAAAAACNg/hD635Rkk-AA/s72-c/gogoleChrome.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-3871659156759185293</id><published>2009-01-17T14:16:00.005+02:00</published><updated>2009-01-17T14:33:37.003+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='economic slowdown'/><title type='text'>Global economic slowdown and the Open Source world</title><content type='html'>In the recent year we see what is happening to the world in the terms of economy.  Big companies are closing, enterprises loose profit people get fired from their jobs. All around thinking about shrinking. The enterprises cutting budgets just to fit into the new era of economy - where every dollar counts. This opens new opportunities to the Open Source software and to the Open Standards in the world of software. If by now enterprises were spending huge budgets on software this is changing. Managers will look ahead to the low cost software solutions for their IT needs.  Instead of buying expensive hardware we already see the commodity hardware running in enterprises such as Banks and Insurance companies. The same will happen with software. The open operating systems will continue to get more and more of the market share and companies like Red Hat will make more profit. The same will happen in the Software development field, that will embrace open standards which will trigger greater investments in those standards. Eventually the open source will be leader in the field and companies such as IBM, Microsoft, Oracle and CA will have to change their economic model and relay entirely on supporting open source software.  I think that we are not far from the world where all the software is free of charge and only support and consulting is sold to customers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-3871659156759185293?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/3871659156759185293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2009/01/global-economic-slowdown-and-open.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/3871659156759185293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/3871659156759185293'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2009/01/global-economic-slowdown-and-open.html' title='Global economic slowdown and the Open Source world'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-4799390930380363951</id><published>2008-12-10T15:00:00.002+02:00</published><updated>2008-12-10T15:09:59.676+02:00</updated><title type='text'>Google Chrome vs Mozila Firefox</title><content type='html'>For the last years i've been a big fan of the Firefox web browser.  The real alternatives were the IE which i hated. When i first used firefox it amazed me - it was fast, clean, and much much more user friendly than the IE. The google are now in the browsers battele, their chrome - which i'm useing right now to write this blog entry is faster then Firefox... this all can see without much difficulties.. I'm talking about 3.0.4 version of Firefox, and 0.4.154.29 of Chrome. The mozila develoerps promice that the upcoming Firefox 3.1 will be as fast as the Chrome browser.. guess we will have to live and see. But the performance is not the only benefit of Chrome over Firefox. I like the Task Manager that shows you the amount of memory and CPU each tab consuming and the even more simple UI the Chrome gives us. We don't have the search bar anymore and the options is much more simpler than in Firefox. I guess all the worlds browsers will shortly follow Chrome and add new look, performance and features, same as it was when Firefox introduces tabs, IE shortly followed. Anyway this browsers was is good to us all, thanks to Google again..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-4799390930380363951?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/4799390930380363951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2008/12/google-chrome-vs-mozila-firefox.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/4799390930380363951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/4799390930380363951'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2008/12/google-chrome-vs-mozila-firefox.html' title='Google Chrome vs Mozila Firefox'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-8042724253173424690</id><published>2008-03-13T21:29:00.004+02:00</published><updated>2008-03-13T21:50:39.238+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='foxit reader'/><category scheme='http://www.blogger.com/atom/ns#' term='7-zip'/><title type='text'>Firefox 3 Beta 4</title><content type='html'>Good news for me, &lt;a href="http://developer.mozilla.org/devnews/index.php/2008/03/10/firefox-3-beta-4-now-available-for-download/"&gt;Firefox 3 new beta (4) is finnaly here&lt;/a&gt;. I just love this web browser. Since i first started using it, it seems that using the Internet Explorer is unbarable. For me the little diffrences of Firefox are making the big diffrence of usability, stabilty and performance. Everyone shoud try this one. It is faster, smaller and smarter.&lt;a href="http://developer.mozilla.org/devnews/index.php/2008/03/10/firefox-3-beta-4-now-available-for-download/"&gt;&lt;/a&gt; Another strong step for the open source community. For the last few years i've been changing old good (or bad) software be new open source. The Firefox browser is not the only example, take the WinZip for instance, using&lt;a href="http://www.7-zip.org/"&gt; 7-zip &lt;/a&gt;insted of the WinZip (which is not a free software) changed the way i work forever. Another example of the fat, slow and higly unusable software that everyone needs is the Adobe Acrobat Reader - have you seen this one for it's last versions? It's huge in size, memory consumption and slow in opening and processing files - a hell of a software. On the other hand all opposed to the sluggish behaiviour of the Acrobat Reader we have the &lt;a href="http://www.foxitsoftware.com/pdf/rd_intro.php"&gt;Foxit Reader&lt;/a&gt;. Even thougt it is not an open source software, it is free for personal use. But this is not what's important, just try it and compare it to the Adobe's software performance.. you will see the diffrence right away :)&lt;br /&gt;&lt;br /&gt;Hail the Open Source, small, fast and usable software for humans !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-8042724253173424690?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/8042724253173424690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2008/03/firefox-3-beta-4.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/8042724253173424690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/8042724253173424690'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2008/03/firefox-3-beta-4.html' title='Firefox 3 Beta 4'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1858487565753914438.post-641268488564496038</id><published>2008-02-21T12:34:00.000+02:00</published><updated>2008-02-21T12:44:04.568+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Proxy'/><category scheme='http://www.blogger.com/atom/ns#' term='Unit Test'/><category scheme='http://www.blogger.com/atom/ns#' term='JDBC'/><title type='text'>JDBC Stubs</title><content type='html'>I wish there where a JDBC stub project allowing us to record any JDBC activity to a file, and then just use there files to retrieve the data from static files instead of the Data Base itself. This would be great for unit test programs for classes that relay on information in Data Base. There are small projects that try to do this, one of them call &lt;a href="http://sourceforge.net/projects/jdbcproxy"&gt;JDBC Proxy&lt;/a&gt; , But i'm not sure that this is the appropriate implementation that has all the needs for my project, i'm using and checking it right now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1858487565753914438-641268488564496038?l=alonaizenberg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alonaizenberg.blogspot.com/feeds/641268488564496038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://alonaizenberg.blogspot.com/2008/02/jdbc-stubs.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/641268488564496038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1858487565753914438/posts/default/641268488564496038'/><link rel='alternate' type='text/html' href='http://alonaizenberg.blogspot.com/2008/02/jdbc-stubs.html' title='JDBC Stubs'/><author><name>AlonAZ</name><uri>http://www.blogger.com/profile/00754575981114814819</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_Wc4skoSQmcM/R72fVKLwLDI/AAAAAAAABOo/8ziO0pXg5Ak/S220/meSelf.bmp'/></author><thr:total>2</thr:total></entry></feed>
