<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Shadowlessness</title>
	<atom:link href="http://yaserzt.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://yaserzt.com/blog</link>
	<description>Shadowlessness, and how it feels.</description>
	<lastBuildDate>Fri, 22 Jan 2010 21:03:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>fa</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Tread Softly, Johnny Walker!</title>
		<link>http://yaserzt.com/blog/2010/01/16/tread-softly-johnny-walker/</link>
		<comments>http://yaserzt.com/blog/2010/01/16/tread-softly-johnny-walker/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 21:02:32 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[ignore]]></category>
		<category><![CDATA[life]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=446</guid>
		<description><![CDATA[Had I the heavens&#8217; embroidered cloths,
Enwrought with golden and silver light,
The blue and the dim and the dark cloths
Of night and light and the half-light,
I would spread the cloths under your feet:
But I, being poor, have only my dreams;
I have spread my dreams under your feet,
Tread softly because you tread on my dreams.
This, of course, [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Had I the heavens&#8217; embroidered cloths,<br />
Enwrought with golden and silver light,<br />
The blue and the dim and the dark cloths<br />
Of night and light and the half-light,<br />
I would spread the cloths under your feet:<br />
But I, being poor, have only my dreams;<br />
I have spread my dreams under your feet,<br />
<strong>Tread softly because you tread on my dreams.</strong></p></blockquote>
<p>This, of course, applies specially to the &#8220;Black Label&#8221;. However, only those who know what I&#8217;m talking about can possibly know what I&#8217;m talking about! <img src='http://yaserzt.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2010/01/16/tread-softly-johnny-walker/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Problem</title>
		<link>http://yaserzt.com/blog/2010/01/11/the-problem/</link>
		<comments>http://yaserzt.com/blog/2010/01/11/the-problem/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 09:31:49 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[stupidity]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=444</guid>
		<description><![CDATA[Religion is harmful. Throughout history so much conflict, war and misery has been caused by organized religion that religious people hardly even see it. They probably attribute it to human nature, or &#8220;other religions.&#8221;
I believe, and I think people would agree if they think about it, that religion has been the most effective and most [...]]]></description>
			<content:encoded><![CDATA[<p>Religion is harmful. Throughout history so much conflict, war and misery has been caused by organized religion that religious people hardly even see it. They probably attribute it to human nature, or &#8220;other religions.&#8221;<br />
I believe, and I think people would agree if they think about it, that religion has been the most effective and most used tool for mass conditioning and mass brain-washing. It has always brought an illogical imbalance to societies and has caused endless strife and animosity within them.<br />
I&#8217;m not talking here about the wrongness of the concept of religion. All religion is bullshit, and all religion that divides people based on any criteria (believers and non-believers, sinners and saints, etc.) is harmful and must be treated as a disease of mind, but I&#8217;m not here to try to prove what seems to be obvious if you forget your childhood upbringing and conditioning. What I&#8217;m talking about is the danger and destructive effect of systematic, organized and political religion.</p>
<p>You look at human history, and almost every time there has been a war or oppression or genocide, it has had its roots in religion, in one way or the other. But, you might object, religion has brought happiness and peace of mind to billions. Well, while the extent of the happiness and the number of people affected by it is debatable, it can&#8217;t be denied that religious beliefs have been beneficial to many. But so has been the cartoons made by Disney! Have they not brought joy and happiness to hundreds of millions or perhaps billions, too? And there hasn&#8217;t been any wars or mass murders or tortures caused by a Walt Disney film. We must start analyzing the benefit/harm ratio of religions rationally.</p>
<p>So for some reason, among all the works of fiction it has been religion and religious materials that have gained special attention and have been given special status. Why? I don&#8217;t know. Maybe they have had more time with our collective brains to turn them into mush and turn us into brainless zombies. Maybe if you think about religion in terms of the theory of memes, it will become apparent that <em>everything</em> about a religion, specially the more widespread ones, is evolved with one most important purpose: to let it survive. That usually means spreading to as many people as possible. That means bringing people in and keeping them hooked up and destroying its rivals, be they other religions or science or whatnot. And we humans, have been the tools to be controlled by these vicious, dangerous and single-minded memes to ensure <em>their</em> survival.</p>
<p>If you think the purpose of any long lasting and popular religion is human happiness, you should think again. <strong>The purpose of any religion is its own survival and dominance.</strong> A few million people here and there doesn&#8217;t make much difference as long as the long-term success of that meme is guaranteed.</p>
<p>To those of you who still think, in this day and age, that any idea like religion should be enforced or even be allowed to be advertised or be a part of any government or ruling body, I can only say to look at history. Look at your own lives! Look at our own lives and the lives of those like us!</p>
<p>For those libertarians and agnostics among you, I have to say that I don&#8217;t think religion is something to be ignored and always categorized as a personal choice. Religion is harmful and dangerous. It&#8217;s not only publicly recognized dangerous religions and ideologies like Nazism that are dangerous, but the idea of any mass of humans controlled by any religion. We cannot afford to remain agnostic any more. People are entitled to their own beliefs of course, but those beliefs should never ever be the basis for special treatment or ever be let to come to power anywhere at any time.</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2010/01/11/the-problem/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>The Joker</title>
		<link>http://yaserzt.com/blog/2010/01/08/the-joker/</link>
		<comments>http://yaserzt.com/blog/2010/01/08/the-joker/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 12:47:19 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[fiction]]></category>
		<category><![CDATA[ignore]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=441</guid>
		<description><![CDATA[- This is boring.
- Yes, it is. It&#8217;s all boring.
- Except the bat. He is not boring.
- Not all the time though. He gets boring sometimes, with his ethics and stuff.
- But he can be very entertaining too.
- Agreed!
- I&#8217;m bored!
- Yeah, we are. I wonder what happens if I shoot that guy.
- Hehehe! We [...]]]></description>
			<content:encoded><![CDATA[<p>- This is boring.<br />
- Yes, it is. It&#8217;s all boring.<br />
- Except the bat. He is not boring.<br />
- Not all the time though. He gets boring sometimes, with his ethics and stuff.<br />
- But he can be very entertaining too.<br />
- Agreed!<br />
- I&#8217;m bored!<br />
- Yeah, we are. I wonder what happens if I shoot that guy.<br />
- Hehehe! We got him in the gut!<br />
- Yeah, we did. His stomach acid must be gushing out onto the rest of his organs. Imagine the fun in there!<br />
- But why did I shot the man who was supposed to open the safe for me?<br />
- Who cares?! Let&#8217;s kill someone else too!<br />
- Let&#8217;s throw the gun in the middle of the hostages and see what happens!<br />
- Oooh! Look at them going for it.<br />
- Look at that idiot henchman of mine mowing them down with his Uzi!<br />
- This is entertaining!<br />
- Yes it is. Yes it is.<br />
&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2010/01/08/the-joker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Human and the Machine</title>
		<link>http://yaserzt.com/blog/2009/12/16/the-human-and-the-machine/</link>
		<comments>http://yaserzt.com/blog/2009/12/16/the-human-and-the-machine/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 07:27:44 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[life]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=439</guid>
		<description><![CDATA[I was watching George Dyson&#8217;s interesting presentation at TED about birth of the digital computer, and something rather frightening occurred to me.
When I started out with computers, maybe 18 years ago, I was in awe of them. Computers and what they did were a closed book to me, the way a great musician&#8217;s work is [...]]]></description>
			<content:encoded><![CDATA[<p>I was watching George Dyson&#8217;s <a href="http://www.ted.com/talks/george_dyson_at_the_birth_of_the_computer.html">interesting presentation</a> at TED about birth of the digital computer, and something rather frightening occurred to me.<br />
When I started out with computers, maybe 18 years ago, I was in awe of them. Computers and what they did were a closed book to me, the way a great musician&#8217;s work is shrouded in mystery for me, yet I was enjoying their output and imagining what else they would do. Pretty much everything surprised and delighted me. As I grew more familiar with their working and started writing code, my awe remained but it also transformed, to a kind that maybe a musics student feels when seeing a true master play.<br />
The awe and delight pretty much remained as I grew closer and closer to the machine, I knew more, but it still was like seeing a loved one achieve a great accomplishment or part of a great orchestra that plays a fantastic piece. Seeing beauty even from inside inspires awe. Of course, I&#8217;m not suggesting that I was any good at any time, merely describing what I felt.<br />
In general, it was a like a love affair. Every little things, even the hiccups were strangely endearing. I wouldn&#8217;t think of computers as a machine. Of course, the hardware is a piece of dead equipment, but there is something else in there and I think I felt it. The Ghost in the Machine. I was in love with the ideas behind the hardware. I never thought of myself as a master of the machine, or it just another tool like a can opener or something. We were conversing with each other and we took nothing for granted. If something didn&#8217;t work, it was neither my fault, nor its; the problem was in the communication.<br />
But then my view started to change. I started to rely on certain things to work and certain things to go wrong. I started to view the computer as a terminal for information, as a tool for bilateral delivery of entertainment, data, software or communication with other humans. The machine started to get transparent in the process, the way your door is a transparent method of getting in and out of your home. The door is there, and you know how to use it, but the door itself is not at all important. The stuff and places on either side is what is important.<br />
This change kinda creeped onto me. Today I was forced to think about it, and I was shocked and terrified to realize that most of that awe has shifted from the machine to other people. The machine is no longer there, only those who designed and built the hardware and software. I don&#8217;t know how to exactly explain my feeling, and my depiction here is not exactly accurate. But I have lost the reverence for the love of my life, and I am a worse person for it. And I am sadder, and certainly a worse programmer, which is ultimately the most important aspect of my life. Oh, I do write better code and probably design better today than any time in the past, but I am nonetheless a worse coder and programmer, because I have lost the sparkle, and the love and ability to be pleasantly surprised no matter what.</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/12/16/the-human-and-the-machine/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>United States of Zombieland</title>
		<link>http://yaserzt.com/blog/2009/11/20/united-states-of-zombieland/</link>
		<comments>http://yaserzt.com/blog/2009/11/20/united-states-of-zombieland/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 04:33:37 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[entertainment]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/2009/11/20/united-states-of-zombieland/</guid>
		<description><![CDATA[The other day, my brother Ehsan recommended two new movies for me to see. One was Tarantino&#8217;s &#8220;Inglorious Basterds&#8220;, which is of course a no-brainer, and the other was &#8220;Zombieland&#8220;. Man his taste is impeccable!
I am now exactly 3 minutes and 14 seconds into the film (I swear to all the Random Number Gods that [...]]]></description>
			<content:encoded><![CDATA[<p>The other day, my brother Ehsan recommended two new movies for me to see. One was <a href="http://en.wikipedia.org/wiki/Quentin_Tarantino">Tarantino</a>&#8217;s &#8220;<a href="http://www.imdb.com/title/tt0361748/">Inglorious Basterds</a>&#8220;, which is of course a no-brainer, and the other was &#8220;<a href="http://www.imdb.com/title/tt1156398/">Zombieland</a>&#8220;. Man his taste is impeccable!<br />
I am now exactly 3 minutes and 14 seconds into the film (I swear to all the Random Number Gods that it was a coincidence!) and I <em>love</em> this movie already!<br />
Guess what the track on the film&#8217;s opening credits is! Frakking &#8220;<a href="http://en.wikipedia.org/wiki/For_Whom_the_Bell_Tolls_%28Metallica_song%29">For Whom the Bell Tolls</a>&#8220;!</p>
<p>P.S. I&#8217;m finally back in Tehran after a three-hour-plus flight delay.</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/11/20/united-states-of-zombieland/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Dragon Age, plus God of War Collection</title>
		<link>http://yaserzt.com/blog/2009/11/06/dragon-age-plus-god-of-war-collection/</link>
		<comments>http://yaserzt.com/blog/2009/11/06/dragon-age-plus-god-of-war-collection/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 15:19:26 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[entertainment]]></category>
		<category><![CDATA[noteworthy]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/2009/11/06/dragon-age-plus-god-of-war-collection/</guid>
		<description><![CDATA[I had heard of the new Bioware RPG Dragon Age: Origins but I guess I had forgotten about it. Today, I stumbled upon a couple of reviews and some videos and now I&#8217;m in love with the game! It appears to be very long (which probably means a few months of gameplay for me; yay!), [...]]]></description>
			<content:encoded><![CDATA[<p>I had heard of the new Bioware RPG <a href="http://dragonage.bioware.com/"><strong>Dragon Age: Origins</strong></a> but I guess I had forgotten about it. Today, I stumbled upon a couple of reviews and some videos and now I&#8217;m in love with the game! It appears to be very long (which probably means a few months of gameplay for me; yay!), difficult, deep and true to classic Bioware-RPGs. Almost everyone calls it a great successor to the Baldur&#8217;s Gate duo. And I enjoy Bioware games, from Baldur&#8217;s Gate and Neverwinter Nights to Mass Effect (yes, even KOTOR games!) My only worry is the departure from almost strict D&#038;D ruleset of BG and NWN.<br />
In any case, I&#8217;m downloading the whole 8GBs right now, unless somebody knows whether stores over here have got the game?</p>
<p>In other news, I finally got my hands on the <strong>God of War Collection</strong> trailer. For those rare GoW-challenged people among my audience, the Collection is a remastered version of the first two God of War games for the PS3 (they where released for the PS2 originally.) It seems that, as they had promised, SONY has not changed anything in the games, and just packed some higher resolution textures and (maybe) animations, which is a wise move. The first two GoWs deserve to be preserve at the masterpiece of gameplay they are. This will be release this month.<br />
Obviously, the above means I <em>have</em> to get my own PS3. As soon as I figure out a robust solution to get both video and audio out of the PS3 and into my 1080p-capable but HDMI-incapable monitor and my speakers, I&#8217;m taking the trip to the Toopkhuneh(!) square and getting me a 120GiB PS3 Slim.</p>
<p>In yet other news, late last month (a day before my own birthday in fact) the twelfth book in the amazing and fantastic fantasy series <strong>The Wheel of Time</strong> has been released. It was supposed to be in November too IIRC, which makes the release a nice surprise. I&#8217;m already a fourth into the book and I&#8217;m liking it! May Robert Jordan rest in pieces&#8230; oops!&#8230; rest in peace.<br />
I have one thing to say to anyone who likes high fantasy at all: <em>GO READ THE BOOKS</em>. The whole 12000-13000 pages of pure immersion and greatness. Doesn&#8217;t matter what other people say. I have read enough fantasy series to know which one is great! Go read it. Read the first book if you feel you don&#8217;t have the time. Do yourself a favor.</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/11/06/dragon-age-plus-god-of-war-collection/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title></title>
		<link>http://yaserzt.com/blog/2009/10/30/431/</link>
		<comments>http://yaserzt.com/blog/2009/10/30/431/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 00:44:37 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[ignore]]></category>
		<category><![CDATA[life]]></category>
		<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=431</guid>
		<description><![CDATA[Tonight was the first time ever that I drank alone. I was, am, in a very bad mood. I sat on my couch and downed a third of bottle of whiskey, and then I cooked for myself too (that&#8217;s almost another first.) No matter how hard I try to forget what I did that led [...]]]></description>
			<content:encoded><![CDATA[<p>Tonight was the first time ever that I drank alone. I was, am, in a very bad mood. I sat on my couch and downed a third of bottle of whiskey, and then I cooked for myself too (that&#8217;s almost another first.) No matter how hard I try to forget what I did that led to this evening, I can&#8217;t.<br />
I&#8217;m sitting here, alone, and I am sinking. I can&#8217;t stop crying. Remorse is not even an option. Even death is not an option.<br />
I realized tonight that I am a real asshole. Not a lazy guy, not a very bad procrastinator, not a liar, not a completely useless person, not a drama queen; a real asshole and a very bad human being.<br />
I think I need professional help. Shit. I do.</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/10/30/431/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Lighning Through the Skull</title>
		<link>http://yaserzt.com/blog/2009/10/28/lighning-through-the-skull/</link>
		<comments>http://yaserzt.com/blog/2009/10/28/lighning-through-the-skull/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 01:54:38 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[ignore]]></category>
		<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=426</guid>
		<description><![CDATA[I am walking on asphalt, on an endless field of black asphalt, when out of the black black sky, a single bolt of lightning hits me.
My eyes are the first things that explode out of their sockets. My hair catches on fire. My brain evaporates instantly, and the high pressure mixture pours out of my [...]]]></description>
			<content:encoded><![CDATA[<p>I am walking on asphalt, on an endless field of black asphalt, when out of the black black sky, a single bolt of lightning hits me.<br />
My eyes are the first things that explode out of their sockets. My hair catches on fire. My brain evaporates instantly, and the high pressure mixture pours out of my ears and nose. The skin on my eyeless face melts off. My skull shatters. My jaws spasm so hard that not only I bite off my tongue that is caught between them, but also most of my teeth are crushed to bits. My blood boils in a flash and my heart explodes inside my chest along with most of my major veins. The liquid in my stomach and my intestines flash boils too and burns through my abdominal wall. Almost all the muscle and flesh and sinew in my body are busy tearing themselves off from the rest or trying to burn. Some of my bones dry out in the space between two seconds and get ground into a thousand pieces. The skin, flesh and tissue of my extremities melt and my fingers and toes (not to mention the rest) are fused together in a shapeless lump. My feet have already turned to liquid wax and are spreading on the ground.<br />
The charred wreckage that once spent his nights <em>trying</em> to optimize his assembly code remains there under the black black sky. Good thing I didn&#8217;t have my laptop with me, or the fall could have scratched it.</p>
<p>It&#8217;s that damn Gates&#8217; birthday again.</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/10/28/lighning-through-the-skull/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fun with C++: new, delete and Some of the Rest of the Story</title>
		<link>http://yaserzt.com/blog/2009/10/22/fun-with-c-new-delete-and-some-of-the-rest-of-the-story/</link>
		<comments>http://yaserzt.com/blog/2009/10/22/fun-with-c-new-delete-and-some-of-the-rest-of-the-story/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 02:57:59 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=416</guid>
		<description><![CDATA[Every C++ programmer knows new and delete and how they work. At least it must be so. I sure as hell didn&#8217;t know all the theory and detail behind C++ memory management facilities until 3-4 years ago, and I&#8217;m obviously still learning the practical details. So, please bear with me and see if there are [...]]]></description>
			<content:encoded><![CDATA[<p>Every C++ programmer knows <tt>new</tt> and <tt>delete</tt> and how they work. At least it must be so. I sure as hell didn&#8217;t know all the theory and detail behind C++ memory management facilities until 3-4 years ago, and I&#8217;m obviously still learning the practical details. So, please bear with me and see if there are things that you can learn about these old pals of ours, <tt>new</tt> and <tt>delete</tt>.</p>
<p>First, we all should know that <tt>new</tt> and <tt>delete</tt> are C++ operators, with all their facilities (and shortcomings, of course.) But not exactly like other operators, you can override them at a global level for every type that does not provide its own type-specific such operators. These global operators are provided as part of the C++ runtime library and are easily overridden. Their declarations are:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #666666;">// The single-object versions</span>
<span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> operator <span style="color: #0000dd;">new</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">size_t</span> mem_size<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">void</span> operator <span style="color: #0000dd;">delete</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> mem_block<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #666666;">// The array versions</span>
<span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> operator <span style="color: #0000dd;">new</span><span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">size_t</span> mem_size<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">void</span> operator <span style="color: #0000dd;">delete</span><span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> mem_block<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></td></tr></table></div>

<p>What <tt>new</tt> does is allocate a block of memory, and then call the constructor for the type with the address of the newly allocated block passed in as the <tt>this</tt> pointer. A <tt>delete</tt> call does the reverse; calling the destructor and then de-allocating the memory. The difference between the single-object versions and the array versions is only in the number of c&#8217;tor/d&#8217;tors they call. It amazes me how many C++ programmers don&#8217;t know and don&#8217;t care about details such as this (if you are programming in C++, these kind of details can and will bite you in the places you don&#8217;t want to be bitten!) If you fail to match them correctly, they allocate and de-allocate the correct amount of memory for the array or the single object, they just might not call constructors and destructors for all the objects being allocated or freed. That&#8217;s it.</p>
<p>Also, there is that small detail about exception-handling handling (yeah, two &#8220;handling&#8221;s!) The <tt>new</tt> operators may only <tt>throw</tt> an object of a sub-type of <tt>std::bad_alloc</tt> and only in the event that the requested amount of memory cannot be allocated. <tt>delete</tt> operators should never throw any exceptions (just like destructors. Remember that!) So, the correct<em>er</em> declaration for these operators would be:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #666666;">// The single-object versions</span>
<span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> operator <span style="color: #0000dd;">new</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">size_t</span> mem_size<span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">throw</span> <span style="color: #008000;">&#40;</span>std<span style="color: #008080;">::</span><span style="color: #007788;">bad_alloc</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">void</span> operator <span style="color: #0000dd;">delete</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> mem_block<span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">throw</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #666666;">// The array versions</span>
<span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> operator <span style="color: #0000dd;">new</span><span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">size_t</span> mem_size<span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">throw</span> <span style="color: #008000;">&#40;</span>std<span style="color: #008080;">::</span><span style="color: #007788;">bad_alloc</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">void</span> operator <span style="color: #0000dd;">delete</span><span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> mem_block<span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">throw</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></td></tr></table></div>

<p>Again, it is amazing how many programmers either don&#8217;t know about function exception specification and exception safety or just don&#8217;t use them (that includes me.) Of course, compiler providers are at least a little to blame here too. For example, Microsoft C++ compiler only distinguishes the empty exception list after a function declaration (meaning it doesn&#8217;t throw anything.) Anything else put there, just is taken to mean the default behavior is used (i.e. this function does throw something sometimes.)<br />
In the meantime, the relationship between C++ programmers and exception handling remains in the love/hate/ignorance/hate/apathy/hate stage.</p>
<p>Later on, I&#8217;m going to talk abut overloading these global operators for fun and profit. Stay tuned! <img src='http://yaserzt.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Obviously, a related problem to memory management is calling the c&#8217;tor and d&#8217;tor for an object directly. Uses for this may not be immediately apparent, but as a few examples I could name implementing good smart pointers, memory pools, memory managers, garbage collectors, generic object containers (e.g. <tt>std::vector</tt>) and such.<br />
You probably already know how to call the destructor on an instance directly. If you have a pointer <tt>x</tt> to an object of type <tt>T</tt>, you can call its d&#8217;tor like this: <tt>x->~T()</tt> (note that you should not generally call the d&#8217;tor in this way, unless you yourself have called the c&#8217;tor directly on that instance as well.) Calling the constructor is a bit trickier though (not really; I&#8217;m just being foreboding!)</p>
<p>What you should realize is that you can overload <tt>new</tt> and <tt>delete</tt> with different signatures that the ones above. You can add arguments and of different types. There are a few other signatures for these two provided by the standard C++ library (yeah, there are others!) The less interesting of them are:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>8
9
10
11
12
</pre></td><td class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> operator <span style="color: #0000dd;">new</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">size_t</span> mem_size, std<span style="color: #008080;">::</span><span style="color: #007788;">nothrow_t</span> <span style="color: #0000ff;">const</span> <span style="color: #000040;">&amp;</span> please_dont<span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">throw</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">void</span> operator <span style="color: #0000dd;">delete</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> mem_block, std<span style="color: #008080;">::</span><span style="color: #007788;">nothrow_t</span> <span style="color: #0000ff;">const</span> <span style="color: #000040;">&amp;</span> please_dont<span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">throw</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> operator <span style="color: #0000dd;">new</span><span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">size_t</span> mem_size, <span style="color: #0000ff;">const</span> std<span style="color: #008080;">::</span><span style="color: #007788;">nothrow_t</span> <span style="color: #000040;">&amp;</span> please_dont<span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">throw</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">void</span> operator <span style="color: #0000dd;">delete</span><span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> mem_block, std<span style="color: #008080;">::</span><span style="color: #007788;">nothrow_t</span> <span style="color: #0000ff;">const</span> <span style="color: #000040;">&amp;</span> please_dont<span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">throw</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></td></tr></table></div>

<p>Forget about the <tt>delete</tt>s for a minute. The additional parameters to the <tt>new</tt> calls above are actually not used inside of the functions. Any object of type <tt>std::nothrow_t</tt> will suffice as the second parameter; it will be there just to signal the compiler to use this particular overload of the operator, which doesn&#8217;t throw any exceptions whatsoever. I just need to emphasize again that the regular <tt>new</tt> never returns a <tt>NULL</tt> pointer. It just throws an exception. But this one returns a 0 pointer upon failure and never throws anything, being it rocks, shoes or exceptions. The syntax for calling them, as you might suspect, is peculiar:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>13
14
15
16
17
18
19
20
</pre></td><td class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#include &lt;new&gt;  // for std::nothrow</span>
<span style="color: #666666;">//...</span>
T <span style="color: #000040;">*</span> p <span style="color: #000080;">=</span> <span style="color: #0000dd;">new</span> <span style="color: #008000;">&#40;</span>std<span style="color: #008080;">::</span><span style="color: #007788;">nothrow</span><span style="color: #008000;">&#41;</span> T <span style="color: #008000;">&#40;</span><span style="color: #ff0000; font-style: italic;">/* usual constructor parameters */</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #666666;">// The line above calls a particular &quot;new&quot; overload with two</span>
<span style="color: #666666;">// parameters: a size_t and a std::nothrow_t.</span>
<span style="color: #666666;">// Oh, and std::nothrow is just an object of type std::nothrow_t.</span>
<span style="color: #666666;">//... </span>
<span style="color: #0000dd;">delete</span> p<span style="color: #008080;">;</span></pre></td></tr></table></div>

<p>Notice that I didn&#8217;t call the <tt>delete</tt> with any extra parameters or anything. In fact, <em>there is no syntax in C++ for calling <tt>delete</tt> with any parameters!</em> Besides, <tt>delete</tt> is already a non-throwing function. So what gives?! Why is there a paired <tt>delete</tt> for every frakking <tt>new</tt> when there is no frakking way of calling them?! You should keep your cool. I may explain them (if you don&#8217;t already know,) or we can leave the subject as an exercise. I would just say that the paired <tt>delete</tt> is called by the code generated by the compiler in a very specific situation.</p>
<p>Note that anything other than the straightforward, unary <tt>new</tt> and <tt>delete</tt> is called a &#8220;<em>placement</em> <tt>new</tt>/<tt>delete</tt>&#8220;. However, I&#8217;ve heard the term be used for a specific overload, which is more interesting and looks like this:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>21
22
23
24
25
</pre></td><td class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> operator <span style="color: #0000dd;">new</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">size_t</span> mem_size, <span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> mem_ptr<span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">throw</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">void</span> operator <span style="color: #0000dd;">delete</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> mem_block, <span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> mem_ptr<span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">throw</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> operator <span style="color: #0000dd;">new</span><span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">size_t</span> mem_size, <span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> mem_ptr<span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">throw</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">void</span> operator <span style="color: #0000dd;">delete</span><span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> mem_block, <span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> mem_ptr<span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">throw</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></td></tr></table></div>

<p>The implementations for the above operators are really simple. Here&#8217;s a complete listing:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
</pre></td><td class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> operator <span style="color: #0000dd;">new</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">size_t</span> mem_size, <span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> mem_ptr<span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">throw</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">return</span> mem_ptr<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> operator <span style="color: #0000dd;">delete</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> mem_block, <span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> mem_ptr<span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">throw</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> operator <span style="color: #0000dd;">new</span><span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">size_t</span> mem_size, <span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> mem_ptr<span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">throw</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">return</span> mem_ptr<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> operator <span style="color: #0000dd;">delete</span><span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> mem_block, <span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> mem_ptr<span style="color: #008000;">&#41;</span> <span style="color: #0000ff;">throw</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>Note that although I haven&#8217;t written it, the constructor and destructor calls happen outside of my control. These versions of <tt>new</tt> and <tt>delete</tt> are used when we <em>don&#8217;t</em> want to allocate or free any memory, and just want the constructors and destructors to be called. For <tt>new</tt>, we just pass in a pointer to another sufficiently-sized memory location and ask the compiler to generate the code to call the c&#8217;tor upon that area of memory. That&#8217;s how we call a c&#8217;tor directly. We procure some memory area from somewhere and use that, like this:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>43
44
45
</pre></td><td class="code"><pre class="cpp" style="font-family:monospace;">T <span style="color: #000040;">*</span> x <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>T <span style="color: #000040;">*</span><span style="color: #008000;">&#41;</span><span style="color: #0000dd;">malloc</span> <span style="color: #008000;">&#40;</span><span style="color: #0000dd;">10</span> <span style="color: #000040;">*</span> <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span>T<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">unsigned</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">10</span><span style="color: #008080;">;</span> <span style="color: #000040;">++</span>i<span style="color: #008000;">&#41;</span>
    x<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #0000dd;">new</span> <span style="color: #008000;">&#40;</span>x <span style="color: #000040;">+</span> i<span style="color: #008000;">&#41;</span> T <span style="color: #008000;">&#40;</span><span style="color: #ff0000; font-style: italic;">/*usual c'tor params. */</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></pre></td></tr></table></div>

<p>These standard placement operators cannot be hidden or overridden in user code, but there is still a ton of fun to be had.</p>
<p>You can very easily replace the old, simple and default operators with an implementation of yours, a la:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>46
47
48
49
50
51
52
53
54
55
56
57
58
59
</pre></td><td class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> operator <span style="color: #0000dd;">new</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">size_t</span> mem_size<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> ret <span style="color: #000080;">=</span> <span style="color: #0000dd;">malloc</span> <span style="color: #008000;">&#40;</span>mem_size<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #0000dd;">0</span> <span style="color: #000080;">==</span> ret<span style="color: #008000;">&#41;</span>
        <span style="color: #0000ff;">throw</span> std<span style="color: #008080;">::</span><span style="color: #007788;">bad_alloc</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">return</span> ret<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> <span style="color: #0000dd;">delete</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">void</span> <span style="color: #000040;">*</span> mem_block<span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
    <span style="color: #0000dd;">free</span> <span style="color: #008000;">&#40;</span>mem_block<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #666666;">// the array versions are exactly the same</span></pre></td></tr></table></div>

<p>As I have stated earlier, the c&#8217;tor/d&#8217;tor calls are generated automatically for you by the compiler. So now you are free to write your own memory manager!</p>
<p>The way that memory manager/debugger/helper/whatevers usually work under the hood is that they allocate more memory than you have requested, and put their own junk right before and/or right after the area that gets passed back to the user (that&#8217;s a bad way to do memory management, but that one is a long story.) Some of the stuff that are usually kept there include a pointer to the next and/or previous allocated block of memory (so all the blocks form a linked list,) sentinel values right before and right after the user area to detect buffer overruns (e.g. <tt>0xdeadbabe</tt>,) the size of the memory block, the code file/line/function/module that allocated this particular block and so on and so forth. Actually, your default memory manager in the CRT is doing this right now. Just <tt>new</tt> two large-enough blocks of memory and compare their address differences with the size of the first block. The runtime accompanying some compilers (like VC++) even exposes their internal data structures and means to work with the memory manager (although rather passively.)</p>
<p>You need to keep in mind though, that what I have discussed so far barely scratches the surface of writing memory managers. These are just practicalities and implementation details; the state of the art on the theory of the matter and memory allocation algorithms, policies and mechanisms can fill several books. Even on the implementation side, there are really serious issues with performance, cache-friendliness, thread-safety, multiple thread support, etc. need taking care of.<br />
Besides, much (if not most) of the memory (de)allocation going on in a C++ program these days go through C or operation system API, shared object files (DLLs,) through third part code or through STL, all of which bypass the basic technique discussed above. So, if you really are serious, you should investigate the existing memory debuggers or memory leak detectors or memory managers. There are several open source ones out there, with various degrees of sophistication and complexity. Have fun! (But for what it&#8217;s worth, I should mention that we have used a memory leak detector using nothing but this technique in <a href="http://garshasp.com/">Garshasp</a> and a similar project before, and in both projects it has been a great help.)</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/10/22/fun-with-c-new-delete-and-some-of-the-rest-of-the-story/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Darth Vader in the &#8220;House&#8221;!</title>
		<link>http://yaserzt.com/blog/2009/10/06/darth-vader-in-the-house/</link>
		<comments>http://yaserzt.com/blog/2009/10/06/darth-vader-in-the-house/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 12:49:43 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=412</guid>
		<description><![CDATA[Holy Shit! It&#8217;s James Earl Jones appearing in the latest episode of House!
That voice, even after 30 years, is the most powerful and commanding voice in the whole frakking Galaxy; this one or the other one Far Far Away.   There is even a bit of &#8220;Darth Vader breathing&#8221; in there!
Try reading the following [...]]]></description>
			<content:encoded><![CDATA[<p>Holy Shit! It&#8217;s James Earl Jones appearing in the latest episode of House!<br />
That voice, even after 30 years, is the most powerful and commanding voice in the whole frakking Galaxy; this one or the other one Far Far Away. <img src='http://yaserzt.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  There is even a bit of &#8220;Darth Vader breathing&#8221; in there!</p>
<p>Try reading the following with a picture of Darth Vader in front of you, his voice booming in your head, and preferably with a red-blade Light Saber replica on your mantelpiece (sorry folks, I really <em>do</em> have one of these!)</p>
<blockquote><p>You are sure [...]?</p></blockquote>
<blockquote><p>&#8230;Leave him alone.</p></blockquote>
<blockquote><p>We want you to use her blood.</p></blockquote>
<blockquote><p>Who is that man?!</p></blockquote>
<blockquote><p>My own son&#8230;</p></blockquote>
<blockquote><p>Inject my IV with an air bubble. I will have another heart attack and no one will know. [...] You were trying to put a gun in his hand and point it at my head. The gun is now in your hand. That is a practical difference, not a moral one.</p></blockquote>
<blockquote><p>In my world there are dangers and bloodshed and death, and that makes you a man. And men make choices.</p></blockquote>
<p>I just finished watching this 3rd episode of season 6 and it was a good one.</p>
<p>P.S. OK, that&#8217;s no way to come back and post to my blog after a few months, but give me a break; I&#8217;m trying to ease in (you know, 2x<sup>3</sup>-3x<sup>2</sup> style!)</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/10/06/darth-vader-in-the-house/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Self-justifying Choices</title>
		<link>http://yaserzt.com/blog/2009/08/05/self-justifying-choices/</link>
		<comments>http://yaserzt.com/blog/2009/08/05/self-justifying-choices/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 10:18:51 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[entertainment]]></category>
		<category><![CDATA[ignore]]></category>
		<category><![CDATA[life]]></category>
		<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=410</guid>
		<description><![CDATA[Running away is a solution to many things. Giving up, throwing in the towel, passing the buck, unshouldering the burden, admitting your incapability, playing dead&#8230;
It&#8217;s a perfect solution for mediocrity, isn&#8217;t it?
If you thought that was the rant, you&#8217;re sourly mistaken. Here it is.
Let&#8217;s try a thought experiment. Nothing real, just a wild and fantastical [...]]]></description>
			<content:encoded><![CDATA[<p>Running away is a solution to many things. Giving up, throwing in the towel, passing the buck, unshouldering the burden, admitting your incapability, playing dead&#8230;<br />
It&#8217;s a perfect solution for mediocrity, isn&#8217;t it?</p>
<p>If you thought that was the rant, you&#8217;re sourly mistaken. Here it is.</p>
<p>Let&#8217;s try a <em>thought experiment</em>. Nothing real, just a wild and fantastical fantasy. Suppose you are standing on the edge of a rooftop, contemplating jumping down. As long as you haven&#8217;t jumped, the choice is always yours. You can jump, stay on the edge or move back. It&#8217;s not like you can&#8217;t jump two seconds or two hours later. If the situation changes, you can always weigh the odds again and make a more suitable choice.<br />
But what if you jump? You make a choice and you jump. I think that&#8217;s the best choice you can make; the most logical. If you stay on the edge, or you move back, the edge and the jump will always be there, tempting and tantalizing. Why defer the choice?<br />
Some might say because it&#8217;s a final choice and because you will always have the option, you can postpone it for later. It&#8217;s not like the edge is going anywhere, right? Wrong. I say you should always jump the first chance you get, because once you jump, there is no going back and there is no more choices. Why would you postpone a move that solves your dilemma so quickly? How come people (including myself) defer such obviously logical choices for more than a single second?<br />
I like these kind of choices. I like changes and commitments that you cannot revert. They simplify life so much.</p>
<blockquote><p>I think it&#8217;s kind of funny, I think it&#8217;s kind of sad,<br />
The memories in which I&#8217;m dying are the best I&#8217;ve ever had.</p></blockquote>
<p>That&#8217;s not about death of course. It&#8217;s about giving up in despair. It&#8217;s about indecision and inability to deal. It&#8217;s about petty problems that prove impossible for weak people.<br />
It&#8217;s about me.</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/08/05/self-justifying-choices/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Apathy Their Stepping Stone</title>
		<link>http://yaserzt.com/blog/2009/06/20/apathy-their-stepping-stone/</link>
		<comments>http://yaserzt.com/blog/2009/06/20/apathy-their-stepping-stone/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 21:33:08 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[frak-them]]></category>
		<category><![CDATA[life]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[stupidity]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=408</guid>
		<description><![CDATA[Justice Is Lost
Justice Is Raped
Justice Is Gone&#8230;
&#8230;And no justice for all, because a bunch of petty, raisin-brained dictator-wannabes wanna be dictators. And frak them all.
]]></description>
			<content:encoded><![CDATA[<blockquote><p>Justice Is Lost<br />
Justice Is Raped<br />
Justice Is Gone&#8230;</p></blockquote>
<p>&#8230;And no justice for all, because a bunch of petty, raisin-brained dictator-wannabes wanna be dictators. And frak them all.</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/06/20/apathy-their-stepping-stone/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Stupidity Begets Stupidity</title>
		<link>http://yaserzt.com/blog/2009/06/13/stupidity-begets-stupidity/</link>
		<comments>http://yaserzt.com/blog/2009/06/13/stupidity-begets-stupidity/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 21:46:35 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=406</guid>
		<description><![CDATA[Frak these stupid idiots. They deserve to be ruled by an even bigger idiot. I call them idiots, because in my book, that&#8217;s almost the worst insult.
In any case, if Iranians indeed have voted for that arsehole, then we deserve him and nothing more. I&#8217;m pretty sure that I am unable to partake how angry [...]]]></description>
			<content:encoded><![CDATA[<p>Frak these stupid idiots. They deserve to be ruled by an even bigger idiot. I call them idiots, because in my book, that&#8217;s almost the worst insult.<br />
In any case, if Iranians indeed have voted for that arsehole, then we deserve him and nothing more. I&#8217;m pretty sure that I am unable to partake how angry I am. I have no words to describe what I feel properly. Right now, there is an army of Kratoses roaring and bellowing with rage, tearing flesh, breaking bone, burning everything and raining a maelstrom of blood.</p>
<p>Frak. Frak. Frak. Frak me sideways.</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/06/13/stupidity-begets-stupidity/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Do Times Ever Change?</title>
		<link>http://yaserzt.com/blog/2009/06/06/do-times-ever-change/</link>
		<comments>http://yaserzt.com/blog/2009/06/06/do-times-ever-change/#comments</comments>
		<pubDate>Sat, 06 Jun 2009 07:11:48 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[rants]]></category>
		<category><![CDATA[updated]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=404</guid>
		<description><![CDATA[I, like most of us in these days that we are nearing the presidential election, think a lot about the situation of our country and our pale blue dot.
I, like most of us, am worried about where we are headed. I, like most of us, am skeptical about the election results and whether it&#8217;ll have [...]]]></description>
			<content:encoded><![CDATA[<p>I, like most of us in these days that we are nearing the presidential election, think a lot about the situation of our country and our pale blue dot.</p>
<p>I, like most of us, am worried about where we are headed. I, like most of us, am skeptical about the election results and whether it&#8217;ll have a real impact for the better. I don&#8217;t think anyone has any doubts about whether the times can get worse, because they sure can, as the past four years have shown. But for the better? I don&#8217;t know.</p>
<p>However, like many stupid young people, I have my hopes. I hope for for a more realistic government. One that is more in line with what the people want and need. You know what? I want a less stupid government. One that does not tell so many lies that even its own body starts believing them.</p>
<p>I hope for less religious mumbo jumbo and more information and wisdom. I want a government that works efficiently and knowledgeably and let&#8217;s people do whatever they want as long as they don&#8217;t break the law. And I want real, realistic and usable means to change the laws if they are broken and bad.</p>
<p>I want freedom. I want a government that is afraid of its people, not a people that are afraid of their government even when they are in their own bed. Even worse, I don&#8217;t want a people that don&#8217;t care about their government as long as it doesn&#8217;t step on their toes and vice versa.</p>
<p>I want people to listen to each other. I want people not to turn their head and pretend that they just don&#8217;t see. I don&#8217;t want the stupid idiots who decide my fate to still think that what is said in some book from several hundred years ago is absolute truth, no matter how strange, immoral, improbable, unacceptable, malicious and unscientific it is.</p>
<p>I don&#8217;t want my government officials to say that they do their job because some god says so in some book, or because it&#8217;s their religious obligation, or because some guy who died 1300 years ago is quoted to have wanted so.</p>
<p>I want them to do their job because the law says so, or because it&#8217;s their moral, social or logical obligation, or because the people want so.</p>
<p>I want some information. I am sick and tired of being treated like an idiot. I want freedom of the press and media. I know it&#8217;s got its own bag of problems, but hey, that&#8217;s much better than what we got already: all the problems of a media-driven and media-blinded society and 2% the functionality.</p>
<p>I want science and knowledge to have real value, not just as things to do in university as a way to pimp up your resumé to get the hell out of this dismal country. I want the wheels of industry, commerce, trade and technology to start turning and to move this country forward.</p>
<p>I want an education system that instead of force feeding children with crap and filling their heads with superstition and guilt and unreal notions of hope and salvation, teaches them to think and choose and provide them with data to support their choice. I want our schools to be playgrounds for the real world out there, not 11 years (or 12 or whatever the number currently is) of isolation from reality and Newspeak practice. I don&#8217;t want teenagers to learn more from ditching school than attending.</p>
<p>I want people to panic! I don&#8217;t want us to go about our lives like sheep the night before they are slaughtered, or like the anecdotal frog that never jumps out of the water that is slowly starting to boil. Our situation is very dire. I want to see people start screaming out of their windows that they are &#8220;mad as hell&#8221; and that they are &#8220;not going to take it anymore.&#8221; Why no one does that, unless it&#8217;s election time and they are one of the candidates and preferably there are more than three million watching?</p>
</p>
<p>On days like these, why it is that I find the immortal songs of Mr. Bob Dylan to be the ones that speak most loudly my heart and mind?</p>
<p>Do times ever change? Am I a fool to hope? Am I a simpleton to be <a href="http://www.youtube.com/watch?v=d-5JvACzGp8">knocking on heavens door</a>? In days like these, I feel like my hopes, and most people&#8217;s, are <a href="http://www.youtube.com/watch?v=ced8o50G9kg">blowing in the wind</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/06/06/do-times-ever-change/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>جای خوب و خلوت</title>
		<link>http://yaserzt.com/blog/2009/05/22/%d8%ac%d8%a7%db%8c-%d8%ae%d9%88%d8%a8-%d9%88-%d8%ae%d9%84%d9%88%d8%aa/</link>
		<comments>http://yaserzt.com/blog/2009/05/22/%d8%ac%d8%a7%db%8c-%d8%ae%d9%88%d8%a8-%d9%88-%d8%ae%d9%84%d9%88%d8%aa/#comments</comments>
		<pubDate>Thu, 21 May 2009 23:09:16 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[ignore]]></category>
		<category><![CDATA[life]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=396</guid>
		<description><![CDATA[
بیشتر مردم دو مادر بزرگ و دو پدربزرگ دارند. پدرِ پدرم قبل از اینکه من &#8211; نوه اولش &#8211; به دنیا بیایم مرد. تنها چیزی که از او می‌دانم نامش است و شغلش و تنها نشانه‌اش دو سه عکس‌ای است که از او دیده‌ام. از مادرِ پدرم هنوز قیافه‌ای به یاد دارم. او هم وقتی [...]]]></description>
			<content:encoded><![CDATA[<div dir="rtl" lang="fa" style="text-align: right;">
بیشتر مردم دو مادر بزرگ و دو پدربزرگ دارند. پدرِ پدرم قبل از اینکه من &#8211; نوه اولش &#8211; به دنیا بیایم مرد. تنها چیزی که از او می‌دانم نامش است و شغلش و تنها نشانه‌اش دو سه عکس‌ای است که از او دیده‌ام. از مادرِ پدرم هنوز قیافه‌ای به یاد دارم. او هم وقتی سه سالم بود، پس از بیماری‌ای ظاهراً طولانی جان سپرد. هنوز گاهی سر قبرش می‌رویم.<br />
وقتی داشت هفت سالم می‌شد، پدرم را در حادثه‌ای که اگر این‌قدر تلخ نبود شاید از فرط سادگی مسخره می‌نمود از دست دادم. بعد از بیشتر از بیست سال، دیگر در زندگی من اثری از او نیست مگر جای خالی‌اش در کنار مادرم و زنندگی عکس مردی که حالا تازه باید پنجاه و پنج ساله باشد روی دیوار با یک روبان مشکی. آخرین خاطره‌ای که از پدرم دارم دعوایی بود که با من به خاطر شیطنتی احمقانه کرد. جالب نیست که این آخرین خاطره‌ام از پدری که دیگر صورتش و صدایش دارد از ذهنم می‌رود باشد؟<br />
اگر من ده برابرِ این چیزی که هستم انسان بهتری باشم با اراده قویتر و توانایی‌های بیشتر، باز هم نخواهم توانست پس از مرگ همسرم، هم درسِ رها شده‌ام را از سر بگیرم و تمام کنم، هم سه پسرم را بزرگ کنم و از آب و گل درآورم. مادرم دست‌کم ده برابر بهتر از من است.<br />
فکر می‌کنم شانزده ساله بودم &#8211; خنده‌دار است که درست به یاد ندارم &#8211; که پدربزرگم هم در اثر ابتلا به سرطان درگذشت. مرد جالبی بود. من که خیلی دوستش داشتم. دست کم فرصت داشتم این یکی را کمی بشناسم. هنوز هم گاهی یاد تکیه کلام‌ها و رفتارهایش می‌کنم.<br />
مادرِ مادرم بیشتر از ده سال است که به خاطر سکته مغزی قدرت حرکت دادن نیمی از بدنش را از دست داده. بیچاره مدتها با معلولیتش جنگید ولی یکی دوسالی است که دیگر حتی به کمک چهارپایه و عصاهای مخصوص هم راه نمی‌رود. این اواخر دیگر حتی از بسترش هم بر نمی‌خیزد. نمی‌دانید (یا شاید هم می‌دانید) که دیدن او چه سخت است وقتی به تنها چیزی که می‌توانم فکر کنم روزهایی است که در کودکی به خاطر بیماریِ سرخک یا سرخجه یا آبله‌مرغان روزهای متمادی به مدرسه نمی‌رفتم و در نبود مادرم او به من می‌رسید و به من چه خوش می‌گذشت. نمی‌دانید (یا شاید هم می‌دانید) که دیدن او چه سخت است وقتی هنوز طعم قرمه‌سبزی و لوبیاپلوی او زیر دندانم است. نمی‌دانید، یا شاید بدانید که ندیدن او چه سخت است. ولی می‌دانم که نمی‌دانید ندیدن مادرم چقدر سخت‌تر است.<br />
نام این پُستم را گذاشتم «جای خوب و خلوت». شاید بهترین توصیفی که درباره مرگ خوانده‌ام این شعرگونه از آرتور کلارک در کتاب آخر سری «راما» باشد:</p>
<blockquote><p>شنیده‌ام که گور جای خوب و خلوتی‌ست<br />
ولی کسی در آنجا تو را در آغوش نخواهد گرفت</p></blockquote>
</div>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/05/22/%d8%ac%d8%a7%db%8c-%d8%ae%d9%88%d8%a8-%d9%88-%d8%ae%d9%84%d9%88%d8%aa/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Empty</title>
		<link>http://yaserzt.com/blog/2009/05/15/empty/</link>
		<comments>http://yaserzt.com/blog/2009/05/15/empty/#comments</comments>
		<pubDate>Thu, 14 May 2009 21:05:07 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=394</guid>
		<description><![CDATA[I am not full of music. I used to think that I was, but I realize my folly now. I used to think that, that I am full of music and that I only lacked the means of expression. I used to think that I was full of ideas, full of images, full of love, [...]]]></description>
			<content:encoded><![CDATA[<p>I am not full of music. I used to think that I was, but I realize my folly now. I used to think that, that I am full of music and that I only lacked the means of expression. I used to think that I was full of ideas, full of images, full of love, full of compassion, full of emotion, ready to be bestowed at the world. That I was warm and understanding; ready to be given at whomever asked.<br />
But I&#8217;m empty. I am devoid of music, without love and out of compassion. I am empty. I have no emotion that a Hollywood movie cannot express ten-fold. I am empty of love that a rural anecdote can portrait. I am out of love. I am devoid of love. I am empty. I am without art. I used to think that I have art in computers, but that&#8217;s only in absence of real expertise. I am empty. I am hollow. I am a hollow shell. I want to curl up on the side of a seldom-trodden path and die.<br />
No candle burns for me. No shrine will be erected in my name. I am empty. I am empty. I am drained.<br />
&#8220;I&#8217;m deranged.&#8221; There is no funny thing here. No secrets, and no energy. Just an empty, hollow shell, devoid of everything that is good.<br />
People might disagree, but people don&#8217;t know about the darkness and pain that is in my heart. I am empty, hollow, devoid and mediocre. I let down values that I must uphold and preach with my actions those that I must devalue. I am empty.</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/05/15/empty/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Sorrow</title>
		<link>http://yaserzt.com/blog/2009/05/15/sorrow/</link>
		<comments>http://yaserzt.com/blog/2009/05/15/sorrow/#comments</comments>
		<pubDate>Thu, 14 May 2009 20:41:23 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=392</guid>
		<description><![CDATA[The sweet smell of a great sorrow lies over the land&#8230;
What can I say more than that?
]]></description>
			<content:encoded><![CDATA[<blockquote><p>The sweet smell of a great sorrow lies over the land&#8230;</p></blockquote>
<p>What can I say more than that?</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/05/15/sorrow/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>When the Logical Go Fish</title>
		<link>http://yaserzt.com/blog/2009/05/12/when-the-logical-go-fish/</link>
		<comments>http://yaserzt.com/blog/2009/05/12/when-the-logical-go-fish/#comments</comments>
		<pubDate>Tue, 12 May 2009 04:18:42 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=390</guid>
		<description><![CDATA[I&#8217;m not a believer in conspiracy theories. I don&#8217;t think the world is ruled in secret by the Illuminati or a group of lizard-descendants from outer space, or the mice. I can&#8217;t believe that if there is such a deep and wide-reaching conspiracy involving undoubtedly millions of people, no proof of it would ever leak [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not a believer in conspiracy theories. I don&#8217;t think the world is ruled in secret by the Illuminati or a group of lizard-descendants from outer space, or the mice. I can&#8217;t believe that if there is such a deep and wide-reaching conspiracy involving undoubtedly millions of people, no proof of it would ever leak out. I can&#8217;t believe that there exist such complex machinery and plot as to rule the world seemingly in perfect chaos, but all the while leading according to a singular design.<br />
I firmly believe that the world is as frakked up as it is on its own; and we create all this chaos on our own. We don&#8217;t need vampires or the said lizards to be in charge behind the scenes to pollute, pillage, destroy, kill and harm. We are quite capable in that regard.<br />
And my proof is that a bunch of humans slowly annihilating themselves and everything that is good is a much simpler explanation than the &#8220;300 Committee.&#8221;</p>
<p>But that&#8217;s not what I intended to write about.</p>
<p>I also don&#8217;t believe in smaller conspiracies. I don&#8217;t believe that all the elections in the world are fixed. I don&#8217;t believe that the NSA monitors everything on the Internet (they do, but they have no reason to care for my data, and I&#8217;m taking all the measures that I logically can, so if they really can break AES, well, there&#8217;s not much more I <em>can</em> do!) I don&#8217;t believe that the bank tellers are all my enemies. I also don&#8217;t believe that the Azad university teachers are forced to flunk students, so they have to pay the tuition multiple times. And so on and so forth.</p>
<p>Let&#8217;s get back to that election thing.</p>
<p>It&#8217;s getting near the presidential election here in Iran. And as always, people are all filled with false hope or with empirical pessimism. Many (most) of the people, specially the educated, believe that the election results are predetermined and fixed. They believe that no matter what their vote, the desirable candidate for the &#8220;powers to be&#8221; comes out of the ballot boxes. Other believe that the general, stupid public will vote for the worst of the worst and the worst of the worst will be president again.<br />
Many people, smart people, people starving for change, people hungry for freedom, people who should know better don&#8217;t vote. Sometimes they don&#8217;t vote for even more stupid reasons; e.g. that their perfect candidate is not running for presidency or because all those who <em>are</em> running are bad.</p>
<p>I hereby ask the conspiracy theorists to think about it a little more. I&#8217;m not saying that a few hundred ballots here and a few thousands votes there are not bought, sold, exchanged, inserted, deleted or corrected! That&#8217;s human nature. But I don&#8217;t think that actually has any significant influence on the results. When you can coerce millions of people to vote for you with a ripped coat, a stupid smile and a promise to bring the oil money to their tables, why would you need a nationwide conspiracy to pad the ballots or fix the election or con the counting process?! Don&#8217;t you think the former&#8217;s much cheaper, more effective and less prosecutable (in this country, at least)?</p>
<p>I would ask the pouters to stop pouting and come and eat their dinner! I know the candidate selection and screening process in Iran is retarded and ridiculous. But one of these candidates is going to be elected your next president whether you vote or not. In any given group of candidates, there must be bad and worse. Go and vote for the least bad so the next president (hopefully) does the least amount of damage. Even bad is better than the possibility of worse. The only logical reason you might have for not picking a candidate in this case is if you genuinely believe that you are actually more likely to pick the worse! If you think you are worse than the average idiot who walks this country at picking the better (or least bad) among 5-6 guys for presidency, then you should not vote. But who really believes that?!<br />
(Of course, I wish more people did, but as some very smart guy has said, the problem with the world is that wise people are always full of doubt but the idiots never have any! I&#8217;m sure that those who actually believe the above are almost definitely the ones that are way more qualified that the average populace to vote.)<br />
In short, you have to vote even if you don&#8217;t like any of the candidates or the one you liked best is not among them.</p>
<p>The logical pessimists are the hardest to deal with logically. It is painfully obvious that the vote of one person has absolutely no significant significance in the result of the election. And any rational person should know this and would know this. However, if all the rational, logical and sane people sanctioned (or embargoed or whatever) the election it is obvious that all the voters will be the irrational, the illogical and the insane! It&#8217;s called &#8220;super-rationality&#8221; people! Look it up!</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/05/12/when-the-logical-go-fish/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Time, Only Time</title>
		<link>http://yaserzt.com/blog/2009/05/09/time-only-time/</link>
		<comments>http://yaserzt.com/blog/2009/05/09/time-only-time/#comments</comments>
		<pubDate>Sat, 09 May 2009 00:30:00 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Soshiant]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=388</guid>
		<description><![CDATA[I have a post about measuring time in a game engine on the Grashasp Dev Blog. Give it a read if you have the time and you are interested.
]]></description>
			<content:encoded><![CDATA[<p>I have a <a href="http://dev.garshasp.ir/blog/?p=63/trackback">post about measuring time</a> in a game engine on the <a href="http://dev.garshasp.ir/blog/">Grashasp Dev Blog</a>. Give it a read if you have the time and you are interested.</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/05/09/time-only-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kindle</title>
		<link>http://yaserzt.com/blog/2009/05/08/kindle/</link>
		<comments>http://yaserzt.com/blog/2009/05/08/kindle/#comments</comments>
		<pubDate>Fri, 08 May 2009 15:10:16 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[cool]]></category>
		<category><![CDATA[noteworthy]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=385</guid>
		<description><![CDATA[How many people (who doesn&#8217;t matter very much!) do I have to kill to get one of these babies?! And how many more must I slay to get a 3G network in Iran so the wireless facilities work too?! You know what, scratch that. As long as the built-in DRM misfeatures are not too draconian [...]]]></description>
			<content:encoded><![CDATA[<p>How many people (who doesn&#8217;t matter very much!) do I have to kill to get one of <a href="http://www.amazon.com/Kindle-DX-Amazons-Wireless-Generation/dp/B0015TCML0/ref=sr_1_3?ie=UTF8&#038;s=electronics&#038;qid=1241793245&#038;sr=1-3">these babies</a>?! And how many more must I slay to get a 3G network in Iran so the wireless facilities work too?! You know what, scratch that. As long as the built-in DRM misfeatures are not too draconian and/or can be circumvented, I don&#8217;t care about the wireless connectivity. I could always USB my PDFs over.<br />
I just told a friend the other day that how much I wished for a pile of good books and a lot of time to read them. The books I do have, more than enough, it is the time I find myself constrained about. A Kindle would give me the ability to read <em>everywhere</em>.<br />
Most of the fiction I &#8220;read&#8221; these days is in the form of audiobook. And you can&#8217;t listen to audiobooks while going around on public transportation or walking on the streets or just stretching in your home in the mornings (that would be normal people&#8217;s afternoons.) Because people absolutely can&#8217;t leave you alone for 10 minutes, and audiobooks are not a snap to pause and resume. Besides, I can&#8217;t listen to technical books, even if there where such things.<br />
And I can&#8217;t read books on my computers, because there are much more immediately fun ways to use a computer screen and attempting to multitask between writing code and reading an ebook is just not workable!</p>
<p>Anyway, I think a perfect solution for me is Kindle DX (because it has PDF support) as long as the DRM is not too constricting. I guess I&#8217;d have to dust off my old ninja outfit. We are raiding Amazon warehouses tonight!</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/05/08/kindle/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Positive Thinking</title>
		<link>http://yaserzt.com/blog/2009/05/01/positive-thinking/</link>
		<comments>http://yaserzt.com/blog/2009/05/01/positive-thinking/#comments</comments>
		<pubDate>Fri, 01 May 2009 12:44:47 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[life]]></category>
		<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=383</guid>
		<description><![CDATA[I&#8217;m always a positive person and I always think positive. I firmly believe that today can never be as bad as tomorrow and this year cannot compete with the next in sucking. Therefore, we have every reason to be happy and cherish every moment of our lives.
To misuse the famous lyrics, &#8220;Carpe diem, baby!&#8221;
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m always a positive person and I always think positive. I firmly believe that today can never be as bad as tomorrow and this year cannot compete with the next in sucking. Therefore, we have every reason to be happy and cherish every moment of our lives.<br />
To misuse the famous lyrics, &#8220;Carpe diem, baby!&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/05/01/positive-thinking/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Unbearably Excruciating Pains for Unbelievably Small People</title>
		<link>http://yaserzt.com/blog/2009/04/26/unbearably-excruciating-pains-for-unbelievably-small-people/</link>
		<comments>http://yaserzt.com/blog/2009/04/26/unbearably-excruciating-pains-for-unbelievably-small-people/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 23:30:40 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[Poetry]]></category>
		<category><![CDATA[life]]></category>
		<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=375</guid>
		<description><![CDATA[




ای کوه تو فریاد من امروز شنیدی
دردیست در این سینه که همزاد جهان است
از داد و وداع آن همه گفتند و نکردند
یا رب چقدَر فاصله دست و زبان است
خون می‌رود از دیده در این کنج صبوری
این صبر که من میکنم افشردن جان است




We have all tasted that feeling&#8230; when you&#8217;re alone and you&#8217;re cold inside; [...]]]></description>
			<content:encoded><![CDATA[<div style="font-size: 120%; font-weight: normal;">
<table border="0" width="100%">
<tr>
<td width="30%"></td>
<td>
<div dir="rtl" lang="fa" style="text-align: right;">ای کوه تو فریاد من امروز شنیدی</div>
<div dir="rtl" lang="fa" style="text-align: left;">دردیست در این سینه که همزاد جهان است</div>
<div dir="rtl" lang="fa" style="text-align: right;">از داد و وداع آن همه گفتند و نکردند</div>
<div dir="rtl" lang="fa" style="text-align: left;">یا رب چقدَر فاصله دست و زبان است</div>
<div dir="rtl" lang="fa" style="text-align: right;">خون می‌رود از دیده در این کنج صبوری</div>
<div dir="rtl" lang="fa" style="text-align: left;">این صبر که من میکنم افشردن جان است</div>
</td>
<td width="30%"></td>
</table>
</div>
<p>We have all tasted that feeling&#8230; when you&#8217;re alone and you&#8217;re cold inside; when the world is frakking you up left and right; when life is just one tortured moment after another; when people you love don&#8217;t love you back; when things you want just slip out of your hands; when each breath comes only as an obligation; when you&#8217;re full of despair, not just for yourself, but for the human kind and this tiny planet; when blood and fire and war and hate is all that goes around and comes around; when days are dark and nights are stifling; when ice is the only remnant of justice and nothing remains of fair; when happy endings are only in stories like Hamlet or Romeo and Juliet&#8230;<br />
The human condition is so full of pain and misery that it&#8217;s almost ridiculous that people still hold on to hope.<br />
The interesting feature about everybody&#8217;s darkness and despair is that they think it&#8217;s their pain and theirs alone and they alone have to bear this unbelievably unbearable burden of excruciation exasperation. Take a good look around you, people! Everybody has problems! Everybody is in pain all the time, except those who are too stupid or too wise to be reigned by it.<br />
Anyways, when you think about it, you realize that there&#8217;s nothing special about your pain, and you are just like everyone else. We are all on a Gaussian bell curve of misery and heartache and those out of the 6-sigma domain are far too busy with either joy or misery to notice where they are.<br />
When you think about it, none of us are unique in our sadness and despair. In fact, hardly any of us are unique in any meaningful way, least of all in our thinking. The saddest part of the human existence, the way I see it, is the 500 channels of the same shit on the TV, the loads of crap on the Internet, the tons of dung in the cinema, music and books. It&#8217;s mediocrity that is our biggest misery. It&#8217;s the 7 billion soulless bodies on this planet, all either trying to feed themselves, or trying to kill each other or (the saddest of them all) trying to look and act like each other.<br />
So don&#8217;t be sad you puny worm-food bodies, and don&#8217;t be happy. You may think that your burden is the size of a mountain but it&#8217;s not. You are just another worthless droplet in this putrid sea of mediocrity. Smoke that in a pipe!</p>
<p>I&#8217;ve been rambling on for more than 420 words, and while I&#8217;m sure there is a point to be made, I don&#8217;t think I&#8217;ll be the one to make it tonight.</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/04/26/unbearably-excruciating-pains-for-unbelievably-small-people/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Useless, Egoistic Self-pity</title>
		<link>http://yaserzt.com/blog/2009/04/21/useless-egoistic-self-pity/</link>
		<comments>http://yaserzt.com/blog/2009/04/21/useless-egoistic-self-pity/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 19:52:49 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[Poetry]]></category>
		<category><![CDATA[Quotes]]></category>
		<category><![CDATA[life]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=373</guid>
		<description><![CDATA[Despite those titles, power, and pelf,
The wretch, concentred all in self,
Living, shall forfeit fair renown,
And, doubly dying, shall go down
To the vile dust, from whence he sprung,
Unwept, unhonored, and unsung.
That&#8217;s Sir Walter Scott. I can&#8217;t say I know one end of poetry from the other&#8230; well, that&#8217;s it. I have no point to make there!
]]></description>
			<content:encoded><![CDATA[<blockquote><p>Despite those titles, power, and pelf,<br />
The wretch, concentred all in self,<br />
Living, shall forfeit fair renown,<br />
And, doubly dying, shall go down<br />
To the vile dust, from whence he sprung,<br />
Unwept, unhonored, and unsung.</p></blockquote>
<p>That&#8217;s Sir Walter Scott. I can&#8217;t say I know one end of poetry from the other&#8230; well, that&#8217;s it. I have no point to make there!</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/04/21/useless-egoistic-self-pity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 Years</title>
		<link>http://yaserzt.com/blog/2009/04/15/10-years/</link>
		<comments>http://yaserzt.com/blog/2009/04/15/10-years/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 09:17:24 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[noteworthy]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=371</guid>
		<description><![CDATA[If you have been thinking that I&#8217;ve been too busy with work and that has been the reason that I haven&#8217;t been able to write anything, you&#8217;ve been wrong!
I&#8217;ve been holding a few moments of silence in respect to the 10th anniversary of the release of The Matrix, after which none of our lives where [...]]]></description>
			<content:encoded><![CDATA[<p>If you have been thinking that I&#8217;ve been too busy with work and that has been the reason that I haven&#8217;t been able to write anything, you&#8217;ve been wrong!<br />
I&#8217;ve been holding a few moments of silence in respect to the 10th anniversary of the release of <strong>The Matrix</strong>, after which none of our lives where the same.</p>
<p>&#8220;Welcome&#8230; to the desert of the real!&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/04/15/10-years/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fun with C++: Function Try Blocks</title>
		<link>http://yaserzt.com/blog/2009/03/31/fun-with-c-function-try-blocks/</link>
		<comments>http://yaserzt.com/blog/2009/03/31/fun-with-c-function-try-blocks/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 14:05:43 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=367</guid>
		<description><![CDATA[
C++ is complex. That might sound like an about right to two groups of people &#8211; those who don&#8217;t know C++ and those who really know C++ &#8211; but only those who really know understand the depth of that statement. I&#8217;m only beginning to learn C++ and I&#8217;m only just learning the depth of it.


Take [...]]]></description>
			<content:encoded><![CDATA[<p>
C++ is complex. That might sound like an about right to two groups of people &#8211; those who don&#8217;t know C++ and those who <em>really</em> know C++ &#8211; but only those who really know understand the depth of that statement. I&#8217;m only beginning to learn C++ and I&#8217;m only just learning the depth of it.
</p>
<p>
Take the following sample code for instance:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">void</span> foo <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #0000ff;">try</span> <span style="color: #008000;">&#123;</span>
    <span style="color: #666666;">// Some code</span>
<span style="color: #008000;">&#125;</span> <span style="color: #0000ff;">catch</span> <span style="color: #008000;">&#40;</span>...<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
    <span style="color: #666666;">// More code</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>As surprising as this might be to some (or not) the above is a valid C++ function definition. That&#8217;s right. No regular body in this function.<br />
Now, the skeptics among you might wonder what usefulness this might possibly have! Wonder no longer. The foremost use (and the most straightforward one) is in the context of constructors and correct exception handling.
</p>
<p>
Suppose you have the following class and constructor:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #0000ff;">struct</span> Bar
<span style="color: #008000;">&#123;</span>
    Bar <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
    <span style="color: #666666;">// Baz is another class that might throw an exception in its c'tor.</span>
    Baz m_baz<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
Bar<span style="color: #008080;">::</span><span style="color: #007788;">Bar</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008080;">:</span> m_baz <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>How can you handle exceptions that might be thrown when <tt>m_baz</tt> is being constructed (e.g to do something useful with them?)<br />
The answer is obviously a <tt>try</tt> body for the constructor. A la:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="cpp" style="font-family:monospace;">Bar<span style="color: #008080;">::</span><span style="color: #007788;">Bar</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
<span style="color: #0000ff;">try</span>
    <span style="color: #008080;">:</span> m_baz <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>  <span style="color: #666666;">// Note the &quot;interesting&quot; placement!</span>
<span style="color: #008000;">&#123;</span>
<span style="color: #008000;">&#125;</span> <span style="color: #0000ff;">catch</span> <span style="color: #008000;">&#40;</span>std<span style="color: #008080;">::</span><span style="color: #007788;">exception</span> <span style="color: #000040;">&amp;</span> e<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
    std<span style="color: #008080;">::</span><span style="color: #0000dd;">cerr</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;'Bar' c'tor is FUBAR!&quot;</span> <span style="color: #000080;">&lt;&lt;</span> std<span style="color: #008080;">::</span><span style="color: #007788;">endl</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>This has other <em>very cool</em> usages too. For example, to define a macro, with an aesthetically pleasing usage, to track entry into any function (for run-time call graph generation and other analyses.)</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="cpp" style="font-family:monospace;"><span style="color: #339900;">#define TRACK_FN                                 \
    try {                                        \
        GlobalFunctionTracker::onFuctionEntry    \
            (__FUNCTION__, __FILE__, __LINE__);  \
        throw (42);                              \
    } catch (int)</span>
&nbsp;
<span style="color: #666666;">// Use the above macro like this</span>
<span style="color: #0000ff;">void</span> qux <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> arg<span style="color: #008000;">&#41;</span> TRACK_FN
<span style="color: #008000;">&#123;</span>
    <span style="color: #666666;">// Do your thang here...</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>Of course, this is not the most efficient way to implement this, but its the most beautiful one!<br />
Some notes:
<ol>
<li>In effect, we are injecting code into the scope of the function. All the function arguments are available in the <tt>try</tt> and <tt>catch</tt> blocks.</li>
<li>If you use this try-block thingy for a constructor or destructor, the exceptions thrown in the try block <strong>will</strong> propagate automatically beyond the local catch! For all other kinds of functions, this will not happen and if you catch the exception, it will be stifled unless you rethrow it explicitly.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/03/31/fun-with-c-function-try-blocks/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>There Is No AI, Stupid!</title>
		<link>http://yaserzt.com/blog/2009/03/29/there-is-no-ai-stupid/</link>
		<comments>http://yaserzt.com/blog/2009/03/29/there-is-no-ai-stupid/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 01:57:40 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[Quotes]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[sci-tech]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=363</guid>
		<description><![CDATA[My outspoken (and certainly prejudiced and groundless) stance on AI is very well known where I am known myself. I hate the current trends and implementations of what is called Artificial Intelligence.
And what&#8217;s with the &#8220;artificial&#8221; prefix anyway? What is &#8220;real intelligence&#8221;? Why we call human (organic? carbon-based?) intelligence &#8220;real&#8221; and silicon-based (germanium-based?!) intelligence &#8220;artificial&#8221;? [...]]]></description>
			<content:encoded><![CDATA[<p>My outspoken (and certainly prejudiced and groundless) stance on AI is very well known where I am known myself. I hate the current trends and implementations of what is called Artificial Intelligence.<br />
And what&#8217;s with the &#8220;artificial&#8221; prefix anyway? What is &#8220;real intelligence&#8221;? Why we call human (organic? carbon-based?) intelligence &#8220;real&#8221; and silicon-based (germanium-based?!) intelligence &#8220;artificial&#8221;? Because we where here first? Because we are currently more complex and have the upper hand? Wait for the &#8220;Singularity&#8221; (definitely STFW) and see who gets the last laugh, folks! I guarantee that it will be soon and it won&#8217;t be us (almost by definition!)<br />
It can&#8217;t be because our intelligence is emergent and evolution-based and computer intelligence is designed and creation-based, because it is not! As far as I know (which is admittedly not far) most successful and state-of-the-art &#8220;intelligent&#8221; software are evolution-based these days. (They are based on that singly most unique and most elegant idea Darwin had one summer evening (or one winter morning, or whatever) which so beautifully explains a significant portion of the mess that we call &#8220;life&#8221;.)<br />
And to attack the issue from another angle, &#8220;What is real? How do you define real?&#8221; What makes you think that we are any more real than the data structures and code run everyday on our own computers?<br />
And don&#8217;t even get me started on the &#8220;gods-created-us-therefore-we-are-super-special&#8221; bullshit.</p>
<p>In any case, my point is that whatever this intelligence is, it&#8217;s no more artificial than our own, and we are probably no more real than it.<br />
Maybe we should call it Third Intelligence? Obviously, calling machine intelligence Second Intelligence would be wrong, because they are third after mice and dolphins. We are fourth at best! &#8220;So long and thanks for all the fish&#8221; anyone?</p>
<p>Let me quote a great quote from a (supposedly) great person:</p>
<blockquote><p>The question of whether computers can think is no more relevant than the question of whether submarines can swim.</p></blockquote>
<p>Obviously, there must be a reason that I&#8217;m writing philosophically about AI at 6:28 in the morning. I have just started reading &#8220;<a href="http://www.kuro5hin.org/prime-intellect/">The Metamorphosis of Prime Intellect</a>&#8221; (a seemingly great sci-fi book, available freely online) which apparently deals with the Singularity and the post-Singularity world. I&#8217;m in the middle of chapter two (out of eight) and I must say that the opening chapter was refreshingly original for me and sweetly violent. I recommend it even if the remaining 6.5 chapters are total crap.</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/03/29/there-is-no-ai-stupid/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Happy Ostriches</title>
		<link>http://yaserzt.com/blog/2009/03/25/happy-ostriches/</link>
		<comments>http://yaserzt.com/blog/2009/03/25/happy-ostriches/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 09:54:45 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[Quotes]]></category>
		<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=359</guid>
		<description><![CDATA[The fact that a believer is happier than a skeptic is no more to the point than the fact that a drunken man is happier than a sober one.
George Bernard Shaw said that. If you are a religious person and you are happy, well&#8230; good for you. But you have traded reality for happiness and [...]]]></description>
			<content:encoded><![CDATA[<blockquote cite="http://en.wikiquote.org/wiki/George_Bernard_Shaw"><p>The fact that a believer is happier than a skeptic is no more to the point than the fact that a drunken man is happier than a sober one.</p></blockquote>
<p>George Bernard Shaw said that. If you are a religious person and you are happy, well&#8230; good for you. But you have traded reality for happiness and peace, which makes you like an ostrich.</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/03/25/happy-ostriches/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Quis custodiet ipsos custodes?</title>
		<link>http://yaserzt.com/blog/2009/03/22/quis-custodiet-ipsos-custodes/</link>
		<comments>http://yaserzt.com/blog/2009/03/22/quis-custodiet-ipsos-custodes/#comments</comments>
		<pubDate>Sun, 22 Mar 2009 18:52:42 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[entertainment]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=357</guid>
		<description><![CDATA[I watched &#8220;Watchmen&#8221; last night and I liked it. Most of the movie was quite mature and &#8220;grown up&#8221;, as opposed to other teenager-friendly comic book-based movies like Spider Man.
Let me tell you what I didn&#8217;t like in the movie. I didn&#8217;t like the casting. All the characters, with the exception of Rorschach (Jackie Haley, [...]]]></description>
			<content:encoded><![CDATA[<p>I watched &#8220;<a href="http://www.imdb.com/title/tt0409459/">Watchmen</a>&#8221; last night and I liked it. Most of the movie was quite mature and &#8220;grown up&#8221;, as opposed to other teenager-friendly comic book-based movies like Spider Man.<br />
Let me tell you what I didn&#8217;t like in the movie. I didn&#8217;t like the casting. All the characters, with the exception of Rorschach (Jackie Haley, whom you might remember from &#8220;Little Children&#8221;) and the Comedian and to some extent Dr. Manhattan could have used better or more suitable actors.<br />
The plot and the ending was so-so. Although generally guessable, it was definitely much better and deeper than the usual crappy comics-based movie plot line and ending.<br />
I was not impressed by the direction, but what do I know about movie directing?! I liked several of the sequences though (including the opening.)<br />
The characters were waaay better developed than most movies these days, but the books (which I&#8217;m not familiar with) are probably responsible for most of that, not the writers of the movie. Incidentally, one of the writers is David Haytar, the voice actor for Snake, in the English versions of MGS series!<br />
I liked the classic soundtracks from around the 60s (and 50s and 70s too probably!) It&#8217;s always refreshing to hear Bob Dylan and Leonard Cohen in movies instead of Britney Spears or whatnot.<br />
I liked the atmosphere of the movie. Dark, disturbing (although not enough!) and very 80s.<br />
What I liked the most was Rorschach! The guy is crazy! Think Marv and Dwight (from Sin City) blended together. The character was fantastic!</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/03/22/quis-custodiet-ipsos-custodes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New Year Delusion</title>
		<link>http://yaserzt.com/blog/2009/03/19/new-year-delusion/</link>
		<comments>http://yaserzt.com/blog/2009/03/19/new-year-delusion/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 08:41:39 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[life]]></category>
		<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=355</guid>
		<description><![CDATA[You will not become a better person with the turn of the year. You will not suddenly become more lucky, more handsome or more successful. Your life will not suddenly and magically flip over for the better. Your family will not become the ideal family. Your investments won&#8217;t start paying off the moment the year [...]]]></description>
			<content:encoded><![CDATA[<p>You will not become a better person with the turn of the year. You will not suddenly become more lucky, more handsome or more successful. Your life will not suddenly and magically flip over for the better. Your family will not become the ideal family. Your investments won&#8217;t start paying off the moment the year number increments. Your gods won&#8217;t like you better just because its a new year and you really really want it. People won&#8217;t all of a sudden start liking and respecting you in the Spring. Your significant other will not take an interest in you all anew. The world will not become nirvana, paradise, shangri-la, concordia, hyperboria, utopia, Silicon Valley or whatever other sort of heaven you believe in.</p>
<p>It will be the same shit, only a different day. Get over it already, because statistically, the day after that will yet be worse and the day after that even worse still.</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/03/19/new-year-delusion/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Enter &#8220;Metis&#8221;</title>
		<link>http://yaserzt.com/blog/2009/03/19/enter-metis/</link>
		<comments>http://yaserzt.com/blog/2009/03/19/enter-metis/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 04:13:06 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/2009/03/19/enter-metis/</guid>
		<description><![CDATA[This is the first post I&#8217;m writing from my new cellphone, Metis (using built-in wi-fi and cellphone keypad.)
Hi people!
]]></description>
			<content:encoded><![CDATA[<p>This is the first post I&#8217;m writing from my new cellphone, Metis (using built-in wi-fi and cellphone keypad.)<br />
Hi people!</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/03/19/enter-metis/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A Real Programma!</title>
		<link>http://yaserzt.com/blog/2009/03/12/a-real-programma/</link>
		<comments>http://yaserzt.com/blog/2009/03/12/a-real-programma/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 02:36:06 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[noteworthy]]></category>
		<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=351</guid>
		<description><![CDATA[Amiross has posted a few lists of stuff that every programmer/engineer should read or know about. In the list of papers, I had only read one before (to my shame and dishonor!) which incidentally is an old favorite of mine, or more like a holy writ: Ken Thompson&#8217;s Reflections on Trusting Trust. Apparently, this speech [...]]]></description>
			<content:encoded><![CDATA[<p>Amiross <a href="http://amiross.blogspot.com/2009/03/top-10s.html">has posted</a> a few lists of stuff that every programmer/engineer should read or know about. In the list of papers, I had only read one before (to my shame and dishonor!) which incidentally is an old favorite of mine, or more like a holy writ: <a href="http://en.wikipedia.org/wiki/Ken_Thompson">Ken Thompson</a>&#8217;s <a href="http://cm.bell-labs.com/who/ken/trust.html">Reflections on Trusting Trust</a>. Apparently, this speech is considered a classic work about computer security (the guy is seriously concerned about computer security in 1983, and guess what, 20 years later it became a day-to-day worry for everybody!) but that&#8217;s not what captivates me about this.<br />
When I read it back in the day and when I read it now, I see a programmer. I real programmer. I see the heart, the soul and the attitude of a great hacker, a programmer and <a href="http://www.ee.ryerson.ca/~elf/hack/3-wise-men.html">A Wise Man</a>.<br />
People don&#8217;t see programming as an art. Hell, even us programmers don&#8217;t treat it as an art and a lifestyle. &#8220;But there was a time&#8221; and there were people who realized that programming is more than merely a hobby or a job; it&#8217;s a life.<br />
And what do we do? The best of us are either doing boring (but seemingly ground-breaking) stuff in boring research labs day and night, or writing ugly, bloated, &#8220;designed&#8221; and &#8220;architectured&#8221; code in badly-lit rooms day and night.<br />
What are we? We used to be real Jedis and real Ninjas and now we are just commercialized Hollywood versions. What happened to us? &#8220;Where did we go yesterday?&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/03/12/a-real-programma/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Dead as Dead Can Be</title>
		<link>http://yaserzt.com/blog/2009/03/06/dead-as-dead-can-be/</link>
		<comments>http://yaserzt.com/blog/2009/03/06/dead-as-dead-can-be/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 15:24:28 +0000</pubDate>
		<dc:creator>yzt</dc:creator>
				<category><![CDATA[Poetry]]></category>
		<category><![CDATA[entertainment]]></category>

		<guid isPermaLink="false">http://yaserzt.com/blog/?p=348</guid>
		<description><![CDATA[Found a great &#8220;mood&#8221; poem (here) the other day:

Wake up and see
I&#8217;m dead as dead can be
The doctor told me.
Some day, I&#8217;ll get up, I&#8217;ll get up and walk away
Wake up, face me
Don&#8217;t play dead, cause baby,
I&#8217;ll spit at your feet and say-
&#8216;you fuc*king disappoint me.&#8217;
Dead as dead can be,
Cold and too far away to [...]]]></description>
			<content:encoded><![CDATA[<p>Found a great &#8220;mood&#8221; poem (<a href="http://www.thestarlitecafe.com/poems/101/poem_8354053.html">here</a>) the other day:</p>
<blockquote style="text-align: center;"><p>
Wake up and see<br />
I&#8217;m dead as dead can be<br />
The doctor told me.<br />
Some day, I&#8217;ll get up, I&#8217;ll get up and walk away<br />
Wake up, face me<br />
Don&#8217;t play dead, cause baby,<br />
I&#8217;ll spit at your feet and say-<br />
&#8216;you fuc*king disappoint me.&#8217;</p>
<p>Dead as dead can be,<br />
Cold and too far away to see<br />
A brief and vague reflection<br />
Of what could and might still be,<br />
In Amsterdam the tulips have all grayed<br />
I wait for you to face me,<br />
Don&#8217;t play the fool cause,<br />
I&#8217;m waiting to spit at your feet and shout-<br />
&#8216;you fuc*king disappoint me!&#8217;</p>
<p>Cold and uncaring the scene<br />
A scene of misery<br />
The paramedic tell thee<br />
&#8216;Dead as dead can be.&#8217;<br />
But some day I&#8217;ll get out of the morgue and pay<br />
The way to fame and fortune<br />
With a brain as hot as sin,<br />
Yeah some day I&#8217;ll find you to say<br />
&#8216;You disappoint me<br />
Baby, you disappoint me.&#8217;
</p></blockquote>
<p>Perfect! I found it while searching for one of <a href="http://www.imdb.com/title/tt0360486/">Constantine</a>&#8217;s soundtracks: <a href="http://www.aperfectcircle.com/">A Perfect Circle</a>&#8217;s <smaller>(<a href="http://en.wikipedia.org/wiki/A_Perfect_Circle">wikipedia</a>, <a href="http://www.last.fm/music/A+Perfect+Circle">Last.fm</a>)</smaller> <a href="http://www.stlyrics.com/lyrics/constantine/passive.htm">Passive</a> (sorry for the crappy lyrics site) but I searched for &#8220;the doctor told&#8221;, instead of &#8220;my doctor tells me&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://yaserzt.com/blog/2009/03/06/dead-as-dead-can-be/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
