<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-930406498983511335</id><updated>2011-10-18T09:11:34.290+01:00</updated><category term='c#'/><category term='slackware'/><category term='.net'/><category term='software design'/><category term='csharp'/><category term='posix'/><category term='dotnet'/><category term='mutex'/><category term='thread'/><category term='vmware'/><title type='text'>How does it just 'be'?</title><subtitle type='html'>about software development and other less enjoyable stuff.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>51</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-4768578664600818713</id><published>2011-10-18T09:11:00.001+01:00</published><updated>2011-10-18T09:11:34.309+01:00</updated><title type='text'>Throw-catch programming</title><content type='html'>Sometimes people say it's not good to encode your programming logic in exception terms. I wonder why not. We should just love and embrace exceptions.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;&lt;b&gt;&lt;div&gt;class CounterException : Exception&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;public readonly int Index;&lt;/div&gt;&lt;div&gt;public readonly int Max;&lt;/div&gt;&lt;div&gt;public CounterException(int index, int max)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;this.Index = index;&lt;/div&gt;&lt;div&gt;this.Max = max;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;public Exception Next&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;get&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;if (Index == Max)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;return new FinishedCountingException(Max);&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;else&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;Console.WriteLine("Count = " + Index);&lt;/div&gt;&lt;div&gt;return new CounterException(Index + 1, Max);&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;class FinishedCountingException : Exception&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;public readonly int Bound;&lt;/div&gt;&lt;div&gt;public FinishedCountingException(int b)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;Bound = b;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;class Program&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;static void Main(string[] args)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;Exception e = new CounterException(0, 10);&lt;/div&gt;&lt;div&gt;mytry:&lt;/div&gt;&lt;div&gt;try&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;throw e;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;catch (CounterException ex)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;e = ex.Next;&lt;/div&gt;&lt;div&gt;goto mytry;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;catch (FinishedCountingException ex)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;Console.WriteLine("Finished counting to " + ex.Bound);&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;Console.ReadKey();&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;/b&gt;&lt;/span&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/930406498983511335-4768578664600818713?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/4768578664600818713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=4768578664600818713' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/4768578664600818713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/4768578664600818713'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2011/10/throw-catch-programming.html' title='Throw-catch programming'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-5606881924736106469</id><published>2011-02-14T23:04:00.003Z</published><updated>2011-02-15T00:04:54.075Z</updated><title type='text'>How I would like the software to work.</title><content type='html'>As a developer and naturally a user of software, these are the primary general feature points I would like all the software in the world to have.&lt;br /&gt;&lt;br /&gt;I realize these things I will ask for are definitely possible and practiced in various platforms with extensive number of technologies, but I want to be able to take them for granted for all the software out there. Whether they'll be implemented in lower level systems like operating systems, or will they just be some commitee standards, I don't care. Just like almost every interactive software nows what keyboard is, I want them to recognize these notions as well.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1. Generic interaction abstraction.&lt;/span&gt; With all these new mobile devices and different interaction methods, we need a way to make our applications work on all these. This is not only a cross-platform development tool like Java, or being able to run a piece of code on different hardware. But it's a way to smartly adapt these applications to those devices' interaction capabilities. Some devices have double touchscreen (&lt;a href="http://www.engadget.com/2009/03/03/hands-on-with-asus-dual-panel-touchscreen-pc-at-cebit/"&gt;see here&lt;/a&gt;), some devices have a dialer-keypad on them. Developers should make use of a framework with extensive dictionary of interaction technologies available, to make something roughly like this possible:&lt;br /&gt;Step 1: This app is made with Java, so it'll work everywhere with Java runtime.&lt;br /&gt;Step 2: This app preferably uses multi-touch interface with three input points.&lt;br /&gt;Step 3: If the system doesn't have a multi-touch interface with three input points, the app can fallback to a traditional mouse-pointer interaction system, but then it'll put a few buttons on the corner of the screen to make up for the multi-touch capability.&lt;br /&gt;Step 4: If the system doesn't have any pointer input available at all, the app supports all the features by using only arrow keys on the keyboard. Even if the user experience is marginally distressed, features are still available.&lt;br /&gt;Step 5: The app ideally uses a 30-hz 16M-colour screen. But if the screen this system has is only a 0.5-hz e-ink screen, let the app know that so it can adapt the screen-layout in a way that will not require as many screen refreshes.&lt;br /&gt;Step 6: The app ideally uses a 3D surround sound system for sound output. But if it's not available, stereo will do. Also, if a earphone is available, let the app know so it can make use of its auditory illusion tricks to fake 3D sound. If only mono sound is available, just don't run the app because it won't make any sense. &lt;br /&gt;&lt;br /&gt;Yes, this should all be available within single development platform, preferably in a declarative way. Instead of porting everywhere, we can just define how our app translates to different devices' interaction ways and the platform (/middleware) will do the rest.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2. Application hibernation.&lt;/span&gt; As a user I should be able to hibernate a running service or GUI application with a single click, and it should be saved in a persistent memory like a harddisk. All the visual state and data, everything. Then I should be able to revive it back all with a single command, down to a half-way mouse click event that was about to happen. Again, this is surely possible via various technologies, but still we don't see any applications that can do this. Even firefox reloads every tab when you restart using the option "save tabs". It goes only half the way.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3. Dependency injection in a broader scale.&lt;/span&gt; How do we integrate our applications? We use configuration files, environment variables (the PATH god), registry entries. This is all practical but hassly and ridiculous at the end. I want something like unix terminals' nice "pipe" (|) feature or microsoft console's similar (&gt;) sign. But not only for forwarding the standard input/output streams, for all the kinds of multi-part or sophisticated, synchronous or asynchronous inputs and outputs an application can process or present. Something between dependency injection frameworks, activex guids, mime type-related default applications, somewhere over there. Maybe something like this:&lt;br /&gt;Rule 1: Dear firefox, please don't try to save my passwords on yourself, just interface with this awesome little app that can do it for you. Safari, please also do the same. (assuming that little app supports (let's say) IWebPasswordsStore. &lt;br /&gt;Rule 2: Dear system, when that little app says it wants to write to persistent storage, it just wants to use my encrypted online virtual drive associated with my here-registered google [:)] account.&lt;br /&gt;Rule 3: Dear system, give this powerpoint application a secondary monitor so it can present the slides on that monitor. But I don't really have a second monitor, I just want those slides to show up on my remote classrooms projector where I am connected with skype.&lt;br /&gt;&lt;br /&gt;Am I just flying too high?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-5606881924736106469?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/5606881924736106469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=5606881924736106469' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/5606881924736106469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/5606881924736106469'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2011/02/how-i-would-like-software-to-work.html' title='How I would like the software to work.'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-2413411609837095361</id><published>2010-09-22T22:35:00.004+01:00</published><updated>2010-09-22T22:46:35.533+01:00</updated><title type='text'>One to one meetings</title><content type='html'>This is a brilliant element for software team managers. While I was working for &lt;a href="http://www.realtimeworlds.com"&gt;Realtime Worlds&lt;/a&gt;, we used to do these with my manager David Lofthouse. These meetings provide a lot of friendliness and comfort between the manager and managees.&lt;br /&gt;&lt;br /&gt;Every week (or every other week) at the same time, 15 min-ish. Most of the time, there was not much to talk about, except the occasional "recently I have been having isolated tasks, I would like to work more together with people" and David would assign me tasks accordingly where possible. Read about 1:1 meetings from Michael Lopp:&lt;br /&gt;&lt;a href="http://www.randsinrepose.com/archives/2010/09/22/the_update_the_vent_and_the_disaster.html"&gt;http://www.randsinrepose.com/archives/2010/09/22/the_update_the_vent_and_the_disaster.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-2413411609837095361?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/2413411609837095361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=2413411609837095361' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/2413411609837095361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/2413411609837095361'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2010/09/one-to-one-meetings.html' title='One to one meetings'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-816953820330002301</id><published>2010-09-09T01:03:00.002+01:00</published><updated>2010-09-09T01:05:10.597+01:00</updated><title type='text'>Snake game with Canvas</title><content type='html'>Just made a little snake game using sensational Canvas control intruduced with html5:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gorkempacaci.name.tr/snake-canvas/"&gt;http://www.gorkempacaci.name.tr/snake-canvas/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;* Thanks to Weeble and Ozgur Akgun for bug reports.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-816953820330002301?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/816953820330002301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=816953820330002301' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/816953820330002301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/816953820330002301'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2010/09/snake-game-with-canvas.html' title='Snake game with Canvas'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-7211491040195307096</id><published>2010-06-16T12:01:00.002+01:00</published><updated>2010-06-16T12:06:09.585+01:00</updated><title type='text'>Phyton's range method in C# (or .net)</title><content type='html'>I don't frequently write phyton, nor am an expert on it. But I had a crush on Phyton's 'range' function and was looking for a subtitute on C#, especially after all these new functional programming elements.&lt;br /&gt;&lt;br /&gt;Apparently, there was one identical implementation: Enumerable.Range! It's come with C# 3.0.&lt;br /&gt;&lt;br /&gt;See: &lt;a href="http://stackoverflow.com/questions/1271378/is-there-an-equivalent-of-pythons-range12-in-c"&gt;http://stackoverflow.com/questions/1271378/is-there-an-equivalent-of-pythons-range12-in-c&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-7211491040195307096?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/7211491040195307096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=7211491040195307096' title='23 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/7211491040195307096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/7211491040195307096'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2010/06/phytons-range-method-in-c-or-net.html' title='Phyton&apos;s range method in C# (or .net)'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>23</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-4682965628194713955</id><published>2010-05-15T03:20:00.002+01:00</published><updated>2010-05-15T04:09:59.731+01:00</updated><title type='text'>Adobe vs Apple deal</title><content type='html'>Reading:&lt;br /&gt;1. Steve Jobs' arguments about why they don't support Flash on iPhone and iPad: &lt;a href="http://www.apple.com/hotnews/thoughts-on-flash/"&gt;http://www.apple.com/hotnews/thoughts-on-flash/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Adobe's passive-agressive response: &lt;a href="http://blogs.adobe.com/jnack/files/AdobeAppleAd.pdf"&gt;http://blogs.adobe.com/jnack/files/AdobeAppleAd.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3. Adobe's CEO answering on the topic: &lt;a href="http://blogs.wsj.com/digits/2010/04/29/live-blogging-the-journals-interview-with-adobe-ceo/tab/liveblog/"&gt;http://blogs.wsj.com/digits/2010/04/29/live-blogging-the-journals-interview-with-adobe-ceo/tab/liveblog/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I agree with the CEO guy on that the technological issues are not enough of an issue to ban flash development for iPhone. As far as I know, iPhone doesn't support Java neither:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Jobs: "Java's not worth building in. Nobody uses Java anymore. It's this big heavyweight ball and chain." &lt;a href="http://www.iphonefaq.org/archives/9731"&gt;(source)&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It doesn't take a Java fan to say it is very unfair to Java. Java's still serving us very well in many levels. (Altough Java programmers getting paid more IS a sign that it is dieing, Java is not only a programming language &lt;a href="http://groovy.codehaus.org/"&gt;(*)&lt;/a&gt;.)&lt;br /&gt;&lt;br /&gt;Apple does have the tendancy to provoke a closed community with a sense of eliteness, and it has so far worked good for them. If they (and with 'they', I mean both customers and producers of iPad and iPhone) are fine with less applications then there is not much to say. Indeed, Jobs' manifest may be targeting only the Apple customers who demand Flash, telling them not having Flash is just another way to separate them from the crowd.&lt;/p&gt;&lt;p&gt;They must be making huge moneys from the app store, and freely available flash applications on the web would not help much. I wonder how many of those applications on the store would be obsolete if only iPhone supported flash?&lt;br /&gt;&lt;br /&gt;I also am long disturbed with the Flash monopoly on rich internet applications and hoping to see what people will do with HTML5. But that's another topic.&lt;br /&gt;&lt;br /&gt;--&lt;br /&gt;&lt;br /&gt;Thinking Adobe had bought Macromedia only a few years ago, and Macromedia's Flash is now Adobe's most discussed product, It surely was a good buy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-4682965628194713955?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/4682965628194713955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=4682965628194713955' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/4682965628194713955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/4682965628194713955'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2010/05/adobe-vs-apple-deal.html' title='Adobe vs Apple deal'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-4076218777900355</id><published>2009-06-18T22:59:00.002+01:00</published><updated>2009-06-18T22:59:59.652+01:00</updated><title type='text'>Banned Books Week</title><content type='html'>Did you even know there was a banned books week?&lt;br /&gt;&lt;br /&gt;I think this is a brilliant idea.&lt;br /&gt;&lt;br /&gt;It's the last week of every September.&lt;br /&gt;&lt;br /&gt;For more info:&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Banned_Books_Week"&gt;http://en.wikipedia.org/wiki/Banned_Books_Week&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-4076218777900355?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/4076218777900355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=4076218777900355' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/4076218777900355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/4076218777900355'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2009/06/banned-books-week.html' title='Banned Books Week'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-2231624030250412559</id><published>2009-06-12T19:15:00.003+01:00</published><updated>2009-06-12T19:17:58.252+01:00</updated><title type='text'>More on Oracle and MySql</title><content type='html'>Good point on that Oracle would improve MySQL towards Sql Server to steal its market share, rather than killing it. Altough I'm not sure implementing an oracle storage engine for the mysql front end would make technical sense.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://andigutmans.blogspot.com/2009/05/mysql-can-be-great-for-oracle.html"&gt;http://andigutmans.blogspot.com/2009/05/mysql-can-be-great-for-oracle.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-2231624030250412559?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/2231624030250412559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=2231624030250412559' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/2231624030250412559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/2231624030250412559'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2009/06/more-on-oracle-and-mysql.html' title='More on Oracle and MySql'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-3662088095262743244</id><published>2009-05-18T10:37:00.002+01:00</published><updated>2009-05-18T10:38:43.450+01:00</updated><title type='text'>Downfall of Agile Hitler</title><content type='html'>Hilarious :D&lt;br /&gt;&lt;br /&gt;&lt;a href="http://agilesoftwaredevelopment.com/blog/artem/downfall-agile-hitler"&gt;http://agilesoftwaredevelopment.com/blog/artem/downfall-agile-hitler&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks to Sam from work :]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-3662088095262743244?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/3662088095262743244/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=3662088095262743244' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/3662088095262743244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/3662088095262743244'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2009/05/downfall-of-agile-hitler.html' title='Downfall of Agile Hitler'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-8593212206306053335</id><published>2009-04-22T13:37:00.002+01:00</published><updated>2009-04-22T13:39:21.546+01:00</updated><title type='text'>latest news</title><content type='html'>'buys' operator being defined as: $;&lt;br /&gt;&lt;br /&gt;sun $ mysql&lt;br /&gt;oracle $ sun&lt;br /&gt;&lt;br /&gt;at the moment, in a parallel universe:&lt;br /&gt;&lt;br /&gt;apple $ oracle&lt;br /&gt;&lt;br /&gt;bum! that specific universe collapses on itself.&lt;br /&gt;&lt;br /&gt;but hey, we're safe.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-8593212206306053335?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/8593212206306053335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=8593212206306053335' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/8593212206306053335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/8593212206306053335'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2009/04/latest-news.html' title='latest news'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-5884168228566295125</id><published>2009-04-09T17:30:00.003+01:00</published><updated>2009-04-09T17:41:48.112+01:00</updated><title type='text'>c# enum and IEquatable</title><content type='html'>Say you have a generic class like this:&lt;br /&gt;&lt;br /&gt;class MyClass&amp;lt;T&amp;gt; where T : IEquatable&amp;lt;T&amp;gt; {  }&lt;br /&gt;&lt;br /&gt;and an enum:&lt;br /&gt;&lt;br /&gt;enum MyEnum { MyOption1, MyOption2, MyOption3 }&lt;br /&gt;&lt;br /&gt;would you be able to do this?&lt;br /&gt;&lt;br /&gt;MyClass&amp;lt;MyEnum&amp;gt; MyMember;&lt;br /&gt;&lt;br /&gt;Nope:&lt;br /&gt;&lt;br /&gt;The type 'MyEnum' cannot be used as type parameter 'T' in the generic type or method 'MyClass&amp;lt;T&amp;gt;'. There is no boxing conversion from 'MyEnum' to 'System.IEquatable&lt;MyEnum&amp;gt;'.&lt;br /&gt;&lt;br /&gt;What would you do?&lt;br /&gt;&lt;br /&gt;Use EqualityComparer&amp;lt;T&amp;gt;.Default. By definition, behaviour is:&lt;br /&gt;&lt;br /&gt;The Default property checks whether type T implements the System.IEquatable&amp;lt;T&amp;gt; generic interface and if so returns an EqualityComparer&amp;lt;T&amp;gt; that uses that implementation. Otherwise it returns an EqualityComparer&amp;lt;T&amp;gt; that uses the overrides of Object.Equals and Object.GetHashCode provided by T. &lt;br /&gt;&lt;br /&gt;Nice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-5884168228566295125?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/5884168228566295125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=5884168228566295125' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/5884168228566295125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/5884168228566295125'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2009/04/c-enum-and-iequatable.html' title='c# enum and IEquatable&lt;T&gt;'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-5814236915461920370</id><published>2009-03-29T13:28:00.002+01:00</published><updated>2009-03-29T13:47:25.260+01:00</updated><title type='text'>My "can't live without" firefox extensions</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Tree Style Tab:&lt;/span&gt;&lt;br /&gt;For tab-freaks like me, it doubles up the number of tabs you can concurrently manage. Shows your tabs on the left side of the browser as a tree (each new link having its referrer as parent). Especially if you have a wide screen monitor, you won't care the horizontal space you lose.&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/5890" target="_blank"&gt;https://addons.mozilla.org/en-US/firefox/addon/5890&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;StumbleUpon:&lt;/span&gt;&lt;br /&gt;At the beginning brings random web pages when you hit "Stumble!" button. As you go, you rate these pages with "I like" or "No more like this" buttons and it learns the pages you like. You can easily forward pages to friends with a single-line message.&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/138" target="_blank"&gt;https://addons.mozilla.org/en-US/firefox/addon/138&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;FlashBlock:&lt;/span&gt;&lt;br /&gt;Blocks all the flash content in every page, unless you click on them. Extremely beneficial since flash content sucks up all the cpu you have.&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/433" target="_blank"&gt;https://addons.mozilla.org/en-US/firefox/addon/433&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;DownThemAll:&lt;/span&gt;&lt;br /&gt;With a right-click, downloads every link on the page you're on, filtered by extension or a regex. It is also nice to download a single link, because it spawns multiple sockets (4 by default, I think) to download the file.&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/201" target="_blank"&gt;https://addons.mozilla.org/en-US/firefox/addon/201&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From the times I was actively doing web development:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Web Developer:&lt;/span&gt;&lt;br /&gt;Edits css in-place, browses/modifies HTML DOM, hides/shows images or their places, and a bunch of very nice features for a web developer.&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/60" target="_blank"&gt;https://addons.mozilla.org/en-US/firefox/addon/60&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-5814236915461920370?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/5814236915461920370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=5814236915461920370' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/5814236915461920370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/5814236915461920370'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2009/03/my-cant-live-without-firefox-extensions.html' title='My &quot;can&apos;t live without&quot; firefox extensions'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-1610116832956463209</id><published>2008-12-27T12:42:00.002Z</published><updated>2008-12-27T13:01:00.026Z</updated><title type='text'>How far the web has gone</title><content type='html'>Two signs of how far the web has gone. The second is pretty cool, though.&lt;br /&gt;&lt;br /&gt;1. Google Native Client, runs native binary code inside the browser, deploying the necessary binaries just in time of browsing the page.&lt;br /&gt;http://code.google.com/p/nativeclient/&lt;br /&gt;&lt;br /&gt;2. VisualWebGUI, implements Windows.Forms in web context using AJAX, so after replacing System.Windows.Forms references to Gizmox.WebGUI.Forms and moving the source to a new project, your forms work on the web.&lt;br /&gt;http://www.visualwebgui.com/Community/Resources/QuickStarts/tabid/365/articleType/ArticleView/articleId/392/How-to-Migrate-a-WinForms-application-to-the-Web-using-Visual-WebGui.aspx&lt;br /&gt;&lt;br /&gt;Earlier than this, we were trying to run web applications on offline machines, mostly using installation packs containing middleware like apache/php/mysql. I guess the basic drive behind this was to make offline machines run the same application. They weren't rare at that moment, but now offline machines are barely considered as proper computers.&lt;br /&gt;&lt;br /&gt;We're trying to run web applications locally, and local applications on the web. We're desperate.&lt;br /&gt;&lt;br /&gt;Java was right to the spot, and 7 years before .net was there. I don't know, maybe it was too early for the concept, or Sun couldn't make a good job on keeping Java up to date. But I'm sad to see Java is dying. How do I know? Because Java programmers are paid well these days.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-1610116832956463209?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/1610116832956463209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=1610116832956463209' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/1610116832956463209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/1610116832956463209'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2008/12/how-far-web-has-gone.html' title='How far the web has gone'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-5893073022978601683</id><published>2008-11-27T10:06:00.001Z</published><updated>2008-11-27T10:09:26.155Z</updated><title type='text'>What is scrum</title><content type='html'>A simple blog entry, just point at a video that explains 'what is scrum'.&lt;br /&gt;&lt;br /&gt;Well, "it's a great method... to develop software..."&lt;br /&gt;&lt;br /&gt;&lt;a href="http://uk.youtube.com/watch?v=XYsFTGDSY9A"&gt;http://uk.youtube.com/watch?v=XYsFTGDSY9A&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Credits to Kestutis from work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-5893073022978601683?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/5893073022978601683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=5893073022978601683' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/5893073022978601683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/5893073022978601683'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2008/11/what-is-scrum.html' title='What is scrum'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-8898303285823890162</id><published>2008-11-26T00:21:00.001Z</published><updated>2008-12-05T17:13:30.325Z</updated><title type='text'>Teach them assembly first!</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Alice&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I've come across a project, a software that aims to teach object oriented programming through 3D objects in a virtual world.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.alice.org/index.php?page=what_is_alice/what_is_alice"&gt;http://www.alice.org/../what_is_alice&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For example, you drag a skater onto the snowy mountains, right click to her and invoke her methods like move, turn, roll or whatever. Then you go to the little code window, and drag her methods into a list to execute them in order. You have some containers like 'loop', 'if', or 'do together' for parallel execution. You drag and move methods around, move them inside containers and put together a program that controls the movement of the skater.&lt;br /&gt;&lt;br /&gt;It brings no new teaching approach to programming model. It only removes the hassle of type-written languages and compiler-oriented problems. I wouldn't let any student to spend time on such a tool, but the ones in primary school. Programming world is big enough not to waste time on such toys; and teaching programming is not hard anyway, if you have people who really understands it and knows how to express the knowledge correctly.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Object Oriented Lobotomy&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Another terrible failure is teaching an object oriented language like java or c# to a newbie for his first programming experience. Later in their careers, they'll eventually need to learn low-level stuff anyway, and they'll be scared to death. They can't live in that abstract world of managed runtimes forever. On the other hand, these languages are designed to be coded, reused and maintained easily, through the years of experience. They're not designed to be learned easily. Yes, there's a difference between "easy to code" and "easy to learn how to code".&lt;br /&gt;&lt;br /&gt;First of all, it's harder to appreciate something, if you don't know the lack of it. The inventors of the assembly language were possibly bored enough of combining numeric instructions together, so they have used mnemonics to represent instructions. That's why we call the Assembly language a 'second generation language'. And in time, because writing assembly code is mostly dull work, and maybe because it's also hard to read and follow, they have decided to write a program which writes assembly through easier expressions, hence came the compilers and 'third generation languages'.&lt;br /&gt;&lt;br /&gt;This is exactly why some fresh programmers hate writing getters/setters. They don't know how messy things can get if you don't do this. They don't know why it would take times and times longer to maintain a code that uses some variables which are accessed and manipulated by large numbers of lines.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Teach them assembly first!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Start simple, and teach them how to program assembly. They don't need to go in details. Indeed, basic concept of assembly programming is a lot simpler compared to higher level languages. Just a set of basic instructions will be enough to teach what it is like to program a computer to do what you want. MOV, ADD, INT, CMP, JNZ... None of them asks for more than one line of explanation. Registers are the only variables they have, and they'll naturally learn pointers which are considered as one of the &lt;a href="http://stackoverflow.com/questions/146670/hardest-concept-to-grasp-as-a-beginner"&gt;hardest concepts to grasp for beginners&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As they write loops in assembly, the pattern will be obvious, and they'll appreciate why that 'for' statement has three sub statements as initialization, termination and incrementation. Then they'll know what is happening during the compilation of that for statement, and they're free to analyse the machine code.&lt;br /&gt;&lt;br /&gt;When they're fluent with a procedural language like C, they'll again notice patterns and drawbacks of it. Some of them will appreciate object oriented, and some of them will develop their own solutions and stick to procedural model until they are pushed to switch to object oriented by a teacher in school or team leader at work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-8898303285823890162?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/8898303285823890162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=8898303285823890162' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/8898303285823890162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/8898303285823890162'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2008/11/teach-them-assembly-first.html' title='Teach them assembly first!'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-8141324435654795859</id><published>2008-11-18T22:54:00.001Z</published><updated>2008-11-19T00:09:45.799Z</updated><title type='text'>Roasted broccoli</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt;&lt;a href="http://www.flickr.com/photos/gorkempacaci/3039495979/" title="photo sharing"&gt;&lt;img src="http://farm4.static.flickr.com/3002/3039495979_71bfa2d1c7_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;&lt;a href="http://www.flickr.com/photos/gorkempacaci/3039495979/"&gt;Roasted broccoli&lt;/a&gt;&lt;br /&gt;Originally uploaded by &lt;a href="http://www.flickr.com/people/gorkempacaci/"&gt;Görkem PAÇACI&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;A new and absolutely delicious way to cook broccoli.&lt;br /&gt;&lt;br /&gt;Roast it with some salt, pepper and olive oil. The only important thing is that they need to be completely dry. Roast them until they get brown spots on them.&lt;br /&gt;&lt;br /&gt;Take them out, add some more olive oil, lemon juice and parmesan cheese. Stir well so the juice is all over them.&lt;br /&gt;&lt;br /&gt;Do you hear them screaming?&lt;br /&gt;&lt;br /&gt;Eat us! Eat us!&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-8141324435654795859?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/8141324435654795859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=8141324435654795859' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/8141324435654795859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/8141324435654795859'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2008/11/roasted-broccoli.html' title='Roasted broccoli'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3002/3039495979_71bfa2d1c7_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-7403029139390966785</id><published>2008-11-18T15:42:00.000Z</published><updated>2008-11-18T16:48:59.333Z</updated><title type='text'>"Hunkar Begendi" for David</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.portakalagaci.com/oburcuk/images/hunkar_begendi.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://www.portakalagaci.com/oburcuk/images/hunkar_begendi.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;He said he would take "requests" for our occasional Wednesday night post-yoga din-dins. So here I go!&lt;br /&gt;&lt;br /&gt;Hunkar Begendi is a very typical Turkish dish. It takes time to prepare, so when it's cooked it's almost a special occasion. (at least in my family where every women works)&lt;br /&gt;&lt;br /&gt;The name means "The sultan loved it", by chicken translation. Indeed the name comes from "Begendi", which is a mixture of béchamel sauce and aubergine purée. (also served as a "Meze" along strong drinks)&lt;br /&gt;&lt;br /&gt;SERVES 4 NON-DAMIAN PEOPLE.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The base&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What:&lt;br /&gt;- 4 aubergines&lt;br /&gt;- 3 tbsp flour&lt;br /&gt;- 4 tbsp butter (half a tablet, I guess)&lt;br /&gt;- 2 glasses of milk&lt;br /&gt;- 2 tsp salt&lt;br /&gt;&lt;br /&gt;How:&lt;br /&gt;- Roast the aubergines in the oven. You can wrap them with foil. Try not to pierce them, since we don't want to lose the juice. Don't cook very much so they are dry or burnt. And don't cook so little so they still have the sponge touch. They should be very soft and juicy. After cooked, peel the black skin off and smash the aubergines to have aubergine purée.&lt;br /&gt;- In a pan, melt the butter and add the flour. Slowly pour the milk, and the salt after that. After the béchamel is ready, stir the purée in.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The meat sauté&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What:&lt;br /&gt;- 1 kg of lamb meat&lt;br /&gt;- 4 garlic cloves, smashed&lt;br /&gt;- 1 tbsp flour&lt;br /&gt;- 1 tbsp tomato purée&lt;br /&gt;- 5 tbsp olive oil&lt;br /&gt;- salt and pepper (amount up to you)&lt;br /&gt;&lt;br /&gt;How:&lt;br /&gt;- Cook the meat in olive oil, in low heat&lt;br /&gt;- Add the flour and keep stirring&lt;br /&gt;- Add the smashed garlic cloves and tomato purée&lt;br /&gt;- Add salt and pepper&lt;br /&gt;- Keep stirring until garlic and tomato purée are cooked.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;How to serve&lt;/span&gt;&lt;br /&gt;First, put the aubergine base onto the plate, and add meat sauté in the middle. You can also serve with rice, but it's mostly eaten with normal-bread in Turkey. Ciabatta or 'cross-cut bread' from tesco will do.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;For drink&lt;/span&gt;&lt;br /&gt;"Ayran" will go perfect with it. It's basicly shaked yoghurt, cold water and salt. 1 unit yoghurt to 1 units water. Tesco's light yoghurt has the same sour flavour like the yoghurt in turkey.&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-7403029139390966785?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/7403029139390966785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=7403029139390966785' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/7403029139390966785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/7403029139390966785'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2008/11/hunkar-begendi-for-david.html' title='&quot;Hunkar Begendi&quot; for David'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-5605681614990243122</id><published>2008-11-02T18:36:00.001Z</published><updated>2008-11-06T13:48:07.903Z</updated><title type='text'>Logitech V150</title><content type='html'>Cable length is too short. Today I've bought this mouse but the cable length is around 50/60cm. It's obviously not the appropriate mouse for a desktop. Now I'll need to buy a usb extension as well.&lt;br /&gt;&lt;br /&gt;I'm writing this because I couldn't find the cable length of the mouse anywhere on internet, before opening the packaging.&lt;br /&gt;&lt;br /&gt;Edit: I've bought this usb hub and it's very pleasing: http://www.amazon.co.uk/gp/product/B000VN3454/ref=olp_product_details?ie=UTF8&amp;me=&amp;seller=&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-5605681614990243122?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/5605681614990243122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=5605681614990243122' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/5605681614990243122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/5605681614990243122'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2008/11/logitech-v150.html' title='Logitech V150'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-3065822098409412684</id><published>2008-10-10T15:10:00.000+01:00</published><updated>2008-10-10T15:16:15.494+01:00</updated><title type='text'>back to dundee</title><content type='html'>Holiday version Izmir Q4 has ended. A family gathering tonight, and flight to istanbul in the morning. &lt;br /&gt;&lt;br /&gt;if you worry if I was in that plane crashed:&lt;br /&gt;&lt;br /&gt;at 10:30 from izmir to istanbul&lt;br /&gt;at 15:25 from istanbul to paris&lt;br /&gt;at 20:25 from paris to edinburgh&lt;br /&gt;&lt;br /&gt;and hopefully train from inverkeithing to dundee.&lt;br /&gt;&lt;br /&gt;sunday will be possibly spent in Selcuk&amp;Gokcen's. and in monday I'll be at work. I did miss the work as well :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-3065822098409412684?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/3065822098409412684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=3065822098409412684' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/3065822098409412684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/3065822098409412684'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2008/10/back-to-dundee.html' title='back to dundee'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-5467726697465577769</id><published>2008-10-05T23:01:00.000+01:00</published><updated>2008-10-05T23:11:26.592+01:00</updated><title type='text'>whoops! holiday is already out!</title><content type='html'>&lt;div align="center"&gt;&lt;a href="http://www.flickr.com/photos/gorkempacaci/2916675600/" title="DSC_0113.NEF by Görkem PAÇACI, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3263/2916675600_dab97e651a_m.jpg" width="240" height="159" alt="DSC_0113.NEF" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Last week of my holiday, and there's still a lot to do!&lt;br /&gt;&lt;br /&gt;This photo is from today's meeting of Flickr Izmir group. Lovely people, lovely day.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-5467726697465577769?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/5467726697465577769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=5467726697465577769' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/5467726697465577769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/5467726697465577769'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2008/10/whoops-holiday-is-already-out.html' title='whoops! holiday is already out!'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3263/2916675600_dab97e651a_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-2196957289314299126</id><published>2008-09-06T03:28:00.001+01:00</published><updated>2008-09-06T03:29:56.134+01:00</updated><title type='text'>Berrd!</title><content type='html'>&lt;center&gt;&lt;a href="http://www.flickr.com/photos/gorkempacaci/2831344765/" title="DSC_0469 by Görkem PAÇACI, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3076/2831344765_724b48dcce.jpg" width="380" alt="DSC_0469" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-2196957289314299126?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/2196957289314299126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=2196957289314299126' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/2196957289314299126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/2196957289314299126'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2008/09/berrd.html' title='Berrd!'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3076/2831344765_724b48dcce_t.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-270709353987920516</id><published>2008-08-03T05:11:00.001+01:00</published><updated>2008-08-03T05:27:30.809+01:00</updated><title type='text'>Some more good movies</title><content type='html'>&lt;span style="font-weight:bold;"&gt;The Dark Knight&lt;/span&gt;&lt;br /&gt;This movie had deserved to be watched at cinema, at the moment it hit the 1st in IMDB. I wouldn't rate it 1st, but it's absolutely in my first ten. Classic batman theme, plus some brain activity on the meaning of the 'crime' and continuous action. Best spent 5£ of last weeks. (mm, maybe except pub lunches)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Kingdom of Heaven&lt;/span&gt;&lt;br /&gt;Worth to watch even only to see Eva Green. She's smashing. Movie has a middle-age western theme, with a bit of eastern Islam salt towards the end. I would say who will get the Jerusalem at the end, but I don't want to spoil it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;A Clockwork Orange&lt;/span&gt;&lt;br /&gt;Took two days to watch, since I fell asleep around the middle of the movie the first day. But second day was great enough to make me feel satisfied. Makes you review your thoughts about violence, how much of it is done individually, how much of it comes from the society.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-270709353987920516?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/270709353987920516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=270709353987920516' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/270709353987920516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/270709353987920516'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2008/08/some-more-good-movies.html' title='Some more good movies'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-9089633627260447524</id><published>2008-07-30T16:55:00.000+01:00</published><updated>2008-08-03T05:27:55.568+01:00</updated><title type='text'>Some good movies</title><content type='html'>&lt;span style="font-weight:bold;"&gt;The man from earth.&lt;/span&gt;&lt;br /&gt;This is a great movie reccommended by Hazan. It doesn't let your brain out for two hours. Pretty fun, and a good ending. Very similar to the theme of '12 Angry Man'.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;North by Northwest (Hitchcock)&lt;/span&gt;&lt;br /&gt;Not impressive as much as Psycho, but still very fun to watch especially considering unique structure of its scenario. spoiler [ many plot-twists ].&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Death proof&lt;/span&gt;&lt;br /&gt;A must-watch for Tarantino lovers. After watching this movie with friends, Umut went: "Ok now somebody tell me what was the genre of this movie?". It's only Tarantino-genre.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-9089633627260447524?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/9089633627260447524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=9089633627260447524' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/9089633627260447524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/9089633627260447524'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2008/07/some-good-movies.html' title='Some good movies'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-6879573363265271832</id><published>2008-07-30T02:02:00.000+01:00</published><updated>2008-07-30T17:01:26.903+01:00</updated><title type='text'>To singleton or not to singleton</title><content type='html'>A colleague (Jacques or David L.?) pointed out an article explaining why singletons are evil, and they should be avoided:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/scottdensmore/archive/2004/05/25/140827.aspx" target="_blank"&gt;http://blogs.msdn.com/scottdensmore/...27.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Although there are some valuable points coming from experience, I can't say that I totally agree with it. This article makes a better representing of my thoughts:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ddj.com/cpp/184401625" target="_blank"&gt;http://www.ddj.com/cpp/184401625&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'll try to come up with my own explanations as objections :)&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;1. "Singletons are almost like globals, and since globals are bad, singletons are bad."&lt;/blockquote&gt;&lt;br /&gt;In my opinion, the first reason why global variables are bad is that you have almost no control over initialization or modification operations over them. There's a global variable in the global scope who knows where it's coming from, who and when initialized it, does it contain valid information... Second, probably the strongest objection to globals is, when you keep writing code depending on globals, those globals sit in the centre of your design with an extremely tightly coupled fashion, Turning your whole code domain into a single 'deadly complex finite state machine'. [Not mentioning about debugging problems of such a code]&lt;br /&gt;&lt;br /&gt;But they don't apply for singletons. You know when a singleton is initialized (lazy to death, if you like), and that the class initializes itself. It still only publishes an appropriate interface with read-only members, etc. &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;2. "Code that depends on a singleton is hard to unit-test."&lt;/blockquote&gt;&lt;br /&gt;Well, it's completely right. But it's not the fault of singleton objects, It's weakness of your testing framework. If you really want your objects to be stateless at the beginning, then I'm sorry but you have to well-write those Setup() and TearDown() methods, even it comes with a cost of dynamically loading and unloading many dlls.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;3. "Don't use singletons, write a 'factory method'".&lt;/blockquote&gt;&lt;br /&gt;Well, this is possibly the most ridiculous one. A factory method, if it doesn't incorporate 'static' concept, can't do what a singleton does. And if it incorporates the static concept, it actually IS a singleton.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;4. "Singletons screw polymorphism."&lt;/blockquote&gt;&lt;br /&gt;I don't have any objection to this. It's completely true. They do screw polymorphism. But you may have deeper problems with your design if you think an object 'will have only one instance' and there are going to be more than one objects subclassing the previous one. I better seal the singleton with a 'sealed' or 'final' keyword and take a French leave.&lt;br /&gt;&lt;br /&gt;My objections don't eliminate the fact that singletons are abused. But I think the answer to this singleton deal is old and classic enough not to make me seem smart: "It depends.". It's always better to pass a reference to your single-instanced-object when you can, for many reasons like clear representation of coupling. But there will always be some cases you'll end up with ridiculously complex solutions just to avoid an innocent sweet singleton. It's a trade-off decision.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-6879573363265271832?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/6879573363265271832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=6879573363265271832' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/6879573363265271832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/6879573363265271832'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2008/07/to-singleton-or-not-to-singleton.html' title='To singleton or not to singleton'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-8236548685516173086</id><published>2008-07-29T15:50:00.000+01:00</published><updated>2008-07-29T15:50:17.597+01:00</updated><title type='text'>C# and beforefieldinit</title><content type='html'>&lt;a href="http://www.yoda.arachsys.com/csharp/beforefieldinit.html"&gt;C# and beforefieldinit&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I didn't know that explicitly defining the static constructor could have an effect on initialization time of implicitly initialized members!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-8236548685516173086?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.yoda.arachsys.com/csharp/beforefieldinit.html' title='C# and beforefieldinit'/><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/8236548685516173086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=8236548685516173086' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/8236548685516173086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/8236548685516173086'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2008/07/c-and-beforefieldinit.html' title='C# and beforefieldinit'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-743974502616892813</id><published>2008-07-25T14:25:00.000+01:00</published><updated>2008-07-25T23:00:49.718+01:00</updated><title type='text'>Yet another wishlist for programming languages, part 2: Inverse enumeration</title><content type='html'>How do you enumerate an IEnumerable inversely, from the last to first? Sometimes I need it. Maybe there can be a MovePrevious() method in the IEnumerator interface...&lt;br /&gt;&lt;br /&gt;Please drop a comment if anyone thinks it's not 'doable' or why it's a bad practice :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-743974502616892813?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/743974502616892813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=743974502616892813' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/743974502616892813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/743974502616892813'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2008/07/inverse-enumeration.html' title='Yet another wishlist for programming languages, part 2: Inverse enumeration'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-8730844005266252809</id><published>2008-07-24T23:04:00.001+01:00</published><updated>2008-07-25T23:01:22.442+01:00</updated><title type='text'>Yet another wishlist for programming languages, part 1: 'local functions' or 'parameterized labels'</title><content type='html'>Well, the only languages that I can say I'm confident to talk about are c#, c++, php and vb. It means that I may be surprised to hear some languages do already have the features I wish. But I need to start from somewhere. Here we go!&lt;br /&gt;&lt;br /&gt;I want 'local functions'. Or 'embedded  functions' if you like. Javascript already has them, thanks to its functional programming basis. The problem is, I want to implement a piece of my algorithm as a function, but I don't want to publish it to other methods in that class. The think I'm looking for is written some like this in javascript:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;function mainfunc()&lt;br /&gt;{&lt;br /&gt;    var subfunc = function(args) { .... }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I dream about something like this in c#:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public void mainfunc()&lt;br /&gt;{&lt;br /&gt;  bool subfunc(int args) { ... }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Or we can extend something we already have, labels, to 'parameterized labels'. It doesn't satisfy the requirement in my mind, because label-goto pairs cause a different impact on the program flow, which may lead to extra complexity of your overall algorithm. Parameterized labels may seem like this, in c#:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public string mainfunc(&lt;br /&gt;{&lt;br /&gt; if (...some condition...)&lt;br /&gt;     goto returnOne("foo");&lt;br /&gt; else&lt;br /&gt;     goto returnTwo("zoo", "(two)");&lt;br /&gt; // do some unrelated stuff&lt;br /&gt; returnOne(string s):&lt;br /&gt;     return s+"(one)";&lt;br /&gt; returnTwo(string s, string s2):&lt;br /&gt;     MessageBox.Show(s, s2);&lt;br /&gt;     return s+s2;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;As you can see, it becomes something else, but it's still useful. It was also possible to do the same with the help of some variables and a couple of if statements, but I think this adds to readability and overall maintainability of the code. Of course it may also lead to that exaggerated old saying about 'spagetti code', but it depends on how careful you use labels and how much you care about overall simplicity of the code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-8730844005266252809?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/8730844005266252809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=8730844005266252809' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/8730844005266252809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/8730844005266252809'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2008/07/yet-another-wishlist-for-programming.html' title='Yet another wishlist for programming languages, part 1: &apos;local functions&apos; or &apos;parameterized labels&apos;'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-3269991372576141240</id><published>2008-07-03T17:18:00.000+01:00</published><updated>2008-07-07T18:46:30.092+01:00</updated><title type='text'>Generic and efficient paging query for SqlServer and Oracle</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;A friend just pointed at an old post of mine in my blog&lt;br /&gt;in Turkish. Basically, it's a parameterized wrapper query&lt;br /&gt;which returns rows in an interval among the results&lt;br /&gt;of a given query.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;It's possible to implement this the same way in&lt;br /&gt;both Sql Server 2005 and Oracle 10i. I had tested it quite&lt;br /&gt;well to assure that it's better than alternative methods.&lt;br /&gt;I had implemented this solution for our XSLT-enabled&lt;br /&gt;data and view framework for asp.net 2.0, while I was&lt;br /&gt;working in Netsis.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Assumed that your raw query is:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;SELECT * FROM friends;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;And you need just last 10 records from a 4million-records&lt;br /&gt;table. (you're very popular)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;You need to wrap it this way:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style="font-weight: bold;"&gt;WITH&lt;br /&gt;RawTable as ( &lt;span style="font-weight: normal; font-style: italic;"&gt;SELECT * FROM friends&lt;/span&gt; ),&lt;br /&gt;NumberedTable as&lt;br /&gt;(SELECT *, ROW_NUMBER() OVER&lt;br /&gt;(ORDER BY @@IDENTITY) AS rownum&lt;br /&gt;FROM RawTable)&lt;br /&gt;SELECT * FROM NumberedTable&lt;br /&gt;WHERE rownum &lt;&gt; 3499990&lt;br /&gt;&lt;br /&gt;&lt;span face="arial"&gt;&lt;span style="font-weight: bold;" size="3"&gt;&lt;span style="font-weight: normal;"&gt;As far as I can remember, It was quite better than these&lt;br /&gt;alternatives:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: normal;"&gt;&lt;span style="font-size:100%;"&gt;- Server-side cursors of ADO.NET on SQL2005&lt;br /&gt;- Embedded subqueries with two seperate SELECT TOP N&lt;br /&gt;&lt;br /&gt;And using ROW_NUMBER() over @@IDENTITY keyword&lt;br /&gt;had helped a lot, instead of giving it a name of a column&lt;br /&gt;to order. It was both fast and generic.&lt;br /&gt;&lt;br /&gt;Use responsibly :)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-3269991372576141240?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/3269991372576141240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=3269991372576141240' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/3269991372576141240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/3269991372576141240'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2008/07/generic-and-efficient-paging-query-for.html' title='Generic and efficient paging query for SqlServer and Oracle'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-5735176505859724631</id><published>2008-04-27T18:08:00.001+01:00</published><updated>2008-04-29T02:15:34.816+01:00</updated><title type='text'>How to switch between .H and .CPP files in visual studio.</title><content type='html'>I've written a macro for this, since I don't know any existing commands in VS.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    Sub SwitchBetweenHeaderAndSource()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        Dim oldFile As String&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        Dim newFile As String&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        oldFile = DTE.ActiveDocument.FullName&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        If (oldFile.EndsWith(".cpp")) Then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;            newFile = oldFile.Replace(".cpp", ".h")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        Else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;            If (oldFile.EndsWith(".h")) Then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                newFile = oldFile.Replace(".h", ".cpp")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;            Else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                newFile = oldFile&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;            End If&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        End If&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        Dim pi As EnvDTE.ProjectItem&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        pi = DTE.Solution.FindProjectItem(newFile)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        If (Not pi Is Nothing) Then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;            pi.Open().Activate()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        End If&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    End Sub&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can write this macro in macro explorer, which you can find in Tools-&gt;Macros menu.&lt;br /&gt;To assign a keyboard shortcut, you can go to Tools-&gt;Customize and click the Keyboard button. On that window you can find the macro and assign it a keyboard shortcut. I'm using Ctrl+"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-5735176505859724631?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/5735176505859724631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=5735176505859724631' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/5735176505859724631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/5735176505859724631'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2008/04/how-to-switch-between-h-and-cpp-files.html' title='How to switch between .H and .CPP files in visual studio.'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-4755299301912872868</id><published>2008-04-01T18:52:00.000+01:00</published><updated>2008-04-01T19:02:24.406+01:00</updated><title type='text'>This summer</title><content type='html'>I had applied to Realtime Worlds for a summer placement job. I got a quiz, and an interview today. I've got an email that says I'm accepted for a summer placement, I'm quite glad to hear that :)&lt;br /&gt;&lt;br /&gt;I'll finish my coursework earlier and go to turkey for a three-week holiday with family&amp;amp;friends, and from the beginning of the June, I'll be working at RTW for three and a half months. Yee-haw cowboy!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;References:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;A saying that Raymond Chen has used in this article:&lt;/span&gt;&lt;br /&gt;- Yee-haw cowboy: &lt;a href="http://blogs.msdn.com/oldnewthing/archive/2003/12/23/45481.aspx" target="_blank"&gt;http://blogs.msdn.com/oldnewthing/.../45481.aspx&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;A great latin-jazz album from Ayhan Sicimoglu:&lt;/span&gt;&lt;br /&gt;- Friends&amp;amp;Family: &lt;a href="http://www.amazon.co.uk/Friends-Family-Ayhan-Sicimoglu/dp/B000J3OWN4/ref=sr_1_1?ie=UTF8&amp;amp;s=music&amp;amp;qid=1207072828&amp;amp;sr=8-1" target="_blank"&gt;http://www.amazon.co.uk/Friends-Family-Sicimoglu....&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-4755299301912872868?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/4755299301912872868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=4755299301912872868' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/4755299301912872868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/4755299301912872868'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2008/04/this-summer.html' title='This summer'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-235759136216623989</id><published>2008-03-05T23:28:00.000Z</published><updated>2008-04-25T03:00:49.985+01:00</updated><title type='text'>c++ benchmark: list or vector?</title><content type='html'>In games programming, it's likely to have a collection of objects you want to draw to the screen. In some cases, the number of items in such a collection can be quite high.&lt;br /&gt;&lt;br /&gt;I wondered if there's an efficient option between using std::list or std::vector, and I did a benchmark to see it myself.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Scenario 1: Insert n items, traverse n times.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;when n=100&lt;/span&gt;, there isn't a huge difference but list is better. For vector it's between 15ms and 78ms, and for list it's between 15ms and 62ms.&lt;br /&gt;When I calculate the average of rates, I can see that &lt;span style="font-weight: bold;"&gt;list is ~%11 faster.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;when n=300&lt;/span&gt;, I can't see a clear winner. For vector it's between 200ms and 310ms, and for list it's between 203ms and 343ms.&lt;br /&gt;According to the average of rates, &lt;span style="font-weight: bold;"&gt;vector is ~%3 faster.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here's the source for this benchmark:&lt;a href="http://pastebin.com/f41f684cb" target="_blank"&gt;http://pastebin.com/f41f684cb&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Scenario 2: Insert n items, traverse n times and replace %20 of items on every iteration whilst traversing.&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;when n=100&lt;/span&gt;, mostly list wins. For vector it's between 170msms and 250ms, and for list it's between 172ms and 190ms.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;List is ~%5 faster&lt;/span&gt; on average.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;when n=200&lt;/span&gt;, list is always the winner. For vector it's between 1360ms and 1531ms, and for list it's between 1297ms and 1422ms.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;List is ~%7 faster.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here's the source for this benchmark:&lt;a href="http://pastebin.com/f522f7e6b" target="_blank"&gt;http://pastebin.com/f522f7e6b&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Conclusion&lt;/span&gt;&lt;/p&gt;&lt;p&gt;If the number of items in your world are around &lt;span style="font-weight: bold;"&gt;300 or more&lt;/span&gt;, and you &lt;span style="font-weight: bold;"&gt;don't&lt;/span&gt; perform so many insert&amp;amp;remove operations, &lt;span style="font-weight: bold;"&gt;pick vector&lt;/span&gt;. Otherwise, pick list.&lt;/p&gt;&lt;p&gt;I think the reason behind the truth that vector can't deal with continuous insert&amp;amp;remove operations is that it has to relocate remaining elements in the array when you delete one of them. For list, it's far more easy because it's implemented as a linked-list which means it's just about modifying two pointers to remove an element.&lt;/p&gt;&lt;p&gt;On the other hand, I think the reason why the list beats vector for 100 items is about the allocation strategy that vector uses. I don't know exactly how MS implemented this in standard library, but it's generally something like doubling the allocated memory everytime it's completely consumed. If it starts with a number like 5, to reach 100 it must be doubled 5 times, and everytime it looks for a bigger chunk of memory. The memory management has to find a continuous part in the memory for it. And after 100, to reach 300 it hast to be doubled just twice.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-235759136216623989?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/235759136216623989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=235759136216623989' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/235759136216623989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/235759136216623989'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2008/03/c-benchmark-list-or-vector.html' title='c++ benchmark: list or vector?'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-2755147951700612125</id><published>2008-02-23T22:49:00.000Z</published><updated>2008-12-09T03:42:41.036Z</updated><title type='text'>Visual studio 2005 culture problem</title><content type='html'>Ok, I admit that it isn't a "problem". While working on our project "geekers", every time we update our project folder from subversion, we get this change to visual studio project file of the visual studio:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_wRfK6TvQU-8/R8Cj0L3_MeI/AAAAAAAABaU/79rBy9qHWGw/s1600-h/ogreapp.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_wRfK6TvQU-8/R8Cj0L3_MeI/AAAAAAAABaU/79rBy9qHWGw/s400/ogreapp.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5170312489157472738" /&gt;&lt;/a&gt;&lt;br /&gt;Ok, it's a desirable feature to have culture-specific data types in the xml streams. But do we really deserve this situation in this screenshot? I think we don't. :)&lt;br /&gt;It remembers me a great article of &lt;a href="http://www.joelonsoftware.com/" target="_blank"&gt;Joel Spolsky&lt;/a&gt;, on "&lt;a href="http://www.joelonsoftware.com/articles/LeakyAbstractions.html" target="_blank"&gt;leaky abstractions&lt;/a&gt;."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-2755147951700612125?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/2755147951700612125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=2755147951700612125' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/2755147951700612125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/2755147951700612125'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2008/02/visual-studio-2005-culture-problem.html' title='Visual studio 2005 culture problem'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_wRfK6TvQU-8/R8Cj0L3_MeI/AAAAAAAABaU/79rBy9qHWGw/s72-c/ogreapp.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-5604240808948853503</id><published>2008-02-20T01:05:00.000Z</published><updated>2008-02-23T22:49:26.737Z</updated><title type='text'>Microsoft's another investment</title><content type='html'>As you can see on &lt;a href="http://blogs.msdn.com/edunhill/archive/2008/02/19/dreamspark-free-software-for-all-uk-students.aspx" target="_blank"&gt;this page&lt;/a&gt;, microsoft is giving some of its products (visual studio, xna, windows server) to the students in UK for free. I've learned from Euan from our games project. I've already got those products thanks to MSDN membership of &lt;a href="http://www.ieu.edu.tr" target="_blank"&gt;my university in Izmir&lt;/a&gt;, and many universities do.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.joelonsoftware.com/articles/APIWar.html" target="_blank"&gt;An article&lt;/a&gt; I've read on 'Joel on software' claims that microsoft indeed would love to give its development products for free. Because the value of an operating system is dependent on the various software it has on it, and windows (with office) is the flagship product of microsoft. -- not visual studio --&lt;br /&gt;&lt;br /&gt;I've never thought about it this way, and it really sounds smart.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-5604240808948853503?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/5604240808948853503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=5604240808948853503' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/5604240808948853503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/5604240808948853503'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2008/02/microsofts-another-investment.html' title='Microsoft&apos;s another investment'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-1323600904232459289</id><published>2008-02-04T02:16:00.000Z</published><updated>2008-02-04T02:21:06.822Z</updated><title type='text'>Visual Studio SP1: Installation source for this product is not available</title><content type='html'>While trying to install Visual Studio 2005 SP1, I've encountered this error message: "Installation source for this product is not available".&lt;br /&gt;&lt;br /&gt;After spending my whole day on this problem, I've found this blog entry:&lt;br /&gt;&lt;a href="http://dotnetslackers.com/Visual_Studio/re-49043_Error_When_Installing_Visual_Studio_2005_SP1_The_installation_source_for_this_product_is_not_available.aspx"&gt;http://dotnetslackers.com/...is_not_available.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And this MSDN knowledge base entry &amp; patch:&lt;br /&gt;&lt;a href="http://support.microsoft.com/default.aspx/kb/925336"&gt;http://support.microsoft.com/default.aspx/kb/925336&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And it managed to solve my problem. What a sunday!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-1323600904232459289?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/1323600904232459289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=1323600904232459289' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/1323600904232459289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/1323600904232459289'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2008/02/visual-studio-sp1-installation-source.html' title='Visual Studio SP1: Installation source for this product is not available'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-8471342697334504796</id><published>2008-01-28T04:17:00.000Z</published><updated>2008-01-28T04:28:45.239Z</updated><title type='text'>Sun buys MySQL</title><content type='html'>It is not unreasonable, but it was unexpected; just like &lt;a href="http://monolit.wordpress.com" target="_blank"&gt;Serkan&lt;/a&gt; agreed. And in the &lt;a href="http://digg.com/tech_news/Sun_buys_MySQL" target="_blank"&gt;digg post&lt;/a&gt;, the submitter's comment is: "Didn't see that one coming" :)&lt;br /&gt;&lt;br /&gt;I can understand it, because the current commercial-opensource hybrid status of java is just like how MySQL is running for years. Probably, sun has foreseen more profit in this kind of work model.&lt;br /&gt;&lt;br /&gt;Through a software guy's eye, I can tell that MySQL will strenghten its connections with Java, and it will implement/stabilize features which java used to supply from Oracle. Because of their strong relationship in the industry, this is something important for Oracle, as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-8471342697334504796?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/8471342697334504796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=8471342697334504796' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/8471342697334504796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/8471342697334504796'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2008/01/sun-buys-mysql.html' title='Sun buys MySQL'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-972701515532072691</id><published>2007-12-11T00:45:00.000Z</published><updated>2007-12-11T00:50:30.659Z</updated><title type='text'>DirectX Demo Project</title><content type='html'>Here is my DirectX demo project for Games Programming course at Abertay.&lt;br /&gt;&lt;br /&gt;It makes use of:&lt;br /&gt;- A point light and a directional light&lt;br /&gt;- Shadows (planar)&lt;br /&gt;- Animated meshes&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/xI8r653mX4U&amp;rel=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/xI8r653mX4U&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;And it's the url:&lt;br /&gt;&lt;a target="_blank" href="http://www.youtube.com/watch?v=xI8r653mX4U"&gt;http://www.youtube.com/watch?v=xI8r653mX4U&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now I'm going to start to study for my Maths exam :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-972701515532072691?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/972701515532072691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=972701515532072691' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/972701515532072691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/972701515532072691'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2007/12/directx-demo-project.html' title='DirectX Demo Project'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-421247870526199794</id><published>2007-12-09T20:34:00.000Z</published><updated>2007-12-09T20:48:47.537Z</updated><title type='text'>How to print text in directx</title><content type='html'>First, you need to create a RECT object to set the area on screen, ID3DXFont object, and a D3DCOLOR object:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;RECT lineRect;&lt;br /&gt;ID3DXFont * pDefaultFont;&lt;br /&gt;D3DCOLOR defaultFontColor;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is how to initialise them:&lt;br /&gt;&lt;br /&gt;A rectangle which has a height of 50px, on top of screen:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;lineRect.left = 0;&lt;br /&gt;lineRect.top = 0;&lt;br /&gt;lineRect.right = 1024;&lt;br /&gt;lineRect.bottom = 50;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;How to create a font&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;D3DXCreateFont(Device, 30/*fontHeight*/,&lt;br /&gt;    0, FW_BOLD, 0, FALSE,&lt;br /&gt;    DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,&lt;br /&gt;    DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE,&lt;br /&gt;    TEXT("Calibri"), &amp;pDefaultFont );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I'm not going to deal with the details of D3DXCreateFont method, but you can find the reference here:&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb172773.aspx" target="_blank"&gt;http://msdn2.microsoft.com/en-us/library/bb172773.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;How to set the color:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;defaultFontColor = D3DCOLOR_ARGB(255, 255, 255, 255);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now you can write your text:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;pDefaultFont-&gt;DrawTextA(NULL, "My Text Here", -1, &amp;lineRect, DT_RIGHT, defaultFontColor);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Sometimes I strongly miss the VB6 times:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Print "my text here"&lt;/span&gt;&lt;br /&gt;But of course, they're "incomparable" in terms of speed :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-421247870526199794?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/421247870526199794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=421247870526199794' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/421247870526199794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/421247870526199794'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2007/12/how-to-print-text-in-directx.html' title='How to print text in directx'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-6015636434501112288</id><published>2007-11-15T07:56:00.000Z</published><updated>2007-11-15T07:58:39.180Z</updated><title type='text'>from the 'Scratchware Manifesto'</title><content type='html'>It's a very-must-read for all the game developers, and also a must-read for other developers. So, please read it in &lt;a href="http://www.the-underdogs.info/scratch.php" target="_blank"&gt;its entirety&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;What are the characteristics of vampires? Well, they’re immortal. Strangely enough, a corporation can live forever, too. Morgan Bank, Ford Motors, and General Electric - they can go on and on and on. Another characteristic of vampires? They live by sucking blood. You know the feeling you get when you boot up a new game and it crashes five times in the first 15 minutes? That’s your blood being sucked. The corporation exists for one reason only (and don’t let them tell you otherwise) - to make as much money as it possibly can. It’s like we’re cattle, kept alive for the greedy bloodsuckers to get as much profit as they can out of us. (They treat the Earth the same way, too - ever seen a clear-cut forest? Corporate vampires in action!) Vampires are notoriously hard to kill, and so are corporations. Exxon spilled oil all over Alaska - but it’s still going. Union Carbide killed thousands in Bhopal, India, but it’s still trucking. You can try and sue a corporation, but they have millions of dollars and thousands of lawyers to make sure their evil undead masters remain in control. Bridgestone/Firestone made a bunch of shitty tires, which killed a whole bunch of people in their SUVs. They might get in some trouble, but you can be sure that the corporation will go on. (An interesting fact: many of the faulty tires were made in the Decatur Illinois plant, where the regular workers were on strike. The tires were made by ‘replacement workers’, also known as scabs. Vampires and scabs? Some coincidence.) Vampires also have nests; usually the basement of some dusty castle. The vampires who run America have a nest, too, but theirs is called Wall Street. Vampires have a dark charisma; corporations spend billions on advertising.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-6015636434501112288?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/6015636434501112288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=6015636434501112288' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/6015636434501112288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/6015636434501112288'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2007/11/from-scratchware-manifesto.html' title='from the &apos;Scratchware Manifesto&apos;'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-8664784052151292553</id><published>2007-11-12T05:01:00.000Z</published><updated>2007-11-12T05:05:53.588Z</updated><title type='text'>The upcoming game 'Spore'</title><content type='html'>No doubt, a new hit-title is on the way. &lt;a href="http://en.wikipedia.org/wiki/Will_Wright_%28game_designer%29"&gt;Will Wright&lt;/a&gt;, the designer of The Sims and Sim City, has been started the development of a new game.&lt;br /&gt;&lt;br /&gt;Check out &lt;a href="http://en.wikipedia.org/wiki/Spore_%28video_game%29"&gt;Spore&lt;/a&gt; on wiki&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-8664784052151292553?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/8664784052151292553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=8664784052151292553' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/8664784052151292553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/8664784052151292553'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2007/11/upcoming-game-spare.html' title='The upcoming game &apos;Spore&apos;'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-4281034516667811691</id><published>2007-10-24T23:26:00.000+01:00</published><updated>2007-10-25T01:34:13.477+01:00</updated><title type='text'>Retrieve your windows product key</title><content type='html'>I lost the paper that I'd written my product keys on. Maybe it's still somewhere at my room in Izmir, but my mother couldn't find it unsurprisingly.&lt;br /&gt;&lt;br /&gt;But an angel appeared for help! This program is what it says in its name:&lt;br /&gt;&lt;a href="http://www.magicaljellybean.com/keyfinder.shtml" target="_blank"&gt;Magical Jelly Bean Keyfinder&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"Stupid is who does stupid"&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Forrest Gump's mother&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-4281034516667811691?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/4281034516667811691/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=4281034516667811691' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/4281034516667811691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/4281034516667811691'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2007/10/retrieve-your-windows-product-key.html' title='Retrieve your windows product key'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-3704197497685809839</id><published>2007-10-23T20:28:00.000+01:00</published><updated>2007-10-23T20:33:25.978+01:00</updated><title type='text'>Article: "What is software design?"</title><content type='html'>This is one of the best articles I've ever read about the function of software engineering, and software design. A recommended reading for all butties around this software thing.&lt;br /&gt;&lt;br /&gt;My favourite paragraph:&lt;br /&gt;&lt;blockquote&gt;Also consider how the process of software development is changing. Once upon a time we had the waterfall process. Now we talk of spiral development and rapid prototyping. While such techniques are often justified with terms like "risk abatement" and "shortened product delivery times", they are really just excuses to start coding earlier in the life cycle. This is good. This allows the build/test cycle to start validating and refining the design earlier. It also means that it is more likely that the software designers that developed the top level design are still around to do the detailed design.&lt;/blockquote&gt;&lt;br /&gt;And the link to the article:&lt;br /&gt;&lt;a href="http://www.bleading-edge.com/Publications/C++Journal/Cpjour2.htm" target="_blank"&gt;"What is software design?"&lt;/a&gt;, Jack W. Reeves, ©C++ Journal - 1992&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-3704197497685809839?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/3704197497685809839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=3704197497685809839' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/3704197497685809839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/3704197497685809839'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2007/10/article-what-is-software-design.html' title='Article: &quot;What is software design?&quot;'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-210777255738489285</id><published>2007-10-13T01:31:00.000+01:00</published><updated>2007-10-13T01:49:56.940+01:00</updated><title type='text'>Dundee, 2007</title><content type='html'>After a couple of months, It's time to give an update to this blog.&lt;br /&gt;&lt;br /&gt;The nontrivial things:&lt;br /&gt;- I'm graduated, and titled as a software engineer, at last. Yahoo!&lt;br /&gt;- I've started studying the course MSc Computer Games Technology, at University of Abertay Dundee. With my friends Kaya and Umut. Indeed, Umut is doing Smart Systems.&lt;br /&gt;&lt;br /&gt;This means I'll tend to post CGT-related stuff, here.&lt;br /&gt;&lt;br /&gt;Just to keep the rituel in the first post, this is my new working desk @The Hub, Dundee, Scotland:&lt;br /&gt;&lt;br /&gt;&lt;table style="width:auto;" align="center"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com.tr/gorkempacaci/Other/photo?authkey=sw2P8zAIOs4#5120615040081613538"&gt;&lt;img src="http://lh6.google.com.tr/gorkempacaci/RxAUP6-WUuI/AAAAAAAAAuA/k1XzjK6IPp0/s400/100_2646.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;Kimden &lt;a href="http://picasaweb.google.com.tr/gorkempacaci/Other?authkey=sw2P8zAIOs4"&gt;Other&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;I just remembered why I'm using blogspot. Because it was ten times faster than wordpress. My other blog, which is in Turkish and is hosted on wordpress, is too damn painy to update. Thanks to those bulky AJAX stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-210777255738489285?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/210777255738489285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=210777255738489285' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/210777255738489285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/210777255738489285'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2007/10/dundee-2007.html' title='Dundee, 2007'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-8392878327109206192</id><published>2007-04-05T22:12:00.000+01:00</published><updated>2007-10-24T00:30:16.913+01:00</updated><title type='text'>PHP Data Access Layer Generator</title><content type='html'>&lt;a href="http://www.gorkempacaci.name.tr/dalg/shots/main_screen.jpg"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://www.gorkempacaci.name.tr/dalg/shots/main_screen.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;I've written a program that generates php scripts, using given sql queries. A set of data access functions is generated by the program, including connection methods and protection for sql injection. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gorkempacaci.name.tr/dalg/"&gt;http://www.gorkempacaci.name.tr/dalg/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-8392878327109206192?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/8392878327109206192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=8392878327109206192' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/8392878327109206192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/8392878327109206192'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2007/04/data-access-layer-generator.html' title='PHP Data Access Layer Generator'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-6907165823737965952</id><published>2007-03-13T11:22:00.001Z</published><updated>2007-03-13T11:22:53.214Z</updated><title type='text'>Robert Heinlein</title><content type='html'>"a human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. specialization is for insects."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-6907165823737965952?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/6907165823737965952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=6907165823737965952' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/6907165823737965952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/6907165823737965952'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2007/03/robert-heinlein.html' title='Robert Heinlein'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-6086161772135873130</id><published>2007-01-22T23:26:00.000Z</published><updated>2007-01-22T23:42:06.152Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='thread'/><category scheme='http://www.blogger.com/atom/ns#' term='posix'/><category scheme='http://www.blogger.com/atom/ns#' term='slackware'/><category scheme='http://www.blogger.com/atom/ns#' term='vmware'/><category scheme='http://www.blogger.com/atom/ns#' term='mutex'/><title type='text'>pthread on slackware on vmware on windows xp</title><content type='html'>Yesterday, I had to write a multithreaded application using posix threads on linux, for one of my friends.&lt;br /&gt;We had thought that we could do it by installing slackware linux on a vmware virtual machine running on windows xp. brillant idea, huh?&lt;br /&gt;For early 4 hours, everything was ok. We drawn up state diagrams and wrote trivial code parts to use later.&lt;br /&gt;After that, we set up threading and thread syncronisation using mutexes. Then the nightmare started. Results were inconsistent. Sometimes things went well, and sometimes deadlocks occured.&lt;br /&gt;We could not obviate managing of the conditional variables (pthreads mutexes), and worked different solutions, algorithms for about 4 hours. It was suspicious that Sleep(int) method worked seconds-based, not miliseconds-based as expected on a linux. and bigger values like sleep(1000) did not cause a sleep.&lt;br /&gt;We renounced at late of the evening.&lt;br /&gt;The day after, we requested one of our friends to try the same source on his native linux (pardus).&lt;br /&gt;And a dramatic notice! It had given the expected(correct) results.&lt;br /&gt;-&lt;br /&gt;We think it is vmware. But already so many multithreaded applications work on it. Is it posix threads library version on slackware? We don't know yet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-6086161772135873130?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/6086161772135873130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=6086161772135873130' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/6086161772135873130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/6086161772135873130'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2007/01/pthread-on-slackware-on-vmware-on.html' title='pthread on slackware on vmware on windows xp'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-6144564366202211801</id><published>2007-01-22T15:12:00.000Z</published><updated>2007-01-22T15:31:39.617Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='software design'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='dotnet'/><category scheme='http://www.blogger.com/atom/ns#' term='csharp'/><title type='text'>Conditional("Debug")</title><content type='html'>There's a pretty cool feature in C#(or MSIL compiler?). On a method, you can put a conditional attribute, and calls to that method are only compiled on debug mode. This gives a perfect way to trace how are things going on.&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;public class Test{&lt;br /&gt;[Conditional("Debug")]&lt;br /&gt;public void Method()&lt;br /&gt;{&lt;br /&gt;// ....&lt;br /&gt;}&lt;br /&gt;}&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;Today, I've found a bug in my code, associated with this.&lt;br /&gt;&lt;blockquote&gt;[Conditional("DEBUG")] &lt;/blockquote&gt;&lt;br /&gt;I had written the string in capital letters. But in runtime or compile-time, there's not an error about it. It simply and silently "doesn't work."&lt;br /&gt;&lt;br /&gt;It took an hour to realize this. It would be great if they used an enum, for examle:&lt;br /&gt;&lt;blockquote&gt;[Conditional(ConditionalModes.Debug)]&lt;/blockquote&gt;&lt;br /&gt;or different attribute types for each mode:&lt;br /&gt;&lt;blockquote&gt;[DebugConditional]&lt;/blockquote&gt;&lt;br /&gt;This is not a big thing of course, but these kind of design decisions are important.&lt;br /&gt;I always prefer compile time errors -where possible- :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-6144564366202211801?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/6144564366202211801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=6144564366202211801' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/6144564366202211801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/6144564366202211801'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2007/01/conditionaldebug.html' title='Conditional(&quot;Debug&quot;)'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-5383407128505957902</id><published>2007-01-18T22:44:00.000Z</published><updated>2007-01-19T09:29:41.246Z</updated><title type='text'>SqlDataReader</title><content type='html'>Just like DbCommand objects, using DataReader objects is a pain.&lt;br /&gt;Everytime the same routine: check value, cast, set.&lt;br /&gt;I've automated this with RTTI, too:&lt;br /&gt;&lt;br /&gt;public class DbDataReaderReviver&lt;br /&gt;{&lt;br /&gt;public object ActivateObject(DbDataReader reader, Type typeOfObject)&lt;br /&gt;{&lt;br /&gt;object myObj = System.Activator.CreateInstance(typeOfObject);&lt;br /&gt;FieldInfo[] objFields = typeOfObject.GetFields(BindingFlags.SetField);&lt;br /&gt;string fieldName;&lt;br /&gt;object fieldValue;&lt;br /&gt;foreach (FieldInfo finfo in objFields)&lt;br /&gt;{&lt;br /&gt;fieldName = finfo.Name;&lt;br /&gt;fieldValue = reader[fieldName];&lt;br /&gt;if (fieldValue == null) continue;&lt;br /&gt;finfo.SetValue(myObj, fieldValue);&lt;br /&gt;}&lt;br /&gt;return myObj;&lt;br /&gt;}&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-5383407128505957902?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/5383407128505957902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=5383407128505957902' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/5383407128505957902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/5383407128505957902'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2007/01/dbdatareader.html' title='SqlDataReader'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-545592413371012316</id><published>2007-01-18T22:31:00.000Z</published><updated>2007-10-18T02:14:09.739+01:00</updated><title type='text'>sqlcommand</title><content type='html'>I'm very tired of adding parameters to sqlcommand (or oracledommand, or -best- dbcommand) objects.&lt;br /&gt;&lt;br /&gt;I have written a smart code with RTTI, that fills the parameters of dbcommand objects using an "object instance". First it searches for the member fields of the object, then populates the dbcommand object with these name-value pairs.&lt;br /&gt;&lt;br /&gt;I didn't tested this code, but I know this approach works well.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class &lt;strong&gt;DbCommandBuilder&lt;/strong&gt;&lt;br /&gt;{&lt;br /&gt;  /// summary&lt;br /&gt;  /// Populates a DbCommand object with the public fields of&lt;br /&gt;  /// the given object as parameters.&lt;br /&gt;  /// summary&lt;br /&gt;  /// param name="command" DbCommand reference to fill&lt;br /&gt;  /// param name="obj" Object to get fields of&lt;br /&gt;  public void &lt;strong&gt;BuildCommand&lt;/strong&gt;(&lt;strong&gt;DbCommand&lt;/strong&gt; command, &lt;strong&gt;object&lt;/strong&gt; obj)&lt;br /&gt;  {&lt;br /&gt;    Type type = obj.GetType();&lt;br /&gt;    FieldInfo[] finfos = type.GetFields(BindingFlags.Public);&lt;br /&gt;    string fieldName;&lt;br /&gt;    object fieldValue;&lt;br /&gt;    foreach (FieldInfo fin in finfos)&lt;br /&gt;    {&lt;br /&gt;      fieldName = fin.Name;&lt;br /&gt;      fieldValue = fin.GetValue(obj);&lt;br /&gt;      command.Parameters.Add(fieldName);&lt;br /&gt;      command.Parameters[fieldName].Value = fieldValue;&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-545592413371012316?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/545592413371012316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=545592413371012316' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/545592413371012316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/545592413371012316'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2007/01/sqlcommand.html' title='sqlcommand'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-5085638543462611186</id><published>2007-01-18T22:22:00.000Z</published><updated>2008-12-09T03:42:41.377Z</updated><title type='text'>my desk</title><content type='html'>&lt;div style="TEXT-ALIGN: center"&gt;&lt;img id="BLOGGER_PHOTO_ID_" alt="" src="http://3.bp.blogspot.com/_wRfK6TvQU-8/Ra_zJ1b-HFI/AAAAAAAAAAM/wh1Q45Nwwhg/s320/100_0059.jpg" border="0" /&gt;&lt;br /&gt;This is where I work at home.&lt;br /&gt;I love my desk. &lt;/div&gt;&lt;div style="CLEAR: both; TEXT-ALIGN: center"&gt;&lt;a href="http://picasa.google.com/blogger/" target="ext"&gt;&lt;img style="BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; BACKGROUND: 0% 50%; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px; moz-background-clip: initial; moz-background-origin: initial; moz-background-inline-policy: initial" alt="Posted by Picasa" src="http://photos1.blogger.com/pbp.gif" align="middle" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-5085638543462611186?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/5085638543462611186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=5085638543462611186' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/5085638543462611186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/5085638543462611186'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2007/01/this-is-where-i-work-at-home.html' title='my desk'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_wRfK6TvQU-8/Ra_zJ1b-HFI/AAAAAAAAAAM/wh1Q45Nwwhg/s72-c/100_0059.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-193781172461241103</id><published>2007-01-18T21:21:00.000Z</published><updated>2007-01-18T21:26:20.203Z</updated><title type='text'>fresh start</title><content type='html'>Or better, from now on I will start a seperate blog in English.&lt;br /&gt;&lt;br /&gt;In fact, I don't like writing in English so much, writing in Turkish is much more joy for me.&lt;br /&gt;&lt;br /&gt;Apologizes to good-english-knowers for my non-perfect English. I hope somebody corrects me when I make mistake.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-193781172461241103?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/193781172461241103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=193781172461241103' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/193781172461241103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/193781172461241103'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2007/01/fresh-start.html' title='fresh start'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-930406498983511335.post-3190302251480832987</id><published>2007-01-18T20:38:00.000Z</published><updated>2007-01-18T20:39:55.061Z</updated><title type='text'>wordpress</title><content type='html'>Aslına bakarsanız blogspot'ta günlük tutmayı düşünmüştüm. Ama bir hesap açıp biraz kurcaladıktan sonra (yavaşlığını bir yana bırakırsak) wordpress'ten buraya taşınmanın attan inip eşeğe binmek olacağını farkettim.&lt;br /&gt;&lt;br /&gt;Export import bile yapmaktan aciz :(&lt;br /&gt;&lt;br /&gt;Velhasıl-ı kelam:&lt;br /&gt;&lt;a href="http://gorkem.wordpress.com"&gt;http://gorkem.wordpress.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/930406498983511335-3190302251480832987?l=gorkempacaci.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gorkempacaci.blogspot.com/feeds/3190302251480832987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=930406498983511335&amp;postID=3190302251480832987' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/3190302251480832987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/930406498983511335/posts/default/3190302251480832987'/><link rel='alternate' type='text/html' href='http://gorkempacaci.blogspot.com/2007/01/wordpress.html' title='wordpress'/><author><name>Görkem PAÇACI</name><uri>http://www.blogger.com/profile/17727893902496568826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_wRfK6TvQU-8/SwU3wnDYLMI/AAAAAAAACos/A9D0Ybp7dxY/S220/westport.jpg'/></author><thr:total>0</thr:total></entry></feed>
