<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-36406203</id><updated>2012-02-04T00:48:52.306+03:30</updated><category term='photo'/><category term='java'/><category term='personal'/><category term='news'/><category term='php'/><category term='web'/><category term='Zen'/><category term='programming'/><category term='computer'/><category term='microsoft'/><category term='design'/><category term='fun'/><category term='school'/><category term='diary'/><title type='text'>danrah.com</title><subtitle type='html'>danrah!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.danrah.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://www.danrah.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default?start-index=101&amp;max-results=100'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>117</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-36406203.post-8533986081698006795</id><published>2011-04-13T14:57:00.000+04:30</published><updated>2011-04-13T14:57:09.062+04:30</updated><title type='text'>Think before you do.</title><content type='html'>Got registered a new domain name but donno how to use it!&lt;br /&gt;Just a waste of money!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-8533986081698006795?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/8533986081698006795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=8533986081698006795' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8533986081698006795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8533986081698006795'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2011/04/think-before-you-do.html' title='Think before you do.'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-2012071100665099239</id><published>2011-03-30T10:25:00.001+04:30</published><updated>2011-03-30T10:25:53.185+04:30</updated><title type='text'>New Year</title><content type='html'>New Perisan Year.&lt;br /&gt;New Hopes.&lt;br /&gt;New Goals.&lt;br /&gt;;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-2012071100665099239?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/2012071100665099239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=2012071100665099239' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2012071100665099239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2012071100665099239'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2011/03/new-year.html' title='New Year'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-6188660641682793987</id><published>2010-11-21T22:56:00.001+03:30</published><updated>2010-11-21T22:56:05.524+03:30</updated><title type='text'>work!</title><content type='html'>tired!&lt;br /&gt;today was the first day @ work :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-6188660641682793987?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/6188660641682793987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=6188660641682793987' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/6188660641682793987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/6188660641682793987'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2010/11/work.html' title='work!'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-1452503780217724608</id><published>2010-09-08T07:09:00.000+04:30</published><updated>2010-09-08T07:10:01.541+04:30</updated><title type='text'>No, no no! it's not possible!</title><content type='html'>&lt;div class=WordSection1&gt;  &lt;p class=MsoNormal&gt;-Really? I mean, your intention&amp;#8230;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;-About?&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;-Regularly updating your blo..&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;-Humm&amp;#8230;, that stuff! I don&amp;#8217;t know!&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-1452503780217724608?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/1452503780217724608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=1452503780217724608' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/1452503780217724608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/1452503780217724608'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2010/09/no-no-no-its-not-possible.html' title='No, no no! it&apos;s not possible!'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-3440923085403380255</id><published>2010-05-22T03:57:00.000+04:30</published><updated>2010-05-22T03:57:51.951+04:30</updated><title type='text'>Facebook</title><content type='html'>Right now, I updated my status on Facebook and changed it to "''s closing his facebook account on sunday, 11.59 pm" .&lt;br /&gt;Why? Because I think facebook's being very time-consuming and I spend more than 1 hour a day on it. Another thing about facebook is privacy! Facebook is disclosing my private life and I don't like it. So, I closed it!&lt;br /&gt;P.S: It has nothing to do with depression or something like that! I'm alright and am living a joyful life!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-3440923085403380255?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/3440923085403380255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=3440923085403380255' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/3440923085403380255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/3440923085403380255'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2010/05/facebook.html' title='Facebook'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-7942199962983821877</id><published>2010-05-22T01:14:00.000+04:30</published><updated>2010-05-22T01:14:39.400+04:30</updated><title type='text'>Home, Sweet home!</title><content type='html'>Yes, you have not blogged here since a couple of months ago!&lt;br /&gt;You tend to write on several blogs.&lt;br /&gt;But you are not satisfied.&lt;br /&gt;This is your home, danrah.com&amp;nbsp; …. Sweet home!&lt;br /&gt;O danrah.com ! you’ll be rejuvenated!!!! Daniel is coming! A non-technical Daniel! An un-programmer Daniel!&lt;br /&gt;Hello sweetie!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-7942199962983821877?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/7942199962983821877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=7942199962983821877' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/7942199962983821877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/7942199962983821877'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2010/05/home-sweet-home.html' title='Home, Sweet home!'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-4447964262290022975</id><published>2009-11-06T21:54:00.000+03:30</published><updated>2009-11-06T21:54:41.287+03:30</updated><title type='text'>Really Quick python tutorial (Part I: Intro)</title><content type='html'>I want to start posting a series of notes about python that can be used by programmers. But note that i have not tried to use the correct syntax.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp;Integer division returns the floor.&amp;nbsp; 7/3=2&amp;nbsp;&amp;nbsp; 7/-3=-3&lt;/li&gt;&lt;li&gt;Complex numbers are supported but "i" turns into "j" or "J". another alternative is: complex(real,imaginary) function.&amp;nbsp; z.real and z.imag are used for accessing real and imaginary parts. conversion functions such as float() int() and long() don't work for complex numbers.&amp;nbsp; to get the magnitude of a complex number:abs(z)&lt;/li&gt;&lt;li&gt;in interactive mode, the last printed expression is assigned to the variable _. this variable should be treated as read-only by the user. if you assign a value to it explicitly, you would create an independent local variable with the same name masking the built in variable with its magic behaviour.&lt;/li&gt;&lt;li&gt;and equivalent to heredoc in php is using a pair of matching triple quotes: """ or '''.&lt;/li&gt;&lt;li&gt;string concatenation: +&amp;nbsp;&amp;nbsp; repeat:*&amp;nbsp; word="hi" &amp;nbsp; '&amp;lt;'+word*5 + '&amp;gt;'&lt;/li&gt;&lt;li&gt;automatic concatenation: 'hi' 'hello'&amp;nbsp;&amp;nbsp; = 'hihello'&amp;nbsp; (can only be used for two string literals&lt;br /&gt;&lt;/li&gt;&lt;li&gt;string indexing:&amp;nbsp; word="helpA"&amp;nbsp; word[4]=A&amp;nbsp;&amp;nbsp; word[0:2]=He word[2:4]=lp&lt;/li&gt;&lt;li&gt;python strings can not be changed by indexing. but:&amp;nbsp;&amp;nbsp; 'x'+word[1:]=xelpA&lt;/li&gt;&lt;li&gt;And omitted first index defaults to zero. and omitted second string defaults to size of the string being sliced.&lt;/li&gt;&lt;li&gt;s=s[:i]+s[i:]&lt;/li&gt;&lt;li&gt;an index that is too large is replaced by the string size.&lt;/li&gt;&lt;li&gt;and upper bound smaller that the lower bound returns an empty string.&lt;/li&gt;&lt;li&gt;indices may be negative numbers , to start counting from the&amp;nbsp; right.&lt;/li&gt;&lt;li&gt;Out-of-range negative slice indices are truncated. word[-100:]=helpA&lt;/li&gt;&lt;li&gt;The indices are pointing between characters.&amp;nbsp;&lt;/li&gt;&lt;li&gt;length of string: len(s)&lt;/li&gt;&lt;li&gt;List items need not all have the same type.&amp;nbsp; a=['spam','eggs',100,1234]&amp;nbsp;&amp;nbsp; 3*a[:3]+['Boe!'] -&amp;gt; ['spam', 'eggs', 100, 'spam', 'eggs', 100, 'spam', 'eggs', 100, 'Boe!']&lt;/li&gt;&lt;li&gt;len(a) to get the length of a list.&lt;/li&gt;&lt;li&gt;using nested lists are also possible&lt;/li&gt;&lt;/ul&gt;Finbonacci series in python(note the multiple assignment):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;a,b=0,1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;while b&amp;lt;10:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; print b&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; a,b=b,a+b&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-4447964262290022975?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/4447964262290022975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=4447964262290022975' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/4447964262290022975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/4447964262290022975'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2009/11/really-quick-python-tutorial-part-i.html' title='Really Quick python tutorial (Part I: Intro)'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-7136564123724970675</id><published>2009-09-01T07:51:00.001+04:30</published><updated>2009-09-01T07:51:57.816+04:30</updated><title type='text'>Top 7 reasons i joined the IT industry</title><content type='html'>1) I hated sleep.&lt;br /&gt;2) I had enjoyed my life enough.&lt;br /&gt;3) I couldn't live  without tension.&lt;br /&gt;4) I wanted to pay for my sins.&lt;br /&gt;5) I believed in the  principle : "Do work...dont think of the reward"&lt;br /&gt;6) Everything in life has a  reason, I wanted to prove it wrong.&lt;br /&gt;7) I wanted to take revenge on myself&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-7136564123724970675?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/7136564123724970675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=7136564123724970675' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/7136564123724970675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/7136564123724970675'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2009/09/top-7-reasons-i-joined-it-industry.html' title='Top 7 reasons i joined the IT industry'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-1981369574401108722</id><published>2009-07-14T05:18:00.000+04:30</published><updated>2009-07-14T05:19:41.240+04:30</updated><title type='text'>That's Class!</title><content type='html'>Getting  a premium rapidshare account! What a Class!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-1981369574401108722?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/1981369574401108722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=1981369574401108722' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/1981369574401108722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/1981369574401108722'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2009/07/thats-class.html' title='That&apos;s Class!'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-8865975806508394326</id><published>2009-04-15T10:56:00.001+04:30</published><updated>2009-04-15T11:04:15.085+04:30</updated><title type='text'>استسقا</title><content type='html'>به حرص ار شربتی خوردم مگیر از من که بد کردم&lt;br /&gt;بیابان بود و تابستان و آب سرد و استسقا&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-8865975806508394326?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/8865975806508394326/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=8865975806508394326' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8865975806508394326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8865975806508394326'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2009/04/blog-post.html' title='استسقا'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-1801570598009463024</id><published>2009-02-26T13:55:00.000+03:30</published><updated>2009-02-26T13:57:44.249+03:30</updated><title type='text'>Just Watch The Video!</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/s957W6jomBc&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/s957W6jomBc&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-1801570598009463024?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/1801570598009463024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=1801570598009463024' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/1801570598009463024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/1801570598009463024'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2009/02/just-watch-video.html' title='Just Watch The Video!'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-8935231663247866912</id><published>2009-01-24T18:43:00.005+03:30</published><updated>2009-01-24T19:21:39.581+03:30</updated><title type='text'>Soil and Soul</title><content type='html'>(I)&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VpFdebajGYw/SXs2mtorERI/AAAAAAAAAFk/YY4DEEvf580/s1600-h/we-flag.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 72px; height: 36px;" src="http://3.bp.blogspot.com/_VpFdebajGYw/SXs2mtorERI/AAAAAAAAAFk/YY4DEEvf580/s320/we-flag.gif" alt="" id="BLOGGER_PHOTO_ID_5294885825617269010" border="0" /&gt;&lt;/a&gt;Our land is emerald,&lt;br /&gt;                                                                But in the deserts of the exile,&lt;br /&gt;                                                                                                 Successive springs,&lt;br /&gt;Sprinkle nothing but poison.&lt;br /&gt;                                    What should we do with our love?&lt;br /&gt;                                                                                                  While our eyes and mouths are filled with iced soil and dew&lt;br /&gt;&lt;br /&gt;سرزمین ما زمرد است&lt;br /&gt;ولی در بیابان های تبعید&lt;br /&gt;بهارهای پیاپی&lt;br /&gt;جز زهر بر چهره ی ما نمی پاشد&lt;br /&gt;با عشق خود چه کنیم&lt;br /&gt;در حالی که چشم ها و دهانمان پر از خاک و شبنم یخ زده است.&lt;br /&gt;-------------------------------&lt;br /&gt;(II)&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VpFdebajGYw/SXs2mk0IsxI/AAAAAAAAAFs/0jMgB-WZ5oA/s1600-h/israel-96x70.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 96px; height: 70px;" src="http://4.bp.blogspot.com/_VpFdebajGYw/SXs2mk0IsxI/AAAAAAAAAFs/0jMgB-WZ5oA/s320/israel-96x70.gif" alt="" id="BLOGGER_PHOTO_ID_5294885823249429266" border="0" /&gt;&lt;/a&gt;As long as deep in the heart,&lt;br /&gt;The soul of a Jew yearns,&lt;br /&gt;And forward to the East&lt;br /&gt;To Zion, an eye looks&lt;br /&gt;Our hope will not be lost,&lt;br /&gt;The hope of two thousand years,&lt;br /&gt;To be a free nation in our land,&lt;br /&gt;The land of Zion and Jerusalem.&lt;br /&gt;&lt;br /&gt;از صمیم قلب&lt;br /&gt;روح یهودی اشتیاق دارد&lt;br /&gt;و به سوی شرق، به صهیون،نگاهی می اندازد&lt;br /&gt;امید ما هرگز از بین نخواهد رفت&lt;br /&gt;امید دو هزار ساله&lt;br /&gt;تا ملتی آزاد در سرزمینمان باشیم&lt;br /&gt;سرزمین صهیون و اورشلیم&lt;br /&gt;--------------------------------&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-8935231663247866912?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/8935231663247866912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=8935231663247866912' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8935231663247866912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8935231663247866912'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2009/01/pull-left.html' title='Soil and Soul'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_VpFdebajGYw/SXs2mtorERI/AAAAAAAAAFk/YY4DEEvf580/s72-c/we-flag.gif' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-3228239809088392287</id><published>2008-10-09T14:07:00.000+03:30</published><updated>2008-10-09T14:10:33.689+03:30</updated><title type='text'>Yet standing!</title><content type='html'>Extremely hard! I could not imagine how college can be that hard in my country.&lt;br&gt;I don&amp;#39;t mean the subjects but the mental pressure that I&amp;#39;m facin&amp;#39;. All friends are studing as much as 10 hours a day. But I, only 2 hours!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-3228239809088392287?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/3228239809088392287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=3228239809088392287' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/3228239809088392287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/3228239809088392287'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2008/10/yet-standing.html' title='Yet standing!'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-3856788419265483488</id><published>2008-10-02T20:00:00.001+03:30</published><updated>2008-11-06T21:01:05.117+03:30</updated><title type='text'>Spiritual Dumbness!</title><content type='html'>Differential Calculus, physics &amp;amp; English.&lt;br /&gt;The first day started with all these junks. Getting ready for the university entrance exam , I should choose a new lifestyle because in addition to the hardness of the exam itself, the competition is extremely ubiquitous.&lt;br /&gt;I don't think about an option other than software engineering  because I have really felt in love with that already. Yes, there are other subjects that I like but I cant select them such as politics &amp;amp; literature.&lt;br /&gt;But there are some important obstacles that make me not to study such as my recent projects . But I plan to complete them and stick on that nonsense. Damn!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-3856788419265483488?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/3856788419265483488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=3856788419265483488' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/3856788419265483488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/3856788419265483488'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2008/10/spiritual-dumbness.html' title='Spiritual Dumbness!'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-6571888158564463455</id><published>2008-08-10T19:36:00.005+04:30</published><updated>2008-09-03T18:49:53.684+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>Haj Morteza (Ali) Gharavian-حاج مرتضی (علی) غرویان</title><content type='html'>Haj Morteza (Ali) Gharavian passed away at 14:45 on August 6, 2008 in the I.C.U of 22-Bahman hospital in Nishapur.&lt;br /&gt;&lt;br /&gt;Related Links:&lt;div&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://www.sobhe-neyshaboor.com/content/view/471/82/"&gt;http://www.sobhe-neyshaboor.com/content/view/471/82/&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;a href="http://www.qudsdaily.com/archive/1387/html/5/1387-05-20/page14.html"&gt;http://www.qudsdaily.com/archive/1387/html/5/1387-05-20/page14.html&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://www.mums.ac.ir/relations/fa/mordad87"&gt;http://www.mums.ac.ir/relations/fa/mordad87&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;a href="http://www2.irna.ir/01/news/view/line-147/8705199893124304.htm"&gt;http://www2.irna.ir/01/news/view/line-147/8705199893124304.htm&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://www.kayhannews.ir/870520/3.HTM#other309"&gt;http://www.kayhannews.ir/870520/3.HTM#other309&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://sanaei.blogfa.com/post-155.aspx"&gt;http://sanaei.blogfa.com/post-155.aspx&lt;/a&gt;  (with picture)&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://truelife.blogfa.com/post-106.aspx"&gt;http://truelife.blogfa.com/post-106.aspx&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://zaminekhaki.blogfa.com/post-7.aspx"&gt;http://zaminekhaki.blogfa.com/post-7.aspx&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://www.jomhourieslami.com/1387/13870519/13870519_jomhori_islami_05_shahrestan.HTML"&gt;http://www.jomhourieslami.com/1387/13870519/13870519_jomhori_islami_05_shahrestan.HTML&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;a href="http://2niayeman.blogfa.com/post-36.aspx"&gt;http://2niayeman.blogfa.com/post-36.aspx&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://pjshargh.blogfa.com/post-8.aspx"&gt;http://pjshargh.blogfa.com/post-8.aspx&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://www.ghatreh.com/press/cat-9-10-50.html"&gt;http://www.ghatreh.com/press/cat-9-10-50.html&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://www.spac.ir/hoghoghi/index-2-3.htm"&gt;http://www.spac.ir/hoghoghi/index-2-3.htm&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://www.hamshahrionline.ir/News/?id=23782"&gt;http://www.hamshahrionline.ir/News/?id=23782&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://www.afarineshdaily.ir/afarinesh/Article.aspx?AID=2981"&gt;http://www.afarineshdaily.ir/afarinesh/Article.aspx?AID=2981&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://khayyamy.persianblog.ir/"&gt;http://khayyamy.persianblog.ir/&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://www.hvm.ir/lawdetailnews.asp?id=37887"&gt;http://www.hvm.ir/lawdetailnews.asp?id=37887&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://www.ibna.ir/vdciyyaz.t1ayy2bcct.html"&gt;http://www.ibna.ir/vdciyyaz.t1ayy2bcct.html&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-6571888158564463455?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/6571888158564463455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=6571888158564463455' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/6571888158564463455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/6571888158564463455'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2008/08/haj-morteza-ali-gharavian.html' title='Haj Morteza (Ali) Gharavian-حاج مرتضی (علی) غرویان'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-6684733506390553613</id><published>2008-08-06T14:43:00.002+04:30</published><updated>2008-08-06T14:56:08.411+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Zen'/><title type='text'>A cup of tea(Zen Story No.1) --یک استکان چای (داستان شماره یک ذن)ـ</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VpFdebajGYw/SJl7k9EI7MI/AAAAAAAAAE8/aIX29W8ysdQ/s1600-h/japan_tea.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_VpFdebajGYw/SJl7k9EI7MI/AAAAAAAAAE8/aIX29W8ysdQ/s320/japan_tea.jpg" alt="" id="BLOGGER_PHOTO_ID_5231348316964973762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Nan-in, a Japanese master during the Meiji era (1868-1912), received a university professor who came to inquire about Zen.&lt;br /&gt;Nan-in served tea. He poured his visitor's cup full, and then kept on pouring.&lt;br /&gt;The professor watched the overflow until he no longer could restrain himself. "It is overfull. No more will go in!"&lt;br /&gt;"Like this cup," Nan-in said, "you are full of your own opinions and speculations. How can I show you Zen unless you first empty your cup?"&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;div style="text-align:right;"&gt;نانین، استاد ژاپنی در دوره ميجی، يکی از استادان دانشگـاه را که می خواست از او در مورد ذن سوالاتی بپرسد، را پذیرفت، پس از زمانی مباحثه، نانین چای را در استکان مهمان خود سرازير کرد و همانطور به ریختن ادامه داد، استاد دانشگاه که استکان چای را در حال سرازير شدن می ديد نتوانست ساکت بماند و گفت: "استکان پر شده است، ديگر جايی ندارد"، نانین به او گفت: همانند اين استکان، تو نیز از اعتقادات و تفکرات خویش پر شده ای، اگر ابتدا استکان خویش را خالی نکنی، چگونی توانم ذن را به تو نشان دهم؟&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-6684733506390553613?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/6684733506390553613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=6684733506390553613' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/6684733506390553613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/6684733506390553613'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2008/08/cup-of-teazen-story-no1.html' title='A cup of tea(Zen Story No.1) --یک استکان چای (داستان شماره یک ذن)ـ'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_VpFdebajGYw/SJl7k9EI7MI/AAAAAAAAAE8/aIX29W8ysdQ/s72-c/japan_tea.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-7886881575107305884</id><published>2008-08-06T11:56:00.002+04:30</published><updated>2008-08-06T11:59:04.150+04:30</updated><title type='text'>How to Eat a Pomegranate</title><content type='html'>A nice blog post about how to eat a pomegranate. That's fantastic!&lt;br /&gt;&lt;a href="http://emptyage.honan.net/mth/2007/10/how-to-eat-a-po.html" target="_blank"&gt;see&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-7886881575107305884?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/7886881575107305884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=7886881575107305884' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/7886881575107305884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/7886881575107305884'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2008/08/posted-using-sharethis.html' title='How to Eat a Pomegranate'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-2364678560756512960</id><published>2008-08-06T11:18:00.003+04:30</published><updated>2008-08-06T11:30:10.453+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>Wikipedia, the Addictive Drug</title><content type='html'>The most addictive drug I've ever seen is definitely en.Wikipedia.com . If you get into the business of wikipediaing!!!(the verb i thought coined today but later realized that it is present.&lt;a href="http://en.wiktionary.org/wiki/Wikipediaing" target="_blank"&gt;See&lt;/a&gt;), you'll find yourself stuck on that.&lt;br /&gt;If you have not joined the wikipedia editors community, Do It Today.You'll love it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-2364678560756512960?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/2364678560756512960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=2364678560756512960' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2364678560756512960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2364678560756512960'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2008/08/wikipedia-addictive-drug.html' title='Wikipedia, the Addictive Drug'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-3428626093889415588</id><published>2008-08-01T19:21:00.004+04:30</published><updated>2008-08-02T15:22:26.075+04:30</updated><title type='text'>حرکت جدید</title><content type='html'>&lt;div dir="rtl" style="text-align: right;"&gt;تا به حال چندین بار وبلاگ درست کردم و آن را در گوشه ای وانهادم. از طرفی دوست داشتم به انگلیسی بنویسم و از طرف دیگر زبان نامادری مشکلات خاص خویش را دارد.نتیجه وبلاگی شد که تنها به زبان نامادری است و سال به سال به روز نمی شود.&lt;br /&gt;از امروز و با مدد جستن از نظری که دخیل بودن کورش کبیر را در این وبلاگ محتمل دانسته بود، تصمیم بر آن شد که تابوی بلاگر را بشکنم و به فارسی نیز بنویسم.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-3428626093889415588?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/3428626093889415588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=3428626093889415588' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/3428626093889415588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/3428626093889415588'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2008/08/blog-post.html' title='حرکت جدید'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-173007734947277061</id><published>2008-06-14T22:42:00.001+04:30</published><updated>2008-06-25T15:38:00.275+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='diary'/><title type='text'>I think I should do it!</title><content type='html'>&lt;p class="MsoNormal"&gt;After almost six months, I decided to write in my diary. I am doing it because I read “la nausée” by Jean Paul Sartre where Antoine Roquentine declares a good diary as an essential part of everyday life!&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Yes, I am moving to a new paragraph as J.D. Salinger accentuates paragraphs and the importance of proper paragraphing! Today, we took chemistry exam, the last of the final exams. There are two more non-final exams that their grades are not used as a criterion for university entrance: Computer and History. Today, I found out the damned essence of NH3 when dissolves in water and creates a weak electrolyte and not a non-electrolyte. Damn! Damn! Damn! &lt;/p&gt;  &lt;p class="MsoNormal"&gt;After the exam, three of the schoolmates and I went to drink something. I wonder why I ordered “carrot juice and ice cream” while I liked to drink a cool non-alcoholic beer. I do not know why I did that. Maybe because I &lt;b&gt;think&lt;/b&gt; that I &lt;b&gt;should&lt;/b&gt; order carrot juice and ice cream whenever I can make a selection (It is exactly like when I order hotdogs while I like hamburgers). The drink was good and refreshing, incidentally! &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-173007734947277061?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/173007734947277061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=173007734947277061' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/173007734947277061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/173007734947277061'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2008/06/i-think-i-should-do-it.html' title='I think I should do it!'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-898058370712001810</id><published>2008-05-06T20:07:00.001+04:30</published><updated>2008-05-06T20:07:38.352+04:30</updated><title type='text'>Theocracy, Ups and Downs</title><content type='html'>As we look over our daily life, we see there are many interesting subjects to blog about. Personally, for me, there are many subjects per day. However, sometimes, it is hard to get yourself on computer and write. Today, I could finally do it and write about a subject that I wanted to write about for a couple of weeks: Theocracy.  &lt;p class="MsoNormal"&gt;First, let us inspect the definition of Theocracy. Theocracy is originated from the Greek word Theokratia. It refers to a system of government ruled by religious officials in the name of God or a god.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The important point, surely, is that Theocracy does not occur when there is a religious government but occurs when “Religious Officials” rule the government.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Apparently, there are some downwards with this type of government, especially in the modern eras.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Let me clarify the subject by giving some examples. If a theocratic government believes itself to be &lt;b&gt;originated &lt;/b&gt;from God, having assigned &lt;b&gt;divinity&lt;/b&gt;, it is clear that the main point and the root of this government are disputed. Because all of important religions believe there is not a direct representative of God in the earth. For example, in Christianity, Messiah is not present now. Moreover, in Islam, Mahdi is not obviously among Muslims. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;About two or three weeks ago, I went to Barack Obama’s website and downloaded a PDF. In a part of that document, there were some notes about separation of church and state. It was saying that when the church and state are not separated, then there would be some politic works in the name of religion, thus, affecting the divinity of religions.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;I do not want to write about secularism or separation of church and state in this post. By mentioning that document, I just wanted to give an example to clarify that whether intentionally or not, &lt;b&gt;when there is not a direct representative of God, &lt;/b&gt;there would be some misuses from behind irresponsible and pretentious politicians.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Consequently, I believe that Theocracy would not answer in the modern world but there should be strict religious adherence and respect towards religion among politicians. In addition, I should mention that in some countries such as &lt;st1:country-region st="on"&gt;Sweden&lt;/st1:country-region&gt; or &lt;st1:country-region st="on"&gt;&lt;st1:place st="on"&gt;China&lt;/st1:place&gt;&lt;/st1:country-region&gt;, in which more than 80 percent of people are irreligious, subsequently, the above method (adherence and respect) does not work.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-898058370712001810?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/898058370712001810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=898058370712001810' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/898058370712001810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/898058370712001810'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2008/05/theocracy-ups-and-downs.html' title='Theocracy, Ups and Downs'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-6190861048471142231</id><published>2008-02-25T20:09:00.002+03:30</published><updated>2008-05-10T23:57:42.721+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>KToolbar is Removed from Wireless Toolkit</title><content type='html'>&lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;After a couple of months delay, I decided to start blogging again. Today I want to write about KToolbar.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;What is KToolbar? KToolbar was (!) a part of Sun Java™ Wireless Toolkit for CLDC. We used to compile and test our MIDP applications by KToolbar. As far as I know, KToolbar was present until before the release of WTK 2.5.2. When I downloaded the latest version of WTK, I realized that the lovely KToolbar is REMOVED from WTK! Actually they simply renamed KToolbar to "Wireless Toolkit".&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Following the change of J2SE to Java SE, J2EE to Java EE and J2ME to Java ME, They removed the odd-named KToolbar. I think that Sun is simplifying the names of its products in order to become more community-applicable. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Recently, I felt in love with politics. So I'll write more about politics soon.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-6190861048471142231?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/6190861048471142231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=6190861048471142231' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/6190861048471142231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/6190861048471142231'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2008/02/ktoolbar-is-removed-from-wireless.html' title='KToolbar is Removed from Wireless Toolkit'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-5266501473926714816</id><published>2007-08-11T18:55:00.003+03:30</published><updated>2010-03-23T15:08:44.929+04:30</updated><title type='text'>Reference vs. Instance variables in java</title><content type='html'>Java is a mature language, so posting an article about it would not make sense. However,&lt;br /&gt;&lt;br /&gt;Imagine you have following two classes:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new,monospace;"&gt;public class TheParent{&lt;/span&gt;  &lt;span style="font-family: courier new,monospace;"&gt;public doParentThing(){}&lt;/span&gt; &lt;span style="font-family: courier new,monospace;"&gt; }&lt;/span&gt;  &lt;span style="font-family: courier new,monospace;"&gt;public class TheChild extends TheParent{&lt;/span&gt;  &lt;span style="font-family: courier new,monospace;"&gt;public doChildThing(){}&lt;br /&gt;public doParentThing(){} //overrride &lt;/span&gt;&lt;span style="font-family: courier new,monospace;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ok, now lets instantiate TheChild :&lt;br /&gt;&lt;br /&gt;TheChild obj=new TheChild;&lt;br /&gt;&lt;br /&gt;it's ok to invoke two methods:&lt;br /&gt;obj.doParentThing(); //TheChild version invokes&lt;br /&gt;obj.doChildThing();&lt;br /&gt;&lt;br /&gt;now, instantiate it polymorphically:&lt;br /&gt;&lt;br /&gt;TheParent obj=new TheChild();&lt;br /&gt;&lt;br /&gt;if we try to invoke doChildThing() we get a compile error and when we invoke:&lt;br /&gt;&lt;br /&gt;obj.doParentThing();&lt;br /&gt;&lt;br /&gt;the TheChild's doParentThing() override invokes.&lt;br /&gt;&lt;br /&gt;This is true when we get a reference to an interface that the instance variable's class implement. in such a case, we can ONLY invoke the methods blueprinted by the interface.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-5266501473926714816?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/5266501473926714816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=5266501473926714816' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5266501473926714816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5266501473926714816'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/08/reference-vs-instance-variables-in-java.html' title='Reference vs. Instance variables in java'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-2169602738085810463</id><published>2007-08-11T17:45:00.001+03:30</published><updated>2008-05-10T23:57:08.448+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>Changing the Foundation and a word about XML</title><content type='html'>After a long time, i could find some spare time and fix my website's problems. I changed the foundation of website to a XML based template system.&lt;br /&gt;&lt;br /&gt;Today, more and more companies are adopting XML. Software developers use xml instead of value-pair configuration files, web designers use XHTML instead of HTML, users now consume rss and atom feeds, blogging websites use XML templates instead of old, error prone HTML templates, organizations use SOAP to exchange data (which is XML-based), and large corporations encourage developers and users to include XML in their everyday life!&lt;br /&gt;&lt;br /&gt;XML is awesome. ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-2169602738085810463?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/2169602738085810463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=2169602738085810463' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2169602738085810463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2169602738085810463'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/08/changing-foundation-and-word-about-xml.html' title='Changing the Foundation and a word about XML'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-9042663548523055345</id><published>2007-06-30T23:30:00.000+03:30</published><updated>2007-06-30T23:32:17.935+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><category scheme='http://www.blogger.com/atom/ns#' term='news'/><title type='text'>Gallery</title><content type='html'>You can access my pictures gallery from the following link:&lt;br /&gt;&lt;a href="http://rahmanzadeh.info/gallery"&gt;http://rahmanzadeh.info/gallery&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-9042663548523055345?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/9042663548523055345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=9042663548523055345' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/9042663548523055345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/9042663548523055345'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/06/gallery.html' title='Gallery'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-5758727110414766329</id><published>2007-06-30T22:56:00.000+03:30</published><updated>2007-06-30T22:58:03.773+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><title type='text'>New Server</title><content type='html'>Finally, I moved to this server.&lt;br /&gt;Thanks to my dear friend Ehsan.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-5758727110414766329?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/5758727110414766329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=5758727110414766329' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5758727110414766329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5758727110414766329'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/06/new-server.html' title='New Server'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-764793634354987874</id><published>2007-06-12T22:05:00.000+03:30</published><updated>2007-06-12T22:08:39.739+03:30</updated><title type='text'>Starting J2me</title><content type='html'>The semester exams are nearly finishing and i can take a break for three months. I am about to start learning j2me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-764793634354987874?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/764793634354987874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=764793634354987874' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/764793634354987874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/764793634354987874'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/06/starting-j2me.html' title='Starting J2me'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-2152204622765445610</id><published>2007-05-09T22:16:00.001+03:30</published><updated>2007-05-09T22:16:59.501+03:30</updated><title type='text'>Difficult issues in programming</title><content type='html'>Sometimes, when we are learning a new subject, there are something that we can&amp;#39;t understand at that time. &lt;br&gt;About three or four months ago,when i was still at web programming, i encountered such a subject in my learning process. I was about to create a template for oscommerce(a popular e-commerce cms. Friends at  &lt;a href="http://devnetworks.net"&gt;devnetworks.net&lt;/a&gt; are creatin&amp;#39; a better equivalent for oscommerce called devenetstore. I am one of the group, but i&amp;#39;m an sleepin&amp;#39; member!!) but i couldn&amp;#39;t figure out how.  &lt;br&gt;When i was new to programming, I couldn&amp;#39;t understand Exceptions immediately. The key to understand this difficult issues are the following steps:&lt;br&gt;1. break up&lt;br&gt;2.drink a hot tea&lt;br&gt;3.start a new subject&lt;br&gt;4.come  back to the difficult subject after one or two weeks&lt;br&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-2152204622765445610?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/2152204622765445610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=2152204622765445610' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2152204622765445610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2152204622765445610'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/05/difficult-issues-in-programming.html' title='Difficult issues in programming'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-2125383310853797148</id><published>2007-05-04T10:41:00.000+03:30</published><updated>2007-05-04T10:42:00.852+03:30</updated><title type='text'>Java....Another Cup</title><content type='html'>I&amp;#39;m Still proceeding with Sun&amp;#39;s Java Tutorial. That&amp;#39;s&amp;nbsp; awesome.&lt;br&gt;I got netbeans. I like netbeans more than jbuilder but i believe that jbuilder is more pow&amp;#39;ful.&lt;br&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-2125383310853797148?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/2125383310853797148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=2125383310853797148' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2125383310853797148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2125383310853797148'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/05/javaanother-cup.html' title='Java....Another Cup'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-5150957711429673628</id><published>2007-04-30T23:00:00.001+03:30</published><updated>2007-04-30T23:00:03.123+03:30</updated><title type='text'>After a long time</title><content type='html'>hmm, i couldn&amp;#39;t update for a while. sorry. &lt;br&gt;I have started the java tutorial by Sun. I think that&amp;#39;s a good point to start from. I bought borland jbuilder 2005 enterprise last night. Some developers say that netbeans is better than jbuilder but i haven&amp;#39;t tried netbeans yet. downloading it right now... &lt;br&gt;&lt;br&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-5150957711429673628?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/5150957711429673628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=5150957711429673628' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5150957711429673628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5150957711429673628'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/04/after-long-time.html' title='After a long time'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-8485268586317719409</id><published>2007-04-14T19:15:00.000+03:30</published><updated>2007-04-14T19:16:31.876+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><title type='text'>Commenting</title><content type='html'>I enabled commenting to this blog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-8485268586317719409?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/8485268586317719409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=8485268586317719409' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8485268586317719409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8485268586317719409'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/04/commenting.html' title='Commenting'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-647191306682893510</id><published>2007-04-14T14:51:00.000+03:30</published><updated>2007-04-14T14:52:01.153+03:30</updated><title type='text'>Goodbye PHP</title><content type='html'>Dear PHP,&lt;br&gt;&lt;br&gt;I started learning you with no programming experience. Actually, I learned programming with you. I have a lot of memories with you. I remember the nights i spent doing projects with you. You gave me a lot of money too. &lt;br&gt;But now, I wanna leave you. Because i have learned you and i need a good programming language. I am switching to Java.&lt;br&gt;But you can be certain that i won&amp;#39;t create web applications with jsp.&lt;br&gt;&lt;br&gt;Love,&lt;br&gt;Danial &lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-647191306682893510?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/647191306682893510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=647191306682893510' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/647191306682893510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/647191306682893510'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/04/goodbye-php.html' title='Goodbye PHP'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-4787837331197247102</id><published>2007-04-03T20:48:00.003+03:30</published><updated>2010-06-18T01:05:09.059+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>PHP Architecht's Guide To PHP Design Patterns Book Review</title><content type='html'>Finally, I finished this book in the subject of design patterns. It helped me in the subject of design patterns. However, we can not compare it with Eric Gamma's book or Martin Fowler's. They are a must-read not only for every programmer, but for every computer engineer.&lt;br /&gt;Jason Sweat (the author) put a great effort on this book. But TDD programming is overused. You can't get the most out of this book without knowing SimpleTest php|architect expressed this as a feature but in my opinion it is a weakness and not a feature.&lt;br /&gt;UML diagrams are used reasonably and help the reader to understand the subject conceptually.&lt;br /&gt;Appendix A, Pattern Quick Reference is very quick and efficient providing external sources and a brief description about each pattern.&lt;br /&gt;The most important thing you should consider is that unfortunately you can not master design patterns just with reading a single book (Eric Gamma's book is an exception). You should implement the patterns in the real world with a good OOP language such as Java, C# or even PHP (PHP5 and not PHP4).&lt;br /&gt;In my opinion and due to my experience, Factory Method, Singleton, Observer, Registry, MVC and Strategy play more important rules in programming than other programming languages.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-4787837331197247102?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/4787837331197247102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/4787837331197247102'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/04/php-architechts-guide-to-php-design.html' title='PHP Architecht&apos;s Guide To PHP Design Patterns Book Review'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-6747877241237023</id><published>2007-03-28T17:35:00.000+03:30</published><updated>2007-03-28T17:39:23.618+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><category scheme='http://www.blogger.com/atom/ns#' term='news'/><title type='text'>Where are the Ebooks?</title><content type='html'>Yes, I deleted all of the e books. There were about 110 e books . But i don't want my personal blog to become an e book repository. Additionally, this is illegal. So, i deleted all of them.&lt;br /&gt;Now, I only publish my own articles and some other stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-6747877241237023?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/6747877241237023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=6747877241237023' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/6747877241237023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/6747877241237023'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/03/where-are-ebooks.html' title='Where are the Ebooks?'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-3466842016554698008</id><published>2007-03-25T13:46:00.000+03:30</published><updated>2007-03-25T13:47:45.106+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>Fun Pic</title><content type='html'>&lt;img src="http://jokes4all.net/funpics/game_over.jpg" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-3466842016554698008?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/3466842016554698008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=3466842016554698008' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/3466842016554698008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/3466842016554698008'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/03/fun-pic_25.html' title='Fun Pic'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-6987278336191692822</id><published>2007-03-08T14:16:00.001+03:30</published><updated>2007-03-08T14:16:52.127+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>Fun Pic</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;img src="http://jokes4all.net/funpics/polar_bear_tv.jpg" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-6987278336191692822?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/6987278336191692822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=6987278336191692822' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/6987278336191692822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/6987278336191692822'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/03/fun-pic.html' title='Fun Pic'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-8032165516716682802</id><published>2007-03-01T14:49:00.002+03:30</published><updated>2007-03-01T14:50:30.284+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>Funny Pic</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;img src="http://jokes4all.net/funpics/hands_up.jpg" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-8032165516716682802?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/8032165516716682802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=8032165516716682802' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8032165516716682802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8032165516716682802'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/03/funny-pic.html' title='Funny Pic'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-8808270071893525012</id><published>2007-02-20T20:55:00.001+03:30</published><updated>2007-02-20T20:55:57.659+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>funny pic</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jokes4all.net/funpics/green_car.jpg"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://jokes4all.net/funpics/green_car.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-8808270071893525012?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/8808270071893525012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=8808270071893525012' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8808270071893525012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8808270071893525012'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/02/funny-pic_20.html' title='funny pic'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-2916470142850046770</id><published>2007-02-20T16:58:00.000+03:30</published><updated>2007-02-20T17:00:00.898+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>Funny Pic</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jokes4all.net/funpics/baby_with_water_melon.jpg"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://jokes4all.net/funpics/baby_with_water_melon.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-2916470142850046770?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/2916470142850046770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=2916470142850046770' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2916470142850046770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2916470142850046770'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/02/funny-pic.html' title='Funny Pic'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-5881549282600138388</id><published>2007-02-15T19:53:00.000+03:30</published><updated>2007-02-15T19:55:45.666+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>New Project</title><content type='html'>I am joining a new project. An enterprise and extremely professional project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-5881549282600138388?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/5881549282600138388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=5881549282600138388' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5881549282600138388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5881549282600138388'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/02/new-project.html' title='New Project'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-3885960253783460385</id><published>2007-02-15T19:50:00.000+03:30</published><updated>2007-02-15T19:51:09.595+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>Fun Pic</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jokes4all.net/funpics/snake_burger.jpg"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://jokes4all.net/funpics/snake_burger.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-3885960253783460385?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/3885960253783460385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=3885960253783460385' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/3885960253783460385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/3885960253783460385'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/02/fun-pic_15.html' title='Fun Pic'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-4130418184713302714</id><published>2007-02-14T20:32:00.001+03:30</published><updated>2007-02-14T20:32:51.283+03:30</updated><title type='text'>Moving to a new server</title><content type='html'>I am moving to my original server. &lt;a href="http://www.danrah.com"&gt;www.danrah.com&lt;/a&gt; &lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-4130418184713302714?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/4130418184713302714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=4130418184713302714' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/4130418184713302714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/4130418184713302714'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/02/moving-to-new-server.html' title='Moving to a new server'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-2610972005485719205</id><published>2007-02-09T17:31:00.001+03:30</published><updated>2007-02-07T15:49:37.103+03:30</updated><title type='text'>Busy On Learning</title><content type='html'>Currently, I am busy on learning flash and photoshop.&lt;br&gt;new updates coming.&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-2610972005485719205?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/2610972005485719205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=2610972005485719205' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2610972005485719205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2610972005485719205'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/02/busy-on-learning.html' title='Busy On Learning'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-514241991369113318</id><published>2007-02-06T13:43:00.001+03:30</published><updated>2007-02-11T21:45:37.077+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>Busy on Work</title><content type='html'>Sorry. Busy on Work right now. New Updates Coming&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-514241991369113318?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/514241991369113318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=514241991369113318' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/514241991369113318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/514241991369113318'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/02/busy-on-work.html' title='Busy on Work'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-4113186913976148130</id><published>2007-02-02T18:11:00.000+03:30</published><updated>2007-02-02T18:13:04.621+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>Fun Pic</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jokes4all.net/funpics/snake_bath.jpg"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://jokes4all.net/funpics/snake_bath.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-4113186913976148130?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/4113186913976148130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=4113186913976148130' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/4113186913976148130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/4113186913976148130'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/02/fun-pic.html' title='Fun Pic'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-3128641439900458819</id><published>2007-01-30T14:29:00.000+03:30</published><updated>2007-01-30T14:31:01.516+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>13 Signs Of Falling In Love</title><content type='html'>&lt;b&gt;&lt;div align="center"&gt; 1.    While reading this, there was one person on your mind the whole time.....&lt;br /&gt;&lt;br /&gt;2.    You would do anything for them...&lt;br /&gt;&lt;br /&gt;3.    You realize that you're always smiling to yourself when you think about them...&lt;br /&gt;&lt;br /&gt;4.    You get high just from their scent...&lt;br /&gt;&lt;br /&gt;5.    They become ALL you think about...&lt;br /&gt;&lt;br /&gt;6.    You start listening to slow songs, while thinking of them...&lt;br /&gt;&lt;br /&gt;7.    When you look at them, you can't see the other people around you... all you see is him/her...&lt;br /&gt;&lt;br /&gt;8.    You smile when you hear their voice...&lt;br /&gt;&lt;br /&gt;9.    When you think about them, your heart beats faster and faster...&lt;br /&gt;&lt;br /&gt;10.You feel shy whenever you're with them...&lt;br /&gt;&lt;br /&gt;11.You walk really slow when you're with them...&lt;br /&gt;&lt;br /&gt;12.You read their ----s over and over again...&lt;br /&gt;&lt;br /&gt;13.When your on the phone with them late at night and they hang up...but you miss them already when it was just two minutes ago&lt;/div&gt;&lt;/b&gt;&lt;!-- / message --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-3128641439900458819?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/3128641439900458819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=3128641439900458819' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/3128641439900458819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/3128641439900458819'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/13-signs-of-falling-in-love.html' title='13 Signs Of Falling In Love'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-2766873667354602935</id><published>2007-01-29T17:29:00.000+03:30</published><updated>2007-01-29T17:31:31.173+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><category scheme='http://www.blogger.com/atom/ns#' term='diary'/><title type='text'>Translation</title><content type='html'>After Translation an article about regex and two about databases to persian(Which I published them to blog), Now I am working on an article about Ado.net .&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-2766873667354602935?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/2766873667354602935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=2766873667354602935' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2766873667354602935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2766873667354602935'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/translation.html' title='Translation'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-799146657970600990</id><published>2007-01-29T17:25:00.000+03:30</published><updated>2007-01-29T17:27:30.837+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>Fun Pic</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jokes4all.net/funpics/ash_grater.jpg"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://jokes4all.net/funpics/ash_grater.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-799146657970600990?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/799146657970600990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=799146657970600990' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/799146657970600990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/799146657970600990'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/fun-pic_29.html' title='Fun Pic'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-3791364124184443885</id><published>2007-01-23T14:18:00.000+03:30</published><updated>2007-01-23T14:21:51.122+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>fun pic</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jokes4all.net/funpics/mouse_make_up.jpg"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://jokes4all.net/funpics/mouse_make_up.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-3791364124184443885?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/3791364124184443885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=3791364124184443885' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/3791364124184443885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/3791364124184443885'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/fun-pic_23.html' title='fun pic'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-2046907967831023564</id><published>2007-01-21T19:32:00.001+03:30</published><updated>2008-05-11T00:02:09.551+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>fun pic</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VpFdebajGYw/RbOa9Ub0vcI/AAAAAAAAABA/C763CLMyes4/s1600-h/windows_hidden_settings.jpg"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_VpFdebajGYw/RbOa9Ub0vcI/AAAAAAAAABA/C763CLMyes4/s400/windows_hidden_settings.jpg" alt="" id="BLOGGER_PHOTO_ID_5022528387696344514" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-2046907967831023564?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/2046907967831023564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=2046907967831023564' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2046907967831023564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2046907967831023564'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/fun-pic.html' title='fun pic'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_VpFdebajGYw/RbOa9Ub0vcI/AAAAAAAAABA/C763CLMyes4/s72-c/windows_hidden_settings.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-6803122788637489095</id><published>2007-01-19T09:26:00.000+03:30</published><updated>2007-01-19T09:33:09.199+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>Funny Pic</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jokes4all.net/funpics/hands_up.jpg"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://jokes4all.net/funpics/hands_up.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-6803122788637489095?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/6803122788637489095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=6803122788637489095' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/6803122788637489095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/6803122788637489095'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/funny-pic_19.html' title='Funny Pic'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-8633931012283659713</id><published>2007-01-16T11:18:00.000+03:30</published><updated>2007-01-16T11:21:45.616+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>WAKE UP!!!</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jokes4all.net/funpics/wake_up.jpg"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://jokes4all.net/funpics/wake_up.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-8633931012283659713?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/8633931012283659713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=8633931012283659713' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8633931012283659713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8633931012283659713'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/wake-up.html' title='WAKE UP!!!'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-7746268605869899727</id><published>2007-01-16T11:12:00.000+03:30</published><updated>2007-01-16T11:17:38.758+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>Great Article about regex Dont Miss it</title><content type='html'>&lt;a href="http://forums.devnetwork.net/viewtopic.php?t=33147"&gt;http://forums.devnetwork.net/viewtopic.php?t=33147 &lt;/a&gt;&lt;br /&gt;don't miss this article.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-7746268605869899727?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/7746268605869899727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=7746268605869899727' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/7746268605869899727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/7746268605869899727'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/great-article-about-regex-dont-miss-it.html' title='Great Article about regex Dont Miss it'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-4538277174733982880</id><published>2007-01-15T11:21:00.000+03:30</published><updated>2007-01-15T11:25:53.244+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>Toilet,cats game,love (Fun Pic)</title><content type='html'>&lt;span style="font-weight: bold;"&gt;click to enlarge&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jokes4all.net/funpics/toilet_man.jpg"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://jokes4all.net/funpics/toilet_man.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jokes4all.net/funpics/cats_game.jpg"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://jokes4all.net/funpics/cats_game.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jokes4all.net/funpics/cat_and_hamster.jpg"&gt;&lt;img style="cursor: pointer; width: 400px;" src="http://jokes4all.net/funpics/cat_and_hamster.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-4538277174733982880?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/4538277174733982880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=4538277174733982880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/4538277174733982880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/4538277174733982880'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/toiletcats-gamelove-fun-pic.html' title='Toilet,cats game,love (Fun Pic)'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-6895017427516006411</id><published>2007-01-14T12:51:00.000+03:30</published><updated>2007-01-14T12:54:59.313+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>Woman=Problems</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VpFdebajGYw/Ran2x0b0vbI/AAAAAAAAAAw/YIjNfI3o2Zo/s1600-h/138.jpg"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_VpFdebajGYw/Ran2x0b0vbI/AAAAAAAAAAw/YIjNfI3o2Zo/s400/138.jpg" alt="" id="BLOGGER_PHOTO_ID_5019814595430497714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-6895017427516006411?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/6895017427516006411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=6895017427516006411' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/6895017427516006411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/6895017427516006411'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/womanproblems.html' title='Woman=Problems'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_VpFdebajGYw/Ran2x0b0vbI/AAAAAAAAAAw/YIjNfI3o2Zo/s72-c/138.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-2848944313278496257</id><published>2007-01-14T10:40:00.000+03:30</published><updated>2007-01-14T10:48:22.361+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>Encoding Cookies in JavaScript</title><content type='html'>&lt;span style="font-style: italic; color: rgb(153, 153, 153);"&gt;soruce: teach yourself javascript1.1 in a week by Arman Danesh&lt;br /&gt;&lt;/span&gt;the information stored in the name-value pair of a cookie cannot contain any spaces. This poses something of a limitation because many applications will need to store complete phrases or strings containing spaces in cookies. &lt;p&gt; The solution to this lies in encoding the illegal characters in a cookie. Netscape suggests using an encoding scheme such as that used in URL strings. &lt;/p&gt;&lt;p&gt; However, any coding scheme will work. For instance, alternative characters such as &lt;tt&gt;%&lt;/tt&gt; or &lt;tt&gt;+&lt;/tt&gt; could be used for spaces and a similar approach could be taken for other illegal characters, such as semicolons. &lt;/p&gt;&lt;p&gt; Any script that is going to build cookies using white spaces and other illegal characters, or that is going to read similar cookies, will need to include methods for dealing with these characters. &lt;/p&gt;&lt;p&gt; JavaScript provides the &lt;tt&gt;escape()&lt;/tt&gt; and &lt;tt&gt;unescape()&lt;/tt&gt; methods, which take a string as an argument. &lt;tt&gt;escape()&lt;/tt&gt; returns the string encoded like an URL and &lt;tt&gt;unescape()&lt;/tt&gt; translates it back from this encoding.&lt;br /&gt;&lt;/p&gt;&lt;center&gt;&lt;table border="1" bordercolor="#000000" width="80%"&gt; &lt;tbody&gt;&lt;tr valign="top"&gt;&lt;td width="577"&gt; &lt;b&gt;An easier recipe for cookies.&lt;/b&gt;   &lt;/td&gt;&lt;/tr&gt; &lt;tr valign="top"&gt;&lt;td width="577"&gt;&lt;blockquote&gt; It should be clear now that some type of standardized method for creating new cookies, reading existing cookies, and encoding cookies would make writing scripts much easier.&lt;/blockquote&gt; &lt;blockquote&gt; Just as he wrote the hIdaho Frameset, Bill Dortch has developed a set of freely available functions to perform all these tasks. The functions are available at &lt;/blockquote&gt; &lt;blockquote&gt; &lt;tt&gt;&lt;a href="http://www.hidaho.com/cookies/cookie.txt."&gt;http://www.hidaho.com/cookies/cookie.txt.&lt;/a&gt;&lt;br /&gt;The source code is reproduced on the CD-ROM:&lt;br /&gt;&lt;scr language="javascript"&gt;&lt;br /&gt;&lt;!-- begin script&lt;br /&gt;//&lt;br /&gt;//  Cookie Functions - Second Helping  (21-Jan-96)&lt;br /&gt;//  Written by:  Bill Dortch, hIdaho Design &lt;bdortch@netw.com&gt;&lt;br /&gt;//  The following functions are released to the public domain.&lt;br /&gt;//&lt;br /&gt;//  The Second Helping version of the cookie functions dispenses with&lt;br /&gt;//  my encode and decode functions, in&lt;br /&gt;&lt;/tt&gt;&lt;tt&gt;favor of JavaScript's new built-in&lt;br /&gt;//  escape and unescape functions,&lt;br /&gt;&lt;/tt&gt;&lt;tt&gt;which do more complete encoding, and&lt;br /&gt;//  which are probably much faster.&lt;br /&gt;//&lt;br /&gt;//  The new version also extends the SetCookie function, though in&lt;br /&gt;//  a backward-compatible manner, so if you used the First Helping of&lt;br /&gt;//  cookie functions as they were written,&lt;br /&gt;&lt;/tt&gt;&lt;tt&gt;you will not need to change any&lt;br /&gt;//  code, unless you want to take advantage of the new capabilities.&lt;br /&gt;//&lt;br /&gt;//  The following changes were made to SetCookie:&lt;br /&gt;//&lt;br /&gt;//  1.  The expires parameter is now optional - that is, you can omit&lt;br /&gt;//      it instead of passing it null to expire the cookie at the end&lt;br /&gt;//      of the current session.&lt;br /&gt;//&lt;br /&gt;//  2.  An optional path parameter has been added.&lt;br /&gt;//&lt;br /&gt;//  3.  An optional domain parameter has been added.&lt;br /&gt;//&lt;br /&gt;//  4.  An optional secure parameter has been added.&lt;br /&gt;//&lt;br /&gt;//  For information on the significance of these parameters, and&lt;br /&gt;//  and on cookies in general, please refer to the official cookie&lt;br /&gt;//  spec, at:&lt;br /&gt;//&lt;br /&gt;//      http://www.netscape.com/newsref/std/cookie_spec.html&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;// "Internal" function to return the decoded value of a cookie&lt;br /&gt;//&lt;br /&gt;function getCookieVal (offset) {&lt;br /&gt;  var endstr = document.cookie.indexOf (";", offset);&lt;br /&gt;  if (endstr == -1)&lt;br /&gt;    endstr = document.cookie.length;&lt;br /&gt;  return unescape(document.cookie.substring(offset, endstr));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//&lt;br /&gt;//  Function to return the value of the cookie specified by "name".&lt;br /&gt;//    name - String object containing the cookie name.&lt;br /&gt;//    returns - String object containing the cookie value, or null if&lt;br /&gt;//      the cookie does not exist.&lt;br /&gt;//&lt;br /&gt;function GetCookie (name) {&lt;br /&gt;  var arg = name + "=";&lt;br /&gt;  var alen = arg.length;&lt;br /&gt;  var clen = document.cookie.length;&lt;br /&gt;  var i = 0;&lt;br /&gt;  while (i &lt; clen) {&lt;br /&gt;    var j = i + alen;&lt;br /&gt;    if (document.cookie.substring(i, j) == arg)&lt;br /&gt;      return getCookieVal (j);&lt;br /&gt;    i = document.cookie.indexOf(" ", i) + 1;&lt;br /&gt;    if (i == 0) break;&lt;br /&gt;  }&lt;br /&gt;  return null;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//&lt;br /&gt;//  Function to create or update a cookie.&lt;br /&gt;//    name - String object containing the cookie name.&lt;br /&gt;//    value - String object containing the cookie value.  May contain&lt;br /&gt;//      any valid string characters.&lt;br /&gt;//    [expires] - Date object containing the&lt;br /&gt;&lt;/tt&gt;&lt;tt&gt;expiration data of the cookie.  If&lt;br /&gt;//      omitted or null, expires the cookie&lt;br /&gt;&lt;/tt&gt;&lt;tt&gt;at the end of the current session.&lt;br /&gt;//    [path] - String object indicating the path&lt;br /&gt;&lt;/tt&gt;&lt;tt&gt;for which the cookie is valid.&lt;br /&gt;//      If omitted or null, uses the path of the calling document.&lt;br /&gt;//    [domain] - String object indicating&lt;br /&gt;&lt;/tt&gt;&lt;tt&gt;the domain for which the cookie is&lt;br /&gt;//      valid.  If omitted or null,&lt;br /&gt;&lt;/tt&gt;&lt;tt&gt;uses the domain of the calling document.&lt;br /&gt;//    [secure] - Boolean (true/false) value&lt;br /&gt;&lt;/tt&gt;&lt;tt&gt;Indicating whether cookie transmission&lt;br /&gt;//      requires a secure channel (HTTPS).&lt;br /&gt;//&lt;br /&gt;//  The first two parameters are required. &lt;br /&gt;&lt;/tt&gt;&lt;tt&gt;The others, if supplied, must&lt;br /&gt;//  be passed in the order listed above. &lt;br /&gt;&lt;/tt&gt;&lt;tt&gt;To omit an unused optional field,&lt;br /&gt;//  use null as a place holder. &lt;br /&gt;&lt;/tt&gt;&lt;tt&gt;For example, to call SetCookie using name,&lt;br /&gt;//  value and path, you would code:&lt;br /&gt;//&lt;br /&gt;//      SetCookie ("myCookieName", "myCookieValue", null, "/");&lt;br /&gt;//&lt;br /&gt;//  Note that trailing omitted parameters&lt;br /&gt;&lt;/tt&gt;&lt;tt&gt;do not require a placeholder.&lt;br /&gt;//&lt;br /&gt;//  To set a secure cookie for path "/myPath", that expires after the&lt;br /&gt;//  current session, you might code:&lt;br /&gt;//&lt;br /&gt;//      SetCookie (myCookieVar, cookieValueVar, null,&lt;br /&gt;&lt;/tt&gt;&lt;tt&gt;"/myPath", null, true);&lt;br /&gt;//&lt;br /&gt;function SetCookie (name, value) {&lt;br /&gt;  var argv = SetCookie.arguments;&lt;br /&gt;  var argc = SetCookie.arguments.length;&lt;br /&gt;  var expires = (argc &gt; 2) ? argv[2] : null;&lt;br /&gt;  var path = (argc &gt; 3) ? argv[3] : null;&lt;br /&gt;  var domain = (argc &gt; 4) ? argv[4] : null;&lt;br /&gt;  var secure = (argc &gt; 5) ? argv[5] : false;&lt;br /&gt;  document.cookie = name + "=" + escape (value) +&lt;br /&gt;    ((expires == null) ? "" :&lt;br /&gt;&lt;/tt&gt;&lt;tt&gt;("; expires=" + expires.toGMTString())) +&lt;br /&gt;((path == null) ? "" : ("; path=" + path)) +&lt;br /&gt;    ((domain == null) ? "" : ("; domain=" + domain)) +&lt;br /&gt;    ((secure == true) ? "; secure" : "");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//  Function to delete a cookie.&lt;br /&gt;&lt;/tt&gt;&lt;tt&gt;(Sets expiration date to current date/time)&lt;br /&gt;//    name - String object containing the cookie name&lt;br /&gt;//&lt;br /&gt;function DeleteCookie (name) {&lt;br /&gt;  var exp = new Date();&lt;br /&gt;  exp.setTime (exp.getTime() - 1);  // This cookie is history&lt;br /&gt;  var cval = GetCookie (name);&lt;br /&gt;  document.cookie = name + "=" + cval + ";&lt;br /&gt;&lt;/tt&gt;&lt;tt&gt;expires=" + exp.toGMTString();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// end script --&gt;&lt;br /&gt;&lt;/scrip t&gt;&lt;/tt&gt; &lt;/blockquote&gt; &lt;blockquote&gt; The source code should be included in the header of any document that includes scripts that work with cookies.&lt;/blockquote&gt; &lt;blockquote&gt; Although Dortch has done a good job of documenting each of the functions in the comments of the source code, we will run through them all in the next few sections.&lt;/blockquote&gt; &lt;blockquote&gt; &lt;b&gt;The &lt;/b&gt;&lt;tt&gt;&lt;b&gt;getCookieVal()&lt;/b&gt;&lt;/tt&gt;&lt;b&gt; function.&lt;/b&gt; &lt;/blockquote&gt; &lt;blockquote&gt; This function is an internal function called by &lt;tt&gt;GetCookie()&lt;/tt&gt;. Given the index of the first character of the value of a name-value pair in a cookie, it returns the value as an unencoded string. &lt;/blockquote&gt; &lt;blockquote&gt; The function uses the &lt;tt&gt;unescape&lt;/tt&gt; method to decode the value. &lt;/blockquote&gt; &lt;blockquote&gt; &lt;b&gt;The &lt;/b&gt;&lt;tt&gt;&lt;b&gt;GetCookie()&lt;/b&gt;&lt;/tt&gt;&lt;b&gt; function.&lt;/b&gt; &lt;/blockquote&gt; &lt;blockquote&gt; The &lt;tt&gt;getCookie()&lt;/tt&gt; function is used to retrieve the value of a particular cookie. It takes the name of the cookie as an argument and returns the value. If the cookie doesn't exist, the function returns a &lt;tt&gt;null&lt;/tt&gt; value. &lt;/blockquote&gt; &lt;blockquote&gt; &lt;b&gt;The &lt;/b&gt;&lt;tt&gt;&lt;b&gt;SetCookie()&lt;/b&gt;&lt;/tt&gt;&lt;b&gt; function.&lt;/b&gt; &lt;/blockquote&gt; &lt;blockquote&gt; This function can be used to create a new cookie or to update an existing cookie. The function requires two arguments and can take several optional arguments:&lt;/blockquote&gt; &lt;blockquote&gt; &lt;tt&gt;setCookie(name,value,expires,path,domain,secure)&lt;/tt&gt; &lt;/blockquote&gt; &lt;blockquote&gt; where &lt;tt&gt;expires&lt;/tt&gt;, &lt;tt&gt;path&lt;/tt&gt;, &lt;tt&gt;domain&lt;/tt&gt;, and &lt;tt&gt;secure&lt;/tt&gt; are optional parameters, and &lt;tt&gt;name&lt;/tt&gt; and &lt;tt&gt;value&lt;/tt&gt; are required. &lt;tt&gt;Name&lt;/tt&gt;, &lt;tt&gt;value&lt;/tt&gt;, &lt;tt&gt;path&lt;/tt&gt;, and &lt;tt&gt;domain&lt;/tt&gt; should be strings. &lt;tt&gt;expires&lt;/tt&gt;  should be passed as a &lt;tt&gt;Date&lt;/tt&gt; object and &lt;tt&gt;secure&lt;/tt&gt; should be a Boolean value. &lt;/blockquote&gt; &lt;blockquote&gt; The order of the arguments is important, so if you want to leave out a particular value in the middle of the order, you should pass the &lt;tt&gt;null&lt;/tt&gt; value as a placeholder. &lt;/blockquote&gt; &lt;blockquote&gt; &lt;b&gt;The &lt;/b&gt;&lt;tt&gt;&lt;b&gt;DeleteCookie()&lt;/b&gt;&lt;/tt&gt;&lt;b&gt; function.&lt;/b&gt; &lt;/blockquote&gt; &lt;blockquote&gt; This function does just what the name suggests: deletes the cookies specified by a name argument. The cookie is deleted by updating it with an expiry date equal to the current date and time.&lt;/blockquote&gt;  &lt;/td&gt;&lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;/center&gt; &lt;h2&gt;&lt;a name="BuildingaNewsSearchPage"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-2848944313278496257?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/2848944313278496257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=2848944313278496257' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2848944313278496257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2848944313278496257'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/encoding-cookies-in-javascript.html' title='Encoding Cookies in JavaScript'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-1810198436221231539</id><published>2007-01-13T11:02:00.000+03:30</published><updated>2007-01-13T11:03:07.884+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>Fun Pic 4 U</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jokes4all.net/funpics/babys_urinal.jpg"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://jokes4all.net/funpics/babys_urinal.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-1810198436221231539?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/1810198436221231539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=1810198436221231539' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/1810198436221231539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/1810198436221231539'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/fun-pic-4-u.html' title='Fun Pic 4 U'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-5706347207504948256</id><published>2007-01-09T20:02:00.000+03:30</published><updated>2007-01-09T20:04:52.104+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>Funny Pic</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jokes4all.net/funpics/monkey.jpg"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://jokes4all.net/funpics/monkey.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-5706347207504948256?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/5706347207504948256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=5706347207504948256' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5706347207504948256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5706347207504948256'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/funny-pic.html' title='Funny Pic'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-2140159144778483525</id><published>2007-01-08T18:20:00.001+03:30</published><updated>2008-05-11T00:02:33.096+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>PHP, COM, .NET and asp</title><content type='html'>&lt;span class="postbody"&gt;I wanna start a topic about Com, .NET and PHP.&lt;br /&gt;First, What is COM?&lt;br /&gt;&lt;br /&gt;All About COM&lt;br /&gt;COM stands for component object model. We will start our look at COM with an overview of the two basic components of COM: a component and an object.&lt;br /&gt;&lt;br /&gt;What Is a Component?&lt;br /&gt;A component can be described as a piece of code that can be shared by other programs. For example, you might write a spell-checker component that could be used by a word processing package or email software.&lt;br /&gt;&lt;br /&gt;What Is an Object?&lt;br /&gt;An object can be described as code that is reusable. This sounds like a component, and indeed, a component can be made of objects. Perhaps your spell-checker has a dictionary object for checking words, a custom dictionary object for storing custom words, and an object for running through words and checking them against the dictionaries.&lt;br /&gt;&lt;br /&gt;What Is COM?&lt;br /&gt;COM is a model for creating components from objects. COM is a binary specification. In other words, it is not programming-language-bound. But all languages that support the creation of COM components must create the components to the same specification. In this way, COM components created in one programming language (such as ActiveState and Perl) can be reused in another COM-supported programming language (such as VB).&lt;br /&gt;&lt;br /&gt;COM is still the cornerstone of Windows development. Almost everything that Microsoft does is based on COM. Windows is COM-based, Office is COM-based, Microsoft VB can create and interface with COM components? the list is endless.&lt;br /&gt;&lt;br /&gt;Server-Side or Client-Side COM&lt;br /&gt;COM components are often divided into client-side or server-side components. Although they serve different purposes, they fundamentally serve the same purpose?forming a reusable block of code in an application. A spell-checker component is an example of a client-side component, and a tax component for an e-commerce web site is an example of a server-side component. Server-side components can take advantage of newer elements for COM: Microsoft Transaction Server (MTS) and Microsoft Message Queue (MMQ). Client-side components can also be GUI components that can be used to make up a GUI for an application (such as a button).&lt;br /&gt;&lt;br /&gt;A Brief History of COM&lt;br /&gt;This section looks at how COM developed, from its early days as a way of sharing data to its current incarnation as a fully featured component system.&lt;br /&gt;&lt;br /&gt;DDE&lt;br /&gt;Dynamic Data Exchange (DDE) was developed in the late 1980s to allow Windows applications to share data (text and graphics) from the Clipboard. However, because DDE was available only to Microsoft applications, it was not a widely used or popular solution for transferring data between applications.&lt;br /&gt;&lt;br /&gt;OLE 1&lt;br /&gt;To resolve this problem, Microsoft developed OLE (Object Linking and Embedding), now called OLE 1. OLE 1 allowed you to insert a document from one application into the document of another. An example would be embedding a spreadsheet into a word processing package. Because the spreadsheet was linked, if you updated it, the update would appear in the embedded spreadsheet in the word processing document as well. OLE 1 was slow and suffered from bugs. However, Microsoft realized this and began developing OLE 2.&lt;br /&gt;&lt;br /&gt;OLE 2&lt;br /&gt;It was during the development of OLE 2 that Microsoft saw how OLE caused problems for applications. Different applications used different methods to allow the embedding of applications within themselves. OLE required many function calls and parameters that most applications achieved in different ways. Put another way, one problem lay in getting two applications to find a common way of communicating. COM was developed as a part of OLE 2 to overcome this problem.&lt;br /&gt;&lt;br /&gt;COM/DCOM&lt;br /&gt;After COM was born, it gave applications a common way of communicating. If the applications used COM, either built using COM objects or by using COM for an external interface, all COM applications would have a common way of communicating. COM applications could be COM objects themselves or could be made of COM objects.&lt;br /&gt;&lt;br /&gt;Distributed COM (DCOM) was developed later to allow COM objects to communicate over a network (rather than the same computer). It's often described as "COM with a long wire."&lt;br /&gt;&lt;br /&gt;COM+&lt;br /&gt;Microsoft began a concentrated effort to allow developers to use COM as a way to build applications from components. With the arrival of COM support in ASP and DCOM, Microsoft saw how developers were building applications from COM components that were housed on several different computers.&lt;br /&gt;&lt;br /&gt;To build on this, Microsoft added Microsoft Transaction Server (MTS) and Microsoft Message Queue (MSMQ) to the Windows NT 4 service pack.&lt;br /&gt;&lt;br /&gt;MTS added transaction services that COM objects could call on, and MSMQ allowed messages between COM objects to be stored in a queue. If a message could not get through, it could be stored and forwarded later.&lt;br /&gt;&lt;br /&gt;With the arrival of Windows 2000, however, Microsoft developed a version of COM to integrate MTS and MSMQ within COM so that natively it had DCOM, transaction, and messaging services available. Microsoft called this version COM+.&lt;br /&gt;&lt;br /&gt;What Makes Up a COM Object?&lt;br /&gt;In its simplest form, a COM object consists of one or more classes, as shown in Figure 7.1. Each class consists of a collection of methods, and within these methods is the code that makes up your object. Methods can be private, meaning that they can be used only by other methods within the same class. Methods can also be public, meaning that they can be used by all methods and are exposed to the outside world (and thus are the only kinds of functions you can use when calling a COM object).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;COM has a lot more to it than what I have described. However, because an in-depth discussion of COM's internals is beyond the scope of this book, I recommend the books listed in the next section for further information.&lt;br /&gt;&lt;br /&gt;How Are COM Objects Created?&lt;br /&gt;COM objects can be created in any programming language that supports the COM binary specification. All Microsoft programming tools (such as Visual Basic and Visual C++) support COM, as do ActiveState programming tools (Perl, Python,TCL) and Borland programming tools (such as Delphi), to name just a few.&lt;br /&gt;&lt;br /&gt;If you are interested in learning more about COM's internals and COM development, I suggest the following books:&lt;br /&gt;&lt;br /&gt;Appleman, Dan. Dan Appleman's Developing COM/ActiveX Components with Visual Basic 6. Sams Publishing, 1998.&lt;br /&gt;&lt;br /&gt;Brill, Gregory. Applying COM+. New Riders Publishing, 2000.&lt;br /&gt;&lt;br /&gt;Creating a Server-Side COM Component in VB 6.0&lt;br /&gt;Creating a COM object in VB is very straightforward. First, open VB and select ActiveX DLL, as shown in Figure 7.2.&lt;br /&gt;&lt;br /&gt;Figure 7.2. Selecting an ActiveX DLL project type inVisual Basic.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Call the project php4winbook and name the class Examples&lt;br /&gt;&lt;br /&gt;Next, add the following code to the examples:&lt;br /&gt;&lt;br /&gt;Option Explicit&lt;br /&gt;Public Function HelloFunc(ByRef uname As Variant) As Variant&lt;br /&gt;    HelloFunc = "hello " &amp;amp; uname&lt;br /&gt;End Function&lt;br /&gt;Note that you have created a single function called HelloFunc; this will become important to remember later in this chapter.&lt;br /&gt;&lt;br /&gt;Finally, compile the component. This gives you php4winbook.dll. Because you have built your COM component from within VB, it is registered for use on the system you built the COM component on. If you want to use the COM component on another system, you must register it using the following command:&lt;br /&gt;&lt;br /&gt;RegSvr32 php4winbook.dll&lt;br /&gt;Also note that if you create COM components in VB that use the ByRef statement, they might not work in PHP 4.0.4. This appears to be because of an issue with the ByRef statement and PHP. This has been resolved in PHP 4.0.6.&lt;br /&gt;&lt;br /&gt;How Are COM Objects Referenced?&lt;br /&gt;Programming languages have different ways of referencing COM objects, but they all call the COM component's name. The call to the COM component's name is passed to Windows, which looks up the name in its Registry. After the name is found, Windows looks up the COM component's location (stored in its Registry entry) and loads it into memory. The memory location of the COM object is then passed back to the calling application. When the calling application has finished with the COM object, it should pass this information back to Windows so that Windows can unload the COM object from memory (to preserve system resources). Most languages support an automatic feature that does this for them. Nevertheless, it is a good practice to include this in your code when using COM components.&lt;br /&gt;&lt;br /&gt;When working with the Microsoft IIS web server, it is possible to create your own memory space for your web site (Microsoft calls them web applications) so that all COM components you use are created by Windows within that memory space. It's important to note, however, that IIS holds that COM component in memory space until the web application or web server is stopped. This increases the speed with which IIS can pass COM objects back to calling applications, but it does mean that you must unload them from the web application if you want to change or recompile your COM object (or Windows will hold them as locked).&lt;br /&gt;&lt;br /&gt;Interfacing with a COM Component in Classic ASP&lt;br /&gt;As an example, we can look at how classic ASP (called ASP in the rest of this chapter) handles COM components. ASP supports the interfacing of COM, not the creation of COM objects. However, its main scripting languages, VBScript and JScript, can both be exposed as COM objects.&lt;br /&gt;&lt;br /&gt;Let's start with some ASP code:&lt;br /&gt;&lt;br /&gt;&lt;%   set test = Server.CreateObject("php4winbook.Examples")   hellmes = test.HelloFunc ("Andrew")   set test = nothing   Response.write hellmes   %&gt;&lt;br /&gt;In this code, ASP loads into memory the php4winbook COM component you created a moment ago.&lt;br /&gt;&lt;br /&gt;Let's look at each line of the code:&lt;br /&gt;&lt;br /&gt;set test = Server.CreateObject("php4winbook.Examples")&lt;br /&gt;Note that you have interfaced with the Examples class. COM can interface with only one class of a COM component in any one recall. Different applications can call on different classes of the same component, but in one call it's one class only.&lt;br /&gt;&lt;br /&gt;hellmes = test.HelloFunc ("Andrew")&lt;br /&gt;This line says to pass some information to the HelloFunc function of the Examples class and store its return result in hellmes.&lt;br /&gt;&lt;br /&gt;That result is then printed to the screen, as shown in Figure 7.4.&lt;br /&gt;&lt;br /&gt;Figure 7.4. The output of your COM object from ASP.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note that you also unload the COM component from memory:&lt;br /&gt;&lt;br /&gt;set test = nothing&lt;br /&gt;How Does PHP Handle COM?&lt;br /&gt;Like ASP, PHP supports the interfacing of COM, but not the creation of COM objects. In other words, it can interface with any COM object, but you cannot yet create COM objects with PHP code.&lt;br /&gt;&lt;br /&gt;PHP's COM Functions&lt;br /&gt;PHP has featured COM support since PHP 3.03. These same functions are still available in PHP 4. You can interface with your php4winbook COM component in the following way:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Let's look at some of these code lines:&lt;br /&gt;&lt;br /&gt;$comobj = com_load("php4winbook.Examples");&lt;br /&gt;This line loads the COM component into memory. Note that, as in the ASP example, you can do this on only a single class level.&lt;br /&gt;&lt;br /&gt;You then set the value of the HelloFunc function to the value Andrew:&lt;br /&gt;&lt;br /&gt;com_set($comobj, "HelloFunc", "Andrew");&lt;br /&gt;You then obtain the return result of the HelloFunc function:&lt;br /&gt;&lt;br /&gt;$hellmes = com_get($comobj, "HelloFunc");&lt;br /&gt;Although you are guaranteed backward compatibility between versions of PHP, the syntax can become messy. PHP 4 has a shorthand version for using COM components:&lt;br /&gt;&lt;br /&gt;HelloFunc("Andrew");&lt;br /&gt;&lt;br /&gt;print($hellmes);&lt;br /&gt;&lt;br /&gt;?&gt;&lt;br /&gt;Let's look at a couple of these code lines:&lt;br /&gt;&lt;br /&gt;$comobj = new COM("php4winbook.Examples");&lt;br /&gt;This loads the COM component into memory. What happens here is that when you call the COM component using PHP's COM class, you create a link between the COM component and PHP. Note that when you call the PHP component, you can do so at only a single class level and access public functions in that class. So when you call a function of the COM component, PHP translates that call into data that the COM component can understand (such as changing data types). Note the different syntax for loading the COM component into memory between ASP and PHP.&lt;br /&gt;&lt;br /&gt;$hellmes = $test-&gt;HelloFunc("Andrew");&lt;br /&gt;Next you pass some information to the HelloFunc function and store its return result in $hellmes. This is a better method of setting and getting the value of functions, because you can do so in one line of code and don't need to use PHP functions. PHP makes the function call within the COM component for you. Note the PHP forward notation.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If you think there is very little difference between the way the ASP and PHP code works, you are right. Both languages must load the COM component into memory, where they then call its functions. This also demonstrates one of the beauties of using COM. You wrote the COM component in VB and accessed it in both ASP and PHP. And you could rewrite the COM component in C++?it makes no difference to your ASP or PHP code.&lt;br /&gt;------&lt;br /&gt;&lt;/span&gt;&lt;span class="postbody"&gt;Now that we have examined COM, we will finish with a look at Microsoft .NET.&lt;br /&gt;&lt;br /&gt;What Is Microsoft .NET?&lt;br /&gt;It is important to remember that .NET is not COM, and vice versa. .NET is a brand-new strategy from Microsoft. As mentioned at the start of this chapter, COM is the cornerstone of the current Microsoft platform. .NET, however, is the cornerstone of future Microsoft development. .NET applications run not only on Microsoft platforms but on any device (your PC, your WebTV, your handheld, and so on).&lt;br /&gt;&lt;br /&gt;.NET is a combination of things. Largely, it's a framework that encompasses a Common Language Runtime (CLR, discussed in a moment) and common class set (also covered in a moment). It also gives application developers new ways of working with the platform they are targeting and creating the applications they want to deploy. As we will see, .NET is a far more powerful way of working than COM and is decidedly COM's successor.&lt;br /&gt;&lt;br /&gt;What Makes Up Microsoft .NET?&lt;br /&gt;Microsoft .NET is a broad concept that Microsoft splits into four terms:&lt;br /&gt;&lt;br /&gt;.NET framework&lt;br /&gt;&lt;br /&gt;.NET development tools&lt;br /&gt;&lt;br /&gt;.NET OSs and servers&lt;br /&gt;&lt;br /&gt;.NET services&lt;br /&gt;&lt;br /&gt;.NET Framework&lt;br /&gt;This is how .NET applications are created; they use the CLR and a common class set. Microsoft provides the .NET framework SDK to allow you to do this.&lt;br /&gt;&lt;br /&gt;The .NET framework also gives you several new languages that make use of the CLR and common class set:Visual Basic .NET, a new version of Visual Basic; C# (pronounced "C sharp"), a language with the control and power of C and C++ but with the rapid application development capability of a language like Visual Basic; and J# (pronounced "J sharp"), which is a version of Java for the .NET framework.&lt;br /&gt;&lt;br /&gt;.NET Development Tools&lt;br /&gt;Microsoft offers Visual Studio .NET for easy .NET development. You don't need Visual Studio .NET to create .NET applications, but it has been developed to aid in this process.&lt;br /&gt;&lt;br /&gt;.NET OSs and Servers&lt;br /&gt;Microsoft has rebranded most of its product line to use the .NET name. However, Microsoft OSs and servers don't yet use the .NET framework. (However, plans are underway to include the CLR in future versions of Microsoft Server 2000 and to allow the creation of stored procedures in C# for SQL Server.) Microsoft also plans to release the next version of Windows 2000 as Windows .NET. This OS won't be based on the .NET framework, but it will contain parts of the .NET framework.&lt;br /&gt;&lt;br /&gt;.NET Services&lt;br /&gt;Web services (discussed in Chapter 9, "PHP and Web Services") are a big part of Microsoft .NET. They are very easy to build and deploy using Microsoft .NET. To aid in this sort of development, Microsoft is building a set of web services called Microsoft MyServices to allow your web service applications to connect to Microsoft services such as Microsoft Passport and HotMail.&lt;br /&gt;&lt;br /&gt;What Makes Up the .NET Framework?&lt;br /&gt;The .NET framework is split into two parts: the CLR and the common class set.&lt;br /&gt;&lt;br /&gt;CLR&lt;br /&gt;The Common Language Runtime (CLR) is the runtime of the .NET framework. In a .NET language (such as Visual Basic .NET or C#), the compiler compiles the code to something called MSIL (Microsoft Intermediate Language). MSIL can then be run on any CLR. The CLR itself can be targeted at any platform (Windows, Linux, Solaris, UNIX, and so on), so instead of your having to rewrite your .NET application to suit the platform, all the platform needs is a suitable CLR. In theory, this means that your applications can target any application that has a suitable CLR.&lt;br /&gt;&lt;br /&gt;Note&lt;br /&gt;&lt;br /&gt;The CLR is to be ported to the FreeBSD UNIX platform by Microsoft and to Linux by several third parties.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This approach might be familiar to Java developers. In the case of Java, the common runtime is called the Java Runtime Environment (JRE).&lt;br /&gt;&lt;br /&gt;Common Class Set&lt;br /&gt;The .NET framework provides a common class set that a .NET-compatible language can use. The common class set provides you with classes for many things, from handling data such as strings and variables to working with the Win32 API. The class set handles much of the functionality that was often difficult, such as working with databases with ADO (now called ADO.NET).&lt;br /&gt;&lt;br /&gt;.NET Applications&lt;br /&gt;.NET applications can be several different things, from conventional Windows GUI applications to console applications, web services, Windows services, and .NET components (which is the .NET equivalent of COM components).&lt;br /&gt;&lt;br /&gt;All .NET applications can make use of something called an assembly. Microsoft .NET assemblies allow a .NET application to package itself into a single compact unit. For example, an assembly can contain an application's .exe file, any related component (DLL) files, and graphics files. The assembly spells the end of "DLL hell," in which different versions of the same DLL could be installed to a computer, causing compatibility problems. Now an application needs to look no further than its assembly.&lt;br /&gt;&lt;br /&gt;Assemblies can be of two types: private and shared. In a private assembly, the assembly's contents are available only to the application within that assembly (any DLL files in that assembly can be used by that assembly's application). A shared assembly can be accessed by files (applications, DLLs, and so on) in other assemblies. A shared assembly is stored in the GAC (Global Assembly Cache), which you can view under C:\WINNT\Assembly\ if you have the .NET framework installed. You can use the shfusion.dll (a Windows shell extension that comes with the .NET framework) to obtain more information about the GAC.&lt;br /&gt;&lt;br /&gt;Obtaining the .NET Framework&lt;br /&gt;The .NET framework currently is in version 1.0. It is available for Windows XP, Windows 2000, and Windows NT 4.0 platforms only. You can download the .NET framework from &lt;a href="http://www.gotdotnet.com./" target="_blank"&gt;http://www.gotdotnet.com.&lt;/a&gt; You can also order it on a CD for free (there is a small shipping charge).&lt;br /&gt;&lt;br /&gt;.NET and PHP&lt;br /&gt;PHP currently does not support .NET natively. You can access .NET libraries, but PHP has no support for the CLR. Daniel Beulshaushen of php4win.com has developed a version of PHP and a related PHP extension that can access .NET libraries. However, this is currently in beta and cannot be used with standard PHP extensions. However, you can access .NET libraries and other features by wrapping them into .NET components and exposing such components to PHP using a feature of .NET called COM Interop.&lt;br /&gt;&lt;br /&gt;COM Interop lets you create a COM wrapper around your .NET components. The .NET component remains a .NET component, but it uses the CLR and is built using the .NET framework. However, it is built in such a way that Windows thinks it's a COM component and makes it available to all calling COM clients.&lt;br /&gt;&lt;br /&gt;In this way, you can make a .NET component available to PHP via the same COM features of PHP discussed earlier. To use a .NET component with PHP successfully, you must make sure that you place your .NET component in the GAC. Unlike COM, .NET does not use the Registry to find components; it uses the GAC. In order for your PHP script to find your component, you must place it in the GAC.&lt;br /&gt;&lt;br /&gt;Creating the .NET Component&lt;br /&gt;The first step is to create the .NET component. You could use Visual Studio .NET for this, but all you need is the .NET framework installed. As such, you will use a simple text editor (Notepad is fine) and the command line.&lt;br /&gt;&lt;br /&gt;Creating the examples.vb File&lt;br /&gt;Create the file examples.vb using the following code:&lt;br /&gt;&lt;br /&gt;Namespace php4winbook&lt;br /&gt;&lt;br /&gt;  Public Class examples&lt;br /&gt;&lt;br /&gt;      Public Function showname(ByVal name As String)&lt;br /&gt;          Return "hello " &amp;amp; name&lt;br /&gt;&lt;br /&gt;      End Function&lt;br /&gt;&lt;br /&gt;  End Class&lt;br /&gt;&lt;br /&gt;End Namespace&lt;br /&gt;This is Visual Basic .NET code, but you can use any .NET language you choose (such as C#). Save the file as examples.vb.&lt;br /&gt;&lt;br /&gt;Creating a Key File&lt;br /&gt;Every component in the GAC must be versioned and signed. To do this, you will use a cryptographic key. You create the key from the command line by typing the following:&lt;br /&gt;&lt;br /&gt;sn -k key.snk&lt;br /&gt;This creates a cryptographic public key (a private key to encrypt and a public key to decrypt) called key.snk. To create this key, the CLR uses the contents of the assembly using a private key it creates itself. Anyone can use the public key to decrypt the assembly. It helps ensure that the assembly has not been tampered with. (If the assembly's contents have changed, the public key would be different.)&lt;br /&gt;&lt;br /&gt;Creating a Reference File&lt;br /&gt;You must now add a reference to the component and use that reference to sign the assembly. Create the file AssemblyInfo.vb and add the following:&lt;br /&gt;&lt;br /&gt;Imports System.Runtime.CompilerServices&lt;br /&gt;&lt;br /&gt;&lt;assembly:&gt;&lt;br /&gt;&lt;assembly:&gt;&lt;br /&gt;Note that you need to use the Imports statement and that&lt;br /&gt;&lt;br /&gt;&lt;assembly:&gt;&lt;br /&gt;must point to the directory containing the key.snk file (in case it's in the same directory as the VB.NET files).&lt;br /&gt;&lt;br /&gt;Compiling a Reference File&lt;br /&gt;You must now compile the reference file with the following:&lt;br /&gt;&lt;br /&gt;vbc /t:module /out:AssemblyInfo.dll AssemblyInfo.vb&lt;br /&gt;Compiling examples.vb with a Reference File&lt;br /&gt;Now that you have the compiled reference file, you can use it when you compile the examples.vb file. This indicates to the CLR that you have a reference file and that it can be used to sign the assembly.&lt;br /&gt;&lt;br /&gt;The following line creates the assembly file examples.dll:&lt;br /&gt;&lt;br /&gt;vbc /t:library /addmodule:AssemblyInfo.dll examples.vb&lt;br /&gt;A Shortcut for Creating a Signed Assembly File&lt;br /&gt;You can add the reference file directly to the VB.NET code:&lt;br /&gt;&lt;br /&gt;Imports System.Reflection&lt;br /&gt;Imports System.Runtime.CompilerServices&lt;br /&gt;&lt;br /&gt;&lt;assembly:&gt;&lt;br /&gt;&lt;assembly:&gt;&lt;br /&gt;&lt;br /&gt;Namespace php4winbook&lt;br /&gt;&lt;br /&gt;  Public Class examples&lt;br /&gt;&lt;br /&gt;      Public Function showname(ByVal name As String)&lt;br /&gt;&lt;br /&gt;          Return "hello " &amp;amp; name&lt;br /&gt;&lt;br /&gt;      End Function&lt;br /&gt;&lt;br /&gt;  End Class&lt;br /&gt;&lt;br /&gt;End Namespace&lt;br /&gt;You can compile with this:&lt;br /&gt;&lt;br /&gt;vbc /t:library examples.vb&lt;br /&gt;However, if you have many components in your assembly, you might want to keep the reference file and the code for various assembly contents separate (thus making changes to the reference file code easier to make), as you did in the first example.&lt;br /&gt;&lt;br /&gt;Adding examples.dll to the GAC&lt;br /&gt;You must now add the signed assembly file to the GAC using the following:&lt;br /&gt;&lt;br /&gt;drive letterProgram Files\Microsoft.NET\FrameworkSDK\Bin\gcutil /i&lt;br /&gt;examples.dll&lt;br /&gt;If you open the GAC in Windows Explorer (drive letter\WINNT\Assembly\), you should see the entry for your component&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Adding the Assembly to the Registry&lt;br /&gt;In order to complete the process of fooling Windows, you must create a type library (TLB) file for your assembly. COM requires TLB files so that it can gather the information it needs about the component to access its public functions correctly (that is, what data type the function is and what data type it needs to send and receive from those functions).&lt;br /&gt;&lt;br /&gt;Regasm examples.dll /tlb:examples.tlb&lt;br /&gt;Remember that Windows looks for COM components in the Windows Registry, but .NET components reside in the GAC. Regasm fools Windows by adding information to the Registry about your component, but instead of loading the COM component from the file system, it loads from the GAC.&lt;br /&gt;&lt;br /&gt;Creating the PHP File&lt;br /&gt;Create the file testcode.php with the following code:&lt;br /&gt;&lt;br /&gt;showname("Andrew");&lt;br /&gt;print($hellmes);&lt;br /&gt;&lt;br /&gt;?&gt;&lt;br /&gt;Notice that you have used the same syntax as the COM example you built earlier in this chapter. As far as PHP is concerned, you are using a COM component.&lt;br /&gt;&lt;br /&gt;Running the PHP File&lt;br /&gt;If you now run the testcode.php file, you should see the result printed to the screen&lt;/assembly:&gt;&lt;/assembly:&gt;&lt;/assembly:&gt;&lt;/assembly:&gt;&lt;/assembly:&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-2140159144778483525?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/2140159144778483525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=2140159144778483525' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2140159144778483525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2140159144778483525'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/php-com-net-and-asp.html' title='PHP, COM, .NET and asp'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-7443718968802662656</id><published>2007-01-07T12:36:00.000+03:30</published><updated>2007-01-07T12:37:49.663+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>Funny Pic 4U</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jokes4all.net/funpics/cat_killer.jpg"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://jokes4all.net/funpics/cat_killer.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-7443718968802662656?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/7443718968802662656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=7443718968802662656' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/7443718968802662656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/7443718968802662656'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/funny-pic-4u.html' title='Funny Pic 4U'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-5419550277411474300</id><published>2007-01-07T12:34:00.000+03:30</published><updated>2007-01-07T12:35:49.966+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>Sperms and Lawyers</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://mesothelioma-cancer-information.org/DreamHC/Page4_IMG_OBJ0.jpg"&gt;&lt;img style="cursor: pointer; width: 200px;" src="http://mesothelioma-cancer-information.org/DreamHC/Page4_IMG_OBJ0.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;What does a lawyer and a sperm have in common?&lt;br /&gt;Both have about a one in 3 million chance of becoming a human being.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-5419550277411474300?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/5419550277411474300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=5419550277411474300' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5419550277411474300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5419550277411474300'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/sperms-and-lawyers.html' title='Sperms and Lawyers'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-662223052509717136</id><published>2007-01-07T09:35:00.000+03:30</published><updated>2007-01-07T09:48:08.271+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>The Microsoft Borg</title><content type='html'>In the wake of the emergence of the free Linux operating system a quick look into the future.&lt;br /&gt;"Star Trek Lost Episodes" transcript:&lt;br /&gt;(Picard)"Mr. LaForge, have you had any success with your attempts at finding a weakness in the Borg? And Mr. Data, have you been able to access their command pathways?"&lt;br /&gt;(Geordi)"Yes, Captain. In fact, we found the answer by searching through our archives on late Twentieth-century computing technology."&lt;br /&gt;(Geordi presses a key, and a logo appears on the computer screen.)&lt;br /&gt;(Riker looks puzzled.)"What the hell is 'Microsoft'?"&lt;br /&gt;(Data turns to answer.)"Allow me to explain. We will send this program, for some reason called 'Windows', through the Borg command pathways. Once inside their root command unit, it will begin consuming system resources at an unstoppable rate."&lt;br /&gt;(Picard)"But the Borg have the ability to adapt. Won't they alter their processing systems to increase their storage capacity?"&lt;br /&gt;(Data)"Yes, Captain. But when 'Windows' detects this, it creates a new version of itself known as an 'upgrade'. The use of resources increases exponentially with each iteration. The Borg will not be able to adapt quickly enough. Eventually all of their processing ability will be taken over and none will be available for their normal operational functions."&lt;br /&gt;(Picard)"Excellent work. This is even better than that 'unsolvable geometric shape' idea."&lt;br /&gt;.. . . 15 Minutes Later . . .&lt;br /&gt;(Data)"Captain, We have successfully installed the 'Windows' in the command unit and as expected it immediately consumed 85% of all resources. We however have not received any confirmation of the expected 'upgrade'."&lt;br /&gt;(Geordi)"Our scanners have picked up an increase in Borg storage and CPU capacity to compensate, but we still have no indication of an 'upgrade' to compensate for their increase."&lt;br /&gt;(Picard)"Data, scan the history banks again and determine if there is something we have missed."&lt;br /&gt;(Data)"Sir, I believe there is a reason for the failure in the 'upgrade'. Apparently the Borg have circumvented that part of the plan by not sending in their registration cards.&lt;br /&gt;(Riker)"Captain we have no choice. Requesting permission to begin emergency escape sequence 3F . . ."&lt;br /&gt;(Geordi, excited)"Wait, Captain I just detected their CPU capacity has suddenly dropped to 0% !"&lt;br /&gt;(Picard)"Data, what do your scanners show?"&lt;br /&gt;(Data)"Apparently the Borg have found the internal 'Windows' module named 'Solitaire' and it has used up all the CPU capacity."&lt;br /&gt;(Picard)"Let's wait and see how long this 'solitaire' can reduce their functionality."&lt;br /&gt;.. . . Two Hours Pass . . .&lt;br /&gt;(Riker)"Geordi, what's the status of the Borg?"&lt;br /&gt;(Geordi)"As expected the Borg are attempting to re-engineer to compensate for increased CPU and storage demands, but each time they successfully increase resources I have set up our closest deep space monitor beacon to transmit more 'Windows' modules from something called the 'Microsoft fun-pack'.&lt;br /&gt;(Picard)"How much time will that buy us?"&lt;br /&gt;(Data)"Current Borg solution rates allow me to predict an interest time span of 6 more hours."&lt;br /&gt;(Geordi)"Captain, another vessel has entered our sector."&lt;br /&gt;(Picard)"Identify."&lt;br /&gt;(Data)"It appears to have markings very similar to the 'Microsoft' logo."&lt;br /&gt;(Over the speakers) "THIS IS ADMIRAL BILL GATES OF THE MICROSOFT FLAGSHIP 'MONOPOLY'. WE HAVE POSITIVE CONFIRMATION OF UNREGISTERED SOFTWARE IN THIS SECTOR. SURREDER ALL ASSETS AND WE CAN AVOID ANY TROUBLE. YOU HAVE 10 SECONDS."&lt;br /&gt;(Data)"The alien ship has just opened its forward hatches and released thousands of humanoid shaped objects."&lt;br /&gt;(Picard)"Magnify forward viewer on the alien craft."&lt;br /&gt;(Riker)"Good God, Captain! Those are humans floating straight toward the Borg ship with no life support suits! How can they survive the tortures of deep space?!"&lt;br /&gt;(Data)"I don't believe that those are humans,sir. If you will look closer I believe you will see that they are carrying something recognized by Twenty-first Century man as doe skin leather briefcases, and they are wearing Armani suits."&lt;br /&gt;(Riker and Picard together, horrified) "Lawyers!!"&lt;br /&gt;(Geordi)"It can't be. All the Lawyers were rounded up and sent hurtling into the sun in 2017 during the Great Awakening."&lt;br /&gt;(Data)"True, but apparently some must have survived."&lt;br /&gt;(Riker)"They have surrounded the Borg ship and are covering it with all types of papers."&lt;br /&gt;(Data)"I believe that is known in ancient vernacular as 'red tape'. It often proves fatal."&lt;br /&gt;(Riker)"They're tearing the Borg to pieces!"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-662223052509717136?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/662223052509717136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=662223052509717136' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/662223052509717136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/662223052509717136'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/microsoft-borg.html' title='The Microsoft Borg'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-777812194265203980</id><published>2007-01-07T09:17:00.000+03:30</published><updated>2007-01-07T09:20:27.439+03:30</updated><title type='text'>PHP on Mac OS X</title><content type='html'>&lt;span style="font-style: italic; color: rgb(153, 153, 153);"&gt;source: apple.com&lt;br /&gt;&lt;/span&gt;&lt;p&gt;PHP 4.3 is an exciting release for web programmers working on Mac OS X. Previous versions ran on Mac OS X, but not without some difficulty. Installation was especially challenging, and most opted for a binary release, like the one distributed by &lt;a href="http://www.entropy.ch/software/macosx/"&gt;entropy.ch&lt;/a&gt;.&lt;/p&gt;     &lt;p&gt;But PHP 4.3 offers full support for Mac OS X. Thanks to some very hard work by members of the PHP development team, anyone familiar with UNIX installations should be able to get PHP up and running. In this article I’ll show you the basics of Mac OS X installation, then demonstrate PHP’s flexibility by describing three distinct ways to parse XML files.&lt;/p&gt;      &lt;h2&gt;Installation Choices&lt;/h2&gt;     &lt;p&gt;PHP offers many installation options, far more than I could cover in this article. You can install it as a stand-alone binary, for example, or get it to run as an Apache module. Plus there are dozens of APIs that can be added to PHP, and most require additional libraries to be downloaded and installed.&lt;/p&gt;     &lt;p&gt;For the purposes of this tutorial, I’ll assume you’ll be installing PHP as an apxs module that works with the Apache server that shipped with Mac OS X. I’ll show you how I installed a few modules that were of particular interest to me, though other modules can be installed using similar methods.&lt;/p&gt;      &lt;h2&gt;Initial Steps&lt;/h2&gt;     &lt;p&gt;First, get the &lt;a href="http://www.php.net/downloads.php"&gt;most recent source code&lt;/a&gt; of PHP. There may be a later version since the time of this publication. Download the file to a convenient directory. (I’ve created a directory called &lt;code&gt;/apps&lt;/code&gt; for PHP and other UNIX applications I need to install.) Decompress the downloaded file with the following commands:&lt;/p&gt; &lt;pre class="sourcecodebox"&gt;shell&gt; gunzip php-4.3.4.tar.gz&lt;br /&gt;shell&gt; tar xf php-4.3.4.tar&lt;/pre&gt;     &lt;p&gt;You’ll now have a directory called &lt;code&gt;/apps/php-4.3.4&lt;/code&gt;. At this point you can do a basic, no-frills PHP installation:&lt;/p&gt; &lt;pre class="sourcecodebox"&gt;shell&gt; cd php-4.3.4&lt;br /&gt;shell&gt; ./configure --with-apxs&lt;br /&gt;shell&gt; make&lt;br /&gt;shell&gt; sudo make install&lt;/pre&gt;     &lt;p&gt;As you add more modules to your installation, you’ll also need more flags in the &lt;code&gt;./configure&lt;/code&gt; command. For example, if you followed Apple Internet Developer’s instructions for installing &lt;a href="http://developer.apple.com/internet/opensource/osdb.html"&gt;MySQL&lt;/a&gt; or &lt;a href="http://developer.apple.com/internet/opensource/postgres.html"&gt;PostgreSQL&lt;/a&gt;, you could add either of the following flags to &lt;code&gt;./configure&lt;/code&gt; to make PHP aware of your preferred database:&lt;/p&gt; &lt;pre class="sourcecodebox"&gt;shell&gt; ./configure --with-mysql=/usr/local/mysql \&lt;br /&gt;--with-pgsql=/usr/local&lt;/pre&gt;     &lt;p&gt;(Note that PHP assumes most libraries will be in &lt;code&gt;/usr/local&lt;/code&gt;. In the above command, I had to make PHP aware that MySQL was not installed in the default directory.)&lt;/p&gt;     &lt;p&gt;I decided to add three other modules to my installation: the GD modules for image processing, the XPAT module for XML processing, and the DOM XML module for XML parsing through the Document Object Model.&lt;/p&gt;     &lt;p&gt;The XPAT module is a piece of cake. All you need to do is add the &lt;code&gt; — with-xml&lt;/code&gt; flag. The required libraries are already available.&lt;/p&gt;     &lt;p&gt;The GD image processing module is a bit trickier, however. The GD libraries are bundled with PHP 4.3, but GD is dependent on a few other libraries: zlib, libjpeg, libpng, and libtiff. You could go through the process of downloading, configuring, and compiling these yourself, but, if you’re using &lt;a href="http://fink.sourceforge.net/"&gt;Fink&lt;/a&gt;, there’s really no need. Fink automates the installation of dozens of UNIX packages and is extremely easy to work with.&lt;/p&gt;     &lt;p&gt;Follow &lt;a href="http://fink.sourceforge.net/doc/users-guide/index.php"&gt;these instructions&lt;/a&gt; and you’ll end up with a new directory called &lt;code&gt;/sw&lt;/code&gt; with a great deal of software in it. You can now use Fink to install libraries with a single command. For example, here’s how you install libjpeg, libpng, and libtiff:&lt;/p&gt; &lt;pre class="sourcecodebox"&gt;shell&gt; sudo /sw/bin/fink install libjpeg&lt;br /&gt;shell&gt; sudo /sw/bin/fink install libtiff&lt;br /&gt;shell&gt; sudo /sw/bin/fink install libpng&lt;/pre&gt;     &lt;p&gt;(Note that Fink uses a base directory of &lt;code&gt;/sw&lt;/code&gt; for all its installs.)&lt;/p&gt;     &lt;p&gt;At this time, Fink can’t install zlib on Mac OS X 10.2, which is needed for GD to run. For that you’ll need to compile from the source. But that’s no big deal—start by &lt;a href="http://prdownloads.sourceforge.net/libpng/zlib-1.1.4.tar.gz"&gt;downloading the source&lt;/a&gt;. Then decompress it:&lt;/p&gt; &lt;pre class="sourcecodebox"&gt;shell&gt; gunzip zlib-1.1.4.tar.gz&lt;br /&gt;shell&gt; tar -xf zlib-1.1.4.tar&lt;/pre&gt;     &lt;p&gt;After you &lt;code&gt;cd&lt;/code&gt; into the directory, you can install zlib with just two commands:&lt;/p&gt; &lt;pre class="sourcecodebox"&gt;shell&gt; cd zlib-1.1.4&lt;br /&gt;shell&gt; make&lt;br /&gt;shell&gt; sudo make install&lt;/pre&gt;     &lt;p&gt;Now you can configure PHP with everything you need to run GD:&lt;/p&gt; &lt;pre class="sourcecodebox"&gt;shell&gt; cd /apps/php-4.3.4&lt;br /&gt;shell&gt; ./configure --with-zlib-dir=/usr/local \&lt;br /&gt;--with-libjpeg=/sw \&lt;br /&gt;--with-libtiff=/sw \&lt;br /&gt;--with-libpng=/sw \&lt;br /&gt;--with-gd \&lt;br /&gt;--with-pgsql=/usr/local \&lt;br /&gt;--with-mysql=/usr/local/mysql \&lt;br /&gt;--with-xml \&lt;br /&gt;--with-apxs&lt;/pre&gt;     &lt;p&gt;I also want to add the XML DOM API, which requires the GNOME XML library, libxml2. Conveniently enough, Fink can handle that, too:&lt;/p&gt;  &lt;pre class="sourcecodebox"&gt;shell&gt; sudo /sw/bin/fink install libxml2&lt;/pre&gt;     &lt;p&gt;The Fink install of libxml2 didn’t work with PHP at first, however. I had to change line 30 of &lt;code&gt;/sw/include/libxml2/libxml/encoding.h&lt;/code&gt; to the following:&lt;/p&gt; &lt;pre class="sourcecodebox"&gt;#include &lt;/pre&gt;     &lt;p&gt;After this change, the following commands installed PHP with everything I needed:&lt;/p&gt; &lt;pre class="sourcecodebox"&gt;shell&gt; cd /apps/php-4.3.4&lt;br /&gt;shell&gt; ./configure --with-zlib-dir=/usr/local \&lt;br /&gt;--with-libjpeg=/sw \&lt;br /&gt;--with-libtiff=/sw \&lt;br /&gt;--with-libpng=/sw \&lt;br /&gt;--with-gd \&lt;br /&gt;--with-pgsql=/usr/local \&lt;br /&gt;--with-mysql=/usr/local/mysql \&lt;br /&gt;--with-xml \&lt;br /&gt;--with-dom=/sw \&lt;br /&gt;--with-apxs&lt;br /&gt;&lt;br /&gt;shell&gt; make&lt;br /&gt;shell&gt; sudo make install&lt;/pre&gt;     &lt;p&gt;To finish the installation, you need to add the following line to your &lt;code&gt;/etc/httpd/httpd.conf&lt;/code&gt; file:&lt;/p&gt; &lt;pre class="sourcecodebox"&gt;AddType application/x-httpd-php .php&lt;/pre&gt;     &lt;p&gt;Then copy your &lt;code&gt;php.ini&lt;/code&gt; to the &lt;code&gt;/usr/local/lib&lt;/code&gt; directory:&lt;/p&gt; &lt;pre class="sourcecodebox"&gt;shell&gt; sudo cp /apps/php-4.3.4/php.ini-dist /usr/local/lib/php.ini&lt;/pre&gt;     &lt;h2&gt;Parsing XML Files&lt;/h2&gt;     &lt;p&gt;To show how PHP can parse XML files on Mac OS X, I decided to work with the XML file that holds information on iTunes songs and playlists. You can find this file in &lt;code&gt;~/Music/iTunes/iTunes Music Library.xml&lt;/code&gt;. The PHP files I created to work with the XML are included in &lt;a href="http://developer.apple.com/internet/examples/parse_xml_files.tar"&gt;this tar file&lt;/a&gt;.&lt;/p&gt;      &lt;p&gt;To work with the XML file, you can make a symlink of it to your web tree. I copied the file directly into my webserver’s directory:&lt;/p&gt; &lt;pre class="sourcecodebox"&gt;shell&gt; mkdir /Library/WebServer/Documents/itunes&lt;br /&gt;shell&gt; cp ~/Music/iTunes/iTunes\ Music\ Library.xml&lt;br /&gt;/Library/WebServer/Documents/itunes/library.xml&lt;/pre&gt;     &lt;p&gt;Here’s an excerpt of the file:&lt;/p&gt; &lt;pre class="sourcecodebox"&gt;&lt;br /&gt;&lt;plist version="1.0"&gt;&lt;br /&gt;&lt;dict&gt;&lt;br /&gt;&lt;key&gt;Major Version&lt;/key&gt;&lt;br /&gt;&lt;integer&gt;1&lt;/integer&gt;&lt;br /&gt;&lt;key&gt;Minor Version&lt;/key&gt;&lt;br /&gt;&lt;integer&gt;1&lt;/integer&gt;&lt;br /&gt;&lt;key&gt;Application Version&lt;/key&gt;&lt;br /&gt;&lt;string&gt;3.0.1&lt;/string&gt;&lt;br /&gt;&lt;key&gt;Tracks&lt;/key&gt;&lt;br /&gt;&lt;dict&gt;&lt;br /&gt;  &lt;key&gt;115&lt;/key&gt;&lt;br /&gt;  &lt;dict&gt;&lt;br /&gt;    &lt;key&gt;Track ID&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;115&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;Name&lt;/key&gt;&lt;br /&gt;    &lt;string&gt;Baby Goes To Eleven&lt;/string&gt;&lt;br /&gt;    &lt;key&gt;Artist&lt;/key&gt;&lt;br /&gt;    &lt;string&gt;Superdrag&lt;/string&gt;&lt;br /&gt;    &lt;key&gt;Album&lt;/key&gt;&lt;br /&gt;    &lt;string&gt;Last Call For Vitriol&lt;/string&gt;&lt;br /&gt;    &lt;key&gt;Genre&lt;/key&gt;&lt;br /&gt;    &lt;string&gt;Alternative &amp; Punk&lt;/string&gt;&lt;br /&gt;    &lt;key&gt;Kind&lt;/key&gt;&lt;br /&gt;    &lt;string&gt;MPEG audio file&lt;/string&gt;&lt;br /&gt;    &lt;key&gt;Size&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;4828597&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;Total Time&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;241319&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;Disc Number&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;1&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;Disc Count&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;1&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;Track Number&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;1&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;Track Count&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;12&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;Year&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;2002&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;Date Modified&lt;/key&gt;&lt;br /&gt;    &lt;date&gt;2003-01-08T13:55:19Z&lt;/date&gt;&lt;br /&gt;    &lt;key&gt;Date Added&lt;/key&gt;&lt;br /&gt;    &lt;date&gt;2003-01-08T13:53:18Z&lt;/date&gt;&lt;br /&gt;    &lt;key&gt;Bit Rate&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;160&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;Sample Rate&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;44100&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;File Type&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;1297106739&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;File Creator&lt;/key&gt;&lt;br /&gt;&lt;br /&gt;    &lt;integer&gt;1752133483&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;File Folder Count&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;4&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;Library Folder Count&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;1&lt;/integer&gt;&lt;br /&gt;  &lt;/dict&gt;&lt;br /&gt;  &lt;dict&gt;&lt;br /&gt;    &lt;key&gt;Track ID&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;120&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;Name&lt;/key&gt;&lt;br /&gt;    &lt;string&gt;I Can't Wait&lt;/string&gt;&lt;br /&gt;    &lt;key&gt;Artist&lt;/key&gt;&lt;br /&gt;    &lt;string&gt;Superdrag&lt;/string&gt;&lt;br /&gt;    &lt;key&gt;Album&lt;/key&gt;&lt;br /&gt;    &lt;string&gt;Last Call For Vitriol&lt;/string&gt;&lt;br /&gt;    &lt;key&gt;Genre&lt;/key&gt;&lt;br /&gt;    &lt;string&gt;Alternative &amp;amp; Punk&lt;/string&gt;&lt;br /&gt;    &lt;key&gt;Kind&lt;/key&gt;&lt;br /&gt;    &lt;string&gt;MPEG audio file&lt;/string&gt;&lt;br /&gt;    &lt;key&gt;Size&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;3978043&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;Total Time&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;198791&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;Disc Number&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;1&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;Disc Count&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;1&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;Track Number&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;2&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;Track Count&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;12&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;Year&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;2002&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;Date Modified&lt;/key&gt;&lt;br /&gt;    &lt;date&gt;2003-01-08T13:56:20Z&lt;/date&gt;&lt;br /&gt;    &lt;key&gt;Date Added&lt;/key&gt;&lt;br /&gt;    &lt;date&gt;2003-01-08T13:55:24Z&lt;/date&gt;&lt;br /&gt;    &lt;key&gt;Bit Rate&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;160&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;Sample Rate&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;44100&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;File Type&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;1297106739&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;File Creator&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;1752133483&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;File Folder Count&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;4&lt;/integer&gt;&lt;br /&gt;    &lt;key&gt;Library Folder Count&lt;/key&gt;&lt;br /&gt;    &lt;integer&gt;1&lt;/integer&gt;&lt;br /&gt;  &lt;/dict&gt;&lt;/dict&gt;&lt;/dict&gt;&lt;/plist&gt;&lt;/pre&gt;     &lt;p&gt;iTunes stores similar information for each song in the library between a set of &lt;dict&gt; tags. My immediate goal in PHP is to turn the provided XML into a PHP structure. I’ve opted to turn this data into a two-dimensional array that will look like this:&lt;/dict&gt;&lt;/p&gt; &lt;pre class="sourcecodebox"&gt;Array&lt;br /&gt;(&lt;br /&gt;  [0] =&gt; Array&lt;br /&gt;(&lt;br /&gt;    [Track ID] =&gt; 115&lt;br /&gt;    [Name] =&gt; Baby Goes To Eleven&lt;br /&gt;    [Artist] =&gt; Superdrag&lt;br /&gt;    [Album] =&gt; Last Call For Vitriol&lt;br /&gt;    [Genre] =&gt; Alternative &amp; Punk&lt;br /&gt;    [Kind] =&gt; MPEG audio file&lt;br /&gt;    [Size] =&gt; 4828597&lt;br /&gt;    [Total Time] =&gt; 241319&lt;br /&gt;    [Disc Number] =&gt; 1&lt;br /&gt;    [Disc Count] =&gt; 1&lt;br /&gt;    [Track Number] =&gt; 1&lt;br /&gt;    [Track Count] =&gt; 12&lt;br /&gt;    [Year] =&gt; 2002&lt;br /&gt;    [Date Modified] =&gt; 2003-01-08T13:55:19Z&lt;br /&gt;    [Date Added] =&gt; 2003-01-08T13:53:18Z&lt;br /&gt;    [Bit Rate] =&gt; 160&lt;br /&gt;    [Sample Rate] =&gt; 44100&lt;br /&gt;    [File Type] =&gt; 1297106739&lt;br /&gt;    [File Creator] =&gt; 1752133483&lt;br /&gt;    [File Folder Count] =&gt; 4&lt;br /&gt;    [Library Folder Count] =&gt; 1&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;  [1] =&gt; Array&lt;br /&gt;(&lt;br /&gt;    [Track ID] =&gt; 120&lt;br /&gt;    [Name] =&gt; I Can't Wait&lt;br /&gt;    [Artist] =&gt; Superdrag&lt;br /&gt;    [Album] =&gt; Last Call For Vitriol&lt;br /&gt;    [Genre] =&gt; Alternative &amp;amp; Punk&lt;br /&gt;    [Kind] =&gt; MPEG audio file&lt;br /&gt;    [Size] =&gt; 3978043&lt;br /&gt;    [Total Time] =&gt; 198791&lt;br /&gt;    [Disc Number] =&gt; 1&lt;br /&gt;    [Disc Count] =&gt; 1&lt;br /&gt;    [Track Number] =&gt; 2&lt;br /&gt;    [Track Count] =&gt; 12&lt;br /&gt;    [Year] =&gt; 2002&lt;br /&gt;    [Date Modified] =&gt; 2003-01-08T13:56:20Z&lt;br /&gt;    [Date Added] =&gt; 2003-01-08T13:55:24Z&lt;br /&gt;    [Bit Rate] =&gt; 160&lt;br /&gt;    [Sample Rate] =&gt; 44100&lt;br /&gt;    [File Type] =&gt; 1297106739&lt;br /&gt;    [File Creator] =&gt; 1752133483&lt;br /&gt;    [File Folder Count] =&gt; 4&lt;br /&gt;    [Library Folder Count] =&gt; 1&lt;br /&gt;)&lt;/pre&gt;     &lt;p&gt;PHP has a powerful set of array functions, so once you have this type of structure, you’ll be able to sort and lay out the iTunes data on a webpage any way you want.&lt;/p&gt;      &lt;p&gt;I’m going to present three methods for moving the XML into the array. To make things easy on myself, I created a few functions that will work with the array I create. These functions are in the &lt;code&gt;parse_itunes_functions.php&lt;/code&gt; file.&lt;/p&gt;     &lt;p&gt;I want to be able to sort the data by any category—song name, artist name, album name, or any array key available. For that, I’ll use PHP’s &lt;code&gt;usort()&lt;/code&gt; function, which takes two arguments: the array to be sorted, and the name of a user-defined function that the array will be sent to. Here’s my array sorting code:&lt;/p&gt; &lt;pre class="sourcecodebox"&gt;function cmp ($a, $b) {&lt;br /&gt;$sort = !empty($_GET["sort_by"]) ? $_GET["sort_by"] : "Artist";&lt;br /&gt;return strcmp($a[$sort], $b[$sort]);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;usort($songs, "cmp");&lt;/pre&gt;     &lt;p&gt;The &lt;code&gt;cmp()&lt;/code&gt; function looks in the &lt;code&gt;GET&lt;/code&gt; values for a &lt;code&gt;sort_by&lt;/code&gt; variable. If one exists, the array will be sorted by that value. The default &lt;code&gt;sort_by&lt;/code&gt; value is “Artist.”&lt;/p&gt;     &lt;p&gt;Once an array is sorted, you’ll need to lay it out on a webpage. The &lt;code&gt;array_to_table()&lt;/code&gt; function takes care of that:&lt;/p&gt; &lt;pre class="sourcecodebox"&gt;function array_to_table($array, $printable)&lt;br /&gt;{&lt;br /&gt;//expects multi-dimensional array, all with the same keys&lt;br /&gt;$first_time=TRUE;&lt;br /&gt;$str = "&lt;table border="1"&gt;\n";&lt;br /&gt;$str .= "&lt;tbody&gt;&lt;tr&gt;\n";&lt;br /&gt;foreach($array as $elem_key=&gt;$element){&lt;br /&gt;  if($first_time){&lt;br /&gt;    $header_items=array_keys($element);&lt;br /&gt;    foreach($header_items as $header){&lt;br /&gt;        if(in_array($header, $printable)){&lt;br /&gt;          $str .= "&lt;th&gt;&lt;a href="http://www2.blogger.com/%22%20.%20$_SERVER%5B%22PHP_SELF%22%5D%20%20%20%20%20%20%20%20%20%20%20%20.%20%22?sort_by=%22%20.%20urlencode%28$header%29%20.%20%22"&gt;" . $header&lt;br /&gt;          . "&lt;/a&gt;&lt;/th&gt;\n";&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    $str .= "&lt;/tr&gt;\n";&lt;br /&gt;    $first_time=FALSE;&lt;br /&gt;  }&lt;br /&gt;  $str .= "&lt;tr&gt;\n";&lt;br /&gt;  foreach($element as $k =&gt; $v){&lt;br /&gt;    if(in_array($k, $printable)){&lt;br /&gt;      $str .= "&lt;td&gt;" . $v . "&lt;/td&gt;\n";&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;  $str .= "&lt;/tr&gt;\n";&lt;br /&gt;}&lt;br /&gt;$str .= "&lt;/tbody&gt;&lt;/table&gt;";&lt;br /&gt;return $str;&lt;br /&gt;}&lt;/pre&gt;     &lt;p&gt;Note that the second argument, &lt;code&gt;$printable&lt;/code&gt;, expects an array of key names that you want included in the table. The following two lines would print out a table with four columns:&lt;/p&gt; &lt;pre class="sourcecodebox"&gt;$printable= array("Name", "Artist", "Album", "Size");&lt;br /&gt;echo array_to_table($songs, $printable);&lt;/pre&gt;     &lt;p&gt;Using this code, your webpage will look something like this:&lt;/p&gt;     &lt;p&gt;&lt;img src="http://developer.apple.com/internet/images/layout.jpg" alt="iTunes webpage using php" border="0" height="492" width="545" /&gt;&lt;/p&gt;     &lt;p&gt;Clicking on the header items will sort the table by that item.&lt;/p&gt;      &lt;h2&gt;Preparing to Parse the XML&lt;/h2&gt;     &lt;p&gt;The format of the iTunes XML file is not the easiest thing to work with. Life would’ve been a little easier if the tags looked something like this:&lt;/p&gt; &lt;pre class="sourcecodebox"&gt;&lt;itunes&gt;&lt;br /&gt;&lt;library&gt;&lt;br /&gt;  &lt;song id="150"&gt;&lt;br /&gt;    &lt;song_name&gt;Funk with XML&lt;/song_name&gt;&lt;br /&gt;    &lt;artist&gt;Tech band&lt;/artist&gt;&lt;br /&gt;  &lt;/song&gt;&lt;br /&gt;  &lt;song id="151"&gt;&lt;br /&gt;    &lt;song_name&gt;My Blue Heaven&lt;/song_name&gt;&lt;br /&gt;    &lt;artist&gt;Lovely Sounds Around&lt;/artist&gt;&lt;br /&gt;  &lt;/song&gt;&lt;br /&gt;&lt;/library&gt;&lt;br /&gt;&lt;/itunes&gt;&lt;/pre&gt;     &lt;p&gt;But in the XML format that iTunes uses (see the above excerpt), the tag names themselves are not terribly descriptive. For example, &lt;dict&gt; elements appear in several contexts: surrounding every element in the file, each major segment of the file (e.g., library items and playlists), and each song within the library. To get a list of the songs in the library, the script needs to examine everything between the third opening &lt;dict&gt; tag and its matching closing tag, which happens to immediately precede the &lt;playlists&gt; tag.&lt;/playlists&gt;&lt;/dict&gt;&lt;/dict&gt;&lt;/p&gt;     &lt;p&gt;The tags for individual library items don’t offer much information. They alternate between &lt;key&gt; and a variable type (string, integer, date). PHP isn’t a strictly typed language, so this kind of information isn’t particularly useful here. As the script parses the file, the value within the &lt;key&gt; tag will need to become an array key, and the value of the next element will become the array value.&lt;/key&gt;&lt;/key&gt;&lt;/p&gt;      &lt;h2&gt;Parsing with PCRE&lt;/h2&gt;     &lt;p&gt;PHP has outstanding text handling abilities, and the first method I’ll use for parsing XML uses one of the handiest text handing function sets available in PHP, the Perl Compatible Regular Expression (PCRE) functions. The code for my PCRE example is included in the &lt;code&gt;pcre_parse.php&lt;/code&gt; file in the &lt;a href="http://developer.apple.com/internet/examples/parse_xml_files.tar"&gt;tarball&lt;/a&gt;.&lt;/p&gt;     &lt;p&gt;PCRE offers nearly all the power that Perl scripters have grown to expect from their regular expressions. They’re faster than the standard PHP regular expression functions and they offer features like non-greedy matching, which you can’t use with the &lt;code&gt;ereg()&lt;/code&gt; functions.&lt;/p&gt;     &lt;p&gt;Here’s a quick function that moves each library item into an array with the structure I described above:&lt;/p&gt; &lt;pre class="sourcecodebox"&gt;function parse_via_pcre($contents)&lt;br /&gt;{&lt;br /&gt;//get everything between the &lt;tracks&gt; and &lt;playlists&gt;&lt;br /&gt;//tags, which will include each library element.&lt;br /&gt;preg_match("/Tracks&lt;\/key&gt;.*?&lt;dict&gt;(.*)&lt;key&gt;Playlists/s",&lt;br /&gt; $contents, $whole_match);&lt;br /&gt;&lt;br /&gt;//the text between each &lt;dict&gt; tag will be a library item&lt;br /&gt;preg_match_all("/&lt;dict&gt;(.*?)&lt;\/dict&gt;/s",&lt;br /&gt;  $whole_match[1], $items);&lt;br /&gt;$songs=array();&lt;br /&gt;//$j is a generic counter.&lt;br /&gt;$j=0;&lt;br /&gt;foreach($items[1] as $value){&lt;br /&gt;&lt;br /&gt;  //this function creates two needed arrays&lt;br /&gt;  //$elements[1], which stores the values within&lt;br /&gt;  //the &lt;key&gt; tags, and&lt;br /&gt;  //$elements[2], which stores the values within&lt;br /&gt;  //the tags that follow &lt;key&gt;&lt;br /&gt;  preg_match_all("/&lt;key&gt;(.*?)&lt;\/key&gt;.*?&lt;.*?&gt;(.*?)&lt;\/.*?&gt;/s&lt;br /&gt;", $value, $elements);&lt;br /&gt;&lt;br /&gt;  //for each element assign a key and value to $songs array&lt;br /&gt;  for($i=0; $i &lt; key="$elements[1][$i];" value="$elements[2][$i];"&gt;&lt;/key&gt;&lt;/key&gt;&lt;/dict&gt;&lt;/dict&gt;&lt;/key&gt;&lt;/dict&gt;&lt;/playlists&gt;&lt;/tracks&gt;&lt;/pre&gt;     &lt;p&gt;Three reasonably simple regular expressions is all it took to get at the needed information. To use this function, all you need to do is open the file and pass it a string containing the file contents:&lt;/p&gt; &lt;pre class="sourcecodebox"&gt;$fp=fopen("library.xml", "r");&lt;br /&gt;$contents=fread($fp, filesize("library.xml"));&lt;br /&gt;fclose($fp);&lt;br /&gt;$songs=parse_via_pcre($contents);&lt;/pre&gt;      &lt;h2&gt;Parsing with XPAT&lt;/h2&gt;     &lt;p&gt;The next approach to parsing the file uses the XPAT functions. XPAT is a SAX (Simple API for XML) parser, an event-based parser that can be told to perform an action when a particular condition is encountered. For instance, when the parser comes across an opening tag, that’s an event. Other events include encountering a closing tag or processing instructions. What happens when these events occur is entirely your business; in PHP, these events will trigger functions that you’ll have to write yourself.&lt;/p&gt;     &lt;p&gt;Here’s some code that opens a file, creates a parser, and sets the needed callback functions (You can find this code in the &lt;code&gt;xml_parse.php&lt;/code&gt; file):&lt;/p&gt; &lt;pre class="sourcecodebox"&gt;§&lt;br /&gt;$xml_parser = xml_parser_create();&lt;br /&gt;xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 1);&lt;br /&gt;xml_set_element_handler($xml_parser, "start_element", "end_element");&lt;br /&gt;xml_set_character_data_handler($xml_parser, "character_data");&lt;br /&gt;&lt;br /&gt;if (!($fp = @fopen($file, "r"))) {&lt;br /&gt;return false;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;while ($data = fread($fp, 4096)) {&lt;br /&gt;if (!xml_parse($xml_parser, $data, feof($fp))) {&lt;br /&gt;  die(sprintf("XML error: %s at line %d\n",&lt;br /&gt;    xml_error_string(xml_get_error_code($xml_parser)),&lt;br /&gt;    xml_get_current_line_number($xml_parser)));&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;xml_parser_free($xml_parser);&lt;/pre&gt;     &lt;p&gt;This created a new parser with the &lt;code&gt;xml_parser_create()&lt;/code&gt; function, and then defined some callback functions to run when events occur. In this example, I’ve indicated that the user-defined functions &lt;code&gt;start_element()&lt;/code&gt;, &lt;code&gt;end_element()&lt;/code&gt;, and &lt;code&gt;character_data()&lt;/code&gt; will run when opening tags, closing tags, and character data are encountered, respectively. You’ll need to use these functions to create your internal PHP data sturcture.&lt;/p&gt;     &lt;p&gt;Working with the callback functions can be a bit tricky. It’ll be easiest to begin by looking at the &lt;code&gt;start_element()&lt;/code&gt; function:&lt;/p&gt; &lt;pre class="sourcecodebox"&gt;function start_element($parser, $name, $attribs) {&lt;br /&gt;global $current_element, $number_dicts;&lt;br /&gt;if($name=="DICT"){&lt;br /&gt;  $number_dicts++;&lt;br /&gt;}&lt;br /&gt;if ($number_dicts&gt;2){&lt;br /&gt;  $current_element=$name;&lt;br /&gt;}&lt;br /&gt;}&lt;/pre&gt;     &lt;p&gt;From examining the iTunes library file, I know that I only want contents of elements that start after the third opening &lt;dict&gt;, where the song listing begins. So I keep a counter which tracks the number of opening &lt;dict&gt;s encountered. I only begin tracking element names when the counter indicates it has reached the third one. It’s important to note that the counter and the element name both need to be available as globals. The values need to be available to this and the other callback functions as the parser calls them.&lt;/dict&gt;&lt;/dict&gt;&lt;/p&gt;     &lt;p&gt;The &lt;code&gt;character_data()&lt;/code&gt; function doesn’t have to do much. It sets an element’s contents to a global variable and stays on the lookout for an element value of “Playlist.” When that value turns up, we know we’re done processing the song library:&lt;/p&gt; &lt;pre class="sourcecodebox"&gt;function character_data($parser, $data) {&lt;br /&gt;global $number_dicts, $current_data, $end_of_songs;&lt;br /&gt;if($data=="Playlists") {&lt;br /&gt;  $end_of_songs=TRUE;&lt;br /&gt;}&lt;br /&gt;$current_data=trim($data);&lt;br /&gt;}&lt;/pre&gt;     &lt;p&gt;Now let’s look at the &lt;code&gt;end_element()&lt;/code&gt; function, where most of the heavy lifting is done. As you can see from the brief code below, all it takes is a few lines to construct the array of songs:&lt;/p&gt;  &lt;pre class="sourcecodebox"&gt;function end_element($parser, $name) {&lt;br /&gt;global $songs, $current_element, $current_data;&lt;br /&gt;global $number_dicts, $array_key, $end_of_songs;&lt;br /&gt;if($end_of_songs){&lt;br /&gt;  return;&lt;br /&gt;}&lt;br /&gt;if(!empty($current_element)) {&lt;br /&gt;  if($current_element=="KEY"){&lt;br /&gt;    $array_key=$current_data;&lt;br /&gt;  }else{&lt;br /&gt;    $songs[$number_dicts][$array_key]=$current_data;&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;}&lt;/pre&gt;     &lt;p&gt;XML processing with XPAT can get pretty complicated if your XML files are more sophisticated or if you need to track additional information. But the previous example should provide a basic introduction to working with XPAT.&lt;/p&gt;      &lt;h2&gt;XML Processing with DOM XML&lt;/h2&gt;     &lt;p&gt;The Document Object Model, or DOM, is a W3C standard that maps the structure of an XML document into a series of objects. You can access the document’s structure or manipulate the XML with a series of methods and properties. For example, working with the DOM, XML’s root element is considered a node, and from the root you can get a list of immediate children, add a child element, or remove a specific child. DOM methods also allow you to traverse an XML tree with great specificity, letting you get to the exact area of the document that you’re interested in.&lt;/p&gt;     &lt;p&gt;Unlike the EXPAT functions, the DOM does not require you to build an internal data structure to store your XML—the structure of your XML tree is available within the DOM.&lt;/p&gt;     &lt;p&gt;In my opinion, the DOM functions are easier to work with, though they do require more resources than the very lean XPAT functions. The function set is also very new; the PHP online manual urges caution when using this API.&lt;/p&gt;     &lt;p&gt;It took very little code to manipulate the iTunes playlist with the DOM functions. (You can find this code in the dom_parse.php file.)&lt;/p&gt;  &lt;pre class="sourcecodebox"&gt;$dom=domxml_open_file("library.xml");&lt;br /&gt;&lt;br /&gt;//$dicts will contain an array &lt;dict&gt; elements&lt;br /&gt;$dicts=$dom-&gt;get_elements_by_tagname("dict");&lt;br /&gt;&lt;br /&gt;//I'm interested in everything within the second dict tag&lt;br /&gt;//that's where the entire music library is&lt;br /&gt;//$childs will contain an array of &lt;dicts&gt;.&lt;br /&gt;//The sub-elements of each &lt;dict&gt; contain all song data.&lt;br /&gt;&lt;br /&gt;$song_nodes = $dicts[1]-&gt;get_elements_by_tagname("dict");&lt;br /&gt;&lt;br /&gt;// get the first "dict" object (the first object with song data)&lt;br /&gt;$song_node = $song_nodes[0];&lt;br /&gt;&lt;br /&gt;// now iterate through the song objects and their data&lt;br /&gt;// using the next_sibling() method to move&lt;br /&gt;$i = 0;&lt;br /&gt;&lt;br /&gt;while ($song_node){&lt;br /&gt;$data_node = $song_node-&gt;first_child();&lt;br /&gt;while($data_node)&lt;br /&gt;{&lt;br /&gt;  if($data_node-&gt;node_name() != "#text")   {&lt;br /&gt;    if($data_node-&gt;node_name() == "key"){ // found a key&lt;br /&gt;        $array_key=$data_node-&gt;get_content();&lt;br /&gt;    }else{ // found the value for the current key&lt;br /&gt;       $songs[$i][$array_key]=$data_node-&gt;get_content();&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;  // now advance to the next data node&lt;br /&gt;  //at this level (within a song)&lt;br /&gt;  $data_node = $data_node-&gt;next_sibling();&lt;br /&gt;}&lt;br /&gt;$i++;&lt;br /&gt;// advance to the next song node&lt;br /&gt;$song_node = $song_node-&gt;next_sibling();&lt;br /&gt;}&lt;/dict&gt;&lt;/dicts&gt;&lt;/dict&gt;&lt;/pre&gt;     &lt;p&gt;Once you’ve run through this code, you can send &lt;code&gt;$songs&lt;/code&gt; to the array processing functions shown earlier.&lt;/p&gt;      &lt;h2&gt;Conclusion&lt;/h2&gt;     &lt;p&gt;PHP is an easy-to-learn and flexible language. With dozens of extensions to choose from, PHP can provide all the power you need to create web applications on Mac OS X. And now that version 4.3 is here, it’s even easier to get PHP up and running on your system.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-777812194265203980?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/777812194265203980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=777812194265203980' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/777812194265203980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/777812194265203980'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/php-on-mac-os-x.html' title='PHP on Mac OS X'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-1281898163122630608</id><published>2007-01-05T19:02:00.000+03:30</published><updated>2007-01-05T19:12:43.207+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><title type='text'>H appy Birthday GNU (Today In History)</title><content type='html'>&lt;table style="width: 678px; height: 14px;" class="title_bar" border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="title"&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/td&gt; &lt;td class="title" align="right" width="12"&gt;&lt;span style="font-size:130%;"&gt;&lt;a href="http://michaelthompson.org/unix/extra.php?tzo=0&amp;f=seize"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/td&gt; &lt;td style="text-align: left;" class="title"&gt;&lt;span style="font-size:130%;"&gt; Jan,5th&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;table border="0" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td colspan="2" class="item" style="padding-left: 6px;"&gt;•  &lt;i&gt;LOTR&lt;/i&gt;; Fellowship enters Moria &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td colspan="2" class="item" style="padding-left: 6px;"&gt;•  Twelfth night &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td class="year" align="right" valign="top"&gt;1913:&lt;/td&gt; &lt;td class="item" valign="top"&gt;-50 degrees F (-46 C) in Strawberry, Utah&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td class="year" align="right" valign="top"&gt;1940:&lt;/td&gt; &lt;td class="item" valign="top"&gt;FM radio demonstrated to FCC&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td class="year" align="right" valign="top"&gt;1946:&lt;/td&gt; &lt;td class="item" valign="top"&gt;&lt;img src="http://michaelthompson.org/unix/images/dianekeaton.png" align="left" height="60" /&gt;Producer,  director, and Oscar winning actress Diane Keaton born Diane Hall in Los Angeles, California&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td class="year" align="right" valign="top"&gt;&lt;span style="font-size:180%;"&gt;1984:&lt;/span&gt;&lt;/td&gt; &lt;td class="item" valign="top"&gt;&lt;span style="font-size:180%;"&gt;Richard Stallman begins &lt;a target="_blank" href="http://www.gnu.org/"&gt;GNU&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-1281898163122630608?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/1281898163122630608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=1281898163122630608' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/1281898163122630608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/1281898163122630608'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/h-appy-birthday-gnu-today-in-history.html' title='H appy Birthday GNU (Today In History)'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-8093224310931233660</id><published>2007-01-04T11:31:00.000+03:30</published><updated>2007-01-04T11:34:20.146+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><category scheme='http://www.blogger.com/atom/ns#' term='school'/><category scheme='http://www.blogger.com/atom/ns#' term='diary'/><title type='text'>Physics Exam Passed</title><content type='html'>I passed it. Now IMO the only difficult exam remaining is geometry.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-8093224310931233660?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/8093224310931233660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=8093224310931233660' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8093224310931233660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8093224310931233660'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/physics-exam-passed.html' title='Physics Exam Passed'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-1851274007075472471</id><published>2007-01-03T18:09:00.000+03:30</published><updated>2007-01-03T18:29:05.201+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><category scheme='http://www.blogger.com/atom/ns#' term='diary'/><title type='text'>Physics Test. TOMORROW</title><content type='html'>Tomorrow I have physics exam. I think physics is the most difficult lesson around the world even more difficult that calculus. However, I must pass this exam. Pray 4 me.&lt;br /&gt;P.S: I wanna take a 3*4 portrait from myself which I'd upload that here.&lt;br /&gt;&lt;hr /&gt;&lt;div style="text-align: right;"&gt;فردا،از سلسله امتحانات ترم اول به امتحان فیزیک خواهیم رسید. بنا به نظر حقیر، فیزیک حتی از حسابان نیز سخت تر و مشکل تر می باشد.یا شاید برای من این گونه تداعی شده است. علی أی حال، امتحان باید گذرانده شود. ـ&lt;br /&gt;در ضمن در صدد تهیه ی پرتره ای سه در چهار هستم که در اسرع  وقت در وب نوشت نهاده خواهد شد.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-1851274007075472471?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/1851274007075472471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/1851274007075472471'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/physics-test-tomorrow.html' title='Physics Test. TOMORROW'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-1213820693711089393</id><published>2007-01-03T17:54:00.000+03:30</published><updated>2007-01-03T18:06:00.692+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>You are Makin' me mad!!</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VpFdebajGYw/RZu9DH5WI5I/AAAAAAAAAAc/iU77XiL1-1c/s1600-h/Other+%282%29.jpg"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_VpFdebajGYw/RZu9DH5WI5I/AAAAAAAAAAc/iU77XiL1-1c/s320/Other+%282%29.jpg" alt="" id="BLOGGER_PHOTO_ID_5015810471364010898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-1213820693711089393?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/1213820693711089393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=1213820693711089393' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/1213820693711089393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/1213820693711089393'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/you-are-makin-me-mad.html' title='You are Makin&apos; me mad!!'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_VpFdebajGYw/RZu9DH5WI5I/AAAAAAAAAAc/iU77XiL1-1c/s72-c/Other+%282%29.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-1186888214518736440</id><published>2007-01-02T11:20:00.000+03:30</published><updated>2007-01-02T11:35:28.955+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><category scheme='http://www.blogger.com/atom/ns#' term='diary'/><title type='text'>SADDAM EXECUTION VIDEO COMPLETE</title><content type='html'>There are some movies, which are mostly saddam's execution till right before his death. but his execution is not shown. Download this film to see his execution completely.&lt;br /&gt;Sorry, This film is not appropriate for children under 16 years.&lt;br /&gt;The extension is &lt;a href="http://www.3gp.com/" target="_blank"&gt;3gp&lt;/a&gt;.&lt;br /&gt;&lt;a href="http://www.savefile.com/files/382473" target="_blank"&gt;Download Complete Movie&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-1186888214518736440?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/1186888214518736440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=1186888214518736440' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/1186888214518736440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/1186888214518736440'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/saddam-execution-video-complete.html' title='SADDAM EXECUTION VIDEO COMPLETE'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-227997224210151422</id><published>2007-01-02T09:49:00.000+03:30</published><updated>2007-01-02T09:59:51.058+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>Last Sunset of 2006 (photo)</title><content type='html'>I have taken these pictures on 31/12/2006, The Last sunset of 2006. Second is from through a binocular(click to enlarge):&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://i11.tinypic.com/3zgt9mr.jpg" target="_blank"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://i11.tinypic.com/3zgt9mr.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://i18.tinypic.com/46ytmwo.jpg" target="_blank"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://i18.tinypic.com/46ytmwo.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-227997224210151422?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/227997224210151422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=227997224210151422' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/227997224210151422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/227997224210151422'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/last-sunset-of-2006-photo.html' title='Last Sunset of 2006 (photo)'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i11.tinypic.com/3zgt9mr_th.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-8928368074092706764</id><published>2007-01-01T10:39:00.001+03:30</published><updated>2008-05-10T23:51:46.093+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>What will happen in IT in 2007?</title><content type='html'>&lt;span style="color: rgb(153, 153, 153); font-style: italic;"&gt;source: http://blogs.zdnet.com/Murphy/?p=763 by:Paul Murphy&lt;br /&gt;&lt;/span&gt;&lt;p&gt; Obviously the predictable stuff is predictable: &lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;ol&gt;&lt;li&gt;Vista will make billions for Microsoft - driven by the warm embrace of those who hated the MacOS X interface when Microsoft didn't sell it; &lt;p&gt; &lt;/p&gt; &lt;/li&gt;&lt;li&gt;Itanium will continue on life support while Compaq, operating as HP, negotiates a way out with Intel; &lt;p&gt; &lt;/p&gt; &lt;/li&gt;&lt;li&gt;By the end of the year, the super computer listings will be entirely dominated by products built using IBM's cell processor -and the business applications performance benchmarks will be equally dominated by Sun's second generation CMT/SMP technologies. &lt;p&gt; &lt;/p&gt; &lt;/li&gt;&lt;li&gt;By the end of the year the OpenSolaris community will be widely recognised as larger and more active than the Linux community -and every competing OS developer community except Microsoft's will have copied the key ideas including its organisational structure, the core provisions in the community development license, and Solaris specific technologies including ZFS and Dtrace. &lt;/li&gt;&lt;/ol&gt; &lt;p&gt; It gets more interesting when you step beyond the safe ground of the obvious stuff: for example, it's obvious that increasing public concern over the availability of identity information will, particularly in the United States, produce demands for political action - but it's not at all obvious what direction this will take or what the implications will be for IT management. &lt;/p&gt; &lt;p&gt; The big problem here, of course, is that in both the United States and most of Europe all the legislation needed is already on the books, what's missing is any willingness to enforce the law - sending, for example, the senior partners in an accounting firm to jail when some junior loses a laptop stuffed with pseudo-protected client data. &lt;/p&gt; &lt;p&gt; What's needed is first for someone in the United States to launch a national class action on behalf of the people affected by one of these "incidents," and secondly for the jury involved to vote substantial damages mainly on the basis of expert testimony to the effect that using Microsoft's client-server technologies to store and access identity related data is an industry dumbest practice. Completely obvious, of course, but also not likely to happen, so my guess is that a bad situation will simply continue to get worse during 2007. &lt;/p&gt; &lt;p&gt; Unfortunately whether an expected explosion of state level data management legislation will drive a corporate exodus to more failure friendly jurisdictions off shore to both Europe and the United States, or have the opposite effect - ending offshoring in favor of more local centers - will depend mostly on judicial interpretation of the initial legislation - and, as a coffee drinker, I have no tea leaves in that game. &lt;/p&gt; &lt;p&gt; What's obvious about some of 2006's hottest trends - SOA, Web 2.0 googlemania - is that these are acronyms covering contentless commentary and that neither the lack of substance nor the cheering will change as much as the acronyms do in 2007. In fact it's the cheering that's the point - something that's nicely echoed in "web 2" applications like YouTube and blogging where the essential emptiness of the nth echo chamber variation on a tiny set of common themes wears very thin, very quickly. &lt;/p&gt; &lt;p&gt; In that context, therefore, I'm going to predict that 2007 will see the beginnings of true structural convergence - meaning web based delivery of materials selected, controlled, and presented in traditional ways. Look, for example, for someone to offer a traditionally hosted "best of the web" video series comparable to TV's original "Real People" series, but presented in TV, multicast, and custom packaging. &lt;/p&gt; &lt;p&gt; Bottom line: you know what's going to be the best thing about IT in 2007? I do - it's that I don't have a clue how some of this stuff is going to play out. Will google go bye bye? will Linux resurge? will Apple license the PPC development rights for MacOS X to Microsoft? will Intel produce a credible product? will some HP executives finally go to jail? will Sun stop sabotaging Sun Ray? I have no idea - but you and I both have ring side seats - so bring it on already! &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-8928368074092706764?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/8928368074092706764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=8928368074092706764' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8928368074092706764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8928368074092706764'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/what-will-happen-in-it-in-2007.html' title='What will happen in IT in 2007?'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-4959907727926597302</id><published>2007-01-01T03:30:00.000+03:30</published><updated>2007-01-01T10:33:56.226+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><category scheme='http://www.blogger.com/atom/ns#' term='diary'/><title type='text'>Happy New Year</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://i11.tinypic.com/2ni2u6t.gif"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px;" src="http://i11.tinypic.com/2ni2u6t.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Image from http://jeffline.jefferson.edu/&lt;br /&gt;Finally, 2006 ended with its pros and cons. And now we are in the Year 2007.&lt;br /&gt;Happy New Year&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-4959907727926597302?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/4959907727926597302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/4959907727926597302'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2007/01/happy-new-year.html' title='Happy New Year'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i11.tinypic.com/2ni2u6t_th.gif' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-108871073121604001</id><published>2006-12-30T18:47:00.000+03:30</published><updated>2006-12-30T18:50:10.460+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><category scheme='http://www.blogger.com/atom/ns#' term='diary'/><title type='text'>I am 68% Masculine</title><content type='html'>according to a quiz, i am 32% feminine and 68% masculine:&lt;br /&gt;&lt;table width=350 align=center border=0 cellspacing=0 cellpadding=2&gt;&lt;tr&gt;&lt;td bgcolor="#CCCCCC" align=center&gt;&lt;font face="Georgia, Times New Roman, Times, serif" style='color:black; font-size: 14pt;'&gt;&lt;b&gt;You Are 32% Feminine, 68% Masculine&lt;/b&gt;&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td bgcolor="#DDDDDD"&gt;&lt;center&gt;&lt;img src="http://www.todayproxy.com/index.php?q=aHR0cDovL2ltYWdlcy5ibG9ndGhpbmdzLmNvbS9hcmV5b3VtYXNjdWxpbmVvcmZlbWluaW5lcXVpei9nZW5kZXItMi5qcGc%3D" height="100" width="100"&gt;&lt;/center&gt;&lt;font color="#000000"&gt;&lt;br /&gt;You are in touch with your masculine side.&lt;br /&gt;You are not overly sensitive and not easily moved.&lt;br /&gt;Occasionally, though, something will get through and touch your heart!&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div align="center"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-108871073121604001?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/108871073121604001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=108871073121604001' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/108871073121604001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/108871073121604001'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/i-am-68-masculine.html' title='I am 68% Masculine'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-4101173819350056829</id><published>2006-12-30T11:50:00.001+03:30</published><updated>2008-05-10T23:53:05.685+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>PHP vs. X programming language</title><content type='html'>&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;soruce: zend.com  by: kschroeder&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Being a new Zender I’ve spent some time in the recent past looking at people’s opinions about PHP now that it directly affects the work I do.  In my research I have found a lot of interesting “opinions” about PHP vs. this that and the other thing, usually in the form of lists.  “4 reasons why Java will outlast PHP”, for example.&lt;br /&gt;&lt;br /&gt;So, I figured I’d come up with a list of responses to the naysayers concerning PHP.&lt;br /&gt;&lt;br /&gt;1)     PHP lacks several important features&lt;br /&gt;PHP is specifically web-centric.  This means that many of the features that programmers from general purpose programming languages complain about PHP not having are simply not that important in a web based environment.  Asynchronous execution using threads, for example, has very little use when a browser makes one request at a time.&lt;br /&gt;&lt;br /&gt;2)     PHP doesn’t have “real” object oriented programming support.&lt;br /&gt;Knocking PHP because of a lack of OOP support is so “2003”.  While the initial implementation of OOP in PHP 4 was not so great, PHP 5 implemented OOP in a manner that brings it very much in line with the other OOP programming languages out there.  But the difference is that with PHP you don’t HAVE to use objects.  The true definition of flexibility is when you are free to build as the situation warrants.&lt;br /&gt;&lt;br /&gt;3)     There are no tools for easing debugging/development problems.&lt;br /&gt;Simply not true.  For example, Zend developed Zend Studio which has all of the features of a modern IDE; profiling, debugging, etc.  There are also several open source applications that aide in this arena.  With the Eclipse PHP plugin coming along, this argument loses even more steam.&lt;br /&gt;&lt;br /&gt;4)     PHP is slow&lt;br /&gt;Can be true, doesn’t have to be.  If you take PHP out of the box, throw it on a web server and leave it there you will see lower performance.  But if you build an application that understands caching, loads only what it needs and uses a code cache such as Zend Platform or APC you can get extremely fast performance.  For example, using a caching mechanism in Zend Platform I recently demonstrated reducing execution time on a certain program from 600ms to 7ms.&lt;br /&gt;&lt;br /&gt;5)     There are no serious applications written in PHP.&lt;br /&gt;While this is not true (many companies are using PHP in mission critical enterprise applications and there are several large scale applications available for use) the problem is that this statement diverts attention away from what the real question ought to be.  The real question is “What is keeping serious applications from being developed in PHP?”  The former statement is often used in a context of ridicule, guile or wholesale discrimination and seldom backed by fact.&lt;br /&gt;&lt;br /&gt;There are very few reasons that should keep an enterprise level application from being developed in PHP from a functional perspective.  In terms of back office integration today’s dependence on XML makes that concern irrelevant.  If your concern is that your enterprise runs on Java then Zend’s Java Bridge built into Zend Platform gives you the option of using PHP to build your web based front end to your Java-based enterprise.  Even in Microsoft environments PHP has COM and .NET integration points with Microsoft compatible platforms.&lt;br /&gt;&lt;br /&gt;When I look at the php.net’s function reference I see 182 individual modules that are supported natively by PHP.  There is support for several databases (not just MySQL), LDAP, IMAP, PDF, XML, shared memory, SSL, bindings to several multi-media engines, SOAP, COM, .NET, multiple compression/encryption schemes, JSON, non-blocking IO for both streams and sockets, XSLT, NIS, Shockwave and on and on and on.  These are not the hallmarks of an insignificant programming language.&lt;br /&gt;&lt;br /&gt;And this is only the beginning.  PHP, with the help of Zend, has been given enterprise credibility via partnerships with IBM, Oracle and Microsoft.  These are not industry lightweights.  And they are companies who recognize that PHP is more than a simple hackers’ language.  They see that PHP has the potential for great things in the enterprise space.&lt;br /&gt;&lt;br /&gt;I would argue that once most of these points have been fully considered there are few significant barriers to building serious applications in PHP.&lt;br /&gt;&lt;br /&gt;If, after reading this, still think that PHP has no place in the enterprise, please email me at kevin@zend.com.  Your thoughts and responses are both anticipated and welcome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-4101173819350056829?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/4101173819350056829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/4101173819350056829'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/php-vs-x-programming-language.html' title='PHP vs. X programming language'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-5771160718967535605</id><published>2006-12-30T11:47:00.001+03:30</published><updated>2008-05-10T23:59:19.338+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>Making Tables Read-only in oracle</title><content type='html'>In Oracle, you can only control read/write capability for an entire tablespace, not for a single table within a tablespace. So, if you want all the tables in a tablespace to be read-only, use the following command:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ALTER TABLESPACE &lt;tablespace_name&gt; READ ONLY;&lt;br /&gt;&lt;br /&gt;To reverse the change and set all the tables in the tablespace back to read-write mode, use this code:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ALTER TABLESPACE &lt;tablespace_name&gt; READ WRITE;&lt;br /&gt;&lt;br /&gt;Despite that limitation, you can simulate a read-only table by simply preventing all table modifications using a trigger. To do that, create a trigger as follows.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SQL&gt; create or replace trigger emp_sal_read_only&lt;br /&gt;2 before insert or update or delete&lt;br /&gt;3 on emp_sal_tbl&lt;br /&gt;4 begin&lt;br /&gt;5 raise_application_error (-20001, 'Table EMP_SAL_TBL is read only,&lt;br /&gt; You cannot make changes to the data.');&lt;br /&gt;6 end;&lt;br /&gt;7 /&lt;br /&gt;Trigger created.&lt;br /&gt;&lt;br /&gt;Here's a test command that tries to alter the data, and the resulting output:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SQL&gt; DELETE FROM EMP_SAL_TBL;&lt;br /&gt;DELETE FROM EMP_SAL_TBL&lt;br /&gt;*&lt;br /&gt;ERROR at line 1:&lt;br /&gt;ORA-20001: Table EMP_SAL_TBL is read only, You cannot make changes to the data.&lt;br /&gt;ORA-06512: at "SRIDHAR.EMP_SAL_READ_ONLY", line 2&lt;br /&gt;ORA-04088: error during execution of trigger 'SRIDHAR.EMP_SAL_READ_ONLY'&lt;br /&gt;source: &lt;a href="http://www.devx.com/" target="" __blank=""&gt;devx.com&lt;/a&gt;&lt;/tablespace_name&gt;&lt;/tablespace_name&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-5771160718967535605?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5771160718967535605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5771160718967535605'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/making-tables-read-only-in-oracle.html' title='Making Tables Read-only in oracle'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-5526847489525520373</id><published>2006-12-27T16:07:00.000+03:30</published><updated>2006-12-27T16:09:07.081+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='school'/><category scheme='http://www.blogger.com/atom/ns#' term='diary'/><title type='text'>Graph Theory</title><content type='html'>These days , I am working on graph theory. I have borrowed some books from the school's library. It's cool.&lt;br /&gt;I don't have time for Ancient Persian translation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-5526847489525520373?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5526847489525520373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5526847489525520373'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/graph-theory.html' title='Graph Theory'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-5197239634151384688</id><published>2006-12-27T15:59:00.001+03:30</published><updated>2006-12-27T16:00:36.659+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><title type='text'>License</title><content type='html'>&lt;div&gt;Today I put a license on this blog:&lt;br /&gt;&lt;a href="http://creativecommons.org/licenses/by-nc-nd/2.5/" rel="license"&gt;Creative Commons Attribution-Noncommercial-No Derivative Works 2.5  License&lt;/a&gt;.&lt;br /&gt;&lt;hr  width="100%" style="font-size:85%;"&gt;Ancient Persian translation:&lt;br /&gt; &lt;div align="right"&gt;&lt;span style="font-family:Tahoma, Arial, Helvetica, sans-serif;"&gt;الیوم ،تصدیقی بر این وب نوشت نهادم. متن تصدیق را در سایت مربوطه مشاهده توانید نمود.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt; &lt;/div&gt;  &lt;div class="AOLPromoFooter"&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-5197239634151384688?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5197239634151384688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5197239634151384688'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/license.html' title='License'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-7882328434586267963</id><published>2006-12-27T15:23:00.001+03:30</published><updated>2006-12-27T15:49:42.219+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='school'/><category scheme='http://www.blogger.com/atom/ns#' term='diary'/><title type='text'>Mr. Saberi and his mobile phone</title><content type='html'>Finally Mr. Saberi our mathematics teacher , bought a cell phone. A Sony-Ericsson's Walkman. lol. He was the only teacher who hadn't a mobile phone by now.(though the price of mathematics teachers as a private teacher is extremely high, both they may be a little stingy, of course Mr. Saberi was buildin' a house by now and he is not a stingy person)  We could grab his number....Dirty sms messages !!!  ;)&lt;br /&gt;--------&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:verdana;"&gt;َAncient Persian translation:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:verdana;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: right;"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:verdana;"&gt;بعد از گذشت ازمنه ای بس دراز، جناب مستطاب حسن صابری نیک ،معلم ریاضیاتمان نیز دورگویی قابل حمل( و در اصطلاح موبایل) مبایعه نمود.یک  سونی اریکسون واکمن.او یگانه دبیری بود که تا به امروزچنین وسیله ای از آن خود نداشت.(گویند که معلمان ریاضی در کلاس های خصوصی خود ثمن عظیمی از دانش آموزان طلب می کنند.پس ممکن است کمی گران کیسه و خسییس باشند. علی أی حال آقای صابری تا به حال به ساختن منزلی برای خویش مشغول بود و هرگز انسان لئیمی نیست.) توانستیم رقم او را از گوشه وکنار پیدا کرده و پیام های کوتاه با مضامین نامتعارف  برای ایشان  بفرستیم.ـ &lt;/span&gt;&lt;/span&gt; &lt;span style="font-size:130%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-7882328434586267963?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/7882328434586267963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/7882328434586267963'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/mr-saberi-and-his-mobile-phone.html' title='Mr. Saberi and his mobile phone'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-5296160961740991135</id><published>2006-12-26T18:37:00.000+03:30</published><updated>2006-12-26T18:44:55.536+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><title type='text'>Christmas, New year and finishing programming</title><content type='html'>Merry Christmas and happy new year 2007.&lt;br /&gt;I am not a programmer anym0re.  It's not so bad. for me, as a programmer.&lt;br /&gt;I am very sad right now. I think that a programmer is a programmer for ever. But i am not a programmer now. I don't study php or program with this lovely language. So i use this blog for my personal notes.&lt;br /&gt;Sorry for programmer readers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-5296160961740991135?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5296160961740991135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5296160961740991135'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/christmas-new-year-and-finishing.html' title='Christmas, New year and finishing programming'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-8152195139142814570</id><published>2006-12-20T18:18:00.001+03:30</published><updated>2008-05-10T23:52:21.850+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>Zend php 5 Certification exam tips-- strings Part II</title><content type='html'>&lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; text-indent: -18pt; direction: ltr; unicode-bidi: embed;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;&lt;span style=""&gt;str[c]spn (string str2,string str2[,int start[,int length]])&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; text-indent: -18pt; direction: ltr; unicode-bidi: embed;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;&lt;span style=""&gt;strspn () matches a string against a white list mask of allowed characters. Returns the length of the initial segment of the string that contains any of the characters specified in the mask.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;$string="133445abcdef";&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;$mask='12345';&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;echo strspn($string,$mask); // 6&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; text-indent: -18pt; direction: ltr; unicode-bidi: embed;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;&lt;span style=""&gt;strcspn() is like strspn but takes a blacklist instead of a white list.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; text-indent: -18pt; direction: ltr; unicode-bidi: embed;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;&lt;span style=""&gt;Both strspn and strcspn accept two optional&lt;span style=""&gt;  &lt;/span&gt;parameters that define the starting position and the length of the string to examine. i.e.:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;$string='1abc234';&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;$mask='abc';&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;echo strspn($string,$mask,1,4);&lt;span style=""&gt;  &lt;/span&gt;//3&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;In the example above, strspn() will start examining the string from the second character(index 1) and continue for up to four characters.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; text-indent: -18pt; direction: ltr; unicode-bidi: embed;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;&lt;span style=""&gt;mixed&lt;span style=""&gt;  &lt;/span&gt;str_replace(mixed search, mixed replace , mixed subject [,int &amp;amp;count])&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;using count:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;$a=0; //initialize&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;str_replace('a','b','a1a1a1',$a);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;echo $a; //3&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;if we wanna search and replace more than one needle at a time, we can pass first two args as arrays.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Example1:&lt;span style=""&gt;  &lt;/span&gt;echo str-replace(array("hello","world"), array("bonjour","monde"),"hello world");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Example2: echo str_replace(array("hello,world),"bye","hello world");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;In the first example the replacements are made based on array indices.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;The first element of the search array is replaced by the first element of the replacement array, and the output is bonjour monde. In the second example, only the needle argument is an array resulting Bye Bye.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; text-indent: -18pt; direction: ltr; unicode-bidi: embed;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;&lt;span style=""&gt;Case insensitive str_replace = str_ireplace()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; text-indent: -18pt; direction: ltr; unicode-bidi: embed;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;&lt;span style=""&gt;If we need to replace a portion of a needle of which you already know the starting and ending points:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Mixed substr_replace(mixed string, string replacement, int start[,int length])&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Substr_replace Replaces a copy of string delimited by the start and (optionally) length parameters with the string given in replacement. The result string is returned. If string is and array, then array is returned.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;If start is positive, the replacing will begin at the start&lt;i&gt;th &lt;/i&gt;offset into string.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;If start is negative, begin at the startth char from the end of string.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;If length is given and is negative, represents the number of chars from the end of the string at which to stop replacing. If not given, default is strlen($str). &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Substr_replace examples:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Substr_replace($var,'abc'0) // all of $var with abc&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Substr_replace($var,'abc',0,0 // right at the beginning.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; text-indent: -18pt; direction: ltr; unicode-bidi: embed;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;&lt;span style=""&gt;The combination of substr_replace and strpos is a powerful tool:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;$user='danrah@gmail.com';&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;$name=substr_replace($user,' ', strpos($user,"@");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;echo "hello ".$name; // hello danrah&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-8152195139142814570?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8152195139142814570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8152195139142814570'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/zend-php-5-certification-exam-tips.html' title='Zend php 5 Certification exam tips-- strings Part II'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-6969445657244319614</id><published>2006-12-19T18:33:00.002+03:30</published><updated>2008-05-10T23:53:38.080+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>Zend php Certification exam tips-- strings Part I</title><content type='html'>&lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; text-indent: -18pt; direction: ltr; unicode-bidi: embed;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;&lt;span style=""&gt;There should be no space before the ending statement of heredoc&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; text-indent: -18pt; direction: ltr; unicode-bidi: embed;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;&lt;span style=""&gt;The only exception we can't use heredocs is in class properties:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;class hello{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;public $greeting=&lt;&lt;&lt;&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Hello&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;STRING;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;} //parse error&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; text-indent: -18pt; direction: ltr; unicode-bidi: embed;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;&lt;span style=""&gt;We can not escape a brace ({) in double quotes with a backslash. Instead, we should escape the dollar sign inside:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 36pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;{/$&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; text-indent: -18pt; direction: ltr; unicode-bidi: embed;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;&lt;span style=""&gt;strlen() is binary-safe. It means that counts all of the characters regardless of their value.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; text-indent: -18pt; direction: ltr; unicode-bidi: embed;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;&lt;span style=""&gt;\0 is counted once by strlen()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; text-indent: -18pt; direction: ltr; unicode-bidi: embed;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;&lt;span style=""&gt;Strtr() translates certain characters:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Form 1:&lt;span style=""&gt;  &lt;/span&gt;string strtr(string str,string from, string to)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Form 2: string strtr(string str,array replace_pairs)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;In Form1, to and from should be the same size.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; text-indent: -18pt; direction: ltr; unicode-bidi: embed;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;&lt;span style=""&gt;strcmp() and its family are extremely important in exam.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; text-indent: -18pt; direction: ltr; unicode-bidi: embed;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;&lt;span style=""&gt;Substr_compare() :&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Int substr_compare(string main_str, string str, int offset[,int length[,bool case_insensitivity]])&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Compares main_str from position offset with str up to length chars returns &lt;0&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; text-indent: -18pt; direction: ltr; unicode-bidi: embed;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;&lt;span style=""&gt;Simplest way to search inside a string: strpos and strstr families&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; text-indent: -18pt; direction: ltr; unicode-bidi: embed;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;&lt;span style=""&gt;Strstr is important. Read the manual carefully&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; text-indent: -18pt; direction: ltr; unicode-bidi: embed;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;&lt;span style=""&gt;Strpos is important too. if needle is not found, strpos will return Boolean false. The important thing about strpos is that we should use === for comparison because if position was 0&lt;sup&gt;th&lt;/sup&gt; char, then == interprets that as false.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; text-indent: -18pt; direction: ltr; unicode-bidi: embed;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;&lt;span style=""&gt;Case insensitive strstr: stristr&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; text-indent: -18pt; direction: ltr; unicode-bidi: embed;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;&lt;span style=""&gt;Case insensitive strpos: stripos&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; text-indent: -18pt; direction: ltr; unicode-bidi: embed;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;&lt;span style=""&gt;Strpos finds position of last occurrence of a char In a string:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;echo strrpos('123123,'123"); //3&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-6969445657244319614?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/6969445657244319614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/6969445657244319614'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/zend-php-certification-exam-tips.html' title='Zend php Certification exam tips-- strings Part I'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-5957298854445933163</id><published>2006-12-16T17:18:00.002+03:30</published><updated>2008-05-10T23:56:40.308+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>PHP 6</title><content type='html'>&lt;a href="http://blog.libssh2.org/index.php?/archives/38-PHP6-News-from-the-front....html"&gt;http://blog.libssh2.org/index.php?/archives/38-PHP6-News-from-the-front....html&lt;/a&gt;&lt;br /&gt;great article about php6&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-5957298854445933163?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5957298854445933163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5957298854445933163'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/php-6.html' title='PHP 6'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-3361818015635722846</id><published>2006-12-15T23:17:00.001+03:30</published><updated>2008-05-10T23:53:52.219+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>Zend Cert Tips --PHP Basics</title><content type='html'>&lt;ul style="margin-top: 0cm;" type="disc"&gt;&lt;li class="MsoNormal" dir="ltr" style="margin-right: 0cm; margin-left: 36pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Getting string      offsets, {} is a better practice than [] note that indices are started      from zero&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" dir="ltr" style="margin-right: 0cm; margin-left: 36pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Indirect      references to variables(variable variables):&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;span style=""&gt;                &lt;/span&gt;$name="John";&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;                  &lt;/span&gt;$$name="Registered User";&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;                  &lt;/span&gt;echo $john; //prints registered user&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;                  &lt;/span&gt;echo $name; //prints John&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Variable variables are a very powerful tool, and should be used with &lt;i&gt;extreme &lt;/i&gt;care, not only because they can make your code difficult to understand and document, but also because their improper use can lead to some significant security issues.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Because of the availability of variable variables, it is indeed possible to create variables whose names do not follow the constraints. This is also possible&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;by defining the name between braces:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;$name = '123';&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;i&gt;&lt;span style=""&gt;/* 123 is your variable name, this would normally be invalid. */&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;$$name = '456';&lt;i&gt; // Again, you assign a value&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;echo&lt;b&gt; &lt;/b&gt;${’123’};&lt;i&gt; // Finally, using curly braces you can output ’456’&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;A technique similar to variable variables can also be used to hold function names&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;inside a variable:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;function myFunc() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;b&gt;&lt;span style=""&gt;echo &lt;/span&gt;&lt;/b&gt;&lt;span style=""&gt;’myFunc!’;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;$f = ’myFunc’;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;$f(); &lt;i&gt;// will call myFunc();&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Clearly, this technique should be used with as much care as variable variables,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;opportunities for mistakes and security issues it raises are quite significant.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0cm;" type="disc"&gt;&lt;li class="MsoNormal" dir="ltr" style="margin-right: 0cm; margin-left: 36pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;In heredoc      ending statement, semicolon is optinal but newline is registered and no      space should be before this statement:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 36pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;$string= &lt;&lt;&lt;&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 36pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Str&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;STRING;&lt;span style=""&gt;  &lt;/span&gt;//no space should be b4 this&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0cm;" type="disc"&gt;&lt;li class="MsoNormal" dir="ltr" style="margin-right: 0cm; margin-left: 36pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Using each() to      work like foreach&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 36pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;$players=array("Joe","Jack","Bill");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 36pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Reset($players);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 36pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;While(list($key,$val(\)=each($players)){&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 36pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Echo "#$key=$val \n";&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 36pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0cm;" type="disc"&gt;&lt;li class="MsoNormal" dir="ltr" style="margin-right: 0cm; margin-left: 36pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;The third      argument of define() sets the case insensitivity of the constant, default      1(insensitive)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" dir="ltr" style="margin-right: 0cm; margin-left: 36pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Valid composite      assignment operators:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 36pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;+=&lt;span style=""&gt;  &lt;/span&gt;-=&lt;span style=""&gt;  &lt;/span&gt;%=&lt;span style=""&gt;  &lt;/span&gt;^=&lt;span style=""&gt;  &lt;/span&gt;.=&lt;span style=""&gt;  &lt;/span&gt;&amp;amp;=&lt;span style=""&gt;  &lt;/span&gt;|=&lt;span style=""&gt;  &lt;/span&gt;&lt;&lt;= &gt;&gt;=&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0cm;" type="disc"&gt;&lt;li class="MsoNormal" dir="ltr" style="margin-right: 0cm; margin-left: 36pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;&lt;span style=""&gt; &lt;/span&gt;The match in the switch statement uses ==      not ===&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" dir="ltr" style="margin-right: 0cm; margin-left: 36pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;For      "for" loop we can supply more than one expression for each of      the three args by using commas to delimit them.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" dir="ltr" style="margin-right: 0cm; margin-left: 36pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;Using      "global" keyword is not recommended because of various reasons      such as misbehaving with assigning values by reference, not supporting      unset() and so on. We should use $_GLOBALS[] instead&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" dir="ltr" style="margin-left: 18pt; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-3361818015635722846?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/3361818015635722846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/3361818015635722846'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/zend-cert-tips-php-basics.html' title='Zend Cert Tips --PHP Basics'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-8129977135353228139</id><published>2006-12-15T23:15:00.001+03:30</published><updated>2008-05-10T23:54:39.320+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>Zend Cert Tips</title><content type='html'>&lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;As I mentioned earlier, I am studying for ZCE exam. I want to digitalize my notes (which are mostly tips) and post them to this blog. So they can be good resources for readers and for me to review them&lt;span style=""&gt;. The notes are from:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;1. Manual&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;2. PHP5 Power Programming&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;3. Zend PHP5 Certification study guide&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;4. Zend PHP Certification study guide&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;5. PHP5 and Mysql Bible&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;I try to post new tips daily.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;The tips are by subject and start from PHP Basics&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;They conform to Zend PHP5 Certification Exam topics listed at Zend.com&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;I don’t post something like what is a control structure or how to print something to the page and something like that. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;I hope them to be useful for both u and me&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" dir="ltr" style="text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-8129977135353228139?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8129977135353228139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8129977135353228139'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/zend-cert-tips.html' title='Zend Cert Tips'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-7161902466373410751</id><published>2006-12-15T18:14:00.001+03:30</published><updated>2008-05-10T23:54:47.892+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>Zend PHP 5 Certification Study Guide Review</title><content type='html'>As i mentioned earlier, I got the book after a long time. I have read two chapters by now. It is a great book, showing the hidden parts of PHP5. But there is a tremendous problem . no Practice tests are given in the book.Instead, There is an online Mock exam which is not suitable for everyone.&lt;br /&gt;The Certification Study Guide for PHP4 had sample tests with a companion:&lt;br /&gt;Zend PHP Certification Sample Exams.&lt;br /&gt;I think Zend wanna spread digital World ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-7161902466373410751?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/7161902466373410751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=7161902466373410751' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/7161902466373410751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/7161902466373410751'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/zend-php-5-certification-study-guide_15.html' title='Zend PHP 5 Certification Study Guide Review'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-931768218089132227</id><published>2006-12-14T17:12:00.001+03:30</published><updated>2008-05-10T23:54:59.816+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>Zend PHP 5 Certification Study Guide</title><content type='html'>Today, I found a pdf version of the Zend PHP5 Certification Study Guide. I am readin' it before my printed version arrives. Cool Book ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-931768218089132227?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/931768218089132227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=931768218089132227' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/931768218089132227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/931768218089132227'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/zend-php-5-certification-study-guide.html' title='Zend PHP 5 Certification Study Guide'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-2419068589032591949</id><published>2006-12-09T19:24:00.001+03:30</published><updated>2008-05-10T23:55:20.755+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>Something Frustrating about Zend PHP5 Certification</title><content type='html'>Read This Two Posts from Zend.com forum:&lt;br /&gt;&lt;a href="http://www.zend.com/forums/index.php?t=msg&amp;amp;th=2397&amp;amp;start=0&amp;amp;S=02b4f41e24fa95b0866d916205ab41dd" target="_blank"&gt;post 1  &lt;/a&gt;Study Guide is not useful&lt;br /&gt;&lt;a href="http://www.zend.com/forums/index.php?t=msg&amp;amp;th=2485&amp;amp;start=0&amp;amp;S=02b4f41e24fa95b0866d916205ab41dd" target="_blank"&gt;Post 2 &lt;/a&gt;Yellow Pages Problem&lt;br /&gt;I think that PHP5 Certification is still incomplete.&lt;br /&gt;we should wait ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-2419068589032591949?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/2419068589032591949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=2419068589032591949' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2419068589032591949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2419068589032591949'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/something-frustrating-about-zend-php5.html' title='Something Frustrating about Zend PHP5 Certification'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-9203513765177645811</id><published>2006-12-09T19:08:00.000+03:30</published><updated>2006-12-09T19:15:44.899+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Microsoft and PHP</title><content type='html'>&lt;a href="http://andigutmans.blogspot.com/2006/10/making-php-on-windows-work.html" target="_blank"&gt;Making PHP on Windows Work&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(192, 192, 192);"&gt;by Andi Gutmans&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-9203513765177645811?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/9203513765177645811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=9203513765177645811' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/9203513765177645811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/9203513765177645811'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/microsoft-and-php.html' title='Microsoft and PHP'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-3026398218270783301</id><published>2006-12-09T17:11:00.001+03:30</published><updated>2008-05-10T23:52:39.546+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>Do You PHP ?</title><content type='html'>&lt;a href="http://www.oracle.com/technology/pub/articles/php_experts/rasmus_php.html" target="_blank"&gt;Do you php?&lt;/a&gt; (by rasmus lerdorf)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-3026398218270783301?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/3026398218270783301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=3026398218270783301' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/3026398218270783301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/3026398218270783301'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/do-you-php.html' title='Do You PHP ?'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-7049428978764739738</id><published>2006-12-09T15:04:00.001+03:30</published><updated>2008-05-10T23:58:49.912+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>Design and Analysis of Distributed Algorithms</title><content type='html'>Download this book for free:&lt;br /&gt;&lt;a href="http://rapidshare.com/files/3693203/0471719978.rar" target="_blank"&gt;http://rapidshare.com/files/3693203/0471719978.rar&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-7049428978764739738?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/7049428978764739738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=7049428978764739738' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/7049428978764739738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/7049428978764739738'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/design-and-analysis-of-distributed.html' title='Design and Analysis of Distributed Algorithms'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-556889124285472666</id><published>2006-12-08T20:01:00.001+03:30</published><updated>2008-05-10T23:51:22.990+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>Mysql Customers</title><content type='html'>for a list of mysql customers(including google and Yahoo), take a look here:&lt;br /&gt;&lt;a href="http://www.mysql.com/customers/" target="_blank"&gt;http://www.mysql.com/customers/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-556889124285472666?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/556889124285472666/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=556889124285472666' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/556889124285472666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/556889124285472666'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/mysql-customers.html' title='Mysql Customers'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-2754619254226987559</id><published>2006-12-08T19:58:00.001+03:30</published><updated>2008-05-10T23:58:10.955+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>Import MS Access Data to MySQL 5</title><content type='html'>&lt;p&gt;&lt;b&gt;Introduction&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In an era where data becomes volumetric in every business, much attention has been given to proper database management and the ease of data access. Businesses that use MS Access begin to look for an alternative which allows better database performance, higher reliability, higher flexibility, yet inexpensive.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;With the numerous choices available in the market, considering you don't want to put too much investment on it, only one, MySQL, stands out from the crowd. MySQL's flexibility allows you to deploy it cross various platforms, it also allows multiple user access concurrently. If you wish, you can still continue to do your data administration through Access as a front end. However, despite the various MySQL's features overtaking Access, whether or not to migrate your data from Access to MySQL still need an in-depth consideration.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In this article, I will discuss whether or not to migrate your MS Access data to MySQL. Then, I will cover about the considerations, planning, and preparations which should made before migrating your data. After all the planning and preparation stages has been finished, I will illustrate to you how the migration can be done with the help of Navicat, a MySQL database administration GUI.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;MySQL versus Access&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;When you start to think of whether to use Access or MySQL, a very first point to think about is that what you need. The features of MS Access and MySQL are almost in two different directions: MS Access can only be deployed in Microsoft Windows while MySQL is cross platform; MS Access is a single-user application while MySQL is a multi-user application. To help you to decide whether or not to keep using MS Access or migrate your data from MS Access to MySQL, we will illustrate some scenarios that you should migrate or should not.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Migrate your MS Access data to MySQL when&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="margin-top: 1pt;"&gt;&lt;br /&gt;&lt;li&gt;You want your data to be deployed with more flexibility. Data in MySQL can be accessible to more users through the web. With MySQL, people can use client programs or other administrative tools to get access to your database by authentication. MySQL can also be integrated with Web Server by web programming languages. This provides a more flexible choice other than MS Access alone. You can get your data from MySQL remotely from anywhere you want disregarding the platform, provided that the database is connected to the Internet and you have to login names for it.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;You are not the only person who controls the data. MS Access is a single user program for local use, although it has some sharing features, your data cannot be accessed concurrently in MS Access. MySQL is a multiple-user program, it's suited to the situation where you are not the only person who is controlling the data. MySQL is designed to work well in a networked environment and is capable to serve a number of clients.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;You want your data secured and only accessed by authorized people. MS Access data is stored in a local machine, whenever the machine is left unattended, any foreigner may steal your data by copying it to a disk. Although MS Access do allow users to set passwords to a database, it is not a necessity and many people neglect the process. MySQL requires authentication before opening connection to a database, this enhances the security issue. It also allows user privilege settings, this can help database administrator easily manage the actions for each particular user can perform.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Your database is large.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;You are not going to use Microsoft Windows anymore. Since MySQL is cross-platform, you can install your MySQL on more than 20 platforms including Linux distributions, Mac OS X, UNIX, and Microsoft Windows.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;You want an open source database. MySQL can be obtained for free while MS Access cannot. MySQL is now under the GPL license. You can obtain a free copy of MySQL if you are not using it for commercial purpose. For commercial organization, the license is inexpensive compared to other databases in the market.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Do not migrate your MS Access data to MySQL when:&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol style="margin-top: 1pt;"&gt;&lt;br /&gt;&lt;li&gt;you want your data be easily portable. Since MS Access is a local based program, you can take your data with your wherever you like by just copying the file onto a disk. The file can be opened with an MS Access program installed in another computer;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;you only need single user access to database;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;you prioritize the use of MS Access reporting feature more than the database features of MySQL;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;you feel very comfortable with the performance of MS Access.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;After thorough understanding of the pros and cons of MS Access and MySQL, you should now able to decide whether or not to move your data to MySQL. If you have now confirmed your interest to migrate your data, the following sections will teach you how to do so.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Before Migration&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;To start using MySQL, a good planning is important as there is some incompatibility between MS Access and MySQL. To transfer the data successfully, there a few points we have consider. One of the important data incompatibilities we must consider is the column type and data format. Although most of the column types in MS Access and MySQL are compatible with each other, the capacity of specific column type may differ. For example, the type varchar in MS Access is not the same with the type varchar in MySQL. MS Access' varchar holds more characters then that in MySQL. In this case, we have to use text in MySQL to hold up characters in MS Access' varchar instead.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;A typical example is the Date Format. In MS Access, date is stored as MM-DD-YYYY, whereas in MySQL, the date is stored as YYYY-MM-DD. Care needs to be given to those fields during conversion.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Other points we have to consider are the differences in the built-in functions, user defined functions, and maintenance.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;It seems that there is a lot which we must consider for the migration. However, the real story can be simplified with the help of some database administrative tools.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Currently, there are a wide variety of tools available in the market to suit our needs. Here I will look into Navicat which I personally thinks stands out from the crowd.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Transferring your MS Access data to MySQL through Navicat&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Navicat (http://www.navicat.com/download.html) supports imports from various file formats such as text, csv, XML, Excel, MS Access, HTML and some others.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Navicat has a function Import Wizard. In the table view, click the icon Import Wizard.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Animated graphical demonstration: http://support.navicat.com/animations/import_access.gif&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;In &lt;b&gt;step 1&lt;/b&gt; of the Import Wizard, specify the file type you would like to import. In this case, we choose MS Access database .mdb file. Click Next to proceed.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;In &lt;b&gt;step 2&lt;/b&gt;, choose the location of the access file. Once you have chosen the location of the file, all your tables in your access files will be shown in the table name box. Choose the tables which you would like to import. In this case, there is only one table present.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The import wizard will skip &lt;b&gt;steps 3-5&lt;/b&gt; and jump to &lt;b&gt;Step 6&lt;/b&gt;. In this step, you can manually change the data type of the field, the value shown is the automatically generated type detected by the system.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The import wizard will skip &lt;b&gt;Step 7-9&lt;/b&gt; and jumped to Step 10. Choose Append: add records to the destination table and click Execute to start the converting process.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;With the help of Navicat, the conversion process becomes unexpectedly easy. You can finish all the configuring process within one minute.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Navicat not only helps import MS Access data onto MySQL but also contains functions which MS Access has and even more.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;This article has discussed the advantages and disadvantages of switching MS Access to MySQL. Whether or not to migrate your data will, of course, depend on your own needs.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Free trial version - http://www.navicat.com/download.html&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Navicat Animated Demo - http://support.navicat.com/visual_tutorial.php&lt;/p&gt;&lt;p&gt;&lt;span style="font-style: italic; color: rgb(153, 153, 153);"&gt;source: phpbuilder.com&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-2754619254226987559?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/2754619254226987559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=2754619254226987559' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2754619254226987559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2754619254226987559'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/import-ms-access-data-to-mysql-5.html' title='Import MS Access Data to MySQL 5'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-8643055664750259849</id><published>2006-12-08T19:13:00.001+03:30</published><updated>2008-05-10T23:59:12.710+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>Mysql Syntax</title><content type='html'>An easy to understand guide to MySQL syntax:&lt;br /&gt;&lt;a href="http://www.phpfreaks.com/MySQL_Reference/Syntax/3.php" target="_blank"&gt; http://www.phpfreaks.com/MySQL_Reference/Syntax/3.php&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-8643055664750259849?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/8643055664750259849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=8643055664750259849' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8643055664750259849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8643055664750259849'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/mysql-syntax.html' title='Mysql Syntax'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-1925913299339342227</id><published>2006-12-08T19:01:00.001+03:30</published><updated>2008-05-10T23:58:34.559+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>Google Using Ajax again</title><content type='html'>after google trends, now google &lt;a href="http://www.blogger.com/translate.google.com"&gt;translation&lt;/a&gt; is using ajax.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-1925913299339342227?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/1925913299339342227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=1925913299339342227' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/1925913299339342227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/1925913299339342227'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/google-using-ajax-again.html' title='Google Using Ajax again'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-2369811661015102587</id><published>2006-12-07T18:48:00.001+03:30</published><updated>2008-05-10T23:55:31.663+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>Another SPl Example</title><content type='html'>Another SPL Example Class:&lt;br /&gt;http://www.phpclasses.org/browse/package/3549.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-2369811661015102587?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/2369811661015102587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=2369811661015102587' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2369811661015102587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/2369811661015102587'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/another-spl-example.html' title='Another SPl Example'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-5653745511825816992</id><published>2006-12-04T18:58:00.001+03:30</published><updated>2008-05-10T23:55:48.718+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='computer'/><title type='text'>SPL Example</title><content type='html'>SPL Example Code&lt;br /&gt;&lt;a href="http://codewalkers.com/codefiles/670_iterators_examples.zip"&gt;Download &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-5653745511825816992?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/5653745511825816992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=5653745511825816992' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5653745511825816992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5653745511825816992'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/spl-example.html' title='SPL Example'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-4777047407629175686</id><published>2006-12-04T18:50:00.000+03:30</published><updated>2006-12-04T18:52:19.762+03:30</updated><title type='text'>Microsoft Takes the Windows Vista Road</title><content type='html'>&lt;span name="intelliTxt" id="intelliTXT"&gt;&lt;span style=";font-family:Verdana;font-size:8;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span nd="1" style=";font-family:Verdana;font-size:8;"  &gt;After five years of hard work and 9 billion dollars worth of investments, Windows Vista fails to provide an answer to a simple question: “Who needs it?”  &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span nd="2" style=";font-family:Verdana;font-size:8;"  &gt;Ever since 2002, Microsoft has not missed a single chance to tell how revolutionary, how reliable and how special the new Windows would be (dubbed Longhorn up to 2005).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span nd="3" style=";font-family:Verdana;font-size:8;"  &gt;However, under the pressure of time, competition and many other factors, some services have been eliminated; others have been rethought while others have not even been mentioned again.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span nd="4" style=";font-family:Verdana;font-size:8;"  &gt;The final result? An operating system whose hardware requirements are met only by half of the computers currently used in the &lt;st1:country-region st="on"&gt;&lt;st1:place nd="5" st="on"&gt;US&lt;/st1:place&gt;&lt;/st1:country-region&gt; (there’s no point mentioning the rest of the world), an OS which brings several significant transformations to what Windows has meant so far.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span nd="6" style=";font-family:Verdana;font-size:8;"  &gt;The first and most talked about change that Windows Vista brings is its new graphic interface, also known as Aero (those inclined toward sarcasm haven’t been able to refrain from commenting that Aero is inspired by Apple).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span nd="7" style=";font-family:Verdana;font-size:8;"  &gt;In order to support Aero, a PC must have at least 1GB of RAM and a video card of 256 MB RAM. Although the new interface is spectacular, it’s hard to believe that there will be a great number of companies or users willing to pay for it. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span nd="8" style=";font-family:Verdana;font-size:8;"  &gt;The interface is not the only major change though that Windows Vista brings. &lt;span&gt; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span nd="9" style=";font-family:Verdana;font-size:8;"  &gt;Windows vista is the first OS designed and created after Bill Gates’s famous e-mail, through which he was asking employees and colleagues to be especially careful about security. Thus the long, 5 year journey began, with this concept of trustworthy computing in mind; this weekend brought it nearer to its end.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span nd="10" style=";font-family:Verdana;font-size:8;"  &gt;Microsoft says Windows Vista is the safest operating system ever. The users’ login system management has been modified almost completely, applications no longer have easy access to Windows’ basic components and these are but few of the changes the &lt;st1:city st="on"&gt;&lt;st1:place nd="11" st="on"&gt;Redmond&lt;/st1:place&gt;&lt;/st1:city&gt; company has made. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span nd="12" style=";font-family:Verdana;font-size:8;"  &gt;Microsoft has wanted to lose its label of unsafe OS so badly, acquired through Windows 95 and Windows 98, that it invested heavily in security, purchasing companies and products and even starting a bit of a conflict with established producers such as McAfee and Symantec.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span nd="13" style=";font-family:Verdana;font-size:8;"  &gt;Nevertheless, from what has been shown so far, Windows Vista doesn’t get rid of the necessity to install an anti-virus, a firewall and even an antispyware program. That all this comes under the name of MicrosoftOneCare is a matter of personal taste, but users should not hold the wrong impression that, once Windows Vista installed, their security problems become history while their PCs become bona fide fortresses before hackers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span nd="14" style=";font-family:Verdana;font-size:8;"  &gt;Another function that Windows Vista hopes to seduce consumers with is a new search engine that those prone to sarcasm once again say is inspired by Apple. Due to pressure coming from Google, Microsoft has invested enormous sums of money not only in MSN Search, but also in the new Windows Live Search platform, and implicitly, in its sequel.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span nd="15" style=";font-family:Verdana;font-size:8;"  &gt;Despite the effort, the kind of search that Windows Vista is proposing is still inferior to that provided by Google Desktop Search, a free application offered by the Google company. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span nd="16" style=";font-family:Verdana;font-size:8;"  &gt;To conclude, Windows Vista is a sum of useful functions and updates that a 2006 OS would be expected to bring, but it doesn’t provide anything more than what Windows XP itself offers, for example.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span nd="17" style=";font-family:Verdana;font-size:8;"  &gt;The latter’s advantage is precisely the fact that it has been on the market for five years, and that in this time period all programs, both possible and impossible, have been designed and launched, programs which can control virtually any aspect, from graphic interface to an operating system’s security.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span nd="18" style=";font-family:Verdana;font-size:8;"  &gt;As it is, Gartner itself has not given Windows Vista much credit compared to Windows XP. The analysis company estimates that PCs running on &lt;st1:place nd="19" st="on"&gt;Vista&lt;/st1:place&gt; will not outnumber those running on XP before 2010.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span nd="20" style=";font-family:Verdana;font-size:8;"  &gt;Has Windows Vista arrived too late for Microsoft? Considering the hardware specs, the market is not prepared yet for such an OS, but analyzing things from the perspective of functions offered by &lt;st1:place nd="21" st="on"&gt;Vista&lt;/st1:place&gt;, there isn't a single one customers would crowd stores for. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span nd="22" style=";font-family:Verdana;font-size:8;"  &gt;Maybe it would have been safer for Microsoft to concentrate on a Windows XP SP3 now and launch Windows &lt;st1:place nd="23" st="on"&gt;Vista&lt;/st1:place&gt; at a later time. All these options are no longer unavailable unfortunately, and history can’t be changed. Microsoft has taken the &lt;st1:place nd="24" st="on"&gt;Vista&lt;/st1:place&gt; road: there’s no turning back and all that’s left for the company is to realize where it’s taking it.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;" class="MsoNormal"&gt;&lt;span nd="22" style=";font-family:Verdana;font-size:8;"  &gt;playfuls.com&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-4777047407629175686?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/4777047407629175686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=4777047407629175686' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/4777047407629175686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/4777047407629175686'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/microsoft-takes-windows-vista-road.html' title='Microsoft Takes the Windows Vista Road'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-3863424890477110270</id><published>2006-12-03T18:56:00.001+03:30</published><updated>2008-05-10T23:50:54.471+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>This is For You ;)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VpFdebajGYw/RXLtGGNeh0I/AAAAAAAAAAM/hTVrwWrEekg/s1600-h/funny+pic+being+frisked.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_VpFdebajGYw/RXLtGGNeh0I/AAAAAAAAAAM/hTVrwWrEekg/s400/funny+pic+being+frisked.jpg" alt="" id="BLOGGER_PHOTO_ID_5004322824964179778" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-3863424890477110270?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/3863424890477110270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=3863424890477110270' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/3863424890477110270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/3863424890477110270'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/this-is-for-you.html' title='This is For You ;)'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_VpFdebajGYw/RXLtGGNeh0I/AAAAAAAAAAM/hTVrwWrEekg/s72-c/funny+pic+being+frisked.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-8439467493670269761</id><published>2006-12-03T18:42:00.001+03:30</published><updated>2006-12-03T18:42:30.813+03:30</updated><title type='text'>Bye Bye awardspace</title><content type='html'>I am using award space currently. it is a free hosting service. so, it is not powerful. i want to redirect this address to &lt;a href="http://drahmanzadeh.blogspot.com"&gt;drahmanzadeh.blogspot.com&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-8439467493670269761?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/8439467493670269761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=8439467493670269761' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8439467493670269761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/8439467493670269761'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/bye-bye-awardspace.html' title='Bye Bye awardspace'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-4073873111559059234</id><published>2006-12-03T14:03:00.001+03:30</published><updated>2006-12-03T14:03:33.495+03:30</updated><title type='text'>ADSL after a long time</title><content type='html'>ADSL is available now in our region. I went to buy an ADSL line. But they said that we can't provide ADSL for your Phone Number that starts with 3 . I asked why? they answere: because local telephony doesn't let us to start.  &lt;br&gt;Technological Country=Iran&lt;br&gt;lol&lt;br clear="all"&gt;&lt;br&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-4073873111559059234?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/4073873111559059234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=4073873111559059234' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/4073873111559059234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/4073873111559059234'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/12/adsl-after-long-time.html' title='ADSL after a long time'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36406203.post-5682237189502956738</id><published>2006-12-01T10:46:00.001+03:30</published><updated>2006-12-01T10:46:29.509+03:30</updated><title type='text'>source of an Asp.net site available(asp.net source of devhood.com)</title><content type='html'>I have found the source of an &lt;a href="http://Asp.net"&gt;Asp.net&lt;/a&gt; site(&lt;a href="http://devhood.com"&gt;devhood.com&lt;/a&gt;) Today.&lt;br&gt;Extremely Amazing:&lt;br&gt;&lt;a href="http://www.devhood.com/view_source.aspx?source=/Default.aspx"&gt;http://www.devhood.com/view_source.aspx?source=/Default.aspx &lt;/a&gt;&lt;br clear="all"&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36406203-5682237189502956738?l=www.danrah.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.danrah.com/feeds/5682237189502956738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36406203&amp;postID=5682237189502956738' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5682237189502956738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36406203/posts/default/5682237189502956738'/><link rel='alternate' type='text/html' href='http://www.danrah.com/2006/11/source-of-aspnet-site-availableaspnet.html' title='source of an Asp.net site available(asp.net source of devhood.com)'/><author><name>Ozymandias</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
