<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>Programmer Eye</title><description>Keep in touch with latest News, Technology, Game Reviews and Programming tips and tools</description><managingEditor>noreply@blogger.com (Anonymous)</managingEditor><pubDate>Sun, 16 Nov 2025 03:12:44 -0800</pubDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">136</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><link>http://programmereye.blogspot.com/</link><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:keywords>Programmereye,programming,gadgets,reviews,technology,technews</itunes:keywords><itunes:summary>Keep in touch with latest News, Technology, Game Reviews and Programming tips and tools</itunes:summary><itunes:subtitle>Programmer Eye</itunes:subtitle><itunes:category text="Games &amp; Hobbies"><itunes:category text="Video Games"/></itunes:category><itunes:category text="News &amp; Politics"/><itunes:category text="Technology"><itunes:category text="Software How-To"/></itunes:category><itunes:category text="Technology"><itunes:category text="Gadgets"/></itunes:category><itunes:category text="Technology"><itunes:category text="Tech News"/></itunes:category><itunes:author>Ibrahim Soomro</itunes:author><itunes:owner><itunes:email>noreply@blogger.com</itunes:email><itunes:name>Ibrahim Soomro</itunes:name></itunes:owner><xhtml:meta content="noindex" name="robots" xmlns:xhtml="http://www.w3.org/1999/xhtml"/><item><title>Future of smartphone Biomatrics</title><link>http://programmereye.blogspot.com/2013/09/future-of-smartphone-biomatrics.html</link><category>News</category><category>Technology</category><pubDate>Sun, 15 Sep 2013 13:52:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-8586908456631841261</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOW7jzHI0qKvl2W3A80JBL3YcOSKmBW1HhRp5FJzCRcemhd2BOp13M4tB9Cae5hwjw8DfCGTvVthqNJ2Ph9X_6p3G6B8iq2FQZDoaut3Hw1RZAr7btB96bns8jcWwjyyhgcgX2dvpe130/s1600/AbraxSys+touch+screen+image.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="214" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOW7jzHI0qKvl2W3A80JBL3YcOSKmBW1HhRp5FJzCRcemhd2BOp13M4tB9Cae5hwjw8DfCGTvVthqNJ2Ph9X_6p3G6B8iq2FQZDoaut3Hw1RZAr7btB96bns8jcWwjyyhgcgX2dvpe130/s320/AbraxSys+touch+screen+image.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Trebuchet MS, sans-serif;"&gt;Sorry, Apple. The fingerprint recognition feature on the
upcoming iPhone 5s, Touch ID, might be eye-catching, but you still have to log
into your device. Identifying someone by the way they tap and swipe on a
touchscreen might be the more natural, unobtrusive future of smartphone
biometricsMovie Camera.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Trebuchet MS, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Trebuchet MS, sans-serif;"&gt;Developed by Cheng Bo at the Illinois Institute of
Technology and his colleagues, SilentSense does just that. Using the phone's
built-in sensors, it records the unique patterns of pressure, duration and
fingertip size and position each user exhibits when interacting with their
phone or tablet.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Trebuchet MS, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Trebuchet MS, sans-serif;"&gt;Machine learning algorithms then turn this into a signature
that identifies the user – and will lock out anyone whose usage patterns do not
match.&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Trebuchet MS, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Trebuchet MS, sans-serif;"&gt;To increase the system's accuracy, the smartphone's
accelerometer and gyroscope measure how much the screen moves when you are
jabbing at it. They can also pick up on your unique gait as you walk while
using the screen.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Trebuchet MS, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Trebuchet MS, sans-serif;"&gt;"Different users, dependent on sex and age among other
things, will have different habits in interacting," says Bo.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Trebuchet MS, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Trebuchet MS, sans-serif;"&gt;In tests, 100 users were told to use the smartphone's
touchscreen as they would normally. SilentSense was able to identify the
phone's owner with 99 per cent accuracy after no more than 10 taps. Even with
an average of 2.3 touches the system was able to verify the user 98 per cent of
the time.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Trebuchet MS, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Trebuchet MS, sans-serif;"&gt;To save on power, the software stops checking the user's
identity when apps like games are being used. To maintain security, it
automatically switches on when more sensitive applications, such as email or
SMS, are accessed.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Trebuchet MS, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Trebuchet MS, sans-serif;"&gt;"This is interesting, creative research," says
Kevin Bowyer, a biometrics researcher at the University of Notre Dame, Indiana.
"It could help preserve privacy if the phone could recognise if the owner
or a guest was using it and lock guests out of some applications."&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Trebuchet MS, sans-serif;"&gt;&lt;span style="background-color: white; font-size: 10pt; line-height: 115%;"&gt;Journal reference:&lt;span class="apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://arxiv.org/abs/1309.0073v1"&gt;&lt;span style="background-color: white; background-position: initial initial; background-repeat: initial initial; border: 1pt none windowtext; color: #34a3d1; font-size: 10pt; line-height: 115%; padding: 0in; text-decoration: none;"&gt;arXiv:1309.0073v1&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOW7jzHI0qKvl2W3A80JBL3YcOSKmBW1HhRp5FJzCRcemhd2BOp13M4tB9Cae5hwjw8DfCGTvVthqNJ2Ph9X_6p3G6B8iq2FQZDoaut3Hw1RZAr7btB96bns8jcWwjyyhgcgX2dvpe130/s72-c/AbraxSys+touch+screen+image.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item><item><title>CryEngine 3 vs Frostbite 3</title><link>http://programmereye.blogspot.com/2013/09/cryengine-3-vs-frostbite-3.html</link><category>Frostbite</category><category>Games</category><category>Gaming Engine</category><pubDate>Sun, 15 Sep 2013 04:59:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-3296286792333488885</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div style="background: white;"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFwTyv6lx5FSAM2l6viPczOAZLxrnGTeN2wJL3OJLNMcGJqMCN2Cv1KGe2RHYEvLLRvCnzX70-mzVraMJaInqWmxyAfAbE9oCYvAe1FJifqTUp6A7iu9BtxSI6qFkF11txoLGb6HUx_OM/s1600/Crysis-3-Wallpaper-Cry-Engine-3-yuiphone-1920x1080.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="112" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFwTyv6lx5FSAM2l6viPczOAZLxrnGTeN2wJL3OJLNMcGJqMCN2Cv1KGe2RHYEvLLRvCnzX70-mzVraMJaInqWmxyAfAbE9oCYvAe1FJifqTUp6A7iu9BtxSI6qFkF11txoLGb6HUx_OM/s200/Crysis-3-Wallpaper-Cry-Engine-3-yuiphone-1920x1080.png" width="200" /&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFwTyv6lx5FSAM2l6viPczOAZLxrnGTeN2wJL3OJLNMcGJqMCN2Cv1KGe2RHYEvLLRvCnzX70-mzVraMJaInqWmxyAfAbE9oCYvAe1FJifqTUp6A7iu9BtxSI6qFkF11txoLGb6HUx_OM/s1600/Crysis-3-Wallpaper-Cry-Engine-3-yuiphone-1920x1080.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqDu-LIynM9_JCXeQGopbKwWIL3SIqgjHup02zmsYxLfrknNKaBM8WOEtFdd6ZPD0mtsjqsw4tlxdkK_GZookgVLXB0oaJTOx6pOFrd0RnGX8X9LSD1MtcbdrrURUdvrvIgGiFdPCKFMU/s1600/frostbite_3_wide.jpg" imageanchor="1" style="clear: right; display: inline !important; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="105" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqDu-LIynM9_JCXeQGopbKwWIL3SIqgjHup02zmsYxLfrknNKaBM8WOEtFdd6ZPD0mtsjqsw4tlxdkK_GZookgVLXB0oaJTOx6pOFrd0RnGX8X9LSD1MtcbdrrURUdvrvIgGiFdPCKFMU/s200/frostbite_3_wide.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Trebuchet MS', sans-serif;"&gt;Although there is much
debate and speculation regarding the competition between the upcoming next gen
consoles and the various producers waiting to promote their latest game
releases, it’s easy to forget that the competition is also rife in software
development. There is no better example of this competition than between the
established CryEngine 3 by German Developers Crytek, the engine being used in
games such as Sniper: Ghost Warrior 2 and Crysis 2. The competitor is the
upcoming Frostbite 3 engine by Swedish developer DICE, which has been showcased
during E3 in the incredible gameplay demo of Battlefield 4.&lt;/span&gt;&lt;/div&gt;
&lt;div style="background: white;"&gt;
&lt;span style="font-family: Trebuchet MS, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;
&lt;span style="font-family: Trebuchet MS, sans-serif;"&gt;One
of the first things that people will assess when comparing the two engines will
be the visual/graphical comparisons, and after comparing the two engines I feel
the award for the most visually impressive must go to the Frostbite 3. The
graphical display on Battlefield 4 was simply amazing, showcasing the clear
crisp graphics, excellent framerate, clear sound effects, shadowing, lighting,
speedy rendering, and the support for huge open world maps. All of this was a
clear demonstration of both the excellent graphical capabilities of the
software, but also a clear demonstration that the next gen consoles are capable
of running the engine without any compatibility or processing problems.&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;
&lt;span style="font-family: Trebuchet MS, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7eAAwWR-Y7zY3Est60MK_x6N5W2EBo2PqZIrJGCge3oQI0-jorHfQ5UxBIQWYMIlrxQ8p9ZHrraRDdB7T0pfILB1qvubsqb4ky9yTCfJj6wHCjzFBr0stBfTOuk07WC0hGZwDcJsg8Xo/s1600/battlefield_4_m4a1.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="112" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7eAAwWR-Y7zY3Est60MK_x6N5W2EBo2PqZIrJGCge3oQI0-jorHfQ5UxBIQWYMIlrxQ8p9ZHrraRDdB7T0pfILB1qvubsqb4ky9yTCfJj6wHCjzFBr0stBfTOuk07WC0hGZwDcJsg8Xo/s200/battlefield_4_m4a1.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
&amp;nbsp;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjidzIeqor4810DvJ6259ukPtPZAONyxMBniBmiH24EknszqkTnjSZg-cqEAW6DujFuZCNfHhyphenhyphenllHyc6I-2lhZlRGbZ2qvch2QMZpWUMYbB2LU3DyjU1FGDf0XcNLiFPpKxuY5tZcrbceI/s1600/Crysis2+Hardcore+gfx+mode.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img border="0" height="112" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjidzIeqor4810DvJ6259ukPtPZAONyxMBniBmiH24EknszqkTnjSZg-cqEAW6DujFuZCNfHhyphenhyphenllHyc6I-2lhZlRGbZ2qvch2QMZpWUMYbB2LU3DyjU1FGDf0XcNLiFPpKxuY5tZcrbceI/s200/Crysis2+Hardcore+gfx+mode.jpg" width="200" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="background: white;"&gt;
&lt;span style="font-family: Trebuchet MS, sans-serif;"&gt;Both Engines are stunning
to look at, but I still find myself drawn more to the Frostbite 3.&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background: white;"&gt;
&lt;span style="font-family: Trebuchet MS, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;
&lt;span style="font-family: Trebuchet MS, sans-serif;"&gt;Compare
that with the CryEngine which, to its credit, wowed us with its own display of
graphical, sounds, and quality when showcasing Crysis 2 on the PC. Also any
issue of its redundancy on next gen consoles was dismissed by Crytek who stated
on their website the engine will be compatible for supporting games on next
gen. Also, although I feel the graphics are better on the Frostbite Engine, the
CryEngine does appear to have a more colorful look and more emphasis on
character models, although both engines seem to adopt a dark and dusty tinge,
possibly to try and make the game world look more realistic.&lt;span style="font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style="background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;
&lt;span style="font-family: Trebuchet MS, sans-serif;"&gt;However
in one area that I do feel the Frostbite 3 engine is indeed far superior, is in
its performance. One of the most glaring problems attributed to the CryEngine 3
is its apparent favoritism towards the PC platform. Although Crytek claims the
engine was designed specifically to allow more compatibility with consoles,
this did not translate in graphics, rendering, or performance, which was
average at best when compared to the PC. In the case of the Frostbite 3 engine
the development has been made for the use of next gen gaming as a priority, and
as such will not only be able to flex its ‘graphical muscles’ in high profile
events, but do so on what will soon be the best selling gaming devices on the
planet.&lt;/span&gt;&lt;span style="font-family: Tahoma, sans-serif; font-size: 13.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFwTyv6lx5FSAM2l6viPczOAZLxrnGTeN2wJL3OJLNMcGJqMCN2Cv1KGe2RHYEvLLRvCnzX70-mzVraMJaInqWmxyAfAbE9oCYvAe1FJifqTUp6A7iu9BtxSI6qFkF11txoLGb6HUx_OM/s72-c/Crysis-3-Wallpaper-Cry-Engine-3-yuiphone-1920x1080.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item><item><title>Assigning IP address (Cisco Router)</title><link>http://programmereye.blogspot.com/2013/09/assigning-ip-address-cisco-router.html</link><category>CCNA guide</category><category>Routing</category><pubDate>Sun, 8 Sep 2013 01:28:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-1213414094416993994</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;h3&gt;
&amp;nbsp;&lt;span id="goog_441737200"&gt;&lt;/span&gt;&lt;span id="goog_441737201"&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h4&gt;
&lt;/h4&gt;
&lt;div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp;Here I am taking the Equipment&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - &amp;nbsp;Cisco 2811&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - &amp;nbsp;Serial DCE&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - &amp;nbsp;WIC-2T&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;h3&gt;
&lt;b&gt;&amp;nbsp;&lt;u&gt;Assigning IP addressing&lt;/u&gt;&amp;nbsp;:&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Must keep in mind that every communication is based on IP, without IP&amp;nbsp;you&amp;nbsp;cannot do anything&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;u&gt;Configuration&lt;/u&gt;&amp;nbsp;:&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- &amp;nbsp;Router&amp;gt; enable&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;Switch to enable Mode&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - &amp;nbsp;Route#&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Now we are switch mode, For configuring Our router we should&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;move to configuration mode&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - &amp;nbsp;Router#config t&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;After that you'll move to &amp;nbsp;config mode&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - &amp;nbsp;Router(config)#&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Now move to that serial on which wire is connected&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;In my example it 0/3/0&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -&amp;nbsp;&lt;/b&gt;&lt;b&gt;&amp;nbsp;Router(config)# int s 0/3/0&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Now we are at interface serial 0/3/0&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Here we have to assign the ip address&amp;nbsp;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- &amp;nbsp;Router (config-if)#ip address 1.1.1.3 255.0.0.0&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; In this command after right next to ip address the ip address&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; you want to assign and then after that the subnet of that class&amp;nbsp;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; is written&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -&amp;nbsp;&lt;/b&gt;&lt;b&gt;Router (config-if)# end&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;That's it IP is assigned, Same work is to be done on the other router For communication&amp;nbsp;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div style="-webkit-text-stroke-width: 0px; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;"&gt;
&lt;div style="margin: 0px;"&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item><item><title>Google Chromium project leaves WebKit to work with Blink browser engine</title><link>http://programmereye.blogspot.com/2013/08/google-chromium-project-leaves-webkit.html</link><category>News</category><pubDate>Sun, 18 Aug 2013 06:26:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-8420898418635985794</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div style="background-color: white; box-sizing: border-box; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 1.7em; margin-bottom: 0.7em;"&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;When Opera announced in February that it would&amp;nbsp;switch to the WebKit browser engine, the same basic technology that powers Chrome and Safari, critics wondered if this was a bad move for the open Web.&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; box-sizing: border-box; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 1.7em; margin-bottom: 0.7em;"&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;The worry was that browser vendors were putting too much power in the hands of one rendering engine. Many, no doubt, were recalling the years when Internet Explorer dominated browser usage requiring Web developers to cater to IE's peculiarities.&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; box-sizing: border-box; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 1.7em; margin-bottom: 0.7em;"&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;Fears of a so-called WebKit monoculture may be over now that the&amp;nbsp;Chromium Project is splitting with WebKit, an open source project created by Apple in 2001. Google will instead work on its own rendering engine called Blink, taking the new engine’s initial codebase from WebKit, a practice called forking. Chromium is the Google-led open-source browser project that supplies the code for the company's Chrome Web browser.&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; box-sizing: border-box; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 1.7em; margin-bottom: 0.7em;"&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;With the addition of Blink, there are now four major Web engines including WebKit, Mozilla's Gecko engine powering Firefox, and Microsoft's Trident for Internet Explorer.&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; box-sizing: border-box; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 1.7em; margin-bottom: 0.7em;"&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h2 style="background-color: white; box-sizing: border-box; color: #222222; font-family: facitweb, sans-serif; margin-bottom: 0.25em; margin-top: 1em;"&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;
Why the change?&lt;/span&gt;&lt;/h2&gt;
&lt;div style="background-color: white; box-sizing: border-box; color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 1.7em; margin-bottom: 0.7em;"&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;"[WebKit was] the obvious choice for Chromium's rendering engine back when we started," Google's Chromium Project said in a blog post Wednesday. "However, Chromium uses a different multi-process architecture than other WebKit-based browsers, and supporting multiple architectures over the years has led to increasing complexity for both the WebKit and Chromium projects."&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; box-sizing: border-box; color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 1.7em; margin-bottom: 0.7em;"&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;Google says that at first, there will be little difference in how Blink works as the first round of changes to the new engine will be largely architectural. Right from the start, Blink will have a smaller codebase as it eliminates from its WebKit source about 7,000 files and 4.5 million lines of code. A smaller codebase could translate into smaller download packages for new browser installations and perhaps faster start-up times for browsers.&lt;/span&gt;&lt;/div&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3ru_hwklBLtMC6AUJVgZ6DqVYIdQodwIluGcct6ei74GkLnRbE7jZeguvyNKFxgaASKke0j9EGt92URAkI4WJBaJY934kVsaKBIJrO56704Tjy0YN7kFhy1P22fhH3PW8lbervyTkKCo/s1600/chromiumimage-100031874-small.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3ru_hwklBLtMC6AUJVgZ6DqVYIdQodwIluGcct6ei74GkLnRbE7jZeguvyNKFxgaASKke0j9EGt92URAkI4WJBaJY934kVsaKBIJrO56704Tjy0YN7kFhy1P22fhH3PW8lbervyTkKCo/s1600/chromiumimage-100031874-small.png" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;Chromium Logo&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style="background-color: white; box-sizing: border-box; color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 1.7em; margin-bottom: 0.7em;"&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;&lt;span style="line-height: 1.7em;"&gt;&lt;br /&gt;Introducing a new rendering engine could either be a blessing or a boon for users and developers. Catering to multiple rendering engines can put a heavy burden on Web coders who need to make sure their sites work no matter if someone is viewing their site in Chrome, Firefox, Internet Explorer, Opera, or Safari. Even when those browsers are supposed to respect the same Web standards, minor differences in each browser can require code tweaks by developers to keep their sites working.&lt;/span&gt;Chrome and Chromium won't be the only browsers using Blink. Opera confirmed to PCWorld that it will also follow Chromium into the Blink project. When Opera announced it was going WebKit in February, the company said it would base its new browser on elements from Chromium, so the switch to Blink makes sense.&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; box-sizing: border-box; color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 1.7em; margin-bottom: 0.7em;"&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;Others, however, feared a singular Web culture ruled by the technological capacities and limitations of WebKit. There’s little doubt that WebKit is currently a dominant factor in Web development, especially when it comes to optimizing websites for mobile devices.&lt;/span&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiArmhw6Ti6jnjt1ZMe64EHIbaxM4pbaeAdCrfpCOZMj865-1A9RpeNcGIfg8B1-KfAf9mw3if0dA72tMhflyYc9Lz9UTFkdoiZZNOj0cc0u2maLCDqhVqZqQ4qJt8ykPBqmmCLH0X2Znw/s1600/akamaigraph1-100031873-large.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiArmhw6Ti6jnjt1ZMe64EHIbaxM4pbaeAdCrfpCOZMj865-1A9RpeNcGIfg8B1-KfAf9mw3if0dA72tMhflyYc9Lz9UTFkdoiZZNOj0cc0u2maLCDqhVqZqQ4qJt8ykPBqmmCLH0X2Znw/s1600/akamaigraph1-100031873-large.jpg" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="background-color: white; box-sizing: border-box; color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 1.7em; margin-bottom: 0.7em;"&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; box-sizing: border-box; color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 1.7em; margin-bottom: 0.7em;"&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;Apple's Safari for iOS and Google's Android browsers rely on WebKit and account for more than 90 percent of the mobile browser market worldwide, according to stats from Internet backbone company&amp;nbsp;Akamai Technologies. WebKit's mobile dominance even prompted Microsoft to write a blog post with guidelines on how to tweak a&amp;nbsp;WebKit-optimized site to work with Internet Explorer 10&amp;nbsp;for Windows Phone 8.&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; box-sizing: border-box; color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 1.7em; margin-bottom: 0.7em;"&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;Google says it is keenly aware that introducing a new rendering engine has the potential to break Web compatibility, but the company argues that multiple rendering engines will "spur innovation and over time improve the health of the entire open web ecosystem."&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: white; box-sizing: border-box; color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; line-height: 1.7em; margin-bottom: 0.7em;"&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;So when will we see the first version of Chrome fully powered by Blink? Google hasn’t said yet, and Opera said it cannot comment on its roadmap plans. Opera released its first beta version of Opera based on WebKit earlier in March.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3ru_hwklBLtMC6AUJVgZ6DqVYIdQodwIluGcct6ei74GkLnRbE7jZeguvyNKFxgaASKke0j9EGt92URAkI4WJBaJY934kVsaKBIJrO56704Tjy0YN7kFhy1P22fhH3PW8lbervyTkKCo/s72-c/chromiumimage-100031874-small.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item><item><title>TED TALK: Autonomous Agile Aerial Robots</title><link>http://programmereye.blogspot.com/2013/06/ted-talk-autonomous-agile-aerial-robots.html</link><category>Robotics</category><category>TED Talks</category><pubDate>Sat, 22 Jun 2013 22:26:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-6231809285248610795</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div style="text-align: left;"&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-left: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvoxr5kYu6wFvWeIKGylE0fvqvEOzTm0G-dSeCXyOZdOrlnzeygm8X-kG6nSUDYHz1C-dODXhpiNRyqDig4v_re_Lf4GgaxJNY2Uju7KJbZIL7ouEpk3PL7dhOkP9z_lNfEohy5WaWWF0/s1600/6916421151_8963f6eefc_z.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;span style="color: #444444; font-family: Trebuchet MS, sans-serif;"&gt;&lt;img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvoxr5kYu6wFvWeIKGylE0fvqvEOzTm0G-dSeCXyOZdOrlnzeygm8X-kG6nSUDYHz1C-dODXhpiNRyqDig4v_re_Lf4GgaxJNY2Uju7KJbZIL7ouEpk3PL7dhOkP9z_lNfEohy5WaWWF0/s320/6916421151_8963f6eefc_z.jpg" width="320" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span style="color: #444444; font-family: Trebuchet MS, sans-serif; font-size: small;"&gt;Autonomous Agile Aerial Robots&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div style="text-align: left;" trbidi="on"&gt;
&lt;div style="text-align: left;"&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="background-color: white; line-height: 19px; text-align: justify;"&gt;&lt;span style="color: #444444; font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;In this TedTalk, Vijay Kumar introduces autonomous agile aerial robots. These robots are related to unmanned air vehicles; also known as UAV’s. But unlike UAV’s, autonomous agile aerial robots are much smaller in comparison weighing less than 1 pound. Also, unlike UAV’s, these small robots are very agile and are able to perform very acrobatic maneuvers. In the discussion, Vijay shows the physics of how these robots are able to perform these agile maneuvers by changing rotor speeds, pitch and yaw. The robots are able to have this type of ability due to their fast processors which receive environmental input 100 times per-second and adjust controls 600 times a second. This gives these robots the ability to be aware with neighboring robots to perform group tasks like flying in formation.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;&lt;span style="background-color: white; line-height: 19px; text-align: justify;"&gt;&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="color: #444444;"&gt;&lt;span style="background-color: white; font-family: Helvetica Neue, Arial, Helvetica, sans-serif; line-height: 19px; text-align: justify;"&gt;&lt;b&gt;&lt;u&gt;Vijay Kumar's Perspective&lt;/u&gt;&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="color: #444444;"&gt;&lt;span style="background-color: #f6f6f6; font-family: Helvetica Neue, Arial, Helvetica, sans-serif; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="color: #444444;"&gt;&lt;span style="background-color: white; font-family: Helvetica Neue, Arial, Helvetica, sans-serif; line-height: 18px;"&gt;Autonomous micro aerial robots can operate in three-dimensional environments, and offer many opportunities for the field robotics community. I will describe the challenges in developing small, agile robots and our recent work in addressing these challenges. I will also discuss the problems in deploying large numbers of aerial robots with applications to cooperative manipulation and transport, construction, and exploration and mapping in indoor environments.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="color: #444444;"&gt;&lt;span style="background-color: #f6f6f6; font-family: Helvetica Neue, Arial, Helvetica, sans-serif; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="color: #444444;"&gt;&lt;span style="background-color: white; font-family: Helvetica Neue, Arial, Helvetica, sans-serif; line-height: 18px;"&gt;&lt;b&gt;&lt;u&gt;Future of UAV's&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="color: #444444;"&gt;&lt;span style="background-color: #f6f6f6; font-family: Helvetica Neue, Arial, Helvetica, sans-serif; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="background-color: white; color: #2e2e2e; font-family: Helvetica Neue, Arial, Helvetica, sans-serif; line-height: 20px; text-align: justify; word-spacing: -1px;"&gt;Future applications of UAV systems will depend on the aircraft autonomous behavior and decision capabilities. Search and Rescue is one complex possible mission and is here taken as a case study. The ReSSAC project is a multidisciplinary project at ONERA. Its main challenges are related to the architectures and algorithms for autonomous decision and information processing onboard UAVs that perform their mission in cooperation with operators. The feasibility demonstrations and results of the project are intended to be reused and extended in further studies, projects and collaborations. A first step of the project was to develop an autonomous control architecture for our two rotorcraft. In this paper, we present the current status and preliminary achievements of the ReSSAC project, especially some records of past experimental flights with our autonomous aircraft. We further discuss ongoing studies and research perspectives.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="background-color: white; color: #2e2e2e; font-family: Helvetica Neue, Arial, Helvetica, sans-serif; line-height: 20px; text-align: justify; word-spacing: -1px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="background-color: white; color: #2e2e2e; font-family: Helvetica Neue, Arial, Helvetica, sans-serif; line-height: 20px; text-align: justify; word-spacing: -1px;"&gt;&lt;b&gt;&lt;u&gt;TED TALKS Video&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif;"&gt;&lt;span style="background-color: white; color: #2e2e2e; line-height: 20px; text-align: justify; word-spacing: -1px;"&gt;&lt;b&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="background-color: white; color: #2e2e2e; text-align: justify;"&gt;&lt;span style="font-family: Helvetica Neue, Arial, Helvetica, sans-serif; line-height: 20px; word-spacing: -1px;"&gt;Vijay Kumar talks about different&amp;nbsp;functionalities&amp;nbsp;of this UAV in this video&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="background-color: white; color: #2e2e2e; font-family: Trebuchet MS, sans-serif; line-height: 20px; text-align: justify; word-spacing: -1px;"&gt;&lt;b&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="font-family: Trebuchet MS, sans-serif;"&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" mozallowfullscreen="" scrolling="no" src="http://embed.ted.com/talks/vijay_kumar_robots_that_fly_and_cooperate.html" webkitallowfullscreen="" width="560"&gt;&lt;/iframe&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvoxr5kYu6wFvWeIKGylE0fvqvEOzTm0G-dSeCXyOZdOrlnzeygm8X-kG6nSUDYHz1C-dODXhpiNRyqDig4v_re_Lf4GgaxJNY2Uju7KJbZIL7ouEpk3PL7dhOkP9z_lNfEohy5WaWWF0/s72-c/6916421151_8963f6eefc_z.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item><item><title>Intel plans strategic shift toward internet television</title><link>http://programmereye.blogspot.com/2012/03/intel-plans-strategic-shift-toward.html</link><category>Intel</category><category>News</category><pubDate>Wed, 14 Mar 2012 01:39:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-3827359412331184691</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="field field-type-text field-field-body"&gt;     &lt;div class="field-items"&gt;             &lt;div class="field-item odd"&gt;                     CHIPMAKER Intel is developing an internet-based  TV service for consumers in a strategic shift from its traditional  business, and has reportedly reached out to media companies in a bid to  obtain the rights to shows.&lt;br /&gt;
The world’s top chipmaker plans to create a “virtual cable operator”  that would offer TV channels in a bundle over the internet – via  television sets, computers, tablets and smartphones.&lt;br /&gt;
&lt;br /&gt;
The product, which the chip company wants to roll out before the end  of the year,  could use an Intel set-top box and Intel’s name.&lt;br /&gt;
&lt;br /&gt;
In October, Intel wound down its efforts to make chips for digital  “smart” TVs, although it continues to make chips for set-top boxes.&lt;br /&gt;
&lt;br /&gt;
At the same time, it formed the Intel Media business group, headed by  former BBC executive Erik Huggers, aimed at promoting digital content  on Intel-based platforms.&lt;br /&gt;
&lt;br /&gt;
An Intel spokeswoman declined to comment.&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item><item><title>Apple sued over iPhone 4S 'assistant' Siri</title><link>http://programmereye.blogspot.com/2012/03/apple-sued-over-iphone-4s-assistant.html</link><category>Apple</category><category>iPhone</category><category>News</category><pubDate>Wed, 14 Mar 2012 01:38:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-7164306800325375709</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi11Rp9X8eMSepI1H6-uqv70LNr0R-1uOHeyvXVD3eiielLACkdOhu0h9CG1SYlmSLjvYzWzQbc9JkyGE25zfTWFa1ln_ng7EOPu6v9WrnFwT0ZC20OrPFbf8WPKbhytWfnrvJn55sXYZU/s1600/siri_weird_verge13_medium.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi11Rp9X8eMSepI1H6-uqv70LNr0R-1uOHeyvXVD3eiielLACkdOhu0h9CG1SYlmSLjvYzWzQbc9JkyGE25zfTWFa1ln_ng7EOPu6v9WrnFwT0ZC20OrPFbf8WPKbhytWfnrvJn55sXYZU/s1600/siri_weird_verge13_medium.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;AN iPhone 4S buyer has sued Apple  for promising more than it delivered with automated "Siri"  voice-activated assistant software built into the coveted smartphones.&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;          &lt;br /&gt;
A suit filed in a California federal court argued that Apple  advertising touting the wonders of Siri amounted to "intentional  misrepresentation" and unfair competition, according to documents  available online yesterday.&lt;br /&gt;
Lawyers  representing a New York City man who bought an iPhone 4S want class  action status to represent millions of people who bought the latest  generation Apple smartphone.&lt;br /&gt;
&lt;br /&gt;
The suit  included Apple - which runs showing people asking Siri to help them find  restaurants, learn chords to songs, tie neck ties, and even figure out  if there is a rodeo in town - had disappointed some users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lawyers representing the iPhone 4S buyer, identified as Frank Fazio of  Brooklyn, argued that Siri claims were "misleading and deceptive" and  are calling for California-based Apple to pay unspecified damages.                      "Promptly after the purchase of his iPhone 4S, plaintiff realized that Siri was not performing as advertised," the lawsuit said.&lt;br /&gt;
&lt;br /&gt;
"For  instance, when plaintiff asked Siri for directions to a certain place,  or to locate a store, Siri either did not understand what plaintiff was  asking, or, after a very long wait time, responded with the wrong  answer."&lt;br /&gt;
Apple does not comment on pending litigation.&lt;br /&gt;
&lt;br /&gt;
Siri  has been a hit since its US debut with the iPhone 4S in October and was  even referred to as a direct challenge to Google's search engine by the  Internet giant's chairman Eric Schmidt.&lt;br /&gt;
&lt;br /&gt;
The  artificial intelligence software was derived from research conducted to  make computers more intuitive at understanding and working with  soldiers in action.&lt;br /&gt;
&lt;br /&gt;
Siri is designed to understand context so people can speak naturally when asking it questions.&lt;br /&gt;
For  example, spoken queries of "Will I need an umbrella this weekend?" and  "What is the traffic like around here?" will prompt online searches for  local weather forecasts or road conditions.&lt;br /&gt;
&lt;br /&gt;
Siri  helps make calls, send text messages or email, schedule meetings and  reminders, make notes, find local businesses, and get directions. It  will even perform mathematical calculations if asked.&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi11Rp9X8eMSepI1H6-uqv70LNr0R-1uOHeyvXVD3eiielLACkdOhu0h9CG1SYlmSLjvYzWzQbc9JkyGE25zfTWFa1ln_ng7EOPu6v9WrnFwT0ZC20OrPFbf8WPKbhytWfnrvJn55sXYZU/s72-c/siri_weird_verge13_medium.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item><item><title>LG Display supplying panels for Apple’s new iPad</title><link>http://programmereye.blogspot.com/2012/03/lg-display-supplying-panels-for-apples.html</link><category>Apple</category><category>iPad</category><category>News</category><pubDate>Wed, 14 Mar 2012 01:31:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-1395557415823844104</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div id="articles"&gt;&lt;span class="articles clearfix"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span class="articles clearfix"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLIAavkzEa7WDZrt9IQQVrVbg6VUCoiZAy0UNjOlwZHiKu68663SD9j7YfvQ4h623zRMqfeze4D92sj2jhU-484pm5wFUlrj0MIvtka-5FFcZ7zi9lssd0Q9kO5MwNUd2DrMqFG5zneQc/s1600/ipad.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLIAavkzEa7WDZrt9IQQVrVbg6VUCoiZAy0UNjOlwZHiKu68663SD9j7YfvQ4h623zRMqfeze4D92sj2jhU-484pm5wFUlrj0MIvtka-5FFcZ7zi9lssd0Q9kO5MwNUd2DrMqFG5zneQc/s320/ipad.jpg" width="290" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="articles clearfix"&gt;Flat screen maker  LG Display Co Ltd is supplying touch-screen panels for Apple Inc's new  iPad, a source close to the matter said on Wednesday.&lt;br /&gt;
&lt;br /&gt;
Bloomberg  reported earlier that Samsung Electronics Co Ltd was the sole supplier  for the new iPad, launched last week, after LG and Japan's Sharp Corp  failed to meet the US company's quality requirements, quoting an analyst  from research firm iSuppli.&lt;br /&gt;
&lt;br /&gt;
"LG is also in a panel supply deal with Samsung for the new iPad," the source said.&lt;br /&gt;
The source was not authorised to speak to the media and declined to be identified.&lt;br /&gt;
Among the iPad's tablet competitors, Samsung remains in a distant second position.&lt;br /&gt;
&lt;br /&gt;
The new iPad will be available in Singapore on March 16.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLIAavkzEa7WDZrt9IQQVrVbg6VUCoiZAy0UNjOlwZHiKu68663SD9j7YfvQ4h623zRMqfeze4D92sj2jhU-484pm5wFUlrj0MIvtka-5FFcZ7zi9lssd0Q9kO5MwNUd2DrMqFG5zneQc/s72-c/ipad.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item><item><title>Android's Face Unlock security fooled by photograph?</title><link>http://programmereye.blogspot.com/2011/11/androids-face-unlock-security-fooled-by.html</link><category>Android</category><category>News</category><pubDate>Sun, 13 Nov 2011 06:06:00 -0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-7364046120247814967</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz9Isi-SU7olQ-5oHsePIR0HNJ76_PTX5gyy_1rGDifnDIq4arFuiVKRhEfGkp8PZvAfsdP4xJbMFHGUoldEEqnOR-MF0wdzqz5KanhwWqFNkpdzsU1MFP2c5YvKwzfdTbudkl9pTBOb0/s1600/xl_Samsung_GalaxyNex_Phon2_62.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="179" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz9Isi-SU7olQ-5oHsePIR0HNJ76_PTX5gyy_1rGDifnDIq4arFuiVKRhEfGkp8PZvAfsdP4xJbMFHGUoldEEqnOR-MF0wdzqz5KanhwWqFNkpdzsU1MFP2c5YvKwzfdTbudkl9pTBOb0/s320/xl_Samsung_GalaxyNex_Phon2_62.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz9Isi-SU7olQ-5oHsePIR0HNJ76_PTX5gyy_1rGDifnDIq4arFuiVKRhEfGkp8PZvAfsdP4xJbMFHGUoldEEqnOR-MF0wdzqz5KanhwWqFNkpdzsU1MFP2c5YvKwzfdTbudkl9pTBOb0/s1600/xl_Samsung_GalaxyNex_Phon2_62.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;The Face Unlock security feature in Google's Ice Cream Sandwich OS can  reportedly be tricked into unlocking a phone by showing it a digital  image of the user's face.&lt;br /&gt;
&lt;br /&gt;
The &lt;a href="http://www.t3.com/features/android-ice-cream-sandwich-4-0-pictures/samsung-galaxynex-fac2-62-jpg"&gt;Face Unlock feature&lt;/a&gt;  raised a few eyebrows when it was unveiled along with the rest of the  Ice Cream Sandwich edition of Android. Using your smartphone's  front-facing camera, the phone side-steps the need for passwords or  traditional unlock screens by scanning the user's face to identify its  owner from Joe Public, and only granting access to the face it  recognises.&lt;br /&gt;
&lt;br /&gt;
At the time, cynics were asking how an Ice Cream Sandwich phone would  be able to tell the difference between a real-world face and a  photograph, although Google rebuffed the idea that the system could be  so simply exploited. However, a new video that's cropped up on YouTube  suggests that Face Unlock might be more vulnerable than Google are  willing to admit, with one user unlocking his ICS-powered mobile with a  picture taken of himself on a Samsung Galaxy Note.&lt;br /&gt;
&lt;br /&gt;
While there are accusations in the YouTube comments that the uploader  could have set up his phone deliberately to unlock when presented with a  2D picture of himself, we imagine the experiment is being busily  recreated at Google HQ as we speak. Fake or legit? Check out the video  for yourself below.&lt;/div&gt;&lt;br /&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="360" src="http://www.youtube.com/embed/BwfYSR7HttA" width="640"&gt;&lt;/iframe&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz9Isi-SU7olQ-5oHsePIR0HNJ76_PTX5gyy_1rGDifnDIq4arFuiVKRhEfGkp8PZvAfsdP4xJbMFHGUoldEEqnOR-MF0wdzqz5KanhwWqFNkpdzsU1MFP2c5YvKwzfdTbudkl9pTBOb0/s72-c/xl_Samsung_GalaxyNex_Phon2_62.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item><item><title>ASUS Announces P9X79 WAS (LGA 2011) Motherboard for Workstations</title><link>http://programmereye.blogspot.com/2011/11/asus-announces-p9x79-was-lga-2011.html</link><category>Hardware Reviews</category><category>News</category><pubDate>Sun, 13 Nov 2011 05:59:00 -0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-21931282764056038</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3_T9MO3lI_LBnK4pD6tKGg2TrlNPEuHciIYObXpQ_1_zqTho8VHM-jrB9MAUg-D4tX_mLu9m_iq1HxuIhozbGCBW185q6mf1CLUtmyOju2XPs57VtYgh9oDgN1nTbuPrf7GwmxAeA7PU/s1600/PR-ASUS-P9X79-Work-Station-Series-Motherboard-with-Box-635x469.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="236" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3_T9MO3lI_LBnK4pD6tKGg2TrlNPEuHciIYObXpQ_1_zqTho8VHM-jrB9MAUg-D4tX_mLu9m_iq1HxuIhozbGCBW185q6mf1CLUtmyOju2XPs57VtYgh9oDgN1nTbuPrf7GwmxAeA7PU/s320/PR-ASUS-P9X79-Work-Station-Series-Motherboard-with-Box-635x469.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;ASUS today announced its new workstation motherboard&amp;nbsp;P9X79 WAS which  would support Intel’s upcoming Sandy Bridge-E Processors. The  motherboard would be suitable for professional workstation usage while  the other &lt;a href="http://wccftech.com/asus-displays-x79-based-rog-rampage-iv-extreme-motherboard-blizzcon-2011/"&gt;Rampage IV Extreme&lt;/a&gt;, &lt;a href="http://wccftech.com/asus-x79-chipset-based-p9x79-deluxe-motherboard-unveiled/"&gt;ASUS P9X79&lt;/a&gt; and Sabertooth X79 would be aimed towards the Consumer market.&lt;br /&gt;
&lt;br /&gt;
&lt;span id="more-33534"&gt;&lt;/span&gt;&lt;br /&gt;
The P9X79 WAS would be based on the X79 Chipset featuring the LGA  2011 Socket which would support Intel’s Sandy Bridge-E, More  specifically the i7 3900 Series. The motherboard features eight DDR3  memory modules allowing Quad channel memory interface and Six PCI-e 3.0  Memory slots allowing for Quad Way SLI and CrossfireX Support.&lt;br /&gt;
&lt;br /&gt;
Storage includes 4 SATA 6Gbps and 4 SATA 3GBps ports while  connectivity ports include four USB 3.0 and 13 USB 2.0. Backpanel I/O  includes Dual Gigabit network, FireWire and 7.1 audio.&lt;br /&gt;
&lt;br /&gt;
The release of  the motherboard is expected next week along with Sandy Bridge-E platform  launch on November 14th.&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3_T9MO3lI_LBnK4pD6tKGg2TrlNPEuHciIYObXpQ_1_zqTho8VHM-jrB9MAUg-D4tX_mLu9m_iq1HxuIhozbGCBW185q6mf1CLUtmyOju2XPs57VtYgh9oDgN1nTbuPrf7GwmxAeA7PU/s72-c/PR-ASUS-P9X79-Work-Station-Series-Motherboard-with-Box-635x469.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item><item><title>Once and for all: Modern Warfare 3 or Battlefield 3 - Who won the FPS crown?</title><link>http://programmereye.blogspot.com/2011/11/once-and-for-all-modern-warfare-3-or.html</link><category>Games</category><category>News</category><pubDate>Sun, 13 Nov 2011 05:48:00 -0800</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-3228856502982395966</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="font-family: inherit;"&gt;&lt;b&gt;And there you have it ladies and gentlemen, after close to a year's  worth of teasing, promising and fair bit of showboating Activision's  Call of Duty: Modern Warfare 3 and EA's Battlefield 3 are both in the  wild. But which one delivers?&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/div&gt;EA has made it known through its advertising campaign and numerous  confrontational soundbites that it's aiming for Call of Duty's throne  with DICE's latest shooter.&lt;br /&gt;
&lt;br /&gt;
Meanwhile Activision has observed a quiet confidence in its  genre-leading franchise, holding an assured silence that some would  posit borders on arrogance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDRLnjQIMpk19wjrur8O7MDweN8k_tGMKp6oytltt_PoFPDtt7qJOlhDgGnmSpyF8IkhXN4DljGolcA07WYovHD72n6HdyI2JDWiExtmLcGk31SKh7RaV47Hmk3jjzgM6WtQjtDiJBDX4/s1600/screenshot_270860_thumb_wide620.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDRLnjQIMpk19wjrur8O7MDweN8k_tGMKp6oytltt_PoFPDtt7qJOlhDgGnmSpyF8IkhXN4DljGolcA07WYovHD72n6HdyI2JDWiExtmLcGk31SKh7RaV47Hmk3jjzgM6WtQjtDiJBDX4/s1600/screenshot_270860_thumb_wide620.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Battlefield 3 reached European shores on October 28 and - on the same day - EA revealed DICE's shooter got off to &lt;a href="http://www.computerandvideogames.com/324136/battlefield-3-10-million-copies-already-shipped/"&gt;"a fantastic start&lt;/a&gt; on sales and quality". He wasn't kidding.&lt;br /&gt;
&lt;br /&gt;
EA CEO John Riccitiello said during an earnings it had shipped 10  million units to retail and was already receiving reorders. Later that  week Battlefield 3 was &lt;a href="http://www.computerandvideogames.com/324468/battlefield-3-is-fastest-selling-ea-game-ever/"&gt;declared&lt;/a&gt; to be 'the fastest-selling EA game ever'.&lt;br /&gt;
Critics gave the game a very &lt;a href="http://www.computerandvideogames.com/324136/battlefield-3-10-million-copies-already-shipped/"&gt;warm&lt;/a&gt; reception and the generally positive reviews pushed its Metacritic review average to a high of 93%.&lt;br /&gt;
&lt;br /&gt;
Although Call of Duty: Modern Warfare 3 has only been official  available for a few days now (close to a week unofficially courtesy of a  few &lt;a href="http://www.computerandvideogames.com/325239/are-you-playing-modern-warfare-3-early/?preview=yes"&gt;cheeky retailers&lt;/a&gt;)  industry analysts have said Infinity Ward's shooter is expected to move  between 5.5 and 6 million copies during its first 24 hours on sale.&lt;br /&gt;
&lt;br /&gt;
Like it's opposition MW3 has gone down &lt;a href="http://www.computerandvideogames.com/325392/modern-warfare-3-review-round-up/"&gt;a treat with critics&lt;/a&gt;, with the majority of reviews landing around the 9/10 mark.&lt;br /&gt;
&lt;br /&gt;
Gamers however haven't been as kind and flocked to review aggregator Metacritic and submitted &lt;a href="http://www.computerandvideogames.com/325444/modern-warfare-3-user-review-average-plummets-to-28-on-metacritic/"&gt;hundreds of scathing reviews&lt;/a&gt;, dragging its user review average down to rock bottom. Some would say unfairly so.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZQYQWO-PBqRgh7nXMdj_wSR9cQbt4lEWqd7jmJ1DmgYIK7RwYWyuINgrvsj74Lo-_4i4B_nO1erh1QzrH623RqYhqENU-GaUXna-PjhLp_UknzpsvHtMuDQCoyNPIO6Rw22VSbmNRCvA/s1600/screenshot_270859_thumb_wide620.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZQYQWO-PBqRgh7nXMdj_wSR9cQbt4lEWqd7jmJ1DmgYIK7RwYWyuINgrvsj74Lo-_4i4B_nO1erh1QzrH623RqYhqENU-GaUXna-PjhLp_UknzpsvHtMuDQCoyNPIO6Rw22VSbmNRCvA/s1600/screenshot_270859_thumb_wide620.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;If numbers are the metric of success the obvious answer is both games  are huge success' in their own right, but what we're interested in is  your opinion, how you feel about both games individually and relative to  each other.&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/div&gt;Do you think Battlefield is everything EA claimed it to be? Has  Activision delivered another title worthy of the crown? Which out of the  two do you expect to be playing months from now? Let us know in the  comments below.&lt;br /&gt;
&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDRLnjQIMpk19wjrur8O7MDweN8k_tGMKp6oytltt_PoFPDtt7qJOlhDgGnmSpyF8IkhXN4DljGolcA07WYovHD72n6HdyI2JDWiExtmLcGk31SKh7RaV47Hmk3jjzgM6WtQjtDiJBDX4/s72-c/screenshot_270860_thumb_wide620.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item><item><title>Upload source code of HTML</title><link>http://programmereye.blogspot.com/2011/10/upload-source-code-of-html.html</link><category>HTML</category><category>Scripting Language</category><pubDate>Sat, 29 Oct 2011 11:13:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-1540956847652087573</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #0000ee;"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5668981104313662786" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFQqI3yDxLOn51OoBq2q8N17zLL8Kpsar2ROlP8UT-DCR2xGuhFkcl5G8SyQSg6IVmTxF1HPjKnwWGacxHUC5h7gTFWR2ov4l-pUFLnLmConMFJQKdIhzlf33g9xIa2NlQahhcNA9IA7ix/s320/Which-is-the-best-php-ide.jpg" style="cursor: pointer; float: left; height: 283px; margin-bottom: 10px; margin-left: 0px; margin-right: 10px; margin-top: 0px; width: 238px;" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #0000ee;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: monospace; font-size: medium; white-space: nowrap;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: monospace; font-size: medium; white-space: nowrap;"&gt;&amp;lt;&lt;b&gt;html&lt;/b&gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;title&gt;A File Upload Script&lt;/title&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&lt;b&gt;body&lt;/b&gt;&amp;gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: monospace; font-size: medium; white-space: nowrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; font-family: monospace; font-size: medium; white-space: nowrap;"&gt; &lt;br /&gt;
&lt;b&gt;if &lt;/b&gt;( isset( $_FILES['fupload'] ) ) {&lt;br /&gt;
&lt;br /&gt;
print "name: ".     $_FILES['fupload']['name']       ."&lt;br /&gt;
";&lt;br /&gt;
print "size: ".     $_FILES['fupload']['size'] ." bytes&lt;br /&gt;
";&lt;br /&gt;
print "temp name: ".$_FILES['fupload']['tmp_name']   ."&lt;br /&gt;
";&lt;br /&gt;
print "type: ".     $_FILES['fupload']['type']       ."&lt;br /&gt;
";&lt;br /&gt;
print "error: ".    $_FILES['fupload']['error']      ."&lt;br /&gt;
";&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;if &lt;/b&gt;( $_FILES['fupload']['type'] == "image/gif" ) {&lt;br /&gt;
&lt;br /&gt;
$source = $_FILES['fupload']['tmp_name'];&lt;br /&gt;
$target = "upload/".$_FILES['fupload']['name'];&lt;br /&gt;
move_uploaded_file( $source, $target );// or die ("Couldn't copy");&lt;br /&gt;
$size = getImageSize( $target );&lt;br /&gt;
&lt;br /&gt;
$imgstr = "&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; font-family: monospace; font-size: medium; white-space: nowrap;"&gt;&lt;img font="" height="\&amp;quot;$size[1]\&amp;quot;" width="\&amp;quot;$size[0]\&amp;quot;" /&gt;;&lt;br /&gt;
$imgstr .= "src=\"$target\" alt=\"uploaded image\" /&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; font-family: monospace; font-size: medium; white-space: nowrap;"&gt;";&lt;br /&gt;
&lt;br /&gt;
print $imgstr;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: monospace; font-size: medium; white-space: nowrap;"&gt;&lt;br /&gt;
&amp;lt;&lt;b&gt;form &lt;/b&gt;enctype="multipart/form-data"&lt;br /&gt;
action="" method="post"&amp;gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: monospace; font-size: medium; white-space: nowrap;"&gt;&lt;br /&gt;
&lt;input type="&amp;lt;/font" /&gt;"hidden" name="MAX_FILE_SIZE" value="102400" /&amp;gt;&lt;br /&gt;
&lt;input type="&amp;lt;/font" /&gt;"file" name="fupload" /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;input type="&amp;lt;/font" /&gt;"submit" value="upload!" /&amp;gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;form&lt;/b&gt;&amp;gt;&lt;br /&gt;
&lt;b&gt;body&lt;/b&gt;&amp;gt;&lt;br /&gt;
&lt;b&gt;html&lt;/b&gt;&amp;gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: monospace; font-size: medium; white-space: nowrap;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFQqI3yDxLOn51OoBq2q8N17zLL8Kpsar2ROlP8UT-DCR2xGuhFkcl5G8SyQSg6IVmTxF1HPjKnwWGacxHUC5h7gTFWR2ov4l-pUFLnLmConMFJQKdIhzlf33g9xIa2NlQahhcNA9IA7ix/s72-c/Which-is-the-best-php-ide.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item><item><title>Download XAMPP</title><link>http://programmereye.blogspot.com/2011/10/definition-and-download-xampp.html</link><category>HTML</category><category>Others</category><category>PHP</category><pubDate>Fri, 28 Oct 2011 09:42:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-893950773617111023</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5668574745387856882" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt20rviS-fqslqM_QOeUTHWrLZeMyKHfCt5Sqf0Gn-KbuTUlE3g6MudeO4TBBgqsUruGHUH2upcaWxoNdM4nixxKzMVkWlq-o9bqbBGq-VfnUOK2qFFgb0XikDhR_7PZHtc53xU5S4fmtQ/s320/what-is-php.jpg" style="cursor: pointer; float: left; height: 204px; margin-bottom: 10px; margin-left: 0px; margin-right: 10px; margin-top: 0px; width: 320px;" /&gt;&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: #fefefe; color: #333333; font-family: Verdana,Tahoma,Arial,Helvetica,sans-serif; font-size: 12px; line-height: 19px;"&gt;PHP is an HTML-embedded scripting language. Much of its syntax is borrowed from C, Java and Perl with a couple of unique PHP-specific features thrown in. PHP stands for &lt;b style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Hypertext Preprocessor &lt;/b&gt;. The goal of the language is to allow web developers to write dynamically generated pages quickly.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: #fefefe; color: #333333; font-family: Verdana,Tahoma,Arial,Helvetica,sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: #fefefe; color: #333333; font-family: Verdana,Tahoma,Arial,Helvetica,sans-serif; font-size: 12px; line-height: 19px;"&gt;You should need the server for php you can download it&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: #fefefe; color: #333333; font-family: Verdana,Tahoma,Arial,Helvetica,sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: #fefefe; color: #333333; font-family: Verdana,Tahoma,Arial,Helvetica,sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;a href="http://www.apachefriends.org/download.php?xampp-win32-1.7.7-VC9-installer.exe"&gt;Download&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;For further help watch:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dyxMtPV4VyzcvL1iHPzgkYQM4Y3yK4AAo1MrLpyPGOcNQlk6Qwd6dxglbCtCR6jCl-i6d0-EFvW9scIxyJe' class='b-hbp-video b-uploaded' frameborder='0'&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt20rviS-fqslqM_QOeUTHWrLZeMyKHfCt5Sqf0Gn-KbuTUlE3g6MudeO4TBBgqsUruGHUH2upcaWxoNdM4nixxKzMVkWlq-o9bqbBGq-VfnUOK2qFFgb0XikDhR_7PZHtc53xU5S4fmtQ/s72-c/what-is-php.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item><item><title>Password-Cracking Techniques</title><link>http://programmereye.blogspot.com/2011/10/password-cracking-techniques.html</link><category>Hacking</category><category>Programming</category><pubDate>Fri, 21 Oct 2011 17:13:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-5000864186284160518</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDetFO3rKfwDSiQ2TK7cKY_xQQnVpBBVhflfYScnG1LxWUPoQxEmu9FLHw4s4HZzx6r_q92dgkBSuiF112RuF5Ur7W9ARR8Qu6Kmz86oQ5BlEuOHEW9J78NbLZ2OIRlqxk1Almb5J5D6o/s1600/password-crack.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDetFO3rKfwDSiQ2TK7cKY_xQQnVpBBVhflfYScnG1LxWUPoQxEmu9FLHw4s4HZzx6r_q92dgkBSuiF112RuF5Ur7W9ARR8Qu6Kmz86oQ5BlEuOHEW9J78NbLZ2OIRlqxk1Almb5J5D6o/s200/password-crack.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h2&gt;  Understanding Password-Cracking&lt;/h2&gt;&lt;h2&gt;Techniques&lt;/h2&gt;&lt;br /&gt;
We get daily tons of requests regarding password cracking,&lt;br /&gt;
hereby we present a well researched comprehensive article adressing the same&lt;br /&gt;
It may bounce many of ur heads but we are sure a must mug up for Geeks nour regular visitors!!&lt;br /&gt;
so Gear Up! Dont give up before having a look on the entire article!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Many hacking attempts start with attempting to crack passwords. Passwords are the key piece&lt;br /&gt;
of information needed to access a system. Users, when creating passwords, often select passwords&lt;br /&gt;
that are prone to being cracked. Many reuse passwords or choose one that’s simple—such&lt;br /&gt;
as a pet’s name—to help them remember it. Because of this human factor, most password cracking&lt;br /&gt;
is successful; it can be the launching point for escalating privileges, executing applications,&lt;br /&gt;
hiding files, and covering tracks. Passwords may be cracked manually or with automated tools&lt;br /&gt;
such as a dictionary or brute-force method, each of which are covered later in this chapter.&lt;br /&gt;
Manual password cracking involves attempting to log on with different passwords. The&lt;br /&gt;
hacker follows these steps:&lt;br /&gt;
&lt;b&gt;1.&lt;/b&gt;&lt;br /&gt;
Find a valid user account (such as Administrator or Guest).&lt;br /&gt;
&lt;b&gt;2.&lt;/b&gt;&lt;br /&gt;
Create a list of possible passwords.&lt;br /&gt;
&lt;b&gt;3.&lt;/b&gt;&lt;br /&gt;
Rank the passwords from high to low probability.&lt;br /&gt;
&lt;b&gt;4.&lt;/b&gt;&lt;br /&gt;
Key in each password.&lt;br /&gt;
&lt;b&gt;5.&lt;/b&gt;&lt;br /&gt;
Try again until a successful password is found.&lt;br /&gt;
A hacker can also create a script file that tries each password in a list. This is still considered&lt;br /&gt;
manual cracking, but it’s time consuming and not usually effective.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Boring!! isnt it!!&lt;/b&gt; A more efficient way of cracking a password is to gain access to the password file on a system.&lt;br /&gt;
Most systems&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;hash&lt;/i&gt;&lt;br /&gt;
(one-way encrypt) a password for storage on a system. During the&lt;br /&gt;
logon process, the password entered by the user is hashed using the same algorithm and then&lt;br /&gt;
compared to the hashed passwords stored in the file. A hacker can attempt to gain access to&lt;br /&gt;
the hashing algorithm stored on the server instead of trying to guess or otherwise identify the&lt;br /&gt;
password. If the hacker is successful, they can decrypt the passwords stored on the server.&lt;br /&gt;
Passwords are stored in the Security Accounts Manager (SAM) file on a&lt;br /&gt;
Windows system and in a password shadow file on a Linux system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Understanding the LanManager Hash&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Windows 2000 uses NT Lan Manager (NTLM) hashing to secure passwords in transit on the&lt;br /&gt;
network. Depending on the password, NTLM hashing can be weak and easy to break. For&lt;br /&gt;
example, let’s say that the password is&lt;br /&gt;
123456abcdef&lt;br /&gt;
. When this password is encrypted with&lt;br /&gt;
the NTLM algorithm, it’s first converted to all uppercase:&lt;br /&gt;
123456ABCDEF&lt;br /&gt;
. The password is&lt;br /&gt;
padded with null (blank) characters to make it 14 characters long:&lt;br /&gt;
123456ABCDEF__&lt;br /&gt;
. Before&lt;br /&gt;
the password is encrypted, the 14-character string is split in half:&lt;br /&gt;
123456A and BCDEF__.&lt;br /&gt;
Each string is individually encrypted, and the results are concatenated:&lt;br /&gt;
123456A = 6BF11E04AFAB197F&lt;br /&gt;
BCDEF__ = F1E9FFDCC75575B15&lt;br /&gt;
The hash is&lt;br /&gt;
6BF11E04AFAB197FF1E9FFDCC75575B15&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Hacking Tools&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Legion automates the password guessing in NetBIOS sessions. Legion scans multiple&lt;br /&gt;
IP address ranges for Windows shares and also offers a manual dictionary attack tool.&lt;br /&gt;
NTInfoScan is a security scanner for NT 4.0. This vulnerability scanner produces an HTMLbased&lt;br /&gt;
report of security issues found on the target system and other information.&lt;br /&gt;
L0phtCrack is a password auditing and recovery package distributed by @stake software,&lt;br /&gt;
which is now owned by Symantec. It performs Server Message Block (SMB) packet captures&lt;br /&gt;
on the local network segment and captures individual login sessions. L0phtCrack contains&lt;br /&gt;
dictionary, brute-force, and hybrid attack capabilities.&lt;br /&gt;
John the Ripper is a command-line tool designed to crack both Unix and NT passwords. The&lt;br /&gt;
cracked passwords are case insensitive and may not represent the real mixed-case password.&lt;br /&gt;
KerbCrack consists of two programs: kerbsniff and kerbcrack. The sniffer listens on the network&lt;br /&gt;
and captures Windows 2000/XP Kerberos logins. The cracker can be used to find the&lt;br /&gt;
passwords from the capture file using a brute force attack or a dictionary attack.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Cracking Windows 2000 Passwords&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The SAM file in Windows contains the usernames and hashed passwords. It’s located in the&lt;br /&gt;
Windows\system32\config&lt;br /&gt;
directory. The file is locked when the operating system is running&lt;br /&gt;
so a hacker can’t attempt to copy the file while the machine is booted to Windows.&lt;br /&gt;
One option for copying the SAM file is to boot to an alternate operating system such as&lt;br /&gt;
DOS or Linux with a boot CD. Alternately, the file can be copied from the&lt;br /&gt;
repair&lt;br /&gt;
directory.&lt;br /&gt;
If a systems administrator uses the RDISK feature of Windows to back up the system, then a&lt;br /&gt;
compressed copy of the SAM file called&lt;br /&gt;
SAM._&lt;br /&gt;
is created in&lt;br /&gt;
C:\windows\repair&lt;br /&gt;
. To expand&lt;br /&gt;
this file, use the following command at the command prompt:&lt;br /&gt;
C:\&amp;gt;expand sam._ sam&lt;br /&gt;
After the file is uncompressed, a dictionary, hybrid, or brute-force attack can be run against&lt;br /&gt;
the SAM file using a tool like L0phtCrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Redirecting the SMB Logon to the Attacker&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Another way to discover passwords on a network is to redirect the Server Message Block&lt;br /&gt;
(SMB) logon to an attacker’s computer so that the passwords are sent to the hacker. In order&lt;br /&gt;
to do this, the hacker must sniff the NTLM responses from the authentication server and trick&lt;br /&gt;
the victim into attempting Windows authentication with the attacker’s computer. A common&lt;br /&gt;
technique is to send the victim an e-mail message with an embedded hyperlink to a fraudulent&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Hacking Tools&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Win32CreateLocalAdminUser is a program that creates a new user with the username and&lt;br /&gt;
password&lt;br /&gt;
X&lt;br /&gt;
and adds the user to the local administrator’s group. This action is part of the&lt;br /&gt;
Metasploit Project and can be launched with the Metasploit framework on Windows.&lt;br /&gt;
Offline NT Password Resetter is a method of resetting the password to the administrator’s&lt;br /&gt;
account when the system isn’t booted to Windows. The most common method is to boot to&lt;br /&gt;
a Linux boot CD and then access the NTFS partition, which is no longer protected, and change&lt;br /&gt;
the password.&lt;br /&gt;
SMB server. When the hyperlink is clicked, the user unwittingly sends their credentials over&lt;br /&gt;
the network.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;SMB Redirection&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Several automated hacking tools can implement SMB redirection:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;SMB Relay MITM Attacks and Countermeasures&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
An SMB relay MITM attack is when the attacker sets up a fraudulent server with a relay&lt;br /&gt;
address. When a victim client connects to the fraudulent server, the MITM server intercepts&lt;br /&gt;
the call, hashes the password, and passes the connection to the victim server.&lt;br /&gt;
Figure 4.1 illustrates an example of such an attack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Hacking Tools&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
SMBRelay is an SMB server that captures usernames and password hashes from incoming&lt;br /&gt;
SMB traffic. SMBRelay can also perform man-in-the-middle attacks.&lt;br /&gt;
SMBRelay2 is similar to SMBRelay but uses NetBIOS names instead of IP addresses to&lt;br /&gt;
capture usernames and passwords.&lt;br /&gt;
pwdump2 is a program that extracts the password hashes from a SAM file on a Windows system.&lt;br /&gt;
The extracted password hashes can then be run through L0phtCrack to break the passwords.&lt;br /&gt;
Samdump is another program to extract NTLM hashed passwords from a SAM file.&lt;br /&gt;
C2MYAZZ is a spyware program that makes Windows clients send their passwords as clear&lt;br /&gt;
text. It displays usernames and their passwords as users attach to server resources.&lt;br /&gt;
&lt;br /&gt;
SMB relay countermeasures include configuring Windows 2000 to use SMB signing, which&lt;br /&gt;
causes it to cryptographically sign each block of SMB communications. These settings are&lt;br /&gt;
found under Security Policies/Security Options.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;NetBIOS DoS Attacks&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
A NetBIOS Denial of Service (DoS) attack sends a NetBIOS Name Release message to the NetBIOS&lt;br /&gt;
Name Service on a target Windows systems and forces the system to place its name in conflict&lt;br /&gt;
so that the name can no longer be used. This essentially blocks the client from participating in the&lt;br /&gt;
NetBIOS network and creates a network DoS for that system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Password-Cracking Countermeasures&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The strongest passwords possible should be implemented to protect against password cracking.&lt;br /&gt;
Systems should enforce 8–12 character alphanumeric passwords. The length of time the same&lt;br /&gt;
password should be used is discussed in the next section.&lt;br /&gt;
To protect against cracking of the hashing algorithm for passwords stored on the server,&lt;br /&gt;
you must take care to physically isolate and protect the server. The systems administrator can&lt;br /&gt;
use the SYSKEY utility in Windows to further protect hashes stored on the server hard disk.&lt;br /&gt;
The server logs should also be monitored for brute-force attacks on user accounts.&lt;br /&gt;
A systems administrator can implement the following security precautions to decrease the&lt;br /&gt;
effectiveness of a brute-force password-cracking attempt:&lt;br /&gt;
&lt;b&gt;1.&lt;/b&gt;&lt;br /&gt;
Never leave a default password.&lt;br /&gt;
&lt;b&gt;2.&lt;/b&gt;&lt;br /&gt;
Never use a password that can be found in a dictionary.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Hacking Tools&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
SMBGrind increases the speed of L0phtCrack sessions on sniffer dumps by removing duplication&lt;br /&gt;
and providing a way to target specific users without having to edit the dump files manually.&lt;br /&gt;
The SMBDie tool crashes computers running Windows 2000/XP/NT by sending specially&lt;br /&gt;
crafted SMB requests.&lt;br /&gt;
NBTdeputy can register a NetBIOS computer name on a network and respond to NetBIOS&lt;br /&gt;
over TCP/IP (NetBT) name-query requests. It simplifies the use of SMBRelay. The relay can be&lt;br /&gt;
referred to by computer name instead of IP address.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Hacking Tools&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
NBName can disable entire LANs and prevent machines from rejoining them. Nodes on a Net-&lt;br /&gt;
BIOS network infected by the tool think that their names are already in use by other machines.&lt;br /&gt;
&lt;b&gt;3.&lt;/b&gt;&lt;br /&gt;
Never use a password related to the host name, domain name, or anything else that can&lt;br /&gt;
be found with whois.&lt;br /&gt;
&lt;b&gt;4.&lt;/b&gt;&lt;br /&gt;
Never use a password related to your hobbies, pets, relatives, or date of birth.&lt;br /&gt;
&lt;b&gt;5.&lt;/b&gt;&lt;br /&gt;
Use a word that has more than 21 characters from a dictionary as a password.&lt;br /&gt;
This subject is discussed further in the section “Monitoring Event Viewer Logs.”&lt;br /&gt;
In the following sections, we’ll look at two measures you can take to strengthen passwords&lt;br /&gt;
and prevent password-cracking.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Password Change Interval&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Passwords should expire after a certain amount of time so that users are forced to change&lt;br /&gt;
their passwords. If the password interval is set too low, then users will forget their current&lt;br /&gt;
passwords; as a result, a systems administrator will have to reset users’ passwords frequently.&lt;br /&gt;
On the other hand, if passwords are allowed to be used for too long, then security&lt;br /&gt;
may be compromised. The recommended password-change interval is every 30 days. In&lt;br /&gt;
addition, it’s recommended that users not be allowed to reuse the last three passwords.&lt;br /&gt;
You cannot completely block brute-force password attacks if the hacker&lt;br /&gt;
switches the proxy server where the source packet is generated. A systems&lt;br /&gt;
administrator can only add security features to decrease the likelihood that&lt;br /&gt;
brute-force password attacks will be useful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Monitoring Event Viewer Logs&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Administrators should monitor Event Viewer logs to recognize any intrusion attempts either&lt;br /&gt;
before they take place or while they’re occurring. Generally, several failed attempts are logged&lt;br /&gt;
in the system logs before a successful intrusion or password attack. The security logs are only&lt;br /&gt;
as good as the systems administrators who monitor them.&lt;br /&gt;
Tools such as VisualLast aid a network administrator in deciphering and analyzing the&lt;br /&gt;
security log files. VisualLast provides greater insight into the NT event logs so the administrator can assess the activity of the network more accurately and efficiently. The program is designed to allow network administrators to view and report individual users’ logon and logoff times; these events may be searched according to time frame, which is invaluable to security analysts who are looking for intrusion details.&lt;br /&gt;
The event log located at&lt;br /&gt;
c:\\windows\system32\config\Sec.Event.Evt&lt;br /&gt;
contains the&lt;br /&gt;
trace of an attacker's brute-force attempts.&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDetFO3rKfwDSiQ2TK7cKY_xQQnVpBBVhflfYScnG1LxWUPoQxEmu9FLHw4s4HZzx6r_q92dgkBSuiF112RuF5Ur7W9ARR8Qu6Kmz86oQ5BlEuOHEW9J78NbLZ2OIRlqxk1Almb5J5D6o/s72-c/password-crack.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item><item><title>How to trace an IP of remote system (web+messenger)</title><link>http://programmereye.blogspot.com/2011/10/how-to-trace-ip-of-remote-system.html</link><category>Hacking</category><category>Programming</category><pubDate>Fri, 21 Oct 2011 17:07:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-6250165610181557628</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b&gt;&lt;u&gt;Introduction:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Welcome to another rahulhackingarticles tutorial.&lt;br /&gt;
In  here I have figure out some very easy but cool ways to trace out the  geographical location and various other infos like ISP details etc of a  remote computer using its IP.&lt;br /&gt;
Well I guess its one of the most  important must learn manul for boys out there if you want to impress  your friends particularly gals whom you’ll meet online in a chat room  and tell them their geographical locations and ISP details and make them  surprised and impressed J.&lt;br /&gt;
In the practical execution of this manual  you don’t have to work much as it is very simple only you have to use  your brain to understand some symbols and some format of expressions and  use your IQ to execute things the right way.&lt;br /&gt;
&lt;br /&gt;
What is IP and how to get the IP of a remote system::&lt;br /&gt;
&lt;br /&gt;
Getting  the IP or Internet Protocol of a remote system is the most important  and the first step of hacking into it. Probably it is the first thing a  hacker do to get info for researching on a system. Well IP is a unique  number assigned to each computer on a network. It is this unique address  which represents the system on the network. Generally the IP of a  particular system changes each time you log on to the network by dialing  to your ISP and it is assigned to you by your ISP. IP of a system which  is always on the network remains generally the same. Generally those  kind of systems are most likely to suffer a hacking attack because of  its stable IP. Using IP you can even execute system commands on the  victim’s computer. &lt;br /&gt;
Lets take the example of the following IP  address: 202.144.49.110 Now the first part, the numbers before the first  decimal i.e. 209 is the Network number or the Network Prefix.. This  means that it identifies the number of the network in which the host is.  The second part i.e. 144 is the Host Number that is it identifies the  number of the host within the Network. This means that in the same  Network, the network number is same. In order to provide flexibility in  the size of the Network, here are different classes of IP addresses:&lt;br /&gt;
&lt;br /&gt;
Address Class Dotted Decimal Notation Ranges&lt;br /&gt;
Class A ( /8 Prefixes) 1.xxx.xxx.xxx through 126.xxx.xxx.xxx&lt;br /&gt;
Class B ( /16 Prefixes) 128.0.xxx.xxx through 191.255.xxx.xxx&lt;br /&gt;
Class C ( /24 Prefixes) 192.0.0.xxx through 223.255.255.xxx&lt;br /&gt;
&lt;br /&gt;
The various classes will be clearer after reading the next few lines.&lt;br /&gt;
&lt;br /&gt;
Each  Class A Network Address contains a 8 bit Network Prefix followed by a  24-bit host number. They are considered to be primitive. They are  referred to as "/8''s" or just "8's" as they have an 8-bit Network  prefix.&lt;br /&gt;
In a Class B Network Address there is a 16 bit Network Prefix followed by a 16-bit Host number. It is referred to as "16's".&lt;br /&gt;
&lt;br /&gt;
A class C Network address contains a 24-bit Network Prefix and a 8 bit Host number. It is referred to as&lt;br /&gt;
"24's" and is commonly used by most ISP's.&lt;br /&gt;
&lt;br /&gt;
Due  to the growing size of the Internet the Network Administrators faced  many problems. The Internet routing tables were beginning to grow and  now the administrators had to request another network number from the  Internet before a new network could be installed at their site. This is  where sub-netting came in. &lt;br /&gt;
&lt;br /&gt;
Now if your ISP is a big one and if  it provides you with dynamic IP addresses then you will most probably  see that whenever you log on to the net, your IP address will have the  same first 24 bits and only the last 8 bits will keep changing. This is  due to the fact that when sub-netting comes in then the IP Addresses  structure becomes:&lt;br /&gt;
&lt;br /&gt;
xxx.xxx.zzz.yyy&lt;br /&gt;
&lt;br /&gt;
where the first 2 parts  are Network Prefix numbers and the zzz is the Subnet number and the yyy  is the host number. So you are always connected to the same Subnet  within the same Network. As a result the first 3 parts will remain the  same and only the last part i.e. yyy is variable.&lt;br /&gt;
***********************&lt;br /&gt;
&lt;br /&gt;
For  Example, if say an ISP xyz is given the IP: 203.98.12.xx Network  address then you can be awarded any IP, whose first three fields are  203.98.12. Get it? &lt;br /&gt;
&lt;br /&gt;
So, basically this means that each ISP has a  particular range in which to allocate all its subscribers. Or in other  words, all subscribers or all people connected to the internet using the  same ISP, will have to be in this range. This in effect would mean that  all people using the same ISP are likely to have the same first three  fields of their IP Addresses. &lt;br /&gt;
&lt;br /&gt;
This means that if you have done a  lot of (By this I really mean a lot) of research, then you could figure  out which ISP a person is using by simply looking at his IP. The ISP  name could then be used to figure out the city and the country of the  person. Right? Let me take an example to stress as to how cumbersome but  easy (once the research is done) the above method can be.&lt;br /&gt;
&lt;br /&gt;
In my country, say there are three main ISP’s:&lt;br /&gt;
&lt;br /&gt;
ISP Name Network Address Allotted&lt;br /&gt;
&lt;br /&gt;
ISP I  203.94.47.xx&lt;br /&gt;
ISP II 202.92.12.xx&lt;br /&gt;
ISP III 203.91.35.xx&lt;br /&gt;
&lt;br /&gt;
Now,  if I get to know the IP of an e-pal of mine, and it reads:  203.91.35.12, then I can pretty easily figure out that he uses ISP III  to connect to the internet. Right? You might say that any idiot would be  able to do this. Well, yes and no. You see, the above method of finding  out the ISP of a person was successful only because we already had the  ISP and Network Address Allotted list with us. So, what my point is,  that the above method can be successful only after a lot of research and  experimentation. And, I do think such research can be helpful  sometimes. &lt;br /&gt;
&lt;br /&gt;
Also, this would not work, if you take it all on in  larger scale. What if the IP that you have belongs to someone living in a  remote igloo in the North Pole? You could not possibly get the Network  Addresses of all the ISP’s in the world, could you? If yes please send  it to me J.&lt;br /&gt;
&lt;br /&gt;
Well now I guess you have pretty good knowledge about  what an IP is and what you can do by knowing the IP of a remote system.  Now lets come to the point of finding out the IP of remote system.&lt;br /&gt;
Well  you can easily figure out the IP of a remote system using the netstat  utility available in the microsoft’s version of DOS. The netstat command  shows the connections in which your system is engaged to and the ports  they are using. Suppose you are checking your mail in hotmail and you  want to find out the IP of msn. All you need to do is to open a dos  window (command.com) and type netstat. You will see all the open  connections of your system. There you will see something :&lt;br /&gt;
&lt;br /&gt;
Proto Local Address Foreign Address State&lt;br /&gt;
TCP rahul:1031 64.4.xx.xx:80  ESTABLISHED&lt;br /&gt;
&lt;br /&gt;
Now you got the IP address of hotmail ass 64.4.xx.xx .&lt;br /&gt;
Similarly you can figure out the IP address of most http or ftp connections.&lt;br /&gt;
&lt;br /&gt;
To know your own IP type the following command in a dos windows&lt;br /&gt;
C:\netstat –n&lt;br /&gt;
[this commands converts the IP name into IP addresses]&lt;br /&gt;
this is what you will probably see on typing the above command :&lt;br /&gt;
&lt;br /&gt;
Proto Local Address Foreign Address State&lt;br /&gt;
TCP 203.xx.251.161:1031 194.1.129.227:21 ESTABLISHED&lt;br /&gt;
TCP 203.xx.251.161:1043 207.138.41.181:80 FIN_WAIT_2&lt;br /&gt;
TCP 203.xx.251.161:1053 203.94.243.71:110 TIME_WAIT&lt;br /&gt;
TCP 203.xx.251.161:1058 194.1.129.227:20 TIME_WAIT&lt;br /&gt;
TCP 203.xx.251.161:1069 203.94.243.71:110 TIME_WAIT&lt;br /&gt;
TCP 203.xx.251.161:1071 194.98.93.244:80 ESTABLISHED&lt;br /&gt;
TCP 203.xx.251.161:1078 203.94.243.71:110 TIME_WAIT&lt;br /&gt;
&lt;br /&gt;
Here 203.xx.251.161 is your IP address.&lt;br /&gt;
&lt;br /&gt;
Now lets clarify the format used by netstat :&lt;br /&gt;
&lt;br /&gt;
Proto : It shows the type of protocol the connection with the remote system is using.&lt;br /&gt;
Here TCP (transmission control protocol) is the protocol used by my system to connect to other systems.&lt;br /&gt;
&lt;br /&gt;
Local  Address : It shows the local address ie the local IP. When the netstat  command is executed without –n switch then the name of the local system  is displayed and when the netstat is executed with –n switch then the IP  of the local system is displayed. Here you can also find out the port  used by the connection.&lt;br /&gt;
xxx.yyy.zzz.aaa:1024 &lt;br /&gt;
in this format you will see the local address. Here 1024 is the port to which the remote system is connected in your system&lt;br /&gt;
&lt;br /&gt;
Foreign  Address :: It shows the IP address of the remote system to which your  system is connected. In this case also if the netstat command is excuted  with –n switch then you directly get the IP of the victim but if the  netstat is executed without –n switch then you will get the address of  the remote system. Something like&lt;br /&gt;
&lt;br /&gt;
C:\netstat&lt;br /&gt;
Proto Local Address Foreign Address State&lt;br /&gt;
TCP rahul:1031 msgr.lw4.gs681.hotmail.com:80 ESTABLISHED&lt;br /&gt;
&lt;br /&gt;
Here  msgr.lw4.gs681.hotmail.com is the address of the foreign system .  putting this address in any IP lookup program and doing a whois lookup  will reveal the IP of the remote system.&lt;br /&gt;
&lt;br /&gt;
Note: The port to which  your system is connected can be found from this in the same way as I  have shown in the case of local address. The difference is that, this is  the port of the remote system to which your computer is connected to.&lt;br /&gt;
Below I have produced a list of ports and popular services generally found to be running.&lt;br /&gt;
21 :: FTP port&lt;br /&gt;
80 :: http port&lt;br /&gt;
23 :: Telnet port&lt;br /&gt;
&lt;br /&gt;
Note:  If your execute the netstat command and find ports like 12345,27374 are  open and are in use then make it sure that your sweat heart computer is  infected with her boyfriend.. J J J J I mean your computer is infected  with some sort of Trojan.&lt;br /&gt;
Below I have produced a list of commonly  known Trojans and the ports they use by default. So if you find these  ports open then get a good virus buster and get these stupid servers of  the Trojans kicked out. Well if you want to play with these Trojan by  keeping them in your computer but not letting them ruin your system  performance then just disble it from the system registry run and they  wont be loaded to memory each time when windows starts up[This trick  doesn’t work for all Trojans]. &lt;br /&gt;
&lt;br /&gt;
Netbus :: 12345(TCP)&lt;br /&gt;
Subseven :: 27374(TCP)&lt;br /&gt;
Girl Friend :: 21554(TCP)&lt;br /&gt;
Back Oriface :: 31337 (UDP) &lt;br /&gt;
&lt;br /&gt;
Well  guys and gals I hope you are now well familiar with the term IP and  what is the utility of IP in cyber world and how to get the IP of a  remote system to which you are connected. I hope you find my writings  very easy to undertstand. I know I lack the capacity of explaining  myself but I try my level best to make things very easy and clear for  you’ll. &lt;br /&gt;
&lt;br /&gt;
How to get the IP of a remote system while chatting through msn messenger ::&lt;br /&gt;
&lt;br /&gt;
This is a tutorial on how to get IP address from MSN messenger. This is actually&lt;br /&gt;
a really easy thing to do. It is not like going through the hard time and reversing&lt;br /&gt;
MSN messenger like many people think.&lt;br /&gt;
The IP address is only given when you accept or are sending a file through MSN &lt;br /&gt;
messenger. When you send IM's, the message is sent through the server thus hiding&lt;br /&gt;
your victims IP and your. But when you send a file or recieve a file, it is direct&lt;br /&gt;
connection between the two computers.&lt;br /&gt;
To obtain the IP accept a file transfer or send a file to the victim, when the file &lt;br /&gt;
sending is under way from the dos prompt type "netstat" without the quotation marks.&lt;br /&gt;
You should get a table like this:&lt;br /&gt;
Proto Local Address Foreign Address State&lt;br /&gt;
TCP kick:1033 msgr-ns29.msgr.hotmail.com:1863 ESTABLISHED &lt;br /&gt;
TCP kick:1040 msgr-sb36.msgr.hotmail.com:1863 ESTABLISHED &lt;br /&gt;
TCP kick: &amp;lt;REMOTE HOST&amp;gt; ESTABLISHED&lt;br /&gt;
The top name in the list is the server's address for IMing. There could be many of&lt;br /&gt;
the second name in the list, as a new connection is made to the server for every &lt;br /&gt;
room you are IMing to. You are looking for the address of the remote host in&lt;br /&gt;
this table it may be something similar to "host63-7-102-226.ppp.cal.vsnl.com" or “203..64.90.6”.&lt;br /&gt;
without the quotation marks.&lt;br /&gt;
All you need to do now is to put this address in you IP lookup programe and get the IP of the remote system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Well  50%of the work is done now. Now you know how to get the IP of a remote  system, so its time to trace it down and find some details about the IP.&lt;br /&gt;
&lt;br /&gt;
Tracing an IP is quite simple. You can do it the easy way by using some sweet softwares like Visual Trace 6.0b&lt;br /&gt;
[&lt;a class="external" href="http://195.116.229.140/%7Eunderpl/crackz/visualroute6b_crack.zip" rel="nofollow" target="_blank"&gt;ftp://ftp.visualware.com/pub/vr/vr.exe&lt;/a&gt;] &lt;br /&gt;
Neotrace&lt;br /&gt;
[&lt;a class="external" href="http://www.neoworx.com/download/NTX325.exe" rel="nofollow" target="_blank"&gt;http://www.neoworx.com/download/NTX325.exe&lt;/a&gt;]&lt;br /&gt;
or by our way ie. Using MS DOS or any other version of DOS.&lt;br /&gt;
Well  I suggest you to use DOS and its tracert tool for tracing the IP cause  using it will give you a clear conception about the art of tracing an IP  and I guarantee that you will feel much satisfied on success than using  a silly software. Furthur you will know how things work and how the IP  is traced down and the different networks associated in this tracing  process. &lt;br /&gt;
&lt;br /&gt;
Let us take a look at tracert tool provided for DOS by Microsoft.&lt;br /&gt;
It is a very handy tool for peoples need to trace down an IP.&lt;br /&gt;
Just open any DOS windows and type tracert.&lt;br /&gt;
&lt;br /&gt;
C:\windows&amp;gt;tracert&lt;br /&gt;
&lt;br /&gt;
Usage: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name&lt;br /&gt;
&lt;br /&gt;
Options:&lt;br /&gt;
-d Do not resolve addresses to hostnames.&lt;br /&gt;
-h maximum_hops Maximum number of hops to search for target.&lt;br /&gt;
-j host-list Loose source route along host-list.&lt;br /&gt;
-w timeout Wait timeout milliseconds for each reply.&lt;br /&gt;
&lt;br /&gt;
You will now see a description of the tracert command and the switches associated with it.&lt;br /&gt;
Well  these switches doesn’t makes much difference. All you can do is to  increase the timeout in milliseconds by using –w switch if you are using  a slow connection and the –d switch if you wish not resolve address to  hostnames by default.&lt;br /&gt;
By default tracert performs a maximum of 30 hops trace. Using the –h switch you can specify the number of hops to perform.&lt;br /&gt;
Now its time for execution.&lt;br /&gt;
Let us trace down the IP yahoo.com [216.115.108.243]&lt;br /&gt;
&lt;br /&gt;
TIP:  If you have done a long research (I mean a lot) then simply looking at  the IP you can figure out some info from it. For example the IP  203.90.68.8 indicates that the system is in India. In India IPs  generally begin with 203 and 202&lt;br /&gt;
&lt;br /&gt;
C:\WINDOWS&amp;gt;tracert yahoo.com&lt;br /&gt;
&lt;br /&gt;
Tracing route to yahoo.com [216.115.108.243] over a maximum of 30 hops:&lt;br /&gt;
&lt;br /&gt;
1 308 ms 142 ms 127 ms 203.94.246.35&lt;br /&gt;
2 140 ms 135 ms * 203.94.246.1&lt;br /&gt;
3 213 ms 134 ms 132 ms 203.94.255.33&lt;br /&gt;
4 134 ms 130 ms 129 ms 203.200.64.29&lt;br /&gt;
5 122 ms 135 ms 131 ms 203.200.87.75&lt;br /&gt;
6 141 ms 137 ms 121 ms 203.200.87.15&lt;br /&gt;
7 143 ms 170 ms 154 ms vsb-delhi-stm1.Bbone.vsnl.net.in [202.54.2.241]&lt;br /&gt;
8 565 ms 589 ms 568 ms if-7-0.bb8.NewYork.Teleglobe.net [207.45.198.65]&lt;br /&gt;
9 596 ms 584 ms 600 ms if-3-0.core2.NewYork.teleglobe.net [207.45.221.66]&lt;br /&gt;
10 * * * Request timed out.&lt;br /&gt;
11 703 ms 701 ms 719 ms if-3-0.core2.PaloAlto.Teleglobe.net [64.86.83.205]&lt;br /&gt;
12 694 ms 683 ms 681 ms if-6-1.core1.PaloAlto.Teleglobe.net [207.45.202.33]&lt;br /&gt;
13 656 ms 677 ms 700 ms ix-5-0.core1.PaloAlto.Teleglobe.net [207.45.196.90]&lt;br /&gt;
14 667 ms 673 ms 673 ms ge-1-3-0.msr1.pao.yahoo.com [216.115.100.150]&lt;br /&gt;
15 653 ms 673 ms 673 ms vl20.bas1.snv.yahoo.com [216.115.100.225]&lt;br /&gt;
16 666 ms 676 ms 674 ms yahoo.com [216.115.108.243]&lt;br /&gt;
Trace complete.&lt;br /&gt;
&lt;br /&gt;
Note:  Here I have traced yahoo.com. In place of yahoo.com you can give the IP  of yahoo or any other IP you want to trace, the result will be the  same.&lt;br /&gt;
&lt;br /&gt;
Now carefully looking at the results you can figure out many information about yahoo’s server [216.115.108.243]&lt;br /&gt;
First  packets of data leave my ISP which is at 203.94.246.35 .Similarly you  can find out the different routers through which the packets of data are  send and received to and from the target system. Now take a look at the  13th line you’ll see that the router is in PaloAlto.Teleglobe.net from  this you can easily figure out that the router is in Palo Alto. Now  finally look at the target system ie. Yahoo’s server  vl20.bas1.snv.yahoo.com . Now you got the address of yahoo’s server. Now  put this address in any IP lookup programe and perform and reverse DNS  lookup and you will get most of the info about this address,like the  place where it is in.&lt;br /&gt;
&lt;br /&gt;
Well another thing you can find out using the  tracert tool is that the number of hops (routers) the target system is  away from you. In case of tracerouting yahoo.com we find that the target  system ie yahoo’s server is 16 hops away from my system. This indicates  that there are 16 routers between my system and yahoo’s server.&lt;br /&gt;
&lt;br /&gt;
Apart from tracing an IP you can find out many usefull details about the target system using the tracert tool.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Firewall Detection&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;u&gt; &lt;/u&gt;&lt;br /&gt;
While  tracerouting a target system, if you get * as an output then it  indicates timeout error. Now if you peform another tracerout to the same  taeget system at some other time with a good connection and in this way  few times more and if you always get * as the output then take it for  sure that the target system is running a firewall which prevents sending  of data packets from the target system.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Example&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Some days  ago I tried to tracert hotmail’s server in plain and simple way using  tracert without any trick.This is what I found out :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
c:\windows&amp;gt;tracert 64.4.53.7&lt;br /&gt;
&lt;br /&gt;
Tracing route to lc2.law5.hotmail.com [64.4.53.7]&lt;br /&gt;
&lt;br /&gt;
over a maximum of 30 hops:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1 * * * Request timed out.&lt;br /&gt;
2 161 ms 147 ms 85 ms 203.90.69.81 &lt;br /&gt;
3 126 ms 261 ms 219 ms 203.90.66.9 &lt;br /&gt;
4 121 ms 115 ms 228 ms delswp2.hclinfinet.com [203.90.66.133] &lt;br /&gt;
5 727 ms 725 ms 711 ms 203-195-147-250.now-india.net.in [203.195.147.250] &lt;br /&gt;
6 1006 ms 794 ms 952 ms core-fae-0-0.now-india.net.in [203.195.147.3] &lt;br /&gt;
7 826 ms 731 ms 819 ms 213.232.106.9 &lt;br /&gt;
8 885 ms 744 ms 930 ms 213.166.3.209 &lt;br /&gt;
9 851 ms 1020 ms 1080 ms 213.232.64.54 &lt;br /&gt;
10 1448 ms 765 ms 1114 ms pos8-0.core2.London1.Level3.net [212.113.0.118] &lt;br /&gt;
11 748 ms 789 ms 750 ms ge-4-2-1.mp2.London1.Level3.net [212.187.131.146] &lt;br /&gt;
12 719 ms 733 ms 846 ms so-3-0-0.mp1.London2.Level3.net [212.187.128.46] &lt;br /&gt;
13 775 ms 890 ms 829 ms so-1-0-0.mp2.Weehawken1.Level3.net [212.187.128.138] &lt;br /&gt;
14 853 ms 852 ms 823 ms so-3-0-0.mp1.SanJose1.Level3.net [64.159.1.129] &lt;br /&gt;
15 889 ms 816 ms 803 ms so-7-0-0.gar1.SanJose1.Level3.net [64.159.1.74] &lt;br /&gt;
16 * * * Request timed out.&lt;br /&gt;
17 * * * Request timed out.&lt;br /&gt;
18 * * * Request timed out.&lt;br /&gt;
19 * * * Request timed out.&lt;br /&gt;
20 * * * Request timed out.&lt;br /&gt;
21 * * * Request timed out.&lt;br /&gt;
22 * * * Request timed out.&lt;br /&gt;
23 * * * Request timed out.&lt;br /&gt;
24 * * * Request timed out.&lt;br /&gt;
25 * * * Request timed out.&lt;br /&gt;
26 * * * Request timed out.&lt;br /&gt;
27 * * * Request timed out.&lt;br /&gt;
28 * * * Request timed out.&lt;br /&gt;
29 * * * Request timed out.&lt;br /&gt;
30 * * * Request timed out.&lt;br /&gt;
Trace complete.&lt;br /&gt;
&lt;br /&gt;
I  performed the same tracert many times a day but concluded with the same  result. This indicates that the systems after the router  SanJose1.Level3.net has firewalls installed which prevents the outgoing  of data packets.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Detecting Traceroute Attempts on your System&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
You can detect that an attacker is performing a traceroute on your system, if you see the following symptoms:&lt;br /&gt;
&lt;br /&gt;
1.  If you observe port scans on very high UDP ports. This symptom means  that the attacker has performed a traceroute on your system. However, it  could also mean a simply port scan. Either way, it signifies the fact  that your system is being scanned.&lt;br /&gt;
&lt;br /&gt;
2. If the packet-monitoring  tool installed in your network, picks up several outgoing TTL-exceeding  messages, then it is yet another sign that someone is doing a traceroute  on your system.&lt;br /&gt;
&lt;br /&gt;
3. If in these log files, you also observer an  outgoing ICMP port unreachable error message, then it means that since a  traceroute was done on your system and as the target system i.e. your  system, was reached, it responded with this error message.&lt;br /&gt;
&lt;br /&gt;
You  can also find our more information on the attacker (if he performs a  traceroute on your system) by simply studying the sniffer log files. If  you observer the TTL values, then we can easily figure out the following  information on the attacker by making use of OS detection techniques  discussed earlier in this white paper:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li class="MsoNormal"&gt;The      Operating System running on the attacker’s target system.&lt;/li&gt;
&lt;li class="MsoNormal"&gt;Number      of hops away, the attacker is from you.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item><item><title>All DOS Commands</title><link>http://programmereye.blogspot.com/2011/10/all-dos-commands.html</link><category>Programming</category><pubDate>Fri, 21 Oct 2011 17:01:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-2923007362589450573</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_8mCxvvU5MhTD3NmoVxbfMSFOhdHNDwVKTwfHYA8pF43jeV1Akw0XtfgerAEqsEDP2oKW8CtxzwBfsA8hKfCKk0zWzMlVtgIWZKyro4V2ZnnDe6vqE0GhgZ9L5wXwhzETvnYnSqnFrBw/s1600/0-crj6zEzc-250px-ms-dos-logo-s-.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_8mCxvvU5MhTD3NmoVxbfMSFOhdHNDwVKTwfHYA8pF43jeV1Akw0XtfgerAEqsEDP2oKW8CtxzwBfsA8hKfCKk0zWzMlVtgIWZKyro4V2ZnnDe6vqE0GhgZ9L5wXwhzETvnYnSqnFrBw/s1600/0-crj6zEzc-250px-ms-dos-logo-s-.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;All DOS command&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align="left"&gt;&lt;b&gt;ADDUSERS:           &lt;/b&gt;Add or list users to/from a CSV file&lt;b&gt;&lt;br /&gt;
ARP:               &lt;/b&gt;Address Resolution Protocol&lt;b&gt;&lt;br /&gt;
ASSOC:             &lt;/b&gt;Change file extension associations&lt;b&gt;&lt;br /&gt;
ASSOCIAT: &lt;/b&gt;One step file association&lt;b&gt;&lt;br /&gt;
AT: &lt;/b&gt;Schedule a command to run at a later time&lt;b&gt;&lt;br /&gt;
ATTRIB:&lt;/b&gt;             Change file attributes&lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
BOOTCFG:&lt;/b&gt;          Edit Windows boot settings&lt;b&gt;&lt;br /&gt;
BROWSTAT: &lt;/b&gt;Get domain, browser and PDC info&lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
CACLS: &lt;/b&gt;Change file permissions&lt;b&gt;&lt;br /&gt;
CALL: &lt;/b&gt;Call one batch program from another&lt;b&gt;&lt;br /&gt;
CD: &lt;/b&gt;Change Directory - move to a specific Folder&lt;b&gt;&lt;br /&gt;
CHANGE: &lt;/b&gt;Change Terminal Server Session properties&lt;b&gt;&lt;br /&gt;
CHKDSK: &lt;/b&gt;Check Disk - check and repair disk problems&lt;b&gt;&lt;br /&gt;
CHKNTFS: &lt;/b&gt;Check the NTFS file system&lt;b&gt;&lt;br /&gt;
CHOICE: &lt;/b&gt;Accept keyboard input to a batch file&lt;b&gt;&lt;br /&gt;
CIPHER: &lt;/b&gt;Encrypt or Decrypt files/folders&lt;b&gt;&lt;br /&gt;
CleanMgr: &lt;/b&gt;Automated cleanup of Temp files, recycle bin&lt;b&gt;&lt;br /&gt;
CLEARMEM: &lt;/b&gt;Clear memory leaks&lt;b&gt;&lt;br /&gt;
CLIP: &lt;/b&gt;Copy STDIN to the Windows clipboard.&lt;b&gt;&lt;br /&gt;
CLS: &lt;/b&gt;Clear the screen&lt;b&gt;&lt;br /&gt;
CLUSTER: &lt;/b&gt;Windows Clustering&lt;b&gt;&lt;br /&gt;
CMD: &lt;/b&gt;Start a new CMD shell&lt;b&gt;&lt;br /&gt;
COLOR: &lt;/b&gt;Change colors of the CMD window&lt;b&gt;&lt;br /&gt;
COMP: &lt;/b&gt;Compare the contents of two files or sets of files&lt;b&gt;&lt;br /&gt;
COMPACT: &lt;/b&gt;Compress files or folders on an NTFS partition&lt;b&gt;&lt;br /&gt;
COMPRESS: &lt;/b&gt;Compress individual files on an NTFS partition&lt;b&gt;&lt;br /&gt;
CON2PRT: &lt;/b&gt;Connect or disconnect a Printer&lt;b&gt;&lt;br /&gt;
CONVERT: &lt;/b&gt;Convert a FAT drive to NTFS.&lt;b&gt;&lt;br /&gt;
COPY: &lt;/b&gt;Copy one or more files to another location&lt;b&gt;&lt;br /&gt;
CSVDE: &lt;/b&gt;Import or Export Active Directory data &lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
DATE: &lt;/b&gt;Display or set the date&lt;b&gt;&lt;br /&gt;
Dcomcnfg: &lt;/b&gt;DCOM Configuration Utility&lt;b&gt;&lt;br /&gt;
DEFRAG: &lt;/b&gt;Defragment hard drive&lt;b&gt;&lt;br /&gt;
DEL: &lt;/b&gt;Delete one or more files&lt;b&gt;&lt;br /&gt;
DELPROF:&lt;/b&gt; Delete NT user profiles&lt;b&gt;&lt;br /&gt;
DELTREE: &lt;/b&gt;Delete a folder and all subfolders&lt;b&gt;&lt;br /&gt;
DevCon: &lt;/b&gt;Device Manager Command Line Utility &lt;b&gt;&lt;br /&gt;
DIR: &lt;/b&gt;Display a list of files and folders&lt;b&gt;&lt;br /&gt;
DIRUSE: &lt;/b&gt;Display disk usage&lt;b&gt;&lt;br /&gt;
DISKCOMP: &lt;/b&gt;Compare the contents of two floppy disks&lt;b&gt;&lt;br /&gt;
DISKCOPY: &lt;/b&gt;Copy the contents of one floppy disk to another&lt;b&gt;&lt;br /&gt;
DNSSTAT: &lt;/b&gt;DNS Statistics&lt;b&gt;&lt;br /&gt;
DOSKEY:&lt;/b&gt; Edit command line, recall commands, and create macros&lt;b&gt;&lt;br /&gt;
DSADD: &lt;/b&gt;Add user (computer, group..) to active directory&lt;b&gt;&lt;br /&gt;
DSQUERY: &lt;/b&gt;List items in active directory&lt;b&gt;&lt;br /&gt;
DSMOD: &lt;/b&gt;Modify user (computer, group..) in active directory&lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
ECHO:&lt;/b&gt; Display message on screen&lt;b&gt;&lt;br /&gt;
ENDLOCAL: &lt;/b&gt;End localisation of environment changes in a batch file&lt;b&gt;&lt;br /&gt;
ERASE: &lt;/b&gt;Delete one or more files&lt;b&gt;&lt;br /&gt;
EXIT: &lt;/b&gt;Quit the CMD shell&lt;b&gt;&lt;br /&gt;
EXPAND: &lt;/b&gt;Uncompress files&lt;b&gt;&lt;br /&gt;
EXTRACT: &lt;/b&gt;Uncompress CAB files&lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
FC: &lt;/b&gt;Compare two files&lt;b&gt;&lt;br /&gt;
FDISK: &lt;/b&gt;Disk Format and partition&lt;b&gt;&lt;br /&gt;
FIND: &lt;/b&gt;Search for a text string in a file&lt;b&gt;&lt;br /&gt;
FINDSTR: &lt;/b&gt;Search for strings in files&lt;b&gt;&lt;br /&gt;
FOR:&lt;/b&gt; Conditionally perform a command several times&lt;b&gt;&lt;br /&gt;
FORFILES: &lt;/b&gt;Batch process multiple files&lt;b&gt;&lt;br /&gt;
FORMAT: &lt;/b&gt;Format a disk&lt;b&gt;&lt;br /&gt;
FREEDISK: &lt;/b&gt;Check free disk space (in bytes)&lt;b&gt;&lt;br /&gt;
FSUTIL: &lt;/b&gt;File and Volume utilities&lt;b&gt;&lt;br /&gt;
FTP: &lt;/b&gt;File Transfer Protocol&lt;b&gt;&lt;br /&gt;
FTYPE: &lt;/b&gt;Display or modify file types used in file extension associations&lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
GLOBAL: &lt;/b&gt;Display membership of global groups&lt;b&gt;&lt;br /&gt;
GOTO: &lt;/b&gt;Direct a batch program to jump to a labelled line&lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
HELP: &lt;/b&gt;Online Help&lt;b&gt;&lt;br /&gt;
HFNETCHK: &lt;/b&gt;Network Security Hotfix Checker &lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
IF: &lt;/b&gt;Conditionally perform a command&lt;b&gt;&lt;br /&gt;
IFMEMBER: &lt;/b&gt;Is the current user in an NT Workgroup&lt;b&gt;&lt;br /&gt;
IPCONFIG: &lt;/b&gt;Configure IP&lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
KILL: &lt;/b&gt;Remove a program from memory&lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
LABEL: &lt;/b&gt;Edit a disk label&lt;b&gt;&lt;br /&gt;
LOCAL: &lt;/b&gt;Display membership of local groups&lt;b&gt;&lt;br /&gt;
LOGEVENT: &lt;/b&gt;Write text to the NT event viewer.&lt;b&gt;&lt;br /&gt;
LOGOFF: &lt;/b&gt;Log a user off&lt;b&gt;&lt;br /&gt;
LOGTIME: &lt;/b&gt;Log the date and time in a file&lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
MAPISEND: &lt;/b&gt;Send email from the command line&lt;b&gt;&lt;br /&gt;
MEM: &lt;/b&gt;Display memory usage&lt;b&gt;&lt;br /&gt;
MD: &lt;/b&gt;Create new folders&lt;b&gt;&lt;br /&gt;
MODE: &lt;/b&gt;Configure a system device&lt;b&gt;&lt;br /&gt;
MORE: &lt;/b&gt;Display output, one screen at a time&lt;b&gt;&lt;br /&gt;
MOUNTVOL: &lt;/b&gt;Manage a volume mount point&lt;b&gt;&lt;br /&gt;
MOVE: &lt;/b&gt;Move&lt;b&gt; &lt;/b&gt;files from one folder to another&lt;b&gt;&lt;br /&gt;
MOVEUSER: &lt;/b&gt;Move a user from one domain to another&lt;b&gt;&lt;br /&gt;
MSG: &lt;/b&gt;Send a message&lt;b&gt;&lt;br /&gt;
MSIEXEC: &lt;/b&gt;Microsoft Windows Installer&lt;b&gt;&lt;br /&gt;
MSINFO: &lt;/b&gt;Windows NT diagnostics&lt;b&gt;&lt;br /&gt;
MSTSC: &lt;/b&gt;Terminal Server Connection (Remote Desktop Protocol)&lt;b&gt;&lt;br /&gt;
MUNGE: &lt;/b&gt;Find and Replace text within file(s)&lt;b&gt;&lt;br /&gt;
MV: &lt;/b&gt;Copy in-use files&lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
NET: &lt;/b&gt;Manage network resources&lt;b&gt;&lt;br /&gt;
NETDOM: &lt;/b&gt;Domain Manager&lt;b&gt;&lt;br /&gt;
NETSH: &lt;/b&gt;Configure network protocols&lt;b&gt;&lt;br /&gt;
NETSVC: &lt;/b&gt;Command-line Service Controller&lt;b&gt;&lt;br /&gt;
NBTSTAT: &lt;/b&gt;Display networking statistics (NetBIOS over TCP/IP)&lt;b&gt;&lt;br /&gt;
NETSTAT: &lt;/b&gt;Display networking statistics (TCP/IP)&lt;b&gt;&lt;br /&gt;
NOW: &lt;/b&gt;Display the current Date and Time &lt;b&gt;&lt;br /&gt;
NSLOOKUP: &lt;/b&gt;Name server lookup&lt;b&gt;&lt;br /&gt;
NTBACKUP: &lt;/b&gt;Backup folders to tape&lt;b&gt;&lt;br /&gt;
NTRIGHTS: &lt;/b&gt;Edit user account rights&lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
PATH: &lt;/b&gt;Display or set a search path for executable files&lt;b&gt;&lt;br /&gt;
PATHPING:&lt;/b&gt; Trace route plus network latency and packet loss&lt;b&gt;&lt;br /&gt;
PAUSE: &lt;/b&gt;Suspend processing of a batch file and display a message&lt;b&gt;&lt;br /&gt;
PERMS: &lt;/b&gt;Show permissions for a user&lt;b&gt;&lt;br /&gt;
PERFMON: &lt;/b&gt;Performance Monitor&lt;b&gt;&lt;br /&gt;
PING: &lt;/b&gt;Test a network connection&lt;b&gt;&lt;br /&gt;
POPD: &lt;/b&gt;Restore the previous value of the current directory saved by PUSHD&lt;b&gt;&lt;br /&gt;
PORTQRY: &lt;/b&gt;Display the status of ports and services&lt;b&gt;&lt;br /&gt;
PRINT: &lt;/b&gt;Print a text file&lt;b&gt;&lt;br /&gt;
PRNCNFG: &lt;/b&gt;Display, configure or rename a printer&lt;b&gt;&lt;br /&gt;
PRNMNGR: &lt;/b&gt;Add, delete, list printers set the default printer&lt;b&gt;&lt;br /&gt;
PROMPT: &lt;/b&gt;Change the command prompt&lt;b&gt;&lt;br /&gt;
PsExec: &lt;/b&gt;Execute process remotely&lt;br /&gt;
&lt;b&gt;PsFile:&lt;/b&gt; Show files opened remotely&lt;b&gt;&lt;br /&gt;
PsGetSid: &lt;/b&gt;Display the SID of a computer or a user&lt;b&gt;&lt;br /&gt;
PsInfo: &lt;/b&gt;List information about a system&lt;b&gt;&lt;br /&gt;
PsKill: &lt;/b&gt;Kill processes by name or process ID&lt;b&gt;&lt;br /&gt;
PsList: &lt;/b&gt;List detailed information about processes&lt;b&gt;&lt;br /&gt;
PsLoggedOn: &lt;/b&gt;Who's logged on (locally or via resource sharing)&lt;b&gt;&lt;br /&gt;
PsLogList: &lt;/b&gt;Event log records&lt;b&gt;&lt;br /&gt;
PsPasswd: &lt;/b&gt;Change account password&lt;b&gt;&lt;br /&gt;
PsService: &lt;/b&gt;View and control services&lt;b&gt;&lt;br /&gt;
PsShutdown: &lt;/b&gt;Shutdown or reboot a computer&lt;b&gt;&lt;br /&gt;
PsSuspend: &lt;/b&gt;Suspend processes&lt;b&gt;&lt;br /&gt;
PUSHD: &lt;/b&gt;Save and then change the current directory&lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
QGREP: &lt;/b&gt;Search file(s) for lines that match a given pattern.&lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
RASDIAL: &lt;/b&gt;Manage RAS connections&lt;b&gt;&lt;br /&gt;
RASPHONE: &lt;/b&gt;Manage RAS connections&lt;b&gt;&lt;br /&gt;
RECOVER: &lt;/b&gt;Recover a damaged file from a defective disk.&lt;b&gt;&lt;br /&gt;
REG: Read, &lt;/b&gt;Set or Delete registry keys and values&lt;b&gt;&lt;br /&gt;
REGEDIT: &lt;/b&gt;Import or export registry settings&lt;b&gt;&lt;br /&gt;
REGSVR32: &lt;/b&gt;Register or unregister a DLL&lt;b&gt;&lt;br /&gt;
REGINI: &lt;/b&gt;Change Registry Permissions&lt;b&gt;&lt;br /&gt;
REM: &lt;/b&gt;Record comments (remarks) in a batch file&lt;b&gt;&lt;br /&gt;
REN: &lt;/b&gt;Rename a file or files.&lt;b&gt;&lt;br /&gt;
REPLACE: &lt;/b&gt;Replace or update one file with another&lt;b&gt;&lt;br /&gt;
RD: &lt;/b&gt;Delete folder(s)&lt;b&gt;&lt;br /&gt;
RDISK: &lt;/b&gt;Create a Recovery Disk&lt;b&gt;&lt;br /&gt;
RMTSHARE: &lt;/b&gt;Share a folder or a printer&lt;b&gt;&lt;br /&gt;
ROBOCOPY: &lt;/b&gt;Robust File and Folder Copy&lt;b&gt;&lt;br /&gt;
ROUTE: &lt;/b&gt;Manipulate network routing tables&lt;b&gt;&lt;br /&gt;
RUNAS: &lt;/b&gt;Execute a program under a different user account&lt;b&gt;&lt;br /&gt;
RUNDLL32: &lt;/b&gt;Run a DLL command (add/remove print connections)&lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
SC: &lt;/b&gt;Service Control&lt;b&gt;&lt;br /&gt;
SCHTASKS: &lt;/b&gt;Create or Edit Scheduled Tasks &lt;b&gt;&lt;br /&gt;
SCLIST: &lt;/b&gt;Display NT Services&lt;b&gt;&lt;br /&gt;
ScriptIt: &lt;/b&gt;Control GUI applications&lt;b&gt;&lt;br /&gt;
SET: &lt;/b&gt;Display, set, or remove environment variables&lt;b&gt;&lt;br /&gt;
SETLOCAL: &lt;/b&gt;Begin localisation of environment changes in a batch file&lt;b&gt;&lt;br /&gt;
SETX: &lt;/b&gt;Set environment variables permanently &lt;b&gt;&lt;br /&gt;
SHARE: &lt;/b&gt;List or edit a file share or print share&lt;b&gt;&lt;br /&gt;
SHIFT: &lt;/b&gt;Shift the position of replaceable parameters in a batch file&lt;b&gt;&lt;br /&gt;
SHORTCUT: &lt;/b&gt;Create a windows shortcut (.LNK file)&lt;b&gt;&lt;br /&gt;
SHOWGRPS: &lt;/b&gt;List the NT Workgroups a user has joined&lt;b&gt;&lt;br /&gt;
SHOWMBRS: &lt;/b&gt;List the Users who are members of a Workgroup&lt;b&gt;&lt;br /&gt;
SHUTDOWN: &lt;/b&gt;Shutdown the computer&lt;b&gt;&lt;br /&gt;
SLEEP: &lt;/b&gt;Wait for x seconds&lt;b&gt;&lt;br /&gt;
SOON: &lt;/b&gt;Schedule a command to run in the near future&lt;b&gt;&lt;br /&gt;
SORT: &lt;/b&gt;Sort input&lt;b&gt;&lt;br /&gt;
START: &lt;/b&gt;Start a separate window to run a specified program or command&lt;b&gt;&lt;br /&gt;
SU: &lt;/b&gt;Switch User&lt;b&gt;&lt;br /&gt;
SUBINACL: &lt;/b&gt;Edit file and folder Permissions, Ownership and Domain&lt;b&gt;&lt;br /&gt;
SUBST: &lt;/b&gt;Associate a path with a drive letter&lt;b&gt;&lt;br /&gt;
SYSTEMINFO: &lt;/b&gt;List system configuration&lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
TASKLIST: &lt;/b&gt;List running applications and services&lt;b&gt;&lt;br /&gt;
TIME: &lt;/b&gt;Display or set the system time&lt;b&gt;&lt;br /&gt;
TIMEOUT: &lt;/b&gt;Delay processing of a batch file&lt;b&gt;&lt;br /&gt;
TITLE: &lt;/b&gt;Set the window title for a CMD.EXE session&lt;b&gt;&lt;br /&gt;
TOUCH: &lt;/b&gt;Change file timestamps &lt;b&gt;&lt;br /&gt;
TRACERT: &lt;/b&gt;Trace route to a remote host&lt;b&gt;&lt;br /&gt;
TREE: &lt;/b&gt;Graphical display of folder structure&lt;b&gt;&lt;br /&gt;
TYPE: &lt;/b&gt;Display the contents of a text file&lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
USRSTAT: &lt;/b&gt;List domain usernames and last login&lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
VER: &lt;/b&gt;Display version information&lt;b&gt;&lt;br /&gt;
VERIFY: &lt;/b&gt;Verify that files have been saved&lt;b&gt;&lt;br /&gt;
VOL: &lt;/b&gt;Display a disk label&lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
WHERE: &lt;/b&gt;Locate and display files in a directory tree&lt;b&gt;&lt;br /&gt;
WHOAMI: &lt;/b&gt;Output the current UserName and domain&lt;b&gt;&lt;br /&gt;
WINDIFF: &lt;/b&gt;Compare the contents of two files or sets of files&lt;b&gt;&lt;br /&gt;
WINMSD: &lt;/b&gt;Windows system diagnostics&lt;b&gt;&lt;br /&gt;
WINMSDP: &lt;/b&gt;Windows system diagnostics II&lt;b&gt;&lt;br /&gt;
WMIC:&lt;/b&gt; WMI Commands&lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
XCACLS: &lt;/b&gt;Change file permissions&lt;b&gt;&lt;br /&gt;
XCOPY: &lt;/b&gt;Copy files and folders&lt;b&gt;&lt;br /&gt;
&lt;br /&gt;
i recommend for all dos commands visit&lt;br /&gt;
&lt;a href="http://www.ss64.com/nt/"&gt;http://www.ss64.com/nt/&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_8mCxvvU5MhTD3NmoVxbfMSFOhdHNDwVKTwfHYA8pF43jeV1Akw0XtfgerAEqsEDP2oKW8CtxzwBfsA8hKfCKk0zWzMlVtgIWZKyro4V2ZnnDe6vqE0GhgZ9L5wXwhzETvnYnSqnFrBw/s72-c/0-crj6zEzc-250px-ms-dos-logo-s-.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item><item><title>How Trojan Horses Work</title><link>http://programmereye.blogspot.com/2011/10/how-trojan-horses-work.html</link><category>Virus</category><pubDate>Fri, 21 Oct 2011 16:28:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-6008031006714800847</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXQcvF3AHv5bWFat2pxxFBTly1N3m2C8LAv-t-VfP38gphVEPa73kKDwpsLUcU4r6mcyc29UesmJ11BcihUf0yhuAC3jz2KsP_WlA3yPp7Y6Wh9ZoD-LF2LaDdNv9RC0UNI29XW9a-qXE/s1600/trojan-horse-virus.png.gif" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXQcvF3AHv5bWFat2pxxFBTly1N3m2C8LAv-t-VfP38gphVEPa73kKDwpsLUcU4r6mcyc29UesmJ11BcihUf0yhuAC3jz2KsP_WlA3yPp7Y6Wh9ZoD-LF2LaDdNv9RC0UNI29XW9a-qXE/s320/trojan-horse-virus.png.gif" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;One of the most enduring stories of the Trojan War,  the most important conflict in Greek mythology, is the tale of the  Trojan horse. Trying to find a way into the city of Troy, the great  warrior Odysseus ordered his men to build a massive wooden horse, one  big enough for several Greek soldiers to fit in. Once the structure was  finished, he and several other warriors climbed inside, while the rest  of the Greeks sailed away from Troy. One man named Sinon, however,  stayed behind in order to deceive the Trojans, convincing them that his  fellow Greeks had betrayed him and fled from the city. The wooden horse,  he told the Trojans, was safe and would bring them luck.&lt;br /&gt;
&lt;br /&gt;
After  some discussion over the matter, the Trojans agreed to wheel the horse  through their gates, unknowingly giving the Greek enemy access to the  city. After proclaiming victory and partying all night, the citizens of  Troy went to sleep -- it was then that Odysseus and his men crept out of  the Trojan horse and wreaked havoc on the city.&lt;br /&gt;
&lt;br /&gt;
­Although you've  probably heard of the Trojan horse from Greek mythology, chances are  you've also heard of Trojan horses in reference to computers. &lt;strong&gt;Trojan horses&lt;/strong&gt;  are common but dangerous programs that hide within other seemingly  harmless programs. They work the same way the ancient Trojan horse did:  Once they're installed, the program will infect other files throughout  your system and potentially wreak havoc on your computer. They can even  send important information from your computer over the Internet to the developer of the virus. The developer can then essentially control your computer, slowing your system's activity or causing your machine to crash.&lt;br /&gt;
&lt;br /&gt;
­Though  they're not actually viruses, they're referred to as "Trojan horse  viruses," "Trojan viruses," "Trojan horses" or just plain "Trojans."  Regardless of what people call them, they all mean same thing. But what  happened? How did you let this Trojan horse into your computer in the  first place? And what can you do stop one from getting in?&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXQcvF3AHv5bWFat2pxxFBTly1N3m2C8LAv-t-VfP38gphVEPa73kKDwpsLUcU4r6mcyc29UesmJ11BcihUf0yhuAC3jz2KsP_WlA3yPp7Y6Wh9ZoD-LF2LaDdNv9RC0UNI29XW9a-qXE/s72-c/trojan-horse-virus.png.gif" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item><item><title>Amazing New Motion Capture Tech Makes Games Look Like Films</title><link>http://programmereye.blogspot.com/2011/10/amazing-new-motion-capture-tech-makes.html</link><category>Games</category><category>Techonology Concepts</category><pubDate>Fri, 21 Oct 2011 16:15:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-3369007382421757191</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjDKzeJHpvti8tKs7vuc-d8XkogtwR5G38LI28Z8eHFjumicLbD5k8F1Mxy_pgcWx-yavXPSbYeg3JRlffPvqaFFf3zxjE8Bx_lHUKKSJtgJ6Aa0KHuLdjF1X8tZThB8kGf3JCVVwJUvc/s1600/101215_la_noire.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjDKzeJHpvti8tKs7vuc-d8XkogtwR5G38LI28Z8eHFjumicLbD5k8F1Mxy_pgcWx-yavXPSbYeg3JRlffPvqaFFf3zxjE8Bx_lHUKKSJtgJ6Aa0KHuLdjF1X8tZThB8kGf3JCVVwJUvc/s1600/101215_la_noire.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Check out this amazing new video  on YouTube.&amp;nbsp; It's a short clip on the making of the upcoming video  game, L.A. Noire.&amp;nbsp; Specifically, it focuses on a new motion capture  technology called MotionScan, which creates the most lifelike scenes  yet. &lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="360" src="http://www.youtube.com/embed/q2EG5J05048?hd=1" width="600"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
Brendan McNamara, lead developer&amp;nbsp; for    L A Noire, has said that  “We’re definitely blurring the lines now. I want this game    to be the  flashpoint where people start to think of games and film as being    on  the same level, because I’m confident they already are.”&amp;nbsp; It's hard to  argue after seeing the footage.&amp;nbsp; The company behind MotionScan is depth  Analysis, based in Sydney,&amp;nbsp;Australia. Depth Analysis announced the innovation earlier this year, and gave a few hints about how it works.&lt;br /&gt;
&lt;br /&gt;
"MotionScan uses 32 High Definition cameras to capture true-to-life  three-dimensional performances at up to 30 frames per second,"&amp;nbsp;the  company revealed. "Capable of capturing up to 50 minutes of final  footage and processing up to 20 minutes of facial animation  automatically per day, the technology revolutionizes traditional  motion-capture and post-production animation. MotionScan records every  emotional detail, mannerism, and facial nuance accurately frame by frame  as 3D models.&amp;nbsp; No markers or phosphorescent paint needs to be applied  to the actors at the time of recording, and no manpower is required to  clean up data and animate the finer details by hand after the shoot. For  directors and cinematographers, an additional advantage of MotionScan  is the ability to view an actor’s performance from any angle and  re-light in any way from one take without the need for multiple camera  and lighting setups that quickly drain production time and budgets."&lt;br /&gt;
&lt;br /&gt;
This comes at a momentous time for motion-capture innovation.&amp;nbsp;  Microsoft, of course, recently rolled out the Kinect motion-sensing  camera for the Xbox 360.&amp;nbsp; The Kinect is sort of the DIY&amp;nbsp;version of  MotionScan, letting gamers transport themselves into the action.&amp;nbsp; It'll  be interesting to see how this increased realism impacts game  development in the coming year.&amp;nbsp; Perhaps most significantly, it may lead  more A-List Hollywood actors into games.&amp;nbsp;&amp;nbsp;&amp;nbsp;After all, as one can see by  the LA Noire footage (which features an actor from the hit show Mad  Men) there's more "acting"&amp;nbsp;that can actually come through now given the  mocap precision.&lt;br /&gt;
&lt;br /&gt;
LA&amp;nbsp;Noire, which is made by Rockstar Games, will likely be a  breakthrough title, ushering in a new era of cinematic game play.&amp;nbsp; With  so much attention focused now on smaller, social games like Farmville,  cinematic epics are primed for reinvention.&amp;nbsp;&amp;nbsp; I have no doubt that while  gamers may be spending more time on iPhones, there's always an appetite  for big brash immersive epics like LA&amp;nbsp;Noire.&amp;nbsp; &lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjDKzeJHpvti8tKs7vuc-d8XkogtwR5G38LI28Z8eHFjumicLbD5k8F1Mxy_pgcWx-yavXPSbYeg3JRlffPvqaFFf3zxjE8Bx_lHUKKSJtgJ6Aa0KHuLdjF1X8tZThB8kGf3JCVVwJUvc/s72-c/101215_la_noire.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item><item><title>The “world’s most wanted hacker,” Kevin Mitnick, has gone straight (interview)</title><link>http://programmereye.blogspot.com/2011/10/worlds-most-wanted-hacker-kevin-mitnick.html</link><category>Hacking</category><category>News</category><pubDate>Fri, 21 Oct 2011 15:57:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-6236513876213082537</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_eA3UGkBVttla4VZH1jeIvRHwRR2aXhz9wDyMnqtYcKbfh-SdpQZfjVxPgpv24P9JQJdPowAgZewMjB5h2K0_uE4Wz5AYfdGENrM3hmk6HOEr0Ky7w8pDtRQUQqDl5V8qHQ8XsQwFBEA/s1600/kevin-mitnick.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_eA3UGkBVttla4VZH1jeIvRHwRR2aXhz9wDyMnqtYcKbfh-SdpQZfjVxPgpv24P9JQJdPowAgZewMjB5h2K0_uE4Wz5AYfdGENrM3hmk6HOEr0Ky7w8pDtRQUQqDl5V8qHQ8XsQwFBEA/s400/kevin-mitnick.jpg" width="262" /&gt;&lt;/a&gt;&lt;i&gt; This story is taken from &lt;a href="http://venturebeat.com/"&gt;VentureBeat&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Kevin Mitnick  was once labeled the world’s most wanted hacker. Back in 1992, he  tangled with a mystery hacker named Eric, setting off a duel that led to  a chain of events that spun out of control.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&lt;/i&gt; &lt;br /&gt;
&lt;i&gt;After a FBI manhunt, he was caught in 1995 with the help of security expert Tsutomu Shimomura,  who wrote about the experience with New York Times writer John Markoff.  Mitnick spent five years in jail, including eight months in solitary  confinement.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;At first, Mitnick wasn’t allowed to tell his side of the story,  thanks to a gag order. Now he has penned a book on about his life on the  run, co-written with author William L. Simon.&amp;nbsp; Called “&lt;a href="http://www.amazon.com/Ghost-Wires-Adventures-Worlds-Wanted/dp/0316037702" target="_blank"&gt;Ghost in the Wires: My Adventures as the World’s Most Wanted Hacker&lt;/a&gt;,” the title has stayed on the New York Times Bestseller list for several weeks.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;After getting out of prison, Mitnick pulled his life together as a  “white hat” hacker, or one who helps companies by testing the security  of their networks via Mitnick Security Consulting. Now he frequently talks about how to protect yourself from wily cyber attacks.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;Here’s an excerpt from the book. And below is an edited transcript of our interview with Mitnick.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;VB:&lt;/b&gt; &lt;b&gt;Hi Kevin. We’ve talked before when you published your books, &lt;a href="http://www.amazon.com/Art-Intrusion-Exploits-Intruders-Deceivers/dp/0471782661/ref=pd_bxgy_b_img_b" target="_blank"&gt;The Art of Intrusion&lt;/a&gt; and &lt;a href="http://www.amazon.com/Art-Deception-Controlling-Element-Security/dp/0471237124" target="_blank"&gt;The Art of Deception&lt;/a&gt;.  At the time, you had a gag order that did not allow you to write about  your arrest and the events leading up to it. Now that it has expired,  you’ve revisited those memories. Why?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;KM:&lt;/b&gt; I had a deal with the government for about, for  seven years after I was released from custody. So it expired around Jan.  21, 2007.&amp;nbsp; After that, we decided to work on my memoir, Ghost in The  Wires. That was finally published on August 15. The other two books  mentioned my life on the run, but they were really about the lessons I  learned with social engineering and how organizations could mitigate the  risk of falling victim to it. That book was The Art of Deception. Art  of Intrusion was really kind of just talking about the stories of other  hackers that were in the news and some where the perpetrators were never  identified.&lt;br /&gt;
So what I like about the best of all these three is my life story  Ghost in The Wires because it’s kind of like a Catch Me If You Can  version for a computer hacker. What is unique about it that it is a true  story. People really seem to like it.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;VB:&lt;/b&gt; &lt;b&gt;Yeah I noticed you tweeted about how it’s still on the New York Times online bestseller list.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;KM:&lt;/b&gt; Well this week it was 23 last week it was 12 the  week before that it was 15, the week before that it was 16. So I have  been on the New York Times best seller list a month so far.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;VB:&lt;/b&gt; &lt;b&gt;Congratulations. Why do people want to read it?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;KM:&lt;/b&gt; Thank you so much. I never expected it but I  guess it’s a great story and it’s written very well. So people are  interested in it and I guess I’m the cyber version of &lt;a href="http://en.wikipedia.org/wiki/Frank_Abagnale" target="_blank"&gt;Frank Abagnale&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;VB:&lt;/b&gt; &lt;b&gt;It’s probably only fair since there were other bestsellers that were written about you.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;KM:&lt;/b&gt; I don’t think any of them actually made the bestsellers list. &lt;a href="http://www.amazon.com/Takedown-Pursuit-Americas-Computer-Outlaw/dp/0786889136" target="_blank"&gt;John  Markoff’s book, [Takedown: The Pursuit and Capture of Kevin Mitnick,  America's Most Wanted Computer Outlaw, By the Man Who Did It],&lt;/a&gt; never made it the bestsellers list.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;VB: Oh it didn’t?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;KM:&lt;/b&gt; As far as I am aware, the only hacking book that  made the bestseller list was a book called The Cuckoo’s Egg by Cliff  Stoll. The Takedown book never made it to the list and in fact it was a  very poorly reviewed book.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVzkdcu30rIgL9gUrPyTKjgw3ml6Bo69nVdcpCYD7zFDmXQATvl1iDj1SdzPQeUdlDEEqGarrZnWmrzB2_4CCiqCUZRiwb8XSGXd0CheBDeRXhkYcZJwTGGi4Pcsx08kBsUmFIGJvxLi4/s1600/ghost.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVzkdcu30rIgL9gUrPyTKjgw3ml6Bo69nVdcpCYD7zFDmXQATvl1iDj1SdzPQeUdlDEEqGarrZnWmrzB2_4CCiqCUZRiwb8XSGXd0CheBDeRXhkYcZJwTGGi4Pcsx08kBsUmFIGJvxLi4/s400/ghost.jpg" width="267" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;VB:&lt;/b&gt; &lt;b&gt;Did you ever figure out why the government had such an unusual gag order in place here because that seems pretty rare?&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&amp;nbsp;&lt;/b&gt; &lt;br /&gt;
&lt;b&gt;KM:&lt;/b&gt; Well one of the things was they wanted to profit  off my story and they wanted to keep everything under a protect order  meaning that I was essentially forbidden to talk about it. So I had to  be very careful because there is still stuff that is still under  protective order that I couldn’t reveal. And so I had to be very careful  to still tread around that restriction. The seven-year restriction was  to prevent me from earning any revenue from my free public expression.  They learned that from cases like the (murderer) Son of Sam.&lt;br /&gt;
&lt;br /&gt;
So they had to do it that way because there are laws that are usually  applied to violent crime cases to prevent people from profiting by  telling the story. But it’s a prior restraint on free speech, so the  Supreme Court has since struck down those laws. That was how the federal  government dealt with it back then. It was part of the plea agreement.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;VB: So what really drove you to write this new book after the gag order lifted and you were free?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;KM:&lt;/b&gt; To get the story out. It wasn’t really about  making money. I mean I make money from my security business and my  public speaking career because I go around in the world doing a lot of  public speeches, keynoting at conferences. I make plenty of money doing  that. So it wasn’t really about the money it was about getting my side  of the story out. I thought it was a great story to tell that people  would enjoy it. And I want to really to focus on the chase because my  story is kind of a cat-and-mouse game with the federal government.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;VB:&lt;/b&gt; &lt;b&gt;Tell us some stories about being on the run.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;KM:&lt;/b&gt; I think the federal government came down harder  on me is because I was playing games on them. At one point the  government sent an informant to come and trap me, around 1992, after I  was released from an earlier prison sentence. I quickly worked out what  was going on and in the process I compromised the local cell phone  company. I was able to identify the cell phones in Los Angeles that were  calling the informant. I didn’t know the guy was an informant at the  time, as this was part of my usual investigation.&lt;br /&gt;
&lt;br /&gt;
I learned that people calling him were the FBI and it was the agency  cell phone numbers. So what I did is I programmed these cell phone  numbers into a device at a company where I was working as a private  investigator. So if any of the cell phones came within a few miles  radius of me, it would send me an alert. It was an early warning  detection system that I had set up.&lt;br /&gt;
&lt;br /&gt;
So in September of 1992, I was walking to my office one morning and I  disabled the alarm. But I kept hearing a beeping. And I figured out  that the alarm was disabled and I starting walking around everyone’s  office to find out what this weird beeping was. It turned out it was  coming from my office and it was my early warning system going off. A  few hours earlier one of the FBI agents was actually making a phone call  from the pay phone across the street from my apartment. He was within a  mile of where I was.&lt;br /&gt;
&lt;br /&gt;
I realized that the FBI happened to be to at my apartment when I was  sleeping and nobody knocked on the door. So I realized they weren’t  there to like arrest me immediately. They were probably preparing to get  the stuff on my computer. I thought they would do a search. So I  cleaned out my floppy disks, computers, and notes. I moved them over to a  friend’s house. I went to Winchell’s doughnuts and got a box. I took a  Sharpie and wrote “FBI doughnuts” on the box and stuck it in the  refrigerator. The next day, the FBI executed the search warrant. The day  before they were just gathering a description of my apartment to get  the warrant.They searched my apartment and found nothing but the  doughnuts. I think they were really pissed off.&lt;br /&gt;
&lt;br /&gt;
I did these immature things that were funny at the time and it  irritated them to no end. I think the agents took it personally. So when  I was prosecuted, it felt like it was because I was playing games with  them. When I was running from the government and living in Denver, I was  working for this law firm. I had a legitimate systems administrator  job. My hacking was all about becoming the best at circumventing  security. So when I was a fugitive, I worked systems administrator jobs  to make money. I wasn’t stealing money or using other people’s credit  cards. I was doing a 9-to-5 job. I was at this law firm in Denver for a  year and a half. One of my jobs was supporting the firm’s telephone  system. I put code into the system so that if anyone were to call the  FBI in Los Angeles or Denver, or the U.S. Attorney’s office, it would  send me a page. I would know if there was an internal investigation or  someone working me. I lived under the name Eric Weisz, the real name of  Harry Houdini. I did these smart ass things and the government really  frowned on it. I made a mockery of them and that’s probably why they  came down hard on me.&lt;br /&gt;
&lt;br /&gt;
My hacking did cause losses. But the losses were minimal compared to  what the government alleged. The government alleged that I caused $300  million worth of damage, where the damage was that I copied source code.  I was interested in the source code for operating systems like [Digital  Equipment Corp.'s] VMS. And I wanted to look at the source code; my  only purpose was to examine the flaws within the operating system so I  could bypass security. So it’s really just leveraging the source code to  become a better hacker. Now certainly it was illegal to copy the source  code but the government really took that and ran with it.&lt;br /&gt;
&lt;br /&gt;
Some of the FBI agents solicited these companies to actually say  their losses $80 million each, based on the value of the source code  that I looked at. So basically that was the entire research cost for  developing it. It’s kind of like stealing a can of Coke and then getting  charged with stealing billions of dollars because you have Coca-Cola  formula. In my case, the fair losses would have been like something a  few hundred thousand dollars.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;VB: So why didn’t that make sense?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;KM:&lt;/b&gt; It was only in the thousands, not the millions.  So what I had done was poked at the tiger too much. They were trying to  get me a really substantial prison sentence. My lawyer checked with the  Securities and Exchange Commission because any publicly traded company  has to report it when they suffer a material loss. Otherwise, they are  defrauding shareholders. My attorney founded that none of these  companies had reported to the SEC any loss that was attributed to my  hacking. So, again, I was punished for causing these multimillion dollar  losses.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;VB: So there was a mythology to being the world’s most wanted hacker.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;KM:&lt;/b&gt; Yeah I was you know I was the world’s  most-wanted hacker in the 1990s. I would hack in at all these companies  and look at their source code and the source code was a trade secret. So  the companies themselves had no idea why they have this mysterious  person hacking into their system. They were doing investigations. There  were some real losses for sure.&amp;nbsp; I’m sorry that I caused anybody any  loss at the time. As a hacker, I was thinking that all they have to do  is change a few passwords and they would fix it. They would patch a  security hole in their operating system and then I would be locked out.  It might take them 30 minutes for them to do that. What I didn’t realize  was what the other side is doing. The other side is like rebuilding  their operating system from scratch. They are auditing the source codes.  They are going through all these significant measures because they  don’t know who is on the other side. They don’t know it’s just me. So  you know what I’m saying? The victims had to do a lot of work.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;VB: Did you feel like you had to correct the record because of the book that John Markoff co-wrote?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;KM:&lt;/b&gt; Oh my God. I mean we could go on for hours. For  example when I hacked into DEC and I copied the VMS source code with the  co-defendant. I remember my co-defendant actually set me up for a FBI  sting and I was arrested. I ended up in federal prison. Three days  later, they finally took me to court and I was expecting to get bail.  What had happened was that a federal prosecutor told the judge not only  do we have to detain this guy, we have to make sure he can’t get to a  pay phone inside the prison. We have to make sure he can’t get to a pay  phone because he could dial up to the North American Air Defense System  (NORAD) and whistle tones and possibly start a nuclear war.&lt;br /&gt;
&lt;br /&gt;
[Markoff declined comment, beyond pointing out that Mitnick pleaded guilty to computer and wire fraud in March 1999.]&lt;br /&gt;
&lt;br /&gt;
When the prosecutor said this I started laughing because I had never  heard something so ridiculous in my life. It’s kind of like you taking  something out of the movie War Games and manipulating it to a ridiculous  degree. The judge, however, bought it hook line and sinker. I guess the  prosecutor was to be believed and I ended up being held in solitary  confinement in a federal detention center for nearly a year based on  this myth. Then all these other rumors the government started using as  fact. They said that I hacked into the National Security Agency and got  to their secret access codes.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;VB: That sounds a little implausible.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;KM:&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Back in the beginning, around the mid-90s you  could do a “who is” command on a site. Nowadays, you do that it shows  who it belongs to. Back then, they used to list the registered users of  the host and their phone numbers. So I had a file on my floppy disk at  the time called “NSA.txt” and it was a file that the output of a system  called Dock Master. And Dock Master was a system that was run by the  National Computer Security Center, which was the public arm of the NSA.  And it listed the user names in a four-digit number and the four-digit  number was their telephone extension.&lt;br /&gt;
&lt;br /&gt;
The prosecutor characterized that file as proof that I hacked into  the NSA and got their secret access codes and those four-digit numbers  were secret access codes. I was said to be stalking the actress Kristy McNichol.  I was supposedly messing with her telephone and calling her at all  times of the day and night. The rumor went so far I ended up on the  front page of the National Examiner which was like The National  Enquirer. And so I remember going to the supermarket and seeing a&amp;nbsp; front  page photo of me where it says Mitnick is stalking Kristy McNichol and  this is I couldn’t believe it. The government used this in court as to  what a danger I was. My mom at the time was a waitress at Jerry’s  Delicatessen in Studio City. She saw Kristy McNichol and walked up to  her. She said my son is Kevin Mitnick. She told my mom that whatever was  happening wasn’t true. Kristy McNichol was going to write a letter to  the court and explain these things had never happened. Her agents  stopped her because they didn’t want it in the news that she was  supporting me. There was a report that I hacked into a news wire service  and was trying to discredit Security Pacific Bank and that cause them a  big loss. That was a totally made-up allegation. I mean the list just  goes on and on you know I don’t want to bore you.&lt;br /&gt;
&lt;br /&gt;
Then the true thing is that when I was younger I was able to get  celebrities’ unlisted telephone numbers and then I would verify that  they were indeed the right number. Then I would never call again. There  was an allegation that I had wiretapped the entire Los Angeles office of  the FBI, which wasn’t true. I did however monitor the locations of cell  phones and looked at the call detail records. So I would know a person A  is calling person B.&amp;nbsp; But actually, in the New York Times, it said that  I was wiretapping their conversations which wasn’t true. One chapter of  the book describes the court drama. Most of the book is focused on the  adventure, the crazy things I did as a juvenile. The book isn’t about me  whining about this.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;VB: What was the hack that you were most proud of?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;KM:&lt;/b&gt; The hack I was most proud was actually hacking  the McDonald’s drive-through window. I did this when I was 17. It wasn’t  about hacking a computer. It was actually hacking their drive up  windows so that I could overtake the radio in the drive-through window. I  could sit across the street and talk and pretend that I was the  employee inside McDonald’s. The poor employee could hear what’s going on  but my transmitter was more powerful than his.&lt;br /&gt;
&lt;br /&gt;
So you can imagine what fun you can have as a teenager when customers  would drive up. I would say, ‘can I take your order please?’ They give  the order. And I would say, ‘OK I have your order you are the 50th  customer today so please right forward. Your order is absolutely free.  And then the cops would drive up to order something. And I would say,  ‘I’m sorry we only serve doughnuts to cops. We don’t serve any type of  other food.’ Or I would say, ‘Hide the cocaine, hide the cocaine. May I  take your order sir?’ One time, a manager of a McDonald’s came out to  find out what the hell was happening. He walked around the parking lot  and couldn’t see anybody. He looked in cars. He walked up to the  drive-through speaker and he put his face next to the speaker as if  there were someone hiding inside. I yelled into the microphone, ‘What  the f*** are you doing?’ and the guy flies back 15 feet. These are the  types of hacks I enjoyed. As a young kids, I was a prankster. I hacked  into my friend’s home telephone service so that it became a pay phone.  Whenever his parents tried to make a call, it would say, ‘please deposit  25 cents.’&lt;br /&gt;
&lt;br /&gt;
I was doing this starting in the late 1980s and there were no  computer crime laws at the time. I had a teacher in high school where he  encouraged it. One of my first programming assignments was to write a  FORTRAN program that found Fibonacci numbers. I thought that’s kind of  boring. So I wrote a password stealer so I could get any of the other  students’ passwords in class. I spent a longer time working on  developing that program because it was my first and I didn’t have time  to do the other assignment. So I ended turning in my password stealer  instead and the teacher was clearly impressed and even gave me an A. He  started telling all the other students how smart and clever this was. So  I was raised at a time where the instructors in high school encouraged  hacking and there were no laws against it.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;VB: You know today you are in the business of being an  ethical hacker. Do you find that today that the issues that ethical  hackers have to deal with are pretty difficult in terms of being able to  stay on the right side of the law?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;KM:&lt;/b&gt; Not really. I was a hacker for a number of years  before I became involved in security because there was no such  occupation for doing it legally. Companies dealt with security by having  their internal IT departments deal with it. There was no the security  industry. In fact, if that did exist when I was younger, I might have  taken a different path. But I was so interested in learning about  computers. My primary goal of hacking was the intellectual curiosity,  the seduction of adventure. The No. 1 thing was the pursuit of knowledge  and there was no way to get the knowledge back then because those  avenues didn’t exist.&lt;br /&gt;
&lt;br /&gt;
Now today, a 14-year-old can use a laptop and set up their own entire  lab on a laptop with different operating systems. There are different  frameworks that you can download for absolutely free. There are tons of  material on the internet so you can learn all about hacking and all  about security. You can learn about offensive and defensive measures.&amp;nbsp;  So you can be a part of a red team are trying to hack into a target to  test their security or you could be on the defense side.&lt;br /&gt;
&lt;br /&gt;
So today’s world is completely changed where young kids and even  adults have a more social acceptable way to learn about this stuff. In  fact, at Defcon this year was the first time they had kids come. There  were kids who were eight, nine or ten who were attending a hacking  conference. Of course, they are interested in hacking games. And one  ten-year-old girl found a vulnerability. The world has changed from  1978.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;VB: It’s also easier to become a criminal hacker.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;KM:&lt;/b&gt; The ethical thing is actually the easier thing  to do. Now if you are a criminal, then you will use hacking techniques  to steal money and property. The hackers of my time were never in it to  steal money. They could break into systems to get access to information.  But it wasn’t a for-profit venture. Today, you have organized crime  using hacking.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh12zVvccrSJou3mMMfJF-RdLw-I_ZFcxkAJ973OFhpEZOzM7BQOlIVWlBOrzek3zfKk2nUWUlHlmWGfGqAEAYskAzAXhf1PX0v37qA009rPjNRjOqtFPJTjxXWQQaLvLFdisKvp8m8b-c/s1600/art-of-deception.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh12zVvccrSJou3mMMfJF-RdLw-I_ZFcxkAJ973OFhpEZOzM7BQOlIVWlBOrzek3zfKk2nUWUlHlmWGfGqAEAYskAzAXhf1PX0v37qA009rPjNRjOqtFPJTjxXWQQaLvLFdisKvp8m8b-c/s400/art-of-deception.jpg" width="261" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;VB: What do you think is relevant today, from the days when you were learning to be a hacker?&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&amp;nbsp;&lt;/b&gt; &lt;br /&gt;
&lt;b&gt;KM:&lt;/b&gt; Hacking is exploiting security controls either  in a technical, physical or a human-based element. Back in my day you  know, I learned a lot about the human factor in security. I manipulated  the human operator into doing something that gives the hacker an  advantage. The Art of Deception, which was published in 2011, was about  social engineering. Google, RSA, and Lockheed Martin were all  successfully compromised through what we call spear phishing attacks.  That took advantage of human weaknesses, where you respond to a message  from a friend.&lt;br /&gt;
&lt;br /&gt;
Back in my day, we would find servers that were on the company’s  perimeter network: a mail server, a web server, a DNS server or whatnot.  And then we would attack the server and find a vulnerability in a  service. We would get into the server that way. Now the trend has  changed towards client-side exploitation, meaning the software that is  on the user’s desktop. You take advantage of weaknesses in Adobe  Acrobat, Adobe Flash, Java, Active X. They are riddled with  vulnerabilities.&lt;br /&gt;
&lt;br /&gt;
So the hacker could break into that person’s desktop or workstation  by exploiting that vulnerability. But the problem is they would have you  have one component that I have written about extensively called social  engineering. You have to trick the target into doing something that  triggers the technical exploit. And that’s precisely how they were able  to hack Google. It was by finding a vulnerability in the Internet  Explorer 6 that was unpatched. They still had to get the user to click a  link and once they clicked the link it would go to a website that would  exploit the vulnerability. With RSA’s hack, it was through an Excel  spreadsheet I believe was labeled a ’2011 recruitment plan.’&amp;nbsp; The  spreadsheet in the Excel document had an embedded Flash object that was  vulnerable.&lt;br /&gt;
&lt;br /&gt;
So now when the victim opened up that Excel doc, it triggers the  Flash object, and then the hacker got into that person’s desktop, which  was connected to RSA’s network. I mean now so now the trend is instead  of attacking the server side you’re now attacking the client side. But  any time you attack the client side, you must have a component of social  engineering. So I’d say social engineering is still a viable threat.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;VB: Does it surprise you that so many companies have been  hacked this year, with things like the PlayStation Network going down  for six weeks?&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;KM:&lt;/b&gt; I don’t think it surprises me because there is a  lot of low hanging fruit out there. A lot of companies do not bother  testing their security. So really what they will do is they will do is  compliance. They hire a firm that would run a&amp;nbsp; scanner. If they don’t  find anything, they say the company is in compliance. That is the  problem because companies are not concerned enough about the underlying  security. They are more concerned about compliance. I have to explain  what the difference is between scanning security companies and what we  do. Albert Gonzalez, who was sentenced to 20 years for hacking TJ Maxx  and others, found that his team could break into systems for these huge  brands that had met compliance. So there is a lot of low-hanging fruit  like Sony.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;VB: What do you think of all the hacktivism that has happened, and what should companies be doing about it?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
We ought to be doing security assessments and deploying top security  controls. But I think it’s a waste of time for the people behind the  attacks because they’re not going to change public policy. I think the  only good thing that comes out of it is the security awareness. Even my  company we got a few new clients because they were concerned about this  Anonymous hacking spree. That is the greater good that occurred out of  it. But at the end of the day Anonymous doesn’t really get what it wants  other than a lot of attention by law enforcement. Their goal is to make  to change. The change will never happen that way.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;VB: Do you have conversations with young hackers?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;KM:&lt;/b&gt; Not really. I mean I go to conferences around  the world and I have a substantial Twitter following. But I don’t really  talk to them. I get people emailing all the time. They want to learn  how to hack or they want to hack into their girlfriend’s Facebook  account. I pretty much ignore them. They try to social engineer me  sometimes. I got an email where they said a family member was murdered  and they had to get into a person’s Hotmail account to investigate it. I  told them they had to get a subpoena from a judge to get the  information. The crazy requests make me chuckle.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;VB: How do you talk someone out of being a criminal hacker?&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;KM:&lt;/b&gt; Nobody comes up to me and says they’re a black  hat hacker. But if they did, I would certainly encourage them not to  follow in my footsteps. Now there are so many resources for them to  learn how to hack legally. If they were true criminals, and they wanted  to steal credit card numbers, you can’t change them. But if they are  just curious, you can change their direction by letting them know that  there are tools today that weren’t available to me. You can learn in a  socially acceptable and ethical way.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;VB: Have you ever heard from anyone who was a significant player in the book? Like maybe Markoff or Shimomura?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;KM:&lt;/b&gt; Not them. I heard from one person who was my old  boss when I was pretending to be Eric Weisz in Denver, at a law firm. I  described her in the book. I said she had a school teacher mentality.  She found me on LinkedIn and said her husband was loving my book. She  said that my description was right because she became a school teacher.  That was ironic. I heard from one of my social engineering victims who  worked at Novell. He was wondering how the government could have held me  for so long without a trial. We became good friends and he works at  Fusion-io now. We have been really good friends.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;VB: You mention you used the Freedom of Information Act in the book. Did you find things out about your case you didn’t know?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;KM:&lt;/b&gt; That’s a good question because when we were  writing the book we submitted the request to the FBI and the FBI claims  that the Los Angeles bureau of the FBI lost my file and they could not  find it. We went to Senator Barbara Baxter to get her to help because we  thought the FBI was lying. How can they lose my file? That was about as  ludicrous that I could launch a nuclear weapon. Doesn’t the FBI make  copies? Baxter wrote a letter on our behalf as a constituent and the FBI  lawyers reaffirmed that they cannot find the file.&lt;br /&gt;
&lt;br /&gt;
They did provide files from when I was juvenile that were largely  blacked out and they gave us 8,000 pages of newspaper articles. In  summary, I was an obsessive hacker because I enjoyed beating the system  and getting through security for the intellectual challenge. I’m here  today and am a respected security consultant, and I even work for the  federal government. Now the companies and even the federal government  have recognized that I have learned my lesson. And now I’m an asset to  the community rather than being a pain in the ass.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;VB:&lt;/b&gt; Thanks very much, that’s a great way to end the conversation. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_eA3UGkBVttla4VZH1jeIvRHwRR2aXhz9wDyMnqtYcKbfh-SdpQZfjVxPgpv24P9JQJdPowAgZewMjB5h2K0_uE4Wz5AYfdGENrM3hmk6HOEr0Ky7w8pDtRQUQqDl5V8qHQ8XsQwFBEA/s72-c/kevin-mitnick.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item><item><title>Best Hacking Tools Available</title><link>http://programmereye.blogspot.com/2011/10/best-hacking-tools-available.html</link><category>Hacking</category><pubDate>Fri, 21 Oct 2011 15:47:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-4242782884599935665</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;There are many hacking tools that are useful for different purposes:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="cp_head3"&gt;PCHelps Network Tracer&lt;/span&gt;  is the other name that uses standard network query utilities in order to  work up a handy report on a specified Internet address. This is done in  a logical sequence automatically and with a fairly fast speed thereby  gives some screen feedback during the time of processing.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span class="cp_head3"&gt;Hacking websites&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
have become easy with the other strong and download hacking tools called  IntelliTamper 2.07. This is a probe tool that scans websites for all  types of information that the hacker programs is searching for by  exploring into another system looking for the vulnerable points where to  launch an attack from.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span class="cp_head3"&gt;Trojan&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
is a program that acts as one of the salient causes of breaking into the  systems with a hidden intent. The word Trojan adds subversive  functionality to an existing program. A trojaned login program is  created to accept a certain password for any user's account that the  hackers can use to log into the system at any time and from wherever he  wants.&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;span class="cp_head3"&gt;Backdoor.IRC.ColdLife.30 &lt;/span&gt;&lt;/b&gt;   &lt;br /&gt;
&lt;br /&gt;
is an undocumented tool of getting into a computer system, or software  that uses such a tool to break into a system. In some cases the  programmer places a backdoor in some software which allows them to get  access to troubleshoot or change the program format. Software that is  classified as a &amp;amp;backdoor&amp;amp; is created by the programmer to enjoy  the greatest possible advantage of the vulnerability of a system,  exposing it to the future attacks.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span class="cp_head3"&gt;John The Ripper 1.0&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
is a password cracking tool, which is a program used to make an  algorithmic approach to decrypt the passwords and password files. The  program was actually designed for the legitimate use of finding and  cracking the feeble password with a view to improve the security of the  system by entering a stronger password. But the program has found its  place within the hacker's colony.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span class="cp_head3"&gt;NMap Win 1.2.12 &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
is also one of the most important tools, which is used in planning an  attack on a remote system. This also helps the programmer to develop  other tools for such attacks.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="cp_head3"&gt;Hackers Want to Understand the ip address of Other System&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
On the other hand, the ip address hacking is another significant part of  the story. Every computer possesses its own ip address, which is unique  for a particular network. The hackers may want to learn more about the  ip address of another remote computer system. ip address hacking may be  done by the dint of different techniques like hacking by using ICQ,  hacking by using yahoo messengers and MSN. ICQ and MSN is a couple of  well renowned tools that satisfy the hackers' hunger. With a thorough  understanding of this unique address the hackers becomes highly equipped  to bring severe devastation to the targeted systems.&lt;br /&gt;
&lt;br /&gt;
There are many techniques like the Authentication hacking, SQL  injections, CRLF injections, Directory traversal, Google hacking and  last but not the least Cross site scripting used by the famous hackers  for hacking websites. SQL injection is a strong and the most popular  technique for hacking into the website, which hardly requires much  knowledge and dexterity. With these tools and techniques the act of  website hacking have now become very easy and artistic - an art that any  one can master with a flicking of finger.&amp;nbsp;   &lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item><item><title>How to Spy On a Windows Program: Tracking Main Window Activation</title><link>http://programmereye.blogspot.com/2011/10/how-to-spy-on-windows-program-tracking.html</link><category>.Net</category><category>C#</category><category>Programming</category><pubDate>Thu, 20 Oct 2011 15:43:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-5594155985330513280</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;In this article I will walk you through the creation of a sample  program that, each time I use any application on my pc, will record the  application name, window title and time. While I do this, I will touch  on techniques that, used for evil in spyware, are also applied with  noble goals in areas like time tracking, application monitoring and  computer-aided learning.&lt;br /&gt;
Practical information about this subject  is hard to find. So, if you have ever been curious about how spyware  programs work, how you can keep tabs on what a user does on a computer  or how applications behave, read along.&lt;br /&gt;
&lt;h3&gt;Windows Architecture&lt;/h3&gt;To understand how you can “spy” on a running Windows program,&amp;nbsp; you first need to be familiar with the concept of &lt;a href="http://en.wikipedia.org/wiki/Event-driven" target="_blank"&gt;event-driven&lt;/a&gt; applications.&lt;br /&gt;
&lt;br /&gt;
Unlike  applications that make function calls to obtain user input,  Windows-based applications are event-driven. This simply means that they  wait for the system to pass input to them.&lt;br /&gt;
&lt;br /&gt;
The system passes all  input for an application – for example, when the user types, moves the  mouse, or clicks a control such as a scroll bar – to the various windows  in the application. This input is passed in the form of messages.  Besides the system, other applications can also generate windows  messages.&lt;br /&gt;
&lt;br /&gt;
If we could somehow inspect this message traffic, then  we would have a way to know what it is that the system or other  applications are asking any application to do. This is where you can put  Windows Hooks to good use.&lt;br /&gt;
&lt;h3&gt;Windows Hooks&lt;/h3&gt;The MSDN documentation &lt;a href="http://msdn.microsoft.com/en-us/library/ms632589.aspx" target="_blank"&gt;defines a hook&lt;/a&gt;  as a point in the system message-handling mechanism where an  application can install a subroutine to monitor the message traffic in  the system and process certain types of messages before they reach the  target window procedure.&lt;br /&gt;
There are different types of hooks, each  providing access to different aspects of the system’s message handling  mechanism. For example, keyboard hooks allow you to monitor keyboard  messages (keyloggers make use this type of hook), mouse hooks allow you  to monitor mouse messages and WindProc hooks allow you to monitor all  messages processed by the &lt;a href="http://en.wikipedia.org/wiki/WindowProc" target="_blank"&gt;Window Procedure&lt;/a&gt;, the message handling function in any window.&lt;br /&gt;
&lt;br /&gt;
Armed with this knowledge, let’s go back to my sample program.&lt;br /&gt;
&lt;h3&gt;Tracking Window Activation&lt;/h3&gt;We  know that when an application window becomes active, it is because the  system sent it a message asking it to do so. Then, a way to track  application usage is to install a system-wide hook that will inspect the  messages the system sends to any application asking it to activate its  main window.&lt;br /&gt;
&lt;br /&gt;
To write my sample program I used C#, and to save time used an excellent Windows Hooks library written by &lt;a href="http://www.codeproject.com/script/Membership/Profiles.aspx?mid=83302" target="_blank"&gt;Chris Wilson&lt;/a&gt;. In my sample program this is what I do:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Install  a global Shell hook. This type of hook allows me to intercept the  messages sent by the system when a top-level window is activated.&lt;/li&gt;
&lt;li&gt;Upon  intercepting a message indicating a top-level window activation, I  record the time, the name of the application the window belongs to and  the text displayed in the window’s title bar.&lt;/li&gt;
&lt;/ol&gt;Sounds good? Let’s look at each step in detail.&lt;br /&gt;
&lt;br /&gt;
The sample program is a Windows Form application with just one form.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZbwETBtQ3EZPFiGzuqT-uspueHgfhKLNX8Ld8_DILmy5rsQXSQO9dl5tD-LhWic8YCnrTGDT18NwfPcsWh5mQZ2B5K8nl46jwLwq85GrO6Lfy31etoDg3xTopynuKJN8iSF40RBnOsVg/s1600/image_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZbwETBtQ3EZPFiGzuqT-uspueHgfhKLNX8Ld8_DILmy5rsQXSQO9dl5tD-LhWic8YCnrTGDT18NwfPcsWh5mQZ2B5K8nl46jwLwq85GrO6Lfy31etoDg3xTopynuKJN8iSF40RBnOsVg/s1600/image_3.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thanks to the excellent hooks library I am using (you can read more about it at&amp;nbsp;&lt;a href="http://www.codeproject.com/KB/system/WilsonSystemGlobalHooks.aspx" target="_blank"&gt;The Code Project&lt;/a&gt;),  all I need to do to be able to intercept top-level windows activation  messages is subscribe to the WindowActivated event and install my shell  hook. I subscribe to the event right inside the constructor for my only  form. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="background-color: #f4f4f4; border: gray 1px solid; cursor: text; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding: 4px; width: 97.5%;"&gt;&lt;div style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; Form1()&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;{&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;InitializeComponent();&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;span style="color: green;"&gt;// Instantiate our GlobalHooks object&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;hooks = &lt;span style="color: blue;"&gt;new&lt;/span&gt; GlobalHooks(&lt;span style="color: blue;"&gt;this&lt;/span&gt;.Handle);&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;hooks.Shell.WindowActivated +=&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;span style="color: blue;"&gt;new&lt;/span&gt; GlobalHooks.WindowEventHandler(hooks_ShellWindowActivated);&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;The hook is installed and uninstalled by pushing the “Start Monitoring” and “Stop Monitoring” buttons.&lt;br /&gt;
&lt;div style="background-color: #f4f4f4; border: gray 1px solid; cursor: text; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding: 4px; width: 97.5%;"&gt;&lt;div style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; button1_Click(&lt;span style="color: blue;"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;{&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;hooks.Shell.Start();&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;}&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; button2_Click(&lt;span style="color: blue;"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;{&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;hooks.Shell.Stop();&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;Once  the hook is installed, the message handling function of my form will  start receiving not only messages directed to it, but also the messages  intercepted by the shell hook.&lt;br /&gt;
Shell hooks intercept a &lt;a href="http://msdn.microsoft.com/en-us/library/ms644991%28VS.85%29.aspx" target="_blank"&gt;variety of messages&lt;/a&gt;.  Since I am just interested in top-level windows activations, I forward  the messages to a utility function in the hooks library, which filters  them and fires the WindowActivated event when the intercepted event  indicates a top-level window activation.&lt;br /&gt;
&lt;div style="background-color: #f4f4f4; border: gray 1px solid; cursor: text; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding: 4px; width: 97.5%;"&gt;&lt;div style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;span style="color: blue;"&gt;protected&lt;/span&gt; &lt;span style="color: blue;"&gt;override&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; WndProc(&lt;span style="color: blue;"&gt;ref&lt;/span&gt; Message m)&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;{&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;span style="color: green;"&gt;// Send the messages to the library for filtering.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (hooks != &lt;span style="color: blue;"&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;hooks.ProcessWindowMessage(&lt;span style="color: blue;"&gt;ref&lt;/span&gt; m);&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;span style="color: blue;"&gt;base&lt;/span&gt;.WndProc(&lt;span style="color: blue;"&gt;ref&lt;/span&gt; m);&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;Within  the WindowActivated event handler, I use the window handle contained in  the event arguments to lookup the application name and the window  caption. Then I just display them in a listbox, together with the time  the window was activated.&lt;br /&gt;
&lt;div style="background-color: #f4f4f4; border: gray 1px solid; cursor: text; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding: 4px; width: 97.5%;"&gt;&lt;div style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; hooks_ShellWindowActivated(IntPtr Handle)&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;{&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;span style="color: green;"&gt;// Insert information at the top of the list.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;listBox1.Items.Insert(0,&lt;span style="color: #006080;"&gt;""&lt;/span&gt;);&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;listBox1.Items.Insert(0, &lt;span style="color: #006080;"&gt;"Window caption: "&lt;/span&gt; + GetWindowCaption(Handle));&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;listBox1.Items.Insert(0,&lt;span style="color: #006080;"&gt;"Application: "&lt;/span&gt; + GetModuleName(Handle));&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;listBox1.Items.Insert(0,&lt;span style="color: blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color: #006080;"&gt;"Time: {0}"&lt;/span&gt;, DateTime.Now.ToLongTimeString()));&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;listBox1.Items.Insert(0, &lt;span style="color: #006080;"&gt;"Window activation!"&lt;/span&gt;);&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;You  might have noticed how once you know when a top-level window was  activated it becomes really easy to compute the time any application was  actively used. I will leave the exercise to you.&lt;br /&gt;
Grabbing the window’s caption is accomplished with a call to the GetWindowText API function.&lt;br /&gt;
&lt;div style="background-color: #f4f4f4; border: gray 1px solid; cursor: text; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding: 4px; width: 97.5%;"&gt;&lt;div style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;[DllImport(&lt;span style="color: #006080;"&gt;"user32.dll"&lt;/span&gt;)]&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: blue;"&gt;extern&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt; GetWindowText(IntPtr hWnd, StringBuilder title, &lt;span style="color: blue;"&gt;int&lt;/span&gt; size);&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; GetWindowCaption(IntPtr Hwnd)&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;{&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;span style="color: green;"&gt;// This function gets the name of a window from its handle&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;StringBuilder caption = &lt;span style="color: blue;"&gt;new&lt;/span&gt; StringBuilder(256);&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;GetWindowText(Hwnd, caption, 256);&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt; caption.ToString().Trim();&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;Obtaining the application’s executable name is a a little more involved, yet easy.&lt;br /&gt;
&lt;div style="background-color: #f4f4f4; border: gray 1px solid; cursor: text; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 20px 0px 10px; max-height: 200px; overflow: auto; padding: 4px; width: 97.5%;"&gt;&lt;div style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;[DllImport(&lt;span style="color: #006080;"&gt;"user32.dll"&lt;/span&gt;, SetLastError = &lt;span style="color: blue;"&gt;true&lt;/span&gt;)]&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: blue;"&gt;extern&lt;/span&gt; &lt;span style="color: blue;"&gt;uint&lt;/span&gt; GetWindowThreadProcessId(IntPtr hWnd,&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;span style="color: blue;"&gt;out&lt;/span&gt; &lt;span style="color: blue;"&gt;uint&lt;/span&gt; lpdwProcessId);&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;[DllImport(&lt;span style="color: #006080;"&gt;"kernel32.dll"&lt;/span&gt;)]&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: blue;"&gt;extern&lt;/span&gt; IntPtr OpenProcess(ProcessAccessFlags dwDesiredAccess,&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;[MarshalAs(UnmanagedType.Bool)] &lt;span style="color: blue;"&gt;bool&lt;/span&gt; bInheritHandle, &lt;span style="color: blue;"&gt;uint&lt;/span&gt; dwProcessId);&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;[DllImport(&lt;span style="color: #006080;"&gt;"psapi.dll"&lt;/span&gt;)]&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: blue;"&gt;extern&lt;/span&gt; &lt;span style="color: blue;"&gt;uint&lt;/span&gt; GetModuleFileNameEx(IntPtr hProcess,&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;IntPtr hModule, [Out] StringBuilder lpBaseName,&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;[In] [MarshalAs(UnmanagedType.U4)] &lt;span style="color: blue;"&gt;int&lt;/span&gt; nSize);&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;[DllImport(&lt;span style="color: #006080;"&gt;"kernel32.dll"&lt;/span&gt;, SetLastError = &lt;span style="color: blue;"&gt;true&lt;/span&gt;)]&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: blue;"&gt;extern&lt;/span&gt; &lt;span style="color: blue;"&gt;bool&lt;/span&gt; CloseHandle(IntPtr hHandle);&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; GetModuleName(IntPtr Hwnd)&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;{&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;span style="color: blue;"&gt;uint&lt;/span&gt; processId = 0;&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;GetWindowThreadProcessId(Hwnd, &lt;span style="color: blue;"&gt;out&lt;/span&gt; processId);&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;IntPtr hProcess = OpenProcess(ProcessAccessFlags.QueryInformation |&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;ProcessAccessFlags.VMRead, &lt;span style="color: blue;"&gt;true&lt;/span&gt;, processId);&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;StringBuilder FileName = &lt;span style="color: blue;"&gt;new&lt;/span&gt; StringBuilder(256);&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;GetModuleFileNameEx(hProcess, IntPtr.Zero, FileName, 256);&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;CloseHandle(hProcess);&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt; FileName.ToString().Trim();&lt;/pre&gt;&lt;pre style="background-color: white; border-style: none; color: black; font-family: consolas, 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; width: 100%;"&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;And that is it. I hope you found the topic interesting and the sample useful. Here’s the source for the sample:&amp;nbsp;&lt;a href="http://miamicoder.com/wp-content/uploads/2008/11/HooksSample.zip"&gt;HooksSample&lt;/a&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZbwETBtQ3EZPFiGzuqT-uspueHgfhKLNX8Ld8_DILmy5rsQXSQO9dl5tD-LhWic8YCnrTGDT18NwfPcsWh5mQZ2B5K8nl46jwLwq85GrO6Lfy31etoDg3xTopynuKJN8iSF40RBnOsVg/s72-c/image_3.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item><item><title>Retrieving the Operating System Idle Time, Uptime and Last Input Time</title><link>http://programmereye.blogspot.com/2011/10/retrieving-operating-system-idle-time.html</link><category>.Net</category><category>C#</category><category>Programming</category><pubDate>Thu, 20 Oct 2011 15:34:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-6156163517657543330</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicwaROIwhgogZDlnpJwqgb44eS5NGGjpbAPYBy_EvKsh4dX-t37mHnRWJWojONMIFxor0V8xhLkh9UdzAWreV38SbGaB9yKReVAJDiQ8cBGlPWEk0NeHQjTFkWWBTZ9iF7Uq1Uds66728/s1600/VS2005+Icon.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicwaROIwhgogZDlnpJwqgb44eS5NGGjpbAPYBy_EvKsh4dX-t37mHnRWJWojONMIFxor0V8xhLkh9UdzAWreV38SbGaB9yKReVAJDiQ8cBGlPWEk0NeHQjTFkWWBTZ9iF7Uq1Uds66728/s1600/VS2005+Icon.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://www.geekpedia.com/Samples/Idle%20Timer/IdleTimer.zip"&gt;Download this project&lt;/a&gt; (Visual Studio 2005) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this C# programming tutorial here at Geekpedia, we're venturing into unmanaged code  again. It's the popular &lt;strong&gt;user32.dll&lt;/strong&gt; that has the &lt;strong&gt;GetLastInputInfo()&lt;/strong&gt; function which interests us in this tutorial. The application will&lt;span style="color: #006837; font-family: inherit ! important; font-size: inherit ! important; font-weight: inherit ! important; position: static;"&gt; work &lt;span class="kLink" style="background-color: transparent; border-bottom: 1px solid rgb(0, 104, 55); font-family: inherit ! important; font-size: inherit ! important; font-weight: inherit ! important; position: static;"&gt;&lt;/span&gt;&lt;/span&gt; with Windows 2000, XP, Server 2003, Server 2008 and Vista. &lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfie7lVyYMKMNk5yxO1PzrzGJDLYhbGavi0rLBZtrv3JdvPVbwZJGpP_tdYtBJ0ruohWHnGqqzw-IDjJ4TOS3DEF73G_HW4iGbx2B2lKzn85DA-xq5a9cGxau6fTXA_hp9D5PRu_iDSAk/s1600/Form.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfie7lVyYMKMNk5yxO1PzrzGJDLYhbGavi0rLBZtrv3JdvPVbwZJGpP_tdYtBJ0ruohWHnGqqzw-IDjJ4TOS3DEF73G_HW4iGbx2B2lKzn85DA-xq5a9cGxau6fTXA_hp9D5PRu_iDSAk/s1600/Form.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Start by creating a form with 3 &lt;strong&gt;Labels&lt;/strong&gt;: &lt;em&gt;lblIdleTime&lt;/em&gt;, &lt;em&gt;lblSystemUptime&lt;/em&gt; and &lt;em&gt;lblLastInput&lt;/em&gt;. Also add a &lt;strong&gt;Timer&lt;/strong&gt; &lt;em&gt;tmrIdle&lt;/em&gt;. Set the &lt;strong&gt;Interval&lt;/strong&gt; property to &lt;em&gt;1000&lt;/em&gt; (1 second) and the &lt;strong&gt;Enabled&lt;/strong&gt; property to &lt;em&gt;True&lt;/em&gt;.  Every time this timer ticks, we'll check the last input time and the  system uptime. Thus setting the timer to tick every 1 second is a pretty  good interval for checking this, accurate but not an overkill.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now let's write some code. Since we're using an unmanaged library, first comes the additional&lt;em&gt; using&lt;/em&gt; statement:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="background: white; color: black; font-family: Courier New; font-size: 10pt;"&gt; &lt;div style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Runtime.InteropServices;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
Next comes the signature function and the definition of the struct that is passed to it:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="background: white; color: black; font-family: Courier New; font-size: 10pt;"&gt; &lt;div style="margin: 0px;"&gt;&lt;span style="color: green;"&gt;// Unmanaged function from user32.dll&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;[&lt;span style="color: #2b91af;"&gt;DllImport&lt;/span&gt;(&lt;span style="color: #a31515;"&gt;"user32.dll"&lt;/span&gt;)]&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: blue;"&gt;extern&lt;/span&gt; &lt;span style="color: blue;"&gt;bool&lt;/span&gt; GetLastInputInfo(&lt;span style="color: blue;"&gt;ref&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;LASTINPUTINFO&lt;/span&gt; plii);&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;span style="color: green;"&gt;// Struct we'll need to pass to the function&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;internal&lt;/span&gt; &lt;span style="color: blue;"&gt;struct&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;LASTINPUTINFO&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;{&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;uint&lt;/span&gt; cbSize;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;uint&lt;/span&gt; dwTime;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;}&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
Now it's time to double-click the &lt;em&gt;tmrIdle&lt;/em&gt; &lt;strong&gt;Timer&lt;/strong&gt; object so  that we get to its &lt;em&gt;Tick&lt;/em&gt; event. Here comes the main code, which is self-explanatory thanks to the comments:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="background: white; color: black; font-family: Courier New; font-size: 10pt;"&gt; &lt;div style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; tmrIdle_Tick(&lt;span style="color: blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color: #2b91af;"&gt;EventArgs&lt;/span&gt; e)&lt;/div&gt;&lt;div style="margin: 0px;"&gt;{&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;// Get the system uptime&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;int&lt;/span&gt; systemUptime = &lt;span style="color: #2b91af;"&gt;Environment&lt;/span&gt;.TickCount;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;// The tick at which the last input was recorded&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;int&lt;/span&gt; LastInputTicks = 0;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;// The number of ticks that passed since last input&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;int&lt;/span&gt; IdleTicks = 0;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;// Set the struct&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af;"&gt;LASTINPUTINFO&lt;/span&gt; LastInputInfo = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;LASTINPUTINFO&lt;/span&gt;();&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LastInputInfo.cbSize = (&lt;span style="color: blue;"&gt;uint&lt;/span&gt;)&lt;span style="color: #2b91af;"&gt;Marshal&lt;/span&gt;.SizeOf(LastInputInfo);&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LastInputInfo.dwTime = 0;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;// If we have a value from the function&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (GetLastInputInfo(&lt;span style="color: blue;"&gt;ref&lt;/span&gt; LastInputInfo))&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;// Get the number of ticks at the point when the last activity was seen&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; LastInputTicks = (&lt;span style="color: blue;"&gt;int&lt;/span&gt;)LastInputInfo.dwTime;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;// Number of idle ticks = system uptime ticks - number of ticks at last input&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; IdleTicks = systemUptime - LastInputTicks;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;// Set the labels; divide by 1000 to transform the milliseconds to seconds&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lblSystemUptime.Text = &lt;span style="color: #2b91af;"&gt;Convert&lt;/span&gt;.ToString(systemUptime / 1000) + &lt;span style="color: #a31515;"&gt;" seconds"&lt;/span&gt;;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lblIdleTime.Text = &lt;span style="color: #2b91af;"&gt;Convert&lt;/span&gt;.ToString(IdleTicks / 1000) + &lt;span style="color: #a31515;"&gt;" seconds"&lt;/span&gt;;&lt;/div&gt;&lt;div style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lblLastInput.Text = &lt;span style="color: #a31515;"&gt;"At second "&lt;/span&gt; + &lt;span style="color: #2b91af;"&gt;Convert&lt;/span&gt;.ToString(LastInputTicks / 1000);&lt;/div&gt;&lt;div style="margin: 0px;"&gt;}&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
Retrieving the operating system uptime is done through managed code (&lt;strong&gt;Environment.TickCount&lt;/strong&gt;), however the last activity time is retrieved through  &lt;span style="margin: 0px;"&gt;the unmanaged &lt;strong&gt;GetLastInputInfo()&lt;/strong&gt; &lt;/span&gt;  function that we prepared earlier. From then on, calculating the last  input ticks is simple math: subtract the last activity milliseconds from  the system uptime and there you have it. &lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicwaROIwhgogZDlnpJwqgb44eS5NGGjpbAPYBy_EvKsh4dX-t37mHnRWJWojONMIFxor0V8xhLkh9UdzAWreV38SbGaB9yKReVAJDiQ8cBGlPWEk0NeHQjTFkWWBTZ9iF7Uq1Uds66728/s72-c/VS2005+Icon.gif" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item><item><title>Speech Recognition in .Net using C#</title><link>http://programmereye.blogspot.com/2011/10/speech-recognition-in-net-using-c.html</link><category>.Net</category><category>C#</category><category>Programming</category><pubDate>Thu, 20 Oct 2011 14:46:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-5910126854794458554</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnmEoNaSw480dtITz3GLnNN2Vy1OuzI8oGlEJWaw2Yv0jRg-1gJBYajSIeySId-olvT5BtqGh19ryFSpmb5Aq_2IYp6m7wUo4J2KuvnXqgSWPXZ44n9UsFEamX9rssB_vuKJcPhIw-5Lw/s1600/C_Sharp.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnmEoNaSw480dtITz3GLnNN2Vy1OuzI8oGlEJWaw2Yv0jRg-1gJBYajSIeySId-olvT5BtqGh19ryFSpmb5Aq_2IYp6m7wUo4J2KuvnXqgSWPXZ44n9UsFEamX9rssB_vuKJcPhIw-5Lw/s1600/C_Sharp.png" /&gt;&lt;/a&gt;&lt;/div&gt;Speech recognition is a much more difficult task than simply  making the computer speak. So you would think that it would mean that  there would be a good 100 to 200 lines of code required to get the task  done. But with .Net it's more like 8.&lt;br /&gt;
&lt;br /&gt;
&lt;div id="codeSnippetWrapper"&gt;&lt;div id="codeSnippet" style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;"&gt;&lt;pre style="background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;"&gt;&lt;span id="lnum1" style="color: #606060;"&gt;   1:&lt;/span&gt; SpeechRecognitionEngine RecognitionEngine = &lt;span style="color: blue;"&gt;new&lt;/span&gt; SpeechRecognitionEngine();&lt;/pre&gt;&lt;pre style="background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;"&gt;&lt;span id="lnum2" style="color: #606060;"&gt;   2:&lt;/span&gt; RecognitionEngine.LoadGrammar(&lt;span style="color: blue;"&gt;new&lt;/span&gt; DictationGrammar());&lt;/pre&gt;&lt;pre style="background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;"&gt;&lt;span id="lnum3" style="color: #606060;"&gt;   3:&lt;/span&gt; RecognitionResult Result = RecognitionEngine.Recognize();&lt;/pre&gt;&lt;pre style="background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;"&gt;&lt;span id="lnum4" style="color: #606060;"&gt;   4:&lt;/span&gt; StringBuilder Output = &lt;span style="color: blue;"&gt;new&lt;/span&gt; StringBuilder();&lt;/pre&gt;&lt;pre style="background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;"&gt;&lt;span id="lnum5" style="color: #606060;"&gt;   5:&lt;/span&gt; &lt;span style="color: blue;"&gt;foreach&lt;/span&gt; (RecognizedWordUnit Word &lt;span style="color: blue;"&gt;in&lt;/span&gt; Result.Words)&lt;/pre&gt;&lt;pre style="background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;"&gt;&lt;span id="lnum6" style="color: #606060;"&gt;   6:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;"&gt;&lt;span id="lnum7" style="color: #606060;"&gt;   7:&lt;/span&gt;     Output.Append(Word.Text);&lt;/pre&gt;&lt;pre style="background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;"&gt;&lt;span id="lnum8" style="color: #606060;"&gt;   8:&lt;/span&gt; }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
The  code above should be pretty obvious as to what is going on, with one  exception. The LoadGrammar line might give you some pause. The system  basically needs to know what to be looking for and has two modes. The  first mode is dictation. This is what you would use for something like  Word (and is what I show above). The second mode is command mode. In  that case you have to build your own grammar (passing in text words,  etc. for it to look for). The main reason to use this if you wanted to  control an application with specific phrases. Other things to note is  that the code above is synchronous. If you wanted to, you can do this  async and have it notify you when it's done. We have other options as  well, such as the ability to tie it to a wave file, etc. just like the  text to speech bit of code.&lt;br /&gt;
&lt;br /&gt;
Anyway, the SpeechRecognitionEngine  is apart of the System.Speech.Recognition namespace. It's basically our  gateway to the built in speech recognition software that Microsoft uses.  Well, sort of anyway... Normally when Microsoft puts something in .Net,  it means that it will work.&lt;br /&gt;
&lt;br /&gt;
Speech recognition doesn't seem to want to  on Windows Server 2008... I spent the better part of a day trying to get  it to work with nothing to show for it. Anyway, on Vista and Windows 7,  this code will give you speech recognition. With XP, you have to  download and install the Speech SDK from Microsoft. Windows Server 2003  seems to also work with that download, but Windows Server 2008 seems  busted at this point (and I'm guessing there is no rush to fix that).&lt;br /&gt;
&lt;br /&gt;
There are claims out there that you can get it to work but none of them  have worked for me thus far. Anyway, I hope this helps someone. Give it a  try, leave feedback, and happy coding.&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnmEoNaSw480dtITz3GLnNN2Vy1OuzI8oGlEJWaw2Yv0jRg-1gJBYajSIeySId-olvT5BtqGh19ryFSpmb5Aq_2IYp6m7wUo4J2KuvnXqgSWPXZ44n9UsFEamX9rssB_vuKJcPhIw-5Lw/s72-c/C_Sharp.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item><item><title>How To Make An Item Scroll With You On The Page</title><link>http://programmereye.blogspot.com/2011/10/how-to-make-item-scroll-with-you-on.html</link><category>HTML</category><category>Programming</category><pubDate>Wed, 19 Oct 2011 16:49:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-7820150172824041658</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgdTR3p8n90ZMbJn6nqt2i1-Qnr2O7e61dScWFuL_bSLfV84At5QJe4aAHk_dKHMAF3Z52LVfgBqfjlddaud0dAblGcnUKIPzW7cmh-Qv3tl5_HCmDBTARZsWATvMpZIZntMBJc_YrngE/s1600/html.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgdTR3p8n90ZMbJn6nqt2i1-Qnr2O7e61dScWFuL_bSLfV84At5QJe4aAHk_dKHMAF3Z52LVfgBqfjlddaud0dAblGcnUKIPzW7cmh-Qv3tl5_HCmDBTARZsWATvMpZIZntMBJc_YrngE/s320/html.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;First we made a div box:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="prettyprint"&gt;&lt;span class="tag"&gt;&amp;lt;div&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="atn"&gt;id&lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="atv"&gt;"floatdiv"&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="atn"&gt;style&lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="atv"&gt;"&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; position&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt;absolute&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; width&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="lit"&gt;200px&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt;height&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="lit"&gt;50px&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt;left&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="lit"&gt;0px&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt;top&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="lit"&gt;0px&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; padding&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="lit"&gt;16px&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt;background&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="com"&gt;#FFFFFF; &amp;nbsp; &lt;/span&gt;&lt;span class="pln"&gt;
&amp;nbsp; &amp;nbsp; border&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="lit"&gt;2px&lt;/span&gt;&lt;span class="pln"&gt; solid &lt;/span&gt;&lt;span class="com"&gt;#2266AA&lt;/span&gt;&lt;span class="atv"&gt;"&lt;/span&gt;&lt;span class="tag"&gt;&amp;gt;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
!!CONENT HERE!! &amp;nbsp; &lt;/span&gt;&lt;span class="tag"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="prettyprint"&gt;&lt;span class="pln"&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="prettyprint"&gt;Then after the div box code:&lt;/pre&gt;&lt;pre class="prettyprint"&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;pre class="prettyprint"&gt;&lt;span class="tag"&gt;&amp;lt;script&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="atn"&gt;type&lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="atv"&gt;"text/javascript"&lt;/span&gt;&lt;span class="tag"&gt;&amp;gt;&lt;/span&gt;&lt;span class="pun"&gt;&amp;lt;!--&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;var&lt;/span&gt;&lt;span class="pln"&gt; floatingMenuId &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;'floatdiv'&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;var&lt;/span&gt;&lt;span class="pln"&gt; floatingMenu &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; targetX&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="lit"&gt;250&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; targetY&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="lit"&gt;10&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; 
&amp;nbsp; &amp;nbsp; hasInner&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;typeof&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;window&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;innerWidth&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;==&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;'number'&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; hasElement&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; document&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;documentElement &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="pln"&gt; document&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;documentElement&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;clientWidth&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; 
&amp;nbsp; &amp;nbsp; menu&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; document&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;getElementById &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;?&lt;/span&gt;&lt;span class="pln"&gt; document&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;getElementById&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;floatingMenuId&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; document&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;all &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;?&lt;/span&gt;&lt;span class="pln"&gt; document&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;all&lt;/span&gt;&lt;span class="pun"&gt;[&lt;/span&gt;&lt;span class="pln"&gt;floatingMenuId&lt;/span&gt;&lt;span class="pun"&gt;]&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; document&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;layers&lt;/span&gt;&lt;span class="pun"&gt;[&lt;/span&gt;&lt;span class="pln"&gt;floatingMenuId&lt;/span&gt;&lt;span class="pun"&gt;]&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;};&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; 
floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;move &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;function&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;()&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;if&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;document&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;layers&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;menu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;left &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;nextX&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;menu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;top &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;nextY&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;else&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp;
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;menu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;style&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;left &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;nextX &lt;/span&gt;&lt;span class="pun"&gt;+&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;'px'&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;menu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;style&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;top &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;nextY &lt;/span&gt;&lt;span class="pun"&gt;+&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;'px'&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; 
floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;computeShifts &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;function&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;()&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;var&lt;/span&gt;&lt;span class="pln"&gt; de &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; document&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;documentElement&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; 
&amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;shiftX &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;hasInner &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;?&lt;/span&gt;&lt;span class="pln"&gt; pageXOffset &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;hasElement &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;?&lt;/span&gt;&lt;span class="pln"&gt; de&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;scrollLeft &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; document&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;body&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;scrollLeft&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;if&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;targetX &lt;/span&gt;&lt;span class="pun"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="lit"&gt;0&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;if&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;hasElement &lt;/span&gt;&lt;span class="pun"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="pln"&gt; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;hasInner&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="com"&gt;// Handle Opera 8 problems &amp;nbsp; &lt;/span&gt;&lt;span class="pln"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;shiftX &lt;/span&gt;&lt;span class="pun"&gt;+=&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; de&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;clientWidth &lt;/span&gt;&lt;span class="pun"&gt;&amp;gt;&lt;/span&gt;&lt;span class="pln"&gt; window&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;innerWidth &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;?&lt;/span&gt;&lt;span class="pln"&gt; window&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;innerWidth &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; de&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;clientWidth &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;else&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;shiftX &lt;/span&gt;&lt;span class="pun"&gt;+=&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;hasElement &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;?&lt;/span&gt;&lt;span class="pln"&gt; de&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;clientWidth &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;hasInner &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;?&lt;/span&gt;&lt;span class="pln"&gt; window&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;innerWidth &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; document&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;body&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;clientWidth&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; 
&amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;shiftY &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;hasInner &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;?&lt;/span&gt;&lt;span class="pln"&gt; pageYOffset &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;hasElement &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;?&lt;/span&gt;&lt;span class="pln"&gt; de&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;scrollTop &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; document&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;body&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;scrollTop&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;if&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;targetY &lt;/span&gt;&lt;span class="pun"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="lit"&gt;0&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;if&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;hasElement &lt;/span&gt;&lt;span class="pun"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="pln"&gt; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;hasInner&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="com"&gt;// Handle Opera 8 problems &amp;nbsp; &lt;/span&gt;&lt;span class="pln"&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;shiftY &lt;/span&gt;&lt;span class="pun"&gt;+=&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; de&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;clientHeight &lt;/span&gt;&lt;span class="pun"&gt;&amp;gt;&lt;/span&gt;&lt;span class="pln"&gt; window&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;innerHeight &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;?&lt;/span&gt;&lt;span class="pln"&gt; window&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;innerHeight &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; de&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;clientHeight &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;else&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;shiftY &lt;/span&gt;&lt;span class="pun"&gt;+=&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;hasElement &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;?&lt;/span&gt;&lt;span class="pln"&gt; document&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;documentElement&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;clientHeight &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;hasInner &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;?&lt;/span&gt;&lt;span class="pln"&gt; window&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;innerHeight &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; document&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;body&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;clientHeight&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; 
floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;doFloat &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;function&lt;/span&gt;&lt;span class="pun"&gt;()&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;var&lt;/span&gt;&lt;span class="pln"&gt; stepX&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; stepY&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; 
&amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;computeShifts&lt;/span&gt;&lt;span class="pun"&gt;();&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; 
&amp;nbsp; &amp;nbsp; stepX &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;shiftX &lt;/span&gt;&lt;span class="pun"&gt;+&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;targetX &lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="pln"&gt; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;nextX&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;*&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="lit"&gt;07&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;if&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="typ"&gt;Math&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;abs&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;stepX&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="lit"&gt;5&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; stepX &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;shiftX &lt;/span&gt;&lt;span class="pun"&gt;+&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;targetX &lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="pln"&gt; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;nextX&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; 
&amp;nbsp; &amp;nbsp; stepY &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;shiftY &lt;/span&gt;&lt;span class="pun"&gt;+&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;targetY &lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="pln"&gt; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;nextY&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;*&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="lit"&gt;07&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;if&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="typ"&gt;Math&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;abs&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;stepY&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="lit"&gt;5&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; stepY &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;shiftY &lt;/span&gt;&lt;span class="pun"&gt;+&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;targetY &lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="pln"&gt; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;nextY&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;if&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="typ"&gt;Math&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;abs&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;stepX&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;&amp;gt;&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="lit"&gt;0&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;||&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="typ"&gt;Math&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;abs&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;stepY&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;&amp;gt;&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="lit"&gt;0&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;nextX &lt;/span&gt;&lt;span class="pun"&gt;+=&lt;/span&gt;&lt;span class="pln"&gt; stepX&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;nextY &lt;/span&gt;&lt;span class="pun"&gt;+=&lt;/span&gt;&lt;span class="pln"&gt; stepY&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;move&lt;/span&gt;&lt;span class="pun"&gt;();&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; 
&amp;nbsp; &amp;nbsp; setTimeout&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="str"&gt;'floatingMenu.doFloat()'&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="lit"&gt;20&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;};&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &lt;/span&gt;&lt;span class="com"&gt;// addEvent designed by Aaron Moore &amp;nbsp; &lt;/span&gt;&lt;span class="pln"&gt;
floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;addEvent &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;function&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;element&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; listener&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; handler&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;if&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="kwd"&gt;typeof&lt;/span&gt;&lt;span class="pln"&gt; element&lt;/span&gt;&lt;span class="pun"&gt;[&lt;/span&gt;&lt;span class="pln"&gt;listener&lt;/span&gt;&lt;span class="pun"&gt;]&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;!=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;'function'&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;||&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="kwd"&gt;typeof&lt;/span&gt;&lt;span class="pln"&gt; element&lt;/span&gt;&lt;span class="pun"&gt;[&lt;/span&gt;&lt;span class="pln"&gt;listener &lt;/span&gt;&lt;span class="pun"&gt;+&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;'_num'&lt;/span&gt;&lt;span class="pun"&gt;]&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;==&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;'undefined'&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; element&lt;/span&gt;&lt;span class="pun"&gt;[&lt;/span&gt;&lt;span class="pln"&gt;listener &lt;/span&gt;&lt;span class="pun"&gt;+&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;'_num'&lt;/span&gt;&lt;span class="pun"&gt;]&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="lit"&gt;0&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;if&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="kwd"&gt;typeof&lt;/span&gt;&lt;span class="pln"&gt; element&lt;/span&gt;&lt;span class="pun"&gt;[&lt;/span&gt;&lt;span class="pln"&gt;listener&lt;/span&gt;&lt;span class="pun"&gt;]&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;==&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;'function'&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; element&lt;/span&gt;&lt;span class="pun"&gt;[&lt;/span&gt;&lt;span class="pln"&gt;listener &lt;/span&gt;&lt;span class="pun"&gt;+&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="lit"&gt;0&lt;/span&gt;&lt;span class="pun"&gt;]&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; element&lt;/span&gt;&lt;span class="pun"&gt;[&lt;/span&gt;&lt;span class="pln"&gt;listener&lt;/span&gt;&lt;span class="pun"&gt;];&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; element&lt;/span&gt;&lt;span class="pun"&gt;[&lt;/span&gt;&lt;span class="pln"&gt;listener &lt;/span&gt;&lt;span class="pun"&gt;+&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;'_num'&lt;/span&gt;&lt;span class="pun"&gt;]++;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; element&lt;/span&gt;&lt;span class="pun"&gt;[&lt;/span&gt;&lt;span class="pln"&gt;listener&lt;/span&gt;&lt;span class="pun"&gt;]&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;function&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;e&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;var&lt;/span&gt;&lt;span class="pln"&gt; r &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;true&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; e &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;e&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;?&lt;/span&gt;&lt;span class="pln"&gt; e &lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; window&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;event&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;for&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="kwd"&gt;var&lt;/span&gt;&lt;span class="pln"&gt; i &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; element&lt;/span&gt;&lt;span class="pun"&gt;[&lt;/span&gt;&lt;span class="pln"&gt;listener &lt;/span&gt;&lt;span class="pun"&gt;+&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;'_num'&lt;/span&gt;&lt;span class="pun"&gt;]&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="lit"&gt;1&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; i &lt;/span&gt;&lt;span class="pun"&gt;&amp;gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="lit"&gt;0&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; i&lt;/span&gt;&lt;span class="pun"&gt;--)&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;if&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;element&lt;/span&gt;&lt;span class="pun"&gt;[&lt;/span&gt;&lt;span class="pln"&gt;listener &lt;/span&gt;&lt;span class="pun"&gt;+&lt;/span&gt;&lt;span class="pln"&gt; i&lt;/span&gt;&lt;span class="pun"&gt;](&lt;/span&gt;&lt;span class="pln"&gt;e&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;==&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;false&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; r &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;false&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;return&lt;/span&gt;&lt;span class="pln"&gt; r&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; 
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="com"&gt;//if handler is not already stored, assign it &amp;nbsp; &lt;/span&gt;&lt;span class="pln"&gt;
&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;for&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="kwd"&gt;var&lt;/span&gt;&lt;span class="pln"&gt; i &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="lit"&gt;0&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; i &lt;/span&gt;&lt;span class="pun"&gt;&amp;lt;&lt;/span&gt;&lt;span class="pln"&gt; element&lt;/span&gt;&lt;span class="pun"&gt;[&lt;/span&gt;&lt;span class="pln"&gt;listener &lt;/span&gt;&lt;span class="pun"&gt;+&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;'_num'&lt;/span&gt;&lt;span class="pun"&gt;];&lt;/span&gt;&lt;span class="pln"&gt; i&lt;/span&gt;&lt;span class="pun"&gt;++)&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;if&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;element&lt;/span&gt;&lt;span class="pun"&gt;[&lt;/span&gt;&lt;span class="pln"&gt;listener &lt;/span&gt;&lt;span class="pun"&gt;+&lt;/span&gt;&lt;span class="pln"&gt; i&lt;/span&gt;&lt;span class="pun"&gt;]&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;==&lt;/span&gt;&lt;span class="pln"&gt; handler&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;return&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; element&lt;/span&gt;&lt;span class="pun"&gt;[&lt;/span&gt;&lt;span class="pln"&gt;listener &lt;/span&gt;&lt;span class="pun"&gt;+&lt;/span&gt;&lt;span class="pln"&gt; element&lt;/span&gt;&lt;span class="pun"&gt;[&lt;/span&gt;&lt;span class="pln"&gt;listener &lt;/span&gt;&lt;span class="pun"&gt;+&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;'_num'&lt;/span&gt;&lt;span class="pun"&gt;]]&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; handler&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; element&lt;/span&gt;&lt;span class="pun"&gt;[&lt;/span&gt;&lt;span class="pln"&gt;listener &lt;/span&gt;&lt;span class="pun"&gt;+&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;'_num'&lt;/span&gt;&lt;span class="pun"&gt;]++;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;};&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; 
floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;init &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;function&lt;/span&gt;&lt;span class="pun"&gt;()&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;initSecondary&lt;/span&gt;&lt;span class="pun"&gt;();&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;doFloat&lt;/span&gt;&lt;span class="pun"&gt;();&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;};&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &lt;/span&gt;&lt;span class="com"&gt;// Some browsers init scrollbars only after &amp;nbsp; &lt;/span&gt;&lt;span class="pln"&gt;
&lt;/span&gt;&lt;span class="com"&gt;// full document load. &amp;nbsp; &lt;/span&gt;&lt;span class="pln"&gt;
floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;initSecondary &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;function&lt;/span&gt;&lt;span class="pun"&gt;()&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;computeShifts&lt;/span&gt;&lt;span class="pun"&gt;();&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;nextX &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;shiftX &lt;/span&gt;&lt;span class="pun"&gt;+&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;targetX&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;nextY &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;shiftY &lt;/span&gt;&lt;span class="pun"&gt;+&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;targetY&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;move&lt;/span&gt;&lt;span class="pun"&gt;();&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;if&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;document&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;layers&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;addEvent&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;window&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;'onload'&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;init&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &lt;/span&gt;&lt;span class="kwd"&gt;else&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp;&lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;init&lt;/span&gt;&lt;span class="pun"&gt;();&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;addEvent&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;window&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;'onload'&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; floatingMenu&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;initSecondary&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp; 
&amp;nbsp; &lt;/span&gt;&lt;span class="com"&gt;//--&amp;gt;&lt;/span&gt;&lt;span class="tag"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;span class="pln"&gt; &amp;nbsp;&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgdTR3p8n90ZMbJn6nqt2i1-Qnr2O7e61dScWFuL_bSLfV84At5QJe4aAHk_dKHMAF3Z52LVfgBqfjlddaud0dAblGcnUKIPzW7cmh-Qv3tl5_HCmDBTARZsWATvMpZIZntMBJc_YrngE/s72-c/html.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item><item><title>Need Firefox/Safari fix: Text floats over image</title><link>http://programmereye.blogspot.com/2011/10/need-firefoxsafari-fix-text-floats-over.html</link><category>HTML</category><category>Programming</category><pubDate>Tue, 18 Oct 2011 14:21:00 -0700</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5517699727197679306.post-3348743103196122762</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKvMzHtKrrhbrmwNrPgSP1Y6lW38VUMxEEFLkGqJY82fCfpZJTfCSHmxnLDkBLyXOcVlwGvl4kn5JyKmQi4u5-Am_zdp1SLOIfvwMlyB1mgRhr8RXwHHlq1m2y-IQ2ppguuc7JWTrVms8/s1600/html.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKvMzHtKrrhbrmwNrPgSP1Y6lW38VUMxEEFLkGqJY82fCfpZJTfCSHmxnLDkBLyXOcVlwGvl4kn5JyKmQi4u5-Am_zdp1SLOIfvwMlyB1mgRhr8RXwHHlq1m2y-IQ2ppguuc7JWTrVms8/s320/html.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Someone recently asked me about this technique and my first reaction  was that it was probably a little too mundane to cover as a tutorial.  But then I got to thinking that there is actually a few interesting  things happening here and the style is trendy enough people might be  interested.&lt;br /&gt;
&lt;br /&gt;
The idea is just to overlay some text over an image,  but as blocks that stick out from the left with an even amount of  padding all the way around the variable-length text. Here is an  example: &lt;a href="http://www.kirupa.com/forum/showthread.php?332388-Need-Firefox-Safari-fix-text-floats-over-image"&gt;Please Click here to go to the Example&lt;/a&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKvMzHtKrrhbrmwNrPgSP1Y6lW38VUMxEEFLkGqJY82fCfpZJTfCSHmxnLDkBLyXOcVlwGvl4kn5JyKmQi4u5-Am_zdp1SLOIfvwMlyB1mgRhr8RXwHHlq1m2y-IQ2ppguuc7JWTrVms8/s72-c/html.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>noreply@blogger.com (Ibrahim Soomro)</author></item></channel></rss>