<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-10392554</id><updated>2010-04-28T17:28:48.599+02:00</updated><title type='text'>Eff + Java = ?</title><subtitle type='html'>This weblog should contain my thoughts about current technologies and developments around Java, in the hopes that somebody is interested in them ;-)</subtitle><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/posts/default'/><link rel='alternate' type='text/html' href='http://www.danielstephan.com/blog/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.danielstephan.com/blog/feed.xml'/><author><name>effjay</name><uri>http://www.blogger.com/profile/15443288408429571151</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-10392554.post-1542946870081055336</id><published>2010-04-28T17:28:00.001+02:00</published><updated>2010-04-28T17:28:48.656+02:00</updated><title type='text'>This blog has moved</title><summary type='text'>       This blog is now located at http://danielstephan.blogspot.com/.       You will be automatically redirected in 30 seconds or you may click here.       For feed subscribers, please update your feed subscriptions to       http://danielstephan.blogspot.com/feeds/posts/default.  </summary><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/1542946870081055336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10392554&amp;postID=1542946870081055336' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/posts/default/1542946870081055336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/posts/default/1542946870081055336'/><link rel='alternate' type='text/html' href='http://www.danielstephan.com/blog/2010/04/this-blog-has-moved.html' title='This blog has moved'/><author><name>effjay</name><uri>http://www.blogger.com/profile/15443288408429571151</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09018081914641204827'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10392554.post-519628196865741574</id><published>2007-03-08T00:36:00.000+01:00</published><updated>2007-03-08T01:34:12.467+01:00</updated><title type='text'>Beans Binding</title><summary type='text'>Hello folks,as I have some spare time now (being on leave for two weeks), I would like to point your attention to the JSR-295 "Beans Binding" databinding framework for Swing, which seems to be near completion. Proper databinding support looks to me to become a big plus for rich client applications with Java.The lead of the project has very recently been taken over by Shannon Hickey, who </summary><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/519628196865741574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10392554&amp;postID=519628196865741574' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/posts/default/519628196865741574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/posts/default/519628196865741574'/><link rel='alternate' type='text/html' href='http://www.danielstephan.com/blog/2007/03/beans-binding.html' title='Beans Binding'/><author><name>effjay</name><uri>http://www.blogger.com/profile/15443288408429571151</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09018081914641204827'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10392554.post-112371438820884449</id><published>2005-08-11T00:52:00.000+02:00</published><updated>2006-11-13T00:07:06.651+01:00</updated><title type='text'>How to classify</title><summary type='text'>Today I read an essay by Clay Shirky about the problems of classification that we face in nowadays digital world. I really liked that article! If there is a librarian living somewhere in your heart, please click on the link hidden in the topic for this entry and read his text, it is entertaining and informative both at the same time.In essence, he tells that a hierarchical classification like the</summary><link rel='related' href='http://shirky.com/writings/ontology_overrated.html' title='How to classify'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/112371438820884449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10392554&amp;postID=112371438820884449' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/posts/default/112371438820884449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/posts/default/112371438820884449'/><link rel='alternate' type='text/html' href='http://www.danielstephan.com/blog/2005/08/how-to-classify.html' title='How to classify'/><author><name>effjay</name><uri>http://www.blogger.com/profile/15443288408429571151</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09018081914641204827'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10392554.post-111385157845676569</id><published>2005-04-18T21:11:00.000+02:00</published><updated>2006-11-13T00:07:06.433+01:00</updated><title type='text'>CocaCola goes Open Source? :)</title><summary type='text'>Another off topic post, click on the topic and you'll see a recipe for cola under GPL. I think thats funny :)cheerseff</summary><link rel='related' href='http://www.colawp.com/colas/400/cola467_recipe.html' title='CocaCola goes Open Source? :)'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/111385157845676569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10392554&amp;postID=111385157845676569' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/posts/default/111385157845676569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/posts/default/111385157845676569'/><link rel='alternate' type='text/html' href='http://www.danielstephan.com/blog/2005/04/cocacola-goes-open-source.html' title='CocaCola goes Open Source? :)'/><author><name>effjay</name><uri>http://www.blogger.com/profile/15443288408429571151</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09018081914641204827'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10392554.post-111379418918276255</id><published>2005-04-18T04:57:00.000+02:00</published><updated>2006-11-13T00:07:06.139+01:00</updated><title type='text'>Trillian Instant Lookup</title><summary type='text'>This is rather off topic, but something I just stumbled upon. The cerulean guy praises their instant lookup feature, which I personally find rather annoying in its current form. Because of which I disabled it.Not because I dislike the feature, but because it happens to disturb while not being used. As soon as the mouse pointer accidentally sits on a word which wikipedia has information about, it </summary><link rel='related' href='http://blog.ceruleanstudios.com/2005/04/ui-design-002-read-between-lines-with.html' title='Trillian Instant Lookup'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/111379418918276255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10392554&amp;postID=111379418918276255' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/posts/default/111379418918276255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/posts/default/111379418918276255'/><link rel='alternate' type='text/html' href='http://www.danielstephan.com/blog/2005/04/trillian-instant-lookup.html' title='Trillian Instant Lookup'/><author><name>effjay</name><uri>http://www.blogger.com/profile/15443288408429571151</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09018081914641204827'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10392554.post-111316235410811202</id><published>2005-04-10T21:44:00.000+02:00</published><updated>2006-11-13T00:07:05.825+01:00</updated><title type='text'>Effjay Foundation Classes</title><summary type='text'>I put some source code in the public domain. It manages tasks and might ease the one or the other multithreading implementation. Check it out and tell me what you think.CheersEff</summary><link rel='related' href='http://www.danielstephan.com/effjayfoundation.html' title='Effjay Foundation Classes'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/111316235410811202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10392554&amp;postID=111316235410811202' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/posts/default/111316235410811202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/posts/default/111316235410811202'/><link rel='alternate' type='text/html' href='http://www.danielstephan.com/blog/2005/04/effjay-foundation-classes.html' title='Effjay Foundation Classes'/><author><name>effjay</name><uri>http://www.blogger.com/profile/15443288408429571151</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09018081914641204827'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10392554.post-111175497397569897</id><published>2005-03-25T12:09:00.000+01:00</published><updated>2006-11-13T00:07:05.536+01:00</updated><title type='text'>Linear Algebra + Java = ?</title><summary type='text'>I like Java. As a matter of fact Java is the one language that I get around with best and which I like to use in just as many projects as I can. The current project needs a lot of specialized mathematics, most of which in the area of linear algebra - meaning matrices and their decompositions, determinants, eigenvectors, singular values, stuff like that. I want to do that with Java as well. The </summary><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/111175497397569897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10392554&amp;postID=111175497397569897' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/posts/default/111175497397569897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/posts/default/111175497397569897'/><link rel='alternate' type='text/html' href='http://www.danielstephan.com/blog/2005/03/linear-algebra-java.html' title='Linear Algebra + Java = ?'/><author><name>effjay</name><uri>http://www.blogger.com/profile/15443288408429571151</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09018081914641204827'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10392554.post-110802957122026135</id><published>2005-02-10T10:53:00.000+01:00</published><updated>2006-11-13T00:07:05.313+01:00</updated><title type='text'>digital music without DRM</title><summary type='text'>This one is a little off-topic, but otherwise quite hot. If your music preferences are a little off-mainstream you might be interested in this new offer. Key features are: no DRM, high quality mp3 (192kbps), 88cent per song.I tried to test it yesterday and the server behaved quite slow. The registration procedure was buggy also, probably only little tested with international customers in mind.</summary><link rel='related' href='http://www.mp3tunes.com' title='digital music without DRM'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/110802957122026135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10392554&amp;postID=110802957122026135' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/posts/default/110802957122026135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/posts/default/110802957122026135'/><link rel='alternate' type='text/html' href='http://www.danielstephan.com/blog/2005/02/digital-music-without-drm.html' title='digital music without DRM'/><author><name>effjay</name><uri>http://www.blogger.com/profile/15443288408429571151</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09018081914641204827'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10392554.post-110802502601862568</id><published>2005-02-10T09:40:00.000+01:00</published><updated>2006-11-13T00:07:05.024+01:00</updated><title type='text'>Free License For IDEA</title><summary type='text'>JetBrains grants free IDEA licenses for everyone who is active committer to an active open source project. Anybody want to start such a project? I sure would like that license :)CheersEff</summary><link rel='related' href='http://www.jetbrains.com/idea/opensource/' title='Free License For IDEA'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/110802502601862568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10392554&amp;postID=110802502601862568' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/posts/default/110802502601862568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/posts/default/110802502601862568'/><link rel='alternate' type='text/html' href='http://www.danielstephan.com/blog/2005/02/free-license-for-idea.html' title='Free License For IDEA'/><author><name>effjay</name><uri>http://www.blogger.com/profile/15443288408429571151</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09018081914641204827'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10392554.post-110802461073163082</id><published>2005-02-10T09:31:00.000+01:00</published><updated>2006-11-13T00:07:04.805+01:00</updated><title type='text'>New EJB3 Draft</title><summary type='text'>TheServerSide reports that a new EJB3 draft has been published. Read it, if interested.  In case you don't why you should be interested: EJB3 addresses lots of the concerns that developers had in the past about EJB. It should become easier to use and more elegant. It incorpoorates ideas from Hibernate and JDO.Current draft:http://jcp.org/aboutJava/communityprocess/edr/jsr220/index2.html</summary><link rel='related' href='http://www.theserverside.com/news/thread.tss?thread_id=31712' title='New EJB3 Draft'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/110802461073163082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10392554&amp;postID=110802461073163082' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/posts/default/110802461073163082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/posts/default/110802461073163082'/><link rel='alternate' type='text/html' href='http://www.danielstephan.com/blog/2005/02/new-ejb3-draft.html' title='New EJB3 Draft'/><author><name>effjay</name><uri>http://www.blogger.com/profile/15443288408429571151</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09018081914641204827'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10392554.post-110670948469149636</id><published>2005-01-26T03:47:00.000+01:00</published><updated>2006-11-13T00:07:04.587+01:00</updated><title type='text'>JavaScript to Java remote scripting</title><summary type='text'>How to build responsive web UIsDear Reader,Web based user interfaces are hot.  Lots of applications took the portable road to webiness instead of staying in the good old realm of the well known client applications, which have to be deployed and maintained on the client. What has been left behind? Usability for the most part had to stay home. A responsive user interface? An application which </summary><link rel='related' href='http://oss.metaparadigm.com/jsonrpc/' title='JavaScript to Java remote scripting'/><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/110670948469149636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=10392554&amp;postID=110670948469149636' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/posts/default/110670948469149636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10392554/posts/default/110670948469149636'/><link rel='alternate' type='text/html' href='http://www.danielstephan.com/blog/2005/01/javascript-to-java-remote-scripting.html' title='JavaScript to Java remote scripting'/><author><name>effjay</name><uri>http://www.blogger.com/profile/15443288408429571151</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09018081914641204827'/></author><thr:total>3</thr:total></entry></feed>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            