<?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-2183752626731231445</id><updated>2011-11-06T18:27:07.200-08:00</updated><category term='mobile'/><category term='provisioning'/><category term='GPU'/><category term='WWDC'/><category term='file pointer'/><category term='C'/><category term='device'/><category term='GLU'/><category term='Apple'/><category term='date'/><category term='SIO2'/><category term='array'/><category term='presentation'/><category term='URL scheme'/><category term='OpenGL ES'/><category term='cross compiling'/><category term='Mac'/><category term='performance'/><category term='data sharing'/><category term='iOS'/><category term='static library'/><category term='sort'/><category term='computation'/><category term='Oolong'/><category term='n900'/><category term='camera'/><category term='lipo'/><category term='Memory Leak'/><category term='smartphone'/><category term='bit operation'/><category term='iCould'/><category term='random number'/><category term='maemo'/><category term='IEEE 754'/><category term='protected'/><category term='iPhone'/><category term='filestream'/><category term='emulator'/><category term='iGLU'/><category term='illustration'/><category term='code sign'/><category term='streamreader'/><category term='screenshot'/><category term='Intel'/><category term='Remote Zoom In'/><category term='universal binary'/><category term='Windows Mobile'/><category term='IEEE single precision'/><category term='interview question'/><category term='public'/><category term='ray tracing'/><category term='RealTime Rendering'/><category term='Xcode'/><category term='ARM'/><category term='Job Search'/><category term='static function'/><category term='string'/><category term='C++'/><category term='AR'/><category term='reminder'/><category term='overriding'/><category term='Organizer'/><category term='nokia'/><category term='PCPro'/><category term='opengl'/><category term='Objective-C'/><category term='overloading'/><category term='sizeof'/><category term='CUDA'/><category term='OpenCL'/><category term='Book'/><category term='Android'/><category term='gluTessellator'/><category term='touch'/><category term='paper'/><category term='memcpy'/><category term='math'/><category term='collada'/><category term='device id'/><category term='OSG'/><category term='translator'/><category term='Motorola'/><category term='3D model'/><category term='memmove'/><category term='overlay'/><category term='3D engine'/><category term='samsung'/><category term='Google'/><category term='private'/><category term='projector phone'/><category term='C#'/><category term='Instruments'/><category term='3D'/><category term='wireless'/><category term='gcc'/><category term='Anti-alising'/><category term='VS2005'/><category term='iPad'/><category term='Tessellator'/><category term='Thumb'/><category term='vfp'/><title type='text'>inside's Graphics and Mobile Programming Notes</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>inside</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>68</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2183752626731231445.post-5832569345365945171</id><published>2011-07-01T12:13:00.000-07:00</published><updated>2011-07-11T17:56:26.012-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xcode'/><title type='text'>Add non-admin users to Developer Tools group on Mac</title><content type='html'>&lt;span style="font-style:italic;"&gt;[Source: http://idtechnology.blogspot.com/2010/10/add-user-to-developer-tools-group.html]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To add a user to “Developer Tools” group: &lt;br /&gt;dseditgroup -o edit -u {admin_user} -t user -a {user_name} _developer&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-5832569345365945171?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/5832569345365945171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=5832569345365945171' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/5832569345365945171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/5832569345365945171'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2011/07/add-non-admin-users-to-developer-tools.html' title='Add non-admin users to Developer Tools group on Mac'/><author><name>inside</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-2183752626731231445.post-7207780682597070562</id><published>2011-06-07T14:54:00.000-07:00</published><updated>2011-06-07T14:56:43.892-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ray tracing'/><category scheme='http://www.blogger.com/atom/ns#' term='Intel'/><title type='text'>Ray Traced Games in the Cloud using MIC</title><content type='html'>&lt;a href="http://blogs.intel.com/research/2011/02/ray_traced_games_in_the_cloud.php"&gt;Ray Traced Games in the Cloud using MIC&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-7207780682597070562?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/7207780682597070562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=7207780682597070562' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/7207780682597070562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/7207780682597070562'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2011/06/ray-traced-games-in-cloud-using-mic.html' title='Ray Traced Games in the Cloud using MIC'/><author><name>inside</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-2183752626731231445.post-6311236807344578720</id><published>2011-06-07T06:22:00.001-07:00</published><updated>2011-06-07T06:22:26.837-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WWDC'/><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='iCould'/><title type='text'>Steve Jobs talks iOS 5 at WWDC 2011</title><content type='html'>&lt;a href="http://www.linkedin.com/news?actionBar=&amp;articleID=560757559&amp;ids=0PdPcSdjwNdzkIejkRdPkTc3oRb38Uc3AVe34SdiMTdP0Nd3sUdjkIe38TejsQczoR&amp;aag=true&amp;freq=weekly&amp;trk=eml-tod-b-ttle-4"&gt;WWDC 2011 liveblog: Steve Jobs talks iOS 5, OS X Lion, iCloud and more&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-6311236807344578720?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/6311236807344578720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=6311236807344578720' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/6311236807344578720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/6311236807344578720'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2011/06/steve-jobs-talks-ios-5-at-wwdc-2011.html' title='Steve Jobs talks iOS 5 at WWDC 2011'/><author><name>inside</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-2183752626731231445.post-6029923181821593635</id><published>2011-01-08T22:59:00.000-08:00</published><updated>2011-01-08T23:03:14.242-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bit operation'/><title type='text'>Bit Operation #9</title><content type='html'>Print out &lt;span style="font-weight:bold;"&gt;odd numbers&lt;/span&gt; from 1 to 100&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; font-size: 12px; overflow: auto; width: 96.17%; color: rgb(0, 0, 0); line-height: 14px; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; height: 200px; background-color: rgb(238, 238, 238);"&gt;&lt;code&gt;&lt;br /&gt;void printOddNumber()&lt;br /&gt;{&lt;br /&gt;    for (int i = 1; i &lt;= 100; ++i)&lt;br /&gt;    {&lt;br /&gt;        if (i &amp; 0x01)&lt;br /&gt;            cout &lt;&lt; i &lt;&lt; \n;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-6029923181821593635?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/6029923181821593635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=6029923181821593635' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/6029923181821593635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/6029923181821593635'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2011/01/bit-operation-9.html' title='Bit Operation #9'/><author><name>inside</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-2183752626731231445.post-6388875692954645208</id><published>2011-01-08T22:28:00.001-08:00</published><updated>2011-01-08T22:37:28.609-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bit operation'/><title type='text'>Bit Operation #8</title><content type='html'>&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; font-size: 12px; overflow: auto; width: 96.17%; color: rgb(0, 0, 0); line-height: 14px; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; height: 200px; background-color: rgb(238, 238, 238);"&gt;&lt;code&gt;&lt;br /&gt;100000&lt;br /&gt;100000&lt;br /&gt;------&lt;br /&gt;011111&lt;br /&gt;&lt;br /&gt;000000&lt;br /&gt;000000&lt;br /&gt;------&lt;br /&gt;000000&lt;br /&gt;&lt;br /&gt;100000&lt;br /&gt;000000&lt;br /&gt;------&lt;br /&gt;000000&lt;br /&gt;&lt;br /&gt;000100&lt;br /&gt;000100&lt;br /&gt;------&lt;br /&gt;111011&lt;br /&gt;&lt;br /&gt;100100&lt;br /&gt;100100&lt;br /&gt;------&lt;br /&gt;011011&lt;br /&gt;&lt;br /&gt;100100&lt;br /&gt;000100&lt;br /&gt;------&lt;br /&gt;111011&lt;br /&gt;&lt;br /&gt;010101&lt;br /&gt;101010&lt;br /&gt;------&lt;br /&gt;000000&lt;br /&gt;&lt;br /&gt;111111&lt;br /&gt;111111&lt;br /&gt;------&lt;br /&gt;000000&lt;br /&gt;&lt;br /&gt;// A function using bitwise operators for above results. &lt;br /&gt;unsigned int f(unsigned int a, unsigned int b)&lt;br /&gt;{&lt;br /&gt;    if (a &amp; b)&lt;br /&gt;    {&lt;br /&gt;        return ~(a &amp; b); &lt;br /&gt;    }&lt;br /&gt;    return 0;&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-6388875692954645208?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/6388875692954645208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=6388875692954645208' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/6388875692954645208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/6388875692954645208'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2011/01/bit-operation-8.html' title='Bit Operation #8'/><author><name>inside</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-2183752626731231445.post-5870970203062689470</id><published>2011-01-08T22:12:00.000-08:00</published><updated>2011-01-08T23:03:33.953-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bit operation'/><title type='text'>Bit Operation #7</title><content type='html'>Find the &lt;span style="font-weight:bold;"&gt;largest possible integer&lt;/span&gt; &lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; font-size: 12px; overflow: auto; width: 96.17%; color: rgb(0, 0, 0); line-height: 14px; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; height: 200px; background-color: rgb(238, 238, 238);"&gt;&lt;code&gt;&lt;br /&gt;int largestInt()&lt;br /&gt;{&lt;br /&gt;    return ~0;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-5870970203062689470?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/5870970203062689470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=5870970203062689470' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/5870970203062689470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/5870970203062689470'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2011/01/bit-operation-7.html' title='Bit Operation #7'/><author><name>inside</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-2183752626731231445.post-3861114422213289533</id><published>2011-01-08T00:14:00.000-08:00</published><updated>2011-01-08T00:31:35.255-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bit operation'/><title type='text'>Bit Operation #6</title><content type='html'>Extract &lt;span style="font-weight:bold;"&gt;a single bit from a character&lt;/span&gt;.&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; font-size: 12px; overflow: auto; width: 96.17%; color: rgb(0, 0, 0); line-height: 14px; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; height: 200px; background-color: rgb(238, 238, 238);"&gt;&lt;code&gt;&lt;br /&gt;int extractBit(char byte, unsigned int pos) &lt;br /&gt;{&lt;br /&gt;    assert(pos &lt; 8);&lt;br /&gt;&lt;br /&gt;    return ((byte &gt;&gt; pos) &amp; 1);&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Extract &lt;span style="font-weight:bold;"&gt;a range of bits from a character&lt;/span&gt;.&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; font-size: 12px; overflow: auto; width: 96.17%; color: rgb(0, 0, 0); line-height: 14px; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; height: 200px; background-color: rgb(238, 238, 238);"&gt;&lt;code&gt;&lt;br /&gt;char extractBitRange(char byte, unsigned int startPos, unsigned int offset) &lt;br /&gt;{&lt;br /&gt;   assert((startPos + offset) &lt; 8);&lt;br /&gt;   return (byte &gt;&gt; startPos) &amp; ~(0xfe &lt;&lt; offset);&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-3861114422213289533?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/3861114422213289533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=3861114422213289533' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/3861114422213289533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/3861114422213289533'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2011/01/bit-operation-6.html' title='Bit Operation #6'/><author><name>inside</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-2183752626731231445.post-8269601188940686729</id><published>2011-01-07T23:35:00.000-08:00</published><updated>2011-01-08T22:55:23.812-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bit operation'/><title type='text'>Bit Operation #5</title><content type='html'>How can we &lt;span style="font-weight:bold;"&gt;check whether a particular bit&lt;/span&gt; is ON (1) or OFF (0)?&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; font-size: 12px; overflow: auto; width: 96.17%; color: rgb(0, 0, 0); line-height: 14px; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; height: 200px; background-color: rgb(238, 238, 238);"&gt;&lt;code&gt;&lt;br /&gt;bool checkBitOn(unsigned int num, unsigned int i)&lt;br /&gt;{&lt;br /&gt;   return (num &amp;amp; (1 &lt;&lt; i));&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt; &lt;br /&gt;&lt;br /&gt;How can we &lt;span style="font-weight:bold;"&gt;turn OFF a particular bit&lt;/span&gt; in a number?&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; font-size: 12px; overflow: auto; width: 96.17%; color: rgb(0, 0, 0); line-height: 14px; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; height: 200px; background-color: rgb(238, 238, 238);"&gt;&lt;code&gt;&lt;br /&gt;unsigned int turnBitOff(unsigned int num, unsigned int i)&lt;br /&gt;{&lt;br /&gt;    return (num &amp;amp; (~(1 &lt;&lt; i)));&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt; &lt;br /&gt;For example, num = 00010111 and i = 4. (1&lt;&lt;4)==00010000 and ~(1&lt;&lt;4)==11101111. Hence, num&amp;amp;(~(1&lt;&lt;4))==00010111 &amp;amp; 11101111==00000111.&lt;br /&gt;&lt;br /&gt;Then, how can we &lt;span style="font-weight:bold;"&gt;turn ON a particular bit&lt;/span&gt; in a number?&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; font-size: 12px; overflow: auto; width: 96.17%; color: rgb(0, 0, 0); line-height: 14px; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; height: 200px; background-color: rgb(238, 238, 238);"&gt;&lt;code&gt;&lt;br /&gt;unsigned int turnBitOn(unsigned int num, unsigned int i)&lt;br /&gt;{&lt;br /&gt;    return (num | (1 &lt;&lt; i));&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-8269601188940686729?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/8269601188940686729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=8269601188940686729' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/8269601188940686729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/8269601188940686729'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2011/01/bit-operation-5.html' title='Bit Operation #5'/><author><name>inside</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-2183752626731231445.post-3085809450563588607</id><published>2011-01-07T23:14:00.000-08:00</published><updated>2011-01-07T23:31:32.256-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bit operation'/><title type='text'>Bit Operation #4</title><content type='html'>Let's think about how we can &lt;span style="font-weight:bold;"&gt;count the bit set to 1 in an integer&lt;/span&gt;?&lt;br /&gt;&lt;pre style="BORDER-RIGHT: rgb(153,153,153) 1px dashed; PADDING-RIGHT: 5px; BORDER-TOP: rgb(153,153,153) 1px dashed; PADDING-LEFT: 5px; FONT-SIZE: 12px; PADDING-BOTTOM: 5px; OVERFLOW: auto; BORDER-LEFT: rgb(153,153,153) 1px dashed; WIDTH: 96.17%; COLOR: rgb(0,0,0); LINE-HEIGHT: 14px; PADDING-TOP: 5px; BORDER-BOTTOM: rgb(153,153,153) 1px dashed; FONT-FAMILY: Andale Mono,Lucida Console,Monaco,fixed,monospace; HEIGHT: 200px; BACKGROUND-COLOR: rgb(238,238,238)"&gt; &lt;br /&gt;&lt;code&gt;&lt;br /&gt;int bitCount(unsigned int a)&lt;br /&gt;{&lt;br /&gt;    int count = 0;&lt;br /&gt;    while (a != 0)&lt;br /&gt;    {&lt;br /&gt;        count += a &amp; 0x01;&lt;br /&gt;        a &gt;&gt;= 1;&lt;br /&gt;    }&lt;br /&gt;    return count;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt; Then, how can we optimize the process to work with several integers?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-3085809450563588607?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/3085809450563588607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=3085809450563588607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/3085809450563588607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/3085809450563588607'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2011/01/bit-operation-4.html' title='Bit Operation #4'/><author><name>inside</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-2183752626731231445.post-2630232363456710099</id><published>2011-01-06T21:30:00.000-08:00</published><updated>2011-01-07T23:33:19.794-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bit operation'/><title type='text'>Bit Operation #3</title><content type='html'>Input parameter a is a 4 bits integer (e.g., "1100" or "1000").&lt;br /&gt;&lt;pre style="BORDER-RIGHT: rgb(153,153,153) 1px dashed; PADDING-RIGHT: 5px; BORDER-TOP: rgb(153,153,153) 1px dashed; PADDING-LEFT: 5px; FONT-SIZE: 12px; PADDING-BOTTOM: 5px; OVERFLOW: auto; BORDER-LEFT: rgb(153,153,153) 1px dashed; WIDTH: 96.17%; COLOR: rgb(0,0,0); LINE-HEIGHT: 14px; PADDING-TOP: 5px; BORDER-BOTTOM: rgb(153,153,153) 1px dashed; FONT-FAMILY: Andale Mono,Lucida Console,Monaco,fixed,monospace; HEIGHT: 200px; BACKGROUND-COLOR: rgb(238,238,238)"&gt;&lt;code&gt;&lt;br /&gt;int f(int a)&lt;br /&gt;{&lt;br /&gt;    int b = 0;&lt;br /&gt;    while (a &gt;&gt;= 1)&lt;br /&gt;    {&lt;br /&gt;       b++;&lt;br /&gt;    }&lt;br /&gt;    return b;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt; &lt;br&gt;&lt;br /&gt;case1&gt; 1100 (b==0)-&gt;0110 (b==1)-&gt;0011 (b==2)-&gt;0001 (b==3)-&gt;0000 : return 3&lt;br /&gt;case 2&gt; 1000 (b==0)-&gt;0100 (b==1)-&gt;0010 (b==2)-&gt;0001 (b==3)-&gt;0000 : return 3&lt;br /&gt;&lt;br /&gt;This function &lt;span style="font-weight: bold;"&gt;returns the position of the leftmost '1' bit&lt;/span&gt; in input a.&lt;br /&gt;&lt;br /&gt;Now, let's consider when 'while' statement can be infinite. Zero, with no non-zero bit, returns 0. &lt;span style="color: rgb(255, 0, 0);"&gt;A negative number throws the computer into an infinite loop.&lt;/span&gt; See below.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Signed 4bits integer&lt;/span&gt;&lt;br /&gt;+7 : 0111&lt;br /&gt;+6 : 0110&lt;br /&gt;+5 : 0101&lt;br /&gt;+4 : 0100&lt;br /&gt;+3 : 0011&lt;br /&gt;+2: 0010&lt;br /&gt;+1 : 0001&lt;br /&gt;+0: 0000&lt;br /&gt; 0 : n/a&lt;br /&gt;-0 : 1111&lt;br /&gt;-1 : 1000&lt;br /&gt;-2 : 1001&lt;br /&gt;-3 : 1011&lt;br /&gt;-4 : 1100&lt;br /&gt;-5 : 1101&lt;br /&gt;-6 : 1110&lt;br /&gt;-7 : 1111&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Unsigned 4 bits integer&lt;/span&gt;&lt;br /&gt;+15 : 1111&lt;br /&gt;:&lt;br /&gt;+7 : 0111&lt;br /&gt;:&lt;br /&gt;+1 : 0001&lt;br /&gt;+0 : n/a&lt;br /&gt; 0 : 0000&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-2630232363456710099?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/2630232363456710099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=2630232363456710099' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/2630232363456710099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/2630232363456710099'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2011/01/bit-operation-3.html' title='Bit Operation #3'/><author><name>inside</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-2183752626731231445.post-66297797850421979</id><published>2011-01-06T20:52:00.000-08:00</published><updated>2011-01-07T23:34:19.740-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bit operation'/><title type='text'>Bit Operation #2</title><content type='html'>Let's think about simple examples again.&lt;br /&gt;&lt;br /&gt;Input: 4 bits integer x (e.g., 1010)&lt;br /&gt;&lt;pre style="BORDER-RIGHT: rgb(153,153,153) 1px dashed; PADDING-RIGHT: 5px; BORDER-TOP: rgb(153,153,153) 1px dashed; PADDING-LEFT: 5px; FONT-SIZE: 12px; PADDING-BOTTOM: 5px; OVERFLOW: auto; BORDER-LEFT: rgb(153,153,153) 1px dashed; WIDTH: 96.17%; COLOR: rgb(0,0,0); LINE-HEIGHT: 14px; PADDING-TOP: 5px; BORDER-BOTTOM: rgb(153,153,153) 1px dashed; FONT-FAMILY: Andale Mono,Lucida Console,Monaco,fixed,monospace; HEIGHT: 200px; BACKGROUND-COLOR: rgb(238,238,238)"&gt;&lt;br /&gt;int f(unsigned int x)&lt;br /&gt;{&lt;br /&gt;    return !(x &amp;amp; (x-1));&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt; We know that (x &amp;amp; (x-1)) operation erases the rightmost 1 bit in x. Now, consider &lt;span style="color: rgb(255, 0, 0);"&gt;an integer that is a power of two has exactly one bit that is '1'.&lt;/span&gt; Hence, if x contains only one bit that is '1', (x &amp;amp; (x-1)) will be zero (0000). After applying 'logical not' operation (!), a value of 0 becomes 1 and a value other than 0 becomes 0.&lt;br /&gt;&lt;br /&gt;Therefore, this function &lt;span style="font-weight: bold;"&gt;returns whether an integer is a power of two.&lt;/span&gt; Consider one case where the input x is zero (0000). Then, this function returns 1 saying x is a power of two although zero is not a power of two. Hence, we have to modify this function as below.&lt;br /&gt;&lt;pre style="BORDER-RIGHT: rgb(153,153,153) 1px dashed; PADDING-RIGHT: 5px; BORDER-TOP: rgb(153,153,153) 1px dashed; PADDING-LEFT: 5px; FONT-SIZE: 12px; PADDING-BOTTOM: 5px; OVERFLOW: auto; BORDER-LEFT: rgb(153,153,153) 1px dashed; WIDTH: 96.17%; COLOR: rgb(0,0,0); LINE-HEIGHT: 14px; PADDING-TOP: 5px; BORDER-BOTTOM: rgb(153,153,153) 1px dashed; FONT-FAMILY: Andale Mono,Lucida Console,Monaco,fixed,monospace; HEIGHT: 200px; BACKGROUND-COLOR: rgb(238,238,238)"&gt;&lt;code&gt;&lt;br /&gt;int f(unsigned int x)&lt;br /&gt;{&lt;br /&gt;    return x &amp;amp;&amp;amp; !(x &amp;amp; (x-1));&lt;br /&gt;    // same to (x != 0) &amp;amp;&amp;amp; !(x &amp;amp; (x-1));&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-66297797850421979?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/66297797850421979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=66297797850421979' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/66297797850421979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/66297797850421979'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2011/01/bit-operation-2.html' title='Bit Operation #2'/><author><name>inside</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-2183752626731231445.post-5591587914008489944</id><published>2011-01-06T20:03:00.000-08:00</published><updated>2011-01-07T23:35:20.307-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bit operation'/><title type='text'>Bit Operation #1</title><content type='html'>Bit operation is very often asked in job interviews and can be very tricky. Here, I am going to brush up bit operation problems that can be expected in my future job interviews.&lt;br /&gt;&lt;br /&gt;Input: 4 bits integer x (e.g., 1010)&lt;br /&gt;&lt;pre style="BORDER-RIGHT: rgb(153,153,153) 1px dashed; PADDING-RIGHT: 5px; BORDER-TOP: rgb(153,153,153) 1px dashed; PADDING-LEFT: 5px; FONT-SIZE: 12px; PADDING-BOTTOM: 5px; OVERFLOW: auto; BORDER-LEFT: rgb(153,153,153) 1px dashed; WIDTH: 96.17%; COLOR: rgb(0,0,0); LINE-HEIGHT: 14px; PADDING-TOP: 5px; BORDER-BOTTOM: rgb(153,153,153) 1px dashed; FONT-FAMILY: Andale Mono,Lucida Console,Monaco,fixed,monospace; HEIGHT: 200px; BACKGROUND-COLOR: rgb(238,238,238)"&gt;&lt;code&gt;&lt;br /&gt;int f(unsigned int x)&lt;br /&gt;{&lt;br /&gt;    int a = 0;&lt;br /&gt;    while (x != 0)&lt;br /&gt;    {&lt;br /&gt;        x = x &amp;amp; (x-1);&lt;br /&gt;        ++a;&lt;br /&gt;    }&lt;br /&gt;    return a;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt; Let's think of what (x-1) is in the case of x = 1010. (x-1) is 1001 because the rightmost bit of 1 in x is changed to 0 and all 0 bits to the right are changed to 1. Look at this details.&lt;br /&gt;1  0  1  0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;|&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;v&amp;nbsp;&amp;nbsp;v&lt;br /&gt;1  0  0  1&lt;br /&gt;&lt;br /&gt;We can easily get the result after applying &amp;amp; operation for x and (x-1).&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1  0  1  0&lt;br /&gt;&amp;amp;&amp;nbsp;1  0  0  1&lt;br /&gt; -----------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1  0  0  0&lt;br /&gt;&lt;br /&gt;Hence, the result of &amp;amp; operation in while statement shows that the rightmost 1 bit of x turns to 0. Finally, if we do this operation until x become zero (0000), the variable 'a' will &lt;span style="font-weight: bold;"&gt;count the number of 1 bit in x&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-5591587914008489944?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/5591587914008489944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=5591587914008489944' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/5591587914008489944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/5591587914008489944'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2011/01/bit-operation-1.html' title='Bit Operation #1'/><author><name>inside</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-2183752626731231445.post-7598814896897438625</id><published>2010-08-26T07:38:00.000-07:00</published><updated>2010-08-26T07:39:38.809-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='iPad'/><title type='text'>Converting iPhone apps to iPad</title><content type='html'>&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/RY-btZ-KjX0?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/RY-btZ-KjX0?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&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/2183752626731231445-7598814896897438625?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/7598814896897438625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=7598814896897438625' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/7598814896897438625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/7598814896897438625'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2010/08/conversion-from-iphone-app-to-ipad-app.html' title='Converting iPhone apps to iPad'/><author><name>inside</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-2183752626731231445.post-134277139117359743</id><published>2010-07-01T17:53:00.000-07:00</published><updated>2010-07-06T17:08:48.664-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tessellator'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='GLU'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL ES'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><category scheme='http://www.blogger.com/atom/ns#' term='gluTessellator'/><category scheme='http://www.blogger.com/atom/ns#' term='iGLU'/><title type='text'>OpenGL and OpenGL ES Tessellator</title><content type='html'>&lt;a href="http://glprogramming.com/red/chapter11.html"&gt;Tessellators and Quadrics&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.flipcode.com/archives/Polygon_Tessellation_In_OpenGL.shtml"&gt;Polygon Tessellation In OpenGL&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.songho.ca/opengl/gl_tessellation.html"&gt;OpenGL Tessellation&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/glues/"&gt;GLU ES for OpenGL ES 1.x (for Win32)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/iphone-glu/"&gt;iGLU: GLU for OpenGL ES 1.1 (for iPhone)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.idevgames.com/forum/showthread.php?t=17493"&gt;gluTessellator on iPhone&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-134277139117359743?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/134277139117359743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=134277139117359743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/134277139117359743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/134277139117359743'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2010/07/tessellator.html' title='OpenGL and OpenGL ES Tessellator'/><author><name>inside</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-2183752626731231445.post-5226592068413695856</id><published>2010-07-01T17:44:00.000-07:00</published><updated>2010-07-01T17:45:36.433-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='Anti-alising'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>Anti-aliased line with Texture</title><content type='html'>&lt;a href="http://answers.oreilly.com/topic/1669-how-to-render-anti-aliased-lines-with-textures-in-ios-4/"&gt;How to Render Anti-Aliased Lines with Textures in iOS 4&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-5226592068413695856?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/5226592068413695856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=5226592068413695856' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/5226592068413695856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/5226592068413695856'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2010/07/anti-aliased-line-with-texture.html' title='Anti-aliased line with Texture'/><author><name>inside</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-2183752626731231445.post-749019430115875699</id><published>2010-05-05T08:21:00.001-07:00</published><updated>2010-05-05T08:42:01.252-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data sharing'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='URL scheme'/><title type='text'>Sharing custom data between two iPhone applications</title><content type='html'>In my iPhone application work, recently one issue came up. It is separating an iPhone application that I am developing into two applications while sharing custom data (i.e., images and text files) between two applications. So, I googled several forums with this issue. Here is my findings. &lt;br /&gt;&lt;br /&gt;1) Using a server as a storage&lt;br /&gt;2) Using a URL scheme&lt;br /&gt;3) Using the pasteborad (UIPasteboard)&lt;br /&gt;3) Using an "Address book" area&lt;br /&gt;&lt;br /&gt;None of these was appropriate for my project where I need to share several images (1600x1200) and text files on a device without connection to a server. So, at this moment, I conclude that there is no way to share custom data between two iPhone applications. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://iphonedevelopertips.com/cocoa/launching-other-apps-within-an-iphone-application.html"&gt;[Reference 1]&lt;/a&gt;  &lt;a href="http://stackoverflow.com/questions/2091912/data-share-between-two-iphone-apps"&gt;[Reference 2]&lt;/a&gt;  &lt;a href="http://www.iphonedevsdk.com/forum/iphone-sdk-development/21099-sharing-data-between-applications.html"&gt;[Reference 3]&lt;/a&gt;  &lt;a href="http://www.iphonedevsdk.com/forum/iphone-sdk-development/13813-can-lite-paid-apps-share-user-data.html"&gt;[Reference 4]&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-749019430115875699?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/749019430115875699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=749019430115875699' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/749019430115875699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/749019430115875699'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2010/05/sharing-custom-data-between-two-iphone.html' title='Sharing custom data between two iPhone applications'/><author><name>inside</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-2183752626731231445.post-872585017586862683</id><published>2010-04-29T08:44:00.000-07:00</published><updated>2010-04-29T08:57:33.800-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='code sign'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Xcode'/><category scheme='http://www.blogger.com/atom/ns#' term='provisioning'/><title type='text'>Code Sign Error after reinstalling provisioning profile</title><content type='html'>Sometimes Xcode project file easily gets messed up. For example, when I try to rebuild my application that worked well with my previous provisioning file yesterday, however I reinstall my provisioning file today. In this case, following error message can be show up; &lt;br /&gt;&lt;br /&gt;"Code Sign Error: Provisioning Profile (long string) can't be found."&lt;br /&gt;&lt;br /&gt;Here is an easy solution. &lt;br /&gt;&lt;br /&gt;1) Open the project file in a text editor:&lt;br /&gt;The .xcodeproj file is actually not a file but a directory, like an application bundle. So, you can right click it in Finder to open. Then, select "package contents". Now, you will see several files. The actual project file is "project.pbxproj". Open it in a text editor. &lt;br /&gt;&lt;br /&gt;2) Search provisioning profile setting and manually erase the lines. Save the project file:&lt;br /&gt;They will look like these;&lt;br /&gt;PROVISIONING_PROFILE = "xxxxxx.....xxxxx";&lt;br /&gt;"PROVISIONING_PROFILE[sdk=iphoneos*]" = "xxxxxx.....xxxxx";&lt;br /&gt;&lt;br /&gt;3) Reopen the project in Xcode and go to the settings to reselect your new provisioning profile.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-872585017586862683?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/872585017586862683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=872585017586862683' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/872585017586862683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/872585017586862683'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2010/04/code-sign-error-after-reinstalling.html' title='Code Sign Error after reinstalling provisioning profile'/><author><name>inside</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-2183752626731231445.post-6504789692895549073</id><published>2010-04-22T17:46:00.000-07:00</published><updated>2010-04-22T17:47:55.617-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>Android on the iPhone</title><content type='html'>&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/5yO2KQHkt4A&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/5yO2KQHkt4A&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://graphite.sandslott.org:4080/pub/idroid/idroid-release-0.1a.tar.bz"&gt;Refer this blog&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-6504789692895549073?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/6504789692895549073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=6504789692895549073' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/6504789692895549073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/6504789692895549073'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2010/04/android-on-iphone.html' title='Android on the iPhone'/><author><name>inside</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-2183752626731231445.post-4293292127312005420</id><published>2010-04-19T11:14:00.000-07:00</published><updated>2010-04-19T12:20:27.990-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='overlay'/><category scheme='http://www.blogger.com/atom/ns#' term='camera'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>Using camera in your iPhone Application</title><content type='html'>Here are some of cool stuffs that can be referred for iPhone application development using build-in camera. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.musicalgeometry.com/archives/821"&gt;1. iPhone Camera Overlay App With Custom Button Example&lt;/a&gt;&lt;br /&gt;&lt;a href="http://techzone.enterra-inc.com/custom-camera-applications-development-using-iphone-sdk/"&gt;2. Custom camera applications development using iPhone SDK&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.codza.com/custom-uiimagepickercontroller-camera-view"&gt;3. Custom UIImagePickerController camera view&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-4293292127312005420?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/4293292127312005420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=4293292127312005420' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/4293292127312005420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/4293292127312005420'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2010/04/using-camera-in-your-iphone-application.html' title='Using camera in your iPhone Application'/><author><name>inside</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-2183752626731231445.post-351820964283992406</id><published>2010-04-07T09:43:00.000-07:00</published><updated>2010-04-13T13:35:58.435-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D model'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Objective-C'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL ES'/><category scheme='http://www.blogger.com/atom/ns#' term='OSG'/><category scheme='http://www.blogger.com/atom/ns#' term='collada'/><title type='text'>Using 3D models on iPhone</title><content type='html'>&lt;a href="http://www.daubit-blog.org/2009/07/iphone-sdk-mesh-collada-import/"&gt;iPhone SDK mesh COLLADA import&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.openscenegraph.org/projects/osg/wiki/Community/OpenGL-ES"&gt;OSG new release supporting OpenGL ES&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="www.hogbox.co.uk/data/OpenSceneGraph_IPhoneChanges.zip "&gt;OSG on iPhone&lt;/a&gt;&lt;br /&gt;OSG for iPhone support isn't still released (by Robert Osfield, Mar 1st 2010). But, we can try to use above changes by Thomas Holgarth.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-351820964283992406?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/351820964283992406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=351820964283992406' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/351820964283992406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/351820964283992406'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2010/04/using-3d-models-on-iphone.html' title='Using 3D models on iPhone'/><author><name>inside</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-2183752626731231445.post-7262257938783250338</id><published>2010-04-06T14:01:00.000-07:00</published><updated>2010-04-19T10:20:33.426-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='3D engine'/><category scheme='http://www.blogger.com/atom/ns#' term='SIO2'/><category scheme='http://www.blogger.com/atom/ns#' term='Oolong'/><title type='text'>3D Game Engines for iPhone</title><content type='html'>&lt;a href="http://code.google.com/p/oolongengine/"&gt;&lt;span style="font-weight:bold;"&gt;Oolong Engine2.0&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.neverreadpassively.com/2009/04/oolong-engine-for-iphone-first-look.html"&gt;1) Oolong Engine for the iPhone: A First Look&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.blumtnwerx.com/blog/2009/04/xcode-workspace-setup-for-oolong/"&gt;2) Xcode Workspace Setup for Oolong&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sio2interactive.com"&gt;&lt;span style="font-weight:bold;"&gt;SIO2&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.neverreadpassively.com/2009/03/review-of-iphone-3d-engines.html"&gt;&lt;span style="font-weight:bold;"&gt;Review of iphone 3d engines&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-7262257938783250338?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/7262257938783250338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=7262257938783250338' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/7262257938783250338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/7262257938783250338'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2010/04/3d-engines-for-iphone.html' title='3D Game Engines for iPhone'/><author><name>inside</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-2183752626731231445.post-8649014524926638072</id><published>2010-04-06T13:18:00.000-07:00</published><updated>2010-04-06T13:20:03.988-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ARM'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='Thumb'/><title type='text'>ARM processor</title><content type='html'>&lt;a href="http://www.arm.com/products/processors/technologies/instruction-set-architectures.php"&gt;ARM instruction Set Architecture&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-8649014524926638072?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/8649014524926638072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=8649014524926638072' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/8649014524926638072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/8649014524926638072'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2010/04/arm-processor.html' title='ARM processor'/><author><name>inside</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-2183752626731231445.post-1847220927219500049</id><published>2010-04-06T13:16:00.000-07:00</published><updated>2010-04-06T13:56:37.235-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='Thumb'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='vfp'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><title type='text'>iPhone App's Performance</title><content type='html'>&lt;a href="http://gamesfromwithin.com/break-that-thumb-for-best-iphone-performance"&gt;Break That Thumb For Best iPhone Performance&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://gamesfromwithin.com/gdc-austin-2009-squeezing-every-drop-of-performance-out-of-the-iphone"&gt;GDC Austin 2009: Squeezing Every Drop Of Performance Out Of The iPhone&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/vfpmathlibrary/source/checkout"&gt;vfp math library for iPhone&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-1847220927219500049?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/1847220927219500049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=1847220927219500049' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/1847220927219500049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/1847220927219500049'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2010/04/iphone-apps-performance.html' title='iPhone App&apos;s Performance'/><author><name>inside</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-2183752626731231445.post-8160268137355727971</id><published>2010-04-02T13:21:00.000-07:00</published><updated>2010-04-02T13:22:15.936-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AR'/><title type='text'>Augmented Reality (AR) brings Dibidogs alive in 3D</title><content type='html'>&lt;a href="http://www.vtt.fi/news/2010/03252010.jsp?lang=en"&gt;Dibidogs alive in 3D&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-8160268137355727971?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/8160268137355727971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=8160268137355727971' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/8160268137355727971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/8160268137355727971'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2010/04/augmented-reality-ar-brings-dibidogs.html' title='Augmented Reality (AR) brings Dibidogs alive in 3D'/><author><name>inside</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-2183752626731231445.post-3623822084729228276</id><published>2010-02-24T11:46:00.000-08:00</published><updated>2010-02-24T11:50:52.114-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='protected'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='public'/><category scheme='http://www.blogger.com/atom/ns#' term='private'/><title type='text'>Public vs. Private vs. Protected</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Public &lt;/span&gt;members can be accessed by any function in the program.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Private &lt;/span&gt;members can only be accessed by other functions within the class.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Protected &lt;/span&gt;members is accessible to members of classes that inherit from the class in addition to the class itself and any friends&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-3623822084729228276?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/3623822084729228276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=3623822084729228276' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/3623822084729228276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/3623822084729228276'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2010/02/public-vs-private-vs-protected.html' title='Public vs. Private vs. Protected'/><author><name>inside</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-2183752626731231445.post-9071521902254204334</id><published>2010-02-24T11:42:00.000-08:00</published><updated>2010-02-24T11:45:18.842-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='overloading'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='overriding'/><title type='text'>Overloading vs. Overriding</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Overloading&lt;/span&gt; is when you define two methods with the same name, in the same class, distinguished by their parameters.&lt;br /&gt;-&gt; Overloading is resolved at compile time. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Overriding&lt;/span&gt; is when you redefine a method that has already been defined in a parent class (using the exact same parameters).&lt;br /&gt;-&gt; Overriding is resolved at runtime (based on the type of the implicit first parameter).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-9071521902254204334?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/9071521902254204334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=9071521902254204334' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/9071521902254204334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/9071521902254204334'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2010/02/overloading-vs-overriding.html' title='Overloading vs. Overriding'/><author><name>inside</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-2183752626731231445.post-4555413645002042444</id><published>2010-02-18T22:40:00.000-08:00</published><updated>2010-02-18T22:42:37.383-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='translator'/><category scheme='http://www.blogger.com/atom/ns#' term='smartphone'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google developing a translator</title><content type='html'>Wow! It will be very useful if it can really instantly translate during phone calls. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.physorg.com/news184916311.html"&gt;Google developing a translator for smartphones&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-4555413645002042444?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/4555413645002042444/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=4555413645002042444' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/4555413645002042444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/4555413645002042444'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2010/02/google-developing-translator.html' title='Google developing a translator'/><author><name>inside</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-2183752626731231445.post-6871785681017401087</id><published>2010-02-17T21:24:00.000-08:00</published><updated>2010-02-17T21:29:27.400-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><title type='text'>OpenGL Tutorials</title><content type='html'>&lt;a href="http://www.songho.ca/opengl/"&gt;1. Opengl Tutorial&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://playcontrol.net/ewing/jibberjabber/opengl_vertex_buffer_object.html"&gt;2. OpenGL Vertex Buffer Object (VBO): Simple Tutorial&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-6871785681017401087?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/6871785681017401087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=6871785681017401087' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/6871785681017401087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/6871785681017401087'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2010/02/opengl-tutorials.html' title='OpenGL Tutorials'/><author><name>inside</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-2183752626731231445.post-778893007475831440</id><published>2010-02-17T11:51:00.001-08:00</published><updated>2010-02-17T11:51:55.512-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='static function'/><title type='text'>C++ Static Functions</title><content type='html'>&lt;span style="font-weight:bold;"&gt;C++ Static Functions&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Static member functions have a class scope and they do not have access to the 'this' pointer of the class. When a member is declared as static, a static member of class, it has only one data for the entire class even though there are many objects created forthe class. The main usage of static function is when the programmer wants to have a function which is accessible even when the class is not instantiated.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-778893007475831440?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/778893007475831440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=778893007475831440' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/778893007475831440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/778893007475831440'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2010/02/c-static-functions.html' title='C++ Static Functions'/><author><name>inside</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-2183752626731231445.post-9007654108816697114</id><published>2010-02-15T20:29:00.000-08:00</published><updated>2010-02-15T20:33:52.184-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nokia'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='n900'/><title type='text'>Development environment setup for Maemo 5.0</title><content type='html'>&lt;a href="http://wiki.maemo.org/Documentation/Maemo_5_Final_SDK_Installation"&gt;&lt;br /&gt;Documentation/Maemo 5 Final SDK Installation&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-9007654108816697114?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/9007654108816697114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=9007654108816697114' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/9007654108816697114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/9007654108816697114'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2010/02/development-environment-setup-for-maemo.html' title='Development environment setup for Maemo 5.0'/><author><name>inside</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-2183752626731231445.post-6102378843532898440</id><published>2010-02-15T10:49:00.000-08:00</published><updated>2010-02-15T10:51:25.713-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='computation'/><category scheme='http://www.blogger.com/atom/ns#' term='illustration'/><title type='text'>Gallery of Computation</title><content type='html'>&lt;a href="http://www.complexification.net/gallery/"&gt;Gallery of Computation&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-6102378843532898440?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/6102378843532898440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=6102378843532898440' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/6102378843532898440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/6102378843532898440'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2010/02/gallery-of-computation.html' title='Gallery of Computation'/><author><name>inside</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-2183752626731231445.post-2595916494826983572</id><published>2010-02-05T17:00:00.000-08:00</published><updated>2010-02-05T17:01:48.164-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='touch'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>Using UITouch in iPhone programming</title><content type='html'>&lt;a href="http://iphone.zcentric.com/?cat=13"&gt;Using UITouch to drag an image on screen...&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-2595916494826983572?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/2595916494826983572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=2595916494826983572' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/2595916494826983572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/2595916494826983572'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2010/02/using-uitouch-in-iphone-programming.html' title='Using UITouch in iPhone programming'/><author><name>inside</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-2183752626731231445.post-1902149455603334913</id><published>2010-01-20T13:10:00.000-08:00</published><updated>2010-01-20T13:14:48.131-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='universal binary'/><category scheme='http://www.blogger.com/atom/ns#' term='gcc'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='cross compiling'/><category scheme='http://www.blogger.com/atom/ns#' term='static library'/><title type='text'>Universal C/C++ Static Library for iPhone simulator and device by GCC compiling</title><content type='html'>This shows how to create universal static library to use c/c++ code for iPhone applications. Here, my cpp code is MathFuncsLib.cpp and MathFuncsLib.h.&lt;br /&gt;&lt;br /&gt;I created following script file and run it to get "libMathFuncsLib-fat.a".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.2.sdk -mmacosx-version-min=10.5 -D__IPHONE_OS_VERSION_MIN_REQUIRED=30000 -arch i386 -c -o MathFuncsLib_i386.o MathFuncsLib.cpp&lt;br /&gt;/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.2.sdk -miphoneos-version-min=3.0 -arch armv6 -c -o MathFuncsLib_armv6.o MathFuncsLib.cpp&lt;br /&gt;&lt;br /&gt;/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/ar rc MathFuncsLib_i386.a MathFuncsLib_i386.o&lt;br /&gt;/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ar rc MathFuncsLib_armv6.a MathFuncsLib_armv6.o&lt;br /&gt;&lt;br /&gt;/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/ranlib MathFuncsLib_i386.a&lt;br /&gt;/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ranlib MathFuncsLib_armv6.a&lt;br /&gt;&lt;br /&gt;lipo MathFuncsLib_i386.a MathFuncsLib_armv6.a -create -output libMathFuncsLib-fat.a&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-1902149455603334913?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/1902149455603334913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=1902149455603334913' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/1902149455603334913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/1902149455603334913'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2010/01/universal-cc-static-library-for-iphone_20.html' title='Universal C/C++ Static Library for iPhone simulator and device by GCC compiling'/><author><name>inside</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-2183752626731231445.post-3513417325276762953</id><published>2010-01-20T09:19:00.001-08:00</published><updated>2010-01-20T11:21:02.197-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Xcode'/><category scheme='http://www.blogger.com/atom/ns#' term='cross compiling'/><category scheme='http://www.blogger.com/atom/ns#' term='static library'/><category scheme='http://www.blogger.com/atom/ns#' term='lipo'/><title type='text'>Universal C/C++ Static Library for iPhone simulator and device using Xcode</title><content type='html'>In my previous post, I googled many articles to create universal static library by using shell script. However, here is a simple and easy way to create universal static library that can be used for both iPhone Simulator and device. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;How to create universal C/C++ static library using Xcode&lt;/span&gt;&lt;br /&gt;1. Create a new project using Xcode: iPhone OS-&gt;Application-&gt;OpenGL ES Application using Xcode (e.g., MathFuncsLib)&lt;br /&gt;2. Delete all files from Classes&lt;br /&gt;3. Delete "main.m" from Other Sources&lt;br /&gt;4. Delete the current target "MathFuncsLib"&lt;br /&gt;5. Create new static library target "MathFuncsLib"&lt;br /&gt;6. Add your header (e.g., MathFuncsLib.h) and source (e.g., MathFuncsLib.cpp) files for MathFuncsLib into in Classes&lt;br /&gt;7. Select active SDK: Simulator - your SDK version and Build (library file for x86 architecture)&lt;br /&gt;8. Select active SDK: Device - your SDK version and Build (library file for arm architecture)&lt;br /&gt;9. Find library files for each architecture under a build folder and change their file name appropriately. For example "MathFuncsLib-x86.a" and "MathFuncsLib-arm.a"&lt;br /&gt;10. Copy them into any same folder&lt;br /&gt;11. Create universal static library by running "lipo MathFuncsLib-x86.a MathFuncsLib-arm.a -create -output libMathFuncsLib-fat.a" in Terminal&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;How to use universal C/C++ static library in your iPhone application&lt;/span&gt;&lt;br /&gt;1. Create your iPhone application&lt;br /&gt;2. Open Info for Target, and on Build tab, add your library name for Linking-&gt;Other Linker Flags (you should use this format: -l[your library name]. In my case, -lMathFuncsLib-fat)&lt;br /&gt;3. If you create separate folders for library such as "Include" for header files and "Lib" for library file, add them for Search Paths-&gt;Header Search Paths and Library Search Paths on the Build tab &lt;br /&gt;4. Import header file for library in your application (e.g., #import "MathFuncsLib/MathFuncsLib.h")&lt;br /&gt;5. Build and Go application&lt;br /&gt;6. If you want to look at your application on iPhone device, you also need to follow the instruction to install your application on device by using "Apple Developer Program"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-3513417325276762953?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/3513417325276762953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=3513417325276762953' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/3513417325276762953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/3513417325276762953'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2010/01/universal-cc-static-library-for-iphone.html' title='Universal C/C++ Static Library for iPhone simulator and device using Xcode'/><author><name>inside</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-2183752626731231445.post-4362354255904928898</id><published>2010-01-15T10:19:00.000-08:00</published><updated>2010-01-15T14:04:27.562-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='cross compiling'/><category scheme='http://www.blogger.com/atom/ns#' term='static library'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>Static library for iPhone Application</title><content type='html'>&lt;a href="http://blog.stormyprods.com/2008/11/using-static-libraries-with-iphone-sdk.html"&gt;[1] Stormy Productions Blog: Building Objective-C static library for iPhone SDK&lt;/a&gt;&lt;br /&gt;&lt;a href="http://robertcarlsen.net/2009/07/15/cross-compiling-for-iphone-dev-884"&gt;[2] Cross-compiling for iPhone development&lt;/a&gt;&lt;br /&gt;&lt;a href="http://latenitesoft.blogspot.com/2008/10/iphone-programming-tips-building-unix.html"&gt;[3] iPhone Programming Tips: building Unix software&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-4362354255904928898?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/4362354255904928898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=4362354255904928898' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/4362354255904928898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/4362354255904928898'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2010/01/creating-static-library-with-xcode-for.html' title='Static library for iPhone Application'/><author><name>inside</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-2183752626731231445.post-2554530097139068104</id><published>2010-01-14T09:47:00.001-08:00</published><updated>2010-05-05T10:19:19.794-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac'/><category scheme='http://www.blogger.com/atom/ns#' term='Xcode'/><category scheme='http://www.blogger.com/atom/ns#' term='Organizer'/><title type='text'>How to copy iPhone Application Data to Mac computer</title><content type='html'>1) Navigate to the app on your phone via the XCode Organizer.&lt;br /&gt;&lt;br /&gt;2) Click the triangle on the left of your app's name to show the "Application Data" field.&lt;br /&gt;&lt;br /&gt;3) Press the down arrow on the right side of that to download it.&lt;br /&gt;&lt;br /&gt;4) Save the application data into your local folder.&lt;br /&gt;--&gt; "Document", "Library", and "tmp" folders will be saved.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-2554530097139068104?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/2554530097139068104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=2554530097139068104' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/2554530097139068104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/2554530097139068104'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2010/01/how-to-copy-iphone-application-data-to.html' title='How to copy iPhone Application Data to Mac computer'/><author><name>inside</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-2183752626731231445.post-892556683665212874</id><published>2009-12-21T11:07:00.000-08:00</published><updated>2009-12-21T11:13:42.048-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Motorola'/><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>Motorola will release Android based  smartphone, ST800 in 2010</title><content type='html'>Recently, Motorola introduced new Android based smartphone, ST800. &lt;br /&gt;&lt;br /&gt;It supports GSM &amp; CDMA networks and uses two SIM cards so that two phone numbers can be used on a device. &lt;br /&gt;&lt;br /&gt;Main features: 3G/WiFi/WAPI, 3.7" FWVGA Display, 854X480 resolution, Bluetooth 2.1, LED Flash 500M pixel camera, GPS, 3.5mm earphone jack&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/OtNisSeihPE&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/OtNisSeihPE&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" 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/2183752626731231445-892556683665212874?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/892556683665212874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=892556683665212874' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/892556683665212874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/892556683665212874'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/12/motorola-will-release-android-based.html' title='Motorola will release Android based  smartphone, ST800 in 2010'/><author><name>inside</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-2183752626731231445.post-5124398246664010329</id><published>2009-09-27T13:53:00.000-07:00</published><updated>2009-09-27T13:54:48.774-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RealTime Rendering'/><category scheme='http://www.blogger.com/atom/ns#' term='Book'/><title type='text'>Real Time Rendering Book</title><content type='html'>&lt;a href="http://www.realtimerendering.com/"&gt;3rd Edition&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-5124398246664010329?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/5124398246664010329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=5124398246664010329' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/5124398246664010329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/5124398246664010329'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/09/real-time-rendering-book.html' title='Real Time Rendering Book'/><author><name>inside</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-2183752626731231445.post-216055560018592611</id><published>2009-08-31T15:21:00.000-07:00</published><updated>2009-08-31T15:22:25.710-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenCL'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>OpenCL: Parallel programmers' new best friend</title><content type='html'>&lt;a href="http://news.cnet.com/8301-13512_3-10319075-23.html"&gt;OpenCL: Parallel programmers' new best friend&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-216055560018592611?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/216055560018592611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=216055560018592611' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/216055560018592611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/216055560018592611'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/08/opencl-parallel-programmers-new-best.html' title='OpenCL: Parallel programmers&apos; new best friend'/><author><name>inside</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-2183752626731231445.post-7114091848114266427</id><published>2009-08-19T08:04:00.001-07:00</published><updated>2009-08-19T08:04:56.512-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Job Search'/><title type='text'>Job Search Tips: How to Address Job Hopping on a Resume</title><content type='html'>&lt;a href="http://www.cio.com/article/499143/Job_Search_Tips_How_to_Address_Job_Hopping_on_a_Resume?source=CIONLE_nlt_careers_2009-08-11"&gt;Job Search Tips: How to Address Job Hopping on a Resume&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-7114091848114266427?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/7114091848114266427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=7114091848114266427' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/7114091848114266427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/7114091848114266427'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/08/job-search-tips-how-to-address-job.html' title='Job Search Tips: How to Address Job Hopping on a Resume'/><author><name>inside</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-2183752626731231445.post-4274457192448045585</id><published>2009-08-19T07:58:00.000-07:00</published><updated>2009-08-19T12:04:38.093-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Instruments'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Memory Leak'/><title type='text'>Finding iPhone Application's memory leaks</title><content type='html'>I found these useful guides by Googling. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mobileorchard.com/find-iphone-memory-leaks-a-leaks-tool-tutorial/"&gt;1. Finding iPhone Memory Leaks: A “Leaks” Tool Tutorial&lt;/a&gt;: This explains with an iPhone device, but I am also sure we can use this tool, "Instruments" with an iPhone simulator. We can do it by choosing "iPhone Simulator" instead of "iPhone" and your own application by "Attach to process" drop down menu. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.apple.com/iPhone/library/documentation/Performance/Conceptual/ManagingMemory/Articles/FindingLeaks.html"&gt;2. Memory Usage Performance Guide by Apple&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-4274457192448045585?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/4274457192448045585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=4274457192448045585' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/4274457192448045585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/4274457192448045585'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/08/finding-iphone-memory-leaks-leaks-tool.html' title='Finding iPhone Application&apos;s memory leaks'/><author><name>inside</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-2183752626731231445.post-6795852147178642901</id><published>2009-07-12T13:32:00.000-07:00</published><updated>2009-07-18T18:17:48.975-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Objective-C'/><title type='text'>Starting with Objective-C for iPhone Apps</title><content type='html'>Recently, I need to start iPhone App programming in the project I am working. &lt;br /&gt;&lt;br /&gt;Here are some useful references for beginners. &lt;br /&gt;&lt;br /&gt;[Books]&lt;br /&gt;1) Dave Mark and Jeff LaMarche, "Beginning iPhong Development", Apress, 2009.&lt;br /&gt;2) Erica Sadun, "The iPhone Developer's Cookbook", Addison-Wesley, 2008.&lt;br /&gt;3) "Learn Objective-C on the Mac", 2009.&lt;br /&gt;&lt;br /&gt;[e-Books]&lt;br /&gt;1) Bert Altenberg, Alex Clarke and Philippe Mougin, "Becom an Xcoder", 2008.&lt;br /&gt;2) "Learn Objective-C 2.0 Language"&lt;br /&gt;&lt;br /&gt;[Webpages]&lt;br /&gt;1) &lt;a href="http://developer.apple.com/iphone/"&gt;Apple's iPhone Dev Center&lt;/a&gt;&lt;br /&gt;2) &lt;a href="http://www.stanford.edu/class/cs193p/cgi-bin/index.php"&gt;Stanford University, CS 193P "iPhone Application Programming" &lt;/a&gt;&lt;br /&gt;3) &lt;a href="http://www.cocoalab.com/"&gt;CocoaLab&lt;/a&gt;&lt;br /&gt;4) &lt;a href="http://iphonedevelopment.blogspot.com"&gt;Jeff LaMarche's iPhone Programming Blog&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-6795852147178642901?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/6795852147178642901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=6795852147178642901' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/6795852147178642901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/6795852147178642901'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/07/starting-with-objective-c-for-iphone.html' title='Starting with Objective-C for iPhone Apps'/><author><name>inside</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-2183752626731231445.post-3255894131301911128</id><published>2009-06-02T15:31:00.000-07:00</published><updated>2011-07-16T14:07:59.323-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><title type='text'>Profiler for Windows Mobile Applications</title><content type='html'>&lt;a href="http://jajahdevblog.com/tzah/2008/08/profile-your-mobile-application/"&gt;EQATECT profiler&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-3255894131301911128?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/3255894131301911128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=3255894131301911128' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/3255894131301911128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/3255894131301911128'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/06/profiler-for-windows-mobile.html' title='Profiler for Windows Mobile Applications'/><author><name>inside</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-2183752626731231445.post-1869602814167947439</id><published>2009-04-21T16:30:00.000-07:00</published><updated>2009-04-21T16:31:44.202-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CUDA'/><category scheme='http://www.blogger.com/atom/ns#' term='VS2005'/><title type='text'>Highlighting CUDA syntax in VS2005</title><content type='html'>&lt;a href="http://sarathc.wordpress.com/2008/09/04/how-to-enable-syntax-highlighting-for-cuda-files-in-visual-studio-2005/"&gt;How to enable syntax highlighting for CUDA files in VS2005&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-1869602814167947439?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/1869602814167947439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=1869602814167947439' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/1869602814167947439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/1869602814167947439'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/04/highlighting-cuda-syntax-in-vs2005.html' title='Highlighting CUDA syntax in VS2005'/><author><name>inside</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-2183752626731231445.post-6457788831761313643</id><published>2009-04-21T12:59:00.000-07:00</published><updated>2009-04-21T16:42:17.486-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CUDA'/><category scheme='http://www.blogger.com/atom/ns#' term='GPU'/><title type='text'>GPU programming using CUDA: Study #1</title><content type='html'>&lt;strong&gt;Study material source&lt;/strong&gt;&lt;br /&gt;CUDA U [Education] &lt;a href="http://www.nvidia.com/content/cudazone/download/Exercise_Instructions.pdf"&gt;Exercise&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Methods&lt;/strong&gt; : &lt;em&gt;See CUDA Reference Manual for details.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;1. Allocate host memory and device memory&lt;br /&gt;cudaMalloc(void **devPtr, size_t count): allocate memory on the GPU&lt;br /&gt;cudaMallocHost(void **hostPtr, size_t size): allocate page-locked memory on the host&lt;br /&gt;&lt;br /&gt;2. Copy memory host to device, device to device, and device to host&lt;br /&gt;cudaMemcpy(void *dst, const void *src, size_t count, enum cudaMemcpyKind kind): copies data between GPU and host&lt;br /&gt;&lt;em&gt;cudaMemcpyKind: cudaMemcpyHostToDevice, cudaMemcpyDeviceToDevice, cudaMemcpyDeviceToHost&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;3. Free host and device memory&lt;br /&gt;cudaFree(void *devPtr): frees memory on the GPU&lt;br /&gt;&lt;br /&gt;4. Block until all threads in the block have written their data to shared memory&lt;br /&gt;__syncthreads();            // called on the GPU&lt;br /&gt;&lt;br /&gt;5. Block until the device has completed&lt;br /&gt;cudaThreadSynchronize();    // called on the host&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Kernel configuration and Launch&lt;/strong&gt;&lt;br /&gt;dim3 dimGrid(1024);&lt;br /&gt;dim3 dimBlock(256);&lt;br /&gt;kernel_name &lt;&lt;&lt; dimGrid, dimBlock&gt;&gt;&gt;(kernel_arguments);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1D Indexing&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;single block:&lt;/em&gt;&lt;br /&gt;int idx = threadIdx.x;&lt;br /&gt;int reversed_idx = blockDim.x - 1 - threadIdx.x;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;multi blocks:&lt;/em&gt;&lt;br /&gt;int offset = blockIdx.x * blockDim.x;&lt;br /&gt;int idx =  offset + threadIdx.x;&lt;br /&gt;int reversed_offset = blockDim.x * (gridDim.x - 1 - blockIdx.x);&lt;br /&gt;int reversed_threadIdx = blockDim.x - 1 - threadIdx.x;&lt;br /&gt;int reversed_idx = reversed_offset + reversed_threadIdx;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Using shared memory&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Declaration: &lt;/em&gt;&lt;br /&gt;extern __shared__ int s_data[];&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Terminology&lt;/strong&gt;&lt;br /&gt;1. Host: CPU&lt;br /&gt;2. Device: GPU&lt;br /&gt;3. Kernel: a function that runs on the GPU, executed by an array of threads&lt;br /&gt;4. Grid: a set of blocks (dimension of grid == # blocks a grid)&lt;br /&gt;5. Block: a set of threads (dimension of block == # threads in a block)&lt;br /&gt;6. Thread: one thread runs kernel&lt;br /&gt;7. Shared memory: &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Declarations on functions&lt;/strong&gt;&lt;br /&gt;__host__: host only&lt;br /&gt;__global__: interface&lt;br /&gt;__device__: device only&lt;br /&gt;__shared__: shared memory &lt;br /&gt;__local__:&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-6457788831761313643?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/6457788831761313643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=6457788831761313643' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/6457788831761313643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/6457788831761313643'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/04/see-cuda-reference-manual-for-details.html' title='GPU programming using CUDA: Study #1'/><author><name>inside</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-2183752626731231445.post-8672259411088854177</id><published>2009-04-21T12:46:00.000-07:00</published><updated>2009-04-21T12:58:54.374-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CUDA'/><category scheme='http://www.blogger.com/atom/ns#' term='GPU'/><title type='text'>GPU programming using CUDA</title><content type='html'>&lt;strong&gt;Starting GPU programming using CUDA&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;1. CUDA U&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;a href="http://www.nvidia.com/object/cuda_education.html"&gt;[Education]&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.nvidia.com/object/cuda_university_courses.html"&gt;[University Courses]&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-8672259411088854177?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/8672259411088854177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=8672259411088854177' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/8672259411088854177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/8672259411088854177'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/04/gpu-programming-using-cuda.html' title='GPU programming using CUDA'/><author><name>inside</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-2183752626731231445.post-4901134962414171661</id><published>2009-03-30T12:53:00.000-07:00</published><updated>2009-03-30T12:56:25.943-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='presentation'/><category scheme='http://www.blogger.com/atom/ns#' term='PCPro'/><title type='text'>Useful tool for the presentation of your mobile application</title><content type='html'>"Real-Time Remote Control" and "Presentation Tools" will be very useful.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.soti.net/default.asp?Cmd=Products&amp;SubCmd=PCPro"&gt;Pocket Controller Pro&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-4901134962414171661?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/4901134962414171661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=4901134962414171661' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/4901134962414171661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/4901134962414171661'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/03/useful-tool-for-presentation-of-your.html' title='Useful tool for the presentation of your mobile application'/><author><name>inside</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-2183752626731231445.post-6105378450074920966</id><published>2009-03-11T08:57:00.000-07:00</published><updated>2009-03-11T08:58:35.242-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='random number'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Random Number Generator in C++</title><content type='html'>Random Number Generator in C++&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.agner.org/random/"&gt;See here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-6105378450074920966?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/6105378450074920966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=6105378450074920966' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/6105378450074920966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/6105378450074920966'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/03/random-number-generator-in-c.html' title='Random Number Generator in C++'/><author><name>inside</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-2183752626731231445.post-7708378583814438575</id><published>2009-03-10T19:36:00.000-07:00</published><updated>2009-03-10T19:41:31.221-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='projector phone'/><category scheme='http://www.blogger.com/atom/ns#' term='samsung'/><title type='text'>Samsung I7410 Pico Projector Phone</title><content type='html'>&lt;a href="http://link.brightcove.com/services/link/bcpid3924348001/bctid9144897001"&gt;See this video clip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.itechnews.net/2009/02/17/samsung-i7410-pico-projector-phone/#more-18829"&gt;Read this news&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-7708378583814438575?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/7708378583814438575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=7708378583814438575' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/7708378583814438575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/7708378583814438575'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/03/samsung-mbp200-projector-phone.html' title='Samsung I7410 Pico Projector Phone'/><author><name>inside</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-2183752626731231445.post-1335368995449415856</id><published>2009-03-01T12:16:00.000-08:00</published><updated>2011-07-16T14:08:37.231-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Mobile'/><title type='text'>How to run windows mobile application as a background process?</title><content type='html'>To send your application to the background, you can use Hide() function. &lt;br /&gt;&lt;br /&gt;For example, when you have a form (myForm) to hide, call this, myForm.Hide(). This results in that myForm.visible is set with "false". &lt;br /&gt;&lt;br /&gt;To check that your application is really running on background, let's go to the "Settings -&gt; System tab -&gt; Memory -&gt; Running programs tab". &lt;br /&gt;&lt;br /&gt;Unfortunately, you cannot find your application on the list. (But, actually your application is running as a backroung process.)&lt;br /&gt;&lt;br /&gt;Now, let's check with "Remote Process Viewer". Click "Microsoft Visual Studio 2005 -&gt; Visual Studio Remote Tools -&gt; Remote Process Viewer". (You need to connect your mobile device to your computer.)&lt;br /&gt;&lt;br /&gt;You can surely find your application's name on the Process list. To kill it, click "X" icon on toolbar menu.&lt;br /&gt;&lt;br /&gt;This is a drawback when you use Hide() function to send your application to the background. &lt;br /&gt;&lt;br /&gt;Here is another way to overcome this problem. &lt;br /&gt;&lt;br /&gt;It is to use the Native function "ShowWindow()" with the ‘Minimized’ property:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;[DllImport("coredll.dll")]&lt;br /&gt;        static extern int ShowWindow(IntPtr hWnd, int nCmdShow);&lt;br /&gt;        const int SW_MINIMIZE = 6;&lt;br /&gt;        public void Hide()&lt;br /&gt;        {&lt;br /&gt;            ShowWindow(myForm.Handle, SW_MINIMIZE);&lt;br /&gt;        }&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Reference:&lt;br /&gt;1. http://www.go4expert.com/forums/showthread.php?t=973&lt;br /&gt;2. http://jajahdevblog.com/jasmine/?p=41&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-1335368995449415856?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/1335368995449415856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=1335368995449415856' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/1335368995449415856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/1335368995449415856'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/03/how-to-run-windows-mobile-application.html' title='How to run windows mobile application as a background process?'/><author><name>inside</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-2183752626731231445.post-4434928910103825784</id><published>2009-03-01T11:28:00.000-08:00</published><updated>2009-03-01T12:36:46.698-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='Remote Zoom In'/><category scheme='http://www.blogger.com/atom/ns#' term='screenshot'/><title type='text'>How to capture screenshots of mobile device or emulator</title><content type='html'>Here is a procedure to follow to take a screenshot. &lt;br /&gt;&lt;br /&gt;1. Open "Microsoft Visual Studio 2005 -&gt; Visual Studio Remote Tools -&gt; Remote Zoom In".&lt;br /&gt;&lt;br /&gt;2. Select one on a "Select a Windows CE Device" dialog, which is the thing you want to connect. Make sure a device connected to your computer.&lt;br /&gt;&lt;br /&gt;3. You will see the screenshot. If you want to take another screenshot, click "Target -&gt; Refresh" on the menu of the Remote Zoom In, or press F5 key.&lt;br /&gt;&lt;br /&gt;4. Now, you can save the screenshot as an image (BMP). Select "File -&gt; Save As".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-4434928910103825784?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/4434928910103825784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=4434928910103825784' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/4434928910103825784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/4434928910103825784'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/03/how-to-capture-screenshots-of-mobile.html' title='How to capture screenshots of mobile device or emulator'/><author><name>inside</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-2183752626731231445.post-527905779266905158</id><published>2009-02-27T18:36:00.000-08:00</published><updated>2009-02-27T18:47:07.242-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='streamreader'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='file pointer'/><category scheme='http://www.blogger.com/atom/ns#' term='filestream'/><title type='text'>Reset StreamReader in C#</title><content type='html'>Hello, &lt;br /&gt;&lt;br /&gt;This is a little bit weired, but it works.&lt;br /&gt;&lt;br /&gt;During reading a file, I wanted to reset file pointer to start from the begining of a file. I used FileStream and StreamReader in C#.&lt;br /&gt;&lt;br /&gt;My initial ideal was to call these two functions;&lt;br /&gt;&lt;br /&gt;FileStream fs;&lt;br /&gt;StreamReader sr;&lt;br /&gt;:&lt;br /&gt;:&lt;br /&gt;:&lt;br /&gt;&lt;strong&gt;fs.Seek(0, SeekOrigin.Begin);&lt;br /&gt;sr.BaseStream.Seek(0, SeekOrigin.Begin);&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;However, &lt;strong&gt;this didn't work &lt;/strong&gt;although I checked fs.Position == 0 and sr.BaseStream.Position == 0.&lt;br /&gt;&lt;br /&gt;Finally, I solved this problem as follows;&lt;br /&gt;&lt;br /&gt;FileStream fs;&lt;br /&gt;StreamReader sr;&lt;br /&gt;:&lt;br /&gt;:&lt;br /&gt;:&lt;br /&gt;&lt;strong&gt;fs.Seek(0, SeekOrigin.Begin);&lt;br /&gt;sr.DiscardBufferedData();&lt;br /&gt;sr.BaseStream.Seek(0, SeekOrigin.Begin);&lt;br /&gt;sr.BaseStream.Position = 0;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Frankly, I can't understand why I need to use these three lines for resetting StreamReader. But, anyway &lt;strong&gt;it works well&lt;/strong&gt;, and I can start to read from the begining of a file.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-527905779266905158?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/527905779266905158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=527905779266905158' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/527905779266905158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/527905779266905158'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/02/reset-streamreader-in-c.html' title='Reset StreamReader in C#'/><author><name>inside</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-2183752626731231445.post-169525386457534034</id><published>2009-02-24T19:09:00.001-08:00</published><updated>2009-02-24T19:09:57.657-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IEEE 754'/><category scheme='http://www.blogger.com/atom/ns#' term='interview question'/><title type='text'>IEEE 754 floating point format</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-169525386457534034?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/169525386457534034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=169525386457534034' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/169525386457534034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/169525386457534034'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/02/ieee-754-floating-point-format.html' title='IEEE 754 floating point format'/><author><name>inside</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-2183752626731231445.post-4580355505523798940</id><published>2009-02-24T19:07:00.000-08:00</published><updated>2009-02-24T19:10:10.031-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IEEE single precision'/><category scheme='http://www.blogger.com/atom/ns#' term='interview question'/><title type='text'>IEEE single precision format</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-4580355505523798940?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/4580355505523798940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=4580355505523798940' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/4580355505523798940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/4580355505523798940'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/02/ieee-single-precision-format.html' title='IEEE single precision format'/><author><name>inside</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-2183752626731231445.post-1831224432942797618</id><published>2009-02-24T19:01:00.000-08:00</published><updated>2009-02-24T19:07:23.757-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='interview question'/><title type='text'>Toggle bulbs and switches</title><content type='html'>room lighting.. room with 100 bulbs and switches..&lt;br /&gt;&lt;br /&gt;100 people goes in one by one.&lt;br /&gt;&lt;br /&gt;1st person toggles all switches.&lt;br /&gt;&lt;br /&gt;2nd person toggles all switeches which are multiles of 2 (2,4,6..)&lt;br /&gt;&lt;br /&gt;and so on ( till 100th person toggling only 100th switch)&lt;br /&gt;&lt;br /&gt;once finished with all, ==&gt; &lt;strong&gt;which all bulbs are ON&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;1th: all switches are ON&lt;br /&gt;2nd:   2,  4,  6,  8, ... switches are OFF&lt;br /&gt;3rd:     3,          9,... OFF&lt;br /&gt;3rd:           6        12 ... ON&lt;br /&gt;:&lt;br /&gt;:&lt;br /&gt;:&lt;br /&gt;100th: only toggle 100th switch&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-1831224432942797618?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/1831224432942797618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=1831224432942797618' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/1831224432942797618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/1831224432942797618'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/02/toggle-bulbs-and-switches.html' title='Toggle bulbs and switches'/><author><name>inside</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-2183752626731231445.post-940843756640368427</id><published>2009-02-24T17:54:00.000-08:00</published><updated>2009-02-24T18:58:06.751-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='sizeof'/><category scheme='http://www.blogger.com/atom/ns#' term='interview question'/><title type='text'>sizeof operator</title><content type='html'>&lt;strong&gt;sizeof&lt;/strong&gt;&lt;br /&gt;In the programming languages C and C++, the unary operator 'sizeof' is used to calculate the sizes of datatypes. sizeof can be applied to all datatypes, be they primitive types such as the integer and floating-point types defined in the language, pointers to memory addresses, or the compound datatypes (unions, structs, or C++ classes) defined by the programmer. sizeof is a &lt;strong&gt;compile-time operator &lt;/strong&gt;that returns the size in bytes of the variable or parenthesized type-specifier that it precedes. -- &lt;em&gt;http://en.wikipedia.org/wiki/Sizeof&lt;/em&gt; --&lt;br /&gt;&lt;br /&gt;Here is an interesting test for the size of several types by myself. &lt;br /&gt;&lt;br /&gt;&lt;pre style="BORDER-RIGHT: rgb(153,153,153) 1px dashed; PADDING-RIGHT: 5px; BORDER-TOP: rgb(153,153,153) 1px dashed; PADDING-LEFT: 5px; FONT-SIZE: 12px; PADDING-BOTTOM: 5px; OVERFLOW: auto; BORDER-LEFT: rgb(153,153,153) 1px dashed; WIDTH: 96.17%; COLOR: rgb(0,0,0); LINE-HEIGHT: 14px; PADDING-TOP: 5px; BORDER-BOTTOM: rgb(153,153,153) 1px dashed; FONT-FAMILY: Andale Mono,Lucida Console,Monaco,fixed,monospace; HEIGHT: 700px; BACKGROUND-COLOR: rgb(238,238,238)"&gt;&lt;br /&gt;&lt;br /&gt;#include "stdio.h"&lt;br /&gt;&lt;br /&gt;#define &lt;strong&gt;mySizeOf(x) ((char*)(&amp;(x)+1)-(char*)(&amp;x))&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;struct myType { // This is a structure containing four variables of different types&lt;br /&gt; char a;&lt;br /&gt; int b;&lt;br /&gt; float c;&lt;br /&gt; double d;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;struct blankType {  // This is a structure with no variable&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;class CBlankClass {  // This is a class with no member variable&lt;br /&gt;public:&lt;br /&gt;public:&lt;br /&gt; CBlankClass() {};&lt;br /&gt; ~CBlankClass() {};&lt;br /&gt;&lt;br /&gt; void function1() {};&lt;br /&gt; void function2() {};&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;class CMyClass {  // This is a class with a &lt;em&gt;int&lt;/em&gt; type member variable&lt;br /&gt;public:&lt;br /&gt; int memberVar1;&lt;br /&gt;&lt;br /&gt;public:&lt;br /&gt; CMyClass() {};&lt;br /&gt; ~CMyClass() {};&lt;br /&gt;&lt;br /&gt; void function1() {};&lt;br /&gt; void function2() {};&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt; char var1;&lt;br /&gt; printf("Size of char type = %d\n", mySizeOf(var1));&lt;br /&gt;&lt;br /&gt; int var2;&lt;br /&gt; printf("Size of int type = %d\n", mySizeOf(var2));&lt;br /&gt;&lt;br /&gt; float var3;&lt;br /&gt; printf("Size of float type = %d\n", mySizeOf(var3));&lt;br /&gt;&lt;br /&gt; double var4;&lt;br /&gt; printf("Size of double type = %d\n", mySizeOf(var4));&lt;br /&gt;&lt;br /&gt; char var5[] = "AB";&lt;br /&gt; printf("Size of char array ""AB"" = %d\n", mySizeOf(var5));&lt;br /&gt;&lt;br /&gt; struct myType var6;&lt;br /&gt; printf("Size of struct myType = %d\n", mySizeOf(var6));&lt;br /&gt;&lt;br /&gt; struct blankType var7;&lt;br /&gt; printf("Size of struct blankType = %d\n", mySizeOf(var7));&lt;br /&gt;&lt;br /&gt; CBlankClass var8;&lt;br /&gt; printf("Size of class CBlankClass = %d\n", mySizeOf(var8));&lt;br /&gt;&lt;br /&gt; CMyClass var9;&lt;br /&gt; printf("Size of class CMyClass = %d\n", mySizeOf(var9));&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Output:&lt;/strong&gt;&lt;br /&gt;Size of char type = 1&lt;br /&gt;Size of int type = 4&lt;br /&gt;Size of float type = 4&lt;br /&gt;Size of double type = 8&lt;br /&gt;Size of char array AB = 3&lt;br /&gt;Size of struct myType = 24&lt;br /&gt;Size of struct blankType = 1&lt;br /&gt;Size of class CBlankClass = 1&lt;br /&gt;Size of class CMyClass = 4&lt;br /&gt;&lt;br /&gt;From this result, interesting things are these,&lt;br /&gt;&lt;strong&gt;Size of struct myType = 24&lt;/strong&gt;&lt;br /&gt;--&gt; For a struct myType, if it has only "char a", its size is 1. But, if it has "char a" and "int b", its size becomes not 5 but 8. If it has "char a", "int b", and "float c", its size becomes 12.&lt;br /&gt;&lt;strong&gt;Size of struct blankType = 1&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Size of class CBlankClass = 1&lt;/strong&gt;&lt;br /&gt;--&gt; Both black structure and class (no member variable) have its size 1.&lt;br /&gt;--&gt; For class, member functions don't affect on the size. &lt;br /&gt;&lt;strong&gt;Size of class CMyClass = 4&lt;/strong&gt;&lt;br /&gt;--&gt; If a class has member variables, its size will be the same to the situation of structre above.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-940843756640368427?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/940843756640368427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=940843756640368427' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/940843756640368427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/940843756640368427'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/02/sizeof-operator-implementation.html' title='sizeof operator'/><author><name>inside</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-2183752626731231445.post-7660724729083201934</id><published>2009-02-24T17:42:00.000-08:00</published><updated>2009-02-24T18:12:16.546-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='memcpy'/><category scheme='http://www.blogger.com/atom/ns#' term='memmove'/><category scheme='http://www.blogger.com/atom/ns#' term='interview question'/><title type='text'>memcpy() vs. memmove() in C</title><content type='html'>Here is the difference between memcpy() and memmove().&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;br /&gt;str = "strings are good"; &lt;br /&gt;memmove(str + 8, str + 11, 4); &lt;br /&gt;This returns --&gt; strings are are good &lt;br /&gt;memcpy(str + 8, str + 11, 4);&lt;br /&gt;This returns --&gt; strings are ared &lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;pre style="BORDER-RIGHT: rgb(153,153,153) 1px dashed; PADDING-RIGHT: 5px; BORDER-TOP: rgb(153,153,153) 1px dashed; PADDING-LEFT: 5px; FONT-SIZE: 12px; PADDING-BOTTOM: 5px; OVERFLOW: auto; BORDER-LEFT: rgb(153,153,153) 1px dashed; WIDTH: 96.17%; COLOR: rgb(0,0,0); LINE-HEIGHT: 14px; PADDING-TOP: 5px; BORDER-BOTTOM: rgb(153,153,153) 1px dashed; FONT-FAMILY: Andale Mono,Lucida Console,Monaco,fixed,monospace; HEIGHT: 200px; BACKGROUND-COLOR: rgb(238,238,238)"&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;/* memcpy example */&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;#include &lt;string.h&gt;&lt;br /&gt;&lt;br /&gt;int main ()&lt;br /&gt;{&lt;br /&gt;  char str1[]="Sample string";&lt;br /&gt;  char str2[40];&lt;br /&gt;  char str3[40];&lt;br /&gt;  memcpy (str2,str1,strlen(str1)+1);&lt;br /&gt;  memcpy (str3,"copy successful",16);&lt;br /&gt;  printf ("str1: %s\nstr2: %s\nstr3: %s\n",str1,str2,str3);&lt;br /&gt;  return 0;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Output:&lt;br /&gt;str1: Sample string&lt;br /&gt;str2: Sample string&lt;br /&gt;str3: copy successful&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;pre style="BORDER-RIGHT: rgb(153,153,153) 1px dashed; PADDING-RIGHT: 5px; BORDER-TOP: rgb(153,153,153) 1px dashed; PADDING-LEFT: 5px; FONT-SIZE: 12px; PADDING-BOTTOM: 5px; OVERFLOW: auto; BORDER-LEFT: rgb(153,153,153) 1px dashed; WIDTH: 96.17%; COLOR: rgb(0,0,0); LINE-HEIGHT: 14px; PADDING-TOP: 5px; BORDER-BOTTOM: rgb(153,153,153) 1px dashed; FONT-FAMILY: Andale Mono,Lucida Console,Monaco,fixed,monospace; HEIGHT: 150px; BACKGROUND-COLOR: rgb(238,238,238)"&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;/* memmove example */&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;#include &lt;string.h&gt;&lt;br /&gt;&lt;br /&gt;int main ()&lt;br /&gt;{&lt;br /&gt;  char str[] = "memmove can be very useful......";&lt;br /&gt;  memmove (str+20,str+15,11);&lt;br /&gt;  puts (str);&lt;br /&gt;  return 0;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Output:&lt;br /&gt;memmove can be very very useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-7660724729083201934?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/7660724729083201934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=7660724729083201934' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/7660724729083201934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/7660724729083201934'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/02/memcpy-vs-memmove-in-c.html' title='memcpy() vs. memmove() in C'/><author><name>inside</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-2183752626731231445.post-31273751536115589</id><published>2009-02-12T12:36:00.000-08:00</published><updated>2009-02-12T12:41:58.852-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><title type='text'>How to connect a server from mobile client in C#</title><content type='html'>I need to know this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-31273751536115589?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/31273751536115589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=31273751536115589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/31273751536115589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/31273751536115589'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/02/how-to-connect-server-from-mobile.html' title='How to connect a server from mobile client in C#'/><author><name>inside</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-2183752626731231445.post-2914448732725555834</id><published>2009-02-12T12:34:00.001-08:00</published><updated>2009-02-23T12:43:02.038-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='device'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='device id'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Get "unique device ID" of a mobile device</title><content type='html'>I searched Internet a lot to find how to get "unique device id" for mobile devices, which is not dependent on any application data. &lt;br /&gt;&lt;br /&gt;I am developing on Windows Mobile 6 with HTC phone. &lt;br /&gt;&lt;br /&gt;There are severay ways to do it. &lt;br /&gt;&lt;br /&gt;1) &lt;strong&gt;Use GetDeviceUniqueID():&lt;/strong&gt; GetDeviceUniqueID() requires at least 8 bytes of data to generate a hash. Furthermore, you should not expect GetDeviceUniqueID() to return the UUID string as HAL_GET_DEVICEID does. It will return application-specific hash that is unique for this particular device. You should treat it as a sequence of bytes.&lt;br /&gt;&lt;br /&gt;2) &lt;strong&gt;Use HAL_GET_DEVICEID: &lt;/strong&gt;This does not work on Smartphone unless your code is signed with a privleged certificate.&lt;br /&gt;&lt;br /&gt;3) &lt;strong&gt;Get IMEI(International Mobile Equipment Identity) number: &lt;/strong&gt;The IMEI number is a unique 15-digit code used to identify an individual GSM mobile phone in a GSM network. The IMEI number can be displayed on most phones by dialing the code *#06#. Every phone has a unique IMEI number, which is usually printed under the battery on the phone. The IMEI number is used in many mobile applications since the unique number makes it possible to lock software to a particular phone. This effectively prevents unauthorized copying of an application. &lt;br /&gt;   --&gt; Use Tapi dll&lt;br /&gt;   --&gt; Make your code (See, References (2))&lt;br /&gt;: References&lt;br /&gt;   1) &lt;a href = "http://developer.sonyericsson.com/site/global/techsupport/tipstrickscode/symbian/p_getting_imei_number_uiq3.jsp"&gt;Getting the IMEI number: a UIQ 3 code example&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;   2) &lt;a href = "http://groups.google.com/group/microsoft.public.dotnet.framework.compactframework/browse_thread/thread/280299812d7b171c"&gt;IMEI in C#&lt;/a&gt;&lt;br&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="BORDER-RIGHT: rgb(153,153,153) 1px dashed; PADDING-RIGHT: 5px; BORDER-TOP: rgb(153,153,153) 1px dashed; PADDING-LEFT: 5px; FONT-SIZE: 12px; PADDING-BOTTOM: 5px; OVERFLOW: auto; BORDER-LEFT: rgb(153,153,153) 1px dashed; WIDTH: 96.17%; COLOR: rgb(0,0,0); LINE-HEIGHT: 14px; PADDING-TOP: 5px; BORDER-BOTTOM: rgb(153,153,153) 1px dashed; FONT-FAMILY: Andale Mono,Lucida Console,Monaco,fixed,monospace; HEIGHT: 1735px; BACKGROUND-COLOR: rgb(238,238,238)"&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Runtime.InteropServices;&lt;br /&gt;&lt;br /&gt;// Reference: http://groups.google.com/group/microsoft.public.dotnet.framework.compactframework/browse_thread/thread/280299812d7b171c&lt;br /&gt;public class clsDeviceInfo &lt;br /&gt;{ &lt;br /&gt;    private string _manufacture; &lt;br /&gt;    private string _model; &lt;br /&gt;    private string _revision; &lt;br /&gt;    private string _serialNumber; // IMEI &lt;br /&gt;    private string _subscriberID; // IMSI &lt;br /&gt;    &lt;br /&gt;    public string Manufacture &lt;br /&gt;    { &lt;br /&gt;        get { return _manufacture; } &lt;br /&gt;    } &lt;br /&gt;    &lt;br /&gt;    public string Model &lt;br /&gt;    { &lt;br /&gt;        get { return _model; } &lt;br /&gt;    } &lt;br /&gt;    &lt;br /&gt;    public string Revision &lt;br /&gt;    { &lt;br /&gt;        get { return _revision; } &lt;br /&gt;    } &lt;br /&gt;    &lt;br /&gt;    public string SerialNumber &lt;br /&gt;    { &lt;br /&gt;        get { return _serialNumber; } &lt;br /&gt;    } &lt;br /&gt;    &lt;br /&gt;    public string SubscriberID &lt;br /&gt;    { &lt;br /&gt;        get { return _subscriberID; } &lt;br /&gt;    } &lt;br /&gt;    &lt;br /&gt;    public clsDeviceInfo() &lt;br /&gt;    { &lt;br /&gt;        GetDeviceInfo(); &lt;br /&gt;    } &lt;br /&gt;    &lt;br /&gt;    private void GetDeviceInfo() &lt;br /&gt;    { &lt;br /&gt;        IntPtr hLine; &lt;br /&gt;        int dwNumDev; &lt;br /&gt;        int num1 = 0x20000; &lt;br /&gt;        &lt;br /&gt;        LINEINITIALIZEEXPARAMS lineInitializeParams = new LINEINITIALIZEEXPARAMS(); &lt;br /&gt;        lineInitializeParams.dwTotalSize = (uint)Marshal.SizeOf(lineInitializeParams); &lt;br /&gt;        lineInitializeParams.dwNeededSize = lineInitializeParams.dwTotalSize; &lt;br /&gt;        lineInitializeParams.dwUsedSize = lineInitializeParams.dwUsedSize; &lt;br /&gt;        lineInitializeParams.dwOptions = 2; &lt;br /&gt;        lineInitializeParams.hEvent = IntPtr.Zero; &lt;br /&gt;        lineInitializeParams.hCompletionPort = IntPtr.Zero; &lt;br /&gt;        &lt;br /&gt;        // lineInitializeEx &lt;br /&gt;        int result = NativeTapi.lineInitializeEx(out hLine, IntPtr.Zero, IntPtr.Zero, null, out dwNumDev, ref num1, ref lineInitializeParams); &lt;br /&gt;        if (result != 0) &lt;br /&gt;        { &lt;br /&gt;            return; &lt;br /&gt;        } &lt;br /&gt;&lt;br /&gt;        // lineNegotiateAPIVerison &lt;br /&gt;        int version; &lt;br /&gt;        int dwAPIVersionLow = 0x10004; &lt;br /&gt;        int dwAPIVersionHigh = 0x20000; &lt;br /&gt;        LINEEXTENSIONID lineExtensionID; &lt;br /&gt;        result = NativeTapi.lineNegotiateAPIVersion(hLine, 0, dwAPIVersionLow, dwAPIVersionHigh, out version, out lineExtensionID); &lt;br /&gt;        if (result != 0) &lt;br /&gt;        { &lt;br /&gt;            return; &lt;br /&gt;        } &lt;br /&gt;        &lt;br /&gt;        // lineOpen &lt;br /&gt;        IntPtr hLine2 = IntPtr.Zero; &lt;br /&gt;        result = NativeTapi.lineOpen(hLine, 0, out hLine2, version, 0, IntPtr.Zero, 0x00000002, 0x00000004, IntPtr.Zero); &lt;br /&gt;        if (result != 0) &lt;br /&gt;        { &lt;br /&gt;            return; &lt;br /&gt;        } &lt;br /&gt;        &lt;br /&gt;        // lineGetGeneralInfo &lt;br /&gt;        int structSize = Marshal.SizeOf(new LINEGENERALINFO()); &lt;br /&gt;        byte[] bytes = new byte[structSize]; &lt;br /&gt;        byte[] tmpBytes = BitConverter.GetBytes(structSize); &lt;br /&gt;        &lt;br /&gt;        for (int index = 0; index &lt; tmpBytes.Length; index++) &lt;br /&gt;        { &lt;br /&gt;            bytes[index] = tmpBytes[index]; &lt;br /&gt;        } &lt;br /&gt;        &lt;br /&gt;        // make initial query to retrieve necessary size &lt;br /&gt;        result = NativeTapi.lineGetGeneralInfo(hLine2, bytes); &lt;br /&gt;        &lt;br /&gt;        // get the needed size &lt;br /&gt;        int neededSize = BitConverter.ToInt32(bytes, 4); &lt;br /&gt;        &lt;br /&gt;        // resize the array &lt;br /&gt;        bytes = new byte[neededSize]; &lt;br /&gt;        &lt;br /&gt;        // write out the new allocated size to the byte stream &lt;br /&gt;        tmpBytes = BitConverter.GetBytes(neededSize); &lt;br /&gt;        for (int index = 0; index &lt; tmpBytes.Length; index++) &lt;br /&gt;        { &lt;br /&gt;            bytes[index] = tmpBytes[index]; &lt;br /&gt;        } &lt;br /&gt;        &lt;br /&gt;        // fetch the information with properly size buffer &lt;br /&gt;        result = NativeTapi.lineGetGeneralInfo(hLine2, bytes); &lt;br /&gt;        if (result != 0) &lt;br /&gt;        { &lt;br /&gt;            //LogManager.GetLogger("DeviceInfo").Error(Marshal.GetLastWin32Error().ToString()); &lt;br /&gt;            return; &lt;br /&gt;        } &lt;br /&gt;        &lt;br /&gt;        int size; &lt;br /&gt;        int offset; &lt;br /&gt;        &lt;br /&gt;        size = BitConverter.ToInt32(bytes, 12); &lt;br /&gt;        offset = BitConverter.ToInt32(bytes, 16); &lt;br /&gt;        &lt;br /&gt;        // manufacture &lt;br /&gt;        if (size &gt; 0 &amp;&amp; offset &gt; 0) &lt;br /&gt;        { &lt;br /&gt;            _manufacture = Encoding.Unicode.GetString(bytes, offset, size); &lt;br /&gt;            _manufacture = _manufacture.Substring(0, _manufacture.IndexOf('\0')); &lt;br /&gt;        } &lt;br /&gt;        &lt;br /&gt;        size = BitConverter.ToInt32(bytes, 20); &lt;br /&gt;        offset = BitConverter.ToInt32(bytes, 24); &lt;br /&gt;        &lt;br /&gt;        // model &lt;br /&gt;        if (size &gt; 0 &amp;&amp; offset &gt; 0) &lt;br /&gt;        { &lt;br /&gt;            _model = Encoding.Unicode.GetString(bytes, offset, size); &lt;br /&gt;            _model = _model.Substring(0, _model.IndexOf('\0')); &lt;br /&gt;        } &lt;br /&gt;        &lt;br /&gt;        size = BitConverter.ToInt32(bytes, 28); &lt;br /&gt;        offset = BitConverter.ToInt32(bytes, 32); &lt;br /&gt;        &lt;br /&gt;        // revision &lt;br /&gt;        if (size &gt; 0 &amp;&amp; offset &gt; 0) &lt;br /&gt;        { &lt;br /&gt;            _revision = Encoding.Unicode.GetString(bytes, offset, size); &lt;br /&gt;            _revision = _revision.Substring(0, _revision.IndexOf('\0')); &lt;br /&gt;        } &lt;br /&gt;        &lt;br /&gt;        size = BitConverter.ToInt32(bytes, 36); &lt;br /&gt;        offset = BitConverter.ToInt32(bytes, 40); &lt;br /&gt;        &lt;br /&gt;        // serial number (IMEI) &lt;br /&gt;        if (size &gt; 0 &amp;&amp; offset &gt; 0) &lt;br /&gt;        { &lt;br /&gt;            _serialNumber = Encoding.Unicode.GetString(bytes, offset, size); &lt;br /&gt;            _serialNumber = _serialNumber.Substring(0, _serialNumber.IndexOf('\0')); &lt;br /&gt;        } &lt;br /&gt;        &lt;br /&gt;        size = BitConverter.ToInt32(bytes, 44); &lt;br /&gt;        offset = BitConverter.ToInt32(bytes, 48); &lt;br /&gt;        &lt;br /&gt;        // subscriber id (IMSI) &lt;br /&gt;        if (size &gt; 0 &amp;&amp; offset &gt; 0) &lt;br /&gt;        { &lt;br /&gt;            _subscriberID = Encoding.Unicode.GetString(bytes, offset, size); &lt;br /&gt;            _subscriberID = _subscriberID.Substring(0, _subscriberID.IndexOf('\0')); &lt;br /&gt;        } &lt;br /&gt;        &lt;br /&gt;        // lineClose for hLine2 &lt;br /&gt;        NativeTapi.lineClose(hLine2); &lt;br /&gt;        &lt;br /&gt;        // lineShutdown for hLine &lt;br /&gt;        NativeTapi.lineShutdown(hLine); &lt;br /&gt;    } &lt;br /&gt;    &lt;br /&gt;    [StructLayout(LayoutKind.Sequential)] &lt;br /&gt;    private struct LINEEXTENSIONID &lt;br /&gt;    { &lt;br /&gt;        public IntPtr dwExtensionID0; &lt;br /&gt;        public IntPtr dwExtensionID1; &lt;br /&gt;        public IntPtr dwExtensionID2; &lt;br /&gt;        public IntPtr dwExtensionID3; &lt;br /&gt;    } &lt;br /&gt;    &lt;br /&gt;    [StructLayout(LayoutKind.Sequential)] &lt;br /&gt;    private struct LINEINITIALIZEEXPARAMS &lt;br /&gt;    { &lt;br /&gt;        public uint dwTotalSize; &lt;br /&gt;        public uint dwNeededSize; &lt;br /&gt;        public uint dwUsedSize; &lt;br /&gt;        public uint dwOptions; &lt;br /&gt;        public System.IntPtr hEvent; &lt;br /&gt;        public System.IntPtr hCompletionPort; &lt;br /&gt;        public uint dwCompletionKey; &lt;br /&gt;    } &lt;br /&gt;    &lt;br /&gt;    [StructLayout(LayoutKind.Sequential)] &lt;br /&gt;    private struct LINEGENERALINFO &lt;br /&gt;    { &lt;br /&gt;        public int dwTotalSize; &lt;br /&gt;        public int dwNeededSize; &lt;br /&gt;        public int dwUsedSize; &lt;br /&gt;        public int dwManufacturerSize; &lt;br /&gt;        public int dwManufacturerOffset; &lt;br /&gt;        public int dwModelSize; &lt;br /&gt;        public int dwModelOffset; &lt;br /&gt;        public int dwRevisionSize; &lt;br /&gt;        public int dwRevisionOffset; &lt;br /&gt;        public int dwSerialNumberSize; &lt;br /&gt;        public int dwSerialNumberOffset; &lt;br /&gt;        public int dwSubscriberNumberSize; &lt;br /&gt;        public int dwSubscriberNumberOffset; &lt;br /&gt;    } &lt;br /&gt;    &lt;br /&gt;    private class NativeTapi &lt;br /&gt;    { &lt;br /&gt;        [DllImport("coredll")] &lt;br /&gt;        public static extern int lineClose(IntPtr hLine); &lt;br /&gt;&lt;br /&gt;        [DllImport("cellcore")] &lt;br /&gt;        public static extern int lineGetGeneralInfo(IntPtr hLine, byte[] bytes); &lt;br /&gt;&lt;br /&gt;        [DllImport("coredll")] &lt;br /&gt;        public static extern int lineGetAddressCaps(IntPtr hLineApp, int dwDeviceID, int dwAddressID, int dwAPIVersion, int dwExtVersion, byte[] lpAddressCaps); &lt;br /&gt;&lt;br /&gt;        [DllImport("coredll")] &lt;br /&gt;        public static extern int lineInitializeEx(out IntPtr lpm_hLineApp, IntPtr hInstance, IntPtr lpfnCallback, string lpszFriendlyAppName, out int lpdwNumDevs, ref int lpdwAPIVersion, ref LINEINITIALIZEEXPARAMS lpLineInitializeExParams); &lt;br /&gt;&lt;br /&gt;        [DllImport("coredll")] &lt;br /&gt;        public static extern int lineNegotiateAPIVersion(IntPtr m_hLineApp, int dwDeviceID, int dwAPILowVersion, int dwAPIHighVersion, out int lpdwAPIVersion, out LINEEXTENSIONID lpExtensionID); &lt;br /&gt;&lt;br /&gt;        [DllImport("coredll")] &lt;br /&gt;        public static extern int lineOpen(IntPtr m_hLineApp, int dwDeviceID, out IntPtr lphLine, int dwAPIVersion, int dwExtVersion, IntPtr dwCallbackInstance, int dwPrivileges, int dwMediaModes, IntPtr lpCallParams); &lt;br /&gt;&lt;br /&gt;        [DllImport("coredll")] &lt;br /&gt;        public static extern int lineShutdown(IntPtr m_hLineApp); &lt;br /&gt;    } &lt;br /&gt;} &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-2914448732725555834?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/2914448732725555834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=2914448732725555834' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/2914448732725555834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/2914448732725555834'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/02/get-unique-device-id-of-mobile-device.html' title='Get &quot;unique device ID&quot; of a mobile device'/><author><name>inside</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-2183752626731231445.post-4375997681729417222</id><published>2009-02-12T12:32:00.000-08:00</published><updated>2009-02-12T12:33:54.527-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='reminder'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Add remider function in Windows Mobile application</title><content type='html'>I need to do this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-4375997681729417222?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/4375997681729417222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=4375997681729417222' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/4375997681729417222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/4375997681729417222'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/02/add-remider-function-in-windows-mobile.html' title='Add remider function in Windows Mobile application'/><author><name>inside</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-2183752626731231445.post-3484266570637982044</id><published>2009-02-11T17:21:00.000-08:00</published><updated>2009-02-12T09:01:27.489-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='string'/><category scheme='http://www.blogger.com/atom/ns#' term='sort'/><title type='text'>Sorting 2D string list in C#</title><content type='html'>&lt;pre style="BORDER-RIGHT: rgb(153,153,153) 1px dashed; PADDING-RIGHT: 5px; BORDER-TOP: rgb(153,153,153) 1px dashed; PADDING-LEFT: 5px; FONT-SIZE: 12px; PADDING-BOTTOM: 5px; OVERFLOW: auto; BORDER-LEFT: rgb(153,153,153) 1px dashed; WIDTH: 96.17%; COLOR: rgb(0,0,0); LINE-HEIGHT: 14px; PADDING-TOP: 5px; BORDER-BOTTOM: rgb(153,153,153) 1px dashed; FONT-FAMILY: Andale Mono,Lucida Console,Monaco,fixed,monospace; HEIGHT: 1735px; BACKGROUND-COLOR: rgb(238,238,238)"&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;/*&lt;br /&gt; * In application code&lt;br /&gt; */&lt;br /&gt;// Declare a variable for data&lt;br /&gt;public static List&lt;clsdatarecord&gt; recordList = new List&lt;clsdatarecord&gt;(); &lt;br /&gt;&lt;p&gt;&lt;br /&gt;// Set a list&lt;br /&gt;// For example,&lt;br /&gt;//    2/11/2009, apple, 20&lt;br /&gt;//    2/10/2009, banana, 5&lt;br /&gt;//    1/30/2009, pineapple, 3&lt;br /&gt;recodeList.Add(new clsDataRecord(&lt;i&gt;DateTimeVar1, TextVar1, IntVar1&lt;/i&gt;));&lt;br /&gt;recodeList.Add(new clsDataRecord(&lt;i&gt;DateTimeVar2, TextVar2, IntVar2&lt;/i&gt;));&lt;br /&gt;recodeList.Add(new clsDataRecord(&lt;i&gt;DateTimeVar3, TextVar3, IntVar3&lt;/i&gt;));&lt;br /&gt;&lt;p&gt;&lt;br /&gt;// Call sorting by date&lt;br /&gt;clsDataRecord.CompType = clsDataRecord.ComparisonType.Date;&lt;br /&gt;Program.altRecordList.Sort();&lt;br /&gt;// Sorted result will be&lt;br /&gt;//    1/30/2009, pineapple, 3&lt;br /&gt;//    2/10/2009, banana, 5&lt;br /&gt;//    2/11/2009, apple, 20&lt;br /&gt;&lt;p&gt;&lt;br /&gt;// Call sorting by text&lt;br /&gt;clsDataRecord.CompType = clsDataRecord.ComparisonType.Text;&lt;br /&gt;Program.altRecordList.Sort();&lt;br /&gt;// Sorted result will be&lt;br /&gt;//    2/11/2009, apple, 20&lt;br /&gt;//    2/10/2009, banana, 5&lt;br /&gt;//    1/30/2009, pineapple, 3&lt;br /&gt;&lt;p&gt;&lt;br /&gt;// Call sorting by number&lt;br /&gt;clsDataRecord.CompType = clsDataRecord.ComparisonType.Number;&lt;br /&gt;Program.altRecordList.Sort();&lt;br /&gt;// Sorted result will be&lt;br /&gt;//    1/30/2009, pineapple, 3&lt;br /&gt;//    2/10/2009, banana, 5&lt;br /&gt;//    2/11/2009, apple, 20&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;/*&lt;br /&gt; * Class for clsDataRecord&lt;br /&gt; */&lt;br /&gt;using System;&lt;br /&gt;using System.Collections;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;class clsDataRecord : &lt;strong&gt;IComparable&lt;/strong&gt;&lt;br /&gt;{&lt;br /&gt;    public enum ComparisonType&lt;br /&gt;    {&lt;br /&gt;        Date = 1,&lt;br /&gt;        Text = 2,&lt;br /&gt;        Number = 3&lt;br /&gt;    };&lt;br /&gt;&lt;p&gt;&lt;br /&gt;    // This class has three different members.&lt;br /&gt;    // You can customize these with your own data.&lt;br /&gt;    private DateTime _date;&lt;br /&gt;    private string   _text;&lt;br /&gt;    private int      _number;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;    private static ComparisonType _compType;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;    public clsDataRecord(DateTime date, string text, int number)&lt;br /&gt;    {&lt;br /&gt;        _date = date;&lt;br /&gt;        _text = text;&lt;br /&gt;        _number = number;&lt;br /&gt;    }&lt;br /&gt;&lt;p&gt;&lt;br /&gt;    public DateTime Date&lt;br /&gt;    {&lt;br /&gt;        get { return _date; }&lt;br /&gt;        set { _date = value; }&lt;br /&gt;    }&lt;br /&gt;&lt;p&gt;&lt;br /&gt;    public string Text&lt;br /&gt;    {&lt;br /&gt;        get { return _text; }&lt;br /&gt;        set { _text = value; }&lt;br /&gt;    }&lt;br /&gt;&lt;p&gt;&lt;br /&gt;    public int Number&lt;br /&gt;    {&lt;br /&gt;        get { return _number; }&lt;br /&gt;        set { _number = value; }&lt;br /&gt;    }&lt;br /&gt;&lt;p&gt;&lt;br /&gt;    public static ComparisonType CompType&lt;br /&gt;    {&lt;br /&gt;        get { return _compType; }&lt;br /&gt;        set { _compType = value; }&lt;br /&gt;    }&lt;br /&gt;&lt;p&gt;&lt;br /&gt;    public override string ToString()&lt;br /&gt;    {&lt;br /&gt;        return String.Format("{0} - {1} - {2}", _date.ToShortDateString(), _text, _number.ToString());&lt;br /&gt;    }&lt;br /&gt;&lt;p&gt;&lt;br /&gt;    public int &lt;strong&gt;CompareTo&lt;/strong&gt;(object obj)&lt;br /&gt;    {&lt;br /&gt;        if (obj is clsDataRecord)&lt;br /&gt;        {&lt;br /&gt;            clsDataRecord r2 = (clsDataRecord)obj;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;            switch (_compType)&lt;br /&gt;            {&lt;br /&gt;                case ComparisonType.Date:&lt;br /&gt;                    return _date.CompareTo(r2.Date);&lt;br /&gt;                case ComparisonType.Text:&lt;br /&gt;                    return _text.CompareTo(r2.Text);&lt;br /&gt;                case ComparisonType.Number:&lt;br /&gt;                default:&lt;br /&gt;                    return _number.CompareTo(r2.Number);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        else&lt;br /&gt;            throw new ArgumentException("Object is not an clsDataRecord.");&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-3484266570637982044?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/3484266570637982044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=3484266570637982044' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/3484266570637982044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/3484266570637982044'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/02/sorting-2d-string-list-in-c.html' title='Sorting 2D string list in C#'/><author><name>inside</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-2183752626731231445.post-7562046027968178174</id><published>2009-02-11T11:40:00.000-08:00</published><updated>2009-02-11T11:42:49.021-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='array'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Rectangular Array vs. Jagged Array in C#</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/__agVHFzuTGs/SZMp9o6iMyI/AAAAAAAAAAM/-EaQOXfwxRM/s1600-h/7230f1414.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5301627325276893986" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 346px; CURSOR: hand; HEIGHT: 133px; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/__agVHFzuTGs/SZMp9o6iMyI/AAAAAAAAAAM/-EaQOXfwxRM/s320/7230f1414.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Reference: &lt;a href="http://en.csharp-online.net/All_about_Arrays_in_CSharp%E2%80%94Comparing_Rectangular_and_Jagged_Arrays"&gt;http://en.csharp-online.net/All_about_Arrays_in_CSharp%E2%80%94Comparing_Rectangular_and_Jagged_Arrays&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-7562046027968178174?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/7562046027968178174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=7562046027968178174' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/7562046027968178174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/7562046027968178174'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/02/rectangular-array-vs-jagged-array-in-c.html' title='Rectangular Array vs. Jagged Array in C#'/><author><name>inside</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://2.bp.blogspot.com/__agVHFzuTGs/SZMp9o6iMyI/AAAAAAAAAAM/-EaQOXfwxRM/s72-c/7230f1414.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2183752626731231445.post-2335559773573855835</id><published>2009-02-06T14:06:00.000-08:00</published><updated>2009-02-06T14:09:06.009-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='date'/><title type='text'>Set DateTimePicker in C# with specific date</title><content type='html'>string example = "2/6/09";&lt;br /&gt;char[] delimiter = {'/'};&lt;br /&gt;string[] dateInfo = example.Split(delimiter);&lt;br /&gt;&lt;br /&gt;private System.Windows.Forms.DateTimePicker myDateTimePicker;&lt;br /&gt;&lt;br /&gt;myDateTimePicker.Value = new DateTime(int.Parse(dateInfo[2]) + 2000, int.Parse(dateInfo[0]), int.Parse(dateInfo[1]));&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-2335559773573855835?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/2335559773573855835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=2335559773573855835' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/2335559773573855835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/2335559773573855835'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/02/set-datetimepicker-in-c-with-specific.html' title='Set DateTimePicker in C# with specific date'/><author><name>inside</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-2183752626731231445.post-9144199656763530674</id><published>2009-02-06T14:04:00.000-08:00</published><updated>2009-02-07T11:31:26.681-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='string'/><title type='text'>string to integer in C#</title><content type='html'>&lt;strong&gt;Example&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;string str = "09";&lt;br /&gt;int year = int.Parse(str) + 2000;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;br /&gt;year == 2009&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-9144199656763530674?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/9144199656763530674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=9144199656763530674' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/9144199656763530674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/9144199656763530674'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/02/string-to-integer-in-c.html' title='string to integer in C#'/><author><name>inside</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-2183752626731231445.post-3906521240519078015</id><published>2009-02-06T13:24:00.000-08:00</published><updated>2009-02-06T13:28:18.575-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='string'/><title type='text'>Split string in C#</title><content type='html'>&lt;strong&gt;Example code&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;class TestStringSplit&lt;br /&gt;{&lt;br /&gt;    static void Main()&lt;br /&gt;    {&lt;br /&gt;        char[] delimiterChars = { ' ', ',', '.', ':', '\t' };&lt;br /&gt;        string text = "one\ttwo three:four,five six seven";&lt;br /&gt;        System.Console.WriteLine("Original text: '{0}'", text);&lt;br /&gt;        string[] words = text.Split(delimiterChars);&lt;br /&gt;        System.Console.WriteLine("{0} words in text:", words.Length);&lt;br /&gt;        foreach (string s in words)&lt;br /&gt;        {&lt;br /&gt;            System.Console.WriteLine(s);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Original text: 'one two three:four,five six seven'&lt;br /&gt;7 words in text:&lt;br /&gt;one&lt;br /&gt;two&lt;br /&gt;three&lt;br /&gt;four&lt;br /&gt;five&lt;br /&gt;six&lt;br /&gt;seven&lt;br /&gt;&lt;br /&gt;Reference: &lt;a href="http://msdn.microsoft.com/en-us/library/ms228388(VS.80).aspx"&gt;http://msdn.microsoft.com/en-us/library/ms228388(VS.80).aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-3906521240519078015?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/3906521240519078015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=3906521240519078015' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/3906521240519078015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/3906521240519078015'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/02/split-string-in-c.html' title='Split string in C#'/><author><name>inside</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-2183752626731231445.post-8296460227686689526</id><published>2009-02-06T12:09:00.000-08:00</published><updated>2009-02-06T12:13:27.747-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='paper'/><title type='text'>Related work searching</title><content type='html'>"&lt;a href="http://www.scitopia.org/"&gt;http://www.scitopia.org/&lt;/a&gt;" provides an interesting related work searching facility supoorted by a large number of professonal societies - led by IEEE.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-8296460227686689526?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/8296460227686689526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=8296460227686689526' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/8296460227686689526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/8296460227686689526'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/02/related-work-searching.html' title='Related work searching'/><author><name>inside</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-2183752626731231445.post-3393412367846728013</id><published>2009-02-06T07:06:00.000-08:00</published><updated>2009-02-06T07:37:57.625-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='smartphone'/><category scheme='http://www.blogger.com/atom/ns#' term='emulator'/><title type='text'>How to access the file system on Windows Mobile 5 Smartphone emulator</title><content type='html'>Here is the short description about how to access the file system on Windows Mobile emulator.&lt;br /&gt;&lt;br /&gt;If your application is using data files or images, you need to copy them in a memory for the emulator.&lt;br /&gt;&lt;br /&gt;I assume that you use Visual Studio 2005, you didn't connect any mobile device to your desktop, and you have already installed ActiveSync.&lt;br /&gt;&lt;br /&gt;Here is simple procedure.&lt;br /&gt;1. Under "Tools" in Visual Studio 2005, select "Device Emulator Manager".&lt;br /&gt;2. Scroll down the list of emulated devices until you see what you want to use.&lt;br /&gt;(i.e., I selected "Windows Mobile 5.0 Smartphone Emulator".)&lt;br /&gt;3. Under "Actions" in the emulator manager, select "Connect". Then, an emulator will pop up.&lt;br /&gt;4. Under "Actions" in the emulator manager, select "Cradle".&lt;br /&gt;5. Now open ActiveSync.  Under "File" in ActiveSync, select "Connection Settings". Check "Allow connections to one of the following" and select "DMA".  You only need to do this once. When you click “Connect” in ActiveSync, it connects to the emulator and give you some setup screens. After the first time, the connection happens automatically when you “cradle” the emulator via the Device Emulator manager.&lt;br /&gt;6. Now you can browse the file system on the emulator by selecting “Explore” on ActiveSync (or&lt;br /&gt;selecting “Mobile Device” from My Computer). By default, your application is deployed to&lt;br /&gt;“Program Files\[your application name]”.&lt;br /&gt;&lt;br /&gt;Reference: &lt;a href="http://inst.eecs.berkeley.edu/~cs160/sp06/section/vstutorial.pdf"&gt;http://inst.eecs.berkeley.edu/~cs160/sp06/section/vstutorial.pdf&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-3393412367846728013?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/3393412367846728013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=3393412367846728013' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/3393412367846728013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/3393412367846728013'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2009/02/how-to-access-file-system-on-windows.html' title='How to access the file system on Windows Mobile 5 Smartphone emulator'/><author><name>inside</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-2183752626731231445.post-5336623424633032090</id><published>2008-09-06T10:38:00.000-07:00</published><updated>2008-09-06T10:44:08.858-07:00</updated><title type='text'>The first post</title><content type='html'>I created this new blog to write some meno and information for myself and people who want to be a graphics software engineer. I got master degree in computer graphics in 2000, and worked as a graphcis softwre engineer in Korea for six years. Now, I am a Ph.D. student at Purdue University. I also hope to continue to work as a graphics software engineer after getting Ph.D. degree.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2183752626731231445-5336623424633032090?l=beagraphicssoftwareengineer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beagraphicssoftwareengineer.blogspot.com/feeds/5336623424633032090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2183752626731231445&amp;postID=5336623424633032090' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/5336623424633032090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2183752626731231445/posts/default/5336623424633032090'/><link rel='alternate' type='text/html' href='http://beagraphicssoftwareengineer.blogspot.com/2008/09/first-post.html' title='The first post'/><author><name>inside</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>
