<link rel="canonical" href="http://blog.emiliosuarez.com/" />
<meta http-equiv="refresh" content="30;url=http://blog.emiliosuarez.com/" />
<?xml version='1.0' encoding='windows-1252'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-3740390</atom:id><lastBuildDate>Thu, 29 Apr 2010 16:50:54 +0000</lastBuildDate><title>Emilio Suarez's WebLog</title><description>Opinions and thoughts on new technologies and more...</description><link>http://www.emiliosuarez.com/blog.html</link><managingEditor>noreply@blogger.com (Emilio)</managingEditor><generator>Blogger</generator><openSearch:totalResults>47</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-1488008542729869594</guid><pubDate>Thu, 29 Apr 2010 16:50:00 +0000</pubDate><atom:updated>2010-04-29T10:50:54.099-06:00</atom:updated><title>This blog has moved</title><atom:summary type='text'>       This blog is now located at http://blog.emiliosuarez.com/.       You will be automatically redirected in 30 seconds, or you may click here.       For feed subscribers, please update your feed subscriptions to       http://blog.emiliosuarez.com/feeds/posts/default.  </atom:summary><link>http://www.emiliosuarez.com/2010/04/this-blog-has-moved.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-5678196801328749077</guid><pubDate>Wed, 14 Apr 2010 05:56:00 +0000</pubDate><atom:updated>2010-04-14T21:31:40.089-06:00</atom:updated><title>Thoughts on the iPad</title><atom:summary type='text'>So April 3rd, came and went. I got to the Apple store around 10am, no lines but lots of people, but 5 minutes later I was out holding a new iPad. Got it home and the kids were surprised and excited, after all, they had been hearing from Daddy about the iPad for months... and finally here it was. Did it deliver on its promise? you bet it did.So what makes the iPad so special? Well, regardless of </atom:summary><link>http://www.emiliosuarez.com/2010/04/thoughts-on-ipad.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-5558929917064909242</guid><pubDate>Wed, 27 Jan 2010 03:13:00 +0000</pubDate><atom:updated>2010-01-26T21:03:06.726-07:00</atom:updated><title>Apple's latest creation</title><atom:summary type='text'>What a best way to start blogging on this 2010 than to share some thoughts on the upcoming "Come see our latest creation" event from Apple.Of course, as an Apple user and consumer of its products I am intrigued about what Apple has under its sleeve, but what amazes me most, is the amount of press and buzz that this unannounced product has generated in the tech community and beyond. It is amazing </atom:summary><link>http://www.emiliosuarez.com/2010/01/apples-latest-creation.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-3408972858465353332</guid><pubDate>Tue, 11 Aug 2009 19:30:00 +0000</pubDate><atom:updated>2009-08-11T13:34:38.179-06:00</atom:updated><title>VMware to acquire SpringSource</title><atom:summary type='text'>Wow, when I read that headline I scratched my head... what? how is this possible? where did this come from?I have been a user of VMware workstation since version 1. I have maintained virtual machines of Windows95, WindowsNT since the early days and I currently use VMware fusion on my Mac running gOs, Ubuntu, WindowsXP, Windows7 and more obscure ones.I have known and used Spring since it was </atom:summary><link>http://www.emiliosuarez.com/2009/08/vmware-to-acquire-springsource.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-5833583745761873807</guid><pubDate>Thu, 11 Sep 2008 23:29:00 +0000</pubDate><atom:updated>2008-09-11T17:33:01.784-06:00</atom:updated><title>JIRA personal license</title><atom:summary type='text'>I have used JIRA in the past and I consider it the best issue/bug tracking system... and now, they released the latest version 3.13 with the option to install it with a personal license.I already have my personal license for Confluence and this is a great addition to my set of personal productivity tools... thanks Atlassian!</atom:summary><link>http://www.emiliosuarez.com/2008/09/jira-personal-license.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-4977378620775729097</guid><pubDate>Wed, 10 Sep 2008 19:05:00 +0000</pubDate><atom:updated>2008-09-10T13:14:42.701-06:00</atom:updated><title>iPod Touch 2.1... thanks Apple!</title><atom:summary type='text'>Finally... the 2.1 firmware update for the iPod Touch fixes a number of "big" problems that the 2.0 version introduced:Backup time in my iPod with about 40 applications went down from 8 hours to 1 minute... (something was really wrong before...)Updating application is "a lot" fasterUpdated applications retain their position instead of being repositioned to the endApplications don't "hang" the </atom:summary><link>http://www.emiliosuarez.com/2008/09/ipod-touch-21-thanks-apple.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-8054728343552299961</guid><pubDate>Tue, 02 Sep 2008 16:09:00 +0000</pubDate><atom:updated>2008-09-02T13:54:05.374-06:00</atom:updated><title>Google Chrome</title><atom:summary type='text'>What a surprise to find out over the Labor Day weekend that Google is finally releasing its long-rumored Web Browser: Chrome.Google has many interesting projects... some make it and some fail... but in general one can see that most of their applications are designed to be run "in the cloud", and all those applications rely heavily in Javascript for the UI interactions... not Flash, not Flex, not </atom:summary><link>http://www.emiliosuarez.com/2008/09/google-chrome.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-4772399031160746362</guid><pubDate>Wed, 23 Jul 2008 21:30:00 +0000</pubDate><atom:updated>2008-07-23T15:31:03.881-06:00</atom:updated><title>The Dojo Toolkit</title><atom:summary type='text'>It's been a few weeks now that I have started learning Dojo and building a prototype for a web app and I have to say that I am impressed with the toolkit and how well it is architected.To get me started, I started reading the book "Dojo: The Definitive Guide" from O'Reilly on my Safari bookshelf, and also ordered the print copy of the brand new "Mastering Dojo" from the Pragmatic Programmers.The </atom:summary><link>http://www.emiliosuarez.com/2008/07/dojo-toolkit.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-5065141656742824884</guid><pubDate>Fri, 30 May 2008 18:38:00 +0000</pubDate><atom:updated>2008-05-30T14:08:53.266-06:00</atom:updated><title>RIA Technologies</title><atom:summary type='text'>"Rich Internet Applications" (RIA) are the current standard when in comes to developing a highly interactive web application and usually when people mention RIA, they imply Ajax. I named this post "RIA Technologies" because not everything that implements a rich user experience is based in Ajax technologies... but here I'll explore which technologies make more sense for the project that I am </atom:summary><link>http://www.emiliosuarez.com/2008/05/ria-technologies.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-9195471775646394632</guid><pubDate>Sat, 12 Apr 2008 17:28:00 +0000</pubDate><atom:updated>2008-04-12T11:52:33.264-06:00</atom:updated><title>Structure101</title><atom:summary type='text'>As a recent winner of a Productivity Jolt Award, Structure101 gained my attention, and I was also drawn to it by listening to an interview with Juergen Holler one of the co-founders of the Spring framework on Software Engineering Radio.I played with the trial version and within minutes I was able to create diagrams that displayed graphically the architecture of the application, but most </atom:summary><link>http://www.emiliosuarez.com/2008/04/structure101.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-7713575114175244354</guid><pubDate>Mon, 10 Dec 2007 23:05:00 +0000</pubDate><atom:updated>2007-12-10T16:12:39.475-07:00</atom:updated><title>Crappy Java?</title><atom:summary type='text'>Well, it's been out since October, but I recently came across it and looks like another tool that should go into our build process. Crap4J. This is the latest offering from Agitar, and graciously it comes in the form of Open Source... great!As someone who is greatly interested in producing quality code, I see this addition to my arsenal of open source tools as a very good one. Along with PMD, </atom:summary><link>http://www.emiliosuarez.com/2007/12/crappy-java.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-2247298560033712772</guid><pubDate>Thu, 15 Nov 2007 22:00:00 +0000</pubDate><atom:updated>2007-12-04T15:21:32.148-07:00</atom:updated><title>IntelliJ IDEA 7</title><atom:summary type='text'>It is finally here... IntelliJ IDEA 7 is out of beta and a released product... and what a nice improvement.It has a lot of improvements to work better with Spring and Hibernate, Web Services, J2EE, JPA, JSF and GWT. It even includes top-level support for Groovy, Ruby, JRuby, Grails and Rails. There is also an easy way to import an existing Eclipse project into IDEA, which is what most of our </atom:summary><link>http://www.emiliosuarez.com/2007/12/intellij-idea-7.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-7741195362132217914</guid><pubDate>Mon, 05 Nov 2007 19:35:00 +0000</pubDate><atom:updated>2007-11-06T11:56:14.244-07:00</atom:updated><title>Leopard is here</title><atom:summary type='text'>Well, after more than a week, playing with Leopard, the latest version of the Mac OSX operating system from Apple, I am sold on it.As Walt Mossberg declares, it is not "Revolutionary" rather "Evolutionary". And the main thing is that it is a really stable version that builds on a a great foundation that was "Tiger" the previous version of the OS.There has been extensive coverage of the new </atom:summary><link>http://www.emiliosuarez.com/2007/11/leopard-is-here.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-6170619227277610348</guid><pubDate>Fri, 14 Sep 2007 21:21:00 +0000</pubDate><atom:updated>2007-09-14T16:28:33.976-06:00</atom:updated><title>BEAWorld and VMWorld</title><atom:summary type='text'>This week I attended BEAWorld 2007 and I also visited briefly VMWorld which I could enter as a visitor from BEAWorld's conference.This conference is a big departure from the very technical conferences that I have attended recently in the past (No Fluff Just Stuff, RubyConf, MacOSX Conf, EclipseWorld) but it was very interesting to see what the world of big Enterprise Applications is like today. </atom:summary><link>http://www.emiliosuarez.com/2007/09/beaworld-and-vmworld.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-3809710281999626202</guid><pubDate>Mon, 06 Aug 2007 20:04:00 +0000</pubDate><atom:updated>2007-08-06T14:19:38.419-06:00</atom:updated><title>VMWare Fusion</title><atom:summary type='text'>VMware FusionFor the last few weeks I have been toying with the beta version of VMware Fusion, and today version 1.0 is being released. VMware recently entered the playing field of providing a virtualization product to enable running Windows on Mac OSX. I have not tried Parallels yet, but since I have been a long time user of VMware on Windows before, I wanted to give them a try and see how good </atom:summary><link>http://www.emiliosuarez.com/2007/08/vmware-fusion.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-4662078923576175741</guid><pubDate>Wed, 06 Jun 2007 05:40:00 +0000</pubDate><atom:updated>2007-06-05T23:44:37.087-06:00</atom:updated><title>Google Gears</title><atom:summary type='text'>The guys at Google did it again... with the release of Google Gears, the revolution of web apps just got a jolt of energy.There has been attempts by other companies, most notably by Adobe with the Apollo project, to enable some kind of off-line capabilities for web-based applications.But now it was time for Google to give the world in the form of open source, and not proprietary, a very </atom:summary><link>http://www.emiliosuarez.com/2007/06/google-gears.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-3265805936311912429</guid><pubDate>Tue, 01 May 2007 17:58:00 +0000</pubDate><atom:updated>2007-05-01T12:12:42.293-06:00</atom:updated><title>GWT and Flex</title><atom:summary type='text'>With the announcement by Adobe that it is open sourcing the Flex SDK and also the official announcement from Google that the Google Web Toolkit is also under the Apache license, the playing field for building Rich Internet Applications is getting more interesting. Although Laszlo has been the open source leader for building Flash based applications, and there are a number of Ajax toolkits, Flex </atom:summary><link>http://www.emiliosuarez.com/2007/05/gwt-and-flex.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-289580051585908865</guid><pubDate>Fri, 13 Apr 2007 20:52:00 +0000</pubDate><atom:updated>2007-04-13T15:05:36.781-06:00</atom:updated><title>Selenium Talk</title><atom:summary type='text'>I did a couple of talks at the local Denver and Boulder Java User Groups this week, and I could sense a great deal of interest in the community. Not many people had heard about it, but the ones that had, were very interested and had really good feedback to me, specially indicating how easy I made it look.Selenium is an open source tool for testing web applications that was donated to the </atom:summary><link>http://www.emiliosuarez.com/2007/04/selenium-talk.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-2968773938783238218</guid><pubDate>Wed, 21 Mar 2007 21:26:00 +0000</pubDate><atom:updated>2007-03-21T15:46:45.044-06:00</atom:updated><title>Apollo, WebTop and Laszlo Ajax</title><atom:summary type='text'>This week there were a lot of announcements for the RIA (Rich Internet Applications) world... thanks to the AJAXWorld Conference. Adobe launched the alpha version of Apollo, the new runtime that allows the development of RIA in the desktop, so leveraging Flash, Flex, HTML, JavaScript and Ajax into applications that are web-enabled when connected to the network, and desktop applications that </atom:summary><link>http://www.emiliosuarez.com/2007/03/apollo-webtop-and-laszlo-ajax.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-3699764101919233316</guid><pubDate>Wed, 28 Feb 2007 20:11:00 +0000</pubDate><atom:updated>2007-02-28T13:13:29.724-07:00</atom:updated><title>Klocwork Developer for Java</title><atom:summary type='text'>I recently installed the just released Klockwork Developer Plugin for Eclipse, which is supposed to contain all of Klocwork's source code analysis algorithms in a nice package that integrates with Eclipse. I ran the tool agains several projects that I am working on and some open source code bases, and the results were pretty good. Klocwork displays the complete list of findings that enable you to</atom:summary><link>http://www.emiliosuarez.com/2007/02/klocwork-developer-for-java.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-116130076093868182</guid><pubDate>Thu, 19 Oct 2006 23:25:00 +0000</pubDate><atom:updated>2006-10-19T17:52:51.870-06:00</atom:updated><title>Ubuntu and Windows sharing laptop</title><atom:summary type='text'>When the latest release of Ubuntu was released (Ubuntu 6.06 LTS) I decided it was time to install it on my laptop (Dell Latitude D600). But since I also need to work on Windows applications, I needed to have both in a dual boot configuration. I had been playing with Ubuntu using VMWare for some time now and was really impressed with the features, the stability and the ease of use.This was also an</atom:summary><link>http://www.emiliosuarez.com/2006/10/ubuntu-and-windows-sharing-laptop.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-115876949915017822</guid><pubDate>Mon, 28 Aug 2006 15:40:00 +0000</pubDate><atom:updated>2006-09-20T11:09:11.240-06:00</atom:updated><title>Essential Mac OSX applications</title><atom:summary type='text'>I recently upgraded the hard drive on my PowerBook to 120GB and it was a good opportunity to select exactly what were the most important applications on Mac OSX that I needed to install immediately.So here is the list of essential  software for your Mac:- Quicksilver. I don't know how anybody can use a Mac without this incredible piece of software. Even if you only use it in its most simple way, </atom:summary><link>http://www.emiliosuarez.com/2006/08/essential-mac-osx-applications.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-115326927571236551</guid><pubDate>Wed, 19 Jul 2006 00:18:00 +0000</pubDate><atom:updated>2006-07-18T18:34:35.740-06:00</atom:updated><title>Top Windows software</title><atom:summary type='text'>Today, SysInternals and WinInternals have been acquired by Microsoft... so this is the perfect excuse to list the top applications that I always install on a Windows machine... and they are all free or shareware.This is something that several people have asked me before, so I thought it was a good idea to put it here.So here they are:- ProcessExplorer and FileMon from SysInternals. These are the </atom:summary><link>http://www.emiliosuarez.com/2006/07/top-windows-software.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-114866240601766505</guid><pubDate>Fri, 26 May 2006 16:41:00 +0000</pubDate><atom:updated>2006-05-26T10:53:26.026-06:00</atom:updated><title>First offspring: Adobe + Macromedia</title><atom:summary type='text'>As I have mentioned before, the marriage of Macromedia and Adobe will result in very interesting offspring, and here is the most important I think: Project Apollo.According to this article, the idea is to move Flash beyond the browser, so basically allowing the development of web applications that can be used offline outside of a browser.  It is interesting that they are positioning PDF not just </atom:summary><link>http://www.emiliosuarez.com/2006/05/first-offspring-adobe-macromedia.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-3740390.post-114442710299716887</guid><pubDate>Fri, 07 Apr 2006 16:22:00 +0000</pubDate><atom:updated>2006-04-07T10:25:03.013-06:00</atom:updated><title>IntelliJ Team Server</title><atom:summary type='text'>Wow... I just installed the latest version 5.1.1 of IntelliJ IDEA, and noticed that they are working on a new product: Team Server They also have a working demo that you can try to see results of builds, start a build, check status, etc... One of the coolest features is that you can see the progress of a build as it is running live... try clicking on the RUN button for a project. And coupled that</atom:summary><link>http://www.emiliosuarez.com/2006/04/intellij-team-server.html</link><author>noreply@blogger.com (Emilio)</author><thr:total>0</thr:total></item></channel></rss>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     