<?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-1015649866194381065</id><updated>2012-01-27T04:30:38.390-08:00</updated><title type='text'>TecServer -  Technical Resources</title><subtitle type='html'>Sharing knowledge ,expertise the technology.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tecserver.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://tecserver.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>KiranKrishnan</name><uri>http://www.blogger.com/profile/17570209633840524151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://img4.orkut.com/images/medium/1197784350/32413565.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1015649866194381065.post-4683453101677415697</id><published>2012-01-27T03:02:00.000-08:00</published><updated>2012-01-27T03:49:23.097-08:00</updated><title type='text'>IP Black List Checker</title><content type='html'>&lt;b&gt;IP blacklist checker&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Simple and powerful tool for checking IP for blacklist . Useful for email marketing tools. Performs a DNSBL check against a number of RBL servers . Easy to add RBL list and IP address ranges . IP Blacklist checker, runs in regular intervals and check IP address / range against the RBL list . Notification will be sent to a configured email address, the result of the test .&lt;br /&gt;&lt;br /&gt;Written in PHP / MySQL&lt;br /&gt;Contact developer : &lt;a href="mailto:kirankrishnan84@gmail.com"&gt;&lt;b&gt;contact me&lt;/b&gt; &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;---------------------------&lt;br /&gt;Visit &lt;a href="http://bharathlisting.com"&gt;bharathlisting.com&lt;/a&gt; for free business directory&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1015649866194381065-4683453101677415697?l=tecserver.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tecserver.blogspot.com/feeds/4683453101677415697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1015649866194381065&amp;postID=4683453101677415697' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/4683453101677415697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/4683453101677415697'/><link rel='alternate' type='text/html' href='http://tecserver.blogspot.com/2012/01/ip-black-list-checker.html' title='IP Black List Checker'/><author><name>KiranKrishnan</name><uri>http://www.blogger.com/profile/17570209633840524151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://img4.orkut.com/images/medium/1197784350/32413565.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1015649866194381065.post-9158307465533017444</id><published>2012-01-27T02:40:00.000-08:00</published><updated>2012-01-27T02:40:42.941-08:00</updated><title type='text'>Auto Blogger  : Post feed/rss contents to multiple blogger accounts</title><content type='html'>Auto Blogger&lt;br /&gt;----------------&lt;br /&gt;&lt;br /&gt;Auto Blogger is a simple and powerful tool for bloggers to automate posts . Auto Blogger can post any number of feeds / rss contents to a number of blogger.com accounts . Posting blogs will create labels based on keyword popularity . Auto blogger allows to enable or disable auto labeling capability . This is a useful tool for Search Engine Optimization of your blogs . If you are away from www , your blogs will be filled with contents from rss/ feeds . Auto Blogger is written in PHP with MySql database . Easy installation and simple interface . Requires cron job enabled on hosting .&lt;br /&gt;&lt;br /&gt;Contact Developer : &lt;a href="mailto:kirankrishnan84@gmail.com"&gt;Send Mail&lt;/a&gt;&lt;br /&gt;For demo or purchase product&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1015649866194381065-9158307465533017444?l=tecserver.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tecserver.blogspot.com/feeds/9158307465533017444/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1015649866194381065&amp;postID=9158307465533017444' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/9158307465533017444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/9158307465533017444'/><link rel='alternate' type='text/html' href='http://tecserver.blogspot.com/2012/01/auto-blogger-post-feedrss-contents-to.html' title='Auto Blogger  : Post feed/rss contents to multiple blogger accounts'/><author><name>KiranKrishnan</name><uri>http://www.blogger.com/profile/17570209633840524151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://img4.orkut.com/images/medium/1197784350/32413565.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1015649866194381065.post-6222888729330266172</id><published>2012-01-25T05:25:00.000-08:00</published><updated>2012-01-25T05:25:31.398-08:00</updated><title type='text'>Best Free Business Directory , Classifieds, Search websites in India</title><content type='html'>&lt;b&gt;http://www.tradekeyindia.com/&lt;/b&gt;&lt;br /&gt;Trade Key India is an indian business directory, india yellow pages directory, online business to business directory of indian manufacturers exporters suppliers &amp; importers, b2b yellow pages directory where business houses can search indian &amp; foreign companies database, service providers classifieds from india, trade key india is a marketplace in india for manufacturers exporters, importers  &amp; buyers , trade leads, trade requirements  &amp; trade offers.&lt;br /&gt;Visit &lt;a href="http://www.tradekeyindia.com/"&gt;http://www.tradekeyindia.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;http://www.indianyellowpages.com/&lt;/b&gt;&lt;br /&gt;Indianyellowpages.com is owned and managed by Weblinkindia.net Pvt. Ltd, a leading brand in web designing services and E-Commerce solutions. Renowned for its innovative web solutions, WeblinkIndia.net Pvt. Ltd. has become the king of web solutions.&lt;br /&gt;&lt;br /&gt;Simple interface and clean design . Contains many advertising options . Yellow pages and classifieds available .&lt;br /&gt;&lt;br /&gt;Visit : &lt;a href="http://www.indianyellowpages.com/"&gt;http://www.indianyellowpages.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;http://www.quikr.com/&lt;/b&gt;&lt;br /&gt;Quikr was launched because we saw the need for a place where the local community within a city could come together, meet, trade and help each other in many ways. Community members can come here to find an apartment to live in, sell their old car, bike ,music system, laptop or furniture, promote their small business, find a tuition class or get a break as a model or actor, join a salsa class, get an audience for a local event, buy any item that they might want or have to offer and make new friends while doing all of the above.&lt;br /&gt;Visit : &lt;a href="http://www.quikr.com/"&gt;http://www.quikr.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;http://www.justdial.com/&lt;/b&gt;&lt;br /&gt;Just Dial - one of India's leading local search engines was founded in 1996 by VSS Mani. Just Dial was created to provide people with immediate access to fast, reliable and comprehensive information on businesses, products and services across India.&lt;br /&gt;Visit : &lt;a href="http://www.justdial.com/"&gt;http://www.justdial.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;http://www.infomagic.com/&lt;/b&gt;&lt;br /&gt;Kerala based Business directory  including real estate , tourism etc&lt;br /&gt;&lt;br /&gt;Visit : &lt;a href="http://www.infomagic.com/"&gt;http://www.infomagic.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;http://www.hotfrog.in/&lt;/b&gt;&lt;br /&gt;Hotfrog is India's fastest growing FREE online business directory listing over 770000 Indian businesses.&lt;br /&gt;Hotfrog now has local versions in 38 countries worldwide.&lt;br /&gt;Anyone can list their business in Hotfrog for FREE, along with contact details, and products and services.&lt;br /&gt;&lt;br /&gt;Visit : &lt;a href="http://www.hotfrog.in/"&gt;http://www.hotfrog.in/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;http://www.bharathlisting.com/&lt;/b&gt;&lt;br /&gt;Yes, this is a new business directory with advanced option for both free and paid advertisements .&lt;br /&gt;Bharathlisting.com - Free business directory , Yellow Pages , Classifieds , Search website . Brand new indian business directory includes both free and paid registration. Bundled with banner and video advertisements. Get more traffic from social networking websites. Track your visitors under My account section. Notified by new enquiries or comments posted on your profile. Highlight your profile by adding search tags and pictures (product or business related images ) . Improve search results by purchasing a paid listing package. List your business profile / product details in facebook.&lt;br /&gt;&lt;br /&gt;Visit : &lt;a href="http://www.bharathlisting.com/"&gt;http://www.bharathlisting.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1015649866194381065-6222888729330266172?l=tecserver.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tecserver.blogspot.com/feeds/6222888729330266172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1015649866194381065&amp;postID=6222888729330266172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/6222888729330266172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/6222888729330266172'/><link rel='alternate' type='text/html' href='http://tecserver.blogspot.com/2012/01/best-free-business-directory.html' title='Best Free Business Directory , Classifieds, Search websites in India'/><author><name>KiranKrishnan</name><uri>http://www.blogger.com/profile/17570209633840524151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://img4.orkut.com/images/medium/1197784350/32413565.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1015649866194381065.post-7418582831398017117</id><published>2012-01-23T05:03:00.000-08:00</published><updated>2012-01-23T05:03:16.802-08:00</updated><title type='text'>Bharath Listing : New business directory</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;This looks nice . Clean interface and listing of data . Checkout bharathlisting.com &lt;br /&gt;- free business directory , classifieds and search website .&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1015649866194381065-7418582831398017117?l=tecserver.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tecserver.blogspot.com/feeds/7418582831398017117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1015649866194381065&amp;postID=7418582831398017117' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/7418582831398017117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/7418582831398017117'/><link rel='alternate' type='text/html' href='http://tecserver.blogspot.com/2012/01/bharath-listing-new-business-directory.html' title='Bharath Listing : New business directory'/><author><name>KiranKrishnan</name><uri>http://www.blogger.com/profile/17570209633840524151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://img4.orkut.com/images/medium/1197784350/32413565.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1015649866194381065.post-4142800054187881508</id><published>2011-09-14T23:27:00.001-07:00</published><updated>2011-09-14T23:27:05.518-07:00</updated><title type='text'>Watch hollywood movies online</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://bestmoviewebsites.com/"&gt;http://bestmoviewebsites.com&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1015649866194381065-4142800054187881508?l=tecserver.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tecserver.blogspot.com/feeds/4142800054187881508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1015649866194381065&amp;postID=4142800054187881508' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/4142800054187881508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/4142800054187881508'/><link rel='alternate' type='text/html' href='http://tecserver.blogspot.com/2011/09/watch-hollywood-movies-online.html' title='Watch hollywood movies online'/><author><name>KiranKrishnan</name><uri>http://www.blogger.com/profile/17570209633840524151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://img4.orkut.com/images/medium/1197784350/32413565.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1015649866194381065.post-1751089232032743086</id><published>2010-03-28T22:40:00.000-07:00</published><updated>2010-03-28T22:40:35.966-07:00</updated><title type='text'>OSX Process , simple php process controller</title><content type='html'>Running a PHP Script in background&lt;br /&gt;&lt;br /&gt;When we deal with Medium / High sclale web applications, we have to run programs in background. Ex : Insert lacs of records in a table , every day. In such applications, it is not feasible to run the program from user input or browser. In unix systems it is easy to start a program from shell. Using UNIX commands we can control the programs easily. Here i will give you a simple PHP Library for handling process / programs running in background . This will help you to create multiple background process's and control them easily, so that you can effectively use CPU.&lt;br /&gt;What is OSX_PROCESS&lt;br /&gt;&lt;br /&gt;OSX_Process is PHP Library for creating and controlling process. You don't have to use any other PHP Extensions to handle process's. OSX_Process works only in UNIX Systems .&lt;br /&gt;&lt;br /&gt;Usage example :&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;--PHP CODE --&lt;br /&gt;include("Process.php");&lt;br /&gt;&lt;br /&gt;$dirname = dirname(__FILE__)."/stat/"; // working directory for storing  status and  files&lt;br /&gt;$fileToRun = dirname(__FILE__)."/demo.php"; // php script to run in background&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$obj = new OSX_Process();&lt;br /&gt;$obj-&gt;setDir($dirname);&lt;br /&gt;&lt;br /&gt;//Create first process //&lt;br /&gt;$obj-&gt;setInstance(1000);&lt;br /&gt;$prcId1 = $obj-&gt;runPhp($fileToRun,array("someValue"=&gt;900));&lt;br /&gt;if($obj-&gt;checkProcess($prcId1)){&lt;br /&gt; echo "Process 1 Running";&lt;br /&gt; print_r($obj-&gt;getStat());&lt;br /&gt;}else{&lt;br /&gt; echo " Process 1 Stopped ";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//create another process//&lt;br /&gt;$obj-&gt;setInstance(2000);&lt;br /&gt;$prcId2 = $obj-&gt;runPhp($fileToRun,array("someValue"=&gt;100));&lt;br /&gt;if($obj-&gt;checkProcess($prcId2)){&lt;br /&gt; echo "Process 2 Running";&lt;br /&gt; print_r($obj-&gt;getStat());&lt;br /&gt;}else{&lt;br /&gt; echo " Process 2 Stopped ";&lt;br /&gt;}&lt;br /&gt;//Get Out,pdi file paths for process //&lt;br /&gt;echo "Outfile".$obj-&gt;getOutFile();&lt;br /&gt;echo "Pidfile".$obj-&gt;getPidFile();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;echo "Killing processes";&lt;br /&gt;&lt;br /&gt;$obj-&gt;killProcess($prcId1,1000);&lt;br /&gt;$obj-&gt;killProcess($prcId2,2000);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$obj-&gt;clear(); /// clear should be called at the end ;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--PHP CODE--&lt;br /&gt;  &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Full source code / Downloads&lt;br /&gt;&lt;br /&gt;&lt;a href="http://whyscript.com/packages/OSX/"&gt;Click here to download OSX_Process package&lt;/a&gt;&lt;br /&gt;ZipFile contains , background.php , demo.php and Process.php .&lt;br /&gt;background.php contains the sample implementation of process creation and control .&lt;br /&gt;&lt;br /&gt;For further details / query contact : Developer&lt;br /&gt;Note * : You have to run the script at your own risk. This is Beta version of the package.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1015649866194381065-1751089232032743086?l=tecserver.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tecserver.blogspot.com/feeds/1751089232032743086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1015649866194381065&amp;postID=1751089232032743086' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/1751089232032743086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/1751089232032743086'/><link rel='alternate' type='text/html' href='http://tecserver.blogspot.com/2010/03/osx-process-simple-php-process.html' title='OSX Process , simple php process controller'/><author><name>KiranKrishnan</name><uri>http://www.blogger.com/profile/17570209633840524151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://img4.orkut.com/images/medium/1197784350/32413565.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1015649866194381065.post-1523426622229676850</id><published>2009-07-23T05:22:00.000-07:00</published><updated>2009-07-23T05:30:50.040-07:00</updated><title type='text'>Netbook</title><content type='html'>The term netbook was re-introduced by Intel in February 2008 to describe a category of small-sized, low-cost, light weight, lean function subnotebooks optimized for Internet access and core computing functions (e.g., word processing) — either directly from applications installed on the netbook itself or indirectly, via cloud computing. More than 50 million Netbooks are expected to be in widespread circulation by 2011. Netbooks (or sub-notebooks as they may be known) typically come with an 7-inch to 10-inch screen.&lt;br /&gt;&lt;br /&gt;Netbooks are "small laptops that are designed for wireless communication and access to the Internet. And they cost about $250, making Netbooks a potentially disruptive and high volume market segment. Even though Netbooks won’t be confused with full-featured laptops, my hunch is that tons of people around the world will be attracted to a low-cost machine that plugs them in. The Netbook will expand the global PC market. By how much is a matter of conjecture."&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Processor architectures&lt;/span&gt;&lt;br /&gt; ARM ,  MIPS ,  x86 &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Software&lt;/span&gt;&lt;br /&gt; Windows ,  Linux , Google Chrome OS , Mac OS &lt;br /&gt;Netbooks have been demonstrated running other operating systems including FreeBSD, OpenBSD, Darwin and Moblin.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1015649866194381065-1523426622229676850?l=tecserver.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tecserver.blogspot.com/feeds/1523426622229676850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1015649866194381065&amp;postID=1523426622229676850' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/1523426622229676850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/1523426622229676850'/><link rel='alternate' type='text/html' href='http://tecserver.blogspot.com/2009/07/netbook.html' title='Netbook'/><author><name>KiranKrishnan</name><uri>http://www.blogger.com/profile/17570209633840524151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://img4.orkut.com/images/medium/1197784350/32413565.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1015649866194381065.post-4532489184300038331</id><published>2009-07-22T08:56:00.000-07:00</published><updated>2009-07-22T09:33:11.967-07:00</updated><title type='text'>Surface Tabletop Computer</title><content type='html'>After a few years of taking a beating from Apple on design and innovation, Microsoft is stealing a little of Steve Jobs's thunder. Just a few weeks ahead of the iPhone, Bill Gates (or, actually, Steve Ballmer) has unveiled Surface, Microsoft's new table top computer that features a big-screen version of the multi-touch technology used on, say, the iPhone.&lt;br /&gt;&lt;br /&gt;But the similarity pretty much ends there. Microsoft's new Surface is a full-fledged coffee-table sized PC that is completely touch-sensitive, so users sitting around it can move and open files, video conference, watch movies, play games, and flip through photos -- together!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;What is Surface&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Microsoft Surface is a revolutionary multi-touch computer that responds to natural hand gestures and real-world objects, helping people interact with digital content in a simple and intuitive way. With a large, horizontal user interface, Surface offers a unique gathering place where multiple users can collaboratively and simultaneously interact with data and each other.&lt;br /&gt;&lt;br /&gt; What Are the Key Capabilities of Microsoft Surface?&lt;br /&gt;&lt;br /&gt;Microsoft Surface has four key capabilities that make it such a unique experience:&lt;br /&gt;&lt;br /&gt;    * Direct interaction. Users can grab digital information with their hands and interact with content on-screen by touch and gesture – without using a mouse or keyboard.&lt;br /&gt;    * Multi-user experience. The large, horizontal, 30 inch display makes it easy for several people to gather and interact together with Microsoft Surface —providing a collaborative, face-to-face computing experience.&lt;br /&gt;    * Multi-touch. Microsoft Surface responds to many points of contact simultaneously—not just from one finger, as with a typical touch screen, but from dozens of contact points at once.&lt;br /&gt;    * Object recognition. Users can place physical objects on the screen to trigger different types of digital responses – providing for a multitude of applications and the transfer of digital content to mobile devices.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/surface/"&gt;Resources&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1015649866194381065-4532489184300038331?l=tecserver.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tecserver.blogspot.com/feeds/4532489184300038331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1015649866194381065&amp;postID=4532489184300038331' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/4532489184300038331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/4532489184300038331'/><link rel='alternate' type='text/html' href='http://tecserver.blogspot.com/2009/07/surface-tabletop-computer.html' title='Surface Tabletop Computer'/><author><name>KiranKrishnan</name><uri>http://www.blogger.com/profile/17570209633840524151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://img4.orkut.com/images/medium/1197784350/32413565.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1015649866194381065.post-5160850874041624051</id><published>2009-07-22T03:45:00.000-07:00</published><updated>2009-07-22T03:49:10.310-07:00</updated><title type='text'>Software Defined Radio</title><content type='html'>SDR - A Software-Defined Radio (SDR) system is a radio communication system where components that have typically been implemented in hardware (e.g. mixers, filters, amplifiers, modulators/demodulators, detectors. etc.) are instead implemented using software on a personal computer or other embedded computing devices. While the concept of SDR is not new, the rapidly evolving capabilities of digital electronics are making practical many processes that were once only theoretically possible.&lt;br /&gt;&lt;br /&gt;A basic SDR may consist of a computer (PC) equipped with a sound card, or other analog-to-digital converter, preceded by some form of RF front end. Significant amounts of signal processing are handed over to the general purpose processor, rather than done using special-purpose hardware. Such a design produces a radio that can receive and transmit a different form of radio protocol (sometimes referred to as a waveform) just by running different software.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;software-defined radio&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us   &lt;br /&gt;&lt;br /&gt;DEFINITION - Software-defined radio (SDR), sometimes shortened to software radio (SR), refers to wireless communication in which the transmitter modulation is generated or defined by a computer, and the receiver uses a computer to recover the signal intelligence.? To select the desired modulation type, the proper programs must be run by microcomputers that control the transmitter and receiver.&lt;br /&gt;&lt;br /&gt;A typical voice SDR transmitter, such as might be used in mobile two-way radio or cellular telephone communication, consists of the following stages.? Items with asterisks represent computer-controlled circuits whose parameters are determined by the programming (software).&lt;br /&gt;&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      Microphone&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      Audio amplifier&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      Analog-to-digital converter (ADC) that converts the voice audio to ASCII data *&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      Modulator that impresses the ASCII intelligence onto a radio-frequency (RF) carrier *&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      Series of amplifiers that boosts the RF carrier to the power level necessary for transmission&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      Transmitting antenna&lt;br /&gt;&lt;br /&gt;A typical receiver designed to intercept the above-described voice SDR signal would employ the following stages, essentially reversing the transmitter's action.? Again, items followed by asterisks represent programmable circuits.&lt;br /&gt;&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      Receiving antenna&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      superheterodyne system that boosts incoming RF signal strength and converts it to a constant frequency&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      Demodulator that separates the ASCII intelligence from the RF carrier *&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      Digital-to-analog converter (DAC) that generates a voice waveform from the ASCII data *&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      Audio amplifier&lt;br /&gt;    *&lt;br /&gt;&lt;br /&gt;      Speaker, earphone, or headset&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;BENEFITS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    * A family of radio “products” to be implemented using a common platform architecture, allowing new products to be more quickly introduced into the market.&lt;br /&gt;    * Software to be reused across radio "products", reducing development costs dramatically.&lt;br /&gt;    * Over-the-air or other remote reprogramming, allowing "bug fixes" to occur while a radio is in service, thus reducing the time and costs associated with operation and maintenance.&lt;br /&gt;&lt;br /&gt;    * Reduce costs in providing end-users with access to ubiquitous wireless communications – enabling them to communicate with whomever they need, whenever they need to and in whatever manner is appropriate. &lt;br /&gt;&lt;br /&gt;    *  New features and capabilities to be added to existing infrastructure without requiring major new capital expenditures, allowing service providers to quasi-future proof their networks.&lt;br /&gt;    * The use of a common radio platform for multiple markets, significantly reducing logistical support and operating expenditures.&lt;br /&gt;    * Remote software downloads, through which capacity can be increased, capability upgrades can be activated and new revenue generating features can be inserted.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sdrforum.org/" target="_blank"&gt;Resources&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1015649866194381065-5160850874041624051?l=tecserver.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tecserver.blogspot.com/feeds/5160850874041624051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1015649866194381065&amp;postID=5160850874041624051' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/5160850874041624051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/5160850874041624051'/><link rel='alternate' type='text/html' href='http://tecserver.blogspot.com/2009/07/software-defined-radio.html' title='Software Defined Radio'/><author><name>KiranKrishnan</name><uri>http://www.blogger.com/profile/17570209633840524151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://img4.orkut.com/images/medium/1197784350/32413565.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1015649866194381065.post-4061756891088677186</id><published>2009-07-22T03:23:00.000-07:00</published><updated>2009-07-22T03:37:15.393-07:00</updated><title type='text'>WiMAX</title><content type='html'>WiMAX is short for Worldwide Interoperability for Microwave Access - WiMAX is a wireless digital communications system, also known as IEEE 802.16, that is intended for wireless "metropolitan area networks".   WiMAX can provide broadband wireless access (BWA) up to 30 miles (50 km) for fixed stations, and 3 - 10 miles (5 - 15 km) for mobile stations.  In contrast, the WiFi/802.11 wireless local area network standard is limited in most cases to only 100 - 300 feet (30 - 100m).&lt;br /&gt; &lt;br /&gt;With WiMAX, WiFi-like data rates are easily supported, but the issue of interference is lessened.   WiMAX operates on both licensed and non-licensed frequencies, providing a regulated environment and viable economic model for wireless carriers.&lt;br /&gt;&lt;br /&gt;WiMAX can be used for wireless networking in much the same way as the more common WiFi protocol.  WiMAX is a second-generation protocol that allows for more efficient bandwidth use, interference avoidance, and is intended to allow higher data rates over longer distances.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The bandwidth and range of WiMAX make it suitable for the following potential applications:&lt;br /&gt;&lt;br /&gt;    * Connecting Wi-Fi hotspots to the Internet.&lt;br /&gt;    * Providing a wireless alternative to cable and DSL for "last mile" broadband access.&lt;br /&gt;    * Providing data and telecommunications services.&lt;br /&gt;    * Providing a source of Internet connectivity as part of a business continuity plan. That is, if a business has both a fixed and a wireless Internet connection, especially from unrelated providers, they are unlikely to be affected by the same service outage.&lt;br /&gt;    * Providing portable connectivity.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.wimaxforum.org/node" target="_blank"&gt;Resources&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1015649866194381065-4061756891088677186?l=tecserver.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tecserver.blogspot.com/feeds/4061756891088677186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1015649866194381065&amp;postID=4061756891088677186' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/4061756891088677186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/4061756891088677186'/><link rel='alternate' type='text/html' href='http://tecserver.blogspot.com/2009/07/wimax.html' title='WiMAX'/><author><name>KiranKrishnan</name><uri>http://www.blogger.com/profile/17570209633840524151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://img4.orkut.com/images/medium/1197784350/32413565.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1015649866194381065.post-216241161372839651</id><published>2009-07-21T01:49:00.000-07:00</published><updated>2009-07-21T01:54:20.570-07:00</updated><title type='text'>SWIG</title><content type='html'>&lt;span style="font-weight:bold;"&gt;SWIG&lt;/span&gt; is an interface compiler that connects programs written in C and C++ with scripting languages such as Perl, Python, Ruby, and Tcl. It works by taking the declarations found in C/C++ header files and using them to generate the wrapper code that scripting languages need to access the underlying C/C++ code. In addition, SWIG provides a variety of customization features that let you tailor the wrapping process to suit your application. &lt;br /&gt;&lt;br /&gt;SWIG is sometimes compared to interface definition language (IDL) compilers such as those you find with systems such as CORBA and COM. Although there are a few similarities, the whole point of SWIG is to make it so you don't have to add an extra layer of IDL specifications to your application. If anything, it's much more of a rapid application development and prototyping tool. &lt;br /&gt;&lt;br /&gt;* SWIG is known to work on the following platforms : &lt;br /&gt;Unix&lt;br /&gt;Microsoft Windows &lt;br /&gt;Macintosh&lt;br /&gt;&lt;br /&gt;* Supported Languages &lt;br /&gt;Tcl 8.0 and newer versions. &lt;br /&gt;Python 1.5 and newer. &lt;br /&gt;Perl 5.003 or newer. &lt;br /&gt;Guile 1.3.4 and newer. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Java JDK 1.1 and newer. &lt;br /&gt;Ruby. &lt;br /&gt;Mzscheme. &lt;br /&gt;&lt;br /&gt;PHP support was added in swig-1.3.11.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dabeaz.com/cgi-bin/wiki.pl" target="_blank"&gt;&lt;br /&gt;VISIT SWIG&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1015649866194381065-216241161372839651?l=tecserver.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tecserver.blogspot.com/feeds/216241161372839651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1015649866194381065&amp;postID=216241161372839651' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/216241161372839651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/216241161372839651'/><link rel='alternate' type='text/html' href='http://tecserver.blogspot.com/2009/07/swig.html' title='SWIG'/><author><name>KiranKrishnan</name><uri>http://www.blogger.com/profile/17570209633840524151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://img4.orkut.com/images/medium/1197784350/32413565.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1015649866194381065.post-336257725066574826</id><published>2009-07-20T10:01:00.000-07:00</published><updated>2009-07-28T08:52:17.504-07:00</updated><title type='text'>JSP - JAVA Thumbnail Script</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Creating thumbnail using JSP/JAVA&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Generating thumbnail using Java Bean and JSP.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Code Snippet&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;STEP 1 : Create JavaBean named Thumbnail.java , Compile the class as package (MyPackage)&lt;br /&gt;--------------------------------------------&lt;br /&gt;&lt;br /&gt;package MyPackage&lt;br /&gt;import javax.servlet.*;&lt;br /&gt;import javax.servlet.http.*;&lt;br /&gt;import java.io.* ;&lt;br /&gt;import java.awt.* ;&lt;br /&gt;import java.util.Random;&lt;br /&gt;import java.awt.Color;&lt;br /&gt;import java.awt.image.*;&lt;br /&gt;import com.sun.image.codec.jpeg.JPEGCodec;&lt;br /&gt;import com.sun.image.codec.jpeg.JPEGImageEncoder;&lt;br /&gt;import java.awt.geom.AffineTransform;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;* Create Thumbnail image on the fly.&lt;br /&gt;* Code may generate some performance issue&lt;br /&gt;* For local or internal use, this can be powerful&lt;br /&gt;* Can modify  the scaling parameter for better thumbnail creation&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;public class Thumbnail&lt;br /&gt;{&lt;br /&gt;private HttpServletResponse httpResponse;  // If useful //&lt;br /&gt;public String ioError;&lt;br /&gt;public Thumbnail()&lt;br /&gt;{ &lt;br /&gt; httpResponse = null;&lt;br /&gt; ioError = "";&lt;br /&gt;}&lt;br /&gt;/*&lt;br /&gt; * Generate GD Compatible of the Image Instance&lt;br /&gt; * Java  Graphics GD 2 will be the default Graphics Context&lt;br /&gt;*/&lt;br /&gt;public BufferedImage toCompatibleImage(BufferedImage image, GraphicsConfiguration gc)&lt;br /&gt;{&lt;br /&gt; if(gc==null){&lt;br /&gt;  gc = this.getDefaultConfiguration();&lt;br /&gt; }&lt;br /&gt; int w = image.getWidth();&lt;br /&gt; int h = image.getHeight();&lt;br /&gt; int transparency = image.getColorModel().getTransparency();&lt;br /&gt; BufferedImage result = gc.createCompatibleImage(w, h, transparency);&lt;br /&gt; Graphics2D g2 = result.createGraphics();&lt;br /&gt; g2.drawRenderedImage(image, null);&lt;br /&gt; g2.dispose();&lt;br /&gt; return result;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt; * Get teh default Graphics configuration&lt;br /&gt;*/&lt;br /&gt;public GraphicsConfiguration getDefaultConfiguration()&lt;br /&gt;{&lt;br /&gt; GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();&lt;br /&gt; GraphicsDevice gd = ge.getDefaultScreenDevice();&lt;br /&gt; return gd.getDefaultConfiguration();&lt;br /&gt;}&lt;br /&gt;/*&lt;br /&gt; * Copy Image to New Graphics Context Image&lt;br /&gt;*/&lt;br /&gt;public BufferedImage copy(BufferedImage source, BufferedImage target)&lt;br /&gt;{&lt;br /&gt; Graphics2D g2 = target.createGraphics();&lt;br /&gt; g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);&lt;br /&gt; double scalex = (double) target.getWidth()/ source.getWidth();&lt;br /&gt; double scaley = (double) target.getHeight()/ source.getHeight();&lt;br /&gt; AffineTransform xform = AffineTransform.getScaleInstance(scalex, scaley);&lt;br /&gt; g2.drawRenderedImage(source, xform);&lt;br /&gt; g2.dispose();&lt;br /&gt; return target;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt; * Resized Image and make the copy using the copy Func&lt;br /&gt;*/&lt;br /&gt;public BufferedImage getScaledInstance(BufferedImage image, int width, int height, GraphicsConfiguration gc)&lt;br /&gt;{&lt;br /&gt; if (gc == null){&lt;br /&gt;  gc = getDefaultConfiguration();&lt;br /&gt; }&lt;br /&gt; int transparency = image.getColorModel().getTransparency();&lt;br /&gt; return copy(image, gc.createCompatibleImage(width, height, transparency));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt; * Entry to the class&lt;br /&gt; * Call to create the thumbnail&lt;br /&gt; * Output will be the ServletOutputStream&lt;br /&gt;*/&lt;br /&gt;public void createThumb(HttpServletResponse response,String filePath,String canvasWidth,String canvasHeight)&lt;br /&gt;{&lt;br /&gt; try{&lt;br /&gt;  File file  = new File(filePath);&lt;br /&gt;  BufferedImage image = javax.imageio.ImageIO.read(file);  &lt;br /&gt;  GraphicsConfiguration gc = this.getDefaultConfiguration();&lt;br /&gt; &lt;br /&gt;  /*&lt;br /&gt;   * Core of Image resize&lt;br /&gt;   * Calculate the thumbnail Height and width&lt;br /&gt;   * If any iissue comes with resizing modify the following code&lt;br /&gt;   * Thumb height-width is calculated based on canvas params suppied   &lt;br /&gt;  */&lt;br /&gt; &lt;br /&gt;  double cWidth   = Double.valueOf(canvasWidth);&lt;br /&gt;  double cHeight   = Double.valueOf(canvasHeight);&lt;br /&gt;  double currentWidth  = image.getWidth();&lt;br /&gt;  double currentHeight = image.getHeight();&lt;br /&gt;  double ratio   = currentWidth/currentHeight;&lt;br /&gt;  double thumbHeight  = cHeight;&lt;br /&gt;  double thumbWidth  = cWidth;&lt;br /&gt; &lt;br /&gt;  if(cWidth&gt;=currentWidth &amp;amp;&amp;amp; cHeight&gt;=currentHeight){&lt;br /&gt;   thumbHeight = currentHeight;&lt;br /&gt;   thumbWidth = currentWidth;&lt;br /&gt;  }else if(currentWidth &gt;= cWidth &amp;amp;&amp;amp; currentHeight &gt;= cHeight){&lt;br /&gt;   thumbWidth = cWidth;&lt;br /&gt;   double cRatio = currentWidth/thumbWidth;&lt;br /&gt;   thumbHeight = currentHeight/cRatio;&lt;br /&gt;  }else if(currentHeight&gt;cHeight){&lt;br /&gt;   thumbHeight = cHeight;&lt;br /&gt;   double cRatio = currentHeight/thumbHeight;&lt;br /&gt;   thumbWidth = currentWidth/cRatio;&lt;br /&gt;  }else if(currentWidth&gt;cWidth){&lt;br /&gt;   thumbWidth = cWidth;&lt;br /&gt;   double cRatio = currentWidth/thumbWidth;&lt;br /&gt;   thumbHeight = currentHeight/cRatio;&lt;br /&gt;  }&lt;br /&gt;   &lt;br /&gt;  BufferedImage resizeImage  = this.getScaledInstance(image, (int)thumbWidth, (int)thumbHeight, gc);  &lt;br /&gt;  ServletOutputStream out1  = response.getOutputStream();&lt;br /&gt;  JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out1);&lt;br /&gt;  encoder.encode(resizeImage);&lt;br /&gt; }catch(IOException ioCin){&lt;br /&gt;  ioError = ioCin.toString();&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;--------------------------------------------&lt;br /&gt;&lt;br /&gt;STEP 2:&lt;br /&gt;Create another JSP File to include the JavaBean (ie thumb.jsp )&lt;br /&gt;------------------------------------------------------------------&lt;br /&gt;//import package -  page import="MyPackage.*"  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//Global Declaration&lt;br /&gt;&lt;br /&gt; String filePath = "";&lt;br /&gt; String width = "10";&lt;br /&gt; String height = "10";&lt;br /&gt; String type  = "album";&lt;br /&gt; &lt;br /&gt;//end global&lt;br /&gt;//scriptlet&lt;br /&gt; try{&lt;br /&gt;  filePath = request.getParameter("image");&lt;br /&gt;  width  = request.getParameter("w");&lt;br /&gt;  height  = request.getParameter("h");&lt;br /&gt;  type  = request.getParameter("type");&lt;br /&gt; }catch(Exception cin){&lt;br /&gt;  //out.print("EXP");&lt;br /&gt; } &lt;br /&gt; &lt;br /&gt; String uploadFolder = "";&lt;br /&gt; if(type.equals("album")){&lt;br /&gt;  uploadFolder = "/uploads/album/";&lt;br /&gt; }&lt;br /&gt; String dest = config.getServletContext().getRealPath(uploadFolder+filePath);&lt;br /&gt; &lt;br /&gt; // PARAMS : FILE PATH&lt;br /&gt; // CANVAS WIDTH //&lt;br /&gt; // CANVAS HEIGHT//&lt;br /&gt; //out.print(dest);&lt;br /&gt; Thumbnail tmb = new Thumbnail();&lt;br /&gt; tmb.createThumb(response,dest,width,height);&lt;br /&gt; //out.print(tmb.ioError);&lt;br /&gt;//scriptlet&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step 3 : Using the Thumbnail Script in HTML OR JSP File&lt;br /&gt;---------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;To resize an image using the script , use IMG SRC as follows,&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt; img src="http://www.blogger.com/thumb.jsp?image=/myimages/demo.jpg&amp;amp;w=160&amp;amp;h=100"  &lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;// image -&gt; path to image file&lt;br /&gt;//w - canvas width&lt;br /&gt;//h - canvas height&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note :&lt;br /&gt;&lt;br /&gt;The method is not well suited for high resolution images . Load on the server may increase using the script . Normally, after uploading the image, resize and store the thumbnail in another folder. This may reduce load on the server.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1015649866194381065-336257725066574826?l=tecserver.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tecserver.blogspot.com/feeds/336257725066574826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1015649866194381065&amp;postID=336257725066574826' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/336257725066574826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/336257725066574826'/><link rel='alternate' type='text/html' href='http://tecserver.blogspot.com/2009/07/jsp-java-thumbnail-script.html' title='JSP - JAVA Thumbnail Script'/><author><name>KiranKrishnan</name><uri>http://www.blogger.com/profile/17570209633840524151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://img4.orkut.com/images/medium/1197784350/32413565.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1015649866194381065.post-1885777511587403145</id><published>2009-07-20T09:44:00.000-07:00</published><updated>2009-07-20T09:56:33.609-07:00</updated><title type='text'>PHP Rss Reader , Atom reader</title><content type='html'>&lt;span style="font-weight:bold;"&gt;PHP RSS ATOM Reader - PHP class&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What is RSS - RSS (Rich Site Summary) is a format for delivering regularly changing web content. Many news-related sites, weblogs and other online publishers syndicate their content as an RSS Feed to whoever wants it. RSS solves a problem for people who regularly use the web. It allows you to easily stay informed by retrieving the latest content from the sites you are interested in. &lt;br /&gt;&lt;br /&gt;ATOM FEED - The Atom Syndication Format is an XML language used for web feeds.&lt;br /&gt;All Atom feeds must be well-formed XML documents, and are identified with the application/atom+xml media type.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here you can find a class Written in php to read RSS/ATOM feeds from a url.&lt;br /&gt;This will helpful for you to publish news content in your website easliy.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;CLASS FILE &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;class FeedParser&lt;br /&gt; {&lt;br /&gt; &lt;br /&gt;  private $xmlData;    //XML data Read from the Feed Url &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  private $curlHandler;   // Curl Object //&lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  private $feedUrl;    // Feed Url , Url from which data scrapped &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  private $parserData;   //Xml Components frpm XML parser &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  private $feedResults;   // Final Results in Array format //&lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  /*&lt;br /&gt;   * FeedParser Construct&lt;br /&gt;   * @Param as the Feed Url&lt;br /&gt;   * Init settings &lt;br /&gt;  */&lt;br /&gt;  &lt;br /&gt;  function __construct($url)&lt;br /&gt;  {&lt;br /&gt;   $this-&gt;feedUrl = $url;&lt;br /&gt;   $this-&gt;parserData = null;&lt;br /&gt;   $this-&gt;xmlData  = null;&lt;br /&gt;   $this-&gt;feedResults = array();&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  /*&lt;br /&gt;   * Read Feed Content from Remote Url&lt;br /&gt;   * Fetch XML Content Using CURL&lt;br /&gt;  */&lt;br /&gt;  &lt;br /&gt;  function readXml()&lt;br /&gt;  {&lt;br /&gt;   if(isset($this-&gt;feedUrl)){&lt;br /&gt;    try&lt;br /&gt;    {&lt;br /&gt;     $this-&gt;curlHandler = curl_init($this-&gt;feedUrl);&lt;br /&gt;     curl_setopt($this-&gt;curlHandler, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;     curl_setopt($this-&gt;curlHandler, CURLOPT_HEADER, 0);&lt;br /&gt;     $this-&gt;xmlData = curl_exec($this-&gt;curlHandler);&lt;br /&gt;     curl_close($this-&gt;curlHandler);&lt;br /&gt;     return true;      &lt;br /&gt;    }catch(Exception $c){&lt;br /&gt;     return false;&lt;br /&gt;    } &lt;br /&gt;   }else{&lt;br /&gt;    return false;&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  /*&lt;br /&gt;   * Entry Point for Parsing from XML DATA&lt;br /&gt;   * Data will be parsed from Rss Or Atom Feeds.&lt;br /&gt;  */&lt;br /&gt;  &lt;br /&gt;  function parseXmlData()&lt;br /&gt;  {&lt;br /&gt;   $docElim = new SimpleXmlElement($this-&gt;xmlData, LIBXML_NOCDATA);&lt;br /&gt;   $this-&gt;parserData = $docElim;&lt;br /&gt;   &lt;br /&gt;   if(isset($docElim-&gt;channel)){    &lt;br /&gt;    $this-&gt;parseFromRSS(); //RSS Feed&lt;br /&gt;   }else if(isset($docElim-&gt;entry)){    &lt;br /&gt;    $this-&gt;parseFromATOM(); //Atom Feed&lt;br /&gt;   }&lt;br /&gt;   return $this-&gt;feedResults;&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  /*&lt;br /&gt;   * Parser now creates the Feed Results From Rss Feeds/&lt;br /&gt;   * Rss Feedas are popular feeds for news and podcast&lt;br /&gt;   * only comman items are added to results &lt;br /&gt;  */&lt;br /&gt;  &lt;br /&gt;  function parseFromRSS(){&lt;br /&gt;   /*&lt;br /&gt;    * Retrieve Header Information&lt;br /&gt;    * Get Common Header Items&lt;br /&gt;   */&lt;br /&gt;   $this-&gt;feedResults["headInfo"]["feedType"]   = "RSS";&lt;br /&gt;   $this-&gt;feedResults["headInfo"]["title"]     = (string)$this-&gt;parserData-&gt;channel-&gt;title;&lt;br /&gt;   $this-&gt;feedResults["headInfo"]["description"]   = (string)$this-&gt;parserData-&gt;channel-&gt;description;&lt;br /&gt;   $this-&gt;feedResults["headInfo"]["link"]     = (string)$this-&gt;parserData-&gt;channel-&gt;link;&lt;br /&gt;   $this-&gt;feedResults["headInfo"]["category"]    = (string)$this-&gt;parserData-&gt;channel-&gt;category;&lt;br /&gt;   $this-&gt;feedResults["headInfo"]["docs"]     = (string)$this-&gt;parserData-&gt;channel-&gt;docs;&lt;br /&gt;   $this-&gt;feedResults["headInfo"]["copyright"]   = (string)$this-&gt;parserData-&gt;channel-&gt;copyright;&lt;br /&gt;   $this-&gt;feedResults["headInfo"]["pubDate"]    = (string)$this-&gt;parserData-&gt;channel-&gt;pubDate;&lt;br /&gt;   $this-&gt;feedResults["headInfo"]["webMaster"]   = (string)$this-&gt;parserData-&gt;channel-&gt;webMaster;&lt;br /&gt;   $this-&gt;feedResults["headInfo"]["imageUrl"]    = (string)$this-&gt;parserData-&gt;channel-&gt;image-&gt;url;&lt;br /&gt;   $this-&gt;feedResults["headInfo"]["imageWidth"]  = (string)$this-&gt;parserData-&gt;channel-&gt;image-&gt;width;&lt;br /&gt;   $this-&gt;feedResults["headInfo"]["imageHeight"]  = (string)$this-&gt;parserData-&gt;channel-&gt;image-&gt;height;&lt;br /&gt;   $this-&gt;feedResults["headInfo"]["imageLink"]   = (string)$this-&gt;parserData-&gt;channel-&gt;image-&gt;link;&lt;br /&gt;   $this-&gt;feedResults["headInfo"]["imageTitle"]   = (string)$this-&gt;parserData-&gt;channel-&gt;image-&gt;title;&lt;br /&gt;   &lt;br /&gt;   /*&lt;br /&gt;    * Rss Feed Items&lt;br /&gt;    * Items and common fields only&lt;br /&gt;   */    &lt;br /&gt;   $rec = 0;&lt;br /&gt;   foreach($this-&gt;parserData-&gt;channel-&gt;item as $key=&gt;$val){     &lt;br /&gt;    $this-&gt;feedResults["items"][$rec]["title"]   = (string)$val-&gt;title;&lt;br /&gt;    $this-&gt;feedResults["items"][$rec]["description"] = (string)$val-&gt;description;&lt;br /&gt;    $this-&gt;feedResults["items"][$rec]["link"]    = (string)$val-&gt;link;&lt;br /&gt;    $this-&gt;feedResults["items"][$rec]["comments"] = (string)$val-&gt;comments;&lt;br /&gt;    $this-&gt;feedResults["items"][$rec]["category"]  = (string)$val-&gt;category;&lt;br /&gt;    $this-&gt;feedResults["items"][$rec]["pubDate"]  = (string)$val-&gt;pubDate;&lt;br /&gt;    $rec++;    &lt;br /&gt;   }   &lt;br /&gt;   $this-&gt;feedResults["headInfo"]["countRecords"]  = $rec;&lt;br /&gt;   &lt;br /&gt;  } &lt;br /&gt;  &lt;br /&gt;  /*&lt;br /&gt;   * Parse Data From Atom Content&lt;br /&gt;   * Atom Feeds vary from RSS in elements&lt;br /&gt;   * Here the data is scrapped from Atom Feed.&lt;br /&gt;  */&lt;br /&gt;  &lt;br /&gt;  function parseFromATOM(){&lt;br /&gt;   /*&lt;br /&gt;    * Retrieve Header Information&lt;br /&gt;    * Get Common Header Items&lt;br /&gt;   */&lt;br /&gt;   $this-&gt;feedResults["headInfo"]["feedType"]   = "ATOM";&lt;br /&gt;   $this-&gt;feedResults["headInfo"]["authorName"]  = (string)$this-&gt;parserData-&gt;author-&gt;name;&lt;br /&gt;   $this-&gt;feedResults["headInfo"]["authorEmail"]   = (string)$this-&gt;parserData-&gt;author-&gt;email;&lt;br /&gt;   $this-&gt;feedResults["headInfo"]["copyright"]   = (string)$this-&gt;parserData-&gt;author-&gt;copyright;&lt;br /&gt;   $this-&gt;feedResults["headInfo"]["modified"]    = (string)$this-&gt;parserData-&gt;author-&gt;modified;&lt;br /&gt;   &lt;br /&gt;   /*&lt;br /&gt;    * ATOM Feed Items&lt;br /&gt;    * Items and common fields only&lt;br /&gt;   */   &lt;br /&gt;   $rec= 0;&lt;br /&gt;   foreach($this-&gt;parserData-&gt;entry as $key=&gt;$val){    &lt;br /&gt;    $this-&gt;feedResults["items"][$rec]["title"]  = (string)$val-&gt;title;&lt;br /&gt;    $this-&gt;feedResults["items"][$rec]["linkUrl"]  = (string)$val-&gt;link{"href"};    &lt;br /&gt;    $this-&gt;feedResults["items"][$rec]["linkType"] = (string)$val-&gt;link-&gt;{"type"};&lt;br /&gt;    $this-&gt;feedResults["items"][$rec]["issued"]  = (string)$val-&gt;issued;&lt;br /&gt;    $this-&gt;feedResults["items"][$rec]["id"]   = (string)$val-&gt;id;&lt;br /&gt;    $this-&gt;feedResults["items"][$rec]["modified"] = (string)$val-&gt;modified;&lt;br /&gt;    $this-&gt;feedResults["items"][$rec]["content"] = (string)$val-&gt;content;&lt;br /&gt;    $rec++;&lt;br /&gt;   }   &lt;br /&gt;   $this-&gt;feedResults["headInfo"]["countRecords"]  = $rec;&lt;br /&gt;   &lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  /*&lt;br /&gt;   * Method is the entry to FeedParser&lt;br /&gt;   * Function Called from invoking object&lt;br /&gt;   * @ No parameters&lt;br /&gt;   * Returns the Feed Results in array&lt;br /&gt;  */&lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  function parseFeed()&lt;br /&gt;  {&lt;br /&gt;   if($this-&gt;readXml())&lt;br /&gt;   {&lt;br /&gt;    if(empty($this-&gt;xmlData)) {&lt;br /&gt;     die ("Nothing to parse this time");&lt;br /&gt;     return null;&lt;br /&gt;    }else{&lt;br /&gt;     if(class_exists("SimpleXmlElement")){&lt;br /&gt;      $results = $this-&gt;parseXmlData();&lt;br /&gt;      return $results;&lt;br /&gt;     }else{&lt;br /&gt;      die("LIB XML Not installed");&lt;br /&gt;      return null;&lt;br /&gt;     }&lt;br /&gt;    }&lt;br /&gt;   }else{&lt;br /&gt;    die( "Sorry , Cannot read xml data from source");&lt;br /&gt;    return null;&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note : Requires Curl and LIBXML Installed on server. (PHP 5 is needed).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;How to use the code &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;        require_once("FeedParser.php");  &lt;br /&gt; $url ="http://news.google.com/news?ned=us&amp;topic=h&amp;output=atom"; &lt;br /&gt; &lt;br /&gt; $obj = new FeedParser($url);&lt;br /&gt; $content = $obj-&gt;parseFeed(); &lt;br /&gt; &lt;br /&gt; print_r($content); &lt;br /&gt;         //$content will hold the feed elements in array format //&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;?&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1015649866194381065-1885777511587403145?l=tecserver.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tecserver.blogspot.com/feeds/1885777511587403145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1015649866194381065&amp;postID=1885777511587403145' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/1885777511587403145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/1885777511587403145'/><link rel='alternate' type='text/html' href='http://tecserver.blogspot.com/2009/07/php-rss-reader-atom-reader.html' title='PHP Rss Reader , Atom reader'/><author><name>KiranKrishnan</name><uri>http://www.blogger.com/profile/17570209633840524151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://img4.orkut.com/images/medium/1197784350/32413565.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1015649866194381065.post-3366123228902752000</id><published>2009-07-20T06:12:00.000-07:00</published><updated>2009-07-20T06:43:00.582-07:00</updated><title type='text'>SMS Technology</title><content type='html'>SMS Technology - Reference for Developers&lt;br /&gt;&lt;br /&gt;The Short Message Service (SMS) allows text messages to be sent and received to and from mobile telephones. The text can comprise words or numbers or an alphanumeric combination. SMS was created as part of the GSM Phase 1 standard. The first short message is believed to have been sent in December 1992 from a PC to a mobile phone on the Vodafone GSM network in the UK. Each short message is up to 160 characters in length when Latin alphabets are used, and 70 characters in length when non-Latin alphabets such as Arabic and Chinese are used.&lt;br /&gt;&lt;br /&gt;SMS is essentially similar to paging, but SMS messages do not require the mobile phone to be active and within range, as they will be held for a number of days until the phone is active and within range. SMS messages are transmitted within the same cell or to anyone with roaming capability. They can also be sent to digital phones from a web site equipped with a PC Link or from one digital phone to another. An SMS gateway is a web site that lets you enter an SMS message to someone within the cell served by that gateway or acts as an international gateway for users with roaming capability.&lt;br /&gt;&lt;br /&gt;The SMS is a store and forward service. In other words, short messages are not sent directly from sender to recipient, but via an SMS Center. Each mobile telephone network that supports SMS has one or more messaging centers to handle and manage the short messages.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Validity Period of an SMS Message&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;An SMS message is stored temporarily in the SMS center if the recipient mobile phone is offline. It is possible to specify the period after which the SMS message will be deleted from the SMS center so that the SMS message will not be forwarded to the recipient mobile phone when it becomes online. This period is called the validity period.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Message Status Reports&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Sometimes you may want to know whether an SMS message has reached the recipient mobile phone successfully. To get this information, you need to set a flag in the SMS message to notify the SMS center that you want a status report about the delivery of this SMS message. The status report is sent to you in the form of an SMS message.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Message Submission Reports&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After leaving the mobile phone, an SMS message goes to the SMS center. When it reaches the SMS center, the SMS center will send back a message submission report to the mobile phone to inform whether there are any errors or failures (e.g. incorrect SMS message format, busy SMS center, etc). If there is no error or failure, the SMS center sends back a positive submission report to the mobile phone. Otherwise it sends back a negative submission report to the mobile phone. The mobile phone may then notify the user that the message submission was failed and what caused the failure.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Message Delivery Reports&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After receiving an SMS message, the recipient mobile phone will send back a message delivery report to the SMS center to inform whether there are any errors or failures (example causes: unsupported SMS message format, not enough storage space, etc). This process is transparent to the mobile user. If there is no error or failure, the recipient mobile phone sends back a positive delivery report to the SMS center. Otherwise it sends back a negative delivery report to the SMS center.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;What is SMSC (SMS Center) ? &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;An SMS center (SMSC) is responsible for handling the SMS operations of a wireless network. When an SMS message is sent from a mobile phone, it will reach an SMS center first. The SMS center then forwards the SMS message towards the destination. An SMS message may need to pass through more than one network entity (e.g. SMSC and SMS gateway) before reaching the destination. The main duty of an SMSC is to route SMS messages and regulate the process. If the recipient is unavailable (for example, when the mobile phone is switched off), the SMSC will store the SMS message. It will forward the SMS message when the recipient is available.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;What is sms Gateways? &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;One problem of SMS messaging is that SMSCs developed by different companies use their own communication protocol and most of these protocols are proprietary. For example, Nokia has an SMSC protocol called CIMD whereas another SMSC vendor, CMG, has an SMSC protocol called EMI. We cannot connect two SMSCs if they do not support a common SMSC protocol. To deal with this problem, an SMS gateway is placed between two SMSCs.  The SMS gateway acts as a relay between the two SMSCs. It translates one SMSC protocol to another one. This way can be used by two different wireless carriers to interconnect their SMSCs for purposes such as enabling the exchange of inter-operator SMS messages.Besides wireless carriers, content providers and SMS application developers may also find an SMS gateway useful.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;SMPP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Short Message Peer to Peer (SMPP) protocol is an open industry standard messaging protocol designed to simplify integration of data applications with wireless mobile networks such as GSM, TDMA, CDMA and PDC. The protocol is widely deployed in the mobile telecommunications industry.The protocol is most widely known for its use in text messaging between cellular phones. It is also frequently used to permit third parties (for example, value added service providers such as news organizations) to pass messages, usually in bulk.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;SMS MT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Mobile Terminated SMS (MT) also known as Bulk SMS or Push SMS enables the delivery of messages from a mobile business application to a mobile subscriber's handset. &lt;br /&gt; &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;SMS MO&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Mobile Originated SMS / Inbound SMS , Receiving Messages originated from cellphones to an application. Also the same can be sent to some users. Basically used for customer interaction.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1015649866194381065-3366123228902752000?l=tecserver.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tecserver.blogspot.com/feeds/3366123228902752000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1015649866194381065&amp;postID=3366123228902752000' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/3366123228902752000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/3366123228902752000'/><link rel='alternate' type='text/html' href='http://tecserver.blogspot.com/2009/07/sms-technology.html' title='SMS Technology'/><author><name>KiranKrishnan</name><uri>http://www.blogger.com/profile/17570209633840524151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://img4.orkut.com/images/medium/1197784350/32413565.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1015649866194381065.post-2412069716527588916</id><published>2009-07-18T07:03:00.000-07:00</published><updated>2009-07-18T07:05:08.918-07:00</updated><title type='text'>FFMPEG  - Video conversion tool</title><content type='html'>FFMPEG PHP grab information from video files&lt;br /&gt;FFMPEG - PHP libraries serve a lot in video sharing applications. They can convert video files of any formats to other formats. Also we can grab video information from the files.&lt;br /&gt;Some servers provide ffmpeg hosting.&lt;br /&gt;Using the folowing configuration we can create a video sharing site.&lt;br /&gt;&lt;br /&gt;    * GD Library 2 or higher&lt;br /&gt;    * Mplayer + Mencoder (http://www.mplayerhq.hu/design7/dload.html)&lt;br /&gt;    * Flv2tool (http://inlet-media.de/flvtool2)&lt;br /&gt;    * Libogg + Libvorbis (http://www.xiph.org/downloads)&lt;br /&gt;    * LAME MP3 Encoder (http://lame.sourceforge.net)&lt;br /&gt;    * FFMPEG&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here you can find a simple script which built under php-ffmpeg for grabbing video information and creates a thumbnail&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;class PHP_FFMPEG&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;function getVideoInformation($videoPath)&lt;br /&gt;{&lt;br /&gt;$movie = new ffmpeg_movie($videoPath,false);&lt;br /&gt;&lt;br /&gt;$this-&gt;videoDuration = $movie-&gt;getDuration();&lt;br /&gt;$this-&gt;frameCount = $movie-&gt;getFrameCount();&lt;br /&gt;$this-&gt;frameRate = $movie-&gt;getFrameRate();&lt;br /&gt;$this-&gt;videoTitle = $movie-&gt;getTitle();&lt;br /&gt;$this-&gt;author = $movie-&gt;getAuthor() ;&lt;br /&gt;$this-&gt;copyright = $movie-&gt;getCopyright();&lt;br /&gt;$this-&gt;frameHeight = $movie-&gt;getFrameHeight();&lt;br /&gt;$this-&gt;frameWidth = $movie-&gt;getFrameWidth();&lt;br /&gt;$this-&gt;pixelFormat = $movie-&gt;getPixelFormat();&lt;br /&gt;$this-&gt;bitRate = $movie-&gt;getVideoBitRate();&lt;br /&gt;$this-&gt;videoCodec = $movie-&gt;getVideoCodec();&lt;br /&gt;$this-&gt;audioCodec = $movie-&gt;getAudioCodec();&lt;br /&gt;$this-&gt;hasAudio = $movie-&gt;hasAudio();&lt;br /&gt;$this-&gt;audSampleRate = $movie-&gt;getAudioSampleRate();&lt;br /&gt;$this-&gt;audBitRate = $movie-&gt;getAudioBitRate();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function getAudioInformation($videoPath)&lt;br /&gt;{&lt;br /&gt;$movie = new ffmpeg_movie($videoPath,false);&lt;br /&gt;&lt;br /&gt;$this-&gt;audioDuration = $movie-&gt;getDuration();&lt;br /&gt;$this-&gt;frameCount = $movie-&gt;getFrameCount();&lt;br /&gt;$this-&gt;frameRate = $movie-&gt;getFrameRate();&lt;br /&gt;$this-&gt;audioTitle = $movie-&gt;getTitle();&lt;br /&gt;$this-&gt;author = $movie-&gt;getAuthor() ;&lt;br /&gt;$this-&gt;copyright = $movie-&gt;getCopyright();&lt;br /&gt;$this-&gt;artist = $movie-&gt;getArtist();&lt;br /&gt;$this-&gt;track = $movie-&gt;getTrackNumber();&lt;br /&gt;$this-&gt;bitRate = $movie-&gt;getBitRate();&lt;br /&gt;$this-&gt;audioChannels = $movie-&gt;getAudioChannels();&lt;br /&gt;$this-&gt;audioCodec = $movie-&gt;getAudioCodec();&lt;br /&gt;$this-&gt;audSampleRate = $movie-&gt;getAudioSampleRate();&lt;br /&gt;$this-&gt;audBitRate = $movie-&gt;getAudioBitRate();&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function getThumbImage($videoPath)&lt;br /&gt;{&lt;br /&gt;$movie = new ffmpeg_movie($videoPath,false);&lt;br /&gt;$this-&gt;videoDuration = $movie-&gt;getDuration();&lt;br /&gt;$this-&gt;frameCount = $movie-&gt;getFrameCount();&lt;br /&gt;$this-&gt;frameRate = $movie-&gt;getFrameRate();&lt;br /&gt;$this-&gt;videoTitle = $movie-&gt;getTitle();&lt;br /&gt;$this-&gt;author = $movie-&gt;getAuthor() ;&lt;br /&gt;$this-&gt;copyright = $movie-&gt;getCopyright();&lt;br /&gt;$this-&gt;frameHeight = $movie-&gt;getFrameHeight();&lt;br /&gt;$this-&gt;frameWidth = $movie-&gt;getFrameWidth();&lt;br /&gt;&lt;br /&gt;$capPos = ceil($this-&gt;frameCount/4);&lt;br /&gt;&lt;br /&gt;if($this-&gt;frameWidth&gt;120)&lt;br /&gt;{&lt;br /&gt;$cropWidth = ceil(($this-&gt;frameWidth-120)/2);&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;$cropWidth =0;&lt;br /&gt;}&lt;br /&gt;if($this-&gt;frameHeight&gt;90)&lt;br /&gt;{&lt;br /&gt;$cropHeight = ceil(($this-&gt;frameHeight-90)/2);&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;$cropHeight = 0;&lt;br /&gt;}&lt;br /&gt;if($cropWidth%2!=0)&lt;br /&gt;{&lt;br /&gt;$cropWidth = $cropWidth-1;&lt;br /&gt;}&lt;br /&gt;if($cropHeight%2!=0)&lt;br /&gt;{&lt;br /&gt;$cropHeight = $cropHeight-1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;$frameObject = $movie-&gt;getFrame($capPos);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;if($frameObject)&lt;br /&gt;{&lt;br /&gt;$imageName = "tmb_vid_"1212.jpg";&lt;br /&gt;$tmbPath = "/home/home_Dir/public_html/uploads/thumb/".$imageName;&lt;br /&gt;$frameObject-&gt;resize(120,90,0,0,0,0);&lt;br /&gt;imagejpeg($frameObject-&gt;toGDImage(),$tmbPath);&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;$imageName="";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;return $imageName;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;?&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1015649866194381065-2412069716527588916?l=tecserver.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tecserver.blogspot.com/feeds/2412069716527588916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1015649866194381065&amp;postID=2412069716527588916' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/2412069716527588916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/2412069716527588916'/><link rel='alternate' type='text/html' href='http://tecserver.blogspot.com/2009/07/ffmpeg-video-conversion-tool.html' title='FFMPEG  - Video conversion tool'/><author><name>KiranKrishnan</name><uri>http://www.blogger.com/profile/17570209633840524151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://img4.orkut.com/images/medium/1197784350/32413565.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1015649866194381065.post-3092898556022665136</id><published>2009-07-17T09:52:00.000-07:00</published><updated>2009-07-17T09:56:47.738-07:00</updated><title type='text'>Groovy - Java's scripting Language</title><content type='html'>Groovy is an object-oriented programming language for the Java Platform as an alternative to the Java programming language. It is a dynamic language with features similar to those of Python, Ruby, Perl, and Smalltalk. It can be used as a scripting language for the Java Platform.&lt;br /&gt;&lt;br /&gt;Groovy uses a Java-like parentheses syntax. It is dynamically compiled to Java Virtual Machine bytecode and works seamlessly with other Java code and libraries. The Groovy compiler generates standard Java bytecode, which can be used by any Java project. Most Java code is also syntactically valid Groovy.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Resources&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://groovy.codehaus.org/Documentation" target="_blank"&gt;Groovy Documentation&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://onjava.com/pub/a/onjava/2004/09/29/groovy.html" target="_blank"&gt;More about Groovy&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://groovy.codehaus.org/" target="_blank"&gt;Groovy Home&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1015649866194381065-3092898556022665136?l=tecserver.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tecserver.blogspot.com/feeds/3092898556022665136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1015649866194381065&amp;postID=3092898556022665136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/3092898556022665136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/3092898556022665136'/><link rel='alternate' type='text/html' href='http://tecserver.blogspot.com/2009/07/groovey-javas-scripting-language.html' title='Groovy - Java&apos;s scripting Language'/><author><name>KiranKrishnan</name><uri>http://www.blogger.com/profile/17570209633840524151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://img4.orkut.com/images/medium/1197784350/32413565.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1015649866194381065.post-2761081854440665997</id><published>2009-07-17T09:02:00.000-07:00</published><updated>2009-07-17T09:15:37.720-07:00</updated><title type='text'>PHP Scripts 1- Basic Validator</title><content type='html'>Form validation is an essential part of web programming, whatever server side scripting we are using. Client side validation can be done with the help of Javascript.&lt;br /&gt;But the server side validation is also required, if the client browser disabled its Javascript Features.&lt;br /&gt;&lt;br /&gt;Here , you can find a sample code written in PHP for form validation.&lt;br /&gt;Beginners can modify the code or learn the underlying principle of the validator script.&lt;br /&gt;&lt;br /&gt;F&lt;?php&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; /*&lt;br /&gt;   * Class Validator()&lt;br /&gt;   * general Purpose validation Script for PHP Validation on Elements&lt;br /&gt;   * Use the validator constructor for setting values which needs the validation&lt;br /&gt;   * Invoke validate method for vaidation test&lt;br /&gt; */&lt;br /&gt; &lt;br /&gt; class Validator&lt;br /&gt; {&lt;br /&gt;  private $validateFields;&lt;br /&gt;  public  $errorMessage;&lt;br /&gt;  &lt;br /&gt;  /*&lt;br /&gt;   * Constructor&lt;br /&gt;   * Param $args - Validation elements and rules&lt;br /&gt;  */&lt;br /&gt;  &lt;br /&gt;  function __construct($args)&lt;br /&gt;  {&lt;br /&gt;   $this-&gt;validateFields = $args;&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  /*&lt;br /&gt;   * Validationn for Email &lt;br /&gt;   * Param $string - String&lt;br /&gt;  */&lt;br /&gt;  &lt;br /&gt;  function validateEmail($string)&lt;br /&gt;  {&lt;br /&gt;   $pattern = "/([a-zA-Z0-9._\&amp;\*-]*)@([a-zA-Z0-9._-]*).([a-zA-Z0-9]{2,})/";&lt;br /&gt;   if(preg_match($pattern,$string)){&lt;br /&gt;    return true;&lt;br /&gt;   }else{&lt;br /&gt;    return false;&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  /*&lt;br /&gt;   * Validation for URL&lt;br /&gt;   * Param $string - String &lt;br /&gt;  */&lt;br /&gt;  &lt;br /&gt;  function validateUrl($string)&lt;br /&gt;  {&lt;br /&gt;   $pattern = "/(http|https):\/\/([a-zA-Z0-9_.-]*).([a-zA-z0-9]{2,})/";&lt;br /&gt;   if(preg_match($pattern,$string)){&lt;br /&gt;    return true;&lt;br /&gt;   }else{&lt;br /&gt;    return false;&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  /*&lt;br /&gt;   * Validate For Null&lt;br /&gt;   * Param String &lt;br /&gt;  */&lt;br /&gt;  &lt;br /&gt;  function validateNull($string)&lt;br /&gt;  {&lt;br /&gt;   if(is_null($string)){&lt;br /&gt;    return true;&lt;br /&gt;   }else{&lt;br /&gt;    return false;&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;  /*&lt;br /&gt;    * Validate for numeric &lt;br /&gt;  */&lt;br /&gt;  function validateNumeric($string)&lt;br /&gt;  {&lt;br /&gt;   if(is_numeric($string)){&lt;br /&gt;    return true;&lt;br /&gt;   }else{&lt;br /&gt;    return false;&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  /*&lt;br /&gt;   * Validte for Empty&lt;br /&gt;   * Param $string - String&lt;br /&gt;  */&lt;br /&gt;  &lt;br /&gt;  function validateEmpty($string)&lt;br /&gt;  {&lt;br /&gt;   $string = trim($string);&lt;br /&gt;   if($string =="" || is_null($string)){&lt;br /&gt;    return true;&lt;br /&gt;   }else{&lt;br /&gt;    return false;&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;  /*&lt;br /&gt;    * Validate for special chars &lt;br /&gt;  */&lt;br /&gt;  function validateSpecial($string)&lt;br /&gt;  {&lt;br /&gt;   $specials= array("!","@","#","$","%","^","&amp;","*","(",")","_","-","=","+","'","\"",".",",",":",";");&lt;br /&gt;   $string = trim($string);&lt;br /&gt;   $count = 0;&lt;br /&gt;   for($i=0;$i&lt;strlen($string);$i++){&lt;br /&gt;    if(in_array($string[$i],$specials)){&lt;br /&gt;     $count++;&lt;br /&gt;    }&lt;br /&gt;   }&lt;br /&gt;   &lt;br /&gt;   if($count&gt;0){&lt;br /&gt;    return true;&lt;br /&gt;   }else{&lt;br /&gt;    return false;&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  /*&lt;br /&gt;   * Set Error Message&lt;br /&gt;   * Param $string - String Mesage&lt;br /&gt;  */&lt;br /&gt;  &lt;br /&gt;  function setError($string)&lt;br /&gt;  {&lt;br /&gt;   $this-&gt;errorMessage = $string;&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  /*&lt;br /&gt;   * Get Error Message&lt;br /&gt;  */&lt;br /&gt;  &lt;br /&gt;  function getMessage()&lt;br /&gt;  {&lt;br /&gt;   return $this-&gt;errorMessage;&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  /*&lt;br /&gt;   * Validate Fields&lt;br /&gt;   * Validation based on field values and Rules applied &lt;br /&gt;  */&lt;br /&gt;  function validate()&lt;br /&gt;  {&lt;br /&gt;   if(count($this-&gt;validateFields)==0 || !is_array($this-&gt;validateFields)){&lt;br /&gt;    return false;&lt;br /&gt;   }else{&lt;br /&gt;    $error = 0;&lt;br /&gt;    $fieldPos=1;&lt;br /&gt;    //First Validate For Empty on all fields //&lt;br /&gt;    foreach($this-&gt;validateFields as $key=&gt;$val){&lt;br /&gt;     &lt;br /&gt;     $checkedError = 0;&lt;br /&gt;     $parts = explode("/",$val);&lt;br /&gt;     $label = $parts[0];&lt;br /&gt;     $valids = explode("|",$parts[1]); &lt;br /&gt;     if(in_array("EMPTY",$valids) &amp;&amp; $checkedError==0){&lt;br /&gt;      if($this-&gt;validateEmpty($key)){&lt;br /&gt;       $error++;&lt;br /&gt;       $this-&gt;setError("Enter Mandatory Fields ");&lt;br /&gt;       $checkedError = 1;&lt;br /&gt;       break;&lt;br /&gt;      }&lt;br /&gt;     }&lt;br /&gt;     $fieldPos++;&lt;br /&gt;     &lt;br /&gt;    }&lt;br /&gt;    if($error==0){&lt;br /&gt;     $fieldPos=1;&lt;br /&gt;     foreach($this-&gt;validateFields as $key=&gt;$val){&lt;br /&gt;     &lt;br /&gt;      $checkedError = 0;&lt;br /&gt;      $parts = explode("/",$val);&lt;br /&gt;      $label = $parts[0];&lt;br /&gt;      $valids = explode("|",$parts[1]);      &lt;br /&gt;      if(in_array("EMAIL",$valids)){&lt;br /&gt;       if(!$this-&gt;validateEmail($key) &amp;&amp; $checkedError==0 &amp;&amp; $error==0){&lt;br /&gt;        $error++;&lt;br /&gt;        $this-&gt;setError("Invalid email id in field -".$label."-");&lt;br /&gt;        $checkedError=1;&lt;br /&gt;        break;&lt;br /&gt;       }&lt;br /&gt;      }      &lt;br /&gt;      if(in_array("NUMBER",$valids)){&lt;br /&gt;       if(!$this-&gt;validateNumeric($key) &amp;&amp; $checkedError==0 &amp;&amp; $error==0){&lt;br /&gt;        $error++;&lt;br /&gt;        $this-&gt;setError("Enter Numeric in field -".$label."-");&lt;br /&gt;        $checkedError=1;&lt;br /&gt;        break;&lt;br /&gt;       }&lt;br /&gt;      }&lt;br /&gt;      if(in_array("FILTER",$valids)){&lt;br /&gt;       if($this-&gt;validateSpecial($key) &amp;&amp; $checkedError==0 &amp;&amp; $error==0){&lt;br /&gt;        $error++;&lt;br /&gt;        $this-&gt;setError("Special chars not allowed in field -".$label."-");&lt;br /&gt;        $checkedError=1;&lt;br /&gt;        break;&lt;br /&gt;       }&lt;br /&gt;      }&lt;br /&gt;      &lt;br /&gt;      if(in_array("URL",$valids)){&lt;br /&gt;       if(!$this-&gt;validateUrl($key) &amp;&amp; $checkedError==0 &amp;&amp; $error==0){&lt;br /&gt;        $error++;&lt;br /&gt;        $this-&gt;setError("Invalid website address in field -".$label."-");&lt;br /&gt;        $checkedError=1;&lt;br /&gt;        break;&lt;br /&gt;       }&lt;br /&gt;      }&lt;br /&gt;      $fieldPos++;&lt;br /&gt;     }&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;   }    &lt;br /&gt;   &lt;br /&gt;   if($error==0){&lt;br /&gt;   return true;&lt;br /&gt;   }else{&lt;br /&gt;    return false;&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Using the validator class&lt;br /&gt;&lt;br /&gt;$array = array(      $name=&gt;"LABEL1/EMPTY",&lt;br /&gt;$lastname=&gt;"LABEL2/EMPTY",       $email=&gt;"LABEL3/EMAIL|EMPTY",       $url=&gt;"LABEL4/URL",&lt;br /&gt;$url1=&gt;"LABEL5/URL|EMPTY",&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;$obj = new Validator($array);&lt;br /&gt;if($obj -&gt; validate()){&lt;br /&gt; echo "Validation Success";&lt;br /&gt;}else{&lt;br /&gt; echo $obj-&gt;getMessage();&lt;br /&gt;}&lt;br /&gt;//Validator constructor takes an array input contains, the Fields and Validation criteria&lt;br /&gt;ex : $name=&gt;"Username/EMPTY|FILTER"&lt;br /&gt;$name - field to be validates&lt;br /&gt;Username - Caption or the bales for the $name (Just to know which field it is)&lt;br /&gt;EMPTY|FILTER - validation criteria seperated by | (Multiple validation methods)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1015649866194381065-2761081854440665997?l=tecserver.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tecserver.blogspot.com/feeds/2761081854440665997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1015649866194381065&amp;postID=2761081854440665997' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/2761081854440665997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/2761081854440665997'/><link rel='alternate' type='text/html' href='http://tecserver.blogspot.com/2009/07/php-scripts-1-basic-validator.html' title='PHP Scripts 1- Basic Validator'/><author><name>KiranKrishnan</name><uri>http://www.blogger.com/profile/17570209633840524151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://img4.orkut.com/images/medium/1197784350/32413565.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1015649866194381065.post-6927182325303276855</id><published>2009-07-17T08:34:00.000-07:00</published><updated>2009-07-17T08:43:03.755-07:00</updated><title type='text'>Cloud Computing</title><content type='html'>Cloud computing is a general term for anything that involves delivering hosted services over the Internet. These services are broadly divided into three categories: Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS). The name cloud computing was inspired by the cloud symbol that's often used to represent the Internet in flow charts and diagrams. &lt;br /&gt;&lt;br /&gt;A cloud can be private or public. A public cloud sells services to anyone on the Internet. (Currently, Amazon Web Services is the largest public cloud provider.) A private cloud is a proprietary network or a data center that supplies hosted services to a limited number of people. When a service provider uses public cloud resources to create their private cloud, the result is called a virtual private cloud. Private or public, the goal of cloud computing is to provide easy, scalable access to computing resources and IT services.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Resources&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ruby.about.com/od/reviewsevents/a/cloudcomputing.htm" target="_blank"&gt;Defenition From ABOUT&lt;/a&gt; &lt;br&gt;&lt;br /&gt;&lt;a href="http://searchcloudcomputing.techtarget.com/sDefinition/0,,sid201_gci1287881,00.html" target="_blank"&gt;Web Defenition&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1015649866194381065-6927182325303276855?l=tecserver.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tecserver.blogspot.com/feeds/6927182325303276855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1015649866194381065&amp;postID=6927182325303276855' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/6927182325303276855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/6927182325303276855'/><link rel='alternate' type='text/html' href='http://tecserver.blogspot.com/2009/07/cloud-computing.html' title='Cloud Computing'/><author><name>KiranKrishnan</name><uri>http://www.blogger.com/profile/17570209633840524151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://img4.orkut.com/images/medium/1197784350/32413565.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1015649866194381065.post-138473104714768094</id><published>2009-07-17T08:18:00.000-07:00</published><updated>2009-07-17T08:22:56.856-07:00</updated><title type='text'>USB 3.0 , Promises Faster Speeds</title><content type='html'>USB 3.0 is the next major revision of the ubiquitous Universal Serial Bus, created in 1996 by a consortium of companies led by Intel to dramatically simplify the connection between host computer and peripheral devices. Fast forwarding to 2009, USB 2.0 has been firmly entrenched as the de-facto interface standard in the PC world for years (with about 6 billion devices sold), and yet still the need for more speed by ever faster computing hardware and ever greater bandwidth demands again drive us to where a couple of hundred megabits per second is just not fast enough.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;USB 3.0 (aka "SuperSpeed USB") promises to increase performance by a factor of 10, pushing the theoretical maximum throughput of the connector all the way up to 4.8 gigabits per second, or processing roughly the equivalent of an entire CD-R disc every second. USB 3.0 devices will use a slightly different connector, but USB 3.0 ports are expected to be backward-compatible with current USB plugs, and vice versa. USB 3.0 should also greatly enhance the power efficiency of USB devices, while increasing the juice (nearly one full amp, up from 0.1 amps) available to them. That means faster charging times for your iPod--and probably even more bizarre USB-connected gear like the toy rocket launchers and beverage coolers that have been festooning people's desks.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Features&lt;/span&gt;&lt;br /&gt;    * Higher transfer rates (up to 4.8 Gbps)&lt;br /&gt;    * Increased maximum bus power and increased device current draw to better accommodate power-hungry devices&lt;br /&gt;    * New power management features&lt;br /&gt;    * Full-duplex data transfers and support for new transfer types&lt;br /&gt;    * New connectors and cables for higher speed data transfer...although they are backwards compatible with USB 2.0 devices and computers (more on this later) &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Resources&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;a href="http://www.everythingusb.com/superspeed-usb.html#1" target="_blank"&gt;What is USB 3&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.nideesh.in/index.php/component/content/article/1-latest-news/90-usb-30-speeds-up-performance-on-external-devices.html"&gt;Faster Performance&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.electronicsweekly.com/Articles/2009/06/23/46324/usb-3.0-a-simple-idea-full-of-challenges.htm"&gt;USB 2 Idea&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1015649866194381065-138473104714768094?l=tecserver.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tecserver.blogspot.com/feeds/138473104714768094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1015649866194381065&amp;postID=138473104714768094' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/138473104714768094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/138473104714768094'/><link rel='alternate' type='text/html' href='http://tecserver.blogspot.com/2009/07/usb-30-promises-faster-speeds.html' title='USB 3.0 , Promises Faster Speeds'/><author><name>KiranKrishnan</name><uri>http://www.blogger.com/profile/17570209633840524151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://img4.orkut.com/images/medium/1197784350/32413565.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1015649866194381065.post-1529429739775030823</id><published>2009-07-17T08:06:00.000-07:00</published><updated>2009-07-17T08:13:56.907-07:00</updated><title type='text'>Subversion - Version Control with Subversion</title><content type='html'>Subversion is a free/open source version control system. That is, Subversion manages files and directories, and the changes made to them, over time. This allows you to recover older versions of your data or examine the history of how your data changed. In this regard, many people think of a version control system as a sort of “time machine.”&lt;br /&gt;Some version control systems are also software configuration management (SCM) systems. These systems are specifically tailored to manage trees of source code and have many features that are specific to software development—such as natively understanding programming languages, or supplying tools for building software. Subversion, however, is not one of these systems. It is a general system that can be used to manage any collection of files. For you, those files might be source code—for others, anything from grocery shopping lists to digital video mixdowns and beyond.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Subversion's Components&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;svn&lt;br /&gt;&lt;br /&gt;    The command-line client program&lt;br /&gt;svnversion&lt;br /&gt;&lt;br /&gt;    A program for reporting the state (in terms of revisions of the items present) of a working copy&lt;br /&gt;svnlook&lt;br /&gt;&lt;br /&gt;    A tool for directly inspecting a Subversion repository&lt;br /&gt;svnadmin&lt;br /&gt;&lt;br /&gt;    A tool for creating, tweaking, or repairing a Subversion repository&lt;br /&gt;mod_dav_svn&lt;br /&gt;&lt;br /&gt;    A plug-in module for the Apache HTTP Server, used to make your repository available to others over a network&lt;br /&gt;svnserve&lt;br /&gt;&lt;br /&gt;    A custom standalone server program, runnable as a daemon process or invokable by SSH; another way to make your repository available to others over a network.&lt;br /&gt;svndumpfilter&lt;br /&gt;&lt;br /&gt;    A program for filtering Subversion repository dump streams&lt;br /&gt;svnsync&lt;br /&gt;&lt;br /&gt;    A program for incrementally mirroring one repository to another over a network&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Repository&lt;/span&gt;&lt;br /&gt;Subversion is a centralized system for sharing information. At its core is a repository, which is a central store of data. The repository stores information in the form of a filesystem tree—a typical hierarchy of files and directories. Any number of clients connect to the repository, and then read or write to these files. By writing data, a client makes the information available to others; by reading data, the client receives information from others&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Resources&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://subversion.tigris.org/" target="_blank"&gt;Subversion Home&lt;/a&gt;&lt;br&gt;&lt;br /&gt;&lt;a href="http://svnbook.red-bean.com/" target="_blank"&gt;subversion Book&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1015649866194381065-1529429739775030823?l=tecserver.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tecserver.blogspot.com/feeds/1529429739775030823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1015649866194381065&amp;postID=1529429739775030823' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/1529429739775030823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/1529429739775030823'/><link rel='alternate' type='text/html' href='http://tecserver.blogspot.com/2009/07/subversion-version-control-with.html' title='Subversion - Version Control with Subversion'/><author><name>KiranKrishnan</name><uri>http://www.blogger.com/profile/17570209633840524151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://img4.orkut.com/images/medium/1197784350/32413565.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1015649866194381065.post-9084414100717257946</id><published>2009-07-17T07:44:00.000-07:00</published><updated>2009-07-17T07:54:04.269-07:00</updated><title type='text'>Android</title><content type='html'>Android is a mobile operating system running on the Linux kernel. It was initially developed by Google and later the Open Handset Alliance. It allows developers to write managed code in the Java language, controlling the device via Google-developed Java libraries.&lt;br /&gt;&lt;br /&gt;The unveiling of the Android platform on 5 November 2007 was announced with the founding of the Open Handset Alliance, a consortium of 48 hardware, software, and telecom companies devoted to advancing open standards for mobile devices. Google released most of the Android code under the Apache License, a free-software and open source license.&lt;br /&gt;&lt;br /&gt;Android™ delivers a complete set of software for mobile devices: an operating system, middleware and key mobile applications. The Android Software Development Kit (SDK) is now available.&lt;br /&gt;&lt;br /&gt;Android was built from the ground-up to enable developers to create compelling mobile applications that take full advantage of all a handset has to offer. It was built to be truly open. For example, an application can call upon any of the phone's core functionality such as making calls, sending text messages, or using the camera, allowing developers to create richer and more cohesive experiences for users. Android is built on the open Linux Kernel. Furthermore, it utilizes a custom virtual machine that was designed to optimize memory and hardware resources in a mobile environment. Android is open source; it can be liberally extended to incorporate new cutting edge technologies as they emerge. The platform will continue to evolve as the developer community works together to build innovative mobile applications.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Resources&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.android.com/" target="_blank"&gt;Andriod Official website&lt;/a&gt;&lt;br&gt;&lt;a href="http://code.google.com/android/ "  target="_blank"&gt;Google Projects&lt;/a&gt;&lt;br&gt;&lt;a href="http://www.openhandsetalliance.com/android_overview.html" target="_blank"&gt;Open Handest Alliance&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1015649866194381065-9084414100717257946?l=tecserver.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tecserver.blogspot.com/feeds/9084414100717257946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1015649866194381065&amp;postID=9084414100717257946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/9084414100717257946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1015649866194381065/posts/default/9084414100717257946'/><link rel='alternate' type='text/html' href='http://tecserver.blogspot.com/2009/07/android.html' title='Android'/><author><name>KiranKrishnan</name><uri>http://www.blogger.com/profile/17570209633840524151</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://img4.orkut.com/images/medium/1197784350/32413565.jpg'/></author><thr:total>0</thr:total></entry></feed>
