<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-28708446</id><updated>2012-01-18T10:10:33.668-08:00</updated><category term='FMS'/><category term='yahoo'/><category term='Slideshare'/><category term='javaranch'/><category term='Microsoft'/><category term='MVC'/><category term='Open Dialect'/><category term='gadget'/><category term='Terracotta'/><category term='RIA'/><category term='Swing'/><category term='Adsense'/><category term='SocketAppender'/><category term='log forwarding'/><category term='Flash'/><category term='Flex'/><category term='RTMFP'/><category term='SSL'/><category term='Ruby on Rails'/><category term='Unit Testing'/><category term='Cluster'/><category term='RTMPS'/><category term='Microhoo'/><category term='Adobe'/><category term='RTMP'/><category term='Actionscript 2.0'/><category term='JVM'/><category term='RTMPE'/><category term='java'/><category term='Certification'/><category term='Khojguru'/><category term='Junit'/><category term='Whiteboard'/><category term='Adobe AIR'/><category term='XML'/><category term='RTMPT'/><category term='openlaszlo'/><category term='AsUnit'/><category term='Ebook'/><category term='Web Hosting'/><category term='log4j'/><category term='Webyantra'/><category term='Chat'/><category term='Tomcat'/><category term='MRTMP'/><category term='H.264'/><category term='Watir'/><category term='Stunnel'/><category term='Red5'/><category term='desktop sharing'/><category term='Applet'/><category term='google'/><category term='windows vista'/><title type='text'>Technology Makes Life Easier</title><subtitle type='html'>It's all about technology and learning. Java, Flash, Red5, Flex, SCJP and more</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>52</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-28708446.post-363021821211242553</id><published>2010-09-07T03:12:00.000-07:00</published><updated>2010-09-07T03:12:58.962-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='Red5'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><category scheme='http://www.blogger.com/atom/ns#' term='Chat'/><title type='text'>Cool New Flex Chat Component with Red5 Server Support and Much More</title><content type='html'>Ready to experience a cool new Flex Chat application which supports Red5 server and makes your chatting more fun by adding exciting features? Let's first take a look of it and then I will talk in detail about the features it provides.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_jm4FARolmSo/TIYI7xZ36JI/AAAAAAAAQnc/vOyI9u6blq0/s1600/chatComp1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="210" ox="true" src="http://3.bp.blogspot.com/_jm4FARolmSo/TIYI7xZ36JI/AAAAAAAAQnc/vOyI9u6blq0/s400/chatComp1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;Did you like the interface? I guess, yes. A simple yet powerful user interface which&amp;nbsp;adds more power to your text chat. Like various messengers, this application also provides features like font size ( You can select from a predefined range of font size), font types, colors, font weight and smileys. Sounds cool?&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_jm4FARolmSo/TIYLFfibFQI/AAAAAAAAQnk/eVjF-o1j5wI/s1600/chatComp2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="312" ox="true" src="http://1.bp.blogspot.com/_jm4FARolmSo/TIYLFfibFQI/AAAAAAAAQnk/eVjF-o1j5wI/s400/chatComp2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;The color picker component added in this application lets you make your text chat more colorful. Now you have so many colors to choose from. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_jm4FARolmSo/TIYLe9dzoEI/AAAAAAAAQns/hxjr-qfNVfM/s1600/chatComp3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="252" ox="true" src="http://3.bp.blogspot.com/_jm4FARolmSo/TIYLe9dzoEI/AAAAAAAAQns/hxjr-qfNVfM/s400/chatComp3.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;The combobox of Font types lets you select all available font types of your machine. So you will never&amp;nbsp;get bored seeing same font again and again while chatting. Other than font types, The 'Bold' and 'Italic' buttons are also provided in the interface just next to colorpicker.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_jm4FARolmSo/TIYNBDcBCkI/AAAAAAAAQn0/42MRBmLBmiw/s1600/chatComp4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="262" ox="true" src="http://2.bp.blogspot.com/_jm4FARolmSo/TIYNBDcBCkI/AAAAAAAAQn0/42MRBmLBmiw/s400/chatComp4.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;Now comes to most exciting feature of this application, the Smileys support. It supports upto 30 smileys and code is written in such a way that you can easily extend it to support as may smileys as you wish. Just select any emotion icon to bring emotions to your text chat.&lt;br /&gt;&lt;br /&gt;The application works with &lt;a href="http://code.google.com/p/red5/" target="_blank"&gt;Red5 server&lt;/a&gt;&amp;nbsp;and also provides the functionality of one-to-one (private)&amp;nbsp;and/or one-to-many (public) chat. I have not yet uploaded the source of this application anywhere. In case you are interested to explore this cool app, you can&amp;nbsp;shoot a mail to sunil_gupta20801 AT yahoo.co.in.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-363021821211242553?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/363021821211242553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=363021821211242553' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/363021821211242553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/363021821211242553'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2010/09/cool-new-flex-chat-component-with-red5.html' title='Cool New Flex Chat Component with Red5 Server Support and Much More'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_jm4FARolmSo/TIYI7xZ36JI/AAAAAAAAQnc/vOyI9u6blq0/s72-c/chatComp1.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-5553016871017818678</id><published>2010-09-06T02:31:00.000-07:00</published><updated>2010-09-06T05:55:26.012-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Hosting'/><title type='text'>FatCow.com - The Perfect Web Hosting and Domain Name Services</title><content type='html'>FatCow.com! Looks like a website selling fatty cows. But it is not that. People who are in&amp;nbsp;website hosting and domain name stuffs already aware of &lt;b&gt;&lt;a href="http://www.fatcow.com/"&gt;FatCow&lt;/a&gt;&lt;/b&gt;. In case, you are not aware of it, let me tell you. FatCow is perfect solution for all your website hosting needs. It is&amp;nbsp;one of the very popular web hosting and domain name service provider operating from more than a decade. &lt;br /&gt;&lt;br /&gt;The best about their offerings is that they always care about the complete satisfaction of their customers. As FatCow speaks about self - &lt;strong&gt;&lt;a href="http://www.fatcow.com/fatcow/fatcow.bml"&gt;FatCow Web Hosting plan&lt;/a&gt;&lt;/strong&gt; has provided reliable hosting services for individuals and businesses. As a very satisfied customer, I completely agree to what they speak.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_jm4FARolmSo/TIEyugSwhmI/AAAAAAAAQjk/sjH7SdqUpyA/s1600/fatcow.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="266" ox="true" src="http://2.bp.blogspot.com/_jm4FARolmSo/TIEyugSwhmI/AAAAAAAAQjk/sjH7SdqUpyA/s400/fatcow.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;What this Holy Cow brings to you? Well there is so much to offer. All I can list here few fantastic services offered by them at very affordable and low cost. I am sure you would be very happy to read the words "Low Cost and affordable". Yes, it is true. Here are some of the Web Hosting offerings of FatCow-&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Unlimited Disk Space&lt;/strong&gt; - You will never run out of space.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Unlimited Bandwidth&lt;/strong&gt; - No matter what you provide to your customer, you will never be down.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;FREE Domain Name&lt;/strong&gt; - Did you hear the word Free?&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Simple-to-use site builders&lt;/strong&gt; - From a simple user to a techie like me, everyone can play with it.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Easy online store tools&lt;/strong&gt; - That's all you need. Isn't it?&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Blogs, photo galleries&lt;/strong&gt; - Keeps you smart in web world.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Legendary Support&lt;/strong&gt; - 24x7. That's what makes them ahead of others.&lt;/li&gt;&lt;/ul&gt;Eager to read more, then check the complete list of FatCow Products &amp;amp; Services. If you are into small business, then FatCow is best for you. POP Mailboxes, Dedicated Server , Search Engine Ad Credits, Social Networking Ad Credits, 30 days Money Back Guarantee etc. is something you can not ignore. The services you can rely upon. They always try to provide the best solutions to their customers. For example- the very new - &lt;strong&gt;100% Wind-Powered Web Hosting - &lt;/strong&gt;All their&lt;strong&gt; &lt;/strong&gt;offices and data centers are&amp;nbsp;100% powered by wind energy. You will actually feel proud to know that the machines hosting your website and email are fully eco-friendly! &lt;br /&gt;&lt;br /&gt;The latest offerings of &lt;a href="http://www.webhostingsearch.com/review/fatcow.php"&gt;FatCow&lt;/a&gt; is their unlimited hosting plan, which is now&amp;nbsp;only $55 per year. It&amp;nbsp;is 35% off of their normal price of $88 per year.&amp;nbsp;So you are spending&amp;nbsp;less than 5$ in a&amp;nbsp;month. That’s make FatCow, one of the cheapest and best hosting services available.&lt;br /&gt;&lt;br /&gt;I think, I will keep &lt;a href="http://www.webhostingsearch.com/reviews.php"&gt;web hosting reviews&lt;/a&gt; short only. If you are looking for web hosting and domain name services, then my recommendation would be FatCow-&amp;nbsp;The holy cows will help your business grow like anything.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-5553016871017818678?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/5553016871017818678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=5553016871017818678' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/5553016871017818678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/5553016871017818678'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2010/09/fatcowcom-perfect-web-hosting-and.html' title='FatCow.com - The Perfect Web Hosting and Domain Name Services'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_jm4FARolmSo/TIEyugSwhmI/AAAAAAAAQjk/sjH7SdqUpyA/s72-c/fatcow.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-3748452961218391194</id><published>2009-07-10T23:04:00.001-07:00</published><updated>2009-07-11T01:56:28.859-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Whiteboard'/><category scheme='http://www.blogger.com/atom/ns#' term='Red5'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><title type='text'>FlashComGuru Releases Flex Whiteboard Component for Red5</title><content type='html'>&lt;a href="http://www.flashcomguru.com/index.cfm/2009/7/9/whiteboard-component-red5" target=_blank&gt;FlashComGuru&lt;/a&gt; recently ported their Flex and FMS based Whiteboard component to work with &lt;a href="http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html" target=_blank&gt;Red5&lt;/a&gt;, an open source flash media server.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_jm4FARolmSo/SlhR-UePkzI/AAAAAAAAKrY/hxZgFvL3js0/s1600-h/red5whiteboard.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 249px; height: 176px;" src="http://3.bp.blogspot.com/_jm4FARolmSo/SlhR-UePkzI/AAAAAAAAKrY/hxZgFvL3js0/s400/red5whiteboard.jpg" border="0" alt="Red5 Whiteboard" title = "Red5 Whiteboard" id="BLOGGER_PHOTO_ID_5357121887846503218" /&gt;&lt;/a&gt;&lt;br /&gt;The new Red5 based whiteboard component has every feature which exist in FMS based whiteboard component. The price is also same for both FMS and Red5 based version. In Red5 based whiteboard component, you get SWC and full sources for the server side which is written in Java.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-3748452961218391194?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/3748452961218391194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=3748452961218391194' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/3748452961218391194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/3748452961218391194'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2009/07/flashcomguru-releases-flex-whiteboard.html' title='FlashComGuru Releases Flex Whiteboard Component for Red5'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_jm4FARolmSo/SlhR-UePkzI/AAAAAAAAKrY/hxZgFvL3js0/s72-c/red5whiteboard.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-6766051093284312243</id><published>2009-05-01T11:29:00.000-07:00</published><updated>2009-05-01T20:15:58.439-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='RTMP'/><category scheme='http://www.blogger.com/atom/ns#' term='Red5'/><title type='text'>Red5 and Java RTMPClient Problems</title><content type='html'>One more day passed and I am still struggling with Java RTMPClient to make it properly work with Red5. Started with red5 v0.6.2 and checked up to v0.8 but the problem is still there. I did not get success passing parameters to connect method.&lt;br /&gt;The connect method is working without any parameters, i.e. &lt;strong&gt;connect(String server, int port, String application, IPendingServiceCallback connectCallback)&lt;/strong&gt; and what I need is &lt;strong&gt;connect(String server, int port, Map&lt;String,Object&gt; connectionParams, IPendingServiceCallback connectCallback)&lt;/strong&gt;. When i am passing a HashMap to connect method, i am not able to get any parameters on the server side. Inside connect method in Red5, the params[] is of size 0. It's really frustating. It means, i am not able to validate the user before connecting it to Red5. It means, anonymous connection can be made to application and then reject or accept them later accordingly.&lt;br /&gt;Ok, so i thought, i will do this way, but here my problem does not ends. What i am doing now is accepting connection to each user and in callback function, i am sending user credentials from Java client and if those credentials are not correct, i am rejecting this client.&lt;br /&gt;Now once the client is accepted and i have to invoke couple of methods on server. The problem starts again. Invoke() function does not work as expected. It's working only from within the connectCallback block.&lt;br /&gt;&lt;br /&gt; public void resultReceived( IPendingServiceCall call ) { &lt;br /&gt;      // If you call invoke() from here. it works.&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;It means, I call invoke methods from within this block and not from outside of this block. Then I Googled and found many people facing the same problem. The only working solution was &lt;a href="http://www.nabble.com/Re%3A-RTMPClient.invoke%28%29-p15075904.html"&gt;http://www.nabble.com/Re%3A-RTMPClient.invoke%28%29-p15075904.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's bad to see not much progress on Java RTMPClient in Red5 from so long. I tested with different versions and upto latest one and everywhere it's same. I am still doing workarounds to let RTMPClient working in my application. :(&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-6766051093284312243?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/6766051093284312243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=6766051093284312243' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/6766051093284312243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/6766051093284312243'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2009/05/red5-and-java-rtmpclient-problems.html' title='Red5 and Java RTMPClient Problems'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-8305724136715073295</id><published>2008-07-24T22:51:00.000-07:00</published><updated>2008-07-25T20:59:14.527-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Dialect'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe AIR'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Open Dialect, the future of Open Source Flash IDE</title><content type='html'>&lt;a href="http://dialect.openmodeling.net/wiki"&gt;Open Dialect&lt;/a&gt; is the name of the software we are going to talk about in this post. To explain more about this software, I would like to answer few questions that everyone would be curious to know when we talk about Open Dialect the &lt;em&gt;Open Source Flash IDE&lt;/em&gt;.  The answers to these questions help you understand this software.&lt;ul class = 'circle'&gt;&lt;br /&gt;&lt;li&gt;What is Open Dialect?&lt;/li&gt; &lt;br /&gt;&lt;li&gt;Why we are calling it the future of open source flash IDEs?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;How is it going to serve your flash application development needs?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;What are some of the main features of Open Dialect?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Is it operating system independent?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Does it also support the creation of Adobe AIR applications?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;What does it need from the Flash and open source communities?&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;strong&gt;Answer 1:&lt;/strong&gt; &lt;em&gt;Open Dialect&lt;/em&gt; is an open source Flash IDE based on Flex. Open Dialect is written in C# using the .NET 2.0 framework (or Mono 1.9.1). The goal of the project is to create a tool that allows you to create Interactive Learning Environments that interact with System Dynamics Models over the internet.  In simpler terms it allows you to easily and quickly design rich internet applications based on Flash.&lt;br /&gt; &lt;br /&gt;&lt;strong&gt;Answer 2:&lt;/strong&gt; Flash is a powerful tool used by many and having an open source and Linux compatible alternative implementation of this tool is something you can not ignore. I believe that Open Dialect is the best open source Flash IDE, and will continue to be in the future.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Answer 3:&lt;/strong&gt; &lt;em&gt;Open Dialect&lt;/em&gt; lets you create open source flash applications. You are able to generate Flash 9 SWFs with Open Dialect. It will allow anyone from a flash expert to a flash noob to create rich internet applications very easily and quickly. Open Dialect supports 17 different components, which respond to a wide range of user input and interaction With Open Dialect; you will be provided everything that is required to develop flash applications in an open source environment.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Answer 4:&lt;/strong&gt; &lt;em&gt;Open Dialect&lt;/em&gt; is packed with cool features. Some of the features are-&lt;ul class = 'circle'&gt;&lt;br /&gt;&lt;li&gt;Its free and Open Source (GPL)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;It allows quick and easy application development no matter what your level of expertise is.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;It has an action script code wizard for beginners.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;It also allows experts to enter code without the wizard.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;It has a timeline to facilitate animations (and tweening is done automatically)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;It supports something we call "Pages" which are essentially different screens in an application or slides like in PowerPoint so you can now design your applications like you design your PowerPoint’s, and transitioning between pages is simple and easy.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;It supports the creation of Adobe AIR content.&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;Answer 5:&lt;/strong&gt; Yes, &lt;em&gt;Open Dialect&lt;/em&gt; is operating system independent.  It works on Windows, Linux and can be run in OSX (with a little extra effort at this time).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Answer 6:&lt;/strong&gt; &lt;em&gt;Open Dialect&lt;/em&gt; as I already said is the future of open source Flash IDEs. Not only you can generate Flash 9 SWF, you can also create Adobe AIR applications for you and your client’s desktops.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Answer 7:&lt;/strong&gt; &lt;em&gt;Open Dialect&lt;/em&gt; can become a whole lot more exciting if it gets support from Flash, community. The software is very powerful and has a great future ahead. All it needs is the support to make it a big success. If you like Open Dialect and you think that it can make your life easier with open source flash applications, you can always take part in its development. Open Dialect especially needs support from communities for its deployment on Linux and OSX.&lt;br /&gt;&lt;br /&gt;Very recently Open Dialect released &lt;strong&gt;&lt;a href="http://dialect.openmodeling.net/downloads"&gt;Open Dialect 0.6.0&lt;/a&gt;&lt;/strong&gt; which has more new features as well as enhancements over existing features. Open Dialect is committed to deliver its best to the open source communities. I would request open source communities to be a part of the success of Open Dialect by providing more and more support and motivation to its development team.&lt;br /&gt;&lt;br /&gt;More details about Open Dialect are available &lt;a href="http://dialect.openmodeling.net/wiki"&gt;here&lt;/a&gt;. You will also be interested to read the need for a System Dynamics based Open Source, Online Interactive Learning Environment Creation Tool. You can find it &lt;a href="http://dialect.openmodeling.net/wiki/OpenDialect"&gt;here&lt;/a&gt;. &lt;br /&gt;You can see the power of Open Dialect with the very basic demo &lt;a href="http://www.t21northamerica.com/PolicyResistance.html"&gt;here&lt;/a&gt; and &lt;a href="http://www.t21northamerica.com/ShowerILE.html"&gt;http://www.t21northamerica.com/ShowerILE.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Related Articles:-&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://sunil-gupta.blogspot.com/2008/04/open-dialect-open-source-flash-ide-now.html"&gt;Open Dialect -An Open Source Flash IDE Now Supports Linux&lt;/a&gt;&lt;br /&gt;&lt;a href="http://sunil-gupta.blogspot.com/2008/03/open-dialect-open-source-flash-ide.html"&gt;Open Dialect - Open source Flash IDE&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-8305724136715073295?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/8305724136715073295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=8305724136715073295' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/8305724136715073295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/8305724136715073295'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2008/07/open-dialect-future-of-open-source.html' title='Open Dialect, the future of Open Source Flash IDE'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-4825994808935393422</id><published>2008-07-01T00:32:00.000-07:00</published><updated>2008-07-01T03:29:28.886-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='yahoo'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Flash Files Become Searchable</title><content type='html'>The only big thing in the internet which was hidden from search engines (Google, Yahoo) was the flash (.swf) files. But according to an announcement made by&lt;a href="http://www.adobe.com/"&gt; Adobe &lt;/a&gt; Systems today, flash files are no more hidden from these search engines. Adobe is providing optimized flash player technology to Google and Yahoo to enhance indexing of .swf files by search engines.&lt;br /&gt;&lt;br /&gt;There are millions of flash users with millions of website using flash technology to develop websites and from Search Engine Optimization point of view, it was not advisable to use flash, but now with this news, there is a clear sign of tremendous growth of flash player technology in near future.&lt;br /&gt;&lt;br /&gt;Let see what adobe is saying.&lt;blockquote&gt;“Until now it has been extremely challenging to search the millions of RIAs and dynamic content on the Web, so we are leading the charge in improving search of content that runs in Adobe Flash Player,” said David Wadhwani, general manager and vice president of the Platform Business Unit at Adobe. “We are initially working with Google and Yahoo! to significantly improve search of this rich content on the Web, and we intend to broaden the availability of this capability to benefit all content publishers, developers and end users.”&lt;/blockquote&gt;Google and Yahoo! both are working with Adobe in order to bring this as soon as possible in the future updates of their search engines. &lt;br /&gt;&lt;br /&gt;Read more in the &lt;a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/200806/070108AdobeRichMediaSearch.html"&gt;press release&lt;/a&gt; from Adobe.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-4825994808935393422?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/4825994808935393422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=4825994808935393422' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/4825994808935393422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/4825994808935393422'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2008/07/flash-files-become-searchable.html' title='Flash Files Become Searchable'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-842959849445225325</id><published>2008-06-29T21:21:00.000-07:00</published><updated>2008-07-01T22:55:03.097-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FMS'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='Chat'/><title type='text'>Simple Two-Way Audio/Video Chat Application With FMS3</title><content type='html'>In this post I will explain how to make a simple Two-Way A/V Chat Application with FMS3.&lt;br /&gt;&lt;br /&gt;As we know that FMS3 application is the reference name we use in RTMP URL while connecting to FMS3 server. It's the folder name we create on server side. The chat application say "simplechat" will have two modules. An application can have several modules. Let's say we have two modules name Test1 and Test2. Both Test1 and Test2 will share the same FMS3 application and will connect to server. Both modules will receive the streams of each other when connect to server.&lt;br /&gt;&lt;br /&gt;Below are the steps to start with chat application-&lt;br /&gt;&lt;br /&gt;1: Create a new Flash File and name it to Test1.fla&lt;br /&gt;&lt;br /&gt;2: In the Document Class text box in the Property inspector of flash document, write Test1&lt;br /&gt;&lt;br /&gt;The simple interface of this application could be-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp0.blogger.com/_jm4FARolmSo/SGhqIaBVjBI/AAAAAAAAHeo/74Z8gHv1rLw/s1600-h/tst.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_jm4FARolmSo/SGhqIaBVjBI/AAAAAAAAHeo/74Z8gHv1rLw/s400/tst.JPG" border="0" alt="FMS3 Chat" title = "FMS3 Chat" id="BLOGGER_PHOTO_ID_5217536860965145618" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3: Create an ActionScript 3.0 file and name it to Test1.as and write the following lines in it.&lt;br /&gt;&lt;br /&gt;package&lt;br /&gt;{&lt;br /&gt;     import flash.media.Camera;&lt;br /&gt;     import flash.media.Microphone;&lt;br /&gt;     import flash.media.Video;&lt;br /&gt;     import flash.events.NetStatusEvent;&lt;br /&gt;     import flash.display.Sprite;&lt;br /&gt;     import flash.net.NetConnection;&lt;br /&gt;     import flash.net.NetStream;&lt;br /&gt;     &lt;br /&gt;     public class Test1 extends Sprite{&lt;br /&gt;&lt;br /&gt;             private var netConnection:NetConnection;&lt;br /&gt;             private var rtmpStr:String;&lt;br /&gt;             private var nsSubscribe:NetStream;&lt;br /&gt;             private var nsPublish:NetStream;&lt;br /&gt;             private var camera:Camera;&lt;br /&gt;             private var microphone:Microphone;&lt;br /&gt;             private var user1Video:Video;&lt;br /&gt;             private var user2Video:Video;&lt;br /&gt;&lt;br /&gt;             public function Test1 (){&lt;br /&gt;                   &lt;br /&gt;                     rtmpStr="rtmp://localhost/simplechat";  //localhost can be replaced with your LAN IP or remote server IP points to FMS server.&lt;br /&gt;&lt;br /&gt;                     attachCamera();&lt;br /&gt;                     attachMicrophone();&lt;br /&gt;                     attachVideoObjects();&lt;br /&gt;                     &lt;br /&gt;                     netConnection=new NetConnection();&lt;br /&gt;                     netConnection.addEventListener (NetStatusEvent.NET_STATUS,checkForConnection);&lt;br /&gt;                     netConnection.connect(rtmpStr);&lt;br /&gt;&lt;br /&gt;              }&lt;br /&gt;              &lt;br /&gt;              private function checkForConnection(event:NetStatusEvent):void{&lt;br /&gt;&lt;br /&gt;                    event.info.code == "NetConnection.Connect.Success";&lt;br /&gt;&lt;br /&gt;                    if (event.info.code){&lt;br /&gt;                        nsPublish=new NetStream(netConnection);&lt;br /&gt;                        nsPublish.attachAudio (microphone);&lt;br /&gt;                        nsPublish.attachCamera (camera);&lt;br /&gt;                        nsPublish.publish("user1","live");&lt;br /&gt;                        nsSubscribe=new NetStream(netConnection);&lt;br /&gt;                        nsSubscribe.play("user2");&lt;br /&gt;                        user2Video.attachNetStream(nsSubscribe);&lt;br /&gt;                     }&lt;br /&gt;               }&lt;br /&gt;              &lt;br /&gt;               private function attachCamera(){&lt;br /&gt;&lt;br /&gt;                     camera=Camera.getCamera();&lt;br /&gt;                     camera.setKeyFrameInterval (9);&lt;br /&gt;                     camera.setMode (240,180,15);&lt;br /&gt;                     camera.setQuality (0,80);&lt;br /&gt;               }&lt;br /&gt;               &lt;br /&gt;               private function attachMicrophone(){&lt;br /&gt;&lt;br /&gt;                     microphone=Microphone.getMicrophone();&lt;br /&gt;                     microphone.gain=80;&lt;br /&gt;                     microphone.rate=12;&lt;br /&gt;                     microphone.setSilenceLevel(15,2000);&lt;br /&gt;               }&lt;br /&gt;&lt;br /&gt;               private function attachVideoObjects(){&lt;br /&gt;&lt;br /&gt;                   user1Video=new Video(camera.width,camera.height);&lt;br /&gt;                   addChild(user1Video);&lt;br /&gt;                   user1Video.x=25; &lt;br /&gt;                   user1Video.y=35;&lt;br /&gt;                   user1Video.attachCamera(camera);&lt;br /&gt;                   user2Video=new Video(camera.width,camera.height);&lt;br /&gt;                   addChild(user2Video);&lt;br /&gt;                   user2Video.x=(user1Video.x+ camera.width +15); &lt;br /&gt;                   user2Video.y=user1Video.y;&lt;br /&gt;                }&lt;br /&gt;         }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;4: Save the Test1.as file and then publish Test1.fla to generate swf, html and JavaScript file.&lt;br /&gt;&lt;br /&gt;5: Repeat the step 2, 3 and 4 with little change. In the Document Class text box in the Property inspector of flash document, write Test2&lt;br /&gt;Now the .fla file will be named as Test2.fla and .as file will be named as Test2.as.&lt;br /&gt;&lt;br /&gt;The changes in the Test2.as file will be-&lt;br /&gt;&lt;br /&gt;public function Test2() in place of public function Test1()&lt;br /&gt;&lt;br /&gt;nsPublisher.publish("user2","live"); in place of nsPublisher.publish("user1","live");&lt;br /&gt;&lt;br /&gt;nsSubscriber.play("user1"); in place of nsSubscriber.play("user2"); &lt;br /&gt;&lt;br /&gt;6: Save the Test2.as file after these changes and publish the Test2.fla file to generate swf, html and JavaScript file.&lt;br /&gt;&lt;br /&gt;Test the application with two users on two different computers with Mic and Camera. One user will open Test1.html file and other user will open Test2.html file and both will see each other's video as given in below picture.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp3.blogger.com/_jm4FARolmSo/SGh3WjhLleI/AAAAAAAAHew/rI_s3aYRVEI/s1600-h/testcombine.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_jm4FARolmSo/SGh3WjhLleI/AAAAAAAAHew/rI_s3aYRVEI/s400/testcombine.JPG" border="0" alt="Two Way Chat" title = "Two Way Chat" id="BLOGGER_PHOTO_ID_5217551397683959266" /&gt;&lt;/a&gt;&lt;br /&gt;This was the simplest two-way A/V chat application with FMS3. The following classes were used in this tutorial.&lt;br /&gt;&lt;br /&gt;Camera&lt;br /&gt;Microphone&lt;br /&gt;Video&lt;br /&gt;NetStatusEvent&lt;br /&gt;Sprite&lt;br /&gt;NetConnection&lt;br /&gt;NetStream&lt;br /&gt;&lt;br /&gt;You can read more about these API from the &lt;a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/"&gt;LiveDocs&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;You can also extend this example to work with server side script as well.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-842959849445225325?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/842959849445225325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=842959849445225325' title='44 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/842959849445225325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/842959849445225325'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2008/06/two-way-av-chat-application-with-fms3.html' title='Simple Two-Way Audio/Video Chat Application With FMS3'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_jm4FARolmSo/SGhqIaBVjBI/AAAAAAAAHeo/74Z8gHv1rLw/s72-c/tst.JPG' height='72' width='72'/><thr:total>44</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-650478747960040765</id><published>2008-05-26T15:44:00.000-07:00</published><updated>2008-05-26T18:16:31.379-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Stunnel'/><category scheme='http://www.blogger.com/atom/ns#' term='SSL'/><category scheme='http://www.blogger.com/atom/ns#' term='RTMPS'/><category scheme='http://www.blogger.com/atom/ns#' term='Red5'/><title type='text'>Another Good From Red5 - Built-in Support For RTMPS</title><content type='html'>I remember when many users were looking for a solution to secure the RTMP stream, then i worked with Stunnel(&lt;a href="http://sunil-gupta.blogspot.com/2007/06/secure-your-red5-applications-with.html"&gt;Secure Your Red5 Applications With Stunnel&lt;/a&gt;) to implement the RTMPS functionality which FMS provides. That time i was able to achieve this, but this was kind of hack. &lt;br /&gt;Today morning, i read the &lt;a href="http://gregoire.org/2008/05/26/rtmps-in-red5"&gt;post &lt;/a&gt;of Paul Gregorie that Red5 has come up with a real RTMPS solution. &lt;br /&gt;Below in this post, i am following him.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp1.blogger.com/_jm4FARolmSo/SDtgYWUbkuI/AAAAAAAAGPw/XPxIwzTSLXs/s1600-h/r5ssl.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_jm4FARolmSo/SDtgYWUbkuI/AAAAAAAAGPw/XPxIwzTSLXs/s320/r5ssl.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5204859765781140194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://sunil-gupta.blogspot.com/2008/03/rtmp-protocol-flavours.html"&gt;RTMPS &lt;/a&gt;is RTMPT over SSL. Here are the steps to setup Red5 to support RTMPS-&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Create a self-signed certificate&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;This process is pretty much known to everyone who worked with signed applet kind of stuffs. Here it is-&lt;br /&gt;&lt;br /&gt;&lt;em&gt;keytool -genkey -alias red5 -keyalg RSA -keysize 512 -validity 3650 \&lt;br /&gt;    -keystore keystore -keypass password -storepass password \&lt;br /&gt;    -dname "CN=localhost,OU=Red5,O=Red5,L=Henderson,ST=NV,C=US" &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The above command is having the options that can be modified according to your requirement like DName fields: Location (L), State (ST), and Country (C). &lt;br /&gt;&lt;br /&gt;The above command generate a file called "keystore". We will use it later.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Get Red5&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;RTMPS implementation is not the part of &lt;a href="http://sunil-gupta.blogspot.com/2008/02/red5-v070-final-release.html"&gt;Red5 0.7.0&lt;/a&gt;, so in order to use RTMPS, you need to take the code from Red5 SVN repository from revision 2819 onwards.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Configuration&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Now you have Red5 setup in your machine, copy the "keystore" file we created earlier step into conf directory (&lt;strong&gt;overwrite the current keystore file in the directory if prompted&lt;/strong&gt;). The configuration file containing the parameter for RTMPS is &lt;strong&gt;conf/red5-core.xml&lt;/strong&gt; and you will need to update the RTMPS section if you changed the keystore password. The other configuration file is &lt;strong&gt;red5.properties&lt;/strong&gt;, it contains the port assignments for the supported protocols. Make sure that you have your ports configured correctly.&lt;br /&gt;&lt;br /&gt;According to Adobe, the default port for RTMPS is 443, normally reserved for HTTPS. If you change this port to something other than 443 you will need to update your NetConnection urls with the correct port.&lt;br /&gt;&lt;br /&gt;For advance options on SSL configuration, this &lt;a href="http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html"&gt;page&lt;/a&gt; will help.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Test&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Start the server and test your applications. Go to http://localhost:5080/demos/oflaDemo.swf and change the rtmp url to rtmps://localhost/oflaDemo.&lt;br /&gt;&lt;br /&gt;You can also enable debugging option, here it is how-&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Debugging&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;To see what is going on with SSL at a really low level you can enable this option in your startup:&lt;br /&gt;&lt;br /&gt; &lt;strong&gt;-Djavax.net.debug=ssl&lt;/strong&gt; It will cause additional information to be displayed on the console.&lt;br /&gt;&lt;br /&gt;Red5 is getting hot and hot everyday with new features. Waiting to hear support of many new features in near future. Great work Red5 Team.&lt;br /&gt;&lt;br /&gt;See Also:&lt;br /&gt;&lt;a href="http://sunil-gupta.blogspot.com/2007/06/secure-your-red5-applications-with.html"&gt;Secure Your Red5 Applications With Stunnel&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Reference:-&lt;br /&gt;&lt;a href="http://gregoire.org/2008/05/26/rtmps-in-red5"&gt;RTMPS in Red5&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-650478747960040765?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/650478747960040765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=650478747960040765' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/650478747960040765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/650478747960040765'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2008/05/another-good-from-red5-rtmps-support.html' title='Another Good From Red5 - Built-in Support For RTMPS'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_jm4FARolmSo/SDtgYWUbkuI/AAAAAAAAGPw/XPxIwzTSLXs/s72-c/r5ssl.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-8335790080975112724</id><published>2008-05-15T07:40:00.000-07:00</published><updated>2008-07-03T18:23:11.815-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Red5'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><category scheme='http://www.blogger.com/atom/ns#' term='RTMFP'/><title type='text'>Flash Player 10 Out With New Audio And Video Features</title><content type='html'>In a &lt;a href="http://labs.adobe.com/technologies/flashplayer10/"&gt;prerelease &lt;/a&gt;of Adobe Flash Player 10 code name "Astro", the noticable features are audio and video features which will be available with proposed future release of Adobe Flash Media Server.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Dynamic Streaming&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;As streaming is dependent on newtwork condition, Dynamic Streaming will provide best quality video and will be auto adjustable based on bandwidth availability. Video streams over RTMP from proposed future releases of Flash Media Server can dynamically change bitrate as network conditions change.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;RTMFP (Real Time Media Flow Protocol)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;According to Adobe- RTMFP provides a UDP-based secure network transport alternative to RTMP-over-TCP. To take advantage of the feature you will need to establish a net connection via future releases of Flash Media Server or other Adobe server products. UDP (User Datagram Protocol) is an efficient and standardized Internet protocol for delivering media assets because of its support for lossy delivery, improving performance of real time communication. RTMFP is always encrypted which helps protect media delivery. This technology is a result of Adobe's acquisition of Amicima, Inc. in 2006. To know more about this new protocol, read &lt;a href="http://feedshub.blogspot.com/2008/07/adobe-labs-releases-flash-player-10.html"&gt;RTMFP FAQ&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;UDP Streaming. What would be the reaction of Red5 team?&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Speex Audio Codec&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The new, higher fidelity Speex voice codec that delivers the lowest-latency audio experience.&lt;br /&gt;&lt;br /&gt;The complete feature list is &lt;a href="http://labs.adobe.com/technologies/flashplayer10/releasenotes.html#features"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Reference:-&lt;br /&gt;&lt;a href="http://labs.adobe.com/technologies/flashplayer10/"&gt;Adobe Flash® Player 10 beta&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-8335790080975112724?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/8335790080975112724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=8335790080975112724' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/8335790080975112724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/8335790080975112724'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2008/05/flash-player-10-out-with-new-audio-and.html' title='Flash Player 10 Out With New Audio And Video Features'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-6730260592792152038</id><published>2008-05-07T18:38:00.000-07:00</published><updated>2008-05-07T21:55:53.328-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FMS'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>360 Degree Interactive Video And Future Of Flash Player And FMS</title><content type='html'>Today, I read two interesting blog posts "&lt;a href="http://www.flashcomguru.com/index.cfm/2008/5/7/360-video"&gt;360 Degree Interactive Video&lt;/a&gt;" and "&lt;a href="http://www.flashcomguru.com/index.cfm/2008/5/7/multibitrate-fms"&gt;Multibitrate Support Coming to Flash Player and FMS (?)&lt;/a&gt;" written by Stefan Richter from Flashcomguru.com talking about 360 degree interactive video served by flash and possible upcoming features in flash player and FMS. &lt;br /&gt;360 degree videos from &lt;a href="http://www.immersivemedia.com/"&gt;Immersive Media&lt;/a&gt; are looking very impressive. Just drag your mouse on any direction you want to view within the video once it starts playing.&lt;br /&gt;&lt;br /&gt;&lt;object type="application/x-shockwave-flash" data="http://demos.immersivemedia.com/fvdemo_1/data/SphericalFlashDemos/NAB2008Demo/imcflash.swf" width="416" height="288"&gt;&lt;param name="movie" value="http://demos.immersivemedia.com/fvdemo_1/data/SphericalFlashDemos/NAB2008Demo/imcflash.swf" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;More videos are here at - &lt;a href="http://demos.immersivemedia.com/onlinecities/"&gt;http://demos.immersivemedia.com/onlinecities/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is the video where kevin Towers shows how Flash Media Interactive Server, Flash Media Streaming Server and Flash Media Rights Managment Server are leading the way in the protection and streaming of digital video today.&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://tv.adobe.com/Embed.swf" quality="high" bgcolor="#000000" width="640" height="385" name="AdobeTVPlayer" play="true" loop="false" quality="high" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" flashVars="v=http%3A//adobe.edgeboss.net/flash/adobe/adobetvprod/nab_2008/58_nab_006.flv%3Frss_feedid%3D1116%26xmlvers%3D2&amp;feedid=1116"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;Reference:-&lt;br /&gt;&lt;a href="http://www.flashcomguru.com/index.cfm/2008/5/7/360-video"&gt;360 Degree Interactive Video&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.flashcomguru.com/index.cfm/2008/5/7/multibitrate-fms"&gt;Multibitrate Support Coming to Flash Player and FMS (?)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://tv.adobe.com/#v=http%3A//adobe.edgeboss.net/flash/adobe/adobetvprod/nab_2008/58_nab_006.flv%3Frss_feedid%3D1116%26xmlvers%3D2"&gt;Adobe at NAB 2008- Flash Media Server&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-6730260592792152038?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/6730260592792152038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=6730260592792152038' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/6730260592792152038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/6730260592792152038'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2008/05/360-degree-interactive-video-and-future.html' title='360 Degree Interactive Video And Future Of Flash Player And FMS'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-8362661142278215650</id><published>2008-04-15T18:56:00.000-07:00</published><updated>2008-04-15T23:49:39.732-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Dialect'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Open Dialect -An Open Source Flash IDE Now Supports Linux</title><content type='html'>Few days back, I wrote about an interesting application called &lt;a href="http://sunil-gupta.blogspot.com/2008/03/open-dialect-open-source-flash-ide.html"&gt;Open Dialect, a free open source flash IDE&lt;/a&gt; written in C# using .Net 2.0 framework.&lt;br /&gt;&lt;br /&gt;In my previous post, I mentioned that OpenDialect team is porting this application on Linux too. Today they have announced the release of &lt;a href="http://osflash.org/projects/opendialect"&gt;Open Dialect 0.2.0&lt;/a&gt; (Linux/Windows Flash IDE).&lt;br /&gt;&lt;br /&gt;Open Dialect 0.2.0 supports .SWF creation and testing on Linux and Windows, with partial support for OS X 10.5.&lt;br /&gt;&lt;br /&gt;You can check Open Dialect in action here at- &lt;a href="http://www.t21northamerica.com/T21NorthAmerica.html"&gt;http://www.t21northamerica.com/T21NorthAmerica.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To know more about this release or Open Dialect, follow the links in reference.&lt;br /&gt;&lt;br /&gt;Reference:-&lt;br /&gt;&lt;a href="http://sunil-gupta.blogspot.com/2008/03/open-dialect-open-source-flash-ide.html"&gt;Open Dialect, Open source alternate of flash IDE&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dialect.openmodeling.net/"&gt;About Open Dialect&lt;/a&gt;&lt;br /&gt;&lt;a href="http://osflash.org/projects/opendialect"&gt;Open Dialect on Osflash&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dialect.openmodeling.net/wiki/ScreenShots"&gt;Screenshots&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-8362661142278215650?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/8362661142278215650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=8362661142278215650' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/8362661142278215650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/8362661142278215650'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2008/04/open-dialect-open-source-flash-ide-now.html' title='Open Dialect -An Open Source Flash IDE Now Supports Linux'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-1024743161916277634</id><published>2008-03-30T03:06:00.000-07:00</published><updated>2008-03-30T03:28:35.447-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Dialect'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Open Dialect - Open source Flash IDE</title><content type='html'>Open Dialect is an open source Flash IDE based on Flex. It's written in C# using .Net 2.0 framework. They call it &lt;em&gt;Dynamic Inter-Active Learning Environment Creation Tool&lt;/em&gt;. The software is meant for creating interactive learning Environments.&lt;br /&gt;&lt;br /&gt;To know in detail about the this open source flash IDE, Follow the Open Dialect wiki &lt;a href="http://dialect.openmodeling.net/wiki/OpenDialect"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Below is the screenshot of open Dialect IDE.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp3.blogger.com/_jm4FARolmSo/R-9ou0CrFDI/AAAAAAAAFV8/9mh6rNHne7M/s1600-h/Figure-202.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_jm4FARolmSo/R-9ou0CrFDI/AAAAAAAAFV8/9mh6rNHne7M/s320/Figure-202.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5183476849579856946" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;More screenshots are available &lt;a href="http://dialect.openmodeling.net/wiki/ScreenShots"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Open Dialect 0.1.1 is available for Windows but they are porting it on Linux and OSX using MONO and GTK+.&lt;br /&gt;&lt;br /&gt;The available demo for showing the capabilities of Open Dialect is &lt;a href="http://www.t21northamerica.com/T21NorthAmerica.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;References:-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://osflash.org/projects/opendialect"&gt;Open Dialect&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dialect.openmodeling.net/wiki"&gt;Open Dialect HomePage&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dialect.openmodeling.net/wiki/OpenDialect"&gt;Open Dialect Main Website&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-1024743161916277634?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/1024743161916277634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=1024743161916277634' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/1024743161916277634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/1024743161916277634'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2008/03/open-dialect-open-source-flash-ide.html' title='Open Dialect - Open source Flash IDE'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_jm4FARolmSo/R-9ou0CrFDI/AAAAAAAAFV8/9mh6rNHne7M/s72-c/Figure-202.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-3047265780360319288</id><published>2008-03-28T02:22:00.000-07:00</published><updated>2008-05-12T06:49:53.153-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RTMP'/><category scheme='http://www.blogger.com/atom/ns#' term='MRTMP'/><category scheme='http://www.blogger.com/atom/ns#' term='RTMPS'/><category scheme='http://www.blogger.com/atom/ns#' term='Red5'/><category scheme='http://www.blogger.com/atom/ns#' term='RTMPT'/><category scheme='http://www.blogger.com/atom/ns#' term='Terracotta'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><category scheme='http://www.blogger.com/atom/ns#' term='RTMPE'/><title type='text'>RTMP - Protocol Flavours</title><content type='html'>With the development of Adobe flash media server and &lt;a href="http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html"&gt;Red5 &lt;/a&gt;flash server new protocols are also coming in picture.&lt;br /&gt;Here are some protocols for streaming of Audio/Video using Flash media server and Red5.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://osflash.org/documentation/rtmp"&gt;RTMP&lt;/a&gt;&lt;/strong&gt; &lt;em&gt; Real Time Messaging Protocol&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;RTMP is a TCP based propriety protocol developed by Adobe System for the purpose of streaming Audio/Video data between Flash Player and media server.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.joachim-bauch.de/tutorials/red5/SPEC-RTMPT.html/view"&gt;RTMPT &lt;/a&gt;&lt;/strong&gt; &lt;em&gt; Real Time Messaging Protocol with Tunnel&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;RTMPT is a variation of RTMP which works behind the firewall as well. It works on Port 80 and encapsulate the RTMP data in HTTP request.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://sunil-gupta.blogspot.com/2007/06/secure-your-red5-applications-with.html"&gt;RTMPS &lt;/a&gt;&lt;/strong&gt; &lt;em&gt; Real Time Messaging Protocol Secure&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;RTMPS is again a variation of RTMP which works over secure HTTPS connection.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://red5flashserver.blogspot.com/2008/03/red5-and-rtmpe-just-thought.html"&gt;RTMPE &lt;/a&gt;&lt;/strong&gt;&lt;em&gt; Real Time Messaging Protocol with Encryption&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;RTMPE is a new 128 bit encrypted protocol developed by Adobe systems for securing the stream data between flash client and server. It's lightweight than SSL.&lt;br /&gt;It's a DRM solution from Adobe for flash.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.adobe.com/devnet/flashmediaserver/articles/overview_streaming_fms3_02.html"&gt;RTMPTE &lt;/a&gt;&lt;/strong&gt; &lt;em&gt; Real Time Messaging Protocol with Encryption and Tunnel&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;RTMPTE is a RTMPE tunneling over HTTP on port 80.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://sunil-gupta.blogspot.com/2008/03/mrtmp-red5-load-balancing.html"&gt;MRTMP &lt;/a&gt;&lt;/strong&gt; &lt;em&gt; Multiplex Real Time Messaging protocol&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Multiplex RTMP is a protocol between edge and origin, developed by Red5 for clustering of stream data using &lt;a href="http://sunil-gupta.blogspot.com/search/label/Terracotta"&gt;Terracotta&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Related Post&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://sunil-gupta.blogspot.com/2008/03/h264-on-rtmp.html"&gt;H.264 On RTMP&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-3047265780360319288?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/3047265780360319288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=3047265780360319288' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/3047265780360319288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/3047265780360319288'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2008/03/rtmp-protocol-flavours.html' title='RTMP - Protocol Flavours'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-2283868433641817580</id><published>2008-03-26T07:28:00.000-07:00</published><updated>2008-03-26T07:52:30.261-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Adobe Flash Media Rights Management Server</title><content type='html'>&lt;a href="http://www.adobe.com"&gt;Adobe &lt;/a&gt;has relased Adobe Flash Media Rights Managment server. It's a platform to protect the media contents delivered to Adobe Media Player and Adobe AIR™ applications.&lt;br /&gt;It's a &lt;a href="http://en.wikipedia.org/wiki/Digital_rights_management"&gt;DRM&lt;/a&gt;( Digital Rights Managment ) solution for Flash Video.&lt;br /&gt;&lt;br /&gt;Some of the features of Adobe Flash Media Rights Managment server are listed below-&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Cross-platform content delivery&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;Protect media content delivered to Adobe® Media Player and Adobe AIR™ applications.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Content protection with Adobe Media Player&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;ensure the integrity of your content when you deliver it to Adobe Media Player users.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Offline access auditing&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;Track usage of your content when viewed through Adobe Media Player, even when consumers are offline.&lt;br /&gt;&lt;br /&gt;For detail list of features, visit Adobe website &lt;a href="http://www.adobe.com/products/flashmediarightsmanagement/"&gt;here&lt;/a&gt;. &lt;br /&gt;To know in detail about this new server follow the article of Tim Siglin &lt;a href="http://www.streamingmedia.com/article.asp?id=9970"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;References:-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.adobe.com/products/flashmediarightsmanagement/"&gt;Adobe Flash Media Rights Management Server&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.streamingmedia.com/article.asp?id=9970"&gt;Adobe Offers DRM for Flash Video with Flash Media Rights Management Server&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.flashcomguru.com/index.cfm/2008/3/19/fmrs"&gt;Flash Media Rights Management Server Announced (and Released) &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-2283868433641817580?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/2283868433641817580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=2283868433641817580' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/2283868433641817580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/2283868433641817580'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2008/03/adobe-flash-media-rights-management.html' title='Adobe Flash Media Rights Management Server'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-6254137110510319764</id><published>2008-03-25T01:11:00.000-07:00</published><updated>2008-03-25T01:28:13.927-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cluster'/><category scheme='http://www.blogger.com/atom/ns#' term='Red5'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><title type='text'>Red5 0.7.0 complete Changelog and Bugfixes</title><content type='html'>&lt;a href="http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html"&gt;Red5 &lt;/a&gt;&lt;em&gt;&lt;strong&gt;Changelog&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;----------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sunil-gupta.blogspot.com/2008/02/red5-v070-final-release.html"&gt;Red5 v0.7.0 final 02.23.2008&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;New Features:&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;- Initial Edge/Origin clustering support for multiple Edges with a single&lt;br /&gt;  Origin (&lt;a href="http://jira.red5.org/browse/APPSERVER-66?"&gt;Jira APPSERVER-66&lt;/a&gt;) &lt;br /&gt;- Added stream listeners that can get notified about received packets&lt;br /&gt;- Support for server-side Javascript (&lt;a href="http://jira.red5.org/browse/APPSERVER-169?"&gt;Jira APPSERVER-169&lt;/a&gt;)&lt;br /&gt;- Added new base class org.red5.server.adapter.MultiThreadedApplicationAdapter&lt;br /&gt;  that allows multiple clients to connect simultaneously to the same&lt;br /&gt;  application&lt;br /&gt;- Added new Flash Player 9 statuses NetStream.Play.FileStructureInvalid and &lt;br /&gt;  NetStream.Play.NoSupportedTrackFound&lt;br /&gt;- New Flex admin tool (&lt;a href="http://jira.red5.org/browse/APPSERVER-242"&gt;Jira APPSERVER-242&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Bugfixes:&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;- Pause near end of buffered streams works as expected (&lt;a href="http://jira.red5.org/browse/APPSERVER-199?"&gt;Jira APPSERVER-199&lt;/a&gt;)&lt;br /&gt;- Fixed potential memory leak with RTMPT connections that are not properly&lt;br /&gt;  closed (&lt;a href="http://jira.red5.org/browse/APPSERVER-193?"&gt;Jira APPSERVER-193&lt;/a&gt;)&lt;br /&gt;- "onMetaData" is only written to newly recorded FLV files and contains&lt;br /&gt;  valid properties now&lt;br /&gt;- Don't try to decode objects for closed RTMPT connections&lt;br /&gt;  (&lt;a href="http://jira.red5.org/browse/APPSERVER-208?"&gt;Jira APPSERVER-208&lt;/a&gt;)&lt;br /&gt;- New multi-threaded connection code fixes various timeout issues&lt;br /&gt;  (&lt;a href="http://jira.red5.org/browse/APPSERVER-122?"&gt;Jira APPSERVER-122&lt;/a&gt;, &lt;a href="http://jira.red5.org/browse/APPSERVER-166?"&gt;Jira APPSERVER-166&lt;/a&gt; and &lt;a href="http://jira.red5.org/browse/APPSERVER-167?"&gt;Jira APPSERVER-167&lt;/a&gt;)&lt;br /&gt;- Always use correct classloader inside applications (&lt;a href="http://jira.red5.org/browse/APPSERVER-200?"&gt;Jira APPSERVER-200&lt;/a&gt;)&lt;br /&gt;- Tomcat cannot undeploy red5 application (&lt;a href="http://jira.red5.org/browse/APPSERVER-204?"&gt;Jira APPSERVER-204&lt;/a&gt;)&lt;br /&gt;- "ByteArray" objects used old data after calling "compress" or "uncompress"&lt;br /&gt;  (&lt;a href="http://jira.red5.org/browse/APPSERVER-211?"&gt;Jira APPSERVER-211&lt;/a&gt;)&lt;br /&gt;- "@DontSerialize" checks for properties also in inherited classes&lt;br /&gt;  (&lt;a href="http://jira.red5.org/browse/APPSERVER-225?"&gt;Jira APPSERVER-225&lt;/a&gt;)&lt;br /&gt;- Enabled bidirectional class serialization (&lt;a href="http://jira.red5.org/browse/APPSERVER-219?"&gt;Jira APPSERVER-219&lt;/a&gt;)&lt;br /&gt;- Array typed parameters in remoting service methods converted properly&lt;br /&gt;  (&lt;a href="http://jira.red5.org/browse/APPSERVER-161?"&gt;Jira APPSERVER-161&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;References:-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jira.red5.org/secure/Dashboard.jspa"&gt;http://jira.red5.org/secure/Dashboard.jspa&lt;/a&gt;&lt;br /&gt;&lt;a href="http://osflash.org/red5/070final"&gt;http://osflash.org/red5/070final&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-6254137110510319764?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/6254137110510319764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=6254137110510319764' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/6254137110510319764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/6254137110510319764'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2008/03/red5-070-complete-changelog-and.html' title='Red5 0.7.0 complete Changelog and Bugfixes'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-9054046589278763869</id><published>2008-03-23T06:55:00.000-07:00</published><updated>2008-03-24T18:11:44.684-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='Cluster'/><category scheme='http://www.blogger.com/atom/ns#' term='Red5'/><category scheme='http://www.blogger.com/atom/ns#' term='Terracotta'/><category scheme='http://www.blogger.com/atom/ns#' term='JVM'/><title type='text'>Terracotta -  Network Attached Memory</title><content type='html'>&lt;a href="http://www.terracotta.org/confluence/display/orgsite/Home"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_jm4FARolmSo/R-ZjQkCrEGI/AAAAAAAAFLE/atzYONvzTJg/s200/logo.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5180937557540278370" /&gt;&lt;/a&gt;&lt;br /&gt;Another great software from open source. &lt;br /&gt;&lt;br /&gt;Few days back I wrote &lt;a href="http://sunil-gupta.blogspot.com/2008/03/mrtmp-red5-load-balancing.html"&gt;here &lt;/a&gt;about &lt;a href="http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html"&gt;Red5 &lt;/a&gt;load balancing using &lt;a href="http://www.terracotta.org/confluence/display/orgsite/Home"&gt;Terracotta &lt;/a&gt;.&lt;br /&gt;In this post I will write little bit about &lt;a href="http://www.terracotta.org/confluence/display/orgsite/Home"&gt;Terracotta &lt;/a&gt;technology.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.terracotta.org/confluence/display/orgsite/Home"&gt;Terracotta&lt;/a&gt; is an open source JVM clustering software for Java.It means the applications running on multiple JVMs  are capable to interact with each other as they are running on a same JVM.&lt;br /&gt;&lt;br /&gt;They call it-&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Network Attached Memory: Purpose Built To Store "Scratch Data"&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.terracotta.org/confluence/display/orgsite/Home"&gt;Terracotta &lt;/a&gt;is useful in following scenarios:-&lt;br /&gt;&lt;br /&gt;1:- HTTP Session Clustering&lt;br /&gt;2:- Distributed Caching&lt;br /&gt;3:- POJO Clustering/Spring integration&lt;br /&gt;4:- Hibernate Caching&lt;br /&gt;5:- Inter-JVM Coordination&lt;br /&gt;6:- Collaboration, Coordination and Events&lt;br /&gt;7:- Distributed workload distribution&lt;br /&gt;8:- Virtual heap for large dataset&lt;br /&gt;&lt;br /&gt;To know more about &lt;a href="http://www.terracotta.org/confluence/display/orgsite/Home"&gt;Terracotta &lt;/a&gt;follow the link &lt;a href="http://www.terracotta.org/confluence/display/orgsite/Home"&gt;here&lt;/a&gt; or watch very impressive demo &lt;a href="http://www.terracotta.org/confluence/display/orgsite/Demo"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;References:-&lt;br /&gt;&lt;br /&gt;1:- &lt;a href="http://www.terracotta.org/confluence/display/orgsite/Home"&gt;Terracotta official website&lt;/a&gt;&lt;br /&gt;2:- &lt;a href="http://en.wikipedia.org/wiki/Terracotta_Cluster"&gt;Terracotta Wiki&lt;/a&gt;&lt;br /&gt;3:- &lt;a href="http://www.infoq.com/articles/open-terracotta-intro"&gt;Introduction to Terracotta with Example&lt;/a&gt;&lt;br /&gt;4:- &lt;a href="http://video.google.com/videoplay?docid=7660457673499305140"&gt;Terracotta Tech- Cluster your JVM- The Video&lt;/a&gt;&lt;br /&gt;5:- &lt;a href="http://abramsm.wordpress.com/2007/10/05/using-terracotta-to-cluster-an-single-jvm-masterworker-application/"&gt;Using Terracotta To Cluster a Single JVM Master/Worker Application&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-9054046589278763869?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/9054046589278763869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=9054046589278763869' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/9054046589278763869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/9054046589278763869'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2008/03/terracotta-network-attached-memory.html' title='Terracotta -  Network Attached Memory'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_jm4FARolmSo/R-ZjQkCrEGI/AAAAAAAAFLE/atzYONvzTJg/s72-c/logo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-4236565507521903773</id><published>2008-03-18T22:03:00.000-07:00</published><updated>2008-03-18T22:47:43.822-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RTMP'/><category scheme='http://www.blogger.com/atom/ns#' term='Red5'/><category scheme='http://www.blogger.com/atom/ns#' term='H.264'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>H.264 on RTMP</title><content type='html'>Today morning i got a news &lt;a href="http://www.nabble.com/H.264-on-RTMP-implemented-td16125867.html"&gt;here on &lt;a href="http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html"&gt;red5 &lt;/a&gt;mailing list&lt;/a&gt; about the implementation of &lt;a href="http://sunil-gupta.blogspot.com/2008/03/red5-ready-for-h264.html"&gt;H.264 &lt;/a&gt;on RTMP by a Japanese guy.&lt;br /&gt;The blog is in Japanese. Below are the links for detail information on this.&lt;br /&gt;&lt;br /&gt;Feed Demo Page (English compatible click once to enable audio)&lt;br /&gt;&lt;a href="http://vixy.tv/izumi-h264/"&gt;http://vixy.tv/izumi-h264/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Programmer's blog (written in Japanese)&lt;br /&gt;&lt;a href="http://d.hatena.ne.jp/takuma104/20080317/1205783390"&gt;http://d.hatena.ne.jp/takuma104/20080317/1205783390&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Demo Video on Server Start&lt;br /&gt;&lt;a href="http://vixy.tv/images/izumi_h264_demo.mp4"&gt;http://vixy.tv/images/izumi_h264_demo.mp4&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now its time for &lt;a href="http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html"&gt;Red5 &lt;/a&gt;team to comeup with &lt;a href="http://sunil-gupta.blogspot.com/2008/03/red5-ready-for-h264.html"&gt;H.264 &lt;/a&gt;solution. &lt;br /&gt;&lt;br /&gt;Hope to hear it soon :)&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-4236565507521903773?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/4236565507521903773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=4236565507521903773' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/4236565507521903773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/4236565507521903773'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2008/03/h264-on-rtmp.html' title='H.264 on RTMP'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-7126003949524472946</id><published>2008-03-13T08:54:00.000-07:00</published><updated>2008-06-10T23:57:24.025-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='Ebook'/><category scheme='http://www.blogger.com/atom/ns#' term='Red5'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Red5 offline Tutorials-Download pdfs here</title><content type='html'>Below is the offline version of many great Red5 tutorials so that you do not need to be online more to read them again.&lt;br /&gt;&lt;h4&gt;&lt;br /&gt;1:- &lt;a href="http://sunilgupta20801.googlepages.com/CreateNewJavaRed5Application.pdf"&gt;Create new Java Red5 application&lt;/a&gt;&lt;br/&gt; &lt;br /&gt;2:- &lt;a href="http://sunilgupta20801.googlepages.com/SettingupEclipseforRed5Development.pdf"&gt;Setting up Eclipse for Red5 development&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;3:- &lt;a href="http://sunilgupta20801.googlepages.com/HowtocreateasampleapplicationusingRe.pdf"&gt;Create sample Red5 application&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;4:- &lt;a href="http://sunilgupta20801.googlepages.com/SharedWhiteboardapplicationinRed5.pdf"&gt;Shared whiteboard application in red5&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;5:- &lt;a href="http://sunilgupta20801.googlepages.com/SecureyourRed5applicationswithStunne.pdf"&gt;Secure your red5 application using stunnel&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;6:- &lt;a href="http://sunilgupta20801.googlepages.com/RED5HOWTOCREATENEWAPPLICATIONS.pdf"&gt;Red5-How to create New application&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;7:- &lt;a href="http://sunilgupta20801.googlepages.com/RED5HOWTOSTREAMCONTENTTOFROM.pdf"&gt;How to stream from custom directories&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;8:- &lt;a href="http://sunilgupta20801.googlepages.com/Tutorials-GettingStartedWithRed5Serv.pdf"&gt;Getting started with Red5&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;9:- &lt;a href="http://sunilgupta20801.googlepages.com/Tutorials-MySQLandRed5.pdf"&gt;MySql and Red5&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;10:- &lt;a href="http://sunilgupta20801.googlepages.com/Tutorials-Red5andFlex2onWindowsXP.pdf"&gt;Red5 and Flex on windows&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;11:- &lt;a href="http://sunilgupta20801.googlepages.com/Tutorials-Streaminganddatabaseconnec.pdf"&gt;Streaming and database connection- Red5&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;12:- &lt;a href="http://sunilgupta20801.googlepages.com/Tutorials-Streamingfromcustomdirecto.pdf"&gt;Streaming from custom directories&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;13:- &lt;a href="http://sunilgupta20801.googlepages.com/Tutorials-TomcatGuideCreateNewRed5Ap.pdf"&gt;Tomcat guide of creating new Red5 application&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;14:- &lt;a href="http://sunilgupta20801.googlepages.com/Tutorials-TomcatLaszloRed5.pdf"&gt;Red5+openlaszlo+Red5&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;15:- &lt;a href="http://review.codegent.net/opensource/RED5_draft_roadmap.pdf"&gt;Red5 Project Roadmap&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;16:- &lt;a href="http://www.electroteque.org/docbook/red5.pdf"&gt;Red5 Documentation&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;17:- &lt;a href="http://dl.fancycode.com/red5/0.6.3/war/Red5%20War.pdf"&gt;Deploying Red5 to Tomcat&lt;/a&gt;&lt;br /&gt;&lt;/h4&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-7126003949524472946?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/7126003949524472946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=7126003949524472946' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/7126003949524472946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/7126003949524472946'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2008/03/red5-offline-resources-download-pdfs.html' title='Red5 offline Tutorials-Download pdfs here'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-142083655825304011</id><published>2008-03-11T19:47:00.000-07:00</published><updated>2008-03-14T02:45:28.870-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MRTMP'/><category scheme='http://www.blogger.com/atom/ns#' term='Red5'/><category scheme='http://www.blogger.com/atom/ns#' term='Terracotta'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>MRTMP- Red5 load balancing</title><content type='html'>&lt;a href="http://osflash.org"&gt;Red5&lt;/a&gt; flash media server released their version &lt;a href="http://sunil-gupta.blogspot.com/2008/02/red5-v070-final-release.html"&gt;0.7.0 final &lt;/a&gt;on 02.23.2008.&lt;br /&gt;The one of the major enhancement was the support of Initial Edge/Origin clustering for multiple Edges with a single Origin. &lt;br /&gt;Everyone who was interested to use &lt;a href="http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html"&gt;Red5&lt;/a&gt; on a large scale was looking for this solution.&lt;br /&gt;I can find many questions in Red5 mailing list and other &lt;a href="http://www.nixspot.com/red5/showthread.php?t=1254"&gt;forums&lt;/a&gt; on this topic.&lt;br /&gt;For this &lt;a href="http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html"&gt;red5 &lt;/a&gt;has developed a new protocol called &lt;a href="http://dl.fancycode.com/red5/api/org/red5/server/net/mrtmp/package-summary.html"&gt;MRTMP&lt;/a&gt;( Multiplexing RTMP)-protocol between edge and origin.&lt;br /&gt;They are using &lt;a href="http://www.terracotta.org/"&gt;Terracotta &lt;/a&gt;for acheiving this solution. &lt;br /&gt;The detail architecture document can be found &lt;a href="http://jira.red5.org/confluence/display/CLU/Edge+Origin+Solution+on+Terracotta"&gt;here&lt;/a&gt; and the implementation with &lt;a href="http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html"&gt;Red5&lt;/a&gt; and terracotta can be found &lt;a href="http://www.terracotta.org/confluence/display/wiki/Red5"&gt;here&lt;/a&gt;. &lt;br /&gt;The POC of &lt;a href="http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html"&gt;Red5 &lt;/a&gt;and terracotta is &lt;a href="http://www.terracotta.org/confluence/display/wiki/Red5+and+Terracotta+POC"&gt;here&lt;/a&gt;.&lt;br /&gt;After releasing this feature, &lt;a href="http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html"&gt;Red5 &lt;/a&gt;team can target huge production environments and &lt;a href="http://blog.ff9900.org/"&gt;Chris Allen&lt;/a&gt; has already indicated about this on a post at &lt;a href="http://www.flashcomguru.com/index.cfm/2007/1/24/Why-we-dont-use-Flash-video--The-BBC-speaks-up"&gt;flashcomguru&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Looking forward for many new great features and enhancements in near future from &lt;a href="http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html"&gt;Red5 &lt;/a&gt;team.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-142083655825304011?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/142083655825304011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=142083655825304011' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/142083655825304011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/142083655825304011'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2008/03/mrtmp-red5-load-balancing.html' title='MRTMP- Red5 load balancing'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-7993353322756267502</id><published>2008-03-08T18:14:00.000-08:00</published><updated>2008-03-12T08:40:30.807-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Red5'/><category scheme='http://www.blogger.com/atom/ns#' term='H.264'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Red5 ready for H.264</title><content type='html'>What is &lt;a href="http://en.wikipedia.org/wiki/H.264"&gt;H.264&lt;/a&gt; and why everyone now is talking about this only.&lt;br /&gt;Last year the online media giant &lt;a href="http://youtube.com"&gt;YouTube &lt;/a&gt;also started showing H.264 contents.&lt;a href="http://www.adobe.com/products/flashmediastreaming/"&gt;Flash media server 3&lt;/a&gt; is supporting H.264 content both live and on demand.&lt;br /&gt;When we talk about FMS, one name also comes in mind and it's &lt;a href="http://osflash.org/red5"&gt;Red5&lt;/a&gt;, for those who can not go for FMS because of its price. &lt;br /&gt;Red5, for the people who live the open source way. &lt;br /&gt;When Red5 released the v0.7.0, I was discussing in my &lt;a href="http://sunil-gupta.blogspot.com/2008/02/red5-v070-final-release.html"&gt;blog post&lt;/a&gt; about the possibility of supporting H.264 in near future by Red5 and few days back i read an article on &lt;a href="http://flashcomguru.com/"&gt;Flashcomguru &lt;/a&gt;about &lt;a href="http://www.wowzamedia.com/"&gt;Wowza media server &lt;/a&gt;supporting H.264.&lt;br /&gt;The link is &lt;a href="http://www.flashcomguru.com/index.cfm/2008/2/14/wowza-150"&gt;here&lt;/a&gt;.&lt;br /&gt;I was sure that &lt;a href="http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html"&gt;Red5&lt;/a&gt; team is also working on it. &lt;a href="http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html"&gt;Red5 &lt;/a&gt;team always keep doing great things right on time. &lt;br /&gt;So here is a statement from &lt;a href="http://blog.ff9900.org/"&gt;Chris Allen&lt;/a&gt; about &lt;a href="http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html"&gt;Red5 &lt;/a&gt;supporting H.264 content in response to my comment on wowza supporting H.264 at flashcomguru.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Correct, &lt;a href="http://osflash.org"&gt;Red5&lt;/a&gt;, or more specifically, our team member Paul Gregoire is working on the h.264 support. This should be done pretty soon. We are releasing &lt;a href="http://sunil-gupta.blogspot.com/2008/02/red5-v070-final-release.html"&gt;Red5 0.7&lt;/a&gt; today or tomorrow, and the h.264 stuff will follow soon thereafter in 0.7.1 .&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;So cheers for Red5, Everyone is waiting for Red5 v0.7.1. Great efforts from Red5 team.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-7993353322756267502?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/7993353322756267502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=7993353322756267502' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/7993353322756267502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/7993353322756267502'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2008/03/red5-ready-for-h264.html' title='Red5 ready for H.264'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-617829195991862652</id><published>2008-02-23T15:45:00.000-08:00</published><updated>2008-02-25T06:08:53.062-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Red5'/><category scheme='http://www.blogger.com/atom/ns#' term='H.264'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Red5 v0.7.0 final release</title><content type='html'>&lt;a href="http://www.acmewebworks.com/red5/images/FinalLogo.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px;" src="http://www.acmewebworks.com/red5/images/FinalLogo.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;The &lt;a href="http://osflash.org/red5"&gt;Red5 &lt;/a&gt;team yesterday acheived one more milestone and they have now comeup with Red5 version 0.7.0 final.&lt;a href="http://osflash.org/red5/070final"&gt;Here &lt;/a&gt;is the official announcement from &lt;a href="http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html"&gt;Red5 &lt;/a&gt;website.&lt;br /&gt; Following are the major changes and known issues.&lt;br /&gt;&lt;br /&gt;Major changes since 0.6.3: &lt;br /&gt;&lt;br /&gt;1. Initial Edge/Origin clustering support for multiple Edges with a single Origin &lt;br /&gt;   New Flex admin tool.&lt;br /&gt;2. Added a multi-threaded ApplicationAdapter that allows multiple clients to&lt;br /&gt;   connect simultaneously to the same application.&lt;br /&gt;3. Added stream listeners that can get notified about received packets.&lt;br /&gt;4. Fixed a critical memory leak bug in networking due to MINA ExecutorFilter.&lt;br /&gt;5. Added new Flash Player 9 statuses NetStream.Play.FileStructureInvalid and &lt;br /&gt;   NetStream.Play.NoSupportedTrackFound.&lt;br /&gt;&lt;br /&gt;The detail of changes will be available with the installation of &lt;a href="http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html"&gt;Red5&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Known issues: &lt;br /&gt;&lt;br /&gt;The admin application may not work as expected.&lt;br /&gt;&lt;br /&gt;I am very eager to use this new version of &lt;a href="http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html"&gt;Red5&lt;/a&gt;. It's another great acheivement from Red5 Team. Let’s hope &lt;a href="http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html"&gt;Red5 &lt;/a&gt;community will come up with more critical improvements such as &lt;a href="http://en.wikipedia.org/wiki/H.264"&gt;H.264&lt;/a&gt; support soon&lt;br /&gt;&lt;br /&gt;References:-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://osflash.org/red5/070final"&gt;Red5 v0.7.0 final release&lt;/a&gt;&lt;br /&gt;&lt;a href="http://osflash.org/red5"&gt;Red5 official webpage&lt;/a&gt;&lt;br /&gt;&lt;a href="http://sunil-gupta.blogspot.com/2007/03/how-to-create-sample-application-using.html"&gt;Create new application with Red5 and Flash&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-617829195991862652?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/617829195991862652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=617829195991862652' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/617829195991862652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/617829195991862652'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2008/02/red5-v070-final-release.html' title='Red5 v0.7.0 final release'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-6725453128085921733</id><published>2008-02-16T08:59:00.000-08:00</published><updated>2008-02-17T04:42:21.350-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='yahoo'/><category scheme='http://www.blogger.com/atom/ns#' term='Microhoo'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Microsoft buying Yahoo</title><content type='html'>&lt;a href="http://bp1.blogger.com/_jm4FARolmSo/R7grmedSWRI/AAAAAAAAErs/OYPnBYRtoTk/s1600-h/2235550137_fef0ae81d6_o.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_jm4FARolmSo/R7grmedSWRI/AAAAAAAAErs/OYPnBYRtoTk/s400/2235550137_fef0ae81d6_o.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5167928512418568466" /&gt;&lt;/a&gt;&lt;br /&gt;From so many days, I am listening about this &lt;a href="http://www.portfolio.com/views/blogs/the-tech-observer/2008/02/01/microsoft--yahoo--microhoo"&gt;MicroHoo &lt;/a&gt;word. Everybody is talking about this &lt;a href="http://www.joemanna.com/blog/microhoo-microsoft-to-acquire-yahoo-for-446-billion/"&gt;MicroHoo &lt;/a&gt;and many rumors started flowing in the air. Big surprise when i checked my favourite &lt;a href="http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=forum&amp;f=32"&gt;java forum&lt;/a&gt; . There also everyone is talking about who buying whom.&lt;br /&gt;  I am also thinking of buying Microsoft :) Let see they accept my offer or not. By the way it's saturday night and i am going to sleep after thinking of this deal.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-6725453128085921733?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/6725453128085921733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=6725453128085921733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/6725453128085921733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/6725453128085921733'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2008/02/microsoft-buying-yahoo.html' title='Microsoft buying Yahoo'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_jm4FARolmSo/R7grmedSWRI/AAAAAAAAErs/OYPnBYRtoTk/s72-c/2235550137_fef0ae81d6_o.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-6922501275458518207</id><published>2008-02-06T17:28:00.000-08:00</published><updated>2008-03-06T03:59:00.737-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unit Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='AsUnit'/><category scheme='http://www.blogger.com/atom/ns#' term='Actionscript 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>AsUnit-- Open-source Unit Testing for Action Script 2.0 and 3.0</title><content type='html'>Very recently i got a chance to work with AsUnit. We were looking for a &lt;a href="sunil-gupta.blogspot.com/2006/07/watir-automated-test-tool.html "&gt;testing &lt;/a&gt;framework for flash and after googling, we found this tool called &lt;a href="http://www.asunit.org/"&gt;AsUnit&lt;/a&gt;. It's an open source unit test framework for flash. Because of no documentation it was very hard to make it working for my first testing application. Most of the links given in this page point to does not exist pages on the web. After some more googling on this gave me some idea of how this works. Please find the reference of these websites from where i got some help to move forward with &lt;a href="http://www.asunit.org/"&gt;AsUnit&lt;/a&gt; at the end of this post.In this post i will explain a very simple application using AsUnit.&lt;br /&gt;    AsUnit provides three ways to use their testing application in your application.&lt;br /&gt;&lt;br /&gt;1. Framework&lt;br /&gt;2. XUL UI&lt;br /&gt;3. MXP&lt;br /&gt;&lt;br /&gt;In the below example we will use the first one i.e. Framework. To start with below example, you have to first download the Framework from &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=108947&amp;package_id=208528"&gt;here&lt;/a&gt;. It's a zip file. You can unzip this file in to your hard disk location. This will generate some folders named as2, as3, as3docs and as25. As clear from name, these folders are for different Actionscript versions. Since the below example is in Actionscript 3.0, we will use as3 folder.&lt;br /&gt;     To start with the example, First create a folder say TestExample in any location of your hard disk. Copy this as3 folder to TestExample folder. Now it's time to create the sample application which we will test with AsUnit.&lt;br /&gt;&lt;br /&gt;Create a file named Example.as in the TestExample folder like this.&lt;br /&gt;&lt;br /&gt;package {&lt;br /&gt;&lt;br /&gt; public class Example {&lt;br /&gt;  public function add(num1:Number,num2:Number):Number{&lt;br /&gt;    return num1 + num2;&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Now its time to create test case for this class. Create a file named ExampleTest in the same folder like this.&lt;br /&gt;&lt;br /&gt;package  {&lt;br /&gt;        //The below line import the AsUnit library of TestCase&lt;br /&gt; import asunit.framework.TestCase;&lt;br /&gt;&lt;br /&gt; public class ExampleTest extends TestCase {&lt;br /&gt;&lt;br /&gt;                //reference of Example class created above&lt;br /&gt;   private var example:Example;&lt;br /&gt;&lt;br /&gt;  public function ExampleTest(testMethod:String) {&lt;br /&gt;   super(testMethod);&lt;br /&gt;  }&lt;br /&gt;                 &lt;br /&gt;                //Default method for object instantiation&lt;br /&gt;  protected override function setUp():void {&lt;br /&gt;   example = new Example();&lt;br /&gt;  }&lt;br /&gt;                &lt;br /&gt;                //Default method for Object deletion&lt;br /&gt;  protected override function tearDown():void {&lt;br /&gt;   example = null;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public function testInstantiated():void {&lt;br /&gt;   assertTrue("Example instantiated", example is Example);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public function testFail():void {&lt;br /&gt;    assertFalse("failing test", true);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;  /**&lt;br /&gt;    * Test the add method of Example class created above&lt;br /&gt;    */&lt;br /&gt;   public function testAdd():void {&lt;br /&gt;    var result:Number = example.add(3,3);&lt;br /&gt;    assertEquals("Expected:6 Received:"+result, result, 6);&lt;br /&gt;   }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Now our test case is ready, Another thing we have to do is to create the TestSuite for executing many test cases together. Create a file named ExecuteAllTests.as in the same folder like this.&lt;br /&gt;&lt;br /&gt;package {&lt;br /&gt; import asunit.framework.TestSuite;&lt;br /&gt; import ExampleTest;&lt;br /&gt;&lt;br /&gt; public class ExecuteAllTests extends TestSuite {&lt;br /&gt;&lt;br /&gt;  public function ExecuteAllTests () {&lt;br /&gt;   super();&lt;br /&gt;                        //Adding first test&lt;br /&gt;   addTest(new ExampleTest("testInstantiated"));&lt;br /&gt;                        //Adding second test&lt;br /&gt;    addTest(new ExampleTest("testAdd"));&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Till here we are ready with our main application, test case, test suite, Now we will create a runner class to run this test suite to produce some results.&lt;br /&gt;Create a file named ExampleTestRunner.as in the same folder like this.&lt;br /&gt;&lt;br /&gt;package {&lt;br /&gt; import asunit.textui.TestRunner;&lt;br /&gt; &lt;br /&gt; public class ExampleTestRunner extends TestRunner {&lt;br /&gt;&lt;br /&gt;  public function ExampleTestRunner() {&lt;br /&gt;   start(ExecuteAllTests, null, TestRunner.SHOW_TRACE);&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;As from the above structure you can see this runner class is taking our TestSuite class as a parameter and the last parameter is a boolean to show and hide the trace.&lt;br /&gt;&lt;br /&gt;Now it's time to run the application. For this create a flash file named ExampleTestRunner.fla in the same folder. This file will be empty file. Just you need to put ExampleTestRunner in Document class under properties tab. This step is to avoid the below error while compiling the fla file.&lt;br /&gt;&lt;br /&gt;TypeError: Error #1009: Cannot access a property or method of a null object reference.&lt;br /&gt; at asunit.textui::TestRunner/asunit.textui:TestRunner::addedHandler()&lt;br /&gt; at flash.display::DisplayObjectContainer/addChild()&lt;br /&gt; at asunit.textui::TestRunner/setPrinter()&lt;br /&gt; at asunit.textui::TestRunner/doRun()&lt;br /&gt; at asunit.textui::TestRunner/start()&lt;br /&gt; at ExampleTestRunner$iinit()&lt;br /&gt; at ExampleTestRunner_fla::MainTimeline/ExampleTestRunner_fla::frame1()&lt;br /&gt;&lt;br /&gt;The more detail on this can be found from the references given below. The below image will show how to use Document class in Flash CS3.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp3.blogger.com/_jm4FARolmSo/R6pp9lpFf9I/AAAAAAAAEq8/3valjfZsAT4/s1600-h/exampletestrunner.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_jm4FARolmSo/R6pp9lpFf9I/AAAAAAAAEq8/3valjfZsAT4/s320/exampletestrunner.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5164056429531070418" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Its time to run the flash file and see the result. Test the flash movie by hitting Ctrl+Enter. YOu will see a screen like this if everything goes fine.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp0.blogger.com/_jm4FARolmSo/R6pqx1pFf-I/AAAAAAAAErE/OqqWz1ZJ168/s1600-h/result.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_jm4FARolmSo/R6pqx1pFf-I/AAAAAAAAErE/OqqWz1ZJ168/s320/result.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5164057327179235298" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;The above screen shows that both the tests are passed, Now go to ExampleTest.as file again and change this line assertEquals("Expected:6 Received:"+result, result, 6);&lt;br /&gt; to assertEquals("Expected:6 Received:"+result, result, 7);  and again run the application, you will see a screen like this saying one test fail in two tests.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp1.blogger.com/_jm4FARolmSo/R6prtFpFf_I/AAAAAAAAErM/C8N6ElfM-dE/s1600-h/resultfail.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_jm4FARolmSo/R6prtFpFf_I/AAAAAAAAErM/C8N6ElfM-dE/s320/resultfail.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5164058345086484466" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;References:-&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://marstonstudio.com/index.php/2007/07/28/asunit-testing-with-flash-cs3-and-actionscript-3/"&gt;AsUnit testing with Actionscript 3.0 and flash CS 3.0&lt;/a&gt; &lt;br /&gt;2. &lt;a href="http://www.flashcodersny.org/wordpress/?p=103"&gt;AsUnit Step by Step&lt;/a&gt;&lt;br /&gt;3. &lt;a href="http://www.adobe.com/designcenter/flash/articles/flacs3_migration_08.html"&gt;Migrating from flash 8 to flash CS3&lt;/a&gt;&lt;br /&gt;4. &lt;a href="http://www.timbeynart.com/uploads/ASUnit_PartOne_revised.pdf"&gt;AsUnit Step by Step part 1 pdf&lt;/a&gt;&lt;br /&gt;5. &lt;a href="http://timbeynart.com/docs/ASUnit_Part2.pdf"&gt;AsUnit Step by Step part 2 pdf&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-6922501275458518207?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/6922501275458518207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=6922501275458518207' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/6922501275458518207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/6922501275458518207'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2008/02/asunit-open-source-unit-testing-for.html' title='AsUnit-- Open-source Unit Testing for Action Script 2.0 and 3.0'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_jm4FARolmSo/R6pp9lpFf9I/AAAAAAAAEq8/3valjfZsAT4/s72-c/exampletestrunner.JPG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-393319867889770813</id><published>2008-01-24T00:08:00.000-08:00</published><updated>2008-02-18T01:34:55.720-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><title type='text'>Back to Flex</title><content type='html'>It was May 30, 2006 when i started writing here. The very first &lt;a href="http://sunil-gupta.blogspot.com/2006/05/experience-to-adobe-products.html"&gt;post &lt;/a&gt;i wrote about was the Flex( Introduction to flex data services). It's more than one and half year now and i am back again to flex.&lt;br /&gt;    Last time i got very little chance to work with flex but i enjoyed alot. This time it's going to be more exciting and challenging. The work is great and interesting and i am ready to fight with flex again.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-393319867889770813?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/393319867889770813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=393319867889770813' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/393319867889770813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/393319867889770813'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2008/01/back-to-flex.html' title='Back to Flex'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-7761974895180815125</id><published>2007-10-25T07:12:00.000-07:00</published><updated>2008-06-29T23:18:49.597-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Actionscript 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Red5'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Limitations of flash Action Script 2.0</title><content type='html'>Very recently When i was working for a project based on &lt;a href="http://osflash.org/red5"&gt;Red5 &lt;/a&gt;flash server and Flash 8 with Action Script 2.0. My requirement was to fetch the number of images from the web server and render them on flash client repeatedly after n milliseconds. To avoid the flickering i used double buffering. But the problem was the time it was taking to load the images from server and then render them. I was using the MovieClipLoader loadClip function to dynamically load the jpeg files, Though the size of each jpeg was not more than 15 KB, but it was taking around 3-4 seconds to load 16 jpeg images of size less than 15 KB. This was very frustating as i was getting the updated images after 3-4 seconds. How good if flash provide some kind of sockets in &lt;a href="http://www.adobe.com/devnet/flash/actionscript/actionscript02.html"&gt;Action script 2.0&lt;/a&gt;, by using that i can transfer the image object as binary data and then draw it on flash client.I am really missing this functionality in flash to send image data either using Flash remoting. They have kept it for their own product called &lt;a href="http://www.adobe.com/products/flashcom/"&gt;Flash communication server.&lt;/a&gt;. I am still looking for a solution that can minimize the time required to load these images from web server. If i can reduce it to 1 sec on higher bandwidth, It would be great.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-7761974895180815125?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/7761974895180815125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=7761974895180815125' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/7761974895180815125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/7761974895180815125'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2007/10/limitations-of-flash-action-script-20.html' title='Limitations of flash Action Script 2.0'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-2617181607899289006</id><published>2007-08-25T04:36:00.000-07:00</published><updated>2008-02-18T01:38:13.383-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Red5'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Adding client information with every client in Red5</title><content type='html'>In &lt;a href="http://www.nabble.com/Red5-f16328.html"&gt;Red5 forum&lt;/a&gt;, I have seen so many times, developers are asking for custom client id to identify a client. Below I will try to explain how can one add additional client information with every client connected to your application.&lt;br /&gt;&lt;br /&gt;First we will create a client object--&lt;br /&gt;&lt;br /&gt;public class Client{&lt;br /&gt;     String clientId = null;&lt;br /&gt;     String clienName = null;&lt;br /&gt;     String clientRole = null;&lt;br /&gt;&lt;br /&gt;     public String getRole(){&lt;br /&gt;          return clientRole;&lt;br /&gt;     }&lt;br /&gt;     public String getName(){&lt;br /&gt;          return clientName;&lt;br /&gt;     }&lt;br /&gt;     public String getId(){&lt;br /&gt;          return clientId;&lt;br /&gt;     }&lt;br /&gt;     public void setRole(String role){&lt;br /&gt;          clientRole = role;&lt;br /&gt;     }&lt;br /&gt;     public void setName(String name){&lt;br /&gt;          clientName = name;&lt;br /&gt;     }&lt;br /&gt;     public void setId(String id){&lt;br /&gt;          clientId = id;&lt;br /&gt;     }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Now we are ready with our client object, We will add this client object with the IClient in &lt;a href="http://osflash.org/red5"&gt;Red5 &lt;/a&gt;like below&lt;br /&gt;&lt;br /&gt;public boolean roomConnect(IConnection iconnection, Object params[]){&lt;br /&gt;        if(!super.roomConnect(iconnection, params)){&lt;br /&gt;         log.info((new StringBuilder()).append("Application failed to connect room: ").append(iconnection.getScope().getName()).toString());&lt;br /&gt;            return false;&lt;br /&gt;        } &lt;br /&gt;        else{&lt;br /&gt;         log.info((new StringBuilder()).append("Application room connect initiated for room ").append(iconnection.getScope().getName()).append(": ").toString());&lt;br /&gt;            &lt;br /&gt;           //We will add our client information right here&lt;br /&gt;           Client client = new Client();&lt;br /&gt;           client.setId(params[0].toString());&lt;br /&gt;           client.setName(params[1].toString());&lt;br /&gt;           client.setRole(params[2].toString());&lt;br /&gt;           iconnection.getClient().setAttribute("client", client);  &lt;br /&gt;           &lt;br /&gt;           return true&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt; public boolean roomJoin(IClient iclient, IScope iscope){&lt;br /&gt;       &lt;br /&gt;        /*Here you can see how to access your client information throughout the application*/&lt;br /&gt;     &lt;br /&gt;        Client client = ((Client)iclient.getAttribute("client"));&lt;br /&gt;        String clientName = client.getName();&lt;br /&gt;        String clientId   =   client.getId();&lt;br /&gt;        String clientRole = client.getRole();&lt;br /&gt;&lt;br /&gt;        return true;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;This way you can have your own client id's names and roles for different clients.&lt;br /&gt;&lt;br /&gt;To create new &lt;a href="http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html"&gt;Red5 &lt;/a&gt;application follow my previous post &lt;a href="http://sunil-gupta.blogspot.com/2007/03/how-to-create-sample-application-using.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-2617181607899289006?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/2617181607899289006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=2617181607899289006' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/2617181607899289006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/2617181607899289006'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2007/08/adding-client-information-with-every.html' title='Adding client information with every client in Red5'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-615787095523716340</id><published>2007-07-24T01:24:00.000-07:00</published><updated>2008-02-18T01:39:59.900-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SocketAppender'/><category scheme='http://www.blogger.com/atom/ns#' term='Red5'/><category scheme='http://www.blogger.com/atom/ns#' term='log4j'/><category scheme='http://www.blogger.com/atom/ns#' term='log forwarding'/><title type='text'>Red5 log forwarding to centralized log server</title><content type='html'>In order to view the log generated by &lt;a href="http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html"&gt;Red5 &lt;/a&gt;in some other location( on a different log server on network), You can use the &lt;a href="http://logging.apache.org/log4j/docs/download.html"&gt;log4j &lt;/a&gt;feature to forward your logs to a centralized log sever, where all your applications( multiple red5 servers) are throwing their logs.This way you can later view your organize log through some log interface.&lt;br /&gt;&lt;br /&gt;        Here i will explain, How you can configure your log settings in your red5 application in order to acheive that.Let say you have an application with name Test.Open the log4j.properties file under your application WEB-INF folder, Initially the contents will be -&lt;br /&gt;&lt;br /&gt;# logging config, this should be auto reloaded by spring.&lt;br /&gt;&lt;br /&gt;Now you can change it to -&lt;br /&gt;&lt;br /&gt;#-----------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;#log4j.rootCategory=, A1&lt;br /&gt;#log4j.appender.A1=&lt;a href="http://logging.apache.org/log4j/docs/api/org/apache/log4j/net/SocketAppender.html"&gt;org.apache.log4j.net.SocketAppender&lt;/a&gt;&lt;br /&gt;#log4j.appender.A1.RemoteHost=XX.XX.XX.XX&lt;br /&gt;#log4j.appender.A1.Port=8888&lt;br /&gt;#log4j.appender.A1.Threshold=DEBUG&lt;br /&gt;#log4j.appender.A1.locationInfo=true&lt;br /&gt;&lt;br /&gt;#----------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;The above lines describes that upon running the application, it will connect to this remote address on port 8888.&lt;br /&gt;&lt;br /&gt;Now you can also put the server name in your log messages, so that at receiving end, you can differentiate the log messages coming from different red5 servers. To acheive that, we will add some line in our application source.&lt;br /&gt;&lt;br /&gt;//------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;public boolean appStart(IScope app){&lt;br /&gt;     &lt;br /&gt;     String servername  = null;&lt;br /&gt;     try{&lt;br /&gt;      servername = java.net.InetAddress.getLocalHost().getHostName();&lt;br /&gt;     }&lt;br /&gt;     catch(UnknownHostException un){&lt;br /&gt;      log.error("Unknown host exception found while getting host name of sever " + un);&lt;br /&gt;     }&lt;br /&gt;     catch(Exception e){&lt;br /&gt;      log.error("Exception while getting host name of sever " + e);&lt;br /&gt;     }&lt;br /&gt;     if(servername != null){&lt;br /&gt;      MDC.put("red5server",servername);&lt;br /&gt;     } &lt;br /&gt;     &lt;br /&gt;     log.info("AppStart called for : " + app.getName());&lt;br /&gt;     &lt;br /&gt;     if (!super.appStart(app)){&lt;br /&gt;      log.error("Unable to start the application");&lt;br /&gt;            return false;&lt;br /&gt;     }    &lt;br /&gt;     &lt;br /&gt;     return true;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//-------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can see from the above piece of code, that we have created a variable called "red5server" and we are putting the server name in that.This variable will be accessed by log4j server later.&lt;br /&gt;&lt;br /&gt;Now, the sending part is complete, We have to implement the receiving end i.e. The log4j server, which will receive all these log messages.&lt;br /&gt;&lt;br /&gt;In order to run log4j server, you need to create a properties file. I am showing here, a sample file called "socketserver.properties". The contents of the file will be-&lt;br /&gt;&lt;br /&gt;#--------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;log4j.rootLogger=, A1&lt;br /&gt;&lt;br /&gt;#log4j.appender.A1=org.apache.log4j.ConsoleAppender&lt;br /&gt;#log4j.appender.A1.layout=org.apache.log4j.PatternLayout&lt;br /&gt;&lt;br /&gt;# Pattern to output the caller's file name and line number.&lt;br /&gt;#log4j.appender.A1.layout.ConversionPattern= %X{red5server} %5p [%t] (%F:%L) - %m%n&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;log4j.appender.A1=org.apache.log4j.RollingFileAppender&lt;br /&gt;log4j.appender.A1.File= remote-log.log&lt;br /&gt;&lt;br /&gt;log4j.appender.A1.MaxFileSize=1024KB&lt;br /&gt;&lt;br /&gt;log4j.appender.A1.layout=org.apache.log4j.PatternLayout&lt;br /&gt;log4j.appender.A1.layout.ConversionPattern= %1.25X{red5server}- %p %t %c - %m%n&lt;br /&gt;&lt;br /&gt;#------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Now you can see from above lines, I have referred to the same variable, i have created in source file. &lt;br /&gt;&lt;br /&gt;"log4j.appender.A1.layout.ConversionPattern= %X{red5server} %5p [%t] (%F:%L) - %m%n"&lt;br /&gt;&lt;br /&gt;This piece of code will add the red5 server name in the begining of every log message.&lt;br /&gt;&lt;br /&gt;You can now start the log4j server in order to receive the logs from applications in this way-&lt;br /&gt;&lt;br /&gt;java -cp log4j-1.2.14.jar org.apache.log4j.net.SimpleSocketServer 8888 socketserver.properties&lt;br /&gt;&lt;br /&gt;Now your log4j server is up and running, Every application, which is referring to this log server will throw their log messages to this server, which you can later on view.&lt;br /&gt;&lt;br /&gt;Happy logging!!&lt;br /&gt;&lt;br /&gt;To create new Red5 application, follow my post &lt;a href="http://sunil-gupta.blogspot.com/2007/03/how-to-create-sample-application-using.html"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-615787095523716340?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/615787095523716340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=615787095523716340' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/615787095523716340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/615787095523716340'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2007/07/red5-log-forwarding-to-centralized-log.html' title='Red5 log forwarding to centralized log server'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-1326681766497778754</id><published>2007-07-20T06:53:00.000-07:00</published><updated>2008-02-23T07:56:01.791-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Applet'/><category scheme='http://www.blogger.com/atom/ns#' term='Red5'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><category scheme='http://www.blogger.com/atom/ns#' term='desktop sharing'/><title type='text'>Desktop sharing with Red5 and Flash</title><content type='html'>From Last 15 days, I was trying hard to get it done. My previous research on this and some concept from open source and commercial project, I am finally able to do a complete desktop sharing in my conference application.And the best part is that, I am not using any native driver or so to acheive this, A pure java solution with flash just works fine, I got some idea from &lt;a href="http://blog.onepixeloff.com/index.cfm/2006/1/12/Vyews-screenrecording-applet"&gt;here&lt;/a&gt;. But i tried a little different approach for this. And the best thing is that, Only the user, who wants to share his desktop need java plugin in his browser,all other users in the conference can just see and control his desktop with their flash client, Screen rendering part is little bit slow at this time, but the mouse and keyboard controls are more faster than i expected.The only frustating part having flash as a desktop sharing client is that, there is no way to remove the flash context menu, So i have done a workaround(got it from some forum) and put right click event on context menu itself.&lt;br /&gt;&lt;br /&gt;Now i am trying to make it more faster in terms of performence.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-1326681766497778754?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/1326681766497778754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=1326681766497778754' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/1326681766497778754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/1326681766497778754'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2007/07/desktop-sharing-with-red5-and-flash.html' title='Desktop sharing with Red5 and Flash'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-6597058628500937624</id><published>2007-07-04T19:26:00.000-07:00</published><updated>2008-07-18T21:15:07.812-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Whiteboard'/><category scheme='http://www.blogger.com/atom/ns#' term='openlaszlo'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='Red5'/><category scheme='http://www.blogger.com/atom/ns#' term='desktop sharing'/><title type='text'>Open source video conferencing using Red5 and Open Laszlo</title><content type='html'>&lt;a href="http://code.google.com/p/openmeetings/"&gt;Openmeetings&lt;/a&gt;, A new multilanguage,  and customizable video conference  and group collaboration application very similer to Adobe Connect. They have used Open Laszlo and Red5 as a technology to build this application. The project has various features like screen sharing, Document importing. There are various file format(.tga, .xcf, .wpg, .txt, .ico, .ttf, .pcd, .pcds, .ps, .psd, .tiff, .bmp, .svg, .dpx, .exr, .jpg, .jpeg, .gif, .png, .ppt, .odp, .odt, .sxw, .wpd, .doc, .rtf, .txt, .ods, .sxc, .xls, .sxi, .pdf) that you can import and share with others in the conference.The whiteboard items are draggable, You can edit the items, also some of them are resizable as well, Whiteboard can be stored or recorded.&lt;br /&gt;&lt;br /&gt;Take a basic installation demo here&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://blip.tv/play/AbO7VovJBg" type="application/x-shockwave-flash" width="420" height="257" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt; &lt;br /&gt;&lt;br /&gt;Below are some screenshots of the application-&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_jm4FARolmSo/RoxZ5pofWYI/AAAAAAAAAww/wAa7WxI7IiQ/s1600-h/screen_beta1_conference_rc2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_jm4FARolmSo/RoxZ5pofWYI/AAAAAAAAAww/wAa7WxI7IiQ/s320/screen_beta1_conference_rc2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5083536926357543298" /&gt;Screen 1- Conference Mode&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_jm4FARolmSo/RoxaSpofWZI/AAAAAAAAAw4/wdiaePUaH9M/s1600-h/screen_beta1_audience_.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_jm4FARolmSo/RoxaSpofWZI/AAAAAAAAAw4/wdiaePUaH9M/s320/screen_beta1_audience_.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5083537355854272914" /&gt;Screen 2- Audience Mode&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_jm4FARolmSo/RoxaiZofWaI/AAAAAAAAAxA/6LFSgIvBbXg/s1600-h/colors_sampler.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_jm4FARolmSo/RoxaiZofWaI/AAAAAAAAAxA/6LFSgIvBbXg/s320/colors_sampler.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5083537626437212578" /&gt;Screen 3- Multi color Interface&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For more information visit the home page of Openmeetings &lt;a href="http://code.google.com/p/openmeetings/"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Related Post&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://feedshub.blogspot.com/2008/05/new-version-of-dimdims-open-source.html"&gt;New Version Of Dimdim's Open Source Community Edition Releasing Soon&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-6597058628500937624?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/6597058628500937624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=6597058628500937624' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/6597058628500937624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/6597058628500937624'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2007/07/open-source-video-conferencing-using.html' title='Open source video conferencing using Red5 and Open Laszlo'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_jm4FARolmSo/RoxZ5pofWYI/AAAAAAAAAww/wAa7WxI7IiQ/s72-c/screen_beta1_conference_rc2.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-7512877610412972581</id><published>2007-06-05T21:17:00.000-07:00</published><updated>2008-05-26T18:09:44.021-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Stunnel'/><category scheme='http://www.blogger.com/atom/ns#' term='SSL'/><category scheme='http://www.blogger.com/atom/ns#' term='RTMPS'/><category scheme='http://www.blogger.com/atom/ns#' term='Red5'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Secure your Red5 applications with Stunnel</title><content type='html'>Steps to configure SSL in existing Red5 application&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Software needed on machine where Red5 server is installed:-&lt;br /&gt;&lt;br /&gt;1: Open SSL //Open source SSL libraries required for compiling Stunnel&lt;br /&gt;&lt;br /&gt;2: Stunnel //Open source SSL wrapper software uses open SSL works both on&lt;br /&gt;Windows and Linux.&lt;br /&gt;&lt;br /&gt;3: gcc // The GNU C compiler (although it always bundled with Linux&lt;br /&gt;Machine, but I did not find it. Necessary if you are compiling the&lt;br /&gt;Open SSL and Stunnel from source. Not required if using RPM&lt;br /&gt;&lt;br /&gt;Configuration needed on server machine:-&lt;br /&gt;&lt;br /&gt;1:- Install the Open SSL (if windows use exe RPM or source for Linux machine can be downloaded from here- &lt;a href="http://www.openssl.org/ "&gt;http://www.openssl.org/ &lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;2:- Install Stunnel (if windows use exe otherwise RPM or compilation from source is preferred, can be downloaded from here- &lt;a href="http://www.stunnel.org/download/"&gt;http://www.stunnel.org/download/&lt;/a&gt;). Make sure that you already have compiled Open SSL in your machine before proceeding with the installation of Stunnel; otherwise it will fail to compile.&lt;br /&gt;&lt;br /&gt;Under Linux the standard command to compile Stunnel from source are described below. For any update please always follow the installation instructions given their website.&lt;br /&gt;&lt;br /&gt;machine# gzip -dc stunnel-VERSION.tar.gz  tar -xvzf -&lt;br /&gt;machine# cd stunnel-VERSION&lt;br /&gt;machine# ./configure&lt;br /&gt;machine# make&lt;br /&gt;machine# make install&lt;br /&gt;&lt;br /&gt;There are several configurations that differ based on your computer and environment. That can be read from the website itself.&lt;br /&gt;&lt;br /&gt;3:- Running Stunnel (There are several ways/mode you can run the stunnel. Follow the FAQ available in their website to choose the best which matches your requirements).&lt;br /&gt;To run stunnel, you always require a configuration file. The process of making sample configuration file (stunnel.conf) is described below.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The sample configuration file used was like this.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;************************************************************************&lt;br /&gt;sample.conf&lt;br /&gt;&lt;br /&gt;; Sample stunnel configuration file by Sunil Gupta 2007&lt;br /&gt;; Some options used here may not be adequate for your particular configuration&lt;br /&gt;&lt;br /&gt;; Certificate/key is needed in server mode and optional in client mode&lt;br /&gt;; The default certificate is provided only for testing and should not&lt;br /&gt;; be used in a production environment&lt;br /&gt;&lt;br /&gt;cert = /etc/stunnel/stunnel.pem&lt;br /&gt;;chroot = /var/run/stunnel/&lt;br /&gt;pid = /stunnel.pid&lt;br /&gt;key = /etc/stunnel/stunnel.pem&lt;br /&gt;&lt;br /&gt;; Some performance tunings&lt;br /&gt;socket = l:TCP_NODELAY=1&lt;br /&gt;socket = r:TCP_NODELAY=1&lt;br /&gt;&lt;br /&gt;; Workaround for Eudora bug&lt;br /&gt;;options = DONT_INSERT_EMPTY_FRAGMENTS&lt;br /&gt;&lt;br /&gt;; Authentication stuff&lt;br /&gt;;verify = 2&lt;br /&gt;; Don't forget to c_rehash CApath&lt;br /&gt;;CApath = certs&lt;br /&gt;; It's often easier to use CAfile&lt;br /&gt;;CAfile = certs.pem&lt;br /&gt;; Don't forget to c_rehash CRLpath&lt;br /&gt;;CRLpath = crls&lt;br /&gt;; Alternatively you can use CRLfile&lt;br /&gt;;CRLfile = crls.pem&lt;br /&gt;&lt;br /&gt;; Some debugging stuff useful for troubleshooting&lt;br /&gt;debug = 7&lt;br /&gt;Output = /var/log/stunnel.log&lt;br /&gt;foreground=yes&lt;br /&gt;; Use it for client mode&lt;br /&gt;; client = yes&lt;br /&gt;; Service-level configuration&lt;br /&gt;&lt;br /&gt;;[pop3s]&lt;br /&gt;;accept = 995&lt;br /&gt;;connect = 110&lt;br /&gt;&lt;br /&gt;;[imaps]&lt;br /&gt;;accept = 993&lt;br /&gt;;connect = 143&lt;br /&gt;&lt;br /&gt;;[ssmtp]&lt;br /&gt;;accept = 465&lt;br /&gt;;connect = 25&lt;br /&gt;&lt;br /&gt;[rtmps - https]&lt;br /&gt;TIMEOUTconnect=20&lt;br /&gt;accept = 443&lt;br /&gt;connect = 80&lt;br /&gt;TIMEOUTclose = 20&lt;br /&gt;&lt;br /&gt;; vim:ft=dosin&lt;br /&gt;&lt;br /&gt;*****************************Finish*************************************&lt;br /&gt;&lt;br /&gt;Note: - When you install Stunnel, you get a default sample file, which is not enough in most of the cases to run the flash application. The additions to configuration file I made are as follows.&lt;br /&gt;Also the line having ; in the start denotes the commented portion in file.&lt;br /&gt;&lt;br /&gt;cert = /etc/stunnel/stunnel.pem&lt;br /&gt;key = /etc/stunnel/stunnel.pem&lt;br /&gt;&lt;br /&gt;pem stands for ‘privacy enhanced mail' used as a key format. The above two lines tells the location of pem files need to be generated. This will be configured by user. The above is the best location for Stunnel although you can change it to any desired location.&lt;br /&gt;&lt;br /&gt;;Some performance tunings&lt;br /&gt;&lt;br /&gt;socket = l:TCP_NODELAY=1&lt;br /&gt;socket = r:TCP_NODELAY=1&lt;br /&gt;&lt;br /&gt;The above two lines are for better performance of Stunnel in our case.&lt;br /&gt;&lt;br /&gt;; Workaround for Eudora bug&lt;br /&gt;;options = DONT_INSERT_EMPTY_FRAGMENTS&lt;br /&gt;&lt;br /&gt;The above line is a bug in a specific platform, since we are running it in Linux; we commented this line, although it could be needed in some case.&lt;br /&gt;&lt;br /&gt;; Some debugging stuff useful for troubleshooting&lt;br /&gt;debug = 7&lt;br /&gt;Output = /var/log/stunnel.log&lt;br /&gt;foreground=yes&lt;br /&gt;&lt;br /&gt;The above lines are very important, Because Stunnel by default run in background mode. You will never be able to see if it is running. So better to put it in foreground, so that you can make sure that stunnel is running properly. Also the debug = 7 is very important since by default stunnel does not generate any log. You can direct him to generate log, so that you can debug your application by seeing all those log messages. The above mentioned log directory is default Linux directory where all system logs are generated.&lt;br /&gt;&lt;br /&gt;; Use it for client mode&lt;br /&gt;; client = yes&lt;br /&gt;&lt;br /&gt;In the sample configuration file, you will always find this option un-commented leading to a different architecture, since we are running Stunnel in server mode not client mode, so we will comment this line.&lt;br /&gt;&lt;br /&gt;[rtmps - https]&lt;br /&gt;TIMEOUTconnect=20&lt;br /&gt;accept = 443&lt;br /&gt;connect = 80&lt;br /&gt;TIMEOUTclose = 20&lt;br /&gt;&lt;br /&gt;And the very last lines are mentioned above. In the sample configuration file, you will never find rtmps and it is not even mentioned anywhere in Stunnel. The default file contains only https, add rtmps like it is added here. Also accept port is 443, which is the default port used for secure communication and it is open like port 80 in all corporate firewalls in general. This port is to accept the connection from flash and to get the encrypted data. The connect port is 80; this is the port where stunnel will forward the decrypted data to red5 server.&lt;br /&gt;The TIMEOUTconnect and TIMEOUTclose can be useful in some cases when the server where the data is being forwarded by Stunnel is delaying the connection. This is to make sure that connection is closed only when server is not responding at all. The value is in seconds (i.e. 20 sec.)&lt;br /&gt;&lt;br /&gt;Now in order to run your application under secure connection, you require a certificate to be created on the machine where the Stunnel is installed. The procedure for creating a certificate and the possible directory to put this certificate is described below.&lt;br /&gt;&lt;br /&gt;Use of certificate:-&lt;br /&gt;&lt;br /&gt;When an SSL client connects to an SSL server, the server presents a certificate, essentially an electronic piece of proof that machine is who it claims to be. This certificate is signed by a 'Certificate Authority' (hereafter a CA) -- usually a trusted third party like Verisign. A client will accept this certificate only if&lt;br /&gt;The certificate presented matches the private key being used by the remote end.&lt;br /&gt;The certificate has been signed correctly by the CA. The client recognizes the CA as trusted.&lt;br /&gt;&lt;br /&gt;Every stunnel server has a private key. This is contained in the pem file which stunnel uses to initialize its identity. If we notice above, we have given the reference of this pem file in the start of our configuration file under cert.&lt;br /&gt;&lt;br /&gt;This private key is put in /usr/local/ssl/certs/stunnel.pem.&lt;br /&gt;&lt;br /&gt;Note:-Under client mode we need not to have certificate in most of the cases, but if we are running it in server mode, we require a certificate. Since we are using server mode, I have generated a self certificate.&lt;br /&gt;&lt;br /&gt;To make certificate:-&lt;br /&gt;&lt;br /&gt;1: Go to /etc/stunnel directory and&lt;br /&gt;2: Run the following command:-‘&lt;br /&gt;&lt;br /&gt;openssl req -new -x509 -days 365 -nodes -config stunnel.cnf -out stunnel.pem -keyout stunnel.pem&lt;br /&gt;&lt;br /&gt;This creates a private key and self-signed certificate. More information on the options of this can be read from FAQ section of Stunnel website.&lt;br /&gt;&lt;br /&gt;While executing the command, it will ask for some questions like Country, City, Company etc., Give the answer of those and it will generate the key and self certificate.&lt;br /&gt;&lt;br /&gt;4:- Put your sample.conf file in /etc/stunnel directory where the .pem file was created earlier.&lt;br /&gt;&lt;br /&gt;5:- Start Stunnel by issuing the command –&lt;br /&gt;&lt;br /&gt;machine# stunnel stunnel.conf&lt;br /&gt;&lt;br /&gt;If you are /etc/stunnel directory otherwise complete path of configuration file-&lt;br /&gt;&lt;br /&gt;machine# stunnel /etc/stunnel/stunnel.conf&lt;br /&gt;&lt;br /&gt;The above command will start the stunnel and you can verify the log from /var/logs/stunnel.log file.&lt;br /&gt;&lt;br /&gt;Red5 server side changes:-&lt;br /&gt;&lt;br /&gt;6:- Now stunnel is up and running, we need to change the Red5 configuration to accept the connection from Stunnel.&lt;br /&gt;&lt;br /&gt;Go to red5 installation directory and search for conf folder where all red5 configuration files exist.&lt;br /&gt;&lt;br /&gt;Open red5.properties file and under rtmps.host_port property put 443. The sample file can be like below.&lt;br /&gt;&lt;br /&gt;rtmp.host_port = 0.0.0.0:1935&lt;br /&gt;rtmp.threadcount = 4&lt;br /&gt;debug_proxy.host_port = 0.0.0.0:1936&lt;br /&gt;proxy_forward.host_port = 127.0.0.1:1935&lt;br /&gt;rtmps.host_port = 127.0.0.1:443&lt;br /&gt;http.host=0.0.0.0&lt;br /&gt;http.port=5080&lt;br /&gt;rtmpt.host=0.0.0.0&lt;br /&gt;rtmpt.port=80&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Flash client side changes:-&lt;br /&gt;&lt;br /&gt;7:-Now we are done with server side, In order to run application under SSL, we need to change the client side protocol from rtmp to rtmps like below. And compile the flash client and run it on browser, a certificate will pop up, accept it and the application will run under SSL.&lt;br /&gt;&lt;br /&gt;nc.connect (“rtmps://yourip/applicationname”); //used rtmps in place of rtmp&lt;br /&gt;&lt;br /&gt;Latest on RTMPS:&lt;br /&gt;&lt;a href="http://sunil-gupta.blogspot.com/2008/05/another-good-from-red5-rtmps-support.html"&gt;Another Good From Red5 - Built-in Support For RTMPS&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To create new &lt;a href="http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html"&gt;Red5 &lt;/a&gt;application, follow my post &lt;a href="http://sunil-gupta.blogspot.com/2007/03/how-to-create-sample-application-using.html"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-7512877610412972581?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/7512877610412972581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=7512877610412972581' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/7512877610412972581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/7512877610412972581'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2007/06/secure-your-red5-applications-with.html' title='Secure your Red5 applications with Stunnel'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-2378260823502686942</id><published>2007-04-02T07:56:00.000-07:00</published><updated>2008-02-23T07:45:10.945-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Whiteboard'/><category scheme='http://www.blogger.com/atom/ns#' term='Red5'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Shared Whiteboard application in Red5</title><content type='html'>Working with &lt;a href="http://www.osflash.org/red5"&gt;Red5&lt;/a&gt; server is a fun, In the last tutorial, I have created a sample application in &lt;a href="http://www.osflash.org/red5"&gt;Red5&lt;/a&gt;. Now this time, I will try to explore the conecpt of shared objects in Red5 using an example of shared whiteboard.&lt;br /&gt;&lt;br /&gt;Creating a simple shared whiteboard application in red5 is very easy, All you need is to get the corrdinates and put them in the shared object and let shared object work for you.&lt;br /&gt;&lt;br /&gt;On Client Side:- We have a shared object say&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#3366ff;"&gt;var whiteboard_SO:SharedObject = SharedObject।getRemote("whiteboard",nc.uri,"false");&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Now when we move mouse pointer over a movie clip for drawing , we capture the xmouse and ymouse to send them to server. For Example.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#3333ff;"&gt;sample_MC.onPress = function(){&lt;br /&gt;//Send xmouse and ymouse to server along with "press" event string&lt;br /&gt;NetConnectionObj.call("somemethod", null,param1, param2,param3); //sending values&lt;br /&gt;};&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#3333ff;"&gt;sample_MC.onMouseMove = function(){&lt;br /&gt;//Send xmouse ymouse along with "move" event string&lt;br /&gt;NetConnectionObj.call("somemethod", null,param1, param2,param3); //sending values&lt;br /&gt;}&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;Now on server(java) side change the shared object with these values&lt;br /&gt;&lt;br /&gt;E.g.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#3333ff;"&gt;public void somemethod(Object[] params){&lt;br /&gt;whiteboard_SO.setAttribute("point",params[0].toString()+":"+params[1].toString()+":"+params[2].toString());&lt;br /&gt;// The above code will fire the onSync event on all connected clients.&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;Now on Client side :-&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#3333ff;"&gt;Whiteboard_SO.onSync = function(infolist){&lt;br /&gt;// Inside the change event we will get the xmouse and ymouse and press string&lt;br /&gt;//If event string is press, jump to new line(i.e. lineto(x,y))&lt;br /&gt;//If event string is move, move with drawing(i.e. moveto(x,y))&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;This way , A shared whiteboard can easily be created.&lt;br /&gt;&lt;br /&gt;To create a new &lt;a href="http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html"&gt;Red5 &lt;/a&gt;application , follow my post &lt;a href="http://sunil-gupta.blogspot.com/2007/03/how-to-create-sample-application-using.html"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Reference:-&lt;br /&gt;&lt;a href="http://www.adobe.com/devnet/flashcom/articles/whiteboard.html"&gt;Create whiteboard application with Flash communication server&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-2378260823502686942?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/2378260823502686942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=2378260823502686942' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/2378260823502686942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/2378260823502686942'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2007/04/shared-whiteboard-application-in-red5.html' title='Shared Whiteboard application in Red5'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-1208188227189157849</id><published>2007-03-13T00:00:00.000-07:00</published><updated>2008-03-12T20:22:21.499-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Whiteboard'/><category scheme='http://www.blogger.com/atom/ns#' term='Red5'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><category scheme='http://www.blogger.com/atom/ns#' term='Chat'/><title type='text'>How to create a sample application using Red5 and Flash</title><content type='html'>&lt;strong&gt;How to create a sample application using &lt;a href="http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html"&gt;Red5 &lt;/a&gt;and Flash&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 1:-&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Get a default application template from doc folder of your Red5 installation directory (e.g. for windows: - “C:\Program files\Red5\doc\templates\myapp”).&lt;br /&gt;Copy this folder into Red5\webapps\ directory.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step2:-&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Now we have a default template available for running the server side application. We will change the default configuration accordingly. Rename myapp folder to sample. This sample folder will be the name of your application. We will now change the configuration files inside sample folder. The structure of the application will be like this-&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp3.blogger.com/_jm4FARolmSo/RfZUEd-2ivI/AAAAAAAAAA8/wjM9tLNNjFw/s1600-h/red51.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5041309268632308466" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://bp3.blogger.com/_jm4FARolmSo/RfZUEd-2ivI/AAAAAAAAAA8/wjM9tLNNjFw/s320/red51.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Open the red5-web.properties file and change the contextPath to sample like below –&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#3366ff;"&gt;webapp.contextPath=/sample&lt;br /&gt;webapp.virtualHosts=localhost, 127.0.0.1&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;Open web.xml file and change the display and webAppRootKey like below–&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;&lt;em&gt;&amp;lt;/DISPLAY-NAME&amp;gt;My First sample application with Red5&amp;lt;/DISPLAY-NAME&amp;gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="color:#3366ff;"&gt;&amp;lt;context-param&amp;gt;&lt;br /&gt;&amp;lt;param-name&amp;gt;webAppRootKey&amp;lt;/param-name&amp;gt;&lt;br /&gt;&amp;lt;param-value&amp;gt;/sample&amp;lt;/param-value&amp;gt;&lt;br /&gt;&amp;lt;/context-param&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;Now open the red5-web.xml file and change the application name likes below-&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#3366ff;"&gt;&amp;lt;bean id="web.handler"&lt;br /&gt;class="org.xyz.Application"&lt;br /&gt;singleton="true" /&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;bean class="org.xyz.Application" id="web.handler" singleton="true"&gt;where org.xyz is the package structure used here. It could be replaced with actual application structure.&lt;br /&gt;lib directory will contain the jar file of our application. We will explore it later while creating an application.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step3:-&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;We are ready with the server side application configuration. Now we will create the actual application which will interact with the flash client.&lt;br /&gt;&lt;br /&gt;Open any java IDE like eclipse and create a new java project. Name it to Sample. Create following structure in the Sample project.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bp3.blogger.com/_jm4FARolmSo/RfZTbd-2iuI/AAAAAAAAAA0/kOxFnCg_IQs/s1600-h/red52.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5041308564257671906" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://bp3.blogger.com/_jm4FARolmSo/RfZTbd-2iuI/AAAAAAAAAA0/kOxFnCg_IQs/s320/red52.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;src folder will contain the application package structure org.xyz. Compiled class file will be under classes folder and lib folder will contain the jar of compiled class.&lt;br /&gt;&lt;br /&gt;Now create a build.xml file for building this project with ant tool. The sample build file will be like this-&lt;br /&gt;&lt;em&gt;&lt;span style="color:#3366ff;"&gt;&amp;lt;project name="My Sample Red5 Project" default="compile" basedir="."&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;target name="clean" description="Clean output directories"&amp;gt;&lt;br /&gt;&lt;delete dir="./classes/org"&gt;&lt;br /&gt;&amp;lt;/target&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;target name="compile" depends="clean"&amp;gt;&lt;br /&gt;&amp;lt;javac destdir="./classes" source="1.5"&amp;gt;&lt;br /&gt;&lt;src path="./src"&gt;&lt;br /&gt;&amp;lt;/javac&amp;gt;&lt;br /&gt;&amp;lt;/target&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;target name = "jar" depends ="compile"&amp;gt;&lt;br /&gt;&amp;lt;echo message ="Getting class files from classes directory"/&amp;gt;&lt;br /&gt;&amp;lt;jar destfile="./lib/app.jar" basedir="./classes"/&amp;gt;&lt;br /&gt;&amp;lt;echo message ="jar creation done"/&amp;gt;&lt;br /&gt;&amp;lt;copy file ="./lib/app.jar" tofile ="C:\Program Files\Red5\webapps\sample\WEB-INF\lib\app.jar"/&amp;gt;&lt;br /&gt;&amp;lt;echo message="jar copied to red5"/&amp;gt;&lt;br /&gt;&amp;lt;/target&amp;gt;&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;Here in “jar” target we have copied the created jar file inside our application directory under webapps folder of Red5 installation. One can manually do the copy paste.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note: -&lt;/strong&gt; &lt;em&gt;Don’t forget to add red5.jar from your Red5 installation in the CLASSPATH of eclipse so that it can find the Red5 libraries and compile the application without any errors.&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step4:-&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Now we will create our source file. Create a java file, name it to Application.java&lt;br /&gt;&lt;br /&gt;The sample application file will be like –&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Application.java&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;&lt;em&gt;package org.xyz;&lt;br /&gt;&lt;br /&gt;//log4j classes&lt;br /&gt;import org.apache.commons.logging.Log;&lt;br /&gt;import org.apache.commons.logging.LogFactory;&lt;br /&gt;&lt;br /&gt;//Red5 classes&lt;br /&gt;import org.red5.server.adapter.ApplicationAdapter;&lt;br /&gt;import org.red5.server.api.IClient;&lt;br /&gt;import org.red5.server.api.IConnection;&lt;br /&gt;import org.red5.server.api.IScope;&lt;br /&gt;&lt;br /&gt;/**This is the sample application class */&lt;br /&gt;&lt;br /&gt;public class Application extends ApplicationAdapter{&lt;br /&gt;/**Variable used for generating the log*/&lt;br /&gt;private static final Log log = LogFactory.getLog(Application.class);&lt;br /&gt;&lt;br /&gt;/**This method will execute when Red5 server will start*/&lt;br /&gt;public boolean appStart(IScope app){&lt;br /&gt;if(super.appStart(app) == false){&lt;br /&gt;return false;&lt;br /&gt;}&lt;br /&gt;log.info("Application start method of Application called");&lt;br /&gt;return true;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/**This method will execute when first client will connect to Red5 server*/&lt;br /&gt;public boolean roomStart(IScope room){&lt;br /&gt;if(super.roomStart(room) == false){&lt;br /&gt;return false;&lt;br /&gt;}&lt;br /&gt;log.info("Inside room start of Application");&lt;br /&gt;return true;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/**This method will execute everytime when a client will connect to Red5 server*/&lt;br /&gt;public boolean roomConnect(IConnection conn, Object params[]){&lt;br /&gt;if(super.roomConnect(conn, params) == false){&lt;br /&gt;return false;&lt;br /&gt;}&lt;br /&gt;log.info("Inside room connect method of Application");&lt;br /&gt;return true;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/**This method will be called when a client disconnect from the room*/&lt;br /&gt;public void roomDisconnect(IConnection conn){&lt;br /&gt;super.roomDisconnect(conn);&lt;br /&gt;log.info("Inside room disconnect method of Application");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/**This method will be called when a client will be disconnected from application*/&lt;br /&gt;public void appDisconnect(IConnection conn){&lt;br /&gt;log.info("Inside app disconnect method of Application");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/**This method will be called from the client. This method will show “Hello World!” on *the flash client side .&lt;br /&gt;*/&lt;br /&gt;public String sayHello(Object[] params){&lt;br /&gt;log.info(“I got your name:-”+params[0].toString());&lt;br /&gt;return “Hello World!” + params[0].toString();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;} ////////End of Application class&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;/span&gt;The above file was just to give a feel of how a server side code looks like.&lt;br /&gt;Read &lt;a href="http://dl.fancycode.com/red5/api/index.html"&gt;Red5 documentation&lt;/a&gt; for more details on methods in AplicationAdapter class. Here we have defined a method named sayHello, which will get user name from flash client and will append this user name to “Hello World!” and will send back to flash client.&lt;br /&gt;&lt;br /&gt;Now run the jar task of your build.xml file, this will compile your application class, will generate the desired jar and will copy it to your application directory inside Red5.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step5:-&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Now we are ready with server side application, we will start with the flash application to connect with the Red5 server.&lt;br /&gt;&lt;br /&gt;Create a new flash document –&lt;br /&gt;&lt;a href="http://bp1.blogger.com/_jm4FARolmSo/RfZQ39-2isI/AAAAAAAAAAk/3tfn7CNb3cI/s1600-h/flash.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5041305755349060290" style="MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://bp1.blogger.com/_jm4FARolmSo/RfZQ39-2isI/AAAAAAAAAAk/3tfn7CNb3cI/s320/flash.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Drag an Alert component from window—components in the library. Open the Action-Frame and write the following lines of code-&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#3366ff;"&gt;import mx.controls.Alert;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;var nc:NetConnection = new NetConnection();&lt;br /&gt;&lt;br /&gt;nc.val = this;&lt;br /&gt;nc.onStatus = function(info){&lt;br /&gt;switch(info.code){&lt;br /&gt;&lt;br /&gt;case "NetConnection.Connect.Success":&lt;br /&gt;Alert.show("Got connected with application);&lt;br /&gt;this.val.callServer();&lt;br /&gt;break;&lt;br /&gt;&lt;br /&gt;case "NetConnection.Connect.Failed":&lt;br /&gt;Alert.show(info.application);&lt;br /&gt;break;&lt;br /&gt;&lt;br /&gt;case "NetConnection.Connect.Rejected":&lt;br /&gt;Alert.show(info.application);&lt;br /&gt;break;&lt;br /&gt;&lt;br /&gt;case "NetConnection.Connect.Closed":&lt;br /&gt;Alert.show("Client Disconnected");&lt;br /&gt;break;&lt;br /&gt;}&lt;br /&gt;};&lt;br /&gt;nc.connect("rtmp://localhost/sample");&lt;br /&gt;&lt;br /&gt;function callServer(){&lt;br /&gt;var resultObj:Object = new Object();&lt;br /&gt;nc.call("sayHello", resultObj,"Your Name");&lt;br /&gt;resultObj.onResult = function(str){&lt;br /&gt;Alert.show(str); //This will display "Hello World! Your Name"&lt;br /&gt;}&lt;br /&gt;};&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;Now save the application and name it to sample.fla(user preferred)&lt;br /&gt;The above code is Action script 1 code; you can put this code in external .As file and refer it in the application. Since this is not in the scope of this tutorial, so we will follow the above code.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Finish:-&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Run your flash client and if its get successfully connect with Red5 server, it will display an alert box saying “Hello World! Your Name”&lt;br /&gt;&lt;br /&gt;With the help of above tutorial, you can extend your application to any level.&lt;br /&gt;&lt;br /&gt;For more information on Red5 related documents follow the link provided below-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://osflash.org/red5"&gt;Red5- Open source flash server&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.joachim-bauch.de/tutorials/red5/HOWTO-NewApplications.txt"&gt;Red5-How to create new applications – Joachim Baunch&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.joachim-bauch.de/tutorials/red5/MigrationGuide.txt"&gt;Migration Guide from FCS/FMS to Red5&lt;/a&gt;&lt;br /&gt;&lt;a href="http://jwamicha.wordpress.com/2007/01/29/create-a-new-java-red5-application/"&gt;Red5-How to create new application&lt;/a&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-1208188227189157849?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/1208188227189157849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=1208188227189157849' title='87 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/1208188227189157849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/1208188227189157849'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2007/03/how-to-create-sample-application-using.html' title='How to create a sample application using Red5 and Flash'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_jm4FARolmSo/RfZUEd-2ivI/AAAAAAAAAA8/wjM9tLNNjFw/s72-c/red51.gif' height='72' width='72'/><thr:total>87</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-7141068942289413308</id><published>2007-02-19T06:44:00.000-08:00</published><updated>2008-05-12T06:35:14.361-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows vista'/><category scheme='http://www.blogger.com/atom/ns#' term='gadget'/><category scheme='http://www.blogger.com/atom/ns#' term='yahoo'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Gadget Programming</title><content type='html'>&lt;p&gt;&lt;strong&gt;Desktop Gadget&lt;/strong&gt; are small and light weighted application that can run on your desktop. The latest version of windows(Vista) provide the &lt;a href="http://www.microsoft.com/windows/products/windowsvista/features/details/sidebargadgets.mspx"&gt;sidebar&lt;/a&gt; that contain &lt;a href="http://microsoftgadgets.com/"&gt;gadgets&lt;/a&gt;. &lt;a href="http://en.wikipedia.org/wiki/Desktop_Gadgets"&gt;Desktop gadget&lt;/a&gt; can also be created by the &lt;a href="http://desktop.google.com/dev/gadgetapi.html"&gt;Google api&lt;/a&gt;, that works with Google desktop. &lt;a href="http://widgets.yahoo.com/workshop/"&gt;Yahoo widget api&lt;/a&gt; can also be used to create desktop widget.&lt;/p&gt;&lt;p&gt;Recently, I got chance to work with gadgets, Basic implementation of google gadget was simple after reading the tutorial they have provided, but our requirement was slightly different. We were trying to embed the flash rich interafce in gadget, After a one day hard work , I was able to find the solution for this problem, Now we have a google gadget that have &lt;a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash&amp;amp;%3BLang=German"&gt;flash&lt;/a&gt; embed in it.&lt;/p&gt;&lt;p&gt;Now the next big thing in our basket is to create vista gadget having flash embed in it. &lt;/p&gt;&lt;br /&gt;&lt;strong&gt;Related Posts&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://feedshub.blogspot.com/2008/03/cool-widgets-for-your-blog-or-website.html"&gt;Cool Widgets For Your Blog Or Website&lt;/a&gt;&lt;br /&gt;&lt;a href="http://feedshub.blogspot.com/2008/04/turn-your-flash-program-into-desktop.html"&gt;Turn Your Flash program Into A Desktop Application Using Yahoo! Widget Engine&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-7141068942289413308?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/7141068942289413308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=7141068942289413308' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/7141068942289413308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/7141068942289413308'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2007/02/gadget-programming.html' title='Gadget Programming'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-3441063947617646423</id><published>2007-02-01T00:57:00.000-08:00</published><updated>2008-02-17T04:29:57.828-08:00</updated><title type='text'>Life is very long</title><content type='html'>&lt;strong&gt;World is very small and life is very long, Hope to meet again.&lt;/strong&gt;&lt;br /&gt;People come into our life, makes life beautiful for some time and just go away. How much selfish , they are. They never think a bit when they leave us and how much selfish , we are. We always expect him to be in our life forever.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-3441063947617646423?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/3441063947617646423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=3441063947617646423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/3441063947617646423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/3441063947617646423'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2007/02/life-is-very-long.html' title='Life is very long'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-116834540977077301</id><published>2007-01-09T03:41:00.000-08:00</published><updated>2008-02-17T04:24:41.409-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Red5'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Red5 - Open Source Flash Server</title><content type='html'>&lt;a href="http://osflash.org/red5"&gt;&lt;strong&gt;Red5&lt;/strong&gt;&lt;/a&gt; is an open source Flash server written in Java. With red5 , you are able to stream audio/video( flash video and mp3 ), record streams.&lt;br /&gt;Currently it's under development and Red5 team is working very smartly to add new features. It's an alternate of Flash Communication server, which is not open source. With red5, You are able to use the Shared Objects, can publish live streams and the concept of Remoting.&lt;br /&gt;&lt;br /&gt;Red5 uses the &lt;strong&gt;RTMP&lt;/strong&gt;( Real time messaging protocol), developed by &lt;a href="http://www.adobe.com"&gt;Macromedia &lt;/a&gt;to stream audio and video over web.&lt;br /&gt;&lt;br /&gt;    One can develop very killer Audio/Video conferencing application using Red5. I have explored the Red5 api, If we ignore some minor bugs in the system,Red5 is very impressive.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-116834540977077301?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/116834540977077301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=116834540977077301' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/116834540977077301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/116834540977077301'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2007/01/red5-open-source-flash-server.html' title='Red5 - Open Source Flash Server'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-116762408971194954</id><published>2006-12-31T19:56:00.000-08:00</published><updated>2006-12-31T20:05:20.510-08:00</updated><title type='text'>~~~~HAPPY NEW YEAR~~~~</title><content type='html'>Last year was pretty good for me. Life is moving in full swing. So i am very excited about the new year.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-116762408971194954?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/116762408971194954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=116762408971194954' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/116762408971194954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/116762408971194954'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2006/12/happy-new-year.html' title='~~~~HAPPY NEW YEAR~~~~'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-116359997795152673</id><published>2006-11-15T05:42:00.000-08:00</published><updated>2008-07-23T18:33:12.122-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Khojguru'/><title type='text'>Khojguru: New and unique portal for all our needs</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/3796/3045/1600/khojguru.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/3796/3045/320/khojguru.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.khojguru.com/"&gt;Khojguru&lt;/a&gt; : Isko sab pata hai!&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Before khojguru ,In our busy life, It's was not possible to explore our city. We were not aware of big malls and small shops, we do not know where to find a good restaurant to order some delicious food or a place where we can repair items( &lt;a href="http://www.bestlaptopz.com/"&gt;best laptop&lt;/a&gt;, fridge etc.) Where to purchase items for our daily needs? &lt;strong&gt;&lt;a href="http://www.khojguru.com/"&gt;Khojguru&lt;/a&gt;&lt;/strong&gt; is the solution for all above problems. &lt;br /&gt;&lt;br /&gt;     Khojguru is a very new and first of it's kind search engine which searches for- &lt;br /&gt;&lt;br /&gt;1:The restaurants that provides home delivery.&lt;br /&gt;2:Fruits Vegetables home delivery&lt;br /&gt;3:Cooking range for your wife&lt;br /&gt;4:Locate from big Malls to small kirana store&lt;br /&gt;&lt;br /&gt;and if above is not enough, you can search for "plumber", "computers", or any things that we might need in our daily life. This is really cool. I need not to explore my city using my car, I will use khojguru and will save my petrol. &lt;br /&gt;&lt;br /&gt;     I found the interface of Khojguru very clean and easy to use.Since it's in beta, Khojguru team is working hard to make it more useful. The only problem with Khojguru is that right now it covers  only Gurgaon, but soon they are planning to extend it some other cities as well.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What are you people thinking?, just open khojguru.com and start viewing your city from the sharp eyes of khojguru, kyonki isko sab pata hai.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;If it sounds great, just check the &lt;a href="http://www.khojguru.com/"&gt;khojguru&lt;/a&gt; site. You can also check the khojguru &lt;a href="http://blog.khojguru.com/"&gt;blog&lt;/a&gt; or you can visit the &lt;a href="http://www.jkg.in/"&gt;Jayant&lt;/a&gt; blog to know more about khojguru.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-116359997795152673?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/116359997795152673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=116359997795152673' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/116359997795152673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/116359997795152673'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2006/11/khojguru-new-and-unique-portal-for-all.html' title='Khojguru: New and unique portal for all our needs'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-116038977821459545</id><published>2006-10-09T03:26:00.000-07:00</published><updated>2008-05-12T06:38:29.877-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Slideshare'/><title type='text'>Slideshare- The simple way to share your presentations</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/3796/3045/1600/slidesharelogo.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/3796/3045/320/slidesharelogo.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here's the solution for sharing your powerpoint presentations(ppt, pps and odp).Slideshare, A very new concept from &lt;a href="http://uzanto.com"&gt;Uzanto&lt;/a&gt; just hit the internet. Everyone is talking about this cool social sharing product.&lt;br /&gt;&lt;br /&gt;&lt;object type="application/x-shockwave-flash" data="https://s3.amazonaws.com:443/slideshare/ssplayer.swf?id=4879&amp;doc=slideshare-presentation-20132" width="425" height="348"&gt;&lt;param name="movie" value="https://s3.amazonaws.com:443/slideshare/ssplayer.swf?id=4879&amp;doc=slideshare-presentation-20132" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can check out this powerpoint(ppt, pps and open-office) sharing website.&lt;br /&gt;&lt;a href="http://www.slideshare.net"&gt;http://www.slideshare.net&lt;/a&gt;&lt;br /&gt;Or, You can check their blog at:- &lt;a href="http://blog.slideshare.net"&gt;http://blog.slideshare.net&lt;/a&gt;.&lt;br /&gt;You can get the review of slideshare by Techcrunch &lt;a href="http://www.techcrunch.com/2006/10/04/introducing-slideshare-power-point-youtube/"&gt;here&lt;/a&gt;.What &lt;a href="http://www.jonathanboutelle.com/mt/archives/2006/10/meet_slideshare.html"&gt;jon&lt;/a&gt;,&lt;a href="http://www.rashmisinha.com/archives/06_10/slideshare%20techcrunch.html"&gt;rashmi&lt;/a&gt; and &lt;a href="http://www.amitranjan.com/2006/10/04/slidesharethe-youtube-of-powerpoint/"&gt;amit&lt;/a&gt; say about slideshare.&lt;br /&gt;&lt;br /&gt;To log into the system, You need an invitation. You can request an invitation from the website or you can get invitation from an existing slideshare user. &lt;br /&gt;&lt;br /&gt;Or you can send mail to jon AT UZANTO.com to request an invite.&lt;br /&gt;&lt;br /&gt;Enjoy with the YouTube of powerpoint.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Related Post&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://feedshub.blogspot.com/2008/04/share-documentspdf-wordppt-jpeg-more.html"&gt;Share Documents(PDF, WORD,PPT, JPEG, ....More) Online With Scribd&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-116038977821459545?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/116038977821459545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=116038977821459545' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/116038977821459545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/116038977821459545'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2006/10/slideshare-simple-way-to-share-your.html' title='Slideshare- The simple way to share your presentations'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-115944242744981360</id><published>2006-09-28T04:18:00.000-07:00</published><updated>2008-02-17T04:27:18.267-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Java Graphics and Java 2D</title><content type='html'>&lt;object type="application/x-shockwave-flash" data="https://s3.amazonaws.com:443/slideshare/ssplayer.swf?id=3506&amp;doc=java-graphics-and-2d-22562" width="425" height="348"&gt;&lt;param name="movie" value="https://s3.amazonaws.com:443/slideshare/ssplayer.swf?id=3506&amp;doc=java-graphics-and-2d-22562" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;This is a very good tutorial of java graphics and java 2D.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-115944242744981360?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/115944242744981360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=115944242744981360' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/115944242744981360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/115944242744981360'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2006/09/java-graphics-and-java-2d_28.html' title='Java Graphics and Java 2D'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-115737759476560824</id><published>2006-09-04T06:28:00.000-07:00</published><updated>2008-03-06T04:01:13.445-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='MVC'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby on Rails'/><title type='text'>Ruby on Rails</title><content type='html'>&lt;a href="http://www.rubyonrails.org/"&gt;Ruby on Rails&lt;/a&gt;, An open source web application framework, Which follows the MVC( Model-View-Controller) architecture, Written in a langauge called &lt;a href="http://www.ruby-lang.org/en/"&gt;Ruby&lt;/a&gt;.  Ruby is the interpreted scripting language for quick and easy object-oriented programming. It is easy, extensible and portable.&lt;br /&gt;         Ruby on Rails  framework is known for it's simplicity, less code and minimum configuration. The design of Rails was driven by some key concepts: DRY and convention over configuration. DRY stands for 'Don't Repeat Yourself ' means all pieces of knowledge should be in one place. Rails does this with the help of ruby. Very less duplication in rails application can be found.&lt;br /&gt;Convention over configuration means if you follow the conventions then you can write a Rails application using less code than a typical Java web application uses in XML configuration.&lt;br /&gt;      Rails have some specific characteristics.&lt;br /&gt;&lt;br /&gt;1. Web server: Any server that implements CGI, Rails is capable of running on it.&lt;br /&gt;               Built-in server that comes with rails is WEBrick is easy to use.&lt;br /&gt;&lt;br /&gt;2. Databases: Rails supports these many databases&lt;br /&gt;&lt;br /&gt;Oracle&lt;br /&gt;MySQL&lt;br /&gt;PostgreSQL&lt;br /&gt;SQLite&lt;br /&gt;SQL Server&lt;br /&gt;DB2&lt;br /&gt;&lt;br /&gt;3. Unit Testing: Rails comes with a complete unit testing framework built-in it.&lt;br /&gt;&lt;br /&gt;4. Active Record: Active Record does the automatic&lt;br /&gt;   mapping of your database tables to your runtime model objects.Active Record &lt;br /&gt;   automatically maps tables to classes, rows to objects,and columns to object&lt;br /&gt;   attributes.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-115737759476560824?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/115737759476560824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=115737759476560824' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/115737759476560824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/115737759476560824'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2006/09/ruby-on-rails.html' title='Ruby on Rails'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-115407510568741615</id><published>2006-07-28T00:50:00.000-07:00</published><updated>2008-02-17T04:29:21.252-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Certification'/><title type='text'>Experience vs. Certification</title><content type='html'>This perticular question have been discussed so many times everywhere . so i just thought of putting my own views on it. Some give weightage to certification(&lt;a href="http://www.sun.com/training/certification/java/index.html"&gt;SCJP&lt;/a&gt;, &lt;a href="http://www.microsoft.com/learning/mcp/mcse/"&gt;MCSE&lt;/a&gt;..) and some give weightage to experience. What i think is that certification is not as much important as real time experience. The only advantage having certifications is that the hiring managers will pick those resumes more than the resume of a non-certifieds. But again this advantage is limited to the freshers. It does not apply to experienced professionals.&lt;br /&gt;If a person is having real time experience , It's much much better than a perosn having only certification, Because at the end work is more important than just knowledge. What i would prefer is to go for some real experience and after some time along with your work, you can go for certifications.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-115407510568741615?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/115407510568741615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=115407510568741615' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/115407510568741615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/115407510568741615'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2006/07/experience-vs-certification.html' title='Experience vs. Certification'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-115331104317431283</id><published>2006-07-19T04:55:00.000-07:00</published><updated>2008-02-17T04:22:11.670-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Applet'/><category scheme='http://www.blogger.com/atom/ns#' term='Unit Testing'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='Watir'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Watir- An automated test tool</title><content type='html'>&lt;a href="http://wtr.rubyforge.org/"&gt;&lt;strong&gt;"Watir"&lt;/strong&gt;&lt;/a&gt; stands for Web Application Testing in&lt;strong&gt; &lt;/strong&gt;&lt;a href="http://rubyforge.org/frs/?group_id=167"&gt;&lt;strong&gt;Ruby&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt; Watir is a free open source functional testing tool for automated browser based testing of web applications. It does everything from clicking a link to filling a form.&lt;br /&gt;Watir uses Ruby to work with internet explorer in windows. Watir does not work with Active X plugin components, Java applets, macromedia flash. To start with Watir, All you need is the knowledge of &lt;a href="http://www.w3.org/MarkUp/"&gt;HTML&lt;/a&gt;, little programming exposure and basic concepts of Ruby. Watir is very powerful and very easy to use.&lt;br /&gt;&lt;br /&gt;A sample test file which i made for checking mails from rediff website.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;#----------------------------------------------------------------------------------#&lt;br /&gt;Simple Rediffmail test written by Sunil Gupta 7/20/06&lt;br /&gt;# 1) log on to mail account&lt;br /&gt;# 2) check new mails&lt;br /&gt;# 3) Click on a mail link&lt;br /&gt;# 4) forward this mail&lt;br /&gt;# 5) Logout from mail&lt;br /&gt;#------------------------------------------------------------------------------------#&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;require&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;'watir'&lt;/span&gt; &lt;span style="color:#006600;"&gt;# the watir controller&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;# set a variable&lt;/span&gt;&lt;br /&gt;test_site = &lt;span style="color:#cc33cc;"&gt;'http://www.rediffmail.com/cgi-bin/login.cgi'&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#006600;"&gt;# open the IE browser &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#333333;"&gt;&lt;span style="color:#000000;"&gt;ie = Watir::IE.new&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#006600;"&gt;# print some comments&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;puts&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;"## Beginning of test: Rediffmail"&lt;/span&gt;&lt;br /&gt;ie.goto(test_site)&lt;br /&gt;puts " &lt;span style="color:#cc33cc;"&gt;Action: entered&lt;/span&gt; " + test_site + " &lt;span style="color:#cc33cc;"&gt;in the address bar."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;puts&lt;/span&gt; "&lt;span style="color:#993399;"&gt;Step 2: Logon:"&lt;/span&gt; ie.text_field(:name, "&lt;span style="color:#cc33cc;"&gt;login&lt;/span&gt;").set("&lt;span style="color:#cc33cc;"&gt;admin&lt;/span&gt;")&lt;br /&gt;ie.text_field(:name, "&lt;span style="color:#cc33cc;"&gt;passwd&lt;/span&gt;").set("&lt;span style="color:#cc33cc;"&gt;password&lt;/span&gt;")&lt;br /&gt;ie.button(:name, "proceed").click&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;puts&lt;/span&gt; "&lt;span style="color:#cc33cc;"&gt;Logged on as admin&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;puts &lt;/span&gt;"&lt;span style="color:#cc33cc;"&gt;Step 3: Check new mails&lt;/span&gt;" ie.link(:text, "&lt;span style="color:#cc33cc;"&gt;new mails&lt;/span&gt;").click&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;sleep&lt;/span&gt; 6.0&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;puts&lt;/span&gt; "&lt;span style="color:#cc33cc;"&gt;Step 4: Open a mail&lt;/span&gt;"&lt;br /&gt;ie.link(:text, "&lt;span style="color:#cc33cc;"&gt;NIIT&lt;/span&gt;").click&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;sleep&lt;/span&gt; 3.0&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;puts&lt;/span&gt; "&lt;span style="color:#cc33cc;"&gt;Step 5: Forward this mail&lt;/span&gt;"&lt;br /&gt;ie.button(:value, "&lt;span style="color:#cc33cc;"&gt;Forward&lt;/span&gt;").click&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;sleep&lt;/span&gt; 2.0&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;puts&lt;/span&gt; "&lt;span style="color:#cc33cc;"&gt;Step 6: Enter email address&lt;/span&gt;"&lt;br /&gt;ie.text_field(:name, "&lt;span style="color:#cc33cc;"&gt;To&lt;/span&gt;").set("&lt;a href="mailto:admin@yahoo.com"&gt;&lt;span style="color:#cc33cc;"&gt;admin@yahoo.com&lt;/span&gt;&lt;/a&gt;")&lt;br /&gt;ie.button(:value, "&lt;span style="color:#cc33cc;"&gt;Send&lt;/span&gt;").click&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;puts &lt;/span&gt;"&lt;span style="color:#cc33cc;"&gt;Step 7: Logout&lt;/span&gt;"&lt;br /&gt;ie.link(:text, "&lt;span style="color:#cc33cc;"&gt;Logout&lt;/span&gt;").click&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;puts&lt;/span&gt; "&lt;span style="color:#cc33cc;"&gt;Expected Result: &lt;/span&gt;"&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;if&lt;/span&gt; ie.contains_text("admin")&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;   puts&lt;/span&gt; "&lt;span style="color:#cc33cc;"&gt;Test Passed. Found the test string: 'admin'. Actual results match expected result&lt;/span&gt;"&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;else&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;   puts&lt;/span&gt; "&lt;span style="color:#cc33cc;"&gt;Test Failed! Could not find: 'admin'&lt;/span&gt;"&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;end&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;puts&lt;/span&gt; " "&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;puts&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;"## End of test: Rediffmail&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;&lt;span style="color:#006600;"&gt;# -end of simple Rediffmail test&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;To know more about Watir, You can check their home page. &lt;a href="http://wtr.rubyforge.org/"&gt;Watir- An automated test tool&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-115331104317431283?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/115331104317431283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=115331104317431283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/115331104317431283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/115331104317431283'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2006/07/watir-automated-test-tool.html' title='Watir- An automated test tool'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-115270849488587770</id><published>2006-07-12T05:17:00.000-07:00</published><updated>2008-02-17T04:21:08.512-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Applet'/><category scheme='http://www.blogger.com/atom/ns#' term='RIA'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Rich Internet Applications ( RIA)</title><content type='html'>&lt;a href="http://www.adobe.com/resources/business/rich_internet_apps/"&gt;Rich Internet Applications ( RIA) &lt;/a&gt;are those web applications that have the features and functionality of desktop applications. Rich internet applications are similer to normal web applications in the sense that&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Rich internet application run in a web browser. It does not require the software installation.&lt;/li&gt;&lt;li&gt;Rich internet application run in sandbox&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;There are some organizations which are promoting the term RIA , One of them is Macromedia( formally&lt;a href="http://www.adobe.com/"&gt; Adobe&lt;/a&gt; ), Macromedia is the orgaization who introduced the term RIA. &lt;/p&gt;&lt;p&gt;Compared to normal web applications having &lt;a href="http://en.wikipedia.org/wiki/Client-server"&gt;client-server&lt;/a&gt; architecture, Rich internet applications have benifit over those. In the normal web application , All the processing take place on the server side and client is only used to display static text. For every task, data need to be send to server, server should process it and send back the result to the client lead to page reloading. Rich internet applications  uses client side technology for executing instructions locally on client side and hence improve the performence.&lt;/p&gt;&lt;p&gt;What makes it Rich internet applications is to have rich features like drag &amp; drop , slider to change data and more.  There are some terms which are used under the rich internet applications. These are &lt;a href="http://en.wikipedia.org/wiki/Macromedia_Flash"&gt;Flash&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/AJAX"&gt;AJAX&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Cascading_Style_Sheets"&gt;CSS&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/workshop/components/activex/intro.asp"&gt;ActiveX controls&lt;/a&gt;, &lt;a href="http://java.sun.com/applets/"&gt;Java Applets&lt;/a&gt;, &lt;a href="http://java.sun.com/products/javawebstart/"&gt;Java applications using java webstart&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/XHTML"&gt;XHTML&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;The only problem with rich internet applications is that they run on the sandox, so limited system resources can be accessed.  Since Java script is some time required, if &lt;a href="http://en.wikipedia.org/wiki/JavaScript"&gt;java script &lt;/a&gt;is disabled, then it may be problem running rich internet application.&lt;/p&gt;&lt;p&gt;The use of rich internet applications is increasing becuase it gives a feel of desktop applications in to a web application.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-115270849488587770?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/115270849488587770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=115270849488587770' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/115270849488587770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/115270849488587770'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2006/07/rich-internet-applications-ria.html' title='Rich Internet Applications ( RIA)'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-115148292249296678</id><published>2006-06-28T00:53:00.000-07:00</published><updated>2008-02-17T04:20:14.219-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Webyantra'/><title type='text'>Webyantra</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/3796/3045/1600/webyantra.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/3796/3045/320/webyantra.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://webyantra.net"&gt;Webyantra&lt;/a&gt; is a tech blog for profiling indian web startups. At the time of writing this, Webyantra has already been launched. Webyantra is the first indian tech blog which is talking about web products and services. &lt;a href="http://www.amitranjan.com/"&gt;Amit Ranjan&lt;/a&gt; from &lt;a href="http://www.uzanto.com"&gt;Uzanto &lt;/a&gt;india has launched the webyantra.&lt;br /&gt;Find out what my colleagues &lt;a href="http://www.amitranjan.com/2006/06/20/webyantra-profiling-indian-web-products-internet-services/"&gt;Amit&lt;/a&gt;, &lt;a href="http://www.kapilmohan.com/2006/06/20/amit-launches-webyantra/"&gt;kapil&lt;/a&gt; and &lt;a href="http://www.kamalmeet.com/wordpress/2006/06/23/webyantra-a-yantra-talking-about-indian-innovations/"&gt;Kamal&lt;/a&gt; are saying about webyantra.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-115148292249296678?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/115148292249296678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=115148292249296678' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/115148292249296678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/115148292249296678'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2006/06/webyantra.html' title='Webyantra'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-115087129703231161</id><published>2006-06-20T23:15:00.000-07:00</published><updated>2008-02-17T04:19:37.914-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Applet'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='Swing'/><title type='text'>Some useful links for java programmers</title><content type='html'>&lt;ol&gt;&lt;li&gt;&lt;a href="http://java.sun.com/j2se/1.5.0/docs/api/"&gt;Sun Java Tutorial&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf"&gt;About Generics&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://72.14.209.104/search?q=cache:2npiGoGFEuIJ:www.brendonwilson.com/resources/projects/signed-java/JavaAppletSigningGuide.doc+applet+%2B+sign&amp;hl=en&amp;amp;amp;amp;amp;amp;ct=clnk&amp;amp;cd=5"&gt;Java Applet Signing Guide&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www-personal.umich.edu/~lsiden/tutorials/signed-applet/signed-applet.html"&gt;Signed Applet Tutorial&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://java.sun.com/docs/books/tutorial/jdbc/index.html"&gt;Sun JDBC Tutorial&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://java.sun.com/docs/books/tutorial/rmi/index.html"&gt;Sun RMI Tutorial&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://java.sun.com/docs/books/tutorial/uiswing/"&gt;Sun JFC/Swing Tutorial&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://java.sun.com/j2se/1.5.0/docs/api/index.html"&gt;Sun Java 1.5 Documentation&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.mindview.net/Books/TIJ/"&gt;Thinking in java, 3rd edition, Final version&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://download.com.com/3000-2415-6903077.html"&gt;330 Java Tips&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.scism.sbu.ac.uk/jfl/jibook/jicontents.html"&gt;A Java GUI programmer's Primer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://javafaq.nu/java/free-swing-book/index.shtml"&gt;Free Java Swing Book&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-115087129703231161?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/115087129703231161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=115087129703231161' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/115087129703231161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/115087129703231161'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2006/06/some-useful-links-for-java-programmers.html' title='Some useful links for java programmers'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-115043540018528941</id><published>2006-06-15T22:11:00.000-07:00</published><updated>2008-06-24T19:54:04.251-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='javaranch'/><title type='text'>Best Java forum on Net</title><content type='html'>When we search for java forums on internet, we get so many forums, but there is one forum which is best among all other java forums including &lt;a href="http://www.sun.com"&gt;SUN&lt;/a&gt; java forum. Yes it's true, better than the sun java forum. &lt;br /&gt;&lt;br /&gt;It's &lt;a href="http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi"&gt;JavaRanch Big Moose Saloon&lt;/a&gt;.  Last year when i explored this forum, I found this forum really very great. What makes it different from other java forums? The answer of this question can be found easily when some one explores this forum. This is the best place for preparation of SUN certifications (SCJP, SCJD, SCJA, SCWCD, SCBCD, SCMAD, SCEA, SCDJWS).&lt;br /&gt;&lt;br /&gt;Here is what they say about this forum-&lt;blockquote&gt;These discussion forums are the heart and soul of our Java community.&lt;br /&gt;&lt;br /&gt;Our bartenders keep the peace, and folks are pretty friendly anyways, so don't be shy!&lt;br /&gt;&lt;/blockquote&gt;This forum is moderated, so you will not find any spam posting there&lt;br /&gt;&lt;br /&gt;&lt;a href="http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_jm4FARolmSo/SGGxGd2DMeI/AAAAAAAAHdU/OMIEghBJUZg/s400/javaranch.JPG" border="0" alt="saloon.javaranch.com" title = "saloon.javaranch.com" id="BLOGGER_PHOTO_ID_5215644568120406498" /&gt;&lt;/a&gt;&lt;br /&gt;Other than Java, javaranch forum has an interesting and my favorite section called "Meaningless Drivel" where you can talk about stuff that has nothing to do with Java.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-115043540018528941?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/115043540018528941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=115043540018528941' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/115043540018528941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/115043540018528941'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2006/06/best-java-forum-on-net.html' title='Best Java forum on Net'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_jm4FARolmSo/SGGxGd2DMeI/AAAAAAAAHdU/OMIEghBJUZg/s72-c/javaranch.JPG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-114961383098543115</id><published>2006-06-06T10:10:00.000-07:00</published><updated>2008-02-17T04:17:40.473-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='MVC'/><category scheme='http://www.blogger.com/atom/ns#' term='Swing'/><title type='text'>Java Swing interview preparation</title><content type='html'>Swing, The library from Java to create rich desktop applications. What most of the companies ask during interview on swing ?.&lt;br /&gt;Here are some points to be noticed by all swing programmer who is preparing for an interview.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;MVC Framework and how it works with Swing&lt;br /&gt;&lt;li&gt;All JTable related question like Table Model, Table cell renderer, Table header etc.&lt;br /&gt;&lt;li&gt;All JTree related questions like Tree Model, Tree events&lt;br /&gt;&lt;li&gt;Questions related to Event delegation Model&lt;br /&gt;&lt;li&gt;Difference between Swing and AWT&lt;br /&gt;&lt;li&gt;Layout Manager( Most favourite is GridBagLayout)&lt;br /&gt;&lt;br /&gt;These are some topics , if one can cover very well, he can easliy crack any swing interview.&lt;br /&gt;Layout manager is the topic you will sure get questions in interview. The one that is the favourite among interviewer is GridBagLayout, Because a normal swing programmer always avoid it because of it's complexity, But once you get into it. It will not be hard any more.&lt;br /&gt;Difference between Swing and Awt is not a big topic to cover. Just some points need to remember. Swing is Light weight and Awt is heavy weight. If you give this answer, You need to explain what is heavy weight and what is light weight.&lt;br /&gt;JTable, It's very important component from the point of view of interview. JTable has lot's of things to know like creating your own model to give data to the JTable. Use a check box in a column in JTable.&lt;br /&gt;MVC( Model-View-Controller) framework, Not exactlly work on Swing components, but an alteration of this works with Swing. We call it Model- delegate . Where delegate is the combination of view and controller. Interviewer always ask questions about MVC. How this works with components from JButton to JTree.&lt;br /&gt;&lt;br /&gt;For sure sucess in swing interview, these topics should be well prepared.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-114961383098543115?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/114961383098543115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=114961383098543115' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/114961383098543115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/114961383098543115'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2006/06/java-swing-interview-preparation_06.html' title='Java Swing interview preparation'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-114927453023664814</id><published>2006-06-02T11:54:00.000-07:00</published><updated>2008-05-12T06:46:25.553-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Adsense'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Google AdSense</title><content type='html'>&lt;strong&gt;The best and honest way to earn money on Net&lt;/strong&gt;&lt;br&gt;&lt;br /&gt;&lt;br /&gt;The adsense from &lt;a href="http://www.google.com"&gt;Google&lt;/a&gt;, The internet giant, now can be seen on every other website. More and more websites are making money from it. It's also very popular among the blogger. Every blogger now adding adsense to his website.&lt;br /&gt;&lt;br /&gt;Some points to be noticed, when you are using Google adsense on your website.&lt;br /&gt;&lt;br /&gt;&lt;li&gt; Never click on the ad your own blogs/website.&lt;br /&gt;&lt;li&gt; Never motivate any one to click on the ad on your website, Google take care of all invalid clicks on one's website.&lt;br /&gt;&lt;li&gt;Do not run any automated script that tries to hit the ads on your website.&lt;br /&gt;&lt;br /&gt;If you want to earn money from Google adSense, The best way is to increase your website traffic. As more and more unique visitior will visit to your website, your chances of clicking on ads will increase. &lt;br /&gt;   There are many ways , you can find on net to increase the traffic on your website. Some of them are Link Exchange, Banner Exhnage, Pay per Click and search Engine submission. You will find many websites showing in details how to earn money from Google adSense.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Related Posts&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://feedshub.blogspot.com/2008/04/google-adsense-ad-review-center.html"&gt;Google Adsense: Ad Review Center Available To All Publishers&lt;/a&gt;&lt;br /&gt;&lt;a href="http://feedshub.blogspot.com/2008/04/show-me-ads-new-and-updated-text-ad.html"&gt;Show Me The Ads- New And Updated Text Ad Format From Google&lt;/a&gt;&lt;br /&gt;&lt;a href="http://feedshub.blogspot.com/2008/04/yahoo-and-google-introduced-search.html"&gt;Yahoo And Google Introduced Search Advertising To Limited U.S.Test&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-114927453023664814?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/114927453023664814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=114927453023664814' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/114927453023664814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/114927453023664814'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2006/06/google-adsense.html' title='Google AdSense'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-114900408637518040</id><published>2006-05-30T07:39:00.000-07:00</published><updated>2008-02-17T04:16:07.420-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><title type='text'>Introduction to Flex Data Services</title><content type='html'>&lt;a href="http://www.adobe.com/products/flex/"&gt;Flex&lt;/a&gt;,a server component to create rich presentation layers for internet applications. This article assumes that you have basic knowledge of flex which includes MXML, ActionScript, MXML class library, RunTime services and Flex compiler. &lt;br /&gt;    Here i will explore the Flex data services . Flex data service is an object that you insert in MXML file. This object communicates with the business layer. This object is used to send and receive data from web services , Java remote objects and HTTP URL's. &lt;br /&gt; Flex is a presentation layer technology and hence can not communicate with database directly. For this flex work with business layer to get the data. &lt;br /&gt; The Flex data service architecture can be viewed as a combination of three services.&lt;br /&gt;&lt;li&gt;RPC Services&lt;br /&gt;&lt;li&gt;Flex data service&lt;br /&gt;&lt;li&gt;Flex Message service&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Flex Message service&lt;/strong&gt; : Flex message service is a combination&lt;br /&gt;                                        of client side API and message service&lt;br /&gt;running on server.&lt;br /&gt;The managment of destinations is handled by message service and for publishing and subscribing to these destination , the client side API allow flex clients.&lt;br /&gt;Message service is responsible for routing the message from a publisher to a destination where the subscriber are subscribed.&lt;br /&gt;&lt;br /&gt;The steps for sending a message to destination:-&lt;br /&gt;&lt;br /&gt;1: Create a producer to publish message to a specific destination.&lt;br /&gt;  &lt;I&gt;          &amp;lt;mx:Producer id = "pdoducer" destination ="Topic"&amp;gt; &lt;/I&gt;&lt;br /&gt;&lt;br /&gt;2: Now we need to create a message and publish it.&lt;br /&gt;&lt;font color ="blue"&gt;&lt;br /&gt;         private function sendMessage():Void{&lt;br /&gt;              var message:AsyncMessage = new AsyncMessage();&lt;br /&gt;              message.body.topicID = topicID.text;&lt;br /&gt;              message.body.tMessage = topicMessage.text;&lt;br /&gt;              producer.send(message);&lt;br /&gt;         }&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;Now the steps for subsriber to subscribe a destination:-&lt;br /&gt;&lt;br /&gt;1:     &lt;I&gt;    &amp;lt;mx:Consumer id="consumer" destination ="Topic" &lt;br /&gt;           message = "mHandler(event)"&amp;gt; &lt;/I&gt;&lt;br /&gt;&lt;br /&gt;and the definition of mHandler &lt;br /&gt;&lt;font color ="blue"&gt;&lt;br /&gt;         private function mHandler(event:MessageEvent){&lt;br /&gt;             var mBody:Object = event.message.body;&lt;br /&gt;             myTopic.text = mBody.topicID+":"mBody.tMessage;&lt;br /&gt;         }&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;The destination we were dealing above are configured at the server side in a XML configuration file( flex-message-service.xml ) . This xml files contains the information of destinations. The structure of the xml file is.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;destination id="Topic"&amp;gt;&lt;br /&gt;   &amp;lt;properties&amp;gt;&lt;br /&gt;       &amp;lt;network&amp;gt;&lt;br /&gt;           &amp;lt;subscriber-timeout&amp;gt;0&amp;lt;/subscriber-timeout&amp;gt;&lt;br /&gt;       &amp;lt;/network&amp;gt;&lt;br /&gt;       &amp;lt;server&amp;gt;&lt;br /&gt;           &amp;lt;max-cache-size&amp;gt;1000&amp;lt;/max-cache-size&amp;gt;&lt;br /&gt;           &amp;lt;message-time-to-live&amp;gt;0&amp;lt;/message-time-to-live&amp;gt;&lt;br /&gt;           &amp;lt;durable&amp;gt;false&amp;lt;/durable&amp;gt;&lt;br /&gt;       &amp;lt;/server&amp;gt;&lt;br /&gt;   &amp;lt;/properties&amp;gt;&lt;br /&gt;   &amp;lt;channels&amp;gt;&lt;br /&gt;       &amp;lt;channel ref="my-rtmp"/&amp;gt;&lt;br /&gt;       &amp;lt;channel ref="my-polling"/&amp;gt;&lt;br /&gt;   &amp;lt;/channels&amp;gt;&lt;br /&gt;&amp;lt;/destination&amp;gt;&lt;br /&gt; &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;strong&gt;RPC Services&lt;/strong&gt;:- A flex client can invoke methods of java object&lt;br /&gt;                                deployed in application server. It can access the back-end data using the SOAP based webservices or using XML over HTTP . These three ways collectively called RPC services.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Flex Data Managment Service&lt;/strong&gt;:- The client side API and data managment services running on appliaction server together form the flex data managment services.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-114900408637518040?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/114900408637518040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=114900408637518040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/114900408637518040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/114900408637518040'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2006/05/introduction-to-flex-data-services.html' title='Introduction to Flex Data Services'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-114874722756811093</id><published>2006-05-27T09:24:00.001-07:00</published><updated>2008-02-17T04:15:10.056-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><title type='text'>Ready for another Flex Project</title><content type='html'>Last time when i worked on &lt;a href="http://www.adobe.com/products/flex/"&gt;Flex&lt;/a&gt;, It was very new for me. Yet i enjoyed working with flex. Within a short period of time, i tried to explore the flex. Since other members in the team were involved in the project. I only got chance to explore the Datagrid component of Flex. &lt;br /&gt;&lt;br /&gt;The best thing about Flex is the XML based UI. It's a new and easily adoptable concept. They have their language called &lt;a href="http://www.adobe.com/devnet/flex/articles/paradigm.html"&gt;MXML &lt;br /&gt;&lt;/a&gt;( Macromedia Flex Markup Language ) for user interface design.&lt;br /&gt;&lt;br /&gt;Last time we did not work on any server side application in Flex. This time we have to explore the server side of Flex. Again we have 3 days for this small flex based project. I am eagerly waiting for my technical head to come and to start with the project.&lt;br /&gt;&lt;br /&gt;From monday, I will work on Flex for next 3 days. This time more fun working with Flex.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-114874722756811093?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/114874722756811093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=114874722756811093' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/114874722756811093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/114874722756811093'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2006/05/ready-for-another-flex-project.html' title='Ready for another Flex Project'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-114854175288804151</id><published>2006-05-25T00:22:00.000-07:00</published><updated>2008-02-17T04:14:18.671-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Junit'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='Tomcat'/><title type='text'>Java and Related Technologies</title><content type='html'>&lt;a href="http://java.sun.com/"&gt;Java&lt;/a&gt; is a powerful open source technology. The way, it created the ground is amazing. The support of java in open source community is increasing day by day. Previously there was very few choices of IDE's for java development. Now more and more Java IDE's are coming into picture and some of them are really cool.&lt;br /&gt;We have a long list of good server for java developement which includes Tomcat, Weblogic, JBoss etc. Which makes this language the first choice for large applications. And open source technologies like Ant, Junit makes the life easier for java based development.&lt;br /&gt;As java becoming more popular for open soucre developer, other technologies like .Net( Microsoft alternative to java ) is loosing it's ground. The fact is that the .Net developers are always underpaid than java developers.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-114854175288804151?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/114854175288804151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=114854175288804151' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/114854175288804151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/114854175288804151'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2006/05/java-and-related-technologies.html' title='Java and Related Technologies'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-28708446.post-114854169797363646</id><published>2006-05-25T00:17:00.000-07:00</published><updated>2008-05-12T06:43:14.040-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Experience to Adobe products</title><content type='html'>&lt;a href="http://www.adobe.com/"&gt;Adobe&lt;/a&gt; is a well known company for it's amazing products.This year in my new company, I got the chance to work on adobe products. Before this i was use to with java and open source technologies. The adobe technologies which i used were flash, the universal existing product and Flex, the new name in adobe product list.&lt;br /&gt;I was new to flash. But i did not find any difficulty in learning this new language. The way the language Action-Script 2.0 is designed is similer to java, They have adopted the java syntax and their object oriented model. For a open source (Java ) programmer , moving into the action-script 2.0 is not very difficult.&lt;br /&gt;It's very similer to java , yet there are many differences in between. The biggest pain working with adobe technologies is the lack of good java kind documentation. For every problem where you stuck, you need to do some google to find the article desribing the topic. For a good learning experience , a good documentation is badly needed.&lt;br /&gt;We also got chance to work on Flex for a little period of time , This was to create a small flex based project to demonstrate the rich features of flex datagrid and their charting components. we finished with a small project and we really enjoyed working with flex.&lt;br /&gt;Within a short period of time, i explored the adobe technologies and found great to work with those.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Related Posts&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://feedshub.blogspot.com/2008/05/new-acrobat-connect-pro-from-adobe.html"&gt;New Acrobat Connect Pro From Adobe&lt;/a&gt;&lt;br /&gt;&lt;a href="http://feedshub.blogspot.com/2008/05/open-screen-project-from-adobe.html"&gt;Open Screen Project From Adobe&lt;/a&gt;&lt;br /&gt;&lt;a href="http://feedshub.blogspot.com/2008/04/adobe-released-adobe-livecycle-data.html"&gt;Adobe Released Adobe LiveCycle Data Services ES 2.6&lt;/a&gt;&lt;br /&gt;&lt;a href="http://feedshub.blogspot.com/2008/04/adobe-media-player-10-and-adobe-tv.html"&gt;Adobe® Media Player 1.0 And Adobe TV Released By Adobe Systems&lt;/a&gt;&lt;br /&gt;&lt;a href="http://feedshub.blogspot.com/2008/04/share-new-service-from-adobe-systems.html"&gt;Adobe Share - Document Sharing Service From Adobe Systems&lt;/a&gt;&lt;br /&gt;&lt;a href="http://feedshub.blogspot.com/2008/03/adobe-air-for-linux-alpha.html"&gt;Adobe AIR For Linux Alpha&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-6365866346309945";
google_ad_width = 120;
google_ad_height = 240;
google_ad_format = "120x240_as_rimg";
google_cpa_choice = "CAAQufGXhAIaCNsLc8WT4y4qKPG193M";
//--&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;
&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28708446-114854169797363646?l=sunil-gupta.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sunil-gupta.blogspot.com/feeds/114854169797363646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=28708446&amp;postID=114854169797363646' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/114854169797363646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/28708446/posts/default/114854169797363646'/><link rel='alternate' type='text/html' href='http://sunil-gupta.blogspot.com/2006/05/experience-to-adobe-products.html' title='Experience to Adobe products'/><author><name>Mobile Geek</name><uri>http://www.blogger.com/profile/09899361893145509249</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_jm4FARolmSo/SLa-QAyVbEI/AAAAAAAAHv0/4pOFBsg73x0/S220/IMG_0810.jpg'/></author><thr:total>0</thr:total></entry></feed>
