<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;A0MMR389fyp7ImA9WhRRFE4.&quot;"><id>tag:blogger.com,1999:blog-5562777595982356113</id><updated>2011-11-28T05:48:06.167+05:30</updated><category term="Personal" /><category term="Games" /><category term="Communication" /><category term="Computers" /><category term="Fun" /><title>Samuel Gomes</title><subtitle type="html">Just some mindless blogs. That's all!</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://gomes-samuel.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://gomes-samuel.blogspot.com/" /><author><name>Samuel Gomes</name><uri>http://www.blogger.com/profile/03966178879130996605</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://gomes.samuel.googlepages.com/MyChatImage.png" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/HBjU" /><feedburner:info uri="blogspot/hbju" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DkEMSXw-eCp7ImA9WhdXGU8.&quot;"><id>tag:blogger.com,1999:blog-5562777595982356113.post-2861015350268594349</id><published>2011-04-03T18:08:00.001+05:30</published><updated>2011-09-02T06:21:28.250+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-02T06:21:28.250+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Computers" /><title>Permanently overclocked my NVIDIA GeForce 8600M GT (Dell Inspiron 1520)</title><content type="html">&lt;div&gt;&lt;p&gt;I seem to be on a Video BIOS flashing spree. First my Radeon HD4670, and now my GeForce 8600M GT. Well, I thought of breathing new life to my ageing Dell Inspiron 1520 and here is what I accomplished... &lt;p&gt;I downloaded an overclocked version of the NVIDIA GeForce 8600M GT BIOS from techPowerUp. After a few hours of research I came to a conclusion that 490 MHz core clock and 490 MHz memory clock should be stable on this system. For some strange reason Dell used DDR2 memory for the video cards on the Inspiron 1520 which severely bottlenecks the performance. Overclocking the memory and the GPU can do wonders. I downloaded the Windows version of the NVFlash tool from techPowerUp and flashed the OCed video BIOS. &lt;p&gt;&lt;img src="http://gpuz.techpowerup.com/11/04/03/c4k.png"&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5562777595982356113-2861015350268594349?l=gomes-samuel.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UUPb1OK39YrCPIcHiMqMdPahrtI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UUPb1OK39YrCPIcHiMqMdPahrtI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UUPb1OK39YrCPIcHiMqMdPahrtI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UUPb1OK39YrCPIcHiMqMdPahrtI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/HBjU/~4/h-hd31buLZA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gomes-samuel.blogspot.com/feeds/2861015350268594349/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gomes-samuel.blogspot.com/2011/04/permanently-overclocked-my-nvidia.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/2861015350268594349?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/2861015350268594349?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/HBjU/~3/h-hd31buLZA/permanently-overclocked-my-nvidia.html" title="Permanently overclocked my NVIDIA GeForce 8600M GT (Dell Inspiron 1520)" /><author><name>Samuel Gomes</name><uri>http://www.blogger.com/profile/03966178879130996605</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://gomes.samuel.googlepages.com/MyChatImage.png" /></author><thr:total>1</thr:total><georss:featurename>Sidhhivinayak Heights, Nizampet Village, Hyderabad, Andhra Pradesh, India</georss:featurename><georss:point>17.520759 78.384447</georss:point><feedburner:origLink>http://gomes-samuel.blogspot.com/2011/04/permanently-overclocked-my-nvidia.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUHR384fCp7ImA9WhZSFEg.&quot;"><id>tag:blogger.com,1999:blog-5562777595982356113.post-330402857699453520</id><published>2011-03-30T07:09:00.001+05:30</published><updated>2011-03-30T07:27:16.134+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-30T07:27:16.134+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Computers" /><title>Permanently overclocked my Sapphire ATI Radeon HD4670</title><content type="html">&lt;p&gt;Permanently overclocked my Sapphire ATI Radeon HD4670! How? Ripped the video BIOS using GPU-Z. Downloaded a factory OCed BIOS for a Sapphire HD4670 (Core Clock 775 MHz, RAM Clock 1000 MHz) from techPowerUp. Opened both BIOSes using RBE (Radeon BIOS Editor) and copied over the original BIOS identifier to the downloaded one. Adjusted fan speed setting in the new BIOS to linearly scale with the temperature. 0 C : 0% speed - 100 C : 100% speed. Save the new BIOS and flashed it using ATIFlash. Restarted system. Result: Old GPU Core Clock = 750 MHz, New GPU Core Clock = 775 MHz. No overclocking software required. Damn thing overclocked in hardware! Did not stop there though. Enabled AMD OverDrive in CCC and set the damn thing to auto-tune. Turns out the card is stable at CC of 790 MHz and RC of 1130 MHz. Finally called it a day!&lt;/p&gt;  &lt;p&gt;&lt;img src="http://gpuz.techpowerup.com/11/03/29/dda.png" /&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5562777595982356113-330402857699453520?l=gomes-samuel.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/SFKS7ybZEKsXsaWHunHrCNpiOGE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SFKS7ybZEKsXsaWHunHrCNpiOGE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/SFKS7ybZEKsXsaWHunHrCNpiOGE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SFKS7ybZEKsXsaWHunHrCNpiOGE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/HBjU/~4/Ic5yObzwqc4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gomes-samuel.blogspot.com/feeds/330402857699453520/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gomes-samuel.blogspot.com/2011/03/permanently-overclocked-my-sapphire-ati.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/330402857699453520?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/330402857699453520?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/HBjU/~3/Ic5yObzwqc4/permanently-overclocked-my-sapphire-ati.html" title="Permanently overclocked my Sapphire ATI Radeon HD4670" /><author><name>Samuel Gomes</name><uri>http://www.blogger.com/profile/03966178879130996605</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://gomes.samuel.googlepages.com/MyChatImage.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://gomes-samuel.blogspot.com/2011/03/permanently-overclocked-my-sapphire-ati.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MAQX4_cCp7ImA9Wx9UEEk.&quot;"><id>tag:blogger.com,1999:blog-5562777595982356113.post-9019966898195734706</id><published>2011-02-07T06:46:00.001+05:30</published><updated>2011-02-07T06:47:20.048+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-07T06:47:20.048+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Computers" /><title>Using Threads in Visual Basic</title><content type="html">&lt;p&gt;&lt;font size="2" face="Courier New"&gt;Threads in Visual Basic are not commonly used because of complexity. In a 32 bit Windows environment (talking about Windows 95/98/NT) it has become a necessity to use more than one thread for each process. But is it true that creating threads in Visual Basic is tough? Not really! Visual Basic has its own feature of simplifying Windows 32 bit API calls. Think about a long backup procedure, which needs to be intervened in case the user wants to suspend or stop the backup procedure. If you have not implemented a separate thread for this copy purpose, you will not be able to stop the process until and unless you kill the process forcefully or you restart your machine (Windows 95 non-OEM versions might show endless blue screens). This is not a good idea for a professional grade application. Therefore let us talk about creating threads.      &lt;br /&gt;We will look at creating free threading model (and not apartment model of threading) in Visual Basic using the 'CreateThread' Win32 API call. Those who are familiar with creating Win32 applications using Visual C++, will be able to recognize this little function which helps in creating a new thread within a process very easily. In Visual Basic, it is also pretty easy to create a thread. I will take a look at the example code ExCopy (which is supplied with this article). This code is used to break a long file into several small 3¼-inch high-density floppy disks (similar to what you see in WinZip utility). An independent thread handles the copy process. Therefore you can see that during the copy process, you can easily move the ExCopy window.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;How the thread is created:      &lt;br /&gt;Let us have a look at the following function written in the example code…&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;'StartCopy      &lt;br /&gt;'Thread creation helper function       &lt;br /&gt;Public Function StartCopy(clsObject As clsExCopy)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Dim NewThreadID As Long      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Dim Threadhandle As Long      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Dim Param As Long &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; ' Free threaded approach     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Param = ObjPtr(clsObject) &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; 'Create a thread with no security attribute but     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; 'with default stack size and default creation flag      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Threadhandle = CreateThread(0,_      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0, _      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AddressOf ThreadFunction, _      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Param, _      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0, _      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; NewThreadID) &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; If Threadhandle = 0 Then     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ' Return with zero (error)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Debug.Print &amp;quot;Unable to create the free thread&amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Exit Function      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; End If &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; ' We don't need the thread handle     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CloseHandle Threadhandle &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; 'Return the created ID     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; StartCopy = NewThreadID       &lt;br /&gt;End Function&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;This public function is used to create the thread. StartCopy takes only one parameter of clsExCopy type. The class clsExCopy is defined in the ExCopyFile_IO.cls module. This class is used to copy data to the disks. You should call the StartCopy function with a valid clsExCopy class object. For example you might want to call this function when the user clicks on 'Start' button… &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;Private Sub StartBtn_Click()     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; 'Create a new Thread object      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; If ExCopyObj Is Nothing Then      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Set ExCopyObj = New clsExCopy      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Else      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Set ExCopyObj = Nothing      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Set ExCopyObj = New clsExCopy      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; End If &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; ExCopyObj.bStopNow = False &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; 'Create a new thread     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; StartCopy ExCopyObj&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; 'Can not click on Start now     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; StartBtn.Enabled = False       &lt;br /&gt;End Sub&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;Therefore you are passing an object value to the StartCopy function. In this function the Win32 API CreateThread function is used to create a new thread.      &lt;br /&gt;Now take a closer look at the call to this function.       &lt;br /&gt;The first parameter is actually a pointer to the SECURITY_ATTRIBUTE structure. We are passing zero to avoid any security feature.       &lt;br /&gt;The second parameter is used to represent the stack size of the newly created thread. We are passing zero to let Windows Kernel determine the stack value.       &lt;br /&gt;The CreateThread function uses the third parameter as a function pointer, which it calls when the thread is created. The third parameter uses the 'AddressOf' unary operator which returns the pointer to a function (acceptable by the API). Therefore AddressOf ThreadFunction will return the actual pointer to the function 'ThreadFunction' which does the Win32 API very well accept.       &lt;br /&gt;The fourth parameter is used as a pointer to the arguments passed to the function mentioned in third parameter. Visual Basic has a function ObjPtr which returns the pointer to memory object which I have used to pass as a parameter to the function ThreadFunction.       &lt;br /&gt;The fifth parameter is used to specify how you want the thread to behave. For example you may set the thread priority of a particular thread to a higher value by specifying THREAD_PRIORITY_ABOVE_NORMAL to this parameter. This is a bit field where several options can be OR-ed.       &lt;br /&gt;The CreateThread function returns the thread identification value in the sixth and the final parameter.       &lt;br /&gt;The StartCopy function returns the handle of the thread which you can destroy using the CloseHandle Win32 API call after the thread is successfully created. Destroying this handle does not destroy the thread. This merely frees the handle associated with that thread.       &lt;br /&gt;The CreateThread function returns immediately after it creates the thread. The newly created thread runs as an independent thread.       &lt;br /&gt;As you have noticed that we have passed a pointer the function ThreadFunction to the third parameter of CreateThread function, let us see what it looks like… &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;'ThreadFunction      &lt;br /&gt;'The thread entry point       &lt;br /&gt;Public Function ThreadFunction(ByVal Param As IUnknown) As Long      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Dim clsObject As clsExCopy      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ' Free threaded approach      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Set clsObject = Param      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; clsObject.ExCopy       &lt;br /&gt;End Function&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;Pretty small, isn't it? ThreadFunction is used to call a method (ExCopy in this case) from the clsExCopy class. This function accepts parameters as IUnknown which represents the basic interface supported by Visual Basic COM layer. The value from this parameter is copied to a clsExCopy class object. Remember that once you go out of this function, the thread is destroyed.      &lt;br /&gt;This is all about creating multiple threads in Visual Basic. Remember to create the project as 'ActiveX EXE'. The rest of the example code deals with form controls and the copy technique (in clsExCopy). This way of creating a thread is called 'Free Threading', which is not supported by Visual Basic COM/DCOM layer. Visual Basic COM/DCOM uses either 'Single Threading' model or 'Apartment model' threading. But free threading models are very fast compared to Apartment model threading which uses marshalling technique to transport data between two objects. Anyway we will discuss about this approach later.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;Article by:     &lt;br /&gt;Samit Ray       &lt;br /&gt;Consultant       &lt;br /&gt;Price Waterhouse Associates (P) Ltd.       &lt;br /&gt;Samit_Ray@india.notes.pw.com SamitRay@cal.vsnl.net.in&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5562777595982356113-9019966898195734706?l=gomes-samuel.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FKMvpHptzi_UYMdAjJEMwqqiPSg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FKMvpHptzi_UYMdAjJEMwqqiPSg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FKMvpHptzi_UYMdAjJEMwqqiPSg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FKMvpHptzi_UYMdAjJEMwqqiPSg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/HBjU/~4/q10E4ZyDiY8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gomes-samuel.blogspot.com/feeds/9019966898195734706/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gomes-samuel.blogspot.com/2011/02/using-threads-in-visual-basic.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/9019966898195734706?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/9019966898195734706?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/HBjU/~3/q10E4ZyDiY8/using-threads-in-visual-basic.html" title="Using Threads in Visual Basic" /><author><name>Samuel Gomes</name><uri>http://www.blogger.com/profile/03966178879130996605</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://gomes.samuel.googlepages.com/MyChatImage.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://gomes-samuel.blogspot.com/2011/02/using-threads-in-visual-basic.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0AGSXc9eip7ImA9Wx9UEEk.&quot;"><id>tag:blogger.com,1999:blog-5562777595982356113.post-1007440374564432771</id><published>2011-02-07T01:28:00.002+05:30</published><updated>2011-02-07T06:52:08.962+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-07T06:52:08.962+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Computers" /><title>BSP Trees</title><content type="html">&lt;div style="text-align: left" dir="ltr" trbidi="on"&gt;   &lt;p&gt;&lt;font size="1" face="Courier New"&gt;This article explains how BSP (binary space partitioning) trees can be used in        &lt;br /&gt;a game such as DOOM as part of the rendering pipeline to perform back-face         &lt;br /&gt;culling, partial Z-ordering and hidden surface removal.         &lt;br /&gt;To explain the use of BSP trees, it is best to start with an example. Consider         &lt;br /&gt;a very simple DOOM level.         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; A---------------------------------a----------------------------------B         &lt;br /&gt;&amp;#160; |&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160; |         &lt;br /&gt;&amp;#160; |&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; y&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160; |         &lt;br /&gt;&amp;#160; d1 |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160; b1         &lt;br /&gt;&amp;#160; |&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; f'&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160; |         &lt;br /&gt;&amp;#160; |&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160; |         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; C--------------------f-----------------------D&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |         &lt;br /&gt;&amp;#160; |&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160; |         &lt;br /&gt;&amp;#160; |&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; f&amp;quot;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160; |         &lt;br /&gt;&amp;#160; |&amp;#160; d&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; b&amp;#160; |         &lt;br /&gt;&amp;#160; |&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160; |         &lt;br /&gt;&amp;#160; |&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; e&amp;quot; e&amp;#160; e'&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; g' g&amp;#160; g&amp;quot;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160; |         &lt;br /&gt;&amp;#160; d2 |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160; b2         &lt;br /&gt;&amp;#160; |&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160; |         &lt;br /&gt;&amp;#160; |&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160; |         &lt;br /&gt;&amp;#160; |&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; E&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; F&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160; |         &lt;br /&gt;&amp;#160; |&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; x&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160; |         &lt;br /&gt;&amp;#160; |&amp;#160; |&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |&amp;#160; |         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; G---------------------------------c----------------------------------H         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ----c1---- ----------------------c2-------------------- -----c3-----         &lt;br /&gt;The level consists of a room within a room. The player cannot go outside of the         &lt;br /&gt;area within the square ABHG.         &lt;br /&gt;First some definitions (sorry :-)         &lt;br /&gt;The _vertices_ are marked A-H, the _faces_ are marked a-g.         &lt;br /&gt;We define a _line_ by using an ordered pair of vertices, so that         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; a = (A,B)&amp;#160; e = (E,C)&amp;#160; f = (C,D)&amp;#160; g = (F,D)         &lt;br /&gt;We say a point is to the _left_ of a line if it is to the left of the vector         &lt;br /&gt;between its two vertices, taken in order.         &lt;br /&gt;So, in the above example, nothing is to the left of line a; everything is to         &lt;br /&gt;the right of it. Note that this depends upon our definition of line a, and if         &lt;br /&gt;we had defined a = (B,A) then everything would be to the left of line a.         &lt;br /&gt;A _face_ is a side of a line which is visible to the player. Wall e above, for         &lt;br /&gt;example, has two faces (marked e' and e&amp;quot;). Not all walls have two faces - if         &lt;br /&gt;the player can never see one side of a wall it only has one.         &lt;br /&gt;A face is fully defined by an ordered pair of vertices and an ordered pair of         &lt;br /&gt;faces - a left face and a right face.         &lt;br /&gt;The BSP tree for the example above might look like this:         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; f         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; / \         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /&amp;#160;&amp;#160; \         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /&amp;#160;&amp;#160;&amp;#160;&amp;#160; \         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; a,d1,b1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; e         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; / \         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /&amp;#160;&amp;#160; \         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /&amp;#160;&amp;#160;&amp;#160;&amp;#160; \         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; d2,c1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; g         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; / \         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /&amp;#160;&amp;#160; \         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /&amp;#160;&amp;#160;&amp;#160;&amp;#160; \         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; c2&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; c3,b2         &lt;br /&gt;Each node contains a line. Everything to the left of that line is in the left         &lt;br /&gt;subtree, and everything to the right of that line is in the right subtree.         &lt;br /&gt;Note that face d is neither completely to the right of nor to the left of face         &lt;br /&gt;f. To accommodate this, we split it up into two halves, and put one half into         &lt;br /&gt;the left subtree and one half into the right subtree. Thus, we have to generate         &lt;br /&gt;new faces in order to build the BSP tree.         &lt;br /&gt;I will explain how the BSP tree is created later. Firstly, I will give the         &lt;br /&gt;algorithm used to render a picture using the tree.         &lt;br /&gt;Suppose the player is standing at position 'x', and looking North.         &lt;br /&gt;We start at the top of the tree at line f. We are standing to the right of line         &lt;br /&gt;f, so we go down the LEFT of the tree. This is because we want the furthest         &lt;br /&gt;polygons first.         &lt;br /&gt;We come to the left-hand-most terminating node. We write down the faces here         &lt;br /&gt;in our notepad. &amp;quot;a,d1,b1&amp;quot;.         &lt;br /&gt;Since we've come to a terminator, we back up a level. Back to the top, but we         &lt;br /&gt;have to go down the right subtree yet. Firstly, though, we look at face f - the         &lt;br /&gt;deciding face for this node. We've got everything behind it in our list, we've         &lt;br /&gt;yet to look at anything in front of it, but we must put it into our list.         &lt;br /&gt;Note that face f has two sides - f' and f&amp;quot;. Since we already know we're on the         &lt;br /&gt;right of line f, we know that we can only see its right side - so we write         &lt;br /&gt;f&amp;quot; in our notepad. It now says a,d1,b1,f&amp;quot;.         &lt;br /&gt;Note, though, that if we were looking south (i.e. our line-of-sight vector         &lt;br /&gt;points away from face f) then we could not see either face f or anything on         &lt;br /&gt;the other side of face f - in this case, we just don't bother going any further         &lt;br /&gt;down the tree.         &lt;br /&gt;Now we go down the subtree and come to node e. We are on the right of e, so we         &lt;br /&gt;go down the left subtree and get a terminal node - we just write d2,c1 in our         &lt;br /&gt;notepad.         &lt;br /&gt;Back up, decide on which side of e to put in. We decide e'. The notepad now         &lt;br /&gt;says a,d1,b1,f&amp;quot;,d2,c1,e'.         &lt;br /&gt;Down the right subtree to node g. We're on the left, so down the right subtree         &lt;br /&gt;to c3,b2, up, check g (we're on the left = g'), back down to the final node,         &lt;br /&gt;get c2, up, up, up, and we're done.         &lt;br /&gt;The notepad ends up saying:         &lt;br /&gt;a d1 b1 f&amp;quot; d2 c1 e' c3 b2 g' c2         &lt;br /&gt;If we draw these walls, in this order, then we will get the correct scene. I         &lt;br /&gt;would recommend using a one-dimensional Z-buffer to get finer granularity than         &lt;br /&gt;the painter's algorithm provides, before plotting the walls. Note also that         &lt;br /&gt;some walls are behind you - however, since you need to calculate their z         &lt;br /&gt;coordinates for the perspective transform, you can merely discard faces with         &lt;br /&gt;negative z values.         &lt;br /&gt;Creating the BSP tree         &lt;br /&gt;---------------------         &lt;br /&gt;The BSP tree almost creates itself. The only difficulty is knowing when to stop         &lt;br /&gt;recursing. Notice that the terminal nodes are just put into the list - so a         &lt;br /&gt;sufficient condition for a group of faces to form a terminal node is that they         &lt;br /&gt;can be drawn in a set order without any mistakes occurring in the drawing. That         &lt;br /&gt;is, if wherever the player can stand, the group of walls will never obscure         &lt;br /&gt;each other.         &lt;br /&gt;So let us begin: Choose face f (the choice is fairly arbitrary - it is best         &lt;br /&gt;to choose faces which don't split many other faces up. However, in this case         &lt;br /&gt;it is unavoidable). Split up faces d and b, because they straddle the line f.         &lt;br /&gt;(The line you are splitting along is known as the _nodeline_ in DOOM-speak).         &lt;br /&gt;Then put everything to the left of f in the left subtree, and vice-versa:         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; f         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; / \         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /&amp;#160;&amp;#160; \         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /&amp;#160;&amp;#160;&amp;#160;&amp;#160; \         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; a,d1,b1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; b2,c,d2,e,g         &lt;br /&gt;We can terminate the left node - because walls a,d1 and b1 form a convex         &lt;br /&gt;shape, they can never overlap each other from any point of view. However, on         &lt;br /&gt;the other side, face e can obscure face d2 from certain viewpoints (our example         &lt;br /&gt;viewpoint above, for one) so we divide along side e. This causes side c to be         &lt;br /&gt;split, but side a is not split because it's not in our current list of sides.         &lt;br /&gt;The next level is:         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; f         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; / \         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /&amp;#160;&amp;#160; \         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /&amp;#160;&amp;#160;&amp;#160;&amp;#160; \         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; a,d1,b1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; e         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; / \         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /&amp;#160;&amp;#160; \         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /&amp;#160;&amp;#160;&amp;#160;&amp;#160; \         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; d2,c1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; b2,c2,g         &lt;br /&gt;Now, c1 and d2 never overlap, so we have another terminal node. We next divide         &lt;br /&gt;along line g, splitting c2 into c2 and c3, and the last nodes are terminals         &lt;br /&gt;(a node with one face in is always terminal :-).         &lt;br /&gt;This is the basic idea behind a BSP tree - to give an example how effective it         &lt;br /&gt;is, consider standing at point y and looking North. Because you're looking         &lt;br /&gt;away from face f, you don't bother recursing down the entire left subtree. This         &lt;br /&gt;then very quickly gives you the ordered list of faces: a,d1,b1.         &lt;br /&gt;Refinements         &lt;br /&gt;-----------         &lt;br /&gt;If at each node we define a bounding box for each subtree, such that every line         &lt;br /&gt;in a subtree is contained by its corresponding bounding box, then we can cut         &lt;br /&gt;some invisible polygons (ones which lie to the left or right of the screen) out         &lt;br /&gt;by comparing each bounding box with the cone of vision - if they don't         &lt;br /&gt;intersect, then you don't go down the whole subtree. DOOM does this, allowing         &lt;br /&gt;it to store an *entire* level in one huge BSP tree.         &lt;br /&gt;Here's some pseudo-code to traverse the tree. The function left() returns TRUE         &lt;br /&gt;if the second input vector is to the left of the first input vector. This is         &lt;br /&gt;a simple dot product, and by pre-calculating the slope of the nodeline can be         &lt;br /&gt;done with one multiply and one subtract.         &lt;br /&gt;vector&amp;#160; player&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ; player's map position         &lt;br /&gt;vector&amp;#160; left_sightline&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ; vector representing a ray cast through         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ; the left-most pixel of the screen         &lt;br /&gt;vector&amp;#160; right_sightline&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ; the right-most pixel of the screen         &lt;br /&gt;structure node         &lt;br /&gt;{         &lt;br /&gt;&amp;#160; vector vertex1         &lt;br /&gt;&amp;#160; vector vertex2         &lt;br /&gt;&amp;#160; node&amp;#160;&amp;#160; left_subtree         &lt;br /&gt;&amp;#160; node&amp;#160;&amp;#160; right_subtree         &lt;br /&gt;&amp;#160; face&amp;#160;&amp;#160; left_face         &lt;br /&gt;&amp;#160; face&amp;#160;&amp;#160; right_face         &lt;br /&gt;&amp;#160; box&amp;#160;&amp;#160;&amp;#160; bounding_box         &lt;br /&gt;&amp;#160; bool&amp;#160;&amp;#160; terminal_node         &lt;br /&gt;&amp;#160; face&amp;#160;&amp;#160; terminal_node_faces[lots]         &lt;br /&gt;}         &lt;br /&gt;recurse(node input)         &lt;br /&gt;if (cone defined by left and right sightlines does not intersect the node's         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; bounding box)         &lt;br /&gt;&amp;#160; return         &lt;br /&gt;fi         &lt;br /&gt;if node.terminal_node         &lt;br /&gt;&amp;#160; ; terminal node - add faces to list         &lt;br /&gt;&amp;#160; add(node.terminal_node_faces)         &lt;br /&gt;&amp;#160; return         &lt;br /&gt;fi         &lt;br /&gt;if left(vertex2-vertex1,player-vertex1)         &lt;br /&gt;&amp;#160; ; player is to the left of the nodeline         &lt;br /&gt;&amp;#160; if not left(vertex2-vertex1,right_sightline)         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ; sight points right - we are looking at the face         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; recurse(node.right_subtree)         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; add(node.left_face)         &lt;br /&gt;&amp;#160; fi         &lt;br /&gt;&amp;#160; ; now go down the left subtree         &lt;br /&gt;&amp;#160; recurse(node.left_subtree)         &lt;br /&gt;else         &lt;br /&gt;&amp;#160; ; player is to the right of the nodeline         &lt;br /&gt;&amp;#160; if left(vertex2-vertex1,left_sightline)         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ; sight points left - we are looking at the face         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; recurse(node.left_subtree)         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; add(node.right_face)         &lt;br /&gt;&amp;#160; fi         &lt;br /&gt;&amp;#160; ; now go down the right subtree         &lt;br /&gt;&amp;#160; recurse(node.right_subtree)         &lt;br /&gt;fi         &lt;br /&gt;return         &lt;br /&gt;end recurse         &lt;br /&gt;This isn't anywhere near a decent implementation - the data structures, for         &lt;br /&gt;example, leave a *lot* to be desired :-)         &lt;br /&gt;It should be possible to encode all the functions inline; in fact, it would be         &lt;br /&gt;feasible to take a BSP tree and hard-code it into some run-time generated code         &lt;br /&gt;which you just call to recurse the tree ... but I'm just a hacker at heart ;-)         &lt;br /&gt;Anyway, I hope this helps answer some peoples' questions on this subject. If         &lt;br /&gt;you have any more questions, please don't hesitate to email me.         &lt;br /&gt;Catch you later,         &lt;br /&gt;Eddie xxx         &lt;br /&gt;ee@datcon.co.uk         &lt;br /&gt;===========================================================================         &lt;br /&gt;Official Archimedes convertor of : Hear and remember, see and understand,         &lt;br /&gt;Wolfenstein 3D and proud of it!! : do and forget.         &lt;br /&gt;=================================: Something like that, anyway.         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ee@datcon.co.uk&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ==========================================&lt;/font&gt;&lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5562777595982356113-1007440374564432771?l=gomes-samuel.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/OwJ0sk04M53RwOmx602-GFiA4CQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OwJ0sk04M53RwOmx602-GFiA4CQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/OwJ0sk04M53RwOmx602-GFiA4CQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OwJ0sk04M53RwOmx602-GFiA4CQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/HBjU/~4/gvQnyZIDvhA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gomes-samuel.blogspot.com/feeds/1007440374564432771/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gomes-samuel.blogspot.com/2011/02/bsp-trees.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/1007440374564432771?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/1007440374564432771?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/HBjU/~3/gvQnyZIDvhA/bsp-trees.html" title="BSP Trees" /><author><name>Samuel Gomes</name><uri>http://www.blogger.com/profile/03966178879130996605</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://gomes.samuel.googlepages.com/MyChatImage.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://gomes-samuel.blogspot.com/2011/02/bsp-trees.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQBQnw5eSp7ImA9Wx9UEEk.&quot;"><id>tag:blogger.com,1999:blog-5562777595982356113.post-6011504217130877552</id><published>2011-02-07T01:12:00.004+05:30</published><updated>2011-02-07T06:29:13.221+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-07T06:29:13.221+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Fun" /><title>Let Us 'C'</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="bvMsg" id="msgcns!41317042D1F60DE5!433"&gt;&lt;div&gt;&lt;span style="font-family: Courier; font-size: x-small;"&gt;struct Indian_female_professionals {&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; double styles;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; short skirts;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; long time_to_understand_problems;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; float mind;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; void knowledge;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; char non_co-operative; &lt;br /&gt;
}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier; font-size: x-small;"&gt;struct married_females {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; double weight;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; short tempered;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; long gossip;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; float hopes;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; void word;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; char unstable; &lt;br /&gt;
}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier; font-size: x-small;"&gt;struct engaged_females {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; double time_on_phone;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; short attention_on_work;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; long boast;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; float on_cloud_nine;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; void understanding;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; char edgy; &lt;br /&gt;
}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier; font-size: x-small;"&gt;struct newly_married_females {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; double dinner_invitation;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; short time_at_work;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; long lunch_break;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; void bank_balance;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; char hen_pecked; &lt;br /&gt;
}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: Courier; font-size: x-small;"&gt;struct Indian_husband_wife_professionals {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; double income;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; short tempered;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; long time_no_see_each_other;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; void love_life;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; char money_making; &lt;br /&gt;
}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5562777595982356113-6011504217130877552?l=gomes-samuel.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-vctpAU_wAMJVnJ12TLb2eTBxJs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-vctpAU_wAMJVnJ12TLb2eTBxJs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-vctpAU_wAMJVnJ12TLb2eTBxJs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-vctpAU_wAMJVnJ12TLb2eTBxJs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/HBjU/~4/PZ8J029l5hE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gomes-samuel.blogspot.com/feeds/6011504217130877552/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gomes-samuel.blogspot.com/2011/02/let-us.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/6011504217130877552?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/6011504217130877552?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/HBjU/~3/PZ8J029l5hE/let-us.html" title="Let Us 'C'" /><author><name>Samuel Gomes</name><uri>http://www.blogger.com/profile/03966178879130996605</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://gomes.samuel.googlepages.com/MyChatImage.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://gomes-samuel.blogspot.com/2011/02/let-us.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IGSHY-cSp7ImA9Wx9UEE4.&quot;"><id>tag:blogger.com,1999:blog-5562777595982356113.post-7969748919261762868</id><published>2011-02-07T01:11:00.002+05:30</published><updated>2011-02-07T06:15:29.859+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-07T06:15:29.859+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Computers" /><title>MacOS X on regular Intel compatible hardware</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="bvMsg" id="msgcns!41317042D1F60DE5!111"&gt;&lt;div&gt;&lt;span style="font-family: Courier New, Courier, Monospace;"&gt;I think MacOS X running on regular Intel hardware is a great idea. Just think about the kind of interoperability that would offer. I guess I am biased because I think from the developer's point of view (being a developer myself). If MacOS X is able to run on regular Intel compatible hardware, then it can become as popular as Windows is today. And that would give developer motivation to write the same software the write for Windows. Just think about it. Today the best games come for the Windows platform first and then they are PORTED to the Mac. Now, since the Mac is using regular Intel compatible hardware, developers can target both platforms at the same time. Besides if MacOS X runs for regular Intel chips it also means it would run on those sexy AMD chips (which I am a great fan of). Compare to those many OSes out there, the MacOS X really stands out. Take a look. UNIX like core (Darwin), stability, features, performance, looks, it has it all. Not many people can afford the costly (albeit great) Mac hardware. So this would be a real big thing. If I were to rate all those Desktop OSes out there, my rating would go like this (earlier the better): 1. Windows 7, 2. MacOSX, 3. Haiku, 4. ReactOS. Sorry I am not a Linux fan due to the bitter experience I had with it and lack of standardization.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Courier New;"&gt;Edit: This post was written nearly 5+ years ago and was moved over from Windows Live Spaces to here.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5562777595982356113-7969748919261762868?l=gomes-samuel.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3ZT5CGGFqvRGxM7Kr3OnvSCzP2s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3ZT5CGGFqvRGxM7Kr3OnvSCzP2s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3ZT5CGGFqvRGxM7Kr3OnvSCzP2s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3ZT5CGGFqvRGxM7Kr3OnvSCzP2s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/HBjU/~4/03Aa6VIzpR8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gomes-samuel.blogspot.com/feeds/7969748919261762868/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gomes-samuel.blogspot.com/2011/02/macos-x-on-regular-intel-compatible.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/7969748919261762868?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/7969748919261762868?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/HBjU/~3/03Aa6VIzpR8/macos-x-on-regular-intel-compatible.html" title="MacOS X on regular Intel compatible hardware" /><author><name>Samuel Gomes</name><uri>http://www.blogger.com/profile/03966178879130996605</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://gomes.samuel.googlepages.com/MyChatImage.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://gomes-samuel.blogspot.com/2011/02/macos-x-on-regular-intel-compatible.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMDRH05eCp7ImA9WxRVGE4.&quot;"><id>tag:blogger.com,1999:blog-5562777595982356113.post-6476102358134813990</id><published>2008-11-16T16:42:00.004+05:30</published><updated>2008-11-16T16:51:15.320+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-16T16:51:15.320+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Computers" /><title>Legacy Free PCs</title><content type="html">Many people don't know it, but today's PCs--including the system you're using right now--contain elements that have hardly changed at all in the last 20 years. Yes, CPUs are faster, hard drives are bigger, and RAM banks are larger. But in many fundamental ways, your PC isn't very different from the PCs of two decades ago.&lt;br /&gt;Although some of the system elements have been modified over time, almost everything in your PC is a direct lineal descendent of the IBM PC AT--a seminal design that still shapes PC architecture two decades later.&lt;br /&gt;In many ways, the PC's hardware consistency over time has been a good thing, a stabilizing force in the otherwise rapidly changing world of computing. It's been a huge positive for businesses and users because this consistency has made many peripherals completely interchangeable. For decades, we've been able to mix and match printers, keyboards, mice, monitors, scanners, modems, and more, largely without regard to the brand of PC.&lt;br /&gt;Hardware standardization also has helped the bottom line by driving down prices: System and peripheral vendors have had a vast and uniform market from which to draw supplies, and to which to sell products, resulting in the commodity-level pricing that's behind today's amazingly low hardware costs. Overall, the PC AT's legacy has been an enormously positive one.&lt;br /&gt;But it also has had a downside, principally in retarding innovation and slowing hardware advancements. The installed base--that is, the mass of existing, older, in-use hardware--acts like a giant speed brake on the computer industry because businesses and users are loath to give up older equipment that's still functional, even if newer designs would perform better or faster. As a result, new technologies tend to emerge piecemeal and more slowly than they would if hardware vendors could make a clean break with the past.&lt;br /&gt;There's even a joke that made the rounds of the computing industry awhile ago: "Why was God able to create the universe in only seven days? Because he didn't have an installed base to deal with."&lt;br /&gt;Despite this backward drag from the installed base, the Grail of many hardware engineers has long been a totally "legacy free" PC that can employ only fully modern, state-of-the-art, high-speed components and architectures. Such a PC would be faster, more compact, more reliable, and less expensive, as well as easier to manufacture and maintain.&lt;br /&gt;&lt;br /&gt;- Fred Langa&lt;br /&gt;&lt;br /&gt;The IBM PC shipped in 1981 -- over twenty years ago. The PC offered various expansion capabilities, including a parallel port, a pair of serial ports (on a separate card), and a keyboard port. It also supported a 5.25" 160KB single-sided floppy disk. The 8-bit PC/XT bus slots were expanded to 16-bit ISA slots in the PC/AT in late 1984. Later, IBM shipped the PS/2, whose enduring legacy in the PC universe today is a pair of compact connectors for the keyboard and mouse, and the 3.5" 1.44MB floppy drive.&lt;br /&gt;Recently, I dug out an old Northgate Omnikey keyboard that's been gathering dust in my storage area. It's at least ten years old. I plugged in a PC-to-PS/2 keyboard adapter. It still works. This type of backwards compatibility has been the great strength of the PC over the years, but it's rapidly becoming an Achilles heel. Various factors have kept these anachronisms in place, such as corporate IT shops that need to support parallel and serial ports, or users with a pile of floppies that contain valuable data. We've even seen an ISA slots in a few new systems. And no doubt the Super I/O chip is still using ISA signaling to support legacy I/O.&lt;br /&gt;So it's no surprise that a company like Apple Computers can push interesting new technologies into their hardware and software more quickly than PC manufacturers. But the buzz over the "legacy free" PCs is starting to heat up. It began several years ago, with both Intel and Microsoft encouraging PC makers to move away from legacy connections. Back then, the pleas fell mostly on deaf ears, but it's beginning to look like the industry is ready. Dell is starting to ship USB keyboards, Gateway will pay you to delete the floppy drive, and at least one component company -- ABIT -- is shipping a line of "legacy-free" motherboards.&lt;br /&gt;What do we mean by "legacy" here? Specifically, we're talking about a set of I/O options that have been part of the PC architecture for a long, long time.&lt;br /&gt;If you look at "legacy-free" meaning a system that eliminates the entire kit and caboodle of this table, then we're still several years out. PCI and AGP will be around for at least two more years before PCI Express surfaces in force. Even then, don't expect systems to get rid of PCI slots anytime soon. Parallel IDE hard drives will probably be around for a couple more years, but will gradually give way to Serial ATA. Similarly, parallel SCSI will yield to serial-attached SCSI.&lt;br /&gt;Actually, we shouldn't forget that the VGA port is also a legacy standard. In fact, VGA hardware is the only remaining piece of hardware that interacts directly with Windows. There is a move afoot to eliminate VGA, called the Universal Graphics Adapter or "UGA". The firmware-based UGA functionality will be accessible via a UGA driver built into the next version of Windows, codenamed Longhorn. If the graphics chip makers consider removing VGA at that time, we could be completely legacy-free.&lt;br /&gt;&lt;br /&gt;- Loyd Case&lt;br /&gt;&lt;br /&gt;Did you know that the latest Intel Macs are actually "Legacy Free PCs"? In case you do not believe me, do a Google search for any Intel Mac's hardware specifications.&lt;br /&gt;&lt;br /&gt;Why a Legacy Free PC?&lt;br /&gt;Three words... simplicity, stability and evolution.&lt;br /&gt;&lt;br /&gt;How can we define Legacy Free PCs now? Here is an overview:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-size:130%;"&gt;Must Have&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;x86-64 Processor&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/X86-64"&gt;http://en.wikipedia.org/wiki/X86-64&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;EFI&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Extensible_Firmware_Interface"&gt;http://en.wikipedia.org/wiki/Extensible_Firmware_Interface&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;PCI-Express&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/PCI-Express"&gt;http://en.wikipedia.org/wiki/PCI-Express&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;USB&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/USB"&gt;http://en.wikipedia.org/wiki/USB&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;SATA&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/SATA"&gt;http://en.wikipedia.org/wiki/SATA&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;em&gt;&lt;strong&gt;Must Not Have&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;BIOS&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/BIOS"&gt;http://en.wikipedia.org/wiki/BIOS&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ISA Bus&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/ISA_bus"&gt;http://en.wikipedia.org/wiki/ISA_bus&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;PCI Bus&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/PCI_bus"&gt;http://en.wikipedia.org/wiki/PCI_bus&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;AGP&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Accelerated_Graphics_Port"&gt;http://en.wikipedia.org/wiki/Accelerated_Graphics_Port&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Serial Ports&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Serial_ports"&gt;http://en.wikipedia.org/wiki/Serial_ports&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Parallel Port&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Parallel_port"&gt;http://en.wikipedia.org/wiki/Parallel_port&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;PS/2 Ports&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/PS/2_connector"&gt;http://en.wikipedia.org/wiki/PS/2_connector&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;VGA Port&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Vga_port"&gt;http://en.wikipedia.org/wiki/Vga_port&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Floppy Disk Controller&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Floppy_disk_controller"&gt;http://en.wikipedia.org/wiki/Floppy_disk_controller&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Game Port&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Game_port"&gt;http://en.wikipedia.org/wiki/Game_port&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Indeed, as system designers are freed of the constraints of the past, we'll likely see radical PC designs that will not only be faster, smaller, and better than today's designs, but that will make the traditional beige-box PC seem positively antiquated. And I, for one, can't wait!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5562777595982356113-6476102358134813990?l=gomes-samuel.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LktONXWEeg_2nZsKgKbOxSpA5hc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LktONXWEeg_2nZsKgKbOxSpA5hc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LktONXWEeg_2nZsKgKbOxSpA5hc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LktONXWEeg_2nZsKgKbOxSpA5hc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/HBjU/~4/53MDQ8PIRlE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gomes-samuel.blogspot.com/feeds/6476102358134813990/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gomes-samuel.blogspot.com/2008/11/legacy-free-pcs.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/6476102358134813990?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/6476102358134813990?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/HBjU/~3/53MDQ8PIRlE/legacy-free-pcs.html" title="Legacy Free PCs" /><author><name>Samuel Gomes</name><uri>http://www.blogger.com/profile/03966178879130996605</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://gomes.samuel.googlepages.com/MyChatImage.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://gomes-samuel.blogspot.com/2008/11/legacy-free-pcs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UNRn8yfSp7ImA9Wx9UEE4.&quot;"><id>tag:blogger.com,1999:blog-5562777595982356113.post-6460589060183019701</id><published>2008-05-14T17:30:00.004+05:30</published><updated>2011-02-07T06:11:37.195+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-07T06:11:37.195+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Games" /><title>Running Blood 2 on Windows Vista x64</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;I would like to share my experiences running Blood 2 Chosen and Nightmare Levels on Windows Vista x64. First off the both game installers use 16-bit installer stubs because of which it does not allow you to install the game directly on 64-bit Windows (32-bit Windows should work fine). Anyways, I installed both games and the patches inside Microsoft Virtual PC on Windows XP 32-bit. Then I moved the full game folder out to Windows Vista x64. If you are using 32-bit Windows, you should not face the same problem. To my surprise mostly everything worked out of the box except the music. I cranked the game to it's highest settings and ran it a 1280x960. It looked good for it's standard. But I was missing the music. So I started examining the files. The game uses Microsoft IMA (Interactive Music Architecture - old form of DirectMusic). Then I loaded the game in Dependency Viewer and start profiling it. I found that the Music failed to work due to a missing function "DirectSoundCreate" in the DLL "dslite.dll". Having done some DirectX programming before, I quickly figured that this is a mini version of the DirectSound library. The file that depends on "dslite.dll" is "am18.dll" that you will find in the Blood2 directory. I quickly opened "am18.dll" in a binary editor ("edit.com /72 am18.dll" works good) and binary edited the string "dslite.dll" to "dsound.dll" and saved the file (always remember to be in overwrite mode - this will not change the DLL file size and structure; do not overwrite other parts of the DLL). Then I fired Bood 2 and voila! Everything worked... even the music. :)&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 85%;"&gt;Edit:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 85%;"&gt;Find the hacked AM18.dll file &lt;a href="http://ddl.team.googlepages.com/AM18.dll.zip"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5562777595982356113-6460589060183019701?l=gomes-samuel.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WBcJHNaj4prNXkgaDgSRnBJM-QI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WBcJHNaj4prNXkgaDgSRnBJM-QI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WBcJHNaj4prNXkgaDgSRnBJM-QI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WBcJHNaj4prNXkgaDgSRnBJM-QI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/HBjU/~4/WjnhDPPeOxg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gomes-samuel.blogspot.com/feeds/6460589060183019701/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gomes-samuel.blogspot.com/2008/05/running-blood-2-on-windows-vista-x64.html#comment-form" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/6460589060183019701?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/6460589060183019701?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/HBjU/~3/WjnhDPPeOxg/running-blood-2-on-windows-vista-x64.html" title="Running Blood 2 on Windows Vista x64" /><author><name>Samuel Gomes</name><uri>http://www.blogger.com/profile/03966178879130996605</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://gomes.samuel.googlepages.com/MyChatImage.png" /></author><thr:total>8</thr:total><feedburner:origLink>http://gomes-samuel.blogspot.com/2008/05/running-blood-2-on-windows-vista-x64.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkEDQ3gyeyp7ImA9WxRXFU8.&quot;"><id>tag:blogger.com,1999:blog-5562777595982356113.post-7295518199525466093</id><published>2008-02-18T15:24:00.003+05:30</published><updated>2008-10-21T00:21:12.693+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-21T00:21:12.693+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Fun" /><title>Funny, but real spoken english!</title><content type="html">&lt;span style="font-family:courier new;font-size:85%;"&gt;In Tamilnadu, there is a well known person by name, Mr. Jeppier, Chairman of Sathyabama deemed university and some more self financing colleges who always speaks in English. That college students have collected &amp;amp; published a book by name "Jappier's Spoken English". Now, here are some classic English sentences from the great "Jappier's Spoken English".&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;# At the ground:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;-----------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;All of you stand in a straight circle. There is no wind in the balloon. The girl with the mirror please comes her... (i.e. girl with specs please come here).&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;# To a boy, angrily:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;--------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;I talk, he talk, why you middle middle talk?&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;# While punishing students:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;---------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;You, rotate the ground four times... You, go and understand the tree... You three of you stand together separately. Why are you late - say YES or NO .....(?)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;# While addressing students about Dress Code: (he is very strict about this)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;----------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Every body should wear dress to college.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Boys no proplum.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Girls are pig proplum. (pig=big)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Girls should wear only slawar no nitee.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;# Sir at his best:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Sir had once gone to a film with his wife. By chance, he happened to see one of our boys at the theatre, though the boy did not see them. So the next day at school... (to that boy) - "Yesterday I saw you WITH MY WIFE at the Cinema Theatre".&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;# Sir at his best inside the Class room:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;----------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Open the doors of the window. Let the atmosphere come in.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Open the doors of the window. Let the Air Force come in.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Cut an apple into two halves - I will take the bigger half.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Shhh... Quiet, boys... the principal JUST PASSED AWAY in the corridor.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;You, meet me behind the class. (Meaning AFTER the class.)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Both of you three get out of the class.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Close the doors of the windows please. I have winter in my nose today...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Take Copper Wire of any metal especially of Silver...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Take 5 cm wire of any length....&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;# Last but not the least some Jeppiar experiences...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;----------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Once Sir had come late to a college function, by the time he reached, the function had begun, so he went to the dais, and said, sorry I am late, because on the way my car hit 2 muttons (Meaning goats).&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;# At Sathyabama college day 2002:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;---------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;"This college strict u the worry no .... U get good marks, I the happy, tomorrow u get good job, jpr the happy, tomorrow u marry I the enjoy".&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;# At St. Josephs college of engineering fresh years day 2003:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;-------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;"No ragging this college. Anybody rag we arrest the police "&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;Enjoy this English, but don't forget your English!!! :)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5562777595982356113-7295518199525466093?l=gomes-samuel.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WyHoJV34hSxPsiAJwZkkdnRqhlo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WyHoJV34hSxPsiAJwZkkdnRqhlo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WyHoJV34hSxPsiAJwZkkdnRqhlo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WyHoJV34hSxPsiAJwZkkdnRqhlo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/HBjU/~4/L_fy1GlKk-o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gomes-samuel.blogspot.com/feeds/7295518199525466093/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gomes-samuel.blogspot.com/2008/02/fw-funny-butreal-spoken.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/7295518199525466093?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/7295518199525466093?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/HBjU/~3/L_fy1GlKk-o/fw-funny-butreal-spoken.html" title="Funny, but real spoken english!" /><author><name>Samuel Gomes</name><uri>http://www.blogger.com/profile/03966178879130996605</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://gomes.samuel.googlepages.com/MyChatImage.png" /></author><thr:total>1</thr:total><feedburner:origLink>http://gomes-samuel.blogspot.com/2008/02/fw-funny-butreal-spoken.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YFRno4fSp7ImA9Wx9UEE4.&quot;"><id>tag:blogger.com,1999:blog-5562777595982356113.post-5659639824395930028</id><published>2007-09-16T15:49:00.000+05:30</published><updated>2011-02-07T06:08:37.435+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-07T06:08:37.435+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Computers" /><title>Modding your K750i phone to a W800i</title><content type="html">&lt;span style="color:#ff0000;"&gt;Warning: Do this at your own risk!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This blog explains how you can mod your Sony Ericsson K750i to a Sony Ericsson W800i or just replace the worn out K750i chassis.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Tools that you will need:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Small Philips screwdriver&lt;/li&gt;&lt;br /&gt;&lt;li&gt;T6 Torx screwdriver&lt;/li&gt;&lt;br /&gt;&lt;li&gt;A small blunt (plastic) knife/shim to pry stuff&lt;/li&gt;&lt;/ol&gt;Watch this video for further details (sorry audio is in chinese):&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-86985dafe4a3d799" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;
&lt;param name="bgcolor" value="#FFFFFF"&gt;
&lt;param name="allowfullscreen" value="true"&gt;
&lt;param name="flashvars" value="flvurl=http://v12.nonxt1.googlevideo.com/videoplayback?id%3D86985dafe4a3d799%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329682966%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D39484E0F0DC3B749273CE9CFBD7C5B88AAE2FC2E.5B75EE4C9C41765FBAAABBA3AF975DAA300C28A1%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D86985dafe4a3d799%26offsetms%3D5000%26itag%3Dw160%26sigh%3DIC8XRqNsPmErHK6mzD8Zkte-8QQ&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;
&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"
width="320" height="266" bgcolor="#FFFFFF"
flashvars="flvurl=http://v12.nonxt1.googlevideo.com/videoplayback?id%3D86985dafe4a3d799%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329682966%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D39484E0F0DC3B749273CE9CFBD7C5B88AAE2FC2E.5B75EE4C9C41765FBAAABBA3AF975DAA300C28A1%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D86985dafe4a3d799%26offsetms%3D5000%26itag%3Dw160%26sigh%3DIC8XRqNsPmErHK6mzD8Zkte-8QQ&amp;autoplay=0&amp;ps=blogger"
allowFullScreen="true" /&gt;&lt;/object&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5562777595982356113-5659639824395930028?l=gomes-samuel.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RIXB72aAvAFyXCuTrqNhOQ6qWls/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RIXB72aAvAFyXCuTrqNhOQ6qWls/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RIXB72aAvAFyXCuTrqNhOQ6qWls/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RIXB72aAvAFyXCuTrqNhOQ6qWls/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/HBjU/~4/co9vkTVQtaM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gomes-samuel.blogspot.com/feeds/5659639824395930028/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gomes-samuel.blogspot.com/2007/09/modding-your-k750i-phone-to-w800i.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/5659639824395930028?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/5659639824395930028?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/HBjU/~3/co9vkTVQtaM/modding-your-k750i-phone-to-w800i.html" title="Modding your K750i phone to a W800i" /><author><name>Samuel Gomes</name><uri>http://www.blogger.com/profile/03966178879130996605</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://gomes.samuel.googlepages.com/MyChatImage.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://gomes-samuel.blogspot.com/2007/09/modding-your-k750i-phone-to-w800i.html</feedburner:origLink><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="enclosure" href="http://feedproxy.google.com/~r/blogspot/HBjU/~5/UK73IYUW_k8/video-play.mp4" length="0" type="video/mp4" /><feedburner:origEnclosureLink>http://www.blogger.com/video-play.mp4?contentId=86985dafe4a3d799&amp;type=video%2Fmp4</feedburner:origEnclosureLink></entry><entry gd:etag="W/&quot;A0cMSH8zfip7ImA9Wx9UEE4.&quot;"><id>tag:blogger.com,1999:blog-5562777595982356113.post-4335750195596968422</id><published>2007-08-31T06:56:00.000+05:30</published><updated>2011-02-07T06:08:09.186+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-07T06:08:09.186+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Computers" /><title>The AMD Athlon™ 64 Processor Operational Modes (also applies to Intel chips with EM64T)</title><content type="html">&lt;b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Legacy Mode: &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Legacy mode is what the processor defaults to in basic 32-bit software. If you run a 32-bit Linux or Windows installation you’ve been running in legacy mode; if you’ve looked at any performance benchmarks it should be obvious that not only is the AMD Athlon™ 64 processor more than happy to run this way, it delivers excellent performance while doing so. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Compatibility Mode: &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Compatibility mode is designed for a 64-bit processor that still needs the capability to run 32-bit applications. The AMD Athlon 64 processor is capable of this natively, which eliminates the need for 32-bit emulation on the hardware level. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Long Mode: &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;True 64-bit Long Mode is intended for a native 64-bit OS environment where the application is also running 64-bit. Windows XP Professional x64 Edition is capable of using both modes, and the AMD Athlon 64 processor is capable of switching between 64-bit Long Mode and Compatibility mode from within the 64-bit OS. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Why Move to 64-bit? &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;If 32-bit systems offer excellent performance now, why move to a 64-bit OS at all? It’s a question with a multi-faceted answer, depending on your needs. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Increased Memory Addressing: &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Standard 32-bit computers have a 4 GB limit on addressable memory. 64-bit computing offers a memory address limitation measured in exabytes that will open this potential bottleneck for years to come. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Increased Computational Power: &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;The AMD Athlon™ 64 processor adds an additional eight General Purpose Registers and eight 128-bit streaming SIMD extension (SSE) registers. Using a 64-bit OS opens these for application-usage for the first time. Increasing the raw computation capability of the processor in turn opens the door to increased visual detail in games, unprecedented scientific modeling, and stronger performance across a wide range of applications. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;No Performance Penalty for Running in 32-bit: &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Unlike computer platforms that emulate 32-bit or x86 compatibility, AMD64 architecture can execute such commands natively. The advantage to this is that even legacy 32-bit code is delivered with no performance penalty. When running in a 64-bit OS, Microsoft’s WoW (Windows on Windows) 64 mode allows the chip to natively access programs; in a 32-bit OS such as Windows XP (standard), no such operating mode is needed. This is in direct contrast to other 64-bit designs, which require emulation (and take a massive performance penalty for executing 32-bit x86 operations). &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Moving to 64-bit will not universally improve performance in all applications and test suites, but it won’t degrade performance either. This logically translates into a scenario where the “worst case” possibility is performance equality, and the best-case is a significant performance boost. For end-user, corporation, or major business server, this is a universal win.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;span style="font-size: 10pt;"&gt;T&lt;/span&gt;&lt;span style="font-size: 8pt;"&gt;his information was taken from a document on &lt;a href="http://www.amd.com/"&gt;http://www.amd.com&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5562777595982356113-4335750195596968422?l=gomes-samuel.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JSHopgDAZDLs04MX9_8MByLmSro/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JSHopgDAZDLs04MX9_8MByLmSro/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JSHopgDAZDLs04MX9_8MByLmSro/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JSHopgDAZDLs04MX9_8MByLmSro/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/HBjU/~4/lBKywXb08hM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gomes-samuel.blogspot.com/feeds/4335750195596968422/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gomes-samuel.blogspot.com/2007/08/amd-athlon-64-processor-operational.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/4335750195596968422?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/4335750195596968422?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/HBjU/~3/lBKywXb08hM/amd-athlon-64-processor-operational.html" title="The AMD Athlon™ 64 Processor Operational Modes (also applies to Intel chips with EM64T)" /><author><name>Samuel Gomes</name><uri>http://www.blogger.com/profile/03966178879130996605</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://gomes.samuel.googlepages.com/MyChatImage.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://gomes-samuel.blogspot.com/2007/08/amd-athlon-64-processor-operational.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4BSHk5cCp7ImA9Wx9UEE4.&quot;"><id>tag:blogger.com,1999:blog-5562777595982356113.post-3980150509425789165</id><published>2007-07-15T18:35:00.000+05:30</published><updated>2011-02-07T06:05:59.728+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-07T06:05:59.728+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Computers" /><title>Windows XP Product Key Finder</title><content type="html">&lt;span style="font-family:arial;font-size:85%;"&gt;' Windows XP Product Key Finder&lt;br /&gt;' Copy text and paste it in a vbs file and run it.&lt;br /&gt;' Code found by SaM. EnJoY!&lt;br /&gt;' We work in the dark. We get what we want. &lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Public Function sGetXPCDKey()&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Dim bDigitalProductID&lt;br /&gt;Dim bProductKey()&lt;br /&gt;Dim bKeyChars(24)&lt;br /&gt;Dim ilByte&lt;br /&gt;Dim nCur&lt;br /&gt;Dim sCDKey&lt;br /&gt;Dim ilKeyByte&lt;br /&gt;Dim ilBit &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;ReDim Preserve bProductKey(14) &lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Set objShell = CreateObject("WScript.Shell") &lt;/span&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;bDigitalProductID = objShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\Windows NT\CurrentVersion\DigitalProductId")&lt;/span&gt; &lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Set objShell = Nothing &lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;For ilByte = 52 To 66&lt;br /&gt;bProductKey(ilByte - 52) = bDigitalProductID(ilByte)&lt;br /&gt;Next &lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;'Possible characters in the CD Key:&lt;br /&gt;bKeyChars(0) = Asc("B")&lt;br /&gt;bKeyChars(1) = Asc("C")&lt;br /&gt;bKeyChars(2) = Asc("D")&lt;br /&gt;bKeyChars(3) = Asc("F")&lt;br /&gt;bKeyChars(4) = Asc("G")&lt;br /&gt;bKeyChars(5) = Asc("H")&lt;br /&gt;bKeyChars(6) = Asc("J")&lt;br /&gt;bKeyChars(7) = Asc("K")&lt;br /&gt;bKeyChars(8) = Asc("M")&lt;br /&gt;bKeyChars(9) = Asc("P")&lt;br /&gt;bKeyChars(10) = Asc("Q")&lt;br /&gt;bKeyChars(11) = Asc("R")&lt;br /&gt;bKeyChars(12) = Asc("T")&lt;br /&gt;bKeyChars(13) = Asc("V")&lt;br /&gt;bKeyChars(14) = Asc("W")&lt;br /&gt;bKeyChars(15) = Asc("X")&lt;br /&gt;bKeyChars(16) = Asc("Y")&lt;br /&gt;bKeyChars(17) = Asc("2")&lt;br /&gt;bKeyChars(18) = Asc("3")&lt;br /&gt;bKeyChars(19) = Asc("4")&lt;br /&gt;bKeyChars(20) = Asc("6")&lt;br /&gt;bKeyChars(21) = Asc("7")&lt;br /&gt;bKeyChars(22) = Asc("8")&lt;br /&gt;bKeyChars(23) = Asc("9") &lt;/span&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;For ilByte = 24 To 0 Step -1&lt;br /&gt;nCur = 0&lt;/span&gt; &lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;For ilKeyByte = 14 To 0 Step -1&lt;br /&gt;'Step through each byte in the Product Key&lt;br /&gt;nCur = nCur * 256 Xor bProductKey(ilKeyByte)&lt;br /&gt;bProductKey(ilKeyByte) = Int(nCur / 24)&lt;br /&gt;nCur = nCur Mod 24&lt;br /&gt;Next &lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;sCDKey = Chr(bKeyChars(nCur)) &amp;amp; sCDKey&lt;br /&gt;If ilByte Mod 5 = 0 And ilByte &amp;lt;&amp;gt; 0 Then sCDKey = "-" &amp;amp; sCDKey&lt;br /&gt;Next &lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;sGetXPCDKey = sCDKey&lt;br /&gt;End Function &lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Public Function Question()&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Set objFSO = CreateObject("Scripting.FileSystemObject")&lt;br /&gt;Dim Ans &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Ans = MsgBox("Yes = Write Windows XP Serial key to the C Drive and No =&lt;br /&gt;Prompt with Serial key",4) &lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;If Ans = vbYes then &lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Set oOutFile = objFSO.CreateTextFile("c:\XP_Serial_Key.txt") &lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;oOutFile.WriteLine sGetXPCDKey&lt;br /&gt;else&lt;br /&gt;wscript.echo sGetXPCDKey&lt;br /&gt;End If&lt;br /&gt;End Function &lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;call Question&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;' Script ends here&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;Get the script &lt;a href="http://gomes.samuel.googlepages.com/WindowsXPProductKey.vbs"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5562777595982356113-3980150509425789165?l=gomes-samuel.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/65VegOSlXUH8tG5IsBA94SHf9bs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/65VegOSlXUH8tG5IsBA94SHf9bs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/65VegOSlXUH8tG5IsBA94SHf9bs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/65VegOSlXUH8tG5IsBA94SHf9bs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/HBjU/~4/UE9Ica7xvd8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gomes-samuel.blogspot.com/feeds/3980150509425789165/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gomes-samuel.blogspot.com/2007/07/windows-xp-product-key-finder.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/3980150509425789165?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/3980150509425789165?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/HBjU/~3/UE9Ica7xvd8/windows-xp-product-key-finder.html" title="Windows XP Product Key Finder" /><author><name>Samuel Gomes</name><uri>http://www.blogger.com/profile/03966178879130996605</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://gomes.samuel.googlepages.com/MyChatImage.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://gomes-samuel.blogspot.com/2007/07/windows-xp-product-key-finder.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4GRXw5eyp7ImA9Wx9UEE4.&quot;"><id>tag:blogger.com,1999:blog-5562777595982356113.post-1687669849561796538</id><published>2007-07-15T18:28:00.001+05:30</published><updated>2011-02-07T06:05:24.223+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-07T06:05:24.223+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Computers" /><title>Change Office 2007 Key without reinstalling</title><content type="html">&lt;div class=Section1&gt;  &lt;p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt; margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1'&gt;&lt;![if !supportLists]&gt;&lt;span style='mso-list:Ignore'&gt;1.&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;Close all Microsoft Office applications.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt; margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1'&gt;&lt;![if !supportLists]&gt;&lt;span style='mso-list:Ignore'&gt;2.&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;Click &lt;strong&gt;Start&lt;/strong&gt;, click &lt;strong&gt;Run&lt;/strong&gt;, type regedit in the &lt;strong&gt;Open&lt;/strong&gt; box, and then click &lt;strong&gt;OK&lt;/strong&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt; margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1'&gt;&lt;![if !supportLists]&gt;&lt;span style='mso-list:Ignore'&gt;3.&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;Locate the following registry subkey: &lt;br&gt; HKEY_LOCAL_MACHINE\Software\Microsoft\Office\12.0\Registration&lt;br&gt; &lt;br&gt; &lt;b&gt;Note&lt;/b&gt; You may also find another subkey that resembles the following subkey: &lt;br&gt; &lt;br&gt; HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Registration\{91120000-0011-0000-0000-0000000FF1CE} &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt; margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1'&gt;&lt;![if !supportLists]&gt;&lt;span style='mso-list:Ignore'&gt;4.&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;If you find additional subkeys that reference Microsoft 12.0 registration, open each subkey, and then identify the product by the ProductName entry. &lt;br&gt; For example: ProductName=Microsoft Office Professional Plus 2007&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1'&gt;&lt;![if !supportLists]&gt;&lt;span style='mso-list:Ignore'&gt;5.&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;When you find the subkey for the product from which you want to remove the existing product license key, delete the following entries: &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; margin-left:.75in;text-indent:-.25in;mso-list:l0 level2 lfo1'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-size:10.0pt;font-family:"Courier New"'&gt;&lt;span style='mso-list:Ignore'&gt;o&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;DigitalProductID &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt; margin-left:.75in;text-indent:-.25in;mso-list:l0 level2 lfo1'&gt;&lt;![if !supportLists]&gt;&lt;span style='font-size:10.0pt;font-family:"Courier New"'&gt;&lt;span style='mso-list:Ignore'&gt;o&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;ProductID&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto; margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo1'&gt;&lt;![if !supportLists]&gt;&lt;span style='mso-list:Ignore'&gt;6.&lt;span style='font:7.0pt "Times New Roman"'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;![endif]&gt;Exit Registry Editor.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;The next time that you try to run an Office application, you will be prompted for a new product license key. Then, you can enter the product license key.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bloggingabout.net/UserFiles/Mike%20Glaser/WindowsLiveWriter/ChangeOffice2007ProductKey_A32D/key2.png" target="_new"&gt;&lt;span style='text-decoration:none'&gt;&lt;img border=0 width=400 height=450 id="_x0000_i1025" src="http://bloggingabout.net/UserFiles/Mike%20Glaser/WindowsLiveWriter/ChangeOffice2007ProductKey_A32D/key_thumb2.png"&gt;&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p&gt;Hit the &amp;quot;Install Now&amp;quot; button and you Office app, will be updated with the new key. After updating you can activate your Office app, without reinstalling it.&lt;span style='color:black'&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5562777595982356113-1687669849561796538?l=gomes-samuel.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Zs3NmvUl7f0WJRH13QP1bUbZNzk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Zs3NmvUl7f0WJRH13QP1bUbZNzk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Zs3NmvUl7f0WJRH13QP1bUbZNzk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Zs3NmvUl7f0WJRH13QP1bUbZNzk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/HBjU/~4/3uJCnFiVvh0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gomes-samuel.blogspot.com/feeds/1687669849561796538/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gomes-samuel.blogspot.com/2007/07/change-office-2007-key-without.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/1687669849561796538?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/1687669849561796538?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/HBjU/~3/3uJCnFiVvh0/change-office-2007-key-without.html" title="Change Office 2007 Key without reinstalling" /><author><name>Samuel Gomes</name><uri>http://www.blogger.com/profile/03966178879130996605</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://gomes.samuel.googlepages.com/MyChatImage.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://gomes-samuel.blogspot.com/2007/07/change-office-2007-key-without.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cBR38yfyp7ImA9Wx9UEE4.&quot;"><id>tag:blogger.com,1999:blog-5562777595982356113.post-5450985273171598148</id><published>2007-07-11T21:16:00.003+05:30</published><updated>2011-02-07T06:07:36.197+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-07T06:07:36.197+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Personal" /><title>A feeling which I had long forgotten</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Today after much though, I realized what is actually bothering me. Well, "bothering" would be the incorrect word to use in this context because I believe that I have once again fallen in love! And that too with the person I never expected to fall in love with... a very good friend. I realized that I was missing something after moving away from her and then I realized that I was missing her (a lot). It happens all the time... we never care for things which we can easily avail, but once those things become hard to get we come to know its worth. I never imagined myself falling in love again after I crashed and burned at my first attempt which was very painful to say the least. And now once again I am treading on the same path and guess what... I can't see what's ahead! I guess I would have never felt this way about her unless she allowed me to, so she too must be having some idea about how I feel about her. I guess I should confess to her about my feelings soon before it gets deeper in my head. Love is good and bad at the same time. It gives you that awesome feeling and the same time make you a worthless piece of s**t. So baby here I come and you're going to tell me if "I am in" or "I am out"! &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5562777595982356113-5450985273171598148?l=gomes-samuel.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9egLqkcLm6iK6Bsfx6dvKyHpIF8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9egLqkcLm6iK6Bsfx6dvKyHpIF8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9egLqkcLm6iK6Bsfx6dvKyHpIF8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9egLqkcLm6iK6Bsfx6dvKyHpIF8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/HBjU/~4/rVBOsQ39jKM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gomes-samuel.blogspot.com/feeds/5450985273171598148/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gomes-samuel.blogspot.com/2007/07/feeling-which-i-had-long-forgotten.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/5450985273171598148?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/5450985273171598148?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/HBjU/~3/rVBOsQ39jKM/feeling-which-i-had-long-forgotten.html" title="A feeling which I had long forgotten" /><author><name>Samuel Gomes</name><uri>http://www.blogger.com/profile/03966178879130996605</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://gomes.samuel.googlepages.com/MyChatImage.png" /></author><thr:total>1</thr:total><feedburner:origLink>http://gomes-samuel.blogspot.com/2007/07/feeling-which-i-had-long-forgotten.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkAHQnszfyp7ImA9Wx9UEE4.&quot;"><id>tag:blogger.com,1999:blog-5562777595982356113.post-3183327462466673800</id><published>2007-07-11T20:16:00.000+05:30</published><updated>2011-02-07T06:02:13.587+05:30</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-07T06:02:13.587+05:30</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Communication" /><title>Feedback Please</title><content type="html">I would like to formally announce that right now I am working on my very own website. Please visit &lt;a href="http://gomes.samuel.googlepages.com/"&gt;http://gomes.samuel.googlepages.com/&lt;/a&gt;&lt;br /&gt;I need feedback and support from all you guys out there.&lt;br /&gt;&lt;br /&gt;P.S.: It is still a work in progress.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5562777595982356113-3183327462466673800?l=gomes-samuel.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Gvrsf8nezz1f4XWzNICLBs-PnHk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Gvrsf8nezz1f4XWzNICLBs-PnHk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Gvrsf8nezz1f4XWzNICLBs-PnHk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Gvrsf8nezz1f4XWzNICLBs-PnHk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/HBjU/~4/JZg1HC7VQzo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gomes-samuel.blogspot.com/feeds/3183327462466673800/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://gomes-samuel.blogspot.com/2007/07/feedback-please.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/3183327462466673800?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5562777595982356113/posts/default/3183327462466673800?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/HBjU/~3/JZg1HC7VQzo/feedback-please.html" title="Feedback Please" /><author><name>Samuel Gomes</name><uri>http://www.blogger.com/profile/03966178879130996605</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://gomes.samuel.googlepages.com/MyChatImage.png" /></author><thr:total>1</thr:total><feedburner:origLink>http://gomes-samuel.blogspot.com/2007/07/feedback-please.html</feedburner:origLink></entry></feed>

