<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-1180133338141908412</id><updated>2009-11-10T20:14:48.101-08:00</updated><title type='text'>Crumbles</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mazonka.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default'/><link rel='alternate' type='text/html' href='http://mazonka.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>mazonka</name><uri>http://www.blogger.com/profile/09621083083657692081</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>19</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1180133338141908412.post-3271099336958018247</id><published>2009-11-10T20:07:00.000-08:00</published><updated>2009-11-10T20:14:48.109-08:00</updated><title type='text'>Measuring life</title><content type='html'>Life is measured not in years but in a number of dreams of youth you have let go.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1180133338141908412-3271099336958018247?l=mazonka.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mazonka.blogspot.com/feeds/3271099336958018247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1180133338141908412&amp;postID=3271099336958018247' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/3271099336958018247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/3271099336958018247'/><link rel='alternate' type='text/html' href='http://mazonka.blogspot.com/2009/11/measuring-life.html' title='Measuring life'/><author><name>mazonka</name><uri>http://www.blogger.com/profile/09621083083657692081</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02638659728506222082'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1180133338141908412.post-1854390437300091102</id><published>2009-10-01T22:52:00.000-07:00</published><updated>2009-10-01T22:55:29.731-07:00</updated><title type='text'>Thesis of darkness</title><content type='html'>&lt;span style="font-style: italic;"&gt;In an evolving system only around one twelfth  of substance contributes to the observable cause and consequence relations, the rest is darkness.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Dark matter and dark energy in physics. &lt;/li&gt;&lt;li&gt;Dark DNA in biology – junk or non-coding DNA.&lt;/li&gt;&lt;li&gt;Dark money in economics – money made by promises, in opposite to visible coin, plastic, and digital money.&lt;/li&gt;&lt;li&gt;Dark information – unexplainable sequences of events.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1180133338141908412-1854390437300091102?l=mazonka.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mazonka.blogspot.com/feeds/1854390437300091102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1180133338141908412&amp;postID=1854390437300091102' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/1854390437300091102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/1854390437300091102'/><link rel='alternate' type='text/html' href='http://mazonka.blogspot.com/2009/10/thesis-of-darkness.html' title='Thesis of darkness'/><author><name>mazonka</name><uri>http://www.blogger.com/profile/09621083083657692081</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02638659728506222082'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1180133338141908412.post-4207794954015134060</id><published>2009-09-29T20:44:00.000-07:00</published><updated>2009-10-02T00:08:05.846-07:00</updated><title type='text'>Wealth and Income</title><content type='html'>An interesting observation. I and many of my friends have to work to pay our debts. We are intelligent proletarians. A proletarian is a person who possessing neither capital nor production means, must earn his living by selling his labour. A non-proletarian may work, but he does not have to in order to support his living. We are paying out mainly our mortgages, which are mainly the loans for the houses we live in. And most of the value of the houses is the land. So basically we work hard to pay out the land we live on. That makes me ponder.&lt;br /&gt;&lt;br /&gt;A simple model. A number of people are willing to buy a resource which is not producible by labour, for example, land. The market price for the land rises up to the level of the limit of competitive abilities of those people. If the people are desperate they borrow from the bank some kind of paper. By doing this they sell their &lt;span style="font-style: italic;"&gt;future&lt;/span&gt; labour. The owner puts this paper back to the bank, and the bank cancels the paper. When future comes, people have to work to pay back the borrowed paper producing a lot of consumable products. If the amount of products is more than enough, they have to produce all kinds of luxuries to please the owners of the bank and the resource previous owners. When the demand for the resource declines, the prices fall, leaving years of hard labour spent on something, which those people not really required at the first place.&lt;br /&gt;&lt;br /&gt;I always suspected that the slavery era has not ended. It transformed. People, who have to work and earn for living, pay taxes. They pay taxes directly through their income and indirectly through businesses they work for, and through the sale taxes. But some who do not have to work usually pay much less taxes, because their lives &lt;span style="font-style: italic;"&gt;are&lt;/span&gt; businesses with tax deductible expenses. Am I a supporter of this kind of system? Would a simple solution as taxing &lt;span style="font-style: italic;"&gt;wealth&lt;/span&gt; (not wealth taxing) instead of personal income make all people happier? That makes me ponder.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1180133338141908412-4207794954015134060?l=mazonka.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mazonka.blogspot.com/feeds/4207794954015134060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1180133338141908412&amp;postID=4207794954015134060' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/4207794954015134060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/4207794954015134060'/><link rel='alternate' type='text/html' href='http://mazonka.blogspot.com/2009/09/taxing-wealth-instead-of-personal.html' title='Wealth and Income'/><author><name>mazonka</name><uri>http://www.blogger.com/profile/09621083083657692081</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02638659728506222082'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1180133338141908412.post-5023474496344783983</id><published>2009-04-13T19:29:00.000-07:00</published><updated>2009-04-13T20:15:46.660-07:00</updated><title type='text'>Bomb Problem (part II)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ocEfEzRbJg0/SeP2me4CedI/AAAAAAAAACQ/86fcVCprJvE/s1600-h/aaa.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_ocEfEzRbJg0/SeP2me4CedI/AAAAAAAAACQ/86fcVCprJvE/s320/aaa.png" alt="" id="BLOGGER_PHOTO_ID_5324370325465627090" border="0" /&gt;&lt;/a&gt;Assume that point &lt;span style="font-weight: bold; font-style: italic;"&gt;A&lt;/span&gt; is at location -1 and point &lt;span style="font-weight: bold; font-style: italic;"&gt;B&lt;/span&gt; is at 1. If one source produced both &lt;span style="font-weight: bold; font-style: italic;"&gt;A&lt;/span&gt; and &lt;span style="font-weight: bold; font-style: italic;"&gt;B&lt;/span&gt; and the next shot is expected to be produced by the same source, then the best fit is the normal distribution with mean 0 and dispersion 1: &lt;span style="font-weight: bold; font-style: italic;"&gt;N(0,1,x)&lt;/span&gt; - gives the maximum probabilities for points &lt;span style="font-weight: bold; font-style: italic;"&gt;A&lt;/span&gt; and &lt;span style="font-weight: bold; font-style: italic;"&gt;B&lt;/span&gt;. On the other hand, if different sources produced A and B, the best guess would be that the third shot is normally distributed with one of the sources &lt;span style="font-weight: bold; font-style: italic;"&gt;F(x)&lt;/span&gt;. Now since no information present about whether one or two sources produced &lt;span style="font-weight: bold; font-style: italic;"&gt;A&lt;/span&gt; and &lt;span style="font-weight: bold; font-style: italic;"&gt;B&lt;/span&gt;, give the same chances to either way:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;    f(x)=(N(0,1,x)+F(x))/2&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;For &lt;span style="font-weight: bold; font-style: italic;"&gt;F(x)&lt;/span&gt;, give the same chances to points &lt;span style="font-weight: bold; font-style: italic;"&gt;A&lt;/span&gt; and &lt;span style="font-weight: bold; font-style: italic;"&gt;B&lt;/span&gt;:&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;br /&gt;  F(x)=(F(-1,x)+F(1,x))/2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;And the best guess for &lt;span style="font-weight: bold; font-style: italic;"&gt;F(y,x)&lt;/span&gt; would be &lt;span style="font-weight: bold; font-style: italic;"&gt;N(y,(x-y)/2,x)&lt;/span&gt;, because the only information about the dispersion for &lt;span style="font-weight: bold; font-style: italic;"&gt;F(y,x) &lt;/span&gt;is the distance between &lt;span style="font-weight: bold; font-style: italic;"&gt;x&lt;/span&gt; and &lt;span style="font-weight: bold; font-style: italic;"&gt;y&lt;/span&gt;, and the dispersion &lt;span style="font-weight: bold; font-style: italic;"&gt;(x-y)/2&lt;/span&gt; is the best fit. Note, that the function &lt;span style="font-weight: bold; font-style: italic;"&gt;F(y,x)&lt;/span&gt; is not proper distribution for variable &lt;span style="font-weight: bold; font-style: italic;"&gt;x&lt;/span&gt;, because the probability is given for fixed dispersion and it depends on &lt;span style="font-weight: bold; font-style: italic;"&gt;x&lt;/span&gt;, i.e. to be normalized the dispersion has to be fixed. The overall distribution then is:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;    f(x)=(N(0,1,x)+(N(-1,(x+1)/2,x)+N(1,(x-1)/2,x))/2)/2&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;where&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;N(y,s,x)=1/sqrt(2Pi*s&lt;/span&gt;&lt;sup style="font-weight: bold; font-style: italic;"&gt;2&lt;/sup&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;)*Exp(-0.5(x-y)&lt;sup&gt;2&lt;/sup&gt;/s&lt;sup&gt;2&lt;/sup&gt;)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;The graph for function &lt;span style="font-weight: bold; font-style: italic;"&gt;f(x)&lt;/span&gt; is presented above. The minimum values are at points: -0.47 and +0.47. This means that the safest place is about a quarter distance from either end.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1180133338141908412-5023474496344783983?l=mazonka.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mazonka.blogspot.com/feeds/5023474496344783983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1180133338141908412&amp;postID=5023474496344783983' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/5023474496344783983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/5023474496344783983'/><link rel='alternate' type='text/html' href='http://mazonka.blogspot.com/2009/04/bomb-problem-part-ii.html' title='Bomb Problem (part II)'/><author><name>mazonka</name><uri>http://www.blogger.com/profile/09621083083657692081</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02638659728506222082'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ocEfEzRbJg0/SeP2me4CedI/AAAAAAAAACQ/86fcVCprJvE/s72-c/aaa.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1180133338141908412.post-118984390906616777</id><published>2009-04-02T21:27:00.000-07:00</published><updated>2009-04-02T21:34:00.775-07:00</updated><title type='text'>Kernel Density Estimation: Multikernel and Bomb problem</title><content type='html'>&lt;p class="MsoNormal"&gt;Given a sequence of independent identically distributed random variables &lt;b style=""&gt;&lt;i style=""&gt;X&lt;sub&gt;1&lt;/sub&gt;, X&lt;sub&gt;2&lt;/sub&gt;, ..., X&lt;sub&gt;N&lt;/sub&gt;&lt;/i&gt;&lt;/b&gt; with common probability density function &lt;b style=""&gt;&lt;i style=""&gt;f(x)&lt;/i&gt;&lt;/b&gt;, how can one estimate &lt;b style=""&gt;&lt;i style=""&gt;f(x)&lt;/i&gt;&lt;/b&gt;? (Old good KDE problem)&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Let us consider the following simple question. You are on the road and you cannot go off side the road. Two bombs fall at points &lt;b style=""&gt;&lt;i style=""&gt;A&lt;/i&gt;&lt;/b&gt; and &lt;b style=""&gt;&lt;i style=""&gt;B&lt;/i&gt;&lt;/b&gt; in no particular order (for example you can see only two shell holes, but do not know which one was the first). Where is the safest place on the road if you expect the third bomb to fall? Obviously it is as far as possible from the both points. But what about the safest place between &lt;b style=""&gt;&lt;i style=""&gt;A&lt;/i&gt;&lt;/b&gt; and &lt;b style=""&gt;&lt;i style=""&gt;B&lt;/i&gt;&lt;/b&gt;? Is it the middle? Is it the place close to the point &lt;b style=""&gt;&lt;i style=""&gt;A&lt;/i&gt;&lt;/b&gt; or &lt;b style=""&gt;&lt;i style=""&gt;B&lt;/i&gt;&lt;/b&gt;?&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;If you think that both bombs fell from the same source and just randomly deviated from each other, then the middle point would be the most dangerous place, because it gives the highest probability that the most probable outcome is in the middle. However, if you think that those two bombs have independent sources, then the middle is the safest place because it is likely that the third bomb is sourced from either of those two. [It is the best guess because we do not have any information at this moment.] Now if you do not know if the sources are independent, somehow dependent or both are the same, then the answer is unclear.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Note that considering both sources sampled completely independent but with the bandwidth deduced from the distance between the points is the usual way for Kernel Density Estimation. The assumption that the sampled points are uncorrelated seems a bit weird, if not illogical at all. There is no relation between making distribution around points smooth and the spatial information. Doing this properly the estimator &lt;b style=""&gt;&lt;i style=""&gt;f(x)&lt;/i&gt;&lt;/b&gt; would be a sum of delta functions on points. But this is unacceptable, so the estimator is smoothed with Gaussians or some another kernels. Now if the smoothness (bandwidth) is big enough it is possible (depending on the kernel shape) that the middle is less safe than the end points. [For example see how the most dangerous place changes with the bandwidth parameter for the sum of 2 Gaussians.] In other words the probability in the middle adds equally from both sources and it can be greater than maximum probability from the source &lt;b style=""&gt;&lt;i style=""&gt;A&lt;/i&gt;&lt;/b&gt; plus probability from the source &lt;b style=""&gt;&lt;i style=""&gt;B&lt;/i&gt;&lt;/b&gt; at the point &lt;b style=""&gt;&lt;i style=""&gt;A&lt;/i&gt;&lt;/b&gt;.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;If the common kernel is taken for both points, then the most probable place for the third point is the middle, which leaves end points safest - with simple shape of the kernel the middle is the most dangerous place and the further you are from the middle the safe you are; regardless whether you stand right inside the shell hole &lt;b style=""&gt;&lt;i style=""&gt;A&lt;/i&gt;&lt;/b&gt; or &lt;b style=""&gt;&lt;i style=""&gt;B&lt;/i&gt;&lt;/b&gt;, or next to it.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Personally I would hide in 1/4 of the distance between &lt;b style=""&gt;&lt;i style=""&gt;A&lt;/i&gt;&lt;/b&gt; and &lt;b style=""&gt;&lt;i style=""&gt;B&lt;/i&gt;&lt;/b&gt; from the point &lt;b style=""&gt;&lt;i style=""&gt;A&lt;/i&gt;&lt;/b&gt; or &lt;b style=""&gt;&lt;i style=""&gt;B&lt;/i&gt;&lt;/b&gt;, i.e. in the middle between the end point &lt;b style=""&gt;&lt;i style=""&gt;A&lt;/i&gt;&lt;/b&gt; or &lt;b style=""&gt;&lt;i style=""&gt;B&lt;/i&gt;&lt;/b&gt; and the middle point. What kernel does satisfy this? I do not know.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1180133338141908412-118984390906616777?l=mazonka.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mazonka.blogspot.com/feeds/118984390906616777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1180133338141908412&amp;postID=118984390906616777' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/118984390906616777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/118984390906616777'/><link rel='alternate' type='text/html' href='http://mazonka.blogspot.com/2009/04/kernel-density-estimation-multikernel.html' title='Kernel Density Estimation: Multikernel and Bomb problem'/><author><name>mazonka</name><uri>http://www.blogger.com/profile/09621083083657692081</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02638659728506222082'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1180133338141908412.post-3352792137095366011</id><published>2009-01-28T19:27:00.000-08:00</published><updated>2009-01-28T19:30:37.608-08:00</updated><title type='text'>How I made new Microsoft C++ compiler work without Visual Studio installation</title><content type='html'>My task was to make minimalist compiler configuration running on a machine without installed Visual studio. This helps to work on C++ programs on any computer: copy your files, copy the compiler, and then compile and run. Below are the steps I did to make it working.&lt;br /&gt;&lt;br /&gt;1. I downloaded and installed free Visual C++ 2008 Express Edition&lt;br /&gt;http://www.microsoft.com/express/download/&lt;br /&gt;&lt;br /&gt;2. I created target directory d:\c15 and a file setvars.bat with the following content&lt;br /&gt;set C15=d:\c15&lt;br /&gt;set PATH=%C15%\bin;%PATH%&lt;br /&gt;set INCLUDE=%C15%\include&lt;br /&gt;set LIB=%C15%\lib&lt;br /&gt;&lt;br /&gt;3. I copied files&lt;br /&gt;&lt;br /&gt;mspdb80.dll&lt;br /&gt;from "Microsoft Visual Studio 9.0\Common7\IDE\"  into "d:\c15\bin\"&lt;br /&gt;&lt;br /&gt;c1.dll, c1xx.dll, c2.dll, cl.exe, link.exe&lt;br /&gt;from "Microsoft Visual Studio 9.0\VC\bin\" into "d:\c15\bin\"&lt;br /&gt;&lt;br /&gt;whole directory 1033&lt;br /&gt;from "Microsoft Visual Studio 9.0\VC\bin\" into "d:\c15\bin\"&lt;br /&gt;&lt;br /&gt;whole directory include&lt;br /&gt;from "Microsoft Visual Studio 9.0\VC\" into "d:\c15\"&lt;br /&gt;&lt;br /&gt;libcmt.lib, libcpmt.lib, oldnames.lib&lt;br /&gt;from "Microsoft Visual Studio 9.0\VC\lib\" into "d:\c15\lib\"&lt;br /&gt;&lt;br /&gt;Kernel32.Lib&lt;br /&gt;from "Microsoft SDKs\Windows\v6.0A\Lib" into "d:\c15\lib\"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. At this moment I was able to compile C++ programs with the copied compiler. I started cmd, cleaned the PATH variable, run setvars (step 1), and cl.exe compiled the C++ and C programs. But when I moved this directory to the computer which does not have Visual studio installed then cl.exe failed with a message: "The system cannot execute the specified program".&lt;br /&gt;&lt;br /&gt;5. I looked into cl.exe binary searching for the string "manifest". That part is XML. Noted the lines&lt;br /&gt;name="Microsoft.VC90.CRT" version="9.0.21022.8"&lt;br /&gt;Note: version reported by cl.exe is different!&lt;br /&gt;&lt;br /&gt;6. I went into C:\WINDOWS\WinSxS\Manifests and found file&lt;br /&gt;Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375.manifest&lt;br /&gt;Note: version numbers match!&lt;br /&gt;&lt;br /&gt;7. I copied this file into "d:\c15\bin" directory and renamed it into&lt;br /&gt;Microsoft.VC90.CRT.manifest&lt;br /&gt;Note: the name in step 1, the name of the file, and the name inside this file is the same "Microsoft.VC90.CRT"!&lt;br /&gt;&lt;br /&gt;8. I went into C:\WINDOWS\WinSxS and found directory&lt;br /&gt;x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375&lt;br /&gt;Note: version match!&lt;br /&gt;&lt;br /&gt;9. Copied all dlls from this directory into "d:\c15\bin" directory.&lt;br /&gt;&lt;br /&gt;Voila, it worked in Virtual Windows with no Visual Studio installation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1180133338141908412-3352792137095366011?l=mazonka.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mazonka.blogspot.com/feeds/3352792137095366011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1180133338141908412&amp;postID=3352792137095366011' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/3352792137095366011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/3352792137095366011'/><link rel='alternate' type='text/html' href='http://mazonka.blogspot.com/2009/01/how-i-made-new-microsoft-c-compiler.html' title='How I made new Microsoft C++ compiler work without Visual Studio installation'/><author><name>mazonka</name><uri>http://www.blogger.com/profile/09621083083657692081</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02638659728506222082'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1180133338141908412.post-3361875175291086849</id><published>2008-12-09T20:41:00.000-08:00</published><updated>2008-12-09T20:43:26.557-08:00</updated><title type='text'>Intelligent design</title><content type='html'>Biological life is so complex that it must be created by intelligent design. On the other hand, it is so complex that no sane intelligent creature would dare to engineer it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1180133338141908412-3361875175291086849?l=mazonka.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mazonka.blogspot.com/feeds/3361875175291086849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1180133338141908412&amp;postID=3361875175291086849' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/3361875175291086849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/3361875175291086849'/><link rel='alternate' type='text/html' href='http://mazonka.blogspot.com/2008/12/intelligent-design.html' title='Intelligent design'/><author><name>mazonka</name><uri>http://www.blogger.com/profile/09621083083657692081</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02638659728506222082'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1180133338141908412.post-19502618626989670</id><published>2008-12-09T17:49:00.000-08:00</published><updated>2008-12-09T20:18:33.721-08:00</updated><title type='text'>Simplistic View On Evolution</title><content type='html'>&lt;table border="1"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ocEfEzRbJg0/ST83jaUKRuI/AAAAAAAAAA4/xGQEMdZ93eY/s1600-h/01env.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 200px;" src="http://1.bp.blogspot.com/_ocEfEzRbJg0/ST83jaUKRuI/AAAAAAAAAA4/xGQEMdZ93eY/s320/01env.PNG" alt="" id="BLOGGER_PHOTO_ID_5277998369800341218" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This is the environment.&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ocEfEzRbJg0/ST84Z4_XsII/AAAAAAAAABA/KWZaC_s2kII/s1600-h/02org.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 200px;" src="http://4.bp.blogspot.com/_ocEfEzRbJg0/ST84Z4_XsII/AAAAAAAAABA/KWZaC_s2kII/s320/02org.PNG" alt="" id="BLOGGER_PHOTO_ID_5277999305747574914" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;These are the organisms.&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ocEfEzRbJg0/ST85NcREFJI/AAAAAAAAABI/GhTgZ_llEMg/s1600-h/03phe.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 200px;" src="http://3.bp.blogspot.com/_ocEfEzRbJg0/ST85NcREFJI/AAAAAAAAABI/GhTgZ_llEMg/s320/03phe.PNG" alt="" id="BLOGGER_PHOTO_ID_5278000191390356626" border="0" /&gt;&lt;/a&gt;This is the phenotype.&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ocEfEzRbJg0/ST88KeJ_nBI/AAAAAAAAABQ/TPa5r-Yij4M/s1600-h/04mut.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 200px;" src="http://2.bp.blogspot.com/_ocEfEzRbJg0/ST88KeJ_nBI/AAAAAAAAABQ/TPa5r-Yij4M/s320/04mut.PNG" alt="" id="BLOGGER_PHOTO_ID_5278003438892850194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;These are mutations. The phenotype does not much change.&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ocEfEzRbJg0/ST885kyKyFI/AAAAAAAAABY/gf2J4kqqfFU/s1600-h/05exp.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 200px;" src="http://2.bp.blogspot.com/_ocEfEzRbJg0/ST885kyKyFI/AAAAAAAAABY/gf2J4kqqfFU/s320/05exp.PNG" alt="" id="BLOGGER_PHOTO_ID_5278004248125818962" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Genotype explores the environment, learns about the limits suitable for living. If the environment (including diseases) does not change, the genotype stays in steady state.&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ocEfEzRbJg0/ST8-NQ1BZyI/AAAAAAAAABg/AKw_GAW2Sx8/s1600-h/06cha.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 200px;" src="http://4.bp.blogspot.com/_ocEfEzRbJg0/ST8-NQ1BZyI/AAAAAAAAABg/AKw_GAW2Sx8/s320/06cha.PNG" alt="" id="BLOGGER_PHOTO_ID_5278005685878089506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The environment changes. Inbreeding occurs (sexual), mutations become obvious, phenotype swells.&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ocEfEzRbJg0/ST9AnXJI-vI/AAAAAAAAABo/CbLDQdRNa88/s1600-h/07sea.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 200px;" src="http://3.bp.blogspot.com/_ocEfEzRbJg0/ST9AnXJI-vI/AAAAAAAAABo/CbLDQdRNa88/s320/07sea.PNG" alt="" id="BLOGGER_PHOTO_ID_5278008333272939250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Genes are in desperate search for new environment. New exists are found due to the memory obtained when the living conditions were good and stable.&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ocEfEzRbJg0/ST9BwP8DIJI/AAAAAAAAABw/7uM_zhHRAHw/s1600-h/08new.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 200px;" src="http://1.bp.blogspot.com/_ocEfEzRbJg0/ST9BwP8DIJI/AAAAAAAAABw/7uM_zhHRAHw/s320/08new.PNG" alt="" id="BLOGGER_PHOTO_ID_5278009585469431954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Two incompatible genotypes are now created.&lt;br /&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1180133338141908412-19502618626989670?l=mazonka.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mazonka.blogspot.com/feeds/19502618626989670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1180133338141908412&amp;postID=19502618626989670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/19502618626989670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/19502618626989670'/><link rel='alternate' type='text/html' href='http://mazonka.blogspot.com/2008/12/simplistic-view-on-evolution.html' title='Simplistic View On Evolution'/><author><name>mazonka</name><uri>http://www.blogger.com/profile/09621083083657692081</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02638659728506222082'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ocEfEzRbJg0/ST83jaUKRuI/AAAAAAAAAA4/xGQEMdZ93eY/s72-c/01env.PNG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1180133338141908412.post-7722328091213426068</id><published>2008-10-02T00:17:00.000-07:00</published><updated>2008-10-02T02:05:25.375-07:00</updated><title type='text'>Saccade hypothesis</title><content type='html'>Thinking about how the visual cortex works I came to the conclusion that the 'movies' must be produced by the cortex itself. This is to make sure that the changes of the picture are not the changes in the world. One example for this can be saccades. I started looking for more information about this subject and surprisingly found that the main reason for saccades is difference in retina resolution. I do not agree with this.&lt;br /&gt;&lt;br /&gt;According to the current belief the main reason for saccades of the human eye is that the central part of the retina, the fovea, plays a critical role in resolving objects. By moving the eye so that small parts of a scene can be sensed with greater resolution, body resources can be used more efficiently.&lt;br /&gt;&lt;br /&gt;In my opinion this is not the case. The main reason for saccades is building abstract invariant of the picture. In visual cortex the information propagates up the higher level by building more abstract notation of the picture. The voluntary changing of the picture is the way for the cortex to deduce the common information. The crucial role here is that the brain (cortex) knows that the real cause (objects being seen) does not change. So the cortex must be working differently when the picture coming from the retina changes due to external factors or changes due to internally motivated saccades.&lt;br /&gt;&lt;br /&gt;The memory prediction mechanism allows comparing the changed picture with the predicted according to a particular distance and direction of the saccade. This is done in partly learned memory. But the same mechanism works as finding the nvariants in the changing pictures produced by slightly different view.&lt;br /&gt;&lt;br /&gt;The analogy of this process is the theory and the experiment. The theory is proven by different experiments giving the different results but fitting in the theory prediction. The assumption is that the essence does not change with the experiments.&lt;br /&gt;&lt;br /&gt;"Saccades are a widespread phenomenon across animals with image-forming visual systems. They have been observed in animals across three phyla, including animals that do not have a fovea (most vertebrates do not) and animals that cannot move their eyes independently of their head (such as insects)." [Land, MF. "Motion and vision: why animals move their eyes". J Comp Physiol A. 1999 185:341–352.] Although in this paper the author argues that the reason for saccades "is the need to avoid the blur that results from the long response time of the photoreceptors".&lt;br /&gt;&lt;br /&gt;Assuming that building image invariant is the main reason for saccades, one would come to a conclusion that the other voluntary picture changes should happen in the eye. Indeed, some animals allow their eye rotate [above paper]. Why human eyes do not rotate I do not know. Maybe our vision system is complex enough (3D) to allow less emphasis on obtaining picture.&lt;br /&gt;&lt;br /&gt;Sensory cortex and saccade motor cortex must be closely coupled. Because the sensory cortex governs the motor cortex and motor cortex has to feed back its lower level information to sensory cortex. There should be many effects which can easily be tested by experiments to support this hypothesis.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1180133338141908412-7722328091213426068?l=mazonka.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mazonka.blogspot.com/feeds/7722328091213426068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1180133338141908412&amp;postID=7722328091213426068' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/7722328091213426068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/7722328091213426068'/><link rel='alternate' type='text/html' href='http://mazonka.blogspot.com/2008/10/saccade-hypothesis.html' title='Saccade hypothesis'/><author><name>mazonka</name><uri>http://www.blogger.com/profile/09621083083657692081</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02638659728506222082'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1180133338141908412.post-2465517752891392521</id><published>2008-09-24T18:23:00.000-07:00</published><updated>2008-09-24T19:20:53.793-07:00</updated><title type='text'>How to measure chaos</title><content type='html'>This is to propose the way to measure chaos in a computational system.&lt;br /&gt;&lt;br /&gt;I studied the reversible algorithms of arithmetic multiplication (factorization problem). I have found a very interesting fact that when the information describing the ensemble grows fast, this exact process is difficult to reverse, i.e. find feasible computation reverse algorithm. Let me explain by example of computation.&lt;br /&gt;&lt;br /&gt;Suppose there is an initial set of &lt;span style="font-style:italic;"&gt;N&lt;/span&gt; bits {x}. If all bits are independent and can initially be set to either 0 or 1, then this is the ensemble of 2&lt;sup&gt;N&lt;/sup&gt; states. Now suppose we have a function G describing all forbidden states of the ensemble. [The same up to inversion arguments would go with all allowable states.] Initially G=0, since all values of x are allowed.&lt;br /&gt;&lt;br /&gt;Next suppose that we have a computational process which is done in atomic steps. Each step can be one of two kinds: either creating a new bit or forgetting an old. For example, add a new bit y&lt;sub&gt;1&lt;/sub&gt;=x&lt;sub&gt;1&lt;/sub&gt;&amp;x&lt;sub&gt;2&lt;/sub&gt; (let us signify &amp; as &lt;span style="font-style:italic;"&gt;AND&lt;/span&gt; operation, | as &lt;span style="font-style:italic;"&gt;OR&lt;/span&gt;, and ^ as &lt;span style="font-style:italic;"&gt;XOR&lt;/span&gt;). The G function becomes y&lt;sub&gt;1&lt;/sub&gt;^(x&lt;sub&gt;1&lt;/sub&gt;&amp;x&lt;sub&gt;2&lt;/sub&gt;) if previous G=0, or in general case G&lt;sub&gt;next&lt;/sub&gt;=G&lt;sub&gt;previous&lt;/sub&gt;|y&lt;sub&gt;1&lt;/sub&gt;^(x&lt;sub&gt;1&lt;/sub&gt;&amp;x&lt;sub&gt;2&lt;/sub&gt;). Forgetting a bit x&lt;sub&gt;2&lt;/sub&gt; would make G&lt;sub&gt;next&lt;/sub&gt;=G&lt;sub&gt;x&lt;sub&gt;2&lt;/sub&gt;=0&lt;/sub&gt;&amp;G&lt;sub&gt;x&lt;sub&gt;2&lt;/sub&gt;=1&lt;/sub&gt;, where G&lt;sub&gt;x2=0&lt;/sub&gt; is G with x&lt;sub&gt;2&lt;/sub&gt; replaced with 0.&lt;br /&gt;&lt;br /&gt;It seems easy to keep G function defined while doing the calculation process. This is important because while we know G function the calculation is immediately reversible – it is easy at each backward step find out the previous forgotten bit. But the problem appears when G function becomes impractically huge in representation. This happens, for example, with arithmetic multiplication. The only way to attack this problem is to find symmetries in the function so to make it computationally practical, smaller.&lt;br /&gt;&lt;br /&gt;Suppose that with a given intellectual strength we find the smallest representation of G function. This function can be written as a sequence of the atomic steps A=B&amp;C, where A,B,C are bits or their negations (say A=B|C is ~A=~B&amp;~C). The negation is not an operation, rather a perception of the bit. With this representation the function becomes measurable in number of atomic computational steps.&lt;br /&gt;&lt;br /&gt;That makes it very natural to define the chaos as the increase of the size of the function G. Note that the definition includes the intellectual strength of the observer, which seems natural for the definition of chaos. Also it qualitatively resembles Lyapunov exponents as chaos measure.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1180133338141908412-2465517752891392521?l=mazonka.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mazonka.blogspot.com/feeds/2465517752891392521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1180133338141908412&amp;postID=2465517752891392521' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/2465517752891392521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/2465517752891392521'/><link rel='alternate' type='text/html' href='http://mazonka.blogspot.com/2008/09/how-to-measure-chaos.html' title='How to measure chaos'/><author><name>mazonka</name><uri>http://www.blogger.com/profile/09621083083657692081</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02638659728506222082'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1180133338141908412.post-1386038541745819118</id><published>2008-09-14T22:13:00.000-07:00</published><updated>2008-09-14T22:15:33.914-07:00</updated><title type='text'>Precise theory for Artificial Intelligence</title><content type='html'>Every research area has its own language. But there is a distinction between precise and non-precise theories describing the areas of interest. In physics, for example, the language is mathematical formulas. And this is a precise formal language; because formulae help, in general, to solve physical problems even if people applying the formulae have different interpretation of them. We can argue on the definition of Time and Enegry. But when it comes to the formula with &lt;span style="font-style:italic;"&gt;E&lt;/span&gt; and &lt;span style="font-style:italic;"&gt;t&lt;/span&gt;, everyone will get the same result regardless of personal (internal) understanding of these concepts.&lt;br /&gt;&lt;br /&gt;Completely different situation is with Artificial Intelligence research area. Here are concepts of information, memory, awareness giving completely different philosophical theories depending on how the concepts are being understood. There is so big variety of opinions that it is difficult to call this area of research scientific. Nevertheless some groups of people sharing the same beliefs are able to communicate and even to make some progress in ideas. But with no practical results. Obviously now the understanding of the problem in question is different than ten years ago. Hopefully a simple model can be built in some near future, just to give the common basis for terminology used in this field.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1180133338141908412-1386038541745819118?l=mazonka.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mazonka.blogspot.com/feeds/1386038541745819118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1180133338141908412&amp;postID=1386038541745819118' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/1386038541745819118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/1386038541745819118'/><link rel='alternate' type='text/html' href='http://mazonka.blogspot.com/2008/09/precise-theory-for-artificial.html' title='Precise theory for Artificial Intelligence'/><author><name>mazonka</name><uri>http://www.blogger.com/profile/09621083083657692081</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02638659728506222082'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1180133338141908412.post-4505206871478509764</id><published>2008-07-15T12:30:00.000-07:00</published><updated>2008-07-15T12:34:25.366-07:00</updated><title type='text'>Beating the nature</title><content type='html'>We are not cleverer than the nature. Just sometimes the nature does not understand us.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1180133338141908412-4505206871478509764?l=mazonka.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mazonka.blogspot.com/feeds/4505206871478509764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1180133338141908412&amp;postID=4505206871478509764' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/4505206871478509764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/4505206871478509764'/><link rel='alternate' type='text/html' href='http://mazonka.blogspot.com/2008/07/beating-nature.html' title='Beating the nature'/><author><name>mazonka</name><uri>http://www.blogger.com/profile/09621083083657692081</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02638659728506222082'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1180133338141908412.post-3658179119100613748</id><published>2008-01-08T20:14:00.000-08:00</published><updated>2008-01-08T20:21:29.563-08:00</updated><title type='text'></title><content type='html'>When we get together our intellect does not add up, but our stupidity does.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1180133338141908412-3658179119100613748?l=mazonka.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mazonka.blogspot.com/feeds/3658179119100613748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1180133338141908412&amp;postID=3658179119100613748' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/3658179119100613748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/3658179119100613748'/><link rel='alternate' type='text/html' href='http://mazonka.blogspot.com/2008/01/when-we-get-together-our-intellect-does.html' title=''/><author><name>mazonka</name><uri>http://www.blogger.com/profile/09621083083657692081</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02638659728506222082'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1180133338141908412.post-6723745755975827158</id><published>2007-12-09T14:43:00.000-08:00</published><updated>2007-12-09T15:56:28.158-08:00</updated><title type='text'>Number of features grows logarithmically</title><content type='html'>The main problem in big software projects is complexity growing as the project unfolds. Generally when the main architecture is ready and the product has been started the number of architectural features grows with the size of the code. The speed of growing, though, is not constant. At the beginning it is almost linear and equal to time multiplied by team. But the longer it lasts, the bigger size of the code, the more complex is the product to develop further. From my personal experience the time spent to develop a new feature of average size increases by an exponential law. [Features are meant to be architectural but perceived in complexity from the customer point of view.] This idea gives a rule to predict milestones and practical limit of the product. For example, if the first 10 features took 4 days to develop and the second 10 new features took another 5 days to develop, then to implement 50 features will take 7 weeks and to implement 100 features 27 weeks. [Formula used is y=F*ln(kt+1). In the example above we find that k=1/16 and F=10/ln1.25]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1180133338141908412-6723745755975827158?l=mazonka.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mazonka.blogspot.com/feeds/6723745755975827158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1180133338141908412&amp;postID=6723745755975827158' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/6723745755975827158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/6723745755975827158'/><link rel='alternate' type='text/html' href='http://mazonka.blogspot.com/2007/12/number-of-features-grows.html' title='Number of features grows logarithmically'/><author><name>mazonka</name><uri>http://www.blogger.com/profile/09621083083657692081</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02638659728506222082'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1180133338141908412.post-4229982671725900319</id><published>2007-09-06T20:00:00.000-07:00</published><updated>2007-09-06T20:04:17.317-07:00</updated><title type='text'>On coding practices</title><content type='html'>Coding rules are written for particular community of people who intend to review, maintain, or use the code. It is called coding standard. But there are 2 other important sources which influence the style. These are taste and simplicity. I disagree on that the coding standard, whatever it is, has to be followed blindly.&lt;br /&gt;&lt;br /&gt;So 3 points influencing the style are:&lt;br /&gt;1. Personal taste: You personal choice&lt;br /&gt;2. Simplicity/clarity: Do not sacrifice clarity to your or other people's taste&lt;br /&gt;3. Community: What most (other) people expect to see when looking at the code.&lt;br /&gt;&lt;br /&gt;My personal preferences are:&lt;br /&gt;1. Find which community is likely to work later with the code.&lt;br /&gt;2. Follow coding rules if they do not disagree with your taste and code clarity.&lt;br /&gt;3. If a rule is not good from your point of view, decide which one: your taste or community is more important in that context.&lt;br /&gt;4. If a rule makes code less simple or clear, ignore the rule. [This is very subjective so be prepare to stand for your opinion]&lt;br /&gt;&lt;br /&gt;19.04.2007&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1180133338141908412-4229982671725900319?l=mazonka.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mazonka.blogspot.com/feeds/4229982671725900319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1180133338141908412&amp;postID=4229982671725900319' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/4229982671725900319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/4229982671725900319'/><link rel='alternate' type='text/html' href='http://mazonka.blogspot.com/2007/09/on-coding-practices.html' title='On coding practices'/><author><name>mazonka</name><uri>http://www.blogger.com/profile/09621083083657692081</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02638659728506222082'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1180133338141908412.post-7907522896056723345</id><published>2007-08-28T19:47:00.000-07:00</published><updated>2007-08-28T20:01:00.598-07:00</updated><title type='text'>Console/Window executables</title><content type='html'>Simple trick to suppress console window to pop up is to change the flag 03 to 02 as it is done in the following example (in case you forgot 03 is ctrl-C and 02 is ctrl-B):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;0000: 4D 5A 90 00 03 00 00 00 04 00 00 00 FF FF 00 00  MZ_ ♥   ♦   яя&lt;br /&gt;0010: B8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00  ё       @&lt;br /&gt;0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br /&gt;0030: 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00              _&lt;br /&gt;0040: 0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68  ♫▼є♫ _○Н!ё☺LН!Th&lt;br /&gt;0050: 69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F  is program canno&lt;br /&gt;0060: 74 20 62 65 20 72 75 6E 20 69 6E 20 44 4F 53 20  t be run in DOS&lt;br /&gt;0070: 6D 6F 64 65 2E 0D 0D 0A 24 00 00 00 00 00 00 00  mode.♪♪◙$&lt;br /&gt;0080: 50 45 00 00 4C 01 12 00 7B DA D4 46 00 68 5E 00  PE  L☺↕ {ЪФF h^&lt;br /&gt;0090: 34 1F 00 00 E0 00 06 01 0B 01 02 38 00 50 0A 00  4▼  а ♠☺♂☺☻8 P◙&lt;br /&gt;00A0: 00 1C 10 00 00 F8 20 00 A0 12 00 00 00 10 00 00   ∟►  ш   ↕   ►&lt;br /&gt;00B0: 00 60 0A 00 00 00 40 00 00 10 00 00 00 02 00 00   `◙   @  ►   ☻&lt;br /&gt;00C0: 04 00 00 00 01 00 00 00 04 00 00 00 00 00 00 00  ♦   ☺   ♦&lt;br /&gt;00D0: 00 F0 7F 00 00 06 00 00 4A 86 63 00 03 00 00 00   р⌂  ♠  J┼c ♥&lt;br /&gt;00E0: 00 00 20 00 00 10 00 00 00 00 10 00 00 10 00 00       ►    ►  ►&lt;br /&gt;00F0: 00 00 00 00 10 00 00 00 00 90 30 00 22 46 00 00      ►    _0 "F&lt;br /&gt;0100: 00 E0 30 00 98 20 00 00 00 00 00 00 00 00 00 00   а0 _&lt;br /&gt;0110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br /&gt;0120: 00 10 31 00 88 4B 00 00 00 00 00 00 00 00 00 00   ►1 _K&lt;br /&gt;0130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br /&gt;0140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br /&gt;0150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br /&gt;0160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This flag is at the end of the line &lt;tt&gt;00D0&lt;/tt&gt;. This flag is not in absolute offset so you may try to guess.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1180133338141908412-7907522896056723345?l=mazonka.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mazonka.blogspot.com/feeds/7907522896056723345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1180133338141908412&amp;postID=7907522896056723345' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/7907522896056723345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/7907522896056723345'/><link rel='alternate' type='text/html' href='http://mazonka.blogspot.com/2007/08/consolewindow-executables.html' title='Console/Window executables'/><author><name>mazonka</name><uri>http://www.blogger.com/profile/09621083083657692081</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02638659728506222082'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1180133338141908412.post-5729944049178402961</id><published>2007-08-14T20:58:00.000-07:00</published><updated>2007-08-14T20:59:34.594-07:00</updated><title type='text'>Software complexity limit</title><content type='html'>Software development is a sequential process. The product is always being developed bit by bit. The main problem arises when new bits added to the future product break the previous functionality. This is called complexity limit. Once the product developed reaches its complexity limit no reasonable development becomes possible. The complexity limit is obviously subject to both the design and the process. The difference between them is that if the design adds absolute value in fighting with complexity the process adds relative. That means that the process can leverage the extent of the final product, but cannot define it. As example, suppose that the product is 100 percent functionality and with some given design the complexity limit appears at about 50 percent. Next suppose that the process may leverage the extent by 20 percent of the reached extent. So the final product will have 50+50*0.2 = 60 percent of desired functionality. Now if the design is poor and allows going only up to say 20 percent, then the gain obtained from the process is 20*0.2 = 4 percent (totalling 24). If the design is good allowing 80 percent with no process, then the process will add 16 percent (totalling 96).    &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;Under design I mean here all development solutions on the whole scale from architectural to coding. Under process I mean here the standards accepted by the development team.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1180133338141908412-5729944049178402961?l=mazonka.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mazonka.blogspot.com/feeds/5729944049178402961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1180133338141908412&amp;postID=5729944049178402961' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/5729944049178402961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/5729944049178402961'/><link rel='alternate' type='text/html' href='http://mazonka.blogspot.com/2007/08/software-complexity-limit.html' title='Software complexity limit'/><author><name>mazonka</name><uri>http://www.blogger.com/profile/09621083083657692081</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02638659728506222082'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1180133338141908412.post-6174306420423749974</id><published>2007-07-25T16:22:00.001-07:00</published><updated>2007-08-14T21:00:38.668-07:00</updated><title type='text'>Notes on programming</title><content type='html'>&lt;h3&gt;&lt;span style="font-size:100%;"&gt;Programming is a fight against the complexity&lt;/span&gt;&lt;/h3&gt;&lt;br /&gt;When a program is being developed its complexity may increase or remain the same. We can define the program complexity as the complexity of its most complex component (the component decomposition can be seen as a separate component itself). It would be an interesting question what kind of program modifications increase the complexity and what do not.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;h3&gt;&lt;span style="font-size:100%;"&gt;Complexity multiplies but capacity does not sum up&lt;/span&gt;&lt;/h3&gt;&lt;br /&gt;A number of people cannot create a program which is more complex than at least one of these people can understand. From the other hand, linearly adding a new component of lesser complexity that already exists does not increase the overall complexity. Keyword here is “linearly”, which means that complexity of the decomposition (referring to the level on which the component added) does not increase as well, or increase so as not to outweigh the overall complexity. But making the new component interdependent with existing components opens new dimensions in internal states of the program (non-linearity) that is multiplying the complexity.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;&lt;span style="font-size:100%;"&gt;Architecture&lt;/span&gt;&lt;/h3&gt;&lt;br /&gt;Each character of the code has its own path to the top level concept of the program. Top level concept of the program lies on the abstract layers braking up the program architecture into independent components, which are lying on lower level layers and so on until we reach each separate character of the code.&lt;br /&gt;Understanding this path from the bottom level to the top level is architectural awareness. It is important that the programmer has one. Otherwise the complexity of the product can grow incredibly fast.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;&lt;span style="font-size:100%;"&gt;Push, pop, and pull requirements&lt;/span&gt;&lt;/h3&gt;&lt;br /&gt;The requirements evolve from the customer to the final coder. It is not possible to imagine that the programmer can develop a program targeting each customer requirement individually.&lt;br /&gt;&lt;br /&gt;The requirements can be generally grouped into 3 categories.&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt; Customer requirements (Pull). Something which defines the product.&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Architect requirements (Pop). The model which can be implemented in software and is proven to mimic the customer definition of the product. These requirements are conditions to components and their interaction.&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Code requirements (Push). Testable functionality of the program.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;Push requirements are satisfied when the program undergoes a number of scenarios defined the requirements. This can be done by auto scripts validating expected output.&lt;br /&gt;Pop requirements are satisfied when the program conforms to the defined component interfaces. This can be done by documented and frozen APIs.&lt;br /&gt;Pull requirements are satisfied automatically given that the model is adequate to the required product. These can be customer acceptance tests, but they would not be a part of the product development.&lt;br /&gt;&lt;br /&gt;Failure to break the requirements into these 3 categories and treat the customer requirements as the requirements to the software leads to ad hoc style programming. Programs written in this way are difficult to modify and they are sources of plentiful hard tracking bugs. This can work only for small programs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1180133338141908412-6174306420423749974?l=mazonka.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mazonka.blogspot.com/feeds/6174306420423749974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1180133338141908412&amp;postID=6174306420423749974' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/6174306420423749974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/6174306420423749974'/><link rel='alternate' type='text/html' href='http://mazonka.blogspot.com/2007/07/notes-on-programming.html' title='Notes on programming'/><author><name>mazonka</name><uri>http://www.blogger.com/profile/09621083083657692081</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02638659728506222082'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1180133338141908412.post-7567707697983662664</id><published>2007-05-09T19:35:00.000-07:00</published><updated>2007-05-09T19:39:05.833-07:00</updated><title type='text'>Visual Studio 2005 Express, OpenGL and Glut</title><content type='html'>&lt;p&gt;Visual Studio 2005 Express does not have SDK. Instead of installing huge SDK what I did to make Visual Studio 2005 Express to run with openGl and Glut is the following.&lt;/p&gt;&lt;p&gt;1. Downloaded and unpacked&lt;br /&gt;glutdlls37beta.zip&lt;br /&gt;and&lt;br /&gt;opengl95.exe&lt;br /&gt;(ftp://ftp.microsoft.com/softlib/mslfiles/opengl95.exe)&lt;/p&gt;&lt;p&gt;2. copied glut32.dll into windows directory&lt;/p&gt;&lt;p&gt;3. created dir GL in include&lt;br /&gt;in my case it was&lt;br /&gt;C:\Program Files\Microsoft Visual Studio 8\VC\include\GL&lt;/p&gt;&lt;p&gt;4. copied *.h files in there&lt;/p&gt;&lt;p&gt;5. copied *.lib files in lib directory&lt;br /&gt;in my case it was in&lt;br /&gt;C:\Program Files\Microsoft Visual Studio 8\VC\lib&lt;/p&gt;&lt;p&gt;Also have a look at:&lt;br /&gt;&lt;a target="_blank" href="http://www.opengl.org/resources/faq/technical/gettingstarted.htm"&gt;http://www.opengl.org/resources/faq/technical/gettingstarted.htm&lt;/a&gt;&lt;br /&gt;(2.060 What do I need to compile and run OpenGL programs?)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1180133338141908412-7567707697983662664?l=mazonka.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mazonka.blogspot.com/feeds/7567707697983662664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1180133338141908412&amp;postID=7567707697983662664' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/7567707697983662664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1180133338141908412/posts/default/7567707697983662664'/><link rel='alternate' type='text/html' href='http://mazonka.blogspot.com/2007/05/visual-studio-2005-express-opengl-and.html' title='Visual Studio 2005 Express, OpenGL and Glut'/><author><name>mazonka</name><uri>http://www.blogger.com/profile/09621083083657692081</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02638659728506222082'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry></feed>