<?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:blogger='http://schemas.google.com/blogger/2008' 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-35686921</id><updated>2024-10-07T07:48:39.437+01:00</updated><category term="Development"/><category term="Tools"/><category term="Operating Systems"/><category term="Technology"/><category term="Social"/><category term="architecture"/><category term="Education"/><category term="Practices"/><category term="Fun"/><category term="Language Trends"/><category term="Database"/><category term="Project Management"/><category term="Gadgets"/><category term="RFID"/><category term="Web"/><category term="Hardware"/><category term="Ecology"/><category term="General"/><category term="Security"/><category term="J2EE"/><category term="SOA/BPM"/><category term="rfrbNet"/><category term="BizTalk"/><category term="Cloud Computing"/><category term="Internet"/><category term="Optimization Algorithms"/><title type='text'>devCatharsis</title><subtitle type='html'>Just sharing some of my inconsequential lunch conversations with you...&amp;nbsp;&lt;a href=&quot;http://feeds.feedburner.com/blogspot/devcatharsis&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;RSS&quot;src=&quot;http://upload.wikimedia.org/wikipedia/commons/thumb/4/43/Feed-icon.svg/16px-Feed-icon.svg.png&quot; /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&#xa;&lt;img src=&quot;http://bp2.blogger.com/_GnVMQGxFkC8/R270OfxV2iI/AAAAAAAAB-k/gtDKnOm5NZQ/s400/logo-devCatharsis-II-d.jpg&quot; /&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1298</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-35686921.post-6955951818803124107</id><published>2012-10-29T16:03:00.001+00:00</published><updated>2012-10-29T16:03:43.654+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>Creating a small institutional site</title><content type='html'>&lt;p&gt;Every now and then non-tech friends ask me to get their startup’s site up and running. Usually I tend to choose &lt;a href=&quot;http://www.joomla.org/&quot;&gt;Joomla&lt;/a&gt; for the flexibility, but sometime it’s just an overkill. Just keeping Joomla security updates is something I really don’t want to think about.&lt;/p&gt;  &lt;p&gt;So this time, for my dear sister-in-law Sofia pre-scool project, I’ve tried out &lt;a href=&quot;http://www.weebly.com&quot;&gt;Weebly&lt;/a&gt;. In a couple of hours I’ve chosen a template, defined the organic, uploaded some content and photos and here’s the result: &lt;a href=&quot;http://chuvadepapel.com&quot;&gt;chuvadepapel.com&lt;/a&gt;:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://www.chuvadepapel.com/espaccedilo.html&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis4aNSUc4zuNH-umHBCi2Q98bgGU0DtXCR42tvRjHAmR4ZMQqm2Ikv8xhmFkHdl6qN3f6aWJvSE_FYgWGvxArdvBYZHufM0KbkY39PqTacRW0y7FrXU_l8Fwq1MMgQtN1vTK9K/?imgmax=800&quot; width=&quot;501&quot; height=&quot;484&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;To be true this is not entirely free, as I chose to pay for the domain (&lt;a href=&quot;http://chuvadepapel.weebly.com&quot;&gt;chuvadepapel.weebly.com&lt;/a&gt; was the free version). Ok, this is just the bare minimum needs for a static site, don’t expect too much. But it’s simple to edit, and costs nothing o manage. Cool.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;PS: on the next opportunity, I’ll probably try out &lt;a href=&quot;http://www.wix.com/&quot;&gt;wix.com&lt;/a&gt;.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/6955951818803124107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/6955951818803124107?isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/6955951818803124107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/6955951818803124107'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2012/10/creating-small-institutional-site.html' title='Creating a small institutional site'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis4aNSUc4zuNH-umHBCi2Q98bgGU0DtXCR42tvRjHAmR4ZMQqm2Ikv8xhmFkHdl6qN3f6aWJvSE_FYgWGvxArdvBYZHufM0KbkY39PqTacRW0y7FrXU_l8Fwq1MMgQtN1vTK9K/s72-c?imgmax=800" height="72" width="72"/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35686921.post-2319393085905708317</id><published>2010-10-20T23:32:00.001+01:00</published><updated>2010-10-20T23:33:09.666+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>Will IE9 be te one?</title><content type='html'>&lt;p&gt;People tend to forget the past. Here’s a cool article reminding us of IE past glory: &lt;a href=&quot;http://www.howtogeek.com/howto/32372/htg-explains-why-do-so-many-geeks-hate-internet-explorer/&quot;&gt;How-To Geek Explains: Why Do So Many Geeks Hate Internet Explorer?&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;1996: Internet Explorer 3       &lt;br /&gt;&lt;/strong&gt;This version of the browser, introduced in 1997, was the first browser to implement CSS (Cascading Style Sheets). Yes, you’re reading that correctly—in fact, it introduced many new features like Java applets and sadly, ActiveX controls.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;1997: Internet Explorer 4       &lt;br /&gt;&lt;/strong&gt;IE4 introduced a blazing fast (at the time) &lt;a href=&quot;http://en.wikipedia.org/wiki/Trident_(layout_engine)&quot;&gt;rendering engine as an embeddable component&lt;/a&gt; that could be used in other applications—this was a lot more important than people realize. This version also introduced Dynamic HTML, which allows web pages to dynamically change the page using JavaScript, and added Active Desktop integration.&lt;/p&gt;    &lt;p&gt;Even more weird? Seems like nobody remembers this anymore, but IE4 was actually cross-platform—you could install it on Mac OS, Solaris, and HP-UX—and by the time IE5 was released, IE4 had reached a 60% market share. &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;1999: Internet Explorer 5.x       &lt;br /&gt;&lt;/strong&gt;Microsoft invented Ajax. Wait… what? That’s right, it was &lt;a href=&quot;http://en.wikipedia.org/wiki/Internet_Explorer_5&quot;&gt;this version of IE&lt;/a&gt; that introduced the XMLHttpRequest feature in JavaScript, which forms the underlying technology behind every web application you’re using today—you know, like Gmail. Of course, the term “Ajax” wasn’t actually coined until years later by somebody other than Microsoft, but this release supported everything required to make it work.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;So Yes, Microsoft Innovated       &lt;br /&gt;&lt;/strong&gt;From IE3 until IE6, Microsoft used all their resources to simply out-innovate the competition, releasing new features and better browsers faster than Netscape. In fact, Netscape 3 Gold was a &lt;a href=&quot;http://en.wikipedia.org/wiki/Netscape_Navigator&quot;&gt;buggy piece of junk that crashed all the time&lt;/a&gt;, and Netscape 4 was extremely slow and could barely render tables—much less CSS, which would often cause the browser to crash.&lt;/p&gt;    &lt;p&gt;&lt;em&gt;To put it in context:&lt;/em&gt; web developers used to complain about Netscape the same way they complain about IE6 now.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I’d like to add:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Netscape was a paid product, IE was free. Funny how this looks like now &lt;img style=&quot;border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none&quot; class=&quot;wlEmoticon wlEmoticon-smile&quot; alt=&quot;Smile&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRJn-gKJHulIw9qpH7IAQ7-fQfcD_XQ7wh1l_T5UGmOiRd9xQLB7tcW1nNR7fbRbM7piwIej7T2g9UdbJ0pJhJS58_8e8MRYqXuyqIn5VDMhzTw-mJcUr-woAYMwAfPOL0FqFC/?imgmax=800&quot; /&gt;&lt;/li&gt;    &lt;li&gt;Most of the times IE was closer to W3C standards than Netscape – still, too far from the standards, I’m afraid&lt;/li&gt;    &lt;li&gt;IE was very forgiven to badly written HTML – if I remember correctly on Netscape, an unclosed tag on a table was all it took to stop displaying it&lt;/li&gt;    &lt;li&gt;Probably AJAX actually pre-dates XMLHttpRequest (implemented to support OWA) – old interdev versions had a server object based on a java applet capable of invoking an async remote procedure. We had a series of clients that insisted on making a browser interact like excel – now that a think of it, they were visionaries! But yes, XMLHttpRequest, XML and SOAP did brought it to the masses.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;So what went wrong?&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;The trouble all started when Microsoft integrated IE into Windows as a required component, and made it difficult to uninstall and use an alternate browser. Then there was the whole business with them exploiting their monopoly to try and push Netscape out of the market, and a lot of people started to view Microsoft as the evil empire.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Microsoft Stopped Trying       &lt;br /&gt;&lt;/strong&gt;By the time Microsoft &lt;a href=&quot;http://en.wikipedia.org/wiki/Internet_Explorer_6&quot;&gt;released Internet Explorer 6 in 2001&lt;/a&gt;, complete with lots of new features for web developers, since there was no competition and they had a 95% market share, Microsoft just stopped trying—seriously, they did nothing for 5 years even after Firefox was released and geeks started migrating left and right.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Microsoft-Specific Features       &lt;br /&gt;…&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Security Holes and Crashing&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;…&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;IE7 and IE8 Were Too Little, Too Late&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;…&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Supporting IE is Like a Fork in the Eye for Web Devs&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;…&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Geeks Forced to Use Internet Explorer&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;…&lt;/strong&gt;&lt;/p&gt;   &lt;strong&gt;&lt;/strong&gt;&lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The article ends with a vote of confidence to IE9. I agree, finally we see a lot of potential on a new IE, let’s see what happens.&lt;/p&gt;  &lt;p&gt;Bottom-line is: boy, do I miss &lt;a href=&quot;http://devcatharsis.blogspot.com/2008/01/remember-ncsa-mosaic.html&quot;&gt;NCSA Mosaic&lt;/a&gt;…&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/2319393085905708317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/2319393085905708317?isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/2319393085905708317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/2319393085905708317'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2010/10/will-ie9-be-te-one.html' title='Will IE9 be te one?'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRJn-gKJHulIw9qpH7IAQ7-fQfcD_XQ7wh1l_T5UGmOiRd9xQLB7tcW1nNR7fbRbM7piwIej7T2g9UdbJ0pJhJS58_8e8MRYqXuyqIn5VDMhzTw-mJcUr-woAYMwAfPOL0FqFC/s72-c?imgmax=800" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35686921.post-479958539495018572</id><published>2010-10-02T10:53:00.001+01:00</published><updated>2010-10-02T10:54:33.477+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><title type='text'>Oops, this last security breach is not limited to ASP.NET</title><content type='html'>&lt;p&gt;It seems like ASP.NET is not the only platform vulnerable to Padding Oracle attack. Platforms like JSF and Ruby on Rails are also vulnerable,&amp;#160; but &lt;a href=&quot;http://www.infoq.com/news/2010/10/Padding-Oracle&quot;&gt;Juliano Rizzo is convinced&lt;/a&gt; that there are more platforms, applications and sites vulnerable to the same attack.&lt;/p&gt;  &lt;p&gt;So why all the fuss about ASP.NET?&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;InfoQ:&lt;/strong&gt; Why there has been so much commotion around ASP.NET lately and there is nothing related to JSF, Ruby on Rails, if they are vulnerable too?&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;JR:&lt;/strong&gt; ASP.NET is more popular than JSF and Ruby on Rails, because approximately 25% of the internet sites use ASP.NET.&lt;/p&gt;&lt;/blockquote&gt;  </content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/479958539495018572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/479958539495018572?isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/479958539495018572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/479958539495018572'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2010/10/oops-this-last-security-breach-is-not.html' title='Oops, this last security breach is not limited to ASP.NET'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35686921.post-7476629231014344176</id><published>2010-09-29T15:34:00.001+01:00</published><updated>2010-10-04T10:22:35.372+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="BizTalk"/><category scheme="http://www.blogger.com/atom/ns#" term="RFID"/><title type='text'>BizTalk Server 2010</title><content type='html'>&lt;p&gt;Here are the &lt;a href=&quot;http://www.microsoft.com/biztalk/en/us/whats-new.aspx&quot;&gt;main new features&lt;/a&gt;:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;p&gt;Support for the latest platforms from Microsoft including server, database and development environment. &lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Enhanced developer productivity and new application life cycle management experience for development teams. &lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;New capabilities for implementing agile SOA integration solutions across heterogeneous technologies and Line of Business systems. &lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;Enhanced B2B and &lt;strong&gt;&lt;u&gt;RFID capabilities&lt;/u&gt;&lt;/strong&gt; to allow the implementation of flexible end-to-end supply chain management and asset tracking solutions. &lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Yes, the EPCIS &lt;strike&gt;Query and&lt;/strike&gt; Capture interface event handlers are finally there! And it comes with a &lt;a href=&quot;http://www.microsoft.com/biztalk/en/us/developer.aspx&quot;&gt;free developer edition&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;PS: at the time of this post, it wasn’t on the MSDN subscription.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/7476629231014344176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/7476629231014344176?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/7476629231014344176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/7476629231014344176'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2010/09/biztalk-server-2010.html' title='BizTalk Server 2010'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35686921.post-868930935565762616</id><published>2010-09-26T20:43:00.001+01:00</published><updated>2010-09-26T20:43:42.702+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="architecture"/><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><title type='text'>Another testing success story</title><content type='html'>&lt;p&gt;I’ve been re-architecting our typical .NET web application on a new project we are starting. There are some huge changes: we are adopting MVC over WebForms, Entity Framework over NetTiers, and we are finally adopting a new workflow engine.&lt;/p&gt;  &lt;p&gt;To mitigate the risks of starting a project with all these new variables we’ve started stressing the application as soon as we could. And soon meant running load tests over a very crude application.&lt;/p&gt;  &lt;p&gt;Web stressing an application on such an early stage poses a challenge on the team itself, as most of the time at least a couple of scenarios fail to execute properly, but this is the phase where the feedback we are getting from the load tests can deeply influence the refactoring of the architecture itself.&lt;/p&gt;  &lt;p&gt;We’ve started the load tests with some simple CRUD and workflow scenarios. All it took was 10 virtual users and less than a minute and we’ve exhausted some critical resources on the server (database connection and workflow engine handles). Some of the Entity Framework data layer calls started failing, most of the workflow engine calls failed, and we could no longer login on the workflow engine. We were also eating up memory usage. None of these errors were identified by the development team on the development process.&lt;/p&gt;  &lt;p&gt;After a quick code review we’ve identified a bunch of places we’ve missed to call Dispose. We could now run the same load tests with no errors, so we’ve programmed a load test to find out how many virtual users can we project so that the application server’s CPU stays below 80%. The test failed with the following error:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;“Limit of 250 virtual users exceeded”&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Yes, this is my kind of error! We’ve re-programmed the load test to stay within the licensing limits and left it running for the night: less of 30% to CPU usage on the application server, no error and no leaks. Cool!&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/868930935565762616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/868930935565762616?isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/868930935565762616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/868930935565762616'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2010/09/another-testing-success-story.html' title='Another testing success story'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35686921.post-4235781595942991714</id><published>2010-09-12T18:46:00.001+01:00</published><updated>2010-09-12T18:46:56.648+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><title type='text'>At last Apple is (being forced) to move on the right direction</title><content type='html'>&lt;p&gt;Apple &lt;a href=&quot;http://www.apple.com/pr/library/2010/09/09statement.html&quot;&gt;stated&lt;/a&gt; that they are “relaxing all restrictions on the development tools used to create iOS apps, as long as the resulting apps do not download any code”. &lt;/p&gt;  &lt;p&gt;It’s about time, developers and owners should have full control over the devices and apps.&lt;/p&gt;  &lt;p&gt;Also about time Steve Jobs (indirectly) admits iPhone market share is being challenged. To say the least :)&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/4235781595942991714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/4235781595942991714?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/4235781595942991714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/4235781595942991714'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2010/09/at-last-apple-is-being-forced-to-move.html' title='At last Apple is (being forced) to move on the right direction'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35686921.post-7026964518140480705</id><published>2010-08-21T01:23:00.001+01:00</published><updated>2010-08-21T01:26:03.042+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><title type='text'>(In)security in your Access Points</title><content type='html'>&lt;p&gt;Last week a friend of mine asked me to assess his AP’s security. I was shocked to find out his AP was just wide opened! The reason is a little embarrassing for him: the AP’s software (a NetGear) has a form that asks and stores a password for wireless security, and a group of radio buttons with the default choice: no security. A user interface trap for my 65 years old friend.&lt;/p&gt;  &lt;p&gt;So I’ve decided to assess the neighborhood where I’ve been taking my summer holidays - being careful not to access any illegal information. Here are the results:&lt;/p&gt;  &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td width=&quot;80&quot;&gt;&lt;strong&gt;Security&lt;/strong&gt;&lt;/td&gt;        &lt;td width=&quot;21&quot;&gt;         &lt;p align=&quot;right&quot;&gt;&lt;strong&gt;#&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td width=&quot;64&quot;&gt;         &lt;p align=&quot;right&quot;&gt;&lt;strong&gt;%&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;WEP&lt;/td&gt;        &lt;td&gt;         &lt;p align=&quot;right&quot;&gt;8&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p align=&quot;right&quot;&gt;21%&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;OPEN&lt;/td&gt;        &lt;td&gt;         &lt;p align=&quot;right&quot;&gt;11&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p align=&quot;right&quot;&gt;29%&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;WPA/WPA2&lt;/td&gt;        &lt;td&gt;         &lt;p align=&quot;right&quot;&gt;19&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p align=&quot;right&quot;&gt;50%&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&amp;#160;&lt;/td&gt;        &lt;td&gt;&amp;#160;&lt;/td&gt;        &lt;td&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Total&lt;/td&gt;        &lt;td&gt;         &lt;p align=&quot;right&quot;&gt;38&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Uau! I’ve 38 APs near me?!? This is madness, people don’t live here, these are weekend and holiday condoms!!! But wait, there’s more: only 50% of these are reasonably covered, the rest are wide open (ok, mostly FON Free Internet, a cool business model, nevertheless a risk if someone commits a crime using your hotspot?) or poorly defended WEP. WEP?! I wouldn’t expect so many of these running out there.&lt;/p&gt;  &lt;p&gt;If I could get a neighbor to authorize an assessment I’d choose to attack the poorly defended WEP. Here’s what I would do:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Get a security distro already loaded with &lt;a href=&quot;http://www.aircrack-ng.org/&quot;&gt;aircrack-ng&lt;/a&gt; – for instance, &lt;a href=&quot;http://en.wikipedia.org/wiki/BackTrack&quot;&gt;backtrack&lt;/a&gt;; &lt;/li&gt;    &lt;li&gt;Follow the &lt;a href=&quot;http://www.aircrack-ng.org/doku.php?id=simple_wep_crack&quot;&gt;Simple WEP Crack Tutorial&lt;/a&gt;; my attack on my own AP took no more than 30s – provided I’ve forced an ARP query… probably the major obstacle on aircrack, as I am told. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;You can also get you luck with dictionary attacks on WPA, or the next gen of security attacks, but that’s not the point. The point is: geeks like me – and you people that are reading this article – , although not safe from security attacks, are aware of these security risks and mitigations. The rest of non techies are calmly waiting to get their traffic and internet identity abused. But now that I’m thinking about it, they are sleeping like babies, I’m the one wake up at 01h30 in the morning worried about security… :)&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/7026964518140480705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/7026964518140480705?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/7026964518140480705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/7026964518140480705'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2010/08/insecurity-in-your-access-points.html' title='(In)security in your Access Points'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35686921.post-1292923320453093751</id><published>2010-07-19T10:53:00.001+01:00</published><updated>2010-07-19T11:17:37.702+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Tools"/><title type='text'>Turn your laptop into a wireless Access Point</title><content type='html'>&lt;p&gt;There are a couple of use scenarios where I find useful to providing wireless access from your laptop:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Creating a network “island” without a router; &lt;/li&gt;    &lt;li&gt;Sharing internet access to other laptops where only one wired point is available; &lt;/li&gt;    &lt;li&gt;Providing network and internet access to your PDA where no AP is available. My favorite usage :) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Here are a couple of tools:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title=&quot;http://virtualrouter.codeplex.com/&quot; href=&quot;http://virtualrouter.codeplex.com/&quot;&gt;Virtual Router&lt;/a&gt; (Codeplex) &lt;/li&gt;    &lt;li&gt;&lt;a title=&quot;http://connectify.me/&quot; href=&quot;http://www.connectify.me/&quot;&gt;Connectify&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Please note: at least for Virtual Router, there’s a (short) wireless network card short compatible list.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/1292923320453093751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/1292923320453093751?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/1292923320453093751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/1292923320453093751'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2010/07/turn-your-laptop-into-wireless-access.html' title='Turn your laptop into a wireless Access Point'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35686921.post-8565350877341542679</id><published>2010-07-18T02:59:00.001+01:00</published><updated>2010-07-19T11:16:37.982+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Gadgets"/><title type='text'>Upgrading HTC Hero to Android 2.1</title><content type='html'>&lt;p&gt;I’ve finally upgraded to Android 2.1 the HTC Hero (T-Mobile G2) I’ve been using. For the most part this is a safe process, and the chances to brick it are virtually none (if understand it correctly !…).&lt;/p&gt;  &lt;p&gt;Here’s the guide I’ve followed: &lt;a href=&quot;http://forum.xda-developers.com/showthread.php?t=645253&quot;&gt;[Guide] Complete Newbie Guide to Install a Custom Rom [Updated 16/07]&lt;/a&gt;. And yes, I had to “Goldcard” it…&lt;/p&gt;  &lt;p&gt;I’ve tried out a few ROMs and stopped at &lt;a href=&quot;http://forum.xda-developers.com/showthread.php?t=728275&quot;&gt;VanillaEclair 5.0-build7&lt;/a&gt; – for no particular reason. It worked, some of the others had some flaw that I’ve encountered, I’m afraid it wasn’t a very scientific decision...&lt;/p&gt;  &lt;p&gt;For the little I’ve tested, I’ve I liked:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The mail. Finally! &lt;/li&gt;    &lt;li&gt;VPN and proxy support. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;What I didn’t like:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Loosing the cool HTC apps and widget… oh well.. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;lt;update&amp;gt;&lt;/p&gt;  &lt;p&gt;I’m afraid I couldn’t connect to my company’s VPN :(&lt;/p&gt;  &lt;p&gt;&amp;lt;update&amp;gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/8565350877341542679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/8565350877341542679?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/8565350877341542679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/8565350877341542679'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2010/07/upgrading-htc-hero-to-android-21.html' title='Upgrading HTC Hero to Android 2.1'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35686921.post-3058294695959841236</id><published>2010-07-05T22:29:00.001+01:00</published><updated>2010-07-05T22:30:23.455+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><title type='text'>32-bit ODBC drivers on a 64-bit machine</title><content type='html'>&lt;p&gt;Today I had the need to install a 32 bit ODBC driver on my x64 Windows 7. After installing the driver, I couldn’t find it on the 32-bit ODBC administrator.&lt;/p&gt;  &lt;p&gt;This tool only configures 32-bit native calls, for 32/64-bit environment we have to set it on %systemdrive%\Windows\System32\Odbcad32.exe. Here’s Microsoft’s support &lt;a href=&quot;http://support.microsoft.com/kb/942976&quot;&gt;link&lt;/a&gt;, and here’s how to debug it on SSIS:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYlksYo6JSlHKEZmxWs19D66_f8emyAQbvfBF-P2PkaR9-gtDYciKoNktmi9JhHdx3dck_jBxBU6Lh9Rkbq5bEvQBzDJjhcqN72bfRGCppmkAdTCHbU8co3NX00OyFltG9BiW/s1600-h/image%5B3%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkd695IAf5E2qZLms4gvIheNqprvxVWyr3vSRZVew_LoU8vrcNUqvj9ShCdm-dAUQaXq57ebbDQ2tb2ZGA1N-o5pgibdNkZtqDpLQGQgN-mKetT8Xr5C9wyUVbo05LEU6yBESO/?imgmax=800&quot; width=&quot;644&quot; height=&quot;183&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/3058294695959841236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/3058294695959841236?isPopup=true' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/3058294695959841236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/3058294695959841236'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2010/07/32-bit-odbc-drivers-on-64-bit-machine.html' title='32-bit ODBC drivers on a 64-bit machine'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkd695IAf5E2qZLms4gvIheNqprvxVWyr3vSRZVew_LoU8vrcNUqvj9ShCdm-dAUQaXq57ebbDQ2tb2ZGA1N-o5pgibdNkZtqDpLQGQgN-mKetT8Xr5C9wyUVbo05LEU6yBESO/s72-c?imgmax=800" height="72" width="72"/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35686921.post-5287192281532929926</id><published>2010-04-21T11:00:00.001+01:00</published><updated>2010-04-21T11:00:59.954+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="architecture"/><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><title type='text'>Microsoft Enterprise Library 5.0</title><content type='html'>&lt;p&gt;It shipped! &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ff632023.aspx&quot;&gt;Here it is&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Here’s what’s new:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;This major release of Enterprise Library contains many compelling new features and updates that will make developers more productive. There are no new blocks; instead the team focused on making the existing blocks shine, on testability, maintainability and learnability. The new features include:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Major architectural refactoring that provides improved testability and maintainability through full support of the dependency injection style of development &lt;/li&gt;      &lt;li&gt;Dependency injection container independence (Unity ships with Enterprise Library, but you can replace Unity with a container of your choice) &lt;/li&gt;      &lt;li&gt;Programmatic configuration support, including a fluent configuration interface and an XSD schema to enable IntelliSense &lt;/li&gt;      &lt;li&gt;Redesign of the configuration tool to provide:        &lt;ul&gt;         &lt;li&gt;A more usable and intuitive look and feel &lt;/li&gt;          &lt;li&gt;Extensibility improvements through meta-data driven configuration visualizations that replace the requirement to write design time code &lt;/li&gt;          &lt;li&gt;A wizard framework that can help to simplify complex configuration tasks&lt;/li&gt;       &lt;/ul&gt;     &lt;/li&gt;      &lt;li&gt;Data accessors for more intuitive processing of data query results &lt;/li&gt;      &lt;li&gt;Asynchronous data access support &lt;/li&gt;      &lt;li&gt;Honoring validation attributes between Validation Application Block attributes and DataAnnotations &lt;/li&gt;      &lt;li&gt;Integration with Windows Presentation Foundation (WPF) validation mechanisms &lt;/li&gt;      &lt;li&gt;Support for complex configuration scenarios, including additive merge from multiple configuration sources and hierarchical merge &lt;/li&gt;      &lt;li&gt;Optimized cache scavenging &lt;/li&gt;      &lt;li&gt;Better performance when logging &lt;/li&gt;      &lt;li&gt;&lt;strong&gt;Support for the .NET 4.0 Framework and integration with Microsoft Visual Studio 2010 &lt;/strong&gt;&lt;/li&gt;      &lt;li&gt;Improvements to Unity &lt;/li&gt;      &lt;li&gt;A reduction of the number of assemblies&lt;/li&gt;   &lt;/ul&gt;&lt;/blockquote&gt;  </content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/5287192281532929926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/5287192281532929926?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/5287192281532929926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/5287192281532929926'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2010/04/microsoft-enterprise-library-50.html' title='Microsoft Enterprise Library 5.0'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35686921.post-3443705482622207856</id><published>2010-04-18T19:28:00.001+01:00</published><updated>2010-04-18T19:28:05.682+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><title type='text'>How to simply starve your windows forms app</title><content type='html'>&lt;p&gt;I was rewriting on .NET 4 some of our internal benchmarking tools (ok, a cooler way to say I wrote a small utility to stress our components on high concurrent environments…), when I’ve deadlocked the… application itselfe!&lt;/p&gt;  &lt;p&gt;Here’s what I’ve done:&lt;/p&gt;  &lt;pre class=&quot;csharpcode&quot;&gt;            var tasks = Enumerable.Range(1, (&lt;span class=&quot;kwrd&quot;&gt;int&lt;/span&gt;)numericUpDownNumberOfThreads.Value).Select(&lt;br /&gt;                i =&amp;gt;&lt;br /&gt;                {&lt;br /&gt;                    var task = &lt;span class=&quot;kwrd&quot;&gt;new&lt;/span&gt; Task(&lt;br /&gt;                        () =&amp;gt;&lt;br /&gt;                        {&lt;br /&gt;                            Invoke(LogMessageDelegate, &lt;span class=&quot;str&quot;&gt;&amp;quot;&amp;gt;&amp;gt; I&#39;m in:  &amp;quot;&lt;/span&gt; + i);&lt;br /&gt;                            Thread.Sleep(&lt;span class=&quot;kwrd&quot;&gt;new&lt;/span&gt; Random().Next(1000));&lt;br /&gt;                            Invoke(LogMessageDelegate, &lt;span class=&quot;str&quot;&gt;&amp;quot;&amp;lt;&amp;lt; Bye bye: &amp;quot;&lt;/span&gt; + i);&lt;br /&gt;                        }&lt;br /&gt;                    );&lt;br /&gt;                    task.Start();&lt;br /&gt;&lt;br /&gt;                    &lt;span class=&quot;kwrd&quot;&gt;return&lt;/span&gt; task;&lt;br /&gt;                }&lt;br /&gt;            ).ToArray();&lt;br /&gt;&lt;br /&gt;            Invoke(&lt;span class=&quot;kwrd&quot;&gt;this&lt;/span&gt;.LogMessageDelegate, &lt;span class=&quot;str&quot;&gt;&amp;quot;&amp;gt;&amp;gt; WaitAll&amp;quot;&lt;/span&gt;);&lt;br /&gt;            Task.WaitAll(tasks);&lt;br /&gt;            Invoke(&lt;span class=&quot;kwrd&quot;&gt;this&lt;/span&gt;.LogMessageDelegate, &lt;span class=&quot;str&quot;&gt;&amp;quot;&amp;lt;&amp;lt; WaitAll&amp;quot;&lt;/span&gt;);&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;csharpcode&quot;&gt;The way the Invoke method works is quite simply by sending a message to the correct thread, and if there is no message pumping no one will process the message. The solution was evolving on yet another thread:&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;csharpcode&quot;&gt;            &lt;span class=&quot;kwrd&quot;&gt;new&lt;/span&gt; Task(&lt;br /&gt;                () =&amp;gt;&lt;br /&gt;                {&lt;br /&gt;                    var tasks = Enumerable.Range(1, (&lt;span class=&quot;kwrd&quot;&gt;int&lt;/span&gt;)numericUpDownNumberOfThreads.Value).Select(&lt;br /&gt;                        i =&amp;gt;&lt;br /&gt;                        {&lt;br /&gt;                            var task = &lt;span class=&quot;kwrd&quot;&gt;new&lt;/span&gt; Task(&lt;br /&gt;                                () =&amp;gt;&lt;br /&gt;                                {&lt;br /&gt;                                    Invoke(LogMessageDelegate, &lt;span class=&quot;str&quot;&gt;&amp;quot;&amp;gt;&amp;gt; I&#39;m in:  &amp;quot;&lt;/span&gt; + i);&lt;br /&gt;                                    Thread.Sleep(&lt;span class=&quot;kwrd&quot;&gt;new&lt;/span&gt; Random().Next(1000));&lt;br /&gt;                                    Invoke(LogMessageDelegate, &lt;span class=&quot;str&quot;&gt;&amp;quot;&amp;lt;&amp;lt; Bye bye: &amp;quot;&lt;/span&gt; + i);&lt;br /&gt;                                }&lt;br /&gt;                            );&lt;br /&gt;                            task.Start();&lt;br /&gt;&lt;br /&gt;                            &lt;span class=&quot;kwrd&quot;&gt;return&lt;/span&gt; task;&lt;br /&gt;                        }&lt;br /&gt;                    ).ToArray();&lt;br /&gt;&lt;br /&gt;                    Invoke(&lt;span class=&quot;kwrd&quot;&gt;this&lt;/span&gt;.LogMessageDelegate, &lt;span class=&quot;str&quot;&gt;&amp;quot;&amp;gt;&amp;gt; WaitAll&amp;quot;&lt;/span&gt;);&lt;br /&gt;                    Task.WaitAll(tasks);&lt;br /&gt;                    Invoke(&lt;span class=&quot;kwrd&quot;&gt;this&lt;/span&gt;.LogMessageDelegate, &lt;span class=&quot;str&quot;&gt;&amp;quot;&amp;lt;&amp;lt; WaitAll&amp;quot;&lt;/span&gt;);&lt;br /&gt;                }&lt;br /&gt;            ).Start();&lt;/pre&gt;&lt;br /&gt;&lt;style type=&quot;text/css&quot;&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, &quot;Courier New&quot;, courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;  </content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/3443705482622207856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/3443705482622207856?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/3443705482622207856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/3443705482622207856'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2010/04/how-to-simply-starve-your-windows-forms.html' title='How to simply starve your windows forms app'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35686921.post-4343643999727854863</id><published>2010-04-14T12:00:00.001+01:00</published><updated>2010-04-14T12:00:11.583+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><title type='text'>Reviewing a slow web application page</title><content type='html'>&lt;p&gt;Once in a while I’m get called to help figuring out why are are our application running slow.&lt;/p&gt;  &lt;p&gt;Though in the majority of cases we end up on the some tier – the database, sometime we get some surprises. This was one of this cases.&lt;/p&gt;  &lt;p&gt;I started following a 8 seconds search page. The application had little or no instrumentation, so all I started with IIS logs:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;1 call to OurSearchFunction.aspx: 8 s&lt;/li&gt;    &lt;li&gt;Abount 10 consecutive calls to a local GiveMeSomeRowDataWebService.asmx: totaling about 7 s&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Uhm… strange, isn’t it? Looking at the code, I’ve found a datagrid that was calling a WebService for each produced row !As we only needed to get the information when the user followed a link on the grid, we move it to the corresponding event, saving around 90% on wasteful calls.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/4343643999727854863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/4343643999727854863?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/4343643999727854863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/4343643999727854863'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2010/04/reviewing-slow-web-application-page.html' title='Reviewing a slow web application page'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35686921.post-2138997654048235823</id><published>2010-04-09T11:37:00.003+01:00</published><updated>2010-08-11T21:48:55.671+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="RFID"/><category scheme="http://www.blogger.com/atom/ns#" term="rfrbNet"/><title type='text'>3rd General Assembly of RACE networkRFID</title><content type='html'>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_LT6a3LpCvucneyuQSlIKXPic33HVb_uouopkLZYJfdZldpynBLFyWLineGLL6RocEq0SETNKpEPxoWL7GrRCjmkdCu-2jkxGC1evH2ac2EA7gphIWYuZzTf-uHCAVTDgoVZS/s1600-h/clip_image002%5B6%5D%5B4%5D.gif&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px&quot; title=&quot;clip_image002[6]&quot; border=&quot;0&quot; alt=&quot;clip_image002[6]&quot; align=&quot;left&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimLx-_865B5ZsmkFwg97EhZXW4WHX67d5F1kimZjshts6W3nphiCLSBcH_cDo78S1ZemHqrJC_cz5kV6dw0AVHxUKZ_30F0Qrmp8hx8_0ehA5dpZTZjFGSVb_IJABndZmThGOe/?imgmax=800&quot; width=&quot;240&quot; height=&quot;101&quot; /&gt;&lt;/a&gt;The 3rd General Assembly of &lt;a href=&quot;http://www.race-networkrfid.eu/&quot;&gt;RACE networkRFID&lt;/a&gt; was held at the new Frankfurt University campus on March 25th, 2010.&lt;/p&gt;  &lt;p&gt;My company, &lt;a href=&quot;http://www.link.pt/&quot;&gt;Link&lt;/a&gt;, is an associated member of RACE networkRFID, a network designed to become a federating platform to the benefit of all European Stakeholders in the development, adoption and usage of RFID.&lt;/p&gt;  &lt;p&gt;About the meeting itself you can follow the &lt;a href=&quot;http://www.race-networkrfid.eu/news/35-following-the-3rd-general-assembly&quot;&gt;announcement at the public site&lt;/a&gt;. For now I’d like to make a reference to the &lt;a href=&quot;http://usecases.race-networkrfid.eu/&quot;&gt;RACE database of RFID use cases&lt;/a&gt;. The result of WP3, the RACE database of RFID use cases is now on-line and accessible to the members, who are strongly encouraged to connect and enter their use cases. We will soon start submitting some of the RFID we are working on, and I encourage all the readers to do the same. It’s free!&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style=&quot;margin: 0px; display: inline&quot; alt=&quot;Quadro de Referência Estratégico Nacional&quot; align=&quot;right&quot; src=&quot;http://www.qren.pt/imagens/logotipo_qcaiii.jpg&quot; /&gt;It was a great opportunity to share our experience and expectations over RFID, and above all to share the next generation of projects we are working on. In this respect I’ve had the opportunity to present to some of members our investment on &lt;a href=&quot;http://rfrb.net&quot;&gt;rfrbNET project&lt;/a&gt;, a Track &amp;amp; Trace Federated Network. rfrbNet is co-financed by QREN (National Strategic Reference Framework), the framing for the application of the Community’s policy for economic and social cohesion in Portugal.&lt;/p&gt;&lt;p&gt;These meetings give us an opportunity to do some networking among the participants - I was naturally particularly interested on promoting &lt;a href=&quot;http://devcatharsis.blogspot.com/2009/11/rfrbnet-rfid-track-trace-federated.html&quot;&gt;rfrbNet&lt;/a&gt;.&lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;And here we are:&lt;/p&gt;  &lt;p&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; float: none&quot; border=&quot;0&quot; alt=&quot;3rd assembly&quot; src=&quot;http://www.race-networkrfid.eu/images/stories/3rd_assembly.jpg&quot; width=&quot;240&quot; height=&quot;133&quot; /&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Here are some photos of our host, the new Frankfurt University campus:&lt;/p&gt;  &lt;p align=&quot;center&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj757ts8W9xAmPTlPe9E09nH45kkhI2aDvidBWT4EmJKQMizadggVKSi4FKQe3ctihHhAYelcYrjqIshbURCSYbWjFS-NyGRScvE1RAMg420Okv6TKfN60QKIb5eVepZwyo_h5D/s1600-h/IMG_9075%5B2%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;IMG_9075&quot; border=&quot;0&quot; alt=&quot;IMG_9075&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJJOUTxf8zDT6lF0NiTlqbxXvhXSK8cygs4SOZ13d725AHB-ldlM8xzenQ8IpiyZcllYBwdKHiGsyG_Xml8ijxjdgDjQgzjJh_HwdqEjyVqYHPERL3k9rngoLOtekYua0-CcNI/?imgmax=800&quot; width=&quot;244&quot; height=&quot;135&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgygeazkECnqPjyWgE55VcgfnCeMvlP5x9IL73HvMyaj90UFhw4FSponwHnOwDICASWoe2H8KOi3QVD1dX9ALh9G9gPuhHTzwEZIgS9cIvQFEK2W62mYU-TkWNzdN5mOtQgyVsH/s1600-h/IMG_9064_5_6_adjust-1%5B2%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px&quot; title=&quot;IMG_9064_5_6_adjust-1&quot; border=&quot;0&quot; alt=&quot;IMG_9064_5_6_adjust-1&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-o0tgGiQ3bN_jOm1yTn-M2jihGxAHqmI5tCqYKCPl1iBA0ywMJ1uj2ig7ljoOSVBdAyMs0d_t8bNRyNfAMLn17zTlCPORxGSvZkB1T4Ni9QkRUm7eB_YCU9pqyFxUkzjAElMS/?imgmax=800&quot; width=&quot;244&quot; height=&quot;120&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Finally I had an opportunity to do a little sightseeing on Frankfurt. It’s a quite city with a curious blend of history and modernity. Here’s a dramatic (probably over photoshoped…) photo:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4aYjgWyhIrF1FR3-pWAH8sAlrqWHvcGxuJxx3prxkagK2RxQx1zm4h5QkifekHmS17v59L8urOjvJ8YebSbpqbGC2xqJJlL47EC4le1eyNWdQ9H510Um_N_CpC2ZUO2OKTcYD/s1600-h/IMG_9104_5_tonemapped-1%5B8%5D.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto&quot; title=&quot;IMG_9104_5_tonemapped-1&quot; border=&quot;0&quot; alt=&quot;IMG_9104_5_tonemapped-1&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI23E_6JpzJJVpymzoRRRLCZPfA4stTgQRpsVA5O3vXDOifo5ZG-Ig4ZubMMXt5jWGKS8OCY063yiynWV-dJ5h05F-tynl6Uiffo02v0ks263OvudNMvr4yV3bvL1dXh-S3AVK/?imgmax=800&quot; width=&quot;604&quot; height=&quot;403&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/2138997654048235823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/2138997654048235823?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/2138997654048235823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/2138997654048235823'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2010/04/3rd-general-assembly-of-race.html' title='3rd General Assembly of RACE networkRFID'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimLx-_865B5ZsmkFwg97EhZXW4WHX67d5F1kimZjshts6W3nphiCLSBcH_cDo78S1ZemHqrJC_cz5kV6dw0AVHxUKZ_30F0Qrmp8hx8_0ehA5dpZTZjFGSVb_IJABndZmThGOe/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35686921.post-4365578824103491778</id><published>2010-04-07T12:27:00.001+01:00</published><updated>2010-04-07T12:27:30.947+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><title type='text'>New &amp;lt;%: %&amp;gt;Code Nugget Syntax</title><content type='html'>&lt;p&gt;Tired of writing &amp;lt;%= Server.HtmlEncode(Model.MyString) %&amp;gt;? Here’s the &lt;a href=&quot;http://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt-syntax-for-html-encoding-output-in-asp-net-4-and-asp-net-mvc-2.aspx&quot;&gt;new ASP.NET 4 way&lt;/a&gt;:&lt;/p&gt;  &lt;pre class=&quot;csharpcode&quot;&gt;&amp;lt;%: Model.MyString %&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type=&quot;text/css&quot;&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, &quot;Courier New&quot;, courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;  </content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/4365578824103491778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/4365578824103491778?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/4365578824103491778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/4365578824103491778'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2010/04/new-nugget-syntax.html' title='New &amp;lt;%: %&amp;gt;Code Nugget Syntax'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35686921.post-4149259736915947989</id><published>2010-04-07T10:08:00.001+01:00</published><updated>2010-04-07T10:08:56.061+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Language Trends"/><title type='text'>C programming language back at the top</title><content type='html'>&lt;p&gt;According to the &lt;a href=&quot;http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html&quot;&gt;TIOBE index&lt;/a&gt; C programming language back at number 1 position. It’s no surprise that Java is loosing pace to other JVM languages. But that C is gaining traction? Uauu, I didn’t expect this…&lt;/p&gt;  &lt;p&gt;Also worth mentioning is Apples’s Objective-C raise. And Go (go figure :)&lt;/p&gt;  &lt;p&gt;Here Abril’s 2010 index:&lt;/p&gt;  &lt;blockquote&gt;   &lt;table border=&quot;1&quot; cellpadding=&quot;0&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;&lt;b&gt;Position               &lt;br /&gt;Apr 2010&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p&gt;&lt;b&gt;Position               &lt;br /&gt;Apr 2009&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;115&quot;&gt;           &lt;p&gt;&lt;b&gt;Delta in Position&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;97&quot;&gt;           &lt;p&gt;&lt;b&gt;Programming Language&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;34&quot;&gt;           &lt;p&gt;&lt;b&gt;Ratings               &lt;br /&gt;Apr 2010&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;&lt;b&gt;Delta                &lt;br /&gt;Apr 2009&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;33&quot;&gt;           &lt;p&gt;&lt;b&gt;Status&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p&gt;2&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;115&quot;&gt;           &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqCa-tMVg7AnEhkZ_DAdp2gQW4gCdjXDN0k_qya85u7R-inYuZCkbMwyuOSQN9oTd7a9OQJ5UTgaa3xr0xOZ9DqTdrxJPn9SHlQF2jj9uLW2Z8Qv9zObcl8MxBP3R7rcxZsTrQ/s1600-h/clip_image001%5B33%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001&quot; border=&quot;0&quot; alt=&quot;clip_image001&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd_au_WIhY4FaPCV2Ii7LDbfmM8tB6JSCXdsku8oYSKllllvERLmUg5tZc8scDx2TP_Hr-MLMbKO8fQN5PMIAiqgeu56pGdB4rNVrpFkQmbRAQaYzVR-5q0zxfOe2kaFVZqwfJ/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;97&quot;&gt;           &lt;p&gt;&lt;a href=&quot;http://www.tiobe.com/content/paperinfo/tpci/C.html&quot;&gt;C&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;34&quot;&gt;           &lt;p&gt;18.058%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;+2.59%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;33&quot;&gt;           &lt;p&gt;&amp;#160; A&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;2&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;115&quot;&gt;           &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMIzKlkOmKVaECzn5k6Vs50ZxGrObFt66SWEJnTK9n5kc7FCJQsKE09NxRgsKFJ4NC8HhnivjZqW6zx0zaEGqmyQOxMmquGHn7PTqN2vbe1EEQs9-S8Cs5vvAIlcK_aDCndXWf/s1600-h/clip_image002%5B12%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image002&quot; border=&quot;0&quot; alt=&quot;clip_image002&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv2F9h73DpvtPZ7kx7BNGiI7a4Xk3SgpqNMPoIw1SuJsceq8Gxi-lRGLs8WCOhYQnyjiiaPma7yhJI5xU2lb74ELhulTPNRW6xMQjeGUF_Y9mDRnQqJ-FhyphenhyphentburyTyPoJVBQMo/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;97&quot;&gt;           &lt;p&gt;&lt;a href=&quot;http://www.tiobe.com/content/paperinfo/tpci/Java.html&quot;&gt;Java&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;34&quot;&gt;           &lt;p&gt;18.051%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;-1.29%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;33&quot;&gt;           &lt;p&gt;&amp;#160; A&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;3&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p&gt;3&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;115&quot;&gt;           &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglvMAZRlkSL2eOf6l9HOptNXPnACcOyQpaSKlkzJcPrto3s4Kow5O3tSjbLBpwNAs_GRc20alAfsYfN0XbZ_ISyfQbRDND3-u1fBxFl2CE1zfiMAmR-e4vwIRbafst_3ozacfT/s1600-h/clip_image003%5B6%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image003&quot; border=&quot;0&quot; alt=&quot;clip_image003&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7I_Pw8EdlndRAuuCQGl2lgeiAJ-oOGTKVVAH6jngLG4hh10_lAFWgglHcjYrxV7UoSBq4hK61_8Rs7lyFrz3Ii1IRHKwEadACQyY7xcKT5eXevE63xHQZJsdha-7MV3gtXhKH/?imgmax=800&quot; width=&quot;15&quot; height=&quot;22&quot; /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;97&quot;&gt;           &lt;p&gt;&lt;a href=&quot;http://www.tiobe.com/content/paperinfo/tpci/C__.html&quot;&gt;C++&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;34&quot;&gt;           &lt;p&gt;9.707%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;-1.03%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;33&quot;&gt;           &lt;p&gt;&amp;#160; A&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;4&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p&gt;4&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;115&quot;&gt;           &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1MlQ6apM5imhQ-zC_Lig8DYhLCH6KraXKooIT6xtPWBfbDos6QA75gInjKSTKFxR4yE0nXZQRr3KQFEDsg1vN7O0eiwqoYb60cRzdT8R56xh_ApKsR5qWlU18nnvzVlSXrwvV/s1600-h/clip_image003%5B1%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image003[1]&quot; border=&quot;0&quot; alt=&quot;clip_image003[1]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFd-NCTewE1S0AOrf0J3UQfwHbjFKV1Ef5qjKyWF3Gzm-DDr_ID_tsFlYnL66G1GeHx4_oYJGh8Eenw4Apx8fXBtGTUBpySwKPWp75gm3YaelDb07rVnj-rRXgQ938HD2deyNj/?imgmax=800&quot; width=&quot;15&quot; height=&quot;22&quot; /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;97&quot;&gt;           &lt;p&gt;&lt;a href=&quot;http://www.tiobe.com/content/paperinfo/tpci/PHP.html&quot;&gt;PHP&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;34&quot;&gt;           &lt;p&gt;9.662%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;-0.23%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;33&quot;&gt;           &lt;p&gt;&amp;#160; A&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;5&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p&gt;5&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;115&quot;&gt;           &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidu_5S0jh48yAXdp91fSyghZiFOg5cOlw55oCFC9RsXMC4mLEtLa5K_nT076EaGX86Xe8qj6aettcDWBfTVy_t-huwMJUkar1HqiKlNQSDvLeApmW8QXYUH4gp2Q6E3DKSkAYx/s1600-h/clip_image003%5B2%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image003[2]&quot; border=&quot;0&quot; alt=&quot;clip_image003[2]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3uM3spPc-GXW9OuCcNSDgHsT50vhLEDBURmT5pkom8b4kdZSCPK77Jxi2wzWwbcRRiKVQHCe3iFJspuBiJiYh_9tUidCE5IZtswboO4CRkdYIC9M72FE2-mifQmjWDmSbVsuV/?imgmax=800&quot; width=&quot;15&quot; height=&quot;22&quot; /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;97&quot;&gt;           &lt;p&gt;&lt;a href=&quot;http://www.tiobe.com/content/paperinfo/tpci/(Visual)_Basic.html&quot;&gt;(Visual) Basic&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;34&quot;&gt;           &lt;p&gt;6.392%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;-2.70%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;33&quot;&gt;           &lt;p&gt;&amp;#160; A&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;6&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p&gt;7&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;115&quot;&gt;           &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMd6n4TtNSX7NpHeATFf-jDgokj5YQ5hsFZSZ_bkEZvzwMD4ErVawuQ3Ra2ksVSUZfcVC7lRkzT_f4kJ9ToE3tCmCccfocC4GjUzsiNuXHaIiXglhIVLnaQUbzcO9uOPMclIeP/s1600-h/clip_image001%5B1%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[1]&quot; border=&quot;0&quot; alt=&quot;clip_image001[1]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiN-YlEUpFdGeRmbxqY59E_jODp0ITFqvY6mhMMCQhzxoLkOWlIpx0TwudgAmEDoaw0PhQ0q06IMIXOXpQBpnRqQfzyTrMuYJIt2N0WVJ02JH9Nys43YB-2qxdckaZ4z9mYKaia/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;97&quot;&gt;           &lt;p&gt;&lt;a href=&quot;http://www.tiobe.com/content/paperinfo/tpci/C_.html&quot;&gt;C#&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;34&quot;&gt;           &lt;p&gt;4.435%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;+0.38%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;33&quot;&gt;           &lt;p&gt;&amp;#160; A&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;7&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p&gt;6&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;115&quot;&gt;           &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSYLjq-Ui82YVAgJ0jYaQ75Wsmm18nf9YKaGOi0DKZfOvbImXrNq7QCUPWyVpF1LQZKLWsT5qjGvFv5BlICA-4P_43xrlh-q-spJQSOUeju67NL9UBXG589e5xLcWuj2VjjRSO/s1600-h/clip_image002%5B1%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image002[1]&quot; border=&quot;0&quot; alt=&quot;clip_image002[1]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm4_eTaDMVeaPSW0p0AL1hzQ3Td87zvbWEHXnKvsk6L1M5gw-ZGddFXoQkXobItiQUZG6Mx6SSD3f9DttzdRSNVv7YHwf-XueQycZFfaoAAuvVLxLHw6M_q9KfOsxt9i68ejXO/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;97&quot;&gt;           &lt;p&gt;&lt;a href=&quot;http://www.tiobe.com/content/paperinfo/tpci/Python.html&quot;&gt;Python&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;34&quot;&gt;           &lt;p&gt;4.205%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;-1.88%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;33&quot;&gt;           &lt;p&gt;&amp;#160; A&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;8&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p&gt;9&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;115&quot;&gt;           &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgjgxO1jzDwO8NDXPrBu3wES_HPOnRwXrC6SChxqlM_-VbK8j4t6Q9oURIMXQqFhiFqtKRopa9KK1hhLc5wvfMRetgj81vf0V174rwMVcn7i3ouSUkzSK-iZKXVDA9X-H631mj/s1600-h/clip_image001%5B2%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[2]&quot; border=&quot;0&quot; alt=&quot;clip_image001[2]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOlt78KCFX40_JNZWUxfH-tCYUKW24VGr_k_9eskfYYKWhz0_W25UXZ8xrsboO3hIoaUVWjtoR58_KlvjcDMlniDZ8wmqVOHLnfjEkecO9d4Ej8LFDhe1zLaw3Zumn8MqAwFqf/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;97&quot;&gt;           &lt;p&gt;&lt;a href=&quot;http://www.tiobe.com/content/paperinfo/tpci/Perl.html&quot;&gt;Perl&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;34&quot;&gt;           &lt;p&gt;3.553%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;+0.09%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;33&quot;&gt;           &lt;p&gt;&amp;#160; A&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;9&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p&gt;11&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;115&quot;&gt;           &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5zm6p1wDzhkxxHMDPTZ94PKKdFI6T2kSa2W6EAJOUwvE0MUO5cXoxNAGjZI_2N3NEDdLKB-1UXnd2zHPKtYj02OaDVjK1JqIsfF135N19W8o1QCJ5OuNFIJqnYUD6I20Y5EFw/s1600-h/clip_image001%5B3%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[3]&quot; border=&quot;0&quot; alt=&quot;clip_image001[3]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAnw0mZhenEwHErWZIshB9HbdaGu0u9IEt6NRUBouF4tkc_UAlJNhuFt6m_dd_CtJmy5alkkAO34GeaaLywmzc6QtdRAgkpXrNSrVhiobu9sfwKkXf2U42aQkhda-uJBUoy44B/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmxm0l7IZt3WoDzK3I1wqmGqk-4hg2s5WU1cEOMaDnMizY_orVqB1SBl-MTlUFbq0X6TBgrVoFnW_Gt3yEjllsDwHdElsYf2bA27wPPSPuhThYDzGMBf26i50jtsyJUsADNy_c/s1600-h/clip_image001%5B4%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[4]&quot; border=&quot;0&quot; alt=&quot;clip_image001[4]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvNvnrGM9MMtABz58wf31sJc64mh3ESbaPjMdYPfqxi4PyKpzzDtAV8viOYnzu2CODlyyYgNtuMFrcGut3UHIg4Q_v4WK5OqNMGP9BFEmo0ANGgKolRsQkX3nxwUztN88nWYrj/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;97&quot;&gt;           &lt;p&gt;&lt;a href=&quot;http://www.tiobe.com/content/paperinfo/tpci/Delphi.html&quot;&gt;Delphi&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;34&quot;&gt;           &lt;p&gt;2.715%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;+0.44%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;33&quot;&gt;           &lt;p&gt;&amp;#160; A&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;10&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p&gt;8&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;115&quot;&gt;           &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvL4rDxGTmDq1q49N8ry3iyTtTDWz_mJOZBAP0mkCFe4f-_Kkg-PzAdv4RGAd73bCexpSVCQsJ5HQKzbTwTVNN0rukCOMG4BZRY-DjEKhyWRCj7eZSjXfxUkhQzMno-YRvDbpK/s1600-h/clip_image002%5B2%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image002[2]&quot; border=&quot;0&quot; alt=&quot;clip_image002[2]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIXulSEu_P2HlCKLBPxoyoVRX02ZV1scQ1VIT2HeNgwyeDA_t3AofRBq0OgLphxL20oHBosZo9GcSesV_xcIKrfTXKPjbINWbI_ez1XBUndlVso_SEOBm8IXr5SVgK3jTW158J/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmCtPUjIXjZ73EanPbM1aHhjpPfEFTYjLrAg8BSDonNDT-3FmX_5GH386XhMVfGWEC1ZXm2qYNIFDlnJbEnIoNKuJFvBFa8A9NoWODjl4cfcng98AxGHpnfV7VARfESX92SmMy/s1600-h/clip_image002%5B3%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image002[3]&quot; border=&quot;0&quot; alt=&quot;clip_image002[3]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9rjIOLfqSoarj55ax8Crc4q2cKnlKTGd-P-_qBguXOd7Nv5oXPJmhuViZvqTYSkQ8wakDaWtKpOixDssmCB50bRuNkqWUAUStGgw0glXgIppx0ti2NsUieNruTxfQg774Ha6j/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;97&quot;&gt;           &lt;p&gt;&lt;a href=&quot;http://www.tiobe.com/content/paperinfo/tpci/JavaScript.html&quot;&gt;JavaScript&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;34&quot;&gt;           &lt;p&gt;2.469%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;-1.21%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;33&quot;&gt;           &lt;p&gt;&amp;#160; A&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;11&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p&gt;42&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;115&quot;&gt;           &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvTP2PbvUk4GOAIsCFdjIVnySFfH2W9keGGOSIb8-Vl96jPgqrkMexkAOLz9ohoCziVBFQaPUwRGh__ZXbtcFmI6opklyHpJT4sF-dCAV_1X8CThKS2BuHloy6dbLbklZrcmtP/s1600-h/clip_image001%5B5%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[5]&quot; border=&quot;0&quot; alt=&quot;clip_image001[5]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG7SRWTlydZzXsPFmcpvPrp9AfBznU7yFoCf9cJwVI3zkgJPBUTxjF43VJ_2tEkOiHqQAkmWlXW9lClunR4Ni244lybALvd-_1qj-WVATk1oc1cRbRWPB_fpMcxhVKkDn8WAQE/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg34YL1CNu7R8ysPGZg36c0tIwuHVSFfjicFtYYNwWXzAjdDUdJmVC02s5XWeqjGjzRp5WHiFHUIcGD0ohvuoRwEJrjCw-uYnakky31qEo8wUsLNpRv93gk8XQOhRlR4lUOieJZ/s1600-h/clip_image001%5B6%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[6]&quot; border=&quot;0&quot; alt=&quot;clip_image001[6]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimXIsxBX-aON-5Ahf6gN4PV1hUUEslHyewQAnkwwqMlOviD9LDHCTi-kT_vdsmfP8S_uZFmwv3c3SB6wl1h5Y8ieJVv-LgfYAOaefKXSHVOkhmqSDAcytDGmp1vpdggKMWJv4p/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4ZjPXXGh-QraqEhk8VpxFC5jGVzNDeZ2cyF-3DcIuDmNvy4pmokfEHCyki9r7d44Id-SHNnuV8JA8c2CPVBBTjODmaHAyvc0z46BUsYXT36AtLSDcELGjTclSRcezcoshqtTE/s1600-h/clip_image001%5B7%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[7]&quot; border=&quot;0&quot; alt=&quot;clip_image001[7]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghYXt9zCwmSihKa7NgTdOnCSt8fpPawlMxObNAllzTLnz9jJexJLx7U9RitI0AZJ98AzuCWwnNzvv-9l3sVaDUqW_6xbn-6nVBZscZHFHN6E7ilxG38lAJAg4KVl2IGC_Ivi4v/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhL8xA5OMXcjOM35yILyKrqTbu33Jv5mHt8dNIVzMic00lioBxyiSCE_F7-GRmdCD4Tpo4QPWJOCG2Hdh5lPeoKY6F5zAoAaqh27q9s1OCCAlmrMcwGGpmF1gicEl_-hIQ3Ttut/s1600-h/clip_image001%5B8%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[8]&quot; border=&quot;0&quot; alt=&quot;clip_image001[8]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_GztBCEv6jwm4Z3fmieyJPH4W89us8Y0891Rsf5O9SC6yh82SM498Is4_qqtfRJcBdDFbxUGxdQwKIB_46YqgGLOgk9RBEFUiDlBR9mvfHyXeGop5hTBuYSAIUKRxGiRfunNv/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXiD1281CfrzGC1Sn_dclbarXFWqc1KW85MK4MSLmttviSu2DccjOwQHwxsvpf0ZZ5Ickd5u9jqQdicr45j8dBSpQiB9Wak2arkQOo-C0av4Acuqvgv_4COA1lxFCyNcIpCVlv/s1600-h/clip_image001%5B9%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[9]&quot; border=&quot;0&quot; alt=&quot;clip_image001[9]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhiBqyOE_P5eqJI7l8hN9XlXgioqIspTvDCHxPyscWxZA4gqJcbwzuY6PuGgSwcQpdhUl0H_uRR9_oU-SygPmKL-J2mKNhvUf8YN1jYbSmBLeTpJPTS1kdylowcFYlCHn5lUzd/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKkylvaoSZ8XvOiNDDJoBMZeZZejCtIWvnIkqcsZjql2r-mgdA3TGn3Wy4A5n0KTyVl1DQnDucW9iFwMKXw8Mf_BG1_7owEX76lV-7AVyqYFWfN335sKkwPtg8l-45fXBCE-nW/s1600-h/clip_image001%5B10%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[10]&quot; border=&quot;0&quot; alt=&quot;clip_image001[10]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPGtoesaogrjw-peTXEaQjcpKXmabVYVrZ1FtndVK7McevNTZXRNBc3o_qbJ-NGwNQ0MnUamPfQSjetIchJlYBZJSZxKeYOnaUUsaVsgRN7Wn7M-q2D5BkARxBNqfdlTptrlD5/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnOGmQkhCXHFWLjepekR41_CGBRU20HxLqjS7Eec4eViDuV1F9lT9h9LrW31iC90df6n2NU74mNp-qCBV28HJRlBdNrcInvxNeIodvc1E-M_P7oF2V6uApMLbGejOLwet04kxm/s1600-h/clip_image001%5B11%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[11]&quot; border=&quot;0&quot; alt=&quot;clip_image001[11]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKflcjgu8qZs42PVk2FWESI-lUU6ST8lGXstyNCv8M-bWGR298tHozN6lnU6n70IDs6DSs50c5O8UA8xCnE8XQhx5BM9f1ZzYGghF9QxAgcIN9UP7iWwopb2XCIOGwqtRO57zk/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHhaBWVdXZ1NmvPdtwV-H1Mnd9NphjQFs0ddK0IMhcy4lMUjID8CC74dC5K0G6cCI5FLB0kSvk4bN1FIKuVjDBMj3YMlnZJm1YMLyvF0UWhoqRwguqf7DUa5sU3WUWhv8HHlaM/s1600-h/clip_image001%5B12%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[12]&quot; border=&quot;0&quot; alt=&quot;clip_image001[12]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilrpEZ_CgDeZJpnRl26a3rLF3kfA7HpJS66I4mXUdGNBywp4obISGlySz4QWj95kwSAarQsCVMM_1-Rg5S1R0iTmM2CbAyWMuT5UnkLuK7piSv7f4g-p4utcifsV_FOP9qOjj9/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAWvjkbNUZVsgWA3tX_KqUKkme80nuE1J34svWA8x9ZPMsS2heJEcJF1Vh2-inN4HHepuO3kQI4mxqliOri2mqe3dBerR0Lk5-LL2G5CgURX6KjYX1j96N8q6f-iMAK41Qp_uv/s1600-h/clip_image001%5B13%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[13]&quot; border=&quot;0&quot; alt=&quot;clip_image001[13]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnMifDa85TntRvAHfj5_ObW5xHbogGdt0-lXRMvgA0dcAiFl0UM1sZ0YlyM4uLLdO3_yFqlaJa3Qtxyx-tjpLTtU18ZJYJdnNU8mTzTbkM6IOkuEDfCgsinywsM0kEAIqGSjUI/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivHoAce7tvrfNU-e7081gIgj6w9efS7EBp_5Sz5LdloLC2PsPng7riWPCj8V6XuZJBpBBLNUWCS7xs4un8-frn13J5jNoK07a3eo3JfzOKfvE4CK3QM8jTbEI7vf8_OHooK5Nr/s1600-h/clip_image001%5B14%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[14]&quot; border=&quot;0&quot; alt=&quot;clip_image001[14]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHo1ioIs3iikxbejtrXGK1hxbKDJX2tvYzzg-VaibSGd9Czrke2fg-67nJALovLqC1yqvjhrc6N9RqP98qmbriIVFKyYANgJWBCDHiZG1M32ML3uGhS1OSGvz-a695WiVqABpT/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;97&quot;&gt;           &lt;p&gt;&lt;a href=&quot;http://www.tiobe.com/content/paperinfo/tpci/Objective-C.html&quot;&gt;Objective-C&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;34&quot;&gt;           &lt;p&gt;2.288%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;+2.15%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;33&quot;&gt;           &lt;p&gt;&amp;#160; A&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;12&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p&gt;10&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;115&quot;&gt;           &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4dy48zQAqn7A75apGwbsUDAI6fSWgYkrqUEl3-12lDDhKQlD9fzKeYuM4hIBSyh07Laoj6z8A81hQ1N4wsMRP02QFTQAGdO7ju-E_SKQGqvXFCgCnrPpHgItWNDHZzfcp26s7/s1600-h/clip_image002%5B4%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image002[4]&quot; border=&quot;0&quot; alt=&quot;clip_image002[4]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggs2MnJ8mQBq4mztcXM-rqmL4pwRkuvzqoTT6S6rDCvIhhXueE4GBLJ8CG8vw6dhMEg3XIS3jg-uFAa04RsuHnD1SMdB3N7snaY9pvtt30Pc2MF_q7T6KULvZLLotULWwP5Np1/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhob4KQ7dngVN18jPeS014P5w-HjdHyXO3vSbD3EFlvthK_lkqfpfk4g-vsv_3K4NPgDQNjTJR0J17J57ZUaTtVIOyhhSAi7zxl6_v9ezKss38ijQbNTXPPU5ouOVGmyFYWB4Ux/s1600-h/clip_image002%5B5%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image002[5]&quot; border=&quot;0&quot; alt=&quot;clip_image002[5]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjONasxyUiCHOwLvclHLvU1CJnj5HMnBAzhu0Z2uAieGGQOpkKYOw2XkQvAAswJw8RBXFEGU6VqayQsp6moIW7gYDVnAFJ5_ct8NEGnnyagEpfMdsEue_ZsTOD9hg5nUkHs7Z9R/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;97&quot;&gt;           &lt;p&gt;&lt;a href=&quot;http://www.tiobe.com/content/paperinfo/tpci/Ruby.html&quot;&gt;Ruby&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;34&quot;&gt;           &lt;p&gt;2.221%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;-0.35%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;33&quot;&gt;           &lt;p&gt;&amp;#160; A&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;13&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p&gt;14&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;115&quot;&gt;           &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiB41MmIZ8WnsA-4_su0BjBQcdDvrxkynghxuTMeMJfB4hFX8aX2lbCpkv7NN4CdyHqzjR8vlbw3gfm3mRnPZ-nriSjSbuB-4w5ETJbOZDDN3drB5xeCDf5r9elNlSzmCnrPd8m/s1600-h/clip_image001%5B15%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[15]&quot; border=&quot;0&quot; alt=&quot;clip_image001[15]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin0nw0LFOFJZUDRz9ikOtXDkRd8bZcRDrEerA6vA0jtCXeyuGI3H5MdNdbmJDVCbvnjNhdmc4fai1pZCkWky3iY7QAu9kaCTIFX9EZFEBkmRxvTneHLMNi6_Xx2yg3U-9yueVY/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;97&quot;&gt;           &lt;p&gt;&lt;a href=&quot;http://www.tiobe.com/content/paperinfo/tpci/SAS.html&quot;&gt;SAS&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;34&quot;&gt;           &lt;p&gt;0.717%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;-0.07%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;33&quot;&gt;           &lt;p&gt;&amp;#160; A&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;14&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p&gt;12&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;115&quot;&gt;           &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO10RhglHmbFVpOdTZkgLMKt6PqP11WVBsrmq8Rh0iSs0uK4UIPzwyd7UbzCRax2NgUmkTe9UNFXWPiyRhY751VGhTu_wCmT5n2evO9Kkx_oeAaw7TAKHPvKJxdNH7ZdAe_dgU/s1600-h/clip_image002%5B6%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image002[6]&quot; border=&quot;0&quot; alt=&quot;clip_image002[6]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhogMsAZ8N3fELIwKVIDc9UxRDeccXslHKp6FV6WE-wFuG4ycmIfQujSp-lBkMlPlcI1LrDPY1yZfiBsdfwfoIzrBEFUJlmjntoKKhOpyMiurISnCKaD-4rDdwsOHaewNJOi5gz/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBzqfQboyXBDUL4KbQYuz20hXuxhTyK6uQEUxSGbVpe_hucsdjwtpJmTeVpjiE-sRuWcqRb5Y6TisG8YZl4cBjGjINb1FSjo_4zUgLA5ina3px0zXEQiXSnzcLjTckTUFDfT8l/s1600-h/clip_image002%5B7%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image002[7]&quot; border=&quot;0&quot; alt=&quot;clip_image002[7]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9cQKkkn60Np0esPKjCVjhPmARI2sgzKnn6TfBGyGSPMiTj6gHoT4d4ijNODpNMSTzC0pOKskEzBKaPzX8MkOhb2M50YgE48ELFp3F6RYcloSyInvVj7IKxiL9Mm7Ri_9Z07Nv/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;97&quot;&gt;           &lt;p&gt;&lt;a href=&quot;http://www.tiobe.com/content/paperinfo/tpci/PL_SQL.html&quot;&gt;PL/SQL&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;34&quot;&gt;           &lt;p&gt;0.710%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;-0.38%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;33&quot;&gt;           &lt;p&gt;&amp;#160; A&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;15&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p&gt;-&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;115&quot;&gt;           &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYgJxqf_5ISG7Pkpqw1ufEEI9Gv2aRwdpigMGlOHLyZdKN2EHiUtb0sLhZKHwE-oZivaN78PjG4dEwQdUMcRymZArDW82K0mmZpf7ra8sTo8QLfbe6mvUh4kvBeGuJy9Hcaczn/s1600-h/clip_image001%5B16%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[16]&quot; border=&quot;0&quot; alt=&quot;clip_image001[16]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioHP0dAQQmaI7kaNZcAExqqDvwJGxPt-_gHYsRHYyiKS8u4PWfhEmalhhMxVVAsf5usGOqcfUshnLdvj8d10OfGBljcOsUmYs4Y4-9FwVhsktaNkmUM2XB4T2a36khoB-gaipk/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEpLBn6-rJcsQBBEUu4TH9GRN5f5xa0hLh8KotVO1W2CfzZQ20h4iGrdcu2RBgrnIpS9SuciEehNcxox1P19_3d5_3qjNtw_5D-5Q4fykLUGyAJADbtZzXrAHliPTOdq78oA_D/s1600-h/clip_image001%5B17%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[17]&quot; border=&quot;0&quot; alt=&quot;clip_image001[17]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5xY5GreUvck5rauw3d_oCl0GKGs-9fhe1-xCcQ6WJCoyTPhIVywBolT1tRnhLbKyr__yGsxxwuP-wI-eolFhhzk2ekY6iWw1eY4ywyjX3A8DHvhZmGEr2LZuS6PZ1slH2D-MT/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyqDhkz6TD2bz0C6uxlCKNZwAPiWbla1NoZPp8AHsNbkKOrQZOGGkqD6NqUA_MA0dJmRI5OMJGw9BoOksy0sVh_gU2K-5_qzi46dkfRHpIRSbed1Qm97HdcjfxavZmKc_AL5hR/s1600-h/clip_image001%5B18%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[18]&quot; border=&quot;0&quot; alt=&quot;clip_image001[18]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_sJ_4s6Hpb7ntMLpqtVbdhll-yFSR9dlxgtDF6Bqbm_VQmHC2geup4pIXLgP1SDSi8c9yzjEvMjIJY8WFBSjzSNxrj5eA0DslLLTcLLGGPJubx_Kw-07ZSlINMKjH847wxQ2p/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh13kzLy1WnNHd6FsL5D6fGzfpJ8m5LcqUXgdJdBvQmQQF6jvhSfeBPPgCqwHE6egQu6IWjkuRiaJG80z0cpRYi86RCy2gNX6dmYST6YbKDMJ1qxKtJkdeMANs1Y_DckVVmFYK2/s1600-h/clip_image001%5B19%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[19]&quot; border=&quot;0&quot; alt=&quot;clip_image001[19]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg24n5ipbaZ-Fz3O99rP9haofQrme3IwRs3K0lPkZQTDQ2DPfInu8zLsV_LuspSmtvs4nRu3sqbV4kGbEXxnEGDyGgOuLEJwRAp6vPVwLsedPOlfgoZTllxYgEMqBYUJt8HqFDl/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhL-q04HLmABFDhj_9Ar20dYgxrwLjSswKqcDrFmf6F8CpRd2r3bDTc0aTn5yjIuQ3MTIAmTqGZCwm96n0ksCs51xyOoSGsIzgkE1Gr9izcC0bBMIZV2PwNr-hIiZS6u3BAv8ot/s1600-h/clip_image001%5B20%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[20]&quot; border=&quot;0&quot; alt=&quot;clip_image001[20]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO_wjxVLeyTVKHwa7iRkHnph2dJwjxpNe72L5fSGN_93Gq3K_-9Rt3kJFZAheJVf4_I1NY3yixUMTj8Vpbeb4LuTD-kEb0Bed5IyO4cHwfGkumFiAiKq71K3nwmxYuq3alybjK/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeBSYX_-oxdyiyuvjJmVJDaK2NvLVMRoWQU6V2P4Z0Vxm7j_H7MNsBSHwAg-vRMOndNuEZDCf61MmFCtcH9ZEvqDP5_7fYkxtBBsTEMCldF_kFBeDNhxEzNoMza1ZMgX2yHTgi/s1600-h/clip_image001%5B21%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[21]&quot; border=&quot;0&quot; alt=&quot;clip_image001[21]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO2Jm3ZrKCsRt_BpJdPmH4VxJKtHgf7Oq_0A5_XqSrkpsNJPoXkJS49wVZsS0t3vzwhM5vt51nCNfKvD1C3bYNqd1S7yIsEaRaXMtA5JXe2GLYWLPB65hgFiJNThi75_FhtZ0v/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkOeXCWJmyshvSOBZ1AvV9_VJsG2PG_WI8Uhns16bXBed1U0iFDx_PTVGQvo36i9ceWd_geA55LCd4YxyvZxwso_DkxIjUH9aBMvf4kIRKc0gTrn95f92mCzW0js0vQub_TgGo/s1600-h/clip_image001%5B22%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[22]&quot; border=&quot;0&quot; alt=&quot;clip_image001[22]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQVAsYt8Y8yTRC-ZdjWBmmwoSvb2uiuSXBhs3wIJcM4144lQebjg0NxaF8JdGRcNt-RRoy_ZWa3U3E4SOn8FCYUUC7FUV7kKW645j8Q61zbbdXR1ZzF3NiHZiucge4P8EDG4dk/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwG5Ob6JzUU4llFETRh8HuRKLSk3zCFZlpIE434iIEbFcNuj6bna9eYR1iyPnj_iTQKvkrqOBXhfibMuDb3N_r8fc66YLTnOWW7b_gYGMTAaQuhAYZLqYOw8cTIc1wdAIayTbL/s1600-h/clip_image001%5B23%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[23]&quot; border=&quot;0&quot; alt=&quot;clip_image001[23]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAy_82rudmPpOH0DwjJ26nU8SAvgQfVsms_zvMqf-I0ScEvy1gNbH-Y4gBxyAViVJzKaKhnUKgjSFjhHiuYRJyU4eno6Io7O9h5oRSf4sCeHpNTncaQ_eeGLAp4jwAnsjpshzH/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4WhS0xb1G0yqcBhuZCCmo00mNs4oHSrR9qEKuJGV144zC0y7d9mYKBDx9NW60WpTkLcK8tIptyYCz7IBJDfewxF1OTfh3vf-RVwnvsDrLJ78o1V0Jl9Zv9-9OTgNur-pFBfHo/s1600-h/clip_image001%5B24%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[24]&quot; border=&quot;0&quot; alt=&quot;clip_image001[24]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgu-_yR8lDPk5npDs2zu1W1O0hCj8fWlcMpT5MwspOuQW6mI5xZvCtjodQ3zbRRLhc5W-g-_1spjlXYilAsu5zGtm1l0zzEVSQI14p-cto5U_pnI5jMs4NcwygY4LBpKFtA_OpU/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiszL-82st2e74SKE-IoNm3PaHlF3E6jJUu9wznKEjG3lsJdx59bntKngXQLK6BZueQJzDgT4xD_FhYvszoUxNfqgegThmshySvhklY4rpT7MBLzYuI8EAj-ZGU44CGAJZGjQ1T/s1600-h/clip_image001%5B25%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[25]&quot; border=&quot;0&quot; alt=&quot;clip_image001[25]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVB1-6Zswf8FJAJNiFJTGHwdwjlYABm7q9M8se5XEzO7HQfXNNq_EPX1Enbi23liMD9dYrs-TbsPzTSMz4lWhj62hilc3Dk7NRkF1x6yZGJdUIo8s5eW8orWZRLwRud79kAoMF/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;97&quot;&gt;           &lt;p&gt;&lt;a href=&quot;http://www.tiobe.com/content/paperinfo/tpci/Go.html&quot;&gt;Go&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;34&quot;&gt;           &lt;p&gt;0.710%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;+0.71%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;33&quot;&gt;           &lt;p&gt;&amp;#160; A&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;16&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p&gt;15&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;115&quot;&gt;           &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG92Lss5ZNAFi6gzOKdv3x5MLzbESL_dQFa7zgotKWp1OqnracCXrIrtlAUS3SFA4kJBLk0QlP9SDgNAMQIXXQfY8vOBMOujBs7wprVoERGtohqNbA6DdqasXEl1g2y4-DIHxe/s1600-h/clip_image002%5B8%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image002[8]&quot; border=&quot;0&quot; alt=&quot;clip_image002[8]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyQZqMxb9IHTFTD9fOSIEU5wNWgoCdpad86UuWUwYvt9s1bRUSK5FsnwkUqvKLKjP-X_XsPFYN0GHzCq79Y7b_IIhRxgGBmeXjPvM32N_e_-X1F_juuWqGbsbEC869M1Z7Wx1S/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;97&quot;&gt;           &lt;p&gt;&lt;a href=&quot;http://www.tiobe.com/content/paperinfo/tpci/Pascal.html&quot;&gt;Pascal&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;34&quot;&gt;           &lt;p&gt;0.648%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;-0.07%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;33&quot;&gt;           &lt;p&gt;&amp;#160; B&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;17&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p&gt;17&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;115&quot;&gt;           &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5HGSh_e2rJaorKZX_ftrzF9UqbuiVWGxeIOSG_mpAQFM0yM_LMwFHtyPzLSvrP1w69gAxDx1zanrprXkQGMjSguFJZtxR0K3zj85Vvh_JuYckmM7Xyt008dWrvNMWc7K6SQik/s1600-h/clip_image003%5B3%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image003[3]&quot; border=&quot;0&quot; alt=&quot;clip_image003[3]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9EToI1Hxaio24P8SuU6_SBvk1idupdsmhsXlfZ6uvE4JrHuHRIMKpy9TA7nN3aYu_kmCpvxQc2lKnbq5HijsJbtg4WY_iPxE7akZyzcuvTid-Rqw0f7KrkEJ2tuq3kzMTR_bZ/?imgmax=800&quot; width=&quot;15&quot; height=&quot;22&quot; /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;97&quot;&gt;           &lt;p&gt;&lt;a href=&quot;http://www.tiobe.com/content/paperinfo/tpci/ABAP.html&quot;&gt;ABAP&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;34&quot;&gt;           &lt;p&gt;0.625%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;-0.03%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;33&quot;&gt;           &lt;p&gt;&amp;#160; B&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;18&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p&gt;20&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;115&quot;&gt;           &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmROtokRMxAv0NVkgmHpsq-QNI825fBJLOoUojIamJgevM8UGVcRqi0T-0Hx8ew78dcWoGA8ueYdWv4ISpxByM5N0UvgldOjiw7fuZFUYYYTuC-lIWM0IeyP0Y3n64eaQ-9uTP/s1600-h/clip_image001%5B26%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[26]&quot; border=&quot;0&quot; alt=&quot;clip_image001[26]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxIG-bJywBLWVU1LQUAKccORZpJCf2nOcx7Pbd_oV3r_hwZ9BVMbiq-cgbKnwmxNQJHDF24m3L3XpjidpbdmmExUcGvLSxah2Xr7GwPIv87Jnk4S9RNG5-jE9nDTIJxQ9g_Dzt/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLKw8QR8LEgyg0YXHP6EKm1V46NsVZ1742qplr_d3Yvv2BqkzkSSoU3vQmxIB6imvqUs9XOR-vmNEoIEMk6bgPsS_uUqHmE4VYfvkZeo5uvIHzs8bLNJmgUhSNHoj5oh20hjgm/s1600-h/clip_image001%5B27%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[27]&quot; border=&quot;0&quot; alt=&quot;clip_image001[27]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjp6d2J_iXInoZgCR3bBvELVIIU-xLuTmG0xTdE6RyWqhpntPO8cvKIX5XFB-tc43R-nkjscZWWYz-VojMaSvi7_CvEoYN9ujHVsCREvsQ5rsNaT2vQyzLUjhiTqTynY3E96uUO/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;97&quot;&gt;           &lt;p&gt;&lt;a href=&quot;http://www.tiobe.com/content/paperinfo/tpci/MATLAB.html&quot;&gt;MATLAB&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;34&quot;&gt;           &lt;p&gt;0.616%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;+0.13%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;33&quot;&gt;           &lt;p&gt;&amp;#160; B&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;19&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p&gt;22&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;115&quot;&gt;           &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5u7nG_G4o83cu4QWXYO9Y6UndFt2n4kxIam3sRn-beKmjEnbWk7MTeVftQ9-SU1o1Z7V59y_GNpTloxZq_y64IMQY0XWYbUG6xmklIV5O1it6f08cwjN6qiL6KMEyTWOAQOL5/s1600-h/clip_image001%5B28%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[28]&quot; border=&quot;0&quot; alt=&quot;clip_image001[28]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqY_Yu5UYKmAA_pMR_EibpRytaP9-h7Ee4Ysc_trmc6fnqEv9i9plC_ENKgY1DAz2zSRIEaJJFEWPZCndOO_ODzqeF_wMLHHaLzc2vL2AyY9V_I2xmnMLpyVWCsaWFiSBHGTia/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdSwBWwARmpyHmekSKHf-vel0B4m0Okt9utSMkTLRHqg9iO7QW1U-N9A8cLEdCxwNiK_4IMbowoYqC2jXsWPxOHJtnHIIq579c4b01cvhAqP7ZacjWqLv2oYuQsthnFss-CBw7/s1600-h/clip_image001%5B29%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[29]&quot; border=&quot;0&quot; alt=&quot;clip_image001[29]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD8rSDYuHS1F3f0EhQbHpQUKxX8YfmjjyIjf5NcRRP5te2SDbpyYcrTHTP1fd9fUiS-rusv4xOlDG1_7l7Whl237bXhymkspvQlJh-bbdPP5TCPX1D2YUQExBye1Sa8tXesF_T/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7GJheSFB6BwXyL0KMTFhojygL2W7zC5gwdx_AHisNzEm6DXc86PT9anQ9uNE1X18ErZuJ12yPlskkzKA5_BC2PaYHazUv2cUM9P5b6Nj9OcWIrHC_zRSdEofyni63edCTbSGl/s1600-h/clip_image001%5B30%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image001[30]&quot; border=&quot;0&quot; alt=&quot;clip_image001[30]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPYFe62cIOhnUFCKVX9NBHh-taxKp0P0BscRQfUa24-p6gbmz9ILezSi-UXnYyNuXw2RC4o7L1x0RpVyaAf2uBvYnnHhbV7d5kQA9vjfW0UqLeMKpe0i2uZ56J-NdFuDNCs38K/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;97&quot;&gt;           &lt;p&gt;&lt;a href=&quot;http://www.tiobe.com/content/paperinfo/tpci/ActionScript.html&quot;&gt;ActionScript&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;34&quot;&gt;           &lt;p&gt;0.545%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;+0.09%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;33&quot;&gt;           &lt;p&gt;&amp;#160; B&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;20&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p&gt;19&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;115&quot;&gt;           &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUoOqHH_PNlJ2Y63mfFJr_Xz7dfJAzOXW4VQ2QEx-_UvElxDR7QwsjOIz7Va3DzBh5kXp1luVSP8y9p-I9AHrTepy1R4re6eb-NVwYwXWKYzpoP6_ABseJ85zw3fEoxYqTHWIM/s1600-h/clip_image002%5B9%5D%5B2%5D.gif&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image002[9]&quot; border=&quot;0&quot; alt=&quot;clip_image002[9]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHB5Ye44WSKwUqk-yfeAM47FcotjJqoDBQemAvRLjDK_p5s-0a63J129ZqoCRPooUwOmcwNd5P22YhaSfMofBPMhp1tY_LgCpusxDTlUIfI5d2dDNgCGROXXM-7ajG1KSp5sqx/?imgmax=800&quot; width=&quot;10&quot; height=&quot;15&quot; /&gt;&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;97&quot;&gt;           &lt;p&gt;&lt;a href=&quot;http://www.tiobe.com/content/paperinfo/tpci/Lua.html&quot;&gt;Lua&lt;/a&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;34&quot;&gt;           &lt;p&gt;0.521%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;45&quot;&gt;           &lt;p&gt;+0.03%&lt;/p&gt;         &lt;/td&gt;          &lt;td width=&quot;33&quot;&gt;           &lt;p&gt;&amp;#160; B&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/blockquote&gt;  &lt;p&gt;Here’s &lt;a href=&quot;http://devcatharsis.blogspot.com/2008/09/java-versus-net.html&quot;&gt;my 2008’s post about the index&lt;/a&gt;.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/4149259736915947989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/4149259736915947989?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/4149259736915947989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/4149259736915947989'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2010/04/c-programming-language-back-at-top.html' title='C programming language back at the top'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd_au_WIhY4FaPCV2Ii7LDbfmM8tB6JSCXdsku8oYSKllllvERLmUg5tZc8scDx2TP_Hr-MLMbKO8fQN5PMIAiqgeu56pGdB4rNVrpFkQmbRAQaYzVR-5q0zxfOe2kaFVZqwfJ/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35686921.post-2521037540537312137</id><published>2010-03-31T10:50:00.001+01:00</published><updated>2010-03-31T10:50:57.971+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Tools"/><title type='text'>Visual Studio 2010 Launch</title><content type='html'>&lt;p&gt;It seems like we’ll have to wait for the &lt;a href=&quot;http://www.devconnections.com/shows/SP2010VS/default.asp?s=144&quot;&gt;launch in Vegas&lt;/a&gt;. April 12.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/2521037540537312137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/2521037540537312137?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/2521037540537312137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/2521037540537312137'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2010/03/visual-studio-2010-launch.html' title='Visual Studio 2010 Launch'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35686921.post-3276431209187409084</id><published>2010-03-16T10:10:00.001+00:00</published><updated>2010-03-16T10:19:34.690+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><title type='text'>Silverlight for Windows Phone 7.0</title><content type='html'>&lt;p&gt;Finally we’ll have Silverlight on Windows Phone 7! &lt;a href=&quot;http://blogs.msdn.com/cesardelatorre/archive/2010/03/16/silverlight-4-0-rc-and-silverlight-for-windows-phone-7-0-presented-at-mix2010.aspx&quot;&gt;Here it is&lt;/a&gt;:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;&lt;u&gt;SILVERLIGHT 4.0 RC and Silverlight for Windows Phone 7.0&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&lt;img style=&quot;margin: 0px 20px 0px 0px&quot; title=&quot;Associated Press Application&quot; alt=&quot;Associated Press Windows Phone 7 Series Application&quot; align=&quot;left&quot; src=&quot;http://silverlight.net/resources/images/content/misc/ap-windows-phone-application.jpg&quot; width=&quot;175&quot; height=&quot;345&quot; /&gt;&lt;/p&gt;    &lt;p&gt;· Microsoft delivers the &lt;i&gt;premier mobile application development experience&lt;/i&gt;.&lt;/p&gt;    &lt;p&gt;- Today, with the combination of Windows Phone 7 Series, Silverlight, the XNA Framework, Visual Studio, Expression Blend and Windows Phone Marketplace, developers have the richest, most productive development tools and platform for creating and deploying high performance, compelling mobile applications.&amp;#160; &lt;/p&gt;    &lt;p&gt;- Microsoft offers a familiar and flexible development experience for mobile applications with Visual Studio 2010 Express for Windows Phone and Expression Blend for Windows Phone.&lt;/p&gt;    &lt;p&gt;- The Windows Phone Marketplace offers developers a low-cost, easy, transparent and predictable way to publish, distribute and monetize their applications.&lt;/p&gt;    &lt;p&gt;· &lt;i&gt;One Silverlight, many opportunities&lt;/i&gt; to deliver the best experiences with the highest quality.&lt;/p&gt;    &lt;p&gt;- Silverlight developers can use their existing skills to create amazing consumer and enterprise experiences that run across many and varied devices. &lt;/p&gt;    &lt;p&gt;- Developers can write once, optimize everywhere to deliver engaging, high-quality experiences through all major browsers on Mac, Windows, and Linux client operating systems as well as a growing range of devices including Windows Phone, Symbian and Moblin.&lt;/p&gt;    &lt;p&gt;- A growing list of companies have chosen Silverlight to deliver high-quality experiences including Major League Soccer; eBay; CT Corporation, a Wolters Kluwer Company; Netflix; Associated Press; H&amp;amp;R Block and NBCOlympics.com.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Download the Silverlight 4 RC today.&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Silverlight 4.0 Tools for Visual Studio&lt;/strong&gt;:&lt;/p&gt;    &lt;p&gt;- Silverlight 4 offers compelling features such as beyond-the-browser extensions, webcam and microphone, native multicast support and a full suite of enterprise development capabilities including enhanced printing, networking, reporting and charting, as well as integration with Microsoft Office, SharePoint and Visual Studio 2010.&lt;/p&gt;    &lt;p&gt;&lt;a href=&quot;http://silverlight.net/getstarted/silverlight-4/&quot;&gt;http://silverlight.net/getstarted/silverlight-4/&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;o &lt;strong&gt;Download Expression Blend 4 beta today.&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;- Expression Blend 4 beta expands on revolutionary design and development workflow, through adding support for Silverlight 4, .NET Framework 4 and Visual Studio 2010, and groundbreaking new features like Path Layout, animated pixel and transition effects, and Model View Model support.&lt;/p&gt;    &lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyID=6f014e07-0053-4aca-84a7-cd82f9aa989f&amp;amp;displaylang=en&quot;&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=6f014e07-0053-4aca-84a7-cd82f9aa989f&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Silverlight for Windows Phone 7.0&lt;/strong&gt;: &lt;/p&gt;    &lt;p&gt;o Download the free Windows Phone Developer Tools CTP today, including Visual Studio 2010 Express for Windows Phone.&lt;/p&gt;    &lt;p&gt;&lt;a href=&quot;http://silverlight.net/getstarted/devices/windows-phone/&quot;&gt;http://silverlight.net/getstarted/devices/windows-phone/&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;- Developers already working with Visual Studio can download the free Windows Phone 7 Add-in for Visual Studio today.&lt;/p&gt;    &lt;p&gt;- Developers can fully test their applications without the need for a physical device by downloading the free Windows Phone 7 Emulator, also available for download today.&lt;/p&gt;    &lt;p&gt;- Expression Blend for Windows Phone will be available in the weeks ahead.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Cool! Can wait until I get my hands on a WM7 phone! And to see it on Symbian!&lt;/p&gt;  &lt;p&gt;&amp;lt;update&amp;gt;&lt;/p&gt;  &lt;p&gt;It looks like the Symbian version is on it’s way, though it was removed from MSDN:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjp1D1KraIQ-1xKuttw3Ehmy6r3A8zAzJnQlJlSq4fj3U-9lUYAef64O_TB0dc7gMEKe1Za-PvI2rYNv9Pe8abKkGiTKBdx1T6AkMOGDI8i1FV9XwkXI9Z_tECG3_NrS_Vjof42/s1600-h/silverlightsymbian1%5B1%5D%5B2%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;silverlightsymbian1[1]&quot; border=&quot;0&quot; alt=&quot;silverlightsymbian1[1]&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifc78da9ND8UZrGDfmbxTsyV1njG81lvVuOnZJmJeT14vNk-1NqpurNxwWe1JQ9Mn82YThtyvEgVGx2nBk34oNyKCxWiu1Vl5ZjgehEIyEKvwATt8zFHYxz7dQCTM7Iup2qm5z/?imgmax=800&quot; width=&quot;244&quot; height=&quot;137&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Thanks for the tip, Rasteiro :)&lt;/p&gt;  &lt;p&gt;Seems like flash is loosing some grip… Will we have a battle limited to Silverlight and HTM5?…&lt;/p&gt;  &lt;p&gt;&amp;lt;/update&amp;gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/3276431209187409084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/3276431209187409084?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/3276431209187409084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/3276431209187409084'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2010/03/silverlight-for-windows-phone-70.html' title='Silverlight for Windows Phone 7.0'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifc78da9ND8UZrGDfmbxTsyV1njG81lvVuOnZJmJeT14vNk-1NqpurNxwWe1JQ9Mn82YThtyvEgVGx2nBk34oNyKCxWiu1Vl5ZjgehEIyEKvwATt8zFHYxz7dQCTM7Iup2qm5z/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35686921.post-5126721395015064243</id><published>2010-03-12T17:12:00.001+00:00</published><updated>2010-03-12T17:12:36.749+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Tools"/><title type='text'>ASP.NET MVC 2</title><content type='html'>&lt;p&gt;Here a great little yesterday’s news: &lt;a href=&quot;http://weblogs.asp.net/scottgu/archive/2010/03/11/asp-net-mvc-2-released.aspx&quot;&gt;ASP.NET MVC 2 is RTM&lt;/a&gt;!&lt;/p&gt;  &lt;p&gt;Here’s the link for the &lt;a href=&quot;http://go.microsoft.com/fwlink/?LinkID=185037&quot;&gt;Microsoft Web Platform Installer&lt;/a&gt;, where we can install MVC (among others). Be sure to uninstall the previous versions.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/5126721395015064243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/5126721395015064243?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/5126721395015064243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/5126721395015064243'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2010/03/aspnet-mvc-2.html' title='ASP.NET MVC 2'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35686921.post-1713654545316307253</id><published>2010-03-06T17:25:00.001+00:00</published><updated>2010-03-06T17:25:42.884+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><title type='text'>c# open-source</title><content type='html'>&lt;p&gt;&lt;a href=&quot;http://csharpopensource.com&quot;&gt;csharpopensource&lt;/a&gt; is a reference guide to some of (allegedly the best) C# open source projects available. Basically it works as a directory, other than a repository.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/1713654545316307253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/1713654545316307253?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/1713654545316307253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/1713654545316307253'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2010/03/c-open-source.html' title='c# open-source'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35686921.post-144713417781490910</id><published>2010-03-05T11:40:00.001+00:00</published><updated>2010-03-05T11:40:59.846+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Tools"/><title type='text'>Fences: will I finally cleanup my desktop?</title><content type='html'>&lt;p&gt;Here’s a cool utility to arrange your desktop into nice little “folders”: &lt;a href=&quot;http://www.stardock.com/products/Fences/&quot;&gt;Fences&lt;/a&gt;. I just love the way it hides your icons: just double click!&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/144713417781490910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/144713417781490910?isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/144713417781490910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/144713417781490910'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2010/03/fences-will-i-finally-cleanup-my.html' title='Fences: will I finally cleanup my desktop?'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35686921.post-3459391007131500691</id><published>2010-03-04T22:57:00.001+00:00</published><updated>2010-03-04T22:57:21.203+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="architecture"/><category scheme="http://www.blogger.com/atom/ns#" term="Education"/><title type='text'>Free PDF: “A Guide to Claims-Based Identity and Access Control”</title><content type='html'>&lt;p&gt;It’s a light and short 88 pages booklet PDF (have you noticed a trend on this kind of format?). Here it is: &lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=4c09ffe4-43dd-4fcc-be35-c897c9bc4386&quot;&gt;“A Guide to Claims-Based Identity and Access Control”&lt;/a&gt;. A fast way to get in touch with the Microsoft offering over this scenarios. All about identity management from a decentralized perspective.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/3459391007131500691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/3459391007131500691?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/3459391007131500691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/3459391007131500691'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2010/03/free-pdf-guide-to-claims-based-identity.html' title='Free PDF: “A Guide to Claims-Based Identity and Access Control”'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35686921.post-583228823458094394</id><published>2010-03-02T10:54:00.001+00:00</published><updated>2010-03-02T10:54:32.788+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><title type='text'>Noda Time: the Joda Time .Net version</title><content type='html'>&lt;p&gt;Traditionally dates have never been properly addressed on the development community. First we compacted years on a couple of digits (remember the 2000 year mess?), then we stored them on strings (not particularly bright, I’m afraid), and nowadays we finally typified them onto a datetime structure. But still we didn’t get it right.&lt;/p&gt;  &lt;p&gt;Datetime implementations both on .NET and java are still not there. From the inability some have representing the datetime on a format other than the localdate, to non standard, non extensive, buggy and slow implementations, datetime is not yet a first class citizen.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://joda-time.sourceforge.net/&quot;&gt;Joda Time&lt;/a&gt; is an API intended to replace Java date and time classes. Here’s the .NET version, &lt;a href=&quot;http://code.google.com/p/noda-time/&quot;&gt;Noda Time&lt;/a&gt;, and the &lt;a href=&quot;http://msmvps.com/blogs/jon_skeet/archive/2009/11/06/noda-time-is-born.aspx&quot;&gt;announcement&lt;/a&gt; from Jon Skeet.&lt;/p&gt;  &lt;p&gt;PS: by the way, Jon Skeet is considered the “Chuck Norris” of the programming community (his stackoverflow &lt;a href=&quot;http://stackoverflow.com/users/22656/jon-skeet&quot;&gt;reputation&lt;/a&gt; is 142,008). He presently works at Google and wrote &lt;a href=&quot;http://csharpindepth.com/&quot;&gt;C# in Depth&lt;/a&gt;. Here is a &lt;a href=&quot;http://blog.stackoverflow.com/2008/11/stack-overflow-is-you/&quot;&gt;compilation of Jon Skeet Facts&lt;/a&gt;:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Jon Skeet is immutable. If something’s going to change, it’s going to have to be the rest of the universe. &lt;/li&gt;    &lt;li&gt;Jon Skeet’s addition operator doesn’t commute – it teleports to where he needs it to be. &lt;/li&gt;    &lt;li&gt;Anonymous methods and anonymous types are really all called Jon Skeet. They just don’t like to boast. &lt;/li&gt;    &lt;li&gt;Jon Skeet’s code doesn’t follow a coding convention. It is the coding convention. &lt;/li&gt;    &lt;li&gt;Jon Skeet doesn’t have performance bottlenecks. He just makes the universe wait its turn. &lt;/li&gt;    &lt;li&gt;Users don’t mark Jon Skeet’s answers as accepted. The universe accepts them out of a sense of truth and justice.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;One of the 2 is for sure: other Jon Skeet is a facade for a large community of developers or he just doesn’t sleep!&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/583228823458094394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/583228823458094394?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/583228823458094394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/583228823458094394'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2010/03/noda-time-joda-time-net-version.html' title='Noda Time: the Joda Time .Net version'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35686921.post-8727223344542312558</id><published>2010-02-24T23:53:00.001+00:00</published><updated>2010-02-24T23:53:11.567+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Education"/><title type='text'>Real-World Relativity: GPS</title><content type='html'>&lt;p&gt;Einstein’s theory of relativity is not as abstract as we may think. An example we often use is GPS, a system that as we know uses a method called trilateration, a method that depends on the precision of the satellite internal clocks to calculate absolute positions.&lt;/p&gt;  &lt;p&gt;The problem is that time is relative, and though we all recognize it, probably most of us imagine that we needed extreme conditions to make it happen (I was one of them). But &lt;a href=&quot;http://www.astronomy.ohio-state.edu/~pogge/Ast162/Unit5/gps.html&quot;&gt;all we need&lt;/a&gt; is a satellite at about 20.000 km from the ground, orbiting at about 14.000 km/h and a process requiring 20 to 30 nanoseconds precision, and there you have it, you’ll have to take the theories of relativity into account:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p align=&quot;left&quot;&gt;Because an observer on the ground sees the satellites in motion relative to them, Special Relativity predicts that we should see their clocks ticking more slowly (see the &lt;a href=&quot;http://www.astronomy.ohio-state.edu/sr.html&quot;&gt;Special Relativity lecture&lt;/a&gt;). Special Relativity predicts that the on-board atomic clocks on the satellites should fall behind clocks on the ground by about 7 microseconds per day because of the slower ticking rate due to the time dilation effect of their relative motion.&lt;/p&gt;    &lt;p align=&quot;left&quot;&gt;Further, the satellites are in orbits high above the Earth, where the curvature of spacetime due to the Earth&#39;s mass is less than it is at the Earth&#39;s surface. A prediction of &lt;a href=&quot;http://www.astronomy.ohio-state.edu/gr.html&quot;&gt;General Relativity&lt;/a&gt; is that clocks closer to a massive object will seem to tick more slowly than those located further away (see the &lt;a href=&quot;http://www.astronomy.ohio-state.edu/Unit3/blackholes.html&quot;&gt;Black Holes lecture&lt;/a&gt;). As such, when viewed from the surface of the Earth, the clocks on the satellites appear to be ticking &lt;em&gt;faster&lt;/em&gt; than identical clocks on the ground. A calculation using General Relativity predicts that the clocks in each GPS satellite should get ahead of ground-based clocks by 45 microseconds per day.&lt;/p&gt;    &lt;p align=&quot;left&quot;&gt;The combination of these two relativitic effects means that the clocks on-board each satellite should tick faster than identical clocks on the ground by about 38 microseconds per day (45-7=38)! This sounds small, but the high-precision required of the GPS system requires nanosecond accuracy, and 38 microseconds is 38,000 nanoseconds. If these effects were not properly taken into account, a navigational fix based on the GPS constellation would be false after only 2 minutes, and errors in global positions would continue to accumulate at a rate of about 10 kilometers each day!&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Cool article! But you know what’s cooler? That these theories were almost like pure creation: it’s not like Einstein developed a GPS system, failed to make it work, to finally theorize: what if time would be relative? Naturally he did start from an empty canvas and no purpose at all, but in face of the problem the scientific community had identified, his leap was so extraordinary that after 100 years we still find it hard to explain. Thank you, Albert.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/8727223344542312558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/8727223344542312558?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/8727223344542312558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/8727223344542312558'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2010/02/real-world-relativity-gps.html' title='Real-World Relativity: GPS'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35686921.post-5842526687190333633</id><published>2010-02-18T11:26:00.001+00:00</published><updated>2010-02-18T11:47:31.537+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Tools"/><title type='text'>Outlook Social Connector</title><content type='html'>&lt;blockquote&gt;   &lt;p&gt;The all-new &lt;a href=&quot;http://www.microsoft.com/office/2010/en/socialconnector/default.aspx&quot;&gt;Outlook Social Connector&lt;/a&gt; connects you to the social and business networks you use, including Microsoft SharePoint, Windows Live, and other popular third-party sites, so you can get more information and stay in touch with the people in your network without leaving Outlook.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;For now we only support LinkedIn, but Facebook, Windows Live and mySpace is comming soon. On problem, though, is the lack of 64 bit support.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Here’s a &lt;a href=&quot;http://blogs.msdn.com/outlook/&quot;&gt;sample&lt;/a&gt;:&lt;/p&gt;  &lt;p&gt;&lt;img title=&quot;Facebook for Outlook&quot; border=&quot;0&quot; alt=&quot;Facebook for Outlook&quot; src=&quot;http://blogs.msdn.com/blogfiles/outlook/WindowsLiveWriter/OutlookGetsMoreSocialthankstoLinkedInFac_1244E/clip_image002_thumb.jpg&quot; width=&quot;565&quot; height=&quot;186&quot; /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;And here’s my sample on a 64 bit box (disconnected from LinkedIn):&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxZQxu5vSBHkLxbzES5bAHqkWzdtkq02egEBXkL4r1MLWuCIZ-hQXLXCe_LoQZkrDrGQ-70GtwvzewiOyHEay2s9DSHMMZ3Xynaf7Cv70xwqmIwuIT6noCD2DYDjS-5xDiN5hK/s1600-h/image%5B5%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA5X1FkpLdWEqugpvNLJsqkNjiB6Jk1svfZ7xcaE-wlFTWWRomr3mDwaGBwrFFWd0n-2EEkXGGByqQo8Mj7-zztXLeZEismikEqPUNUSLlgCKMWXxRCjzXtZxNmqtclpBnnT0R/?imgmax=800&quot; width=&quot;644&quot; height=&quot;166&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://devcatharsis.blogspot.com/feeds/5842526687190333633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/35686921/5842526687190333633?isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/5842526687190333633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35686921/posts/default/5842526687190333633'/><link rel='alternate' type='text/html' href='http://devcatharsis.blogspot.com/2010/02/outlook-social-connector.html' title='Outlook Social Connector'/><author><name>Mário Romano</name><uri>http://www.blogger.com/profile/17249260393075829950</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='14' src='http://photos1.blogger.com/blogger2/2569/4356/259/gse_multipart10520.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA5X1FkpLdWEqugpvNLJsqkNjiB6Jk1svfZ7xcaE-wlFTWWRomr3mDwaGBwrFFWd0n-2EEkXGGByqQo8Mj7-zztXLeZEismikEqPUNUSLlgCKMWXxRCjzXtZxNmqtclpBnnT0R/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry></feed>