<?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-6724495882902199360</id><updated>2012-02-16T03:31:20.274-05:00</updated><category term='open source'/><title type='text'>Zhibin and  Open Source</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>30</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-6482886645740821770</id><published>2010-05-21T12:34:00.000-04:00</published><updated>2010-05-21T12:34:20.828-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>Pacman on Google</title><content type='html'>Today, Google publish a pacman logo to celebrate pacman's 30th birthday. However, have you awared that the logo is playable and it is done by div tag, one image, css and javascript. &lt;br /&gt;&lt;a href="http://matrix.senecac.on.ca/~zbhuang1/pacman/pacman10-hp-sprite.png"&gt;&lt;img border="0" height="262" src="http://matrix.senecac.on.ca/~zbhuang1/pacman/pacman.jpg" width="450" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;More than that, the most exciting thing is it is open, so that you can see the source code and to study it. &lt;br /&gt;&lt;br /&gt;the javascript source code is available on &lt;a href="http://www.google.ca/logos/js/pacman10-hp.2.js"&gt;http://www.google.ca/logos/js/pacman10-hp.2.js&lt;/a&gt;. and you can see a formated code &lt;a href="http://matrix.senecac.on.ca/~zbhuang1/pacman/jscode.txt"&gt;here&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;and you can check the html source code which is relatedto pacman and well formated &lt;a href="http://matrix.senecac.on.ca/~zbhuang1/pacman/htmlcode.txt"&gt;here&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;and the only image is &lt;br /&gt;&lt;a href="http://matrix.senecac.on.ca/~zbhuang1/pacman/pacman10-hp-sprite.png"&gt;&lt;img border="0" gu="true" height="142" src="http://matrix.senecac.on.ca/~zbhuang1/pacman/pacman10-hp-sprite.png" width="400" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;So, those are all you need to made a pacman game on a page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-6482886645740821770?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/6482886645740821770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/05/pacman-on-google.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/6482886645740821770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/6482886645740821770'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/05/pacman-on-google.html' title='Pacman on Google'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-7794138608433401678</id><published>2010-04-12T22:29:00.000-04:00</published><updated>2010-04-12T22:29:37.302-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>release 0.3</title><content type='html'>I just achieved the 3D part of the text() function (&lt;a href="https://processing-js.lighthouseapp.com/projects/41284-processingjs/tickets/422-3d-text-implementation#ticket-422-7"&gt;ticket&lt;/a&gt;) in &lt;a href="http://processingjs.org/"&gt;Processing.js&lt;/a&gt;. So far the &lt;a href="http://matrix.senecac.on.ca/~zbhuang1/processing.js/3dtext2/text-3d.html"&gt;test&lt;/a&gt; look identical compared with the same code in &lt;a href="http://processing.org/"&gt;Processing&lt;/a&gt;.&lt;br /&gt;&lt;h3&gt;Screenshot and Test&lt;/h3&gt;&lt;a href="http://matrix.senecac.on.ca/~zbhuang1/processing.js/3dtext2/text-3d.html"&gt;&lt;img border="0" height="310" src="http://3.bp.blogspot.com/_Ztvx09__-Z8/S8PNj-pyqxI/AAAAAAAAACY/4PfcgaTBkf0/s400/text3d2.jpg" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;h3&gt;existence problem&lt;/h3&gt;the performance is too bad. almost 80% of time is spending on the text() function.&lt;a href="http://1.bp.blogspot.com/_Ztvx09__-Z8/S8PQr5jUcLI/AAAAAAAAACg/Fa34vSvok2c/s1600/profile-text3d.jpg"&gt;&lt;img border="0" height="125" src="http://1.bp.blogspot.com/_Ztvx09__-Z8/S8PQr5jUcLI/AAAAAAAAACg/Fa34vSvok2c/s400/profile-text3d.jpg" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;hope somebody can figure out a way to re-use the texture, so that it doesn't need to re-create texture when everytime it runs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-7794138608433401678?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/7794138608433401678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/04/release-03.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/7794138608433401678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/7794138608433401678'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/04/release-03.html' title='release 0.3'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Ztvx09__-Z8/S8PNj-pyqxI/AAAAAAAAACY/4PfcgaTBkf0/s72-c/text3d2.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-5294005775960353277</id><published>2010-04-07T18:12:00.000-04:00</published><updated>2010-04-07T18:12:37.574-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>step closer to the 3D text</title><content type='html'>It have been almost a week since my last post, but I am still working on the &lt;a href="https://processing-js.lighthouseapp.com/projects/41284-processingjs/tickets/422-3d-text-implementation#ticket-422-2"&gt;3D text&lt;/a&gt; and now it is getting closer to achieve.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Problem that I encountered&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;missing a comma in one of the statement in my code&lt;/li&gt;&lt;li&gt;someone type a "3" instead of a "2" in one of the statement inside the project&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h3&gt;What I have now&lt;/h3&gt;&lt;a href="http://matrix.senecac.on.ca/~zbhuang1/processing.js/3dtext/text-3d.html"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_Ztvx09__-Z8/S7z9XA8pvlI/AAAAAAAAACQ/8jm-eb-wLPo/s320/text3d.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Bugs that I know&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;eating tons of memory&lt;/li&gt;&lt;li&gt;crash the browser(&lt;a href="http://crash-stats.mozilla.com/report/index/bp-69ab7995-4378-4931-a0d2-1c58b2100407"&gt;detail&lt;/a&gt;). It crashes because of &lt;a href="http://learningwebgl.com/blog/?p=11#install-firefox"&gt;webgl software rendering&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h3&gt;To-do&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;need to think up a way to reuse the texture for text in order to reduce the use of memory&lt;/li&gt;&lt;li&gt;update the text 2D so that they can work together smoothly&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-5294005775960353277?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/5294005775960353277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/04/step-closer-to-3d-text.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/5294005775960353277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/5294005775960353277'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/04/step-closer-to-3d-text.html' title='step closer to the 3D text'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Ztvx09__-Z8/S7z9XA8pvlI/AAAAAAAAACQ/8jm-eb-wLPo/s72-c/text3d.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-4590063134318277470</id><published>2010-03-29T02:11:00.000-04:00</published><updated>2010-03-29T02:11:54.920-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>JavaScript and ActionScript</title><content type='html'>Since my uncle came this weekend, I really didn't a time to focus on coding. However, I read something interesting about JavaScript, ActionScript, Canvas and Flash.&lt;br /&gt;&lt;h3&gt;JavaScript and ActionScript&lt;/h3&gt;&lt;a href="http://en.wikipedia.org/wiki/JavaScripthttp://en.wikipedia.org/wiki/JavaScript"&gt;JavaScript&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/ActionScript"&gt;ActionScript&lt;/a&gt; are brothers. They both come from &lt;a href="http://en.wikipedia.org/wiki/ECMAScript"&gt;ECMAScript&lt;/a&gt;. No wonder why I am so easy to understand the syntax of JavaScript. (Background: I started to learned Flash 5 years ago. Check one of my little flash example in my &lt;a href="http://zbhuang1.blogspot.com/2010/01/3d-in-processing_8216.html"&gt;previous post&lt;/a&gt;.) &lt;br /&gt;They are different with C++. As my opensource professor &lt;a href="http://zenit.senecac.on.ca/wiki/index.php/User:David.humphrey"&gt;David&lt;/a&gt; said, they are functional language. Function is the basics. Therefore, you can do something impossible in C++, and they are easier. For example,&lt;pre class="cpp" name="code" width="300px"&gt;&lt;br /&gt;for(var i=0;i&amp;lt;10;i++){&lt;br /&gt;  this["t"+i].i = i;&lt;br /&gt;  this["t"+i] = function{&lt;br /&gt;    return this.i;&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;it will create ten functions inside the global scope, let's say. The name of them are t0,t1,t2 and so on until t9. and they will return 0,1,2 and so on until 9 for each. It doesn't have any meaning in the code, but if I need to do it in C++, then I need the create ten functions and store the pointer of the funtions into an array. That is the reason why I think JavaScript and ActionScript are easier than C++.&lt;h3&gt;JavaScript vs ActionScript&lt;/h3&gt;I don't think they have anything to compare with, because JavaScript manage the element of HTML page, and ActionScript is for a better graphics and animation. Everything is so peaceful until &lt;b&gt;Canvas&lt;/b&gt; come up.&lt;h3&gt;Canvas vs Flash&lt;/h3&gt;&lt;a href="http://en.wikipedia.org/wiki/Canvas_element"&gt;Canvas&lt;/a&gt;, one of the new element in HTML5.&lt;/br&gt;&lt;a href="http://en.wikipedia.org/wiki/Adobe_Flash"&gt;Flash&lt;/a&gt;, a wide using web element since 1996.&lt;/br&gt;There are a lot of voice on the web talking about Canvas and Flash.&lt;/br&gt;&lt;a href="http://www.informationweek.com/news/mobility/business/showArticle.jhtml?articleID=223101717&amp;pgno=1&amp;queryText=&amp;isPrev="&gt;Adobe, Microsoft Spar Over Flash, Silverlight, HTML5&lt;/a&gt;&lt;/br&gt;&lt;a href="http://blogs.gartner.com/ray_valdes/"&gt;HTML5 and the future of Adobe Flash&lt;/a&gt;&lt;/br&gt;&lt;a href="http://www.streaminglearningcenter.com/articles/flash-player-cpu-hog-or-hot-tamale-it-depends-.html"&gt;Flash Player: CPU Hog or Hot Tamale? It Depends.&lt;/a&gt;&lt;/br&gt;Lots of, Lots of articles. &lt;h3&gt;My point of view&lt;/h3&gt;It is unfair to say which is good or not since HTML5 is still under experimental. In China, there is an old said that, "&lt;a href="http://en.wikipedia.org/wiki/Hundred_Schools_of_Thought"&gt;Hundred Schools of Thought&lt;/a&gt;". For me, the programming field is still growing, and looks healthy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-4590063134318277470?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/4590063134318277470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/03/javascript-and-actionscript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/4590063134318277470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/4590063134318277470'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/03/javascript-and-actionscript.html' title='JavaScript and ActionScript'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-1500088916576707224</id><published>2010-03-21T22:44:00.000-04:00</published><updated>2010-03-21T22:44:25.113-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>Release 0.2</title><content type='html'>&lt;h3&gt;Background&lt;/h3&gt;the release includes the work that I have done for &lt;a href="http://processingjs.org/"&gt;pjs&lt;/a&gt; tickets &lt;a href="https://processing-js.lighthouseapp.com/projects/41284-processingjs/tickets/213-text-implementation-incomplete"&gt;#213&lt;/a&gt; and &lt;a href="https://processing-js.lighthouseapp.com/projects/41284-processingjs/tickets/422-3d-text-implementation"&gt;#422&lt;/a&gt;.&amp;nbsp;#422&amp;nbsp;was originally belong to #213, but first, &lt;a href="http://zenit.senecac.on.ca/wiki/index.php/User:Anna.sobiepanek"&gt;Anna&lt;/a&gt; suggested me to&amp;nbsp;seprate them;&amp;nbsp;Second, there are realy too many differences between&amp;nbsp;the 2D text and 3D text.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Things have done&lt;/h3&gt;2D part (&lt;a href="https://processing-js.lighthouseapp.com/projects/41284-processingjs/tickets/213-text-implementation-incomplete"&gt;#213&lt;/a&gt;)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;completed the funtionalities since&lt;a href="http://zbhuang1.blogspot.com/2010/02/pjs-text-release-01.html"&gt; release 0.1&lt;/a&gt;&lt;/li&gt;&lt;a href="http://matrix.senecac.on.ca/~zbhuang1/processing.js/2dtext/2dtext.html"&gt;&lt;img border="0" height="271" src="http://matrix.senecac.on.ca/~zbhuang1/processing.js/2dtext/2dtext.jpg" vt="true" width="320" /&gt;&lt;/a&gt;&lt;li&gt;fixed a little syntax error&lt;/li&gt;&lt;li&gt;&lt;a href="https://processing-js.lighthouseapp.com/projects/41284-processingjs/tickets/213-text-implementation-incomplete#ticket-213-10"&gt;requested review&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;3D part (&lt;a href="https://processing-js.lighthouseapp.com/projects/41284-processingjs/tickets/422-3d-text-implementation"&gt;#422&lt;/a&gt;)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;implemented the &lt;a href="http://matrix.senecac.on.ca/~zbhuang1/processing.js/3dtext/test3.html"&gt;prototype&lt;/a&gt;&amp;nbsp;(&lt;a href="http://zbhuang1.blogspot.com/2010/03/3d-text-on-html5-continue.html"&gt;post&lt;/a&gt;)&lt;/li&gt;&lt;a href="http://matrix.senecac.on.ca/~zbhuang1/processing.js/3dtext/test3.html"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_Ztvx09__-Z8/S6bYeBvzDLI/AAAAAAAAACI/PvykFLqAhWs/s320/mytest3.jpg" vt="true" /&gt;&lt;/a&gt; &lt;/ul&gt;&lt;br /&gt;&lt;h3&gt;Challenges&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Using &amp;amp; Managing&amp;nbsp;&lt;a href="http://github.com/zbhuang1/processing-js"&gt;git&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.khronos.org/webgl/"&gt;WebGL&lt;/a&gt; is truly tough. I am still confused how to organize the code of the 3D part&lt;/li&gt;&lt;li&gt;Javascript. Understaning the sytax, but maybe working more a little bit&amp;nbsp;on that will be much better&lt;/li&gt;&lt;li&gt;Merging code.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-1500088916576707224?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/1500088916576707224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/03/release-02.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/1500088916576707224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/1500088916576707224'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/03/release-02.html' title='Release 0.2'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Ztvx09__-Z8/S6bYeBvzDLI/AAAAAAAAACI/PvykFLqAhWs/s72-c/mytest3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-6055206584055894122</id><published>2010-03-18T00:52:00.000-04:00</published><updated>2010-03-18T00:52:04.575-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>3D text on HTML5 continue</title><content type='html'>this is the second post of the &lt;a href="http://zbhuang1.blogspot.com/2010/03/3d-text-on-html5.html"&gt;3D text on HTML5&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;How far have I reached&lt;/h3&gt;&lt;a href="http://matrix.senecac.on.ca/~zbhuang1/processing.js/3dtext/test4.html"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/_Ztvx09__-Z8/S6GhRbWpmOI/AAAAAAAAACA/SVz2bU9BZT8/s400/mytest2.jpg" vt="true" width="388" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;h3&gt;What is that&lt;/h3&gt;As you see, it is a 3D text at the top of a square and a triangle. As the same with the&lt;a href="http://matrix.senecac.on.ca/~zbhuang1/processing.js/3dtext/test.html"&gt; last one&lt;/a&gt;, it refers to&amp;nbsp;WebGL &lt;a href="http://learningwebgl.com/blog/?p=507"&gt;Lesson 5&lt;/a&gt; and a &lt;a href="http://www.glge.org/demos/textdemo/index.htm"&gt;textdemo&lt;/a&gt; from &lt;a href="http://www.glge.org/"&gt;glge&lt;/a&gt;, and plus&amp;nbsp;&lt;a href="http://github.com/gpjt/webgl-lessons/blob/master/lesson08/index.html#L451"&gt;three lines&lt;/a&gt; of code from WebGL &lt;a href="http://learningwebgl.com/blog/?p=859"&gt;Lesson 8&lt;/a&gt;. The square and&amp;nbsp;triangle are coming from the &lt;a href="http://learningwebgl.com/blog/?p=134"&gt;Lesson 2&lt;/a&gt;&amp;nbsp;in order to highline the 3D text. &lt;br /&gt;&lt;h3&gt;A&amp;nbsp;list of my references for 3D canvas&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://learningwebgl.com/blog/?page_id=1217"&gt;WebGL Lesson series&lt;/a&gt; &lt;a href="http://learningwebgl.com/blog/?p=507"&gt;Lesson 5&lt;/a&gt;, &lt;a href="http://learningwebgl.com/blog/?p=859"&gt;Lesson 8&lt;/a&gt; and &lt;a href="http://learningwebgl.com/blog/?p=134"&gt;Lesson 2&lt;/a&gt;&amp;nbsp;- actually, all the lessons that inside the WebGL are very using. They are&amp;nbsp;easy understanding, great instruction&amp;nbsp;and open source.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.glge.org/"&gt;GLGE&lt;/a&gt;&amp;nbsp;- a javascript library using the &lt;a href="http://www.khronos.org/webgl/"&gt;WebGL&lt;/a&gt;. They have a lot of exciting demos using WebGL. It is a good place to look at.&lt;/li&gt;&lt;li&gt;&lt;a href="https://cs.senecac.on.ca/~gam666/pages/content/3dmat.html"&gt;Mathematical Concepts of 3D&lt;/a&gt;&amp;nbsp;- an guide of math&amp;nbsp;from seneca game programming course.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.clockworkcoders.com/oglsl/tutorial1.htm"&gt;a tutorial of openGL&lt;/a&gt;&amp;nbsp;- a tutorial of openGL. i had only read the one that I linked to, but it already brought me a lot of understanding.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Next Step&lt;/h3&gt;The easiest is breaking someone's code. Second is&amp;nbsp;writing my own code.&amp;nbsp;After that, reading others codes. The most difficult is combining other people's codes with my own code and make sure didn't break anything. Now, I am going to the last step. Pushing my code in to code of processing.js. If luckily, I will be able to release the whole &lt;a href="https://processing-js.lighthouseapp.com/projects/41284-processingjs/tickets/213-text-implementation-incomplete#ticket-213-6"&gt;text()&lt;/a&gt; function before weekend. Otherwise, at least, I put out a 3D text() preview.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-6055206584055894122?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/6055206584055894122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/03/3d-text-on-html5-continue.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/6055206584055894122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/6055206584055894122'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/03/3d-text-on-html5-continue.html' title='3D text on HTML5 continue'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Ztvx09__-Z8/S6GhRbWpmOI/AAAAAAAAACA/SVz2bU9BZT8/s72-c/mytest2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-5406741631926635148</id><published>2010-03-14T19:43:00.000-04:00</published><updated>2010-03-14T19:43:50.445-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>3D text on HTML5</title><content type='html'>I have to say this is very difficult, and I am still not very sure how it works.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;What I made&lt;/h3&gt;&lt;a href="http://matrix.senecac.on.ca/~zbhuang1/processing.js/3dtext/test.html"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_Ztvx09__-Z8/S51rCEPDANI/AAAAAAAAABs/3f4UVUyXNZI/s320/mytest.jpg" vt="true" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;What is that&lt;/h3&gt;I combine the code from &lt;a href="http://learningwebgl.com/blog/?p=507"&gt;WebGL Lesson 5&lt;/a&gt;, the &lt;a href="http://learningwebgl.com/blog/?page_id=1217"&gt;WebGL series Lesson&lt;/a&gt; that &lt;a href="http://scottdowne.blogspot.com/2010/02/study-week-project-day-05.html"&gt;Soctt mentioned about&lt;/a&gt;, with a &lt;a href="http://www.glge.org/demos/textdemo/index.htm"&gt;textdemo&lt;/a&gt; from &lt;a href="http://www.glge.org/"&gt;glge&lt;/a&gt;. This example will be the prototype of my release 0.2.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;The idea&lt;/h3&gt;The idea of how to implement 3d text is draw the text as texture, then transparent the background. Therefore, I still have a long way to good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-5406741631926635148?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/5406741631926635148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/03/3d-text-on-html5.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/5406741631926635148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/5406741631926635148'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/03/3d-text-on-html5.html' title='3D text on HTML5'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Ztvx09__-Z8/S51rCEPDANI/AAAAAAAAABs/3f4UVUyXNZI/s72-c/mytest.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-4061855868953198243</id><published>2010-03-10T20:55:00.000-05:00</published><updated>2010-03-10T20:55:42.923-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>pjs branch update</title><content type='html'>Labeled my&amp;nbsp;&lt;a href="http://github.com/zbhuang1/processing-js/tree/text"&gt;branch&lt;/a&gt;&amp;nbsp;as&amp;nbsp;"text", and updated it with &lt;a href="http://github.com/annasob/processing-js/tree/0.7"&gt;Anna's 0.7&lt;/a&gt;. Also, changed&amp;nbsp;the code and made it ready for release 0.2 (&lt;a href="http://zbhuang1.blogspot.com/2010/01/project-plan-initializationdraft.html"&gt;3d text&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;I don't know if I updated&amp;nbsp;my branch correctly or if I should do so, but it seem to make sense for this moment. After reading something articles about the Git, I start to&amp;nbsp;have the feeling&amp;nbsp;what exactly it is and realize I still need to learn more about it. Not only Git, but as well as SVN and HP. They are so powerful and also difficult for me. It just like the history happen again. Back to&amp;nbsp;my first knew Flash, it took me a long long time to learn it (&amp;nbsp;bg:&amp;nbsp;Actionscript&amp;nbsp;is my first programming language&amp;nbsp;). &lt;br /&gt;&lt;br /&gt;Now there are still a little confusion in my mind, but as long as I keep touching it, it will be better. Just like what happen before.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-4061855868953198243?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/4061855868953198243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/03/pjs-branch-update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/4061855868953198243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/4061855868953198243'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/03/pjs-branch-update.html' title='pjs branch update'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-4697487356986556603</id><published>2010-03-08T17:46:00.000-05:00</published><updated>2010-03-08T17:46:42.390-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>Thunderbird Lab</title><content type='html'>After I finished the Liunx Socket assignment, I finally have some time to go back and work on the &lt;a href="http://zenit.senecac.on.ca/wiki/index.php/Thunderbird_Bug_Fix_Lab"&gt;Thunderbird Lab&lt;/a&gt;. Since a lot of classmate have blogged it, I have lot of example to refer to - &lt;a href="http://cldenobrega.wordpress.com/2010/02/28/thunderbird-bug-fix-lab/"&gt;Crystal&lt;/a&gt;, &lt;a href="http://jmchen11.wordpress.com/2010/02/26/thunderbird-debug-build/"&gt;Jianming&lt;/a&gt;,&amp;nbsp;&lt;a href="http://scottdowne.blogspot.com/2010/03/thunderbird-lab.html"&gt;Scott&lt;/a&gt;, &lt;a href="http://tdao75.blogspot.com/2010/03/thunderbird-lab.html"&gt;Thanh&lt;/a&gt; and &lt;a href="http://harjinderv.tumblr.com/post/425982469/simply-building-thunderbird"&gt;Harjinder&lt;/a&gt;,&amp;nbsp;and therefore, it much easier than I thought.&lt;br /&gt;&lt;br /&gt;Learning from &lt;a href="http://cldenobrega.wordpress.com/2010/02/28/thunderbird-bug-fix-lab/"&gt;Crystal&lt;/a&gt;, I pick up an &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=540229"&gt;example&lt;/a&gt; from the real Bugzilla to file my &lt;a href="https://landfill.bugzilla.org/bugzilla-3.0-branch/post_bug.cgi"&gt;bug&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://zbhuang1.blogspot.com/2010/03/network-reconnected-and-thunderbird-got.html"&gt;6 days to build Thunderbird&lt;/a&gt; are really a lot of time, but I learn something as well. Tracking &lt;a href="https://developer.mozilla.org/en/Tinderbox"&gt;Tinderbox&lt;/a&gt;, Revert code from Repository.&lt;br /&gt;&lt;br /&gt;Whatever,&amp;nbsp;it is a good experience.&amp;nbsp;( I still need to fix the code, and find someone to review, but that is the story later on.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-4697487356986556603?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/4697487356986556603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/03/thunderbird-lab.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/4697487356986556603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/4697487356986556603'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/03/thunderbird-lab.html' title='Thunderbird Lab'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-3153343126214160928</id><published>2010-03-06T17:49:00.000-05:00</published><updated>2010-03-06T17:49:54.677-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>network reconnected and thunderbird got built</title><content type='html'>The day before yesterday, people on IRC seneca channel may wonder why I asked a question and left without a answer. The reason was I lost the Internet connection after that day afternoon. Then, it continued on and off for the next two days. Looks like someone has a big TV series to download and shot the router down. I cann't stand for that and I logined in to the router, upgraded it. Well, I shouldn't do because I didn't have the permission to do so, but now the network looks like a little bit better. &lt;br /&gt;&lt;h3&gt;Thunderbird built&lt;/h3&gt;As I mentioned before(&lt;a href="http://zbhuang1.blogspot.com/2010/02/keep-failing-on-building-thunderbird.html"&gt;post: keep-failing-on-building-thunderbird&lt;/a&gt;), I kept failing on building thunderbird. However, I finally built it successfully yesterday. And now, I am working on the lab.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;What is reason?&lt;/h3&gt;It got built&amp;nbsp;is not only by luck but a lot of trying. Maybe it is good for me that I lost the network connection when I asked people because the reason is pretty obvious, and I even blog that on my last post (&lt;a href="http://zbhuang1.blogspot.com/2010/02/keep-failing-on-building-thunderbird.html"&gt;keep-failing-on-building-thunderbird&lt;/a&gt;) -&amp;nbsp;My firewall detected and removed the crash testing file &lt;a href="http://mxr.mozilla.org/comm-central/source/mozilla/content/xslt/crashtests/485217.xsl"&gt;485217.xsl&lt;/a&gt;. I noticed that&amp;nbsp;almost&amp;nbsp;at the&amp;nbsp;thirtieth time when I build it.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;How does it make the build fail?&lt;/h3&gt;It actually doesn't make the build fail. Although you remove that file, as long as you build the thunderbird&amp;nbsp;with "ac_add_options --disable-tests", it will succeed. Then why? The truth is, it fails the command "&lt;a href="https://developer.mozilla.org/en/Simple_Thunderbird_build#Building_Thunderbird"&gt;python client.py checkout&lt;/a&gt;". What this command does is to&amp;nbsp;update Comm.Central and pull the latest&amp;nbsp;Mozilla_Central. My firewall detected and removed the crash testing file 485217.xsl when that command is pulling the Mozilla_Central. After the pull, the command will update the files. At this moment, the command detected the the crash testing file 485217.xsl is missing, then it stops. and now, the mozilla_central locally is not completed. And then, I use those source code to build the thunderbird. Failure is definite.&lt;br /&gt;&lt;h3&gt;Conclusion&lt;/h3&gt;Keep the network connected, ask people, keep trying and never give up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-3153343126214160928?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/3153343126214160928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/03/network-reconnected-and-thunderbird-got.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/3153343126214160928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/3153343126214160928'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/03/network-reconnected-and-thunderbird-got.html' title='network reconnected and thunderbird got built'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-1985382527046013513</id><published>2010-02-28T20:07:00.000-05:00</published><updated>2010-02-28T20:07:33.461-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>keep failing on building thunderbird</title><content type='html'>Since last Wednesday my first try on building thunderbird(&lt;a href="http://zbhuang1.blogspot.com/2010/02/build-thunderbird.html"&gt;blog&lt;/a&gt;), it keeps failing on building thunderbird, and, now, I have total no idea why that happen.&lt;br /&gt;&lt;h3&gt;Suggestion&lt;/h3&gt;I talked about that with &lt;a href="http://zenit.senecac.on.ca/wiki/index.php/User:David.humphrey"&gt;David&lt;/a&gt; on Thursday class. He said he didn't know exactly why this happen. There is a funny thing that my firewall detected and removed the crash testing file &lt;a href="http://mxr.mozilla.org/comm-central/source/mozilla/content/xslt/crashtests/485217.xsl"&gt;485217.xsl&lt;/a&gt;... &lt;br /&gt;Anyway, David told me some method that may help me on my build.&lt;br/&gt;ac_add_options --disable-tests // ignore all the testing when it build&lt;br /&gt;make -f client build &amp;gt;log.txt 2&amp;gt;&amp;amp;1 // this is a remind. put all the output into a file called log.txt&lt;br /&gt;&lt;h3&gt;What I get&lt;/h3&gt;Basically, I use two different way to build thunderbird.&lt;br /&gt;&lt;br /&gt;One is I build thunderbird basic on my previous failure build. It looks like it just enter the directory, nothing to be done, leave that, again and again. Finally, it said there are "No targets specified and no makefile found", then error, error, error and exit.(&lt;a href="http://matrix.senecac.on.ca/~zbhuang1/buildThunderbird/build%20fail2.jpg"&gt;screen shot&lt;/a&gt;)(&lt;a href="http://matrix.senecac.on.ca/~zbhuang1/buildThunderbird/thunderbirdbuildfail1.txt"&gt;build log&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Another way is I remove everything about thunderbird, then clone the the source code again and build. And it just pause on some point (&lt;a href="http://matrix.senecac.on.ca/~zbhuang1/buildThunderbird/build%20fail3.jpg"&gt;screen shot&lt;/a&gt;). then I close the command line, build it again, same result as my first situation. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I have no idea what is going on and just try to build it again and again. If I still cannot get it built tonight, then, I will go to ask someone inside the community tomorrow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-1985382527046013513?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/1985382527046013513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/02/keep-failing-on-building-thunderbird.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/1985382527046013513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/1985382527046013513'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/02/keep-failing-on-building-thunderbird.html' title='keep failing on building thunderbird'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-7877322182912085619</id><published>2010-02-25T11:49:00.000-05:00</published><updated>2010-02-25T11:49:05.749-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>build Thunderbird</title><content type='html'>Yesterday I was trying to build Thunderbird. I try more than 10 times in three different way, and all of them have failed. &lt;br /&gt;&lt;br /&gt;At first, I google how to build Thunderbird, and I found an instruction on Mozilla. I thought I could use the same one I build Firefox, but it is wrong. It failed. It said I don't have the mail/build.mk file. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://matrix.senecac.on.ca/~zbhuang1/buildThunderbird/build%20fail1.jpg" imageanchor="1" style="cssfloat: left; margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="71" kt="true" src="http://matrix.senecac.on.ca/~zbhuang1/buildThunderbird/build%20fail1.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I thought, perhaps it was because I can build it on there or is something wrong on my mozilla source. Then, I cloned the source following the instruction, and built it again. However it still fail. &lt;br /&gt;&lt;br /&gt;on the third try, I gave up the software(TortoiseHg) I used to clone the source, and used the command line from mozilla build. I cloned the source, and run the "python client.py checkout", and build it. Everything looks good. but failed agian in some where. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://matrix.senecac.on.ca/~zbhuang1/buildThunderbird/build%20fail2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="218" kt="true" src="http://matrix.senecac.on.ca/~zbhuang1/buildThunderbird/build%20fail2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;To here, I don't how to go the next step. I should bring the question to class since i have the test on the next day.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-7877322182912085619?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/7877322182912085619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/02/build-thunderbird.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/7877322182912085619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/7877322182912085619'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/02/build-thunderbird.html' title='build Thunderbird'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-7887860893113950293</id><published>2010-02-22T19:25:00.000-05:00</published><updated>2010-02-22T19:25:07.388-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>breaking the firefox</title><content type='html'>Since last Thursday when &lt;a href="http://zenit.senecac.on.ca/wiki/index.php/User:David.humphrey"&gt;Dave&lt;/a&gt; taught us &lt;a href="http://zenit.senecac.on.ca/wiki/index.php/OSD600_Winter_2010_Weekly_Schedule#Week_6_.28Feb_15.29_.E2.80.93_Bugs.2C_Bugzilla.2C_and_Debugging"&gt;how to use ms visual studio(ms vs) to attach a process to debug&lt;/a&gt;, I started to want to figure how Firefox call its functions that inside the js files.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What I did last Thursday&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;I attached to Firefox and went through the source code about how it handle the windows message event. However, I could only be able to work on that for three hours, and then I have to concentrate my attention on my project management course. And it keeps me busy until this after.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What I did today afternoon&lt;/strong&gt;&lt;br /&gt;At last time, I already saw some familiar windows api. Therefore, this time, I directly setup a break point at the message &lt;a href="http://msdn.microsoft.com/en-us/library/ms645608(VS.85).aspx"&gt;WM_LBUTTONUP&lt;/a&gt;(&lt;a href="http://mxr.mozilla.org/mozilla-central/source/widget/src/windows/nsWindow.cpp#4139"&gt;line 4139 of /widget/src/windows/nsWindow.cpp&lt;/a&gt;). What I want is try to find out where it connect to the js source code. Then I step into, step over again and again. I suddenly I lost on there. It looks like a maze. I am going to the same source code again and again. and then I realize my thought that the message WM_LBUTTONUP triggers the addTab(&lt;a href="http://mxr.mozilla.org/mozilla-central/source/browser/base/content/tabbrowser.xml#1256"&gt;definition&lt;/a&gt;)(&lt;a href="http://zbhuang1.blogspot.com/2010/02/let-firefox-listens-to-my-order.html"&gt;my previous post&lt;/a&gt;) directly is wrong. It is INDIRECTLY! There are many other message have been called between them. The ms vs is very slow, so that I can't go through them one by one.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;To solve this problem&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;I put a line 'printf("zbhuang1 Msg: %d", (int)msg);' before &lt;a href="http://mxr.mozilla.org/mozilla-central/source/widget/src/windows/nsWindow.cpp#3739"&gt;line 3739 of /widget/src/windows/nsWindow.cpp&lt;/a&gt;. By the way, when you are holding the scroll bar of debug terminal, the minefield will be pause. Ok, the build is done. I click the "open a new tab" button at the tab bar,then pause the browser, release it, pause it... try to get the message which show up when a new Tab is display.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What I get&lt;/strong&gt;&lt;br /&gt;3 Full HD 1080p screen shot, &lt;a href="http://matrix.senecac.on.ca/~zbhuang1/mozilla/message%20test0.jpg"&gt;no.0&lt;/a&gt;, &lt;a href="http://matrix.senecac.on.ca/~zbhuang1/mozilla/message%20test1.jpg"&gt;no.1&lt;/a&gt;, &lt;a href="http://matrix.senecac.on.ca/~zbhuang1/mozilla/message%20test2.jpg"&gt;no.2&lt;/a&gt;.&lt;br /&gt;What I wonder is the message 133 and 144, because they only display once each time. Then, I setup the break point at there like &lt;a href="http://matrix.senecac.on.ca/~zbhuang1/mozilla/breakpoint.jpg"&gt;this&lt;/a&gt;. It turns out that actually the message 15 display the tab which doesn't make sense for me.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What I go to do next&lt;/strong&gt;&lt;br /&gt;I put a 'print("disk cache read broken!");' (copy and paste, and forgot to change. lol) into &lt;a href="http://mxr.mozilla.org/mozilla-central/source/browser/base/content/tabbrowser.xml#1256"&gt;addTab&lt;/a&gt;. Now it is building. Hope it will tell me which windows message call it. And I need to prepare my dinner :)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Concision&lt;/strong&gt;&lt;br /&gt;Maybe what I have done so far is meaningless, but that kind of structure have seeded in my mind. There are many many questions in my mind now. Why they use such a difficult&amp;nbsp;structure? How they make Mozilla cross platform? How they make the Cpp program call a js function?&lt;br /&gt;There are so many questions I cannot answer by this time, but I know if I keep going I will fine the answer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-7887860893113950293?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/7887860893113950293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/02/breaking-firefox.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/7887860893113950293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/7887860893113950293'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/02/breaking-firefox.html' title='breaking the firefox'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-2203946272676897937</id><published>2010-02-18T15:18:00.000-05:00</published><updated>2010-02-18T15:18:34.890-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>Let Firefox listens to my order</title><content type='html'>I was breaking the source code of Firefox last night. It was assigned by &lt;a href="http://zenit.senecac.on.ca/wiki/index.php/User:David.humphrey"&gt;Dave&lt;/a&gt;. All I need to do is changing the code of Firefox, and let it directs to the homepage while it opens a new tab. Since I forgot the exactly filenames of source code for how to create a new tab, I have to search their location again.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Beginning&lt;/strong&gt;&lt;br /&gt;I targeted on the navigator bar because it has the new tab button and the home button, which creates a new tab and opens the homepage. Then I went to &lt;a href="http://mxr.mozilla.org/"&gt;mxr&lt;/a&gt; and searched the label of new tab button, "Open a new tab". follow that was searching, searching and searching.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Found the place&lt;/strong&gt;&lt;br /&gt;I don't remember how long I spent to find the right place. There are two critical files:&lt;br /&gt;&lt;a href="http://mxr.mozilla.org/mozilla-central/source/browser/base/content/tabbrowser.xml#1256"&gt;\browser\base\content\tabbrowser.xml line 1256&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mxr.mozilla.org/mozilla-central/source/browser/base/content/browser.js#1718"&gt;\browser\base\content\browser.js line 1720&lt;/a&gt;&lt;br /&gt;the function addTab() inside the first file response open a new tab. the function gHomeButton.getHomePage() in the second file return the url of homepage.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What I changed&lt;/strong&gt;&lt;br /&gt;What I changed is I put two lines inside&amp;nbsp;&lt;a href="http://mxr.mozilla.org/mozilla-central/source/browser/base/content/tabbrowser.xml#1256"&gt;tabbrowser.xml&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp; if(!aURI)&lt;br /&gt;&amp;nbsp; &amp;nbsp;aURI = gHomeButton.getHomePage();&lt;br /&gt;&lt;br /&gt;before&lt;br /&gt;&lt;br /&gt;&amp;nbsp; var blank = !aURI || (aURI == "about:blank");&lt;br /&gt;&lt;br /&gt;then, I built the Firefox, and it works.(actually, I built 6 times last night to reach this T_T )&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Concision&lt;/strong&gt;&lt;br /&gt;It is a great experience to modify such a huge open source project. Although it is not much work to do, it still prove I have the ability, possibility and permission to do what I want to do.&lt;br /&gt;BTW, I am read the post from &lt;a href="http://galewis.blogspot.com/2010/02/enabling-firefox-tabs-to-load-homepage.html"&gt;G-Lewis&lt;/a&gt; and&amp;nbsp;&lt;a href="http://scottdowne.blogspot.com/2010/02/firefox-build-20.html"&gt;Scott Downe&lt;/a&gt;. They also have a very good post and they remind me I also need to enable the user to optionally set the tab to open homepage or to remain with blank page. Maybe I will try to accomplish that later.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-2203946272676897937?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/2203946272676897937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/02/let-firefox-listens-to-my-order.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/2203946272676897937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/2203946272676897937'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/02/let-firefox-listens-to-my-order.html' title='Let Firefox listens to my order'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-6528714052119147434</id><published>2010-02-17T21:34:00.001-05:00</published><updated>2010-02-17T21:40:05.350-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>pjs text() release 0.1</title><content type='html'>&lt;br /&gt;&lt;br /&gt;I am working on the &lt;a href="https://processing-js.lighthouseapp.com/projects/41284-processingjs/tickets/213-text-implementation-incomplete"&gt;ticket #213&lt;/a&gt; of &lt;a href="http://processingjs.org/"&gt;processing.js&lt;/a&gt;(pjs) this three weeks. I separated this ticket into three parts - 2D text, 3D text, dependent functions(&lt;a href="http://zbhuang1.blogspot.com/2010/01/project-plan-initializationdraft.html"&gt;previous post "Project plan initialization"&lt;/a&gt;). In this release(&lt;a href="http://zbhuang1.blogspot.com/2010/02/initialize-git-detail-of-release-01.html"&gt;related to previous post "initialize git &amp;amp; detail of release 0.1"&lt;/a&gt;), I have completed the 2D text - text(val), text(val,x,y,w,h).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How it looks like now&lt;/b&gt;&lt;br /&gt;this is the test (click to see the example):&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://matrix.senecac.on.ca/~zbhuang1/processing.js/texttest2.html" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="311" src="http://matrix.senecac.on.ca/~zbhuang1/processing.js/texttest2.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;By this moment, I have implemented almost everything about 2D text. One thing left is the processing for "\n" inside the text(val,x,y). I want to do this by substring something, but my knowledge doesn't cover that yet.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;My Solution&lt;/b&gt; - &lt;a href="http://github.com/zbhuang1/processing-js/commit/cf692229e880aa80186bf0e17b05c5a35a570516#L0L471"&gt;diff&lt;/a&gt;(changes in line &lt;a href="http://github.com/zbhuang1/processing-js/commit/cf692229e880aa80186bf0e17b05c5a35a570516#L0R469"&gt;469&lt;/a&gt; and &lt;a href="http://github.com/zbhuang1/processing-js/commit/cf692229e880aa80186bf0e17b05c5a35a570516#L0R4176"&gt;4176&lt;/a&gt;)&lt;br /&gt;Basically, only&amp;nbsp;text(val,x,y)(&lt;a href="http://github.com/zbhuang1/processing-js/commit/cf692229e880aa80186bf0e17b05c5a35a570516#L0R4200"&gt;line 4200&lt;/a&gt;) actually draw the text, and it will become text(val,x,y,z) in the next release by the way.&lt;br /&gt;Every time the functions such as text(val),text(val,x,y,w,h) are called. They will do anything they need, and finally call text(val,x,y)(&lt;a href="http://github.com/zbhuang1/processing-js/commit/cf692229e880aa80186bf0e17b05c5a35a570516#L0R4200"&gt;line 4200&lt;/a&gt;) to draw the text.&lt;br /&gt;This is similar to the &lt;a href="http://dev.processing.org/source/index.cgi/tags/processing-1.0.9/core/src/processing/core/PGraphics.java?view=markup"&gt;original processing source code&lt;/a&gt;. It reduces the difficulty for maintaining the code, and reduces the file size.&lt;br /&gt;I am not satisfied with its performance because text(val,x,y,w,h) draws the text letter by letter(&lt;a href="http://github.com/zbhuang1/processing-js/commit/cf692229e880aa80186bf0e17b05c5a35a570516#L0R4274"&gt;line 4274&lt;/a&gt;). I will change it as soon as I find out something like substring.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;br /&gt;It is only some work for two or three days, but I spent three weeks. Anyway, as I knew nothing about JavaScript and this project three weeks ago, it is not a bad result. However, no matter what, I have to speed up in the next release.&lt;br /&gt;Now I am waiting for the first &lt;a href="https://processing-js.lighthouseapp.com/projects/41284-processingjs/tickets/213-text-implementation-incomplete#ticket-213-4"&gt;review&lt;/a&gt;. Hope everything goes smoothly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-6528714052119147434?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/6528714052119147434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/02/pjs-text-release-01.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/6528714052119147434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/6528714052119147434'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/02/pjs-text-release-01.html' title='pjs text() release 0.1'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-1120854841632331098</id><published>2010-02-13T18:45:00.000-05:00</published><updated>2010-02-13T18:45:00.629-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>Reference materials sort out</title><content type='html'>Since it is the last day of the year of the lunar calendar, a lot of things need to be done by this time. Assignments,&lt;span class="word"&gt;&lt;span style="font-size: 16px;"&gt; my website,&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;span class="word"&gt;&lt;span style="font-size: 16px;"&gt;Greeting Call&lt;/span&gt;&lt;/span&gt;&lt;span class="word"&gt;&lt;span style="font-size: 16px;"&gt;, going out and&lt;/span&gt;&lt;/span&gt;&lt;span class="word"&gt;&lt;span style="font-size: 16px;"&gt; housework. Fortunately, &lt;a href="http://zbhuang1.blogspot.com/2010/02/initialize-git-detail-of-release-01.html"&gt;release 0.1&lt;/a&gt; is almost done and only little modify need to do. Therefore, I can relax and sort out what I have so far and get ready for release 0.2.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="word"&gt;&lt;span style="font-size: 16px;"&gt;&lt;b&gt;What I have so far&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="word"&gt;&lt;span style="font-size: 16px;"&gt;The most importance thing is a &lt;a href="http://codingforums.com/showthread.php?t=160028"&gt;website&lt;/a&gt; I found when I was working on the processing.js(pjs) function &lt;a href="https://processing-js.lighthouseapp.com/projects/41284/tickets/213-text-implementation-incomplete"&gt;text(val,x,y,w,h)&lt;/a&gt;. The website introduces 3D text with canvas setTransform. Here is what it looks like (click to see the real example):&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="word"&gt;&lt;span style="font-size: 16px;"&gt;&lt;a href="http://matrix.senecac.on.ca/~zbhuang1/processing.js/3dtext.html"&gt;&lt;img src="http://matrix.senecac.on.ca/~zbhuang1/processing.js/3dtext.jpg" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="word"&gt;&lt;span style="font-size: 16px;"&gt;Although it is not done by pjs, it still a good start for me to implement 3d text(pjs function &lt;/span&gt;&lt;/span&gt;&lt;span class="word"&gt;&lt;span style="font-size: 16px;"&gt;&lt;a href="https://processing-js.lighthouseapp.com/projects/41284/tickets/213-text-implementation-incomplete"&gt;text(val,x,y,z)&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="word"&gt;&lt;span style="font-size: 16px;"&gt;).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="word"&gt;&lt;span style="font-size: 16px;"&gt;Second thing is remind myself there are some useful link for me to check on when I get lose.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="word"&gt;&lt;span style="font-size: 16px;"&gt;&lt;a href="http://dev.opera.com/articles/view/html-5-canvas-the-basics/"&gt;HTML 5 canvas - the basics&lt;/a&gt;&amp;nbsp;- a very good brief introduce the basics of canvas 2d.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="word"&gt;&lt;span style="font-size: 16px;"&gt;&lt;a href="https://processing-js.lighthouseapp.com/projects/41284/tickets/71-translate"&gt;pjs ticket #71&lt;/a&gt; - according to the processing source code, I will need the function translate().&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="word"&gt;&lt;span style="font-size: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="word"&gt;&lt;span style="font-size: 16px;"&gt;&lt;b&gt;Release 0.2 Plan (draft)&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="word"&gt;&lt;span style="font-size: 16px;"&gt;I am going to implement &lt;/span&gt;&lt;/span&gt;&lt;span class="word"&gt;&lt;span style="font-size: 16px;"&gt;&lt;a href="https://processing-js.lighthouseapp.com/projects/41284/tickets/213-text-implementation-incomplete"&gt;text(val,x,y,z)&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;, and&lt;span class="word"&gt;&lt;span style="font-size: 16px;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="word"&gt;&lt;span style="font-size: 16px;"&gt;&lt;a href="https://processing-js.lighthouseapp.com/projects/41284/tickets/213-text-implementation-incomplete"&gt;text(val,x,y,w,h,z)&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;. However, as I said before, I may need&amp;nbsp;&lt;span class="word"&gt;&lt;span style="font-size: 16px;"&gt;the function called translate(). It may lead me heading to&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="word"&gt;&lt;span style="font-size: 16px;"&gt;&lt;a href="https://processing-js.lighthouseapp.com/projects/41284/tickets/71-translate"&gt;ticket #71&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;. What is going next? I don't know, but just let it goes on. It must will be done.&lt;span class="word"&gt;&lt;span style="font-size: 16px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-1120854841632331098?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/1120854841632331098/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/02/reference-materials-sort-out.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/1120854841632331098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/1120854841632331098'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/02/reference-materials-sort-out.html' title='Reference materials sort out'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-5107828163992281696</id><published>2010-02-10T20:28:00.001-05:00</published><updated>2010-02-10T20:30:43.116-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>before release 0.1 part2</title><content type='html'>In last &lt;a href="http://zbhuang1.blogspot.com/2010/02/before-release-01.html"&gt;post&lt;/a&gt;, I implemented text(val). Today, I was working on text(val,x1,y1,width,height).&lt;br/&gt;&lt;br/&gt;To wrap the text, the very first thing came into my mind was TextArea. TextArea allows the text wrap automatically. If I can use get the text of each line inside the TextArea, I can use the same technique as I used in my last post. Then, I went to search how to do that. And it wasted me almost 6 hours. What I got for that is it is impossible to let TextArea return only one line of text.&lt;br/&gt;&lt;br/&gt;When I was going to stop, I wonder why I don't take a look at the canvas instruction again. I looked at &lt;a href="http://dev.opera.com/articles/view/html-5-canvas-the-basics/"&gt;HTML 5 canvas - the basics&lt;/a&gt;, and search how to draw the text in canvas, and I got &lt;a href="https://developer.mozilla.org/en/Drawing_text_using_a_canvas"&gt;this page - Drawing text using a canvas&lt;/a&gt;. There is a method called mozMeasureText() which can actually solve the problem of my last post (why didn't I see this earlier). Anyway, I implemented text(val,x1,y1,width,height) and upgrade the text(val). Now they both look very good.&lt;br/&gt;&lt;br/&gt;The next thing I need to do is, do my best to make the code better, and reorganize the tests.&lt;br/&gt;&lt;br/&gt;this is the preview (see this in Firefox):&lt;br/&gt;&lt;script type="application/processing"&gt;PFont fontA;void setup() {  size(500, 200);  background(0);  smooth();  // Load the font. Fonts must be placed within the data   // directory of your sketch. A font must first be created  // using the 'Create Font...' option in the Tools menu.  fontA = loadFont("Arial");  //textAlign(CENTER);  // Set the font and its size (in units of pixels)  textFont(fontA, 12);  // Only draw once  noLoop();} void draw() {  // Set the gray value of the letters  fill(255);  int h=20;  int w=100;  rect(5,25,10,h);  rect(15,20,w,5);  // Draw the letter to the screen  text("This is test5 for text( val, x1, y1, x2, y2)",   15, 25, w, h);  text("This is test5 for text(val, x1, y1, x2, y2)");    h=40;  rect(5,60,10,h);  rect(15,55,w,5);  // Draw the letter to the screen  text("This is test5 for text( val, x1, y1, x2, y2)",   15, 60, w, h);  text("This is test5 for text(val, x1, y1, x2, y2)");}&lt;/script&gt;&lt;canvas height="200px" width="200px"&gt;&lt;/canvas&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-5107828163992281696?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/5107828163992281696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/02/before-release-01-part2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/5107828163992281696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/5107828163992281696'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/02/before-release-01-part2.html' title='before release 0.1 part2'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-5820349429234735561</id><published>2010-02-08T13:53:00.000-05:00</published><updated>2010-02-08T13:53:17.094-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>before release 0.1</title><content type='html'>I am working on text(val) of processing.js (&lt;a href="https://processing-js.lighthouseapp.com/projects/41284/tickets/213-text-implementation-incomplete"&gt;ticket #213&lt;/a&gt;) this morning. The most challenge of that is it should be able to draw immediately right of the last string placed.&lt;br/&gt;&lt;br/&gt;About how to do that, &lt;a href="https://processing-js.lighthouseapp.com/users/77052"&gt;M. Lam&lt;/a&gt; mentions that it is possible if we draw the new text base on the length of the last string added. And I think it is good for a try.&lt;br/&gt;&lt;br/&gt;Follow that clue, I look into the &lt;a href="http://dev.processing.org/source/index.cgi/tags/processing-1.0.9/core/src/processing/core/PGraphics.java?view=markup"&gt;original source code&lt;/a&gt; of processing again.&lt;br/&gt;&lt;br/&gt;How it work is, it calculate each char by char, and store the final offset plus the start position. When the text(val) is called, it calls text(val,x,y,z) with ending position of the last call instead.&lt;br/&gt;&lt;br/&gt;I know how it work, but how to do it in JavaScript? Don't even need to think, I Google JavaScript font width. Then, a page call &lt;a href="http://www.lalit.org/lab/javascript-css-font-detect"&gt;JavaScript/CSS Font Detector&lt;/a&gt; flash into my eyes.&lt;br/&gt;&lt;br/&gt;How they do is, they create a span element, put the text into it and get the offsetWidth back.&lt;br/&gt;&lt;br/&gt;Now, what I do is, I do the same thing as they do, but after I get the width back, I delete the element.&lt;br/&gt;&lt;br/&gt;The result is good. However, there is an error. When the text is getting longer, the bigger offsetWidth than it should be is returned. Anyway, it is not perfect yet. I will come back to this after I finish the text(val,xl,yl,x2,y2).&lt;br/&gt;&lt;br/&gt;the code is available on &lt;a href="http://github.com/zbhuang1/processing.js"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-5820349429234735561?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/5820349429234735561/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/02/before-release-01.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/5820349429234735561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/5820349429234735561'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/02/before-release-01.html' title='before release 0.1'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-5862204182846955879</id><published>2010-02-06T19:42:00.000-05:00</published><updated>2010-02-06T19:42:25.897-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>initialize git &amp; detail of release 0.1</title><content type='html'>Since I have been watching the source code of text for couple days, today, I was working on setting up git on my computer. I installed &lt;a href="http://code.google.com/p/msysgit/"&gt;msysgit&lt;/a&gt; on my windows, and cloned the source code from &lt;a href="http://github.com/MinyXO/processing-js/tree/"&gt;MinyXO&lt;/a&gt;. MinyXO's code have implemented the PMatrix3D which I think I am going to need it in the future. As I followed the tutorial (I lost the page but you will see it before you initialize), everything went smoothly until I try to upload my copy from my laptop. It needs to setup a SSH public key to before I upload, and I don't know what is that. Once again, I took a look at the tutorial, and there is a &lt;a href="http://help.github.com/msysgit-key-setup/"&gt;page&lt;/a&gt; talking about that.&lt;br/&gt;&lt;br/&gt; After the Git has been setup, I reviewed my &lt;a href="https://processing-js.lighthouseapp.com/projects/41284/tickets/213-text-implementation-incomplete"&gt;ticket&lt;/a&gt; once again. I couldn't do the 3D stuff before I clearly understand how it works on canvas. Therefore I am focusing on text(val) and text(val,xl,yl,x2,y2).&lt;br/&gt;&lt;br/&gt;According to the ticket description and the original processing, there are some point I need to notice. &lt;br/&gt;for text(val):&lt;ul&gt;&lt;li&gt;text must be placed to the immediate right of the last string placed using text()&lt;/li&gt;&lt;li&gt;doesn't need to wrap&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;for text(val,xl,yl,x2,y2):&lt;ul&gt;&lt;li&gt;wrap the text&lt;/li&gt;&lt;li&gt;doesn't need to display the text out of the rectangle.&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt; It seem to be very easy butt think it will take me a while to figure out how to implement :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-5862204182846955879?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/5862204182846955879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/02/initialize-git-detail-of-release-01.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/5862204182846955879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/5862204182846955879'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/02/initialize-git-detail-of-release-01.html' title='initialize git &amp; detail of release 0.1'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-6722583150659204747</id><published>2010-02-04T16:44:00.000-05:00</published><updated>2010-02-04T16:44:41.647-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>build FireFox cont</title><content type='html'>On my last &lt;a href="http://zbhuang1.blogspot.com/2010/02/building-firefox.html"&gt;post&lt;/a&gt;, I was building FireFox. This post is about what happened on that day and the day after. &lt;br/&gt;&lt;br/&gt;So, I was building FireFox that night, and then, I fell asleep:) then, on the next day, when I woke up, it was done already. It didn't bring me to any problem. I think that is because I followed the &lt;a href="https://developer.mozilla.org/en/Build_Documentation"&gt;Build Documentation&lt;/a&gt; exactly. &lt;br/&gt;&lt;br/&gt;after that, I tried to build it again and this time it brought me some problem. There are some problem on me .mozconf file. Obviously, I wrote something wrong this time. then I changed it back, and it worked prefect again. &lt;br/&gt;&lt;br/&gt;at that time, I have two debug build. I asked myself why not build a release. Then, I did it as I said. And it was still work perfectly.&lt;br/&gt;&lt;br/&gt;I want some problems. What if I build it without the mozilla-build? What if I build other software? I gotta try it someday.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-6722583150659204747?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/6722583150659204747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/02/build-firefox-cont.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/6722583150659204747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/6722583150659204747'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/02/build-firefox-cont.html' title='build FireFox cont'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-4045648874249244186</id><published>2010-02-02T19:39:00.000-05:00</published><updated>2010-02-02T19:39:26.838-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>building firefox</title><content type='html'>On my today's open source class, Dave introduced us how to build the firefox. It is very exciting for me to build such a big program. &lt;br/&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_Ztvx09__-Z8/S2jC3v_ol4I/AAAAAAAAABY/Q3MOOxi7UlY/s1600-h/Untitled.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_Ztvx09__-Z8/S2jC3v_ol4I/AAAAAAAAABY/Q3MOOxi7UlY/s320/Untitled.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Now, I am building the firefox. My laptop is very slow when I write this post. Hope its T8300 2.4GHz cpu is strong enough to finish this before I go to bed. So far, it looks very good, and I have to say it is very easy to build the environment. Almost everything can be found on the web. and there is a very good tutorial on mozilla's website for that. &lt;br/&gt;Oh, my cpu is getting hot, and now it is 83 degree. I have to stop here. Hope there will be another post later tonight.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-4045648874249244186?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/4045648874249244186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/02/building-firefox.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/4045648874249244186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/4045648874249244186'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/02/building-firefox.html' title='building firefox'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Ztvx09__-Z8/S2jC3v_ol4I/AAAAAAAAABY/Q3MOOxi7UlY/s72-c/Untitled.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-7156504825086719534</id><published>2010-01-31T21:52:00.001-05:00</published><updated>2010-01-31T21:59:24.189-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>text() in processing and processing.js</title><content type='html'>&lt;br/&gt;I've started to compare the differences between processing and processing.js about how they implement the text(). &lt;br/&gt;&lt;br/&gt;&lt;h3&gt;How processing draw the text into the canvas?&lt;/h3&gt;the main idea is: translate the matrix of the text base on the parameters, then draw the text.&lt;br/&gt;&lt;br/&gt;&lt;h3&gt;Where the code are?&lt;/h3&gt;In processing, we can find the code for text() in section TEXT/FONTS of the file &lt;a href="http://dev.processing.org/source/index.cgi/tags/processing-1.0.9/core/src/processing/core/PGraphics.java?view=markup"&gt;PGraphics.java&lt;/a&gt;. Also, the translate() can be found in &lt;a href="http://dev.processing.org/source/index.cgi/tags/processing-1.0.9/core/src/processing/core/PMatrix2D.java?view=markup"&gt;PMatrix2D.java&lt;/a&gt; or &lt;a href="http://dev.processing.org/source/index.cgi/tags/processing-1.0.9/core/src/processing/core/PMatrix3D.java?rev=5766&amp;view=log"&gt;PMatrix3D.java&lt;/a&gt;.&lt;br/&gt;In processing.js, we can find text() as p.text() inside the &lt;a href="http://github.com/jeresig/processing-js/raw/master/processing.js"&gt;processing.js&lt;/a&gt; file.&lt;br/&gt;&lt;br/&gt;&lt;h3&gt;Other resource&lt;/h3&gt;&lt;a href="http://dev.opera.com/articles/view/html-5-canvas-the-basics/"&gt;HTML 5 canvas - the basics&lt;/a&gt; - this is the page from Opera that introduce the basics of canvas 2d. It describes how the Text API work, and it also mentions that, "the Text API is only available in recent WebKit builds, and in Firefox 3.1 nightly builds". &lt;br/&gt;&lt;br/&gt;&lt;h3&gt;Need to solve&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;To implement the 3D Text in processing.js, I need a 3d translate(). However, it is still missing.&lt;/li&gt;&lt;li&gt;How to get their codes or the latest code with the 3d implementation? There are many people working on the processingjs 3d implementation. Some of them have made somethings already. They must have a very good idea about how to deal with the 3d matrix.&lt;/li&gt;&lt;li&gt;How the canvas work in 3d? I get basics of 2d, but where is the 3d?&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;&lt;br/&gt;Concluded here Today. Will continue tomorrow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-7156504825086719534?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/7156504825086719534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/01/text-in-processing-and-processingjs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/7156504825086719534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/7156504825086719534'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/01/text-in-processing-and-processingjs.html' title='text() in processing and processing.js'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-8002394486584046100</id><published>2010-01-29T19:27:00.001-05:00</published><updated>2010-01-29T20:21:11.819-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>Project plan initialization</title><content type='html'>This post is about to tell you my work on &lt;a href="http://processingjs.org"&gt;Processing.js&lt;/a&gt; project.&lt;br/&gt;&lt;h2&gt;Processing.js&lt;/h2&gt;Processing.js is a open source project from &lt;a href="http://processing.org"&gt;processing&lt;/a&gt; which in an open source programming language that allow users to program images, animations, or interactions. And Processing.js is a project that inherits all the features of Processing. &lt;br/&gt;Honestly, I am big fan of Flash web application, but I hate the performance of Flash especially when it is running with 3D things. Also, always requiring to install a latest version is a big problem. Therefore, it is amazing for me to see those &lt;a href="http://processingjs.org/learning/basic"&gt;examples&lt;/a&gt; of processing.js. Draw directly to the web page is unbelievable, and it also supports &lt;a href="http://www.khronos.org/webgl/wiki/Main_Page"&gt;webGL&lt;/a&gt;. This is the dream of any programmer.&lt;br/&gt;&lt;h2&gt;Where I am&lt;/h2&gt;This is my official blog for this project. It is welcome to follow me to received further information as I proceed. &lt;br/&gt;Also, all the code I have done can be traced on &lt;a href="http://code.google.com/p/osd600/"&gt;google code/osd600&lt;/a&gt;.&lt;br/&gt;&lt;h2&gt;Release 0.1&lt;/h2&gt;&lt;a href="http://zenit.senecac.on.ca/wiki/index.php/User:Asalga"&gt;Asalga&lt;/a&gt; suggested me to pick text() which is already exist. However, we still have a lot of work to do on that until it becomes a member of 3d family. The first thing I do on this will be the comparison of the 2d text() syntax between the processing code and processing.js code. &lt;h2&gt;Release 0.2 and 0.3&lt;/h2&gt;Once I done the Release 0.1, I will keep going to the 3d text(). It is difficult to say the detail, but I will post it once it is clear to me.&lt;h2&gt;Things need to learn&lt;/h2&gt;&lt;a href="http://dev.processing.org/source/index.cgi/"&gt;Processing source code&lt;/a&gt; and &lt;a href="http://www.opengl.org/sdk/docs/man/"&gt;OpenGL API&lt;/a&gt; - expect to understand why there are OpenGL API calls in the processing source code, and how they were used&lt;br/&gt;&lt;a href="http://people.mozilla.com/~vladimir/canvas3d/docs/glweb20binding.html"&gt;WebGL API&lt;/a&gt; - this is where the core is&lt;br/&gt;&lt;a href="http://asalga.wordpress.com"&gt;asalga's blog&lt;/a&gt; and &lt;a href="http://annasob.wordpress.com/"&gt;annasob's blog&lt;/a&gt; - see what they have done &lt;br/&gt;&lt;h2&gt;Barriers&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;English problem. Oral and communicated skill limitation. Resolution - be prepared&lt;li&gt;OpenGL and WebGL. As this is the basics of what I am going to do, I definitely need to understand them well enough. It will be a challenge, and I expect that&lt;/ul&gt;Since I already began reading, I only have one last words to say. Google, blog and time are my best friends.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-8002394486584046100?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/8002394486584046100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/01/project-plan-initializationdraft.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/8002394486584046100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/8002394486584046100'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/01/project-plan-initializationdraft.html' title='Project plan initialization'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-2855913168982805850</id><published>2010-01-27T20:15:00.006-05:00</published><updated>2010-01-28T13:18:20.047-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>3d in processing</title><content type='html'>Today, I was trying to build some 3d stuffs by using processing. However, it fails no matter how I try. Let's see two examples:&lt;br/&gt;&lt;script type="application/processing"&gt;int boxSize = 10;boolean locked = false;double oldX;double oldY;Vector[] pos;void setup(){  size(200, 200);  pos = new Vector[8];  pos[0] = new Vector(-50,-50,50);  pos[1] = new Vector(-50,50,50);  pos[2] = new Vector(50,-50,50);  pos[3] = new Vector(50,50,50);  pos[4] = new Vector(-50,-50,-50);  pos[5] = new Vector(-50,50,-50);  pos[6] = new Vector(50,-50,-50);  pos[7] = new Vector(50,50,-50);}void draw(){  background(255);  stroke(0);//box  line(0,0,0,200);  line(0,0,200,0);  line(200,0,200,200);  line(0,200,200,200);  stroke(153);//cross line  line(0,100,200,100);  line(100,0,100,200);  stroke(0);  for(int i=0;i&lt;8;i++){    rect(95+pos[i].x, 95+pos[i].y, boxSize, boxSize);  }}void mousePressed() {  locked = true;  oldX = mouseX;  oldY = mouseY;}void mouseDragged() {  if(locked) {    double rX = (oldX-mouseX)/80;    double rY = (mouseY-oldY)/80;    oldX = mouseX;    oldY = mouseY;    for (int i = 0; i&lt;8; i++) {      pos[i].rotateXY(rX,rY);    }  }}void mouseReleased() {  locked = false;}class Vector {double x,y,z;  Vector(double ix, double iy, double iz){    x=ix;    y=iy;    z=iz;  }  void rotateXY(double rx, double ry){    //x*y    x =x*cos(rx)+y*sin(ry)*sin(rx)-z*sin(rx)*cos(ry);    y =y*cos(ry)+z*sin(ry);    z =x*sin(rx)-y*sin(ry)*cos(rx)+z*cos(ry)*cos(rx);  }}double Sina(double x){  x=x%PI;  double result=x;  for(int i=1;i&lt;20;i++){    double temp=1;    for(int j=1;j&lt;i*2+2;j++){      temp=-temp*x/j;    }    result=result+temp;  }  return result;}double Cosa(double x){  x=x%PI;  double result=1.0f;  for(int i=1;i&lt;20;i++){    double temp=1;    for(int j=1;j&lt;i*2+1;j++){      temp=-temp*x/j;    }    result=result-temp;  }  return result;}&lt;/script&gt;&lt;canvas height="200px" width="200px"&gt;&lt;/canvas&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="275" height="200" id="book" align="middle"&gt;  &lt;param name="allowScriptAccess" value="sameDomain" /&gt;&lt;param name="allowFullScreen" value="false" /&gt;&lt;param name="movie" value="http://zhibin.googlecode.com/svn/trunk/flash/3ddemo.swf" /&gt;&lt;param name="quality" value="high" /&gt;&lt;param name="wmode" value="gpu" /&gt;&lt;param name="bgcolor" value="#ffffff" /&gt;&lt;/object&gt;&lt;br/&gt;&lt;br/&gt;The first one is done by processing, and the second one is done by flash. They are using the same algorithm so that it should display the same things. However, processing fail on this. I don't know why at this moment, but I try to replace the sin and cos functions and it still does the same thing. Therefore, I guess it may be a problem about &amp;lt;canvas&amp;gt; tag. Anyway, I need try more different codes and what is the problem. So, I think I can work on this on my open source course.^^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-2855913168982805850?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/2855913168982805850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/01/3d-in-processing_8216.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/2855913168982805850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/2855913168982805850'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/01/3d-in-processing_8216.html' title='3d in processing'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-6220067877867433020</id><published>2010-01-26T23:12:00.010-05:00</published><updated>2010-01-28T13:18:00.781-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>processing.js</title><content type='html'>In my today's open source lecture, my professor, David, introduced us the &lt;a href="http://processingjs.org/"&gt;processingjs project&lt;/a&gt;.&lt;br/&gt;Here is an example came with the source(&lt;span style="color: red;"&gt;&lt;strong&gt;IS NOT WORKING ON IE&lt;/strong&gt;&lt;/span&gt;):&lt;br/&gt;&lt;script type="application/processing"&gt;float max_distance;void setup() {  size(400, 200);   smooth();  noStroke();  max_distance = dist(0, 0, width, height);}void draw() {  background(51);  for(int i = 0; i &lt;= width; i += 20) {    for(int j = 0; j &lt;= width; j += 20) {      float size = dist(mouseX, mouseY, i, j);      size = size/max_distance * 99;      ellipse(i, j, size, size);    }  }}&lt;/script&gt;&lt;canvas height="74px" width="900px"&gt;&lt;/canvas&gt;&lt;br/&gt;It is very awesome. Before I know this amazing project, I thought I was definitely going to join a flash 3d engine project like &lt;a href="http://www.flashsandy.org/"&gt;Sandy&lt;/a&gt; or &lt;a href="http://away3d.com/"&gt;Away3d&lt;/a&gt;. However, now I think it is much better to play around with processing. Since I have a full day tomorrow, why not try to use processing to build somethings and see the difference with flash.&lt;br/&gt;&lt;br/&gt;Another thing is about how to put the processing works into Google Blogger.&lt;ol&gt;&lt;li&gt;download the processing.js and init.js(not sure if this one is needed) from &lt;a href="http://processingjs.org/download"&gt;here&lt;/a&gt;&lt;/li&gt;&lt;li&gt;put them into a onlineline hosting so that, in your web page, you can link to them&lt;/li&gt;&lt;li&gt;put the processing code into this tag&amp;lt;script type="application/processing"&amp;gt;code&amp;lt;/script&amp;gt;&lt;/li&gt;&lt;li&gt;put this, &amp;lt;canvas height="74px" width="900px"&amp;gt;&amp;lt;/canvas&amp;gt;, after &amp;lt;/script&amp;gt;&lt;/li&gt;&lt;/ol&gt;And then, it should be work. and enjoy it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-6220067877867433020?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/6220067877867433020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/01/processingjs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/6220067877867433020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/6220067877867433020'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/01/processingjs.html' title='processing.js'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-1590708809016695736</id><published>2010-01-22T17:00:00.002-05:00</published><updated>2010-01-26T08:47:21.213-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>my experience in community</title><content type='html'>On the &lt;a href="http://zenit.senecac.on.ca/wiki/index.php/Mozilla_Community"&gt;Mozilla Community lecture&lt;/a&gt;, Mike take about the IRC. I happen to have a similar experience like that. I am a technical member in a Flash group on QQ (an instance messenger from China which has a function called group similar as channel in IRC). I entered that group because I wanted to learn something about flash. At first, I was a beginner of flash, but now, I am already a technical member responsible to answer people's questions. I can say I have learned a lot when I ask questions and answer people's questions. Therefore, I have confidence with getting into a open source channel in IRC and I am going to learn a lot.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-1590708809016695736?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/1590708809016695736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/01/my-experience.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/1590708809016695736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/1590708809016695736'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/01/my-experience.html' title='my experience in community'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-607055972110466422</id><published>2010-01-15T17:53:00.000-05:00</published><updated>2010-01-15T17:53:31.030-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>my thought of "Revolution OS"</title><content type='html'>When I was watching the video, I was thinking about why there are so many people using Windows rather than Linux. I look arround my friends and myself who like to play games. Obviously, Windows is the only choice for us. Although I could play warcraft 3 on Linux by using wine, but we all know that the performance of that is not that good, and it is difficult to the beginner. Why there is not a good-looking game on Linux? Why EA games don't run on Linux?&amp;nbsp;I think none of&amp;nbsp;a&amp;nbsp;game company will open their source code.&amp;nbsp;Second, I like the way&amp;nbsp;how Linux work - programmer are available to modify the source code, to fix a bug and so on. But it is&amp;nbsp;not easy&amp;nbsp;to find a program and install it sometimes. Rather than that, I like the way how windows work - double click, next, next and finish.&lt;br /&gt;Bazaar brings&amp;nbsp;us the&amp;nbsp;freedom and free software, and Cathedral&amp;nbsp;represent convenience. Freedom is good, but I don't need&amp;nbsp;the code of the software in my daily life. Thereforce, for now Windows is still my first OS choice and I will keep using the opensource software.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-607055972110466422?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/607055972110466422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/01/my-thought-of-revolution-os.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/607055972110466422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/607055972110466422'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/01/my-thought-of-revolution-os.html' title='my thought of &quot;Revolution OS&quot;'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-4974498354890961413</id><published>2010-01-15T16:53:00.000-05:00</published><updated>2010-01-15T16:53:12.882-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>subtitles of "Revolution OS"</title><content type='html'>I am feeling a little bit different to&amp;nbsp;listen&amp;nbsp;every word a hundred percent clear for the video. therefore,&amp;nbsp;I found&amp;nbsp;the subtitles from &lt;a href="http://wiki.kldp.org/wiki.php/RevolutionOS?action=download&amp;amp;value=Revolution.OS.2001.DVDRip.XviD-RETRO.srt.txt"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Download the video into your harddisk. In the same folder, create a new text file call that as "Revolution OS.srt", then paste everything inside that&amp;nbsp;web page into the file. and&amp;nbsp;load the subtitles when you&amp;nbsp;use the player to play it.&lt;br /&gt;&lt;br /&gt;hope it is helpful for whom need it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-4974498354890961413?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/4974498354890961413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/01/subtitles-of-revolution-os.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/4974498354890961413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/4974498354890961413'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/01/subtitles-of-revolution-os.html' title='subtitles of &quot;Revolution OS&quot;'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-6726000703612212306</id><published>2010-01-15T11:22:00.000-05:00</published><updated>2010-01-15T11:22:51.237-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>who am I?</title><content type='html'>Who am I? Well, my name is Zhibin Huang. I am an international student from China. I came to Canada last August (in the year of 2008). I am focusing on c++ and&amp;nbsp; flash actionscirpt. I also like to play game during my spare time. and like to make friends. hopefully we can be friend.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-6726000703612212306?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/6726000703612212306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/01/who-am-i.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/6726000703612212306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/6726000703612212306'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/01/who-am-i.html' title='who am I?'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6724495882902199360.post-5632345165161554153</id><published>2010-01-14T18:33:00.000-05:00</published><updated>2010-01-14T18:33:02.682-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>Hello, Open Source!</title><content type='html'>Two years ago, when I first heard about the open source, I never throught about I could get involve in it. What will happen when I encounter the open source? I don't know it, but it must be fun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6724495882902199360-5632345165161554153?l=zbhuang1.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zbhuang1.blogspot.com/feeds/5632345165161554153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://zbhuang1.blogspot.com/2010/01/hello-open-source.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/5632345165161554153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6724495882902199360/posts/default/5632345165161554153'/><link rel='alternate' type='text/html' href='http://zbhuang1.blogspot.com/2010/01/hello-open-source.html' title='Hello, Open Source!'/><author><name>Benjamin Huang</name><uri>http://www.blogger.com/profile/12226412306451336143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Ztvx09__-Z8/SOvH94EijnI/AAAAAAAAAAU/UKeYQpJpugw/S220/http_imgload.jpg'/></author><thr:total>0</thr:total></entry></feed>
