<?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-8111497590625307008</id><updated>2012-02-17T03:27:36.660+08:00</updated><category term='Python'/><category term='JBoss'/><category term='MySQL'/><category term='Program'/><category term='C'/><category term='CentOS'/><category term='SQL Server'/><category term='Perl'/><category term='Oracle'/><category term='Java'/><category term='Google'/><category term='LDAP'/><category term='Web'/><category term='C++'/><category term='GAS'/><category term='PHP'/><category term='Git'/><category term='Ruby'/><category term='Travel'/><category term='Linux'/><category term='Eclipse'/><category term='Delphi'/><category term='Weblogic'/><category term='Software'/><category term='JSF'/><category term='Ubuntu'/><category term='JavaScript'/><category term='Android'/><title type='text'>Solnone 螺旋旅人</title><subtitle type='html'>Solomon Hsu</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default?start-index=101&amp;max-results=100'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>387</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-8325985960769115859</id><published>2011-12-31T11:33:00.000+08:00</published><updated>2011-12-31T11:33:26.892+08:00</updated><title type='text'>Isang Litrong Liwanag ADVERTISEMENT</title><content type='html'>&lt;iframe width="459" height="344" src="http://www.youtube.com/embed/JOl4vwhwkW8?fs=1" frameborder="0" allowFullScreen=""&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-8325985960769115859?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/8325985960769115859/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=8325985960769115859' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8325985960769115859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8325985960769115859'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2011/12/isang-litrong-liwanag-advertisement.html' title='Isang Litrong Liwanag ADVERTISEMENT'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/JOl4vwhwkW8/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-7412377225853664636</id><published>2011-10-14T10:43:00.001+08:00</published><updated>2011-10-14T10:45:30.600+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Eclipse - Save all dirty editors in the workbench</title><content type='html'>&lt;pre&gt;&lt;CODE&gt;&lt;br /&gt;org.eclipse.ui.ide.IDE.saveAllEditors(new IResource[] { ResourcesPlugin.getWorkspace().getRoot() }, false);&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-7412377225853664636?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/7412377225853664636/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=7412377225853664636' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7412377225853664636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7412377225853664636'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2011/10/eclipse-save-all-dirty-editors-in.html' title='Eclipse - Save all dirty editors in the workbench'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-4586997240215738797</id><published>2011-09-29T17:38:00.002+08:00</published><updated>2011-09-29T17:39:34.956+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Eclipse EMF load and save Resource</title><content type='html'>&lt;pre&gt;&lt;CODE&gt;&lt;br /&gt;public Resource loadResource(IResource resource) throws IOException {&lt;br /&gt; ResourceSet resourceSet = new ResourceSetImpl();&lt;br /&gt;&lt;br /&gt; // Get the URI of the model file.&lt;br /&gt; //&lt;br /&gt; URI fileURI = URI.createPlatformResourceURI(resource.getFullPath().toString(), true);&lt;br /&gt;&lt;br /&gt; // Create a resource for this file.&lt;br /&gt; //&lt;br /&gt; Resource eResource = resourceSet.createResource(fileURI);&lt;br /&gt;&lt;br /&gt; eResource.load(new HashMap&lt;Object, Object&gt;());&lt;br /&gt; return eResource;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void saveResource(Resource eResource) throws IOException {&lt;br /&gt; // Save only resources that have actually changed.&lt;br /&gt; //&lt;br /&gt; Map&lt;Object, Object&gt; saveOptions = new HashMap&lt;Object, Object&gt;();&lt;br /&gt; saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);&lt;br /&gt; eResource.save(saveOptions);&lt;br /&gt;}&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-4586997240215738797?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/4586997240215738797/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=4586997240215738797' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/4586997240215738797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/4586997240215738797'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2011/09/eclipse-emf-load-and-save-resource.html' title='Eclipse EMF load and save Resource'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-7616552031803043487</id><published>2011-08-02T09:27:00.003+08:00</published><updated>2011-08-02T10:07:57.888+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Change libusb device mode to 0666 in udev rule file</title><content type='html'>&lt;pre&gt;&lt;CODE&gt;&lt;br /&gt;#! /bin/bash&lt;br /&gt;&lt;br /&gt;OS=`lsb_release -i`&lt;br /&gt;OS=${OS#Dis*ID:}&lt;br /&gt;&lt;br /&gt;if [ $OS == "Ubuntu" ]&lt;br /&gt;then&lt;br /&gt;        if [ ! -f "/etc/udev/rules.d/50-udev-default.rules" ]&lt;br /&gt;        then&lt;br /&gt;                echo "copy 50-udev-default.rules"&lt;br /&gt;                cp -f /lib/udev/rules.d/50-udev-default.rules /etc/udev/rules.d/&lt;br /&gt;        else&lt;br /&gt;                cp -f /etc/udev/rules.d/50-udev-default.rules .&lt;br /&gt;        fi&lt;br /&gt;        echo "change libusb MODE=666"&lt;br /&gt;        sudo sed -i -e "s/SUBSYSTEM==\"usb\", ENV{DEVTYPE}==\"usb_device\", MODE=\"[0-9]*\"/SUBSYSTEM==\"usb\", ENV{DEVTYPE}==\"usb_device\", MODE=\"0666\"/g" /etc/udev/rules.d/50-udev-default.rules&lt;br /&gt;        echo "restart udev"&lt;br /&gt;        service udev restart&lt;br /&gt;elif [ $OS == "CentOS" ]&lt;br /&gt;then&lt;br /&gt;        cp -f /etc/udev/rules.d/50-udev.rules .&lt;br /&gt;        echo "append libusb MODE=666"&lt;br /&gt;        sed -i -e ':begin; /ACTION=="add", SUBSYSTEM=="usb_device"/,/MODE="[0-9]*"/ { /MODE="[0-9]*"/! { $! { N; b begin }; }; s/MODE="[0-9]*"/MODE=\"0666\"/; }' /etc/udev/rules.d/50-udev.rules&lt;br /&gt;        echo "restart isdn"&lt;br /&gt;        /etc/init.d/isdn restart&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;chmod 666 -R /dev/bus/usb/*/*&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-7616552031803043487?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/7616552031803043487/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=7616552031803043487' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7616552031803043487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7616552031803043487'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2011/08/change-libusb-device-mode-to-0666-in.html' title='Change libusb device mode to 0666 in udev rule file'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-3803139118376784221</id><published>2011-05-30T12:22:00.000+08:00</published><updated>2011-05-30T12:22:34.312+08:00</updated><title type='text'>台灣最美的12公里</title><content type='html'>&lt;iframe width="480" height="295" src="http://www.youtube.com/embed/TIskfbc2qxU?fs=1" frameborder="0" allowFullScreen=""&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-3803139118376784221?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/3803139118376784221/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=3803139118376784221' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/3803139118376784221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/3803139118376784221'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2011/05/12.html' title='台灣最美的12公里'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/TIskfbc2qxU/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-6712087729509018415</id><published>2011-05-28T13:58:00.000+08:00</published><updated>2011-05-28T13:58:18.116+08:00</updated><title type='text'>不只昱伸 賓漢也做毒起雲劑 負責人收押</title><content type='html'>&lt;iframe width="425" height="344" src="http://www.youtube.com/embed/PmgFA-zIlaY?fs=1" frameborder="0" allowFullScreen=""&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-6712087729509018415?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/6712087729509018415/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=6712087729509018415' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/6712087729509018415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/6712087729509018415'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2011/05/blog-post_28.html' title='不只昱伸 賓漢也做毒起雲劑 負責人收押'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/PmgFA-zIlaY/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-1718109867631988108</id><published>2011-05-25T21:21:00.000+08:00</published><updated>2011-05-25T21:21:18.372+08:00</updated><title type='text'>The Evernote Google Chrome Extension</title><content type='html'>&lt;iframe width="425" height="344" src="http://www.youtube.com/embed/oFOiCOmgXmc?fs=1" frameborder="0" allowFullScreen=""&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-1718109867631988108?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/1718109867631988108/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=1718109867631988108' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/1718109867631988108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/1718109867631988108'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2011/05/evernote-google-chrome-extension.html' title='The Evernote Google Chrome Extension'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/oFOiCOmgXmc/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-6814594828792957439</id><published>2011-05-22T13:52:00.000+08:00</published><updated>2011-05-22T13:52:40.414+08:00</updated><title type='text'>Construction with Quadrotor Teams</title><content type='html'>&lt;iframe width="480" height="295" src="http://www.youtube.com/embed/W18Z3UnnS_0?fs=1" frameborder="0" allowFullScreen=""&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-6814594828792957439?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/6814594828792957439/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=6814594828792957439' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/6814594828792957439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/6814594828792957439'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2011/05/construction-with-quadrotor-teams.html' title='Construction with Quadrotor Teams'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/W18Z3UnnS_0/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-9078731273252726346</id><published>2011-05-22T13:38:00.000+08:00</published><updated>2011-05-22T13:38:57.390+08:00</updated><title type='text'>張雨生 - 小時候</title><content type='html'>&lt;iframe width="480" height="295" src="http://www.youtube.com/embed/nTSqzsncXLU?fs=1" frameborder="0" allowFullScreen=""&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-9078731273252726346?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/9078731273252726346/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=9078731273252726346' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/9078731273252726346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/9078731273252726346'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2011/05/blog-post_3868.html' title='張雨生 - 小時候'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/nTSqzsncXLU/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-7569766596159214485</id><published>2011-05-22T13:30:00.000+08:00</published><updated>2011-05-22T13:30:33.544+08:00</updated><title type='text'>張雨生 - 掙扎</title><content type='html'>&lt;iframe width="425" height="344" src="http://www.youtube.com/embed/YtcEUW2CUbQ?fs=1" frameborder="0" allowFullScreen=""&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-7569766596159214485?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/7569766596159214485/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=7569766596159214485' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7569766596159214485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7569766596159214485'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2011/05/blog-post_22.html' title='張雨生 - 掙扎'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/YtcEUW2CUbQ/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-5077095512321484098</id><published>2011-05-22T13:18:00.001+08:00</published><updated>2011-05-22T13:19:23.410+08:00</updated><title type='text'>張雨生 - 寂寞</title><content type='html'>&lt;iframe width="425" height="344" src="http://www.youtube.com/embed/rkpkvsWAcVo?fs=1" frameborder="0" allowFullScreen=""&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-5077095512321484098?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/5077095512321484098/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=5077095512321484098' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/5077095512321484098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/5077095512321484098'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2011/05/blog-post.html' title='張雨生 - 寂寞'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/rkpkvsWAcVo/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-7269757513281635425</id><published>2011-05-21T11:15:00.000+08:00</published><updated>2011-05-21T11:15:24.391+08:00</updated><title type='text'>iPad_φ(-_-Transparent Pen Movie6 (English) (6/8)</title><content type='html'>&lt;iframe width="480" height="295" src="http://www.youtube.com/embed/vHhB2BF5yQM?fs=1" frameborder="0" allowFullScreen=""&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-7269757513281635425?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/7269757513281635425/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=7269757513281635425' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7269757513281635425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7269757513281635425'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2011/05/ipad-transparent-pen-movie6-english-68.html' title='iPad_φ(-_-Transparent Pen Movie6 (English) (6/8)'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/vHhB2BF5yQM/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-4749272160987138747</id><published>2011-04-10T22:01:00.000+08:00</published><updated>2011-04-10T22:01:52.803+08:00</updated><title type='text'>Cocoa OpenGL and Xcode ... Tutorial 01</title><content type='html'>&lt;iframe width="480" height="295" src="http://www.youtube.com/embed/L5dGZMkdzSo?fs=1" frameborder="0" allowFullScreen=""&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-4749272160987138747?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/4749272160987138747/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=4749272160987138747' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/4749272160987138747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/4749272160987138747'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2011/04/cocoa-opengl-and-xcode-tutorial-01.html' title='Cocoa OpenGL and Xcode ... Tutorial 01'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/L5dGZMkdzSo/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-2974807274928728926</id><published>2011-04-03T19:16:00.000+08:00</published><updated>2011-04-03T19:16:24.586+08:00</updated><title type='text'>Contributing with Git - Scott Chacon - OSDC.TW 2011</title><content type='html'>&lt;iframe width="480" height="295" src="http://www.youtube.com/embed/XtQsviiDuuw?fs=1" frameborder="0" allowFullScreen=""&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-2974807274928728926?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/2974807274928728926/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=2974807274928728926' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/2974807274928728926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/2974807274928728926'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2011/04/contributing-with-git-scott-chacon.html' title='Contributing with Git - Scott Chacon - OSDC.TW 2011'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/XtQsviiDuuw/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-3982897783158450976</id><published>2011-02-20T22:49:00.002+08:00</published><updated>2011-02-20T23:00:27.514+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>Google's MWC 2011 Android booth tour</title><content type='html'>&lt;a href="http://www.engadget.com/2011/02/18/googles-mwc-2011-android-booth-tour/"&gt;Google's MWC 2011 Android booth tour&lt;/a&gt;&lt;br /&gt;&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="437" height="266" id="viddler"&gt;&lt;param name="movie" value="http://www.viddler.com/simple/fa6c38d4/" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="flashvars" value="fake=1"/&gt;&lt;embed src="http://www.viddler.com/simple/fa6c38d4/" width="437" height="266" type="application/x-shockwave-flash" allowScriptAccess="always" allowFullScreen="true" flashvars="fake=1" name="viddler" &gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-3982897783158450976?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/3982897783158450976/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=3982897783158450976' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/3982897783158450976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/3982897783158450976'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2011/02/googles-mwc-2011-android-booth-tour.html' title='Google&apos;s MWC 2011 Android booth tour'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-7607660683506638978</id><published>2011-02-12T15:17:00.002+08:00</published><updated>2011-02-12T15:18:27.314+08:00</updated><title type='text'>GOTHICMADE -花之詩女</title><content type='html'>&lt;object width="480" height="270"&gt;&lt;param name="movie" value="http://www.dailymotion.com/swf/video/xdz9xr"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;embed type="application/x-shockwave-flash" src="http://www.dailymotion.com/swf/video/xdz9xr" width="480" height="270" allowfullscreen="true" allowscriptaccess="always"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://www.dailymotion.com/video/xdz9xr_gtm_shortfilms" target="_blank"&gt;GTM&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;i&gt;Uploaded by &lt;a href="http://www.dailymotion.com/Ialdounet" target="_blank"&gt;Ialdounet&lt;/a&gt;. - &lt;a target="_blank" href="http://www.dailymotion.com/en/channel/shortfilms"&gt;Classic TV and last night&amp;#039;s shows, online.&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-7607660683506638978?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/7607660683506638978/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=7607660683506638978' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7607660683506638978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7607660683506638978'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2011/02/gothicmade.html' title='GOTHICMADE -花之詩女'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-4032282931943477220</id><published>2011-02-09T13:26:00.000+08:00</published><updated>2011-02-09T13:26:27.755+08:00</updated><title type='text'>A first hand look at building an Android application</title><content type='html'>&lt;iframe width="425" height="344" src="http://www.youtube.com/embed/ENRcZcnoptM?fs=1" frameborder="0" allowFullScreen=""&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-4032282931943477220?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/4032282931943477220/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=4032282931943477220' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/4032282931943477220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/4032282931943477220'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2011/02/first-hand-look-at-building-android.html' title='A first hand look at building an Android application'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/ENRcZcnoptM/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-6552996474983451075</id><published>2011-01-15T12:52:00.002+08:00</published><updated>2011-01-15T12:54:16.854+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>好用的 多媒體播放器 KMPlayer！</title><content type='html'>好用的 多媒體播放器 KMPlayer！&lt;br /&gt;網址 &lt;a href="http://www.kmplayer.com/"&gt;http://www.kmplayer.com/&lt;/a&gt;&lt;br /&gt;包含了多種解碼程式 MP3、AVI、WMA、 MPEG、RM等&lt;br /&gt;播 mp3 時會轉成 winamp 的樣子！&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/8111497590625307008-6552996474983451075?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/6552996474983451075/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=6552996474983451075' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/6552996474983451075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/6552996474983451075'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2011/01/kmplayer.html' title='好用的 多媒體播放器 KMPlayer！'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-1810599526307665938</id><published>2011-01-15T12:46:00.002+08:00</published><updated>2011-01-15T12:54:56.188+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>以 Java 讀中文檔案</title><content type='html'>在讀取繁體中文檔(Big5)時，指定 MS950_HKSCS 或 Big5_HKSCS 編碼&lt;br /&gt;在讀取簡體中文檔(GB2312)時，指定 MS936 或 GBK 編碼&lt;br /&gt;Java 的編碼參考 &lt;a href="http://www.websina.com/bugzero/kb/java-encoding-charset.html"&gt;http://www.websina.com/bugzero/kb/java-encoding-charset.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-1810599526307665938?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/1810599526307665938/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=1810599526307665938' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/1810599526307665938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/1810599526307665938'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2011/01/java.html' title='以 Java 讀中文檔案'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-2638874077849423035</id><published>2011-01-15T12:42:00.001+08:00</published><updated>2011-01-15T12:45:17.662+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software'/><title type='text'>移除 Windows XP 內建的 MSN messenger</title><content type='html'>執行&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;RunDll32 advpack.dll,LaunchINFSection %windir%/INF/msmsgs.inf,BLC.Remove&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-2638874077849423035?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/2638874077849423035/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=2638874077849423035' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/2638874077849423035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/2638874077849423035'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2011/01/windows-xp-msn-messenger.html' title='移除 Windows XP 內建的 MSN messenger'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-7109834560426444120</id><published>2010-12-28T22:37:00.000+08:00</published><updated>2010-12-28T22:37:02.669+08:00</updated><title type='text'>Kinect Controls Windows 7</title><content type='html'>&lt;iframe width="480" height="295" src="http://www.youtube.com/embed/M-wLOfjVfVc?fs=1" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-7109834560426444120?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/7109834560426444120/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=7109834560426444120' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7109834560426444120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7109834560426444120'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/12/kinect-controls-windows-7.html' title='Kinect Controls Windows 7'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/M-wLOfjVfVc/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-7170563200535963232</id><published>2010-12-28T18:38:00.000+08:00</published><updated>2010-12-28T18:38:00.423+08:00</updated><title type='text'>Blender 2.5 Iguana sculpting timelapse</title><content type='html'>&lt;iframe width="425" height="344" src="http://www.youtube.com/embed/U-PwEwSwzH8?fs=1" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-7170563200535963232?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/7170563200535963232/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=7170563200535963232' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7170563200535963232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7170563200535963232'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/12/blender-25-iguana-sculpting-timelapse.html' title='Blender 2.5 Iguana sculpting timelapse'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/U-PwEwSwzH8/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-7881237944472542515</id><published>2010-11-22T14:02:00.002+08:00</published><updated>2010-11-22T14:04:21.870+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Eclipse Adding toolbars to trim areas</title><content type='html'>&lt;pre&gt;&lt;CODE&gt;&lt;br /&gt;&amp;lt;plugin&gt;&lt;br /&gt;   &amp;lt;extension point="org.eclipse.ui.menus"&gt;&lt;br /&gt;      &amp;lt;menuContribution locationURI="toolbar:org.eclipse.ui.trim.status"&gt;&lt;br /&gt;         &amp;lt;toolbar id="test.trim.status.toolbar" /&gt;&lt;br /&gt;      &amp;lt;/menuContribution&gt;&lt;br /&gt;      &amp;lt;menuContribution locationURI="toolbar:test.trim.status.toolbar"&gt;&lt;br /&gt;         &amp;lt;command commandId="org.eclipse.ui.file.exit" style="push" /&gt;&lt;br /&gt;      &amp;lt;/menuContribution&gt;&lt;br /&gt;   &amp;lt;/extension&gt;&lt;br /&gt;&amp;lt;/plugin&gt;&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-7881237944472542515?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/7881237944472542515/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=7881237944472542515' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7881237944472542515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7881237944472542515'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/11/eclipse-adding-toolbars-to-trim-areas.html' title='Eclipse Adding toolbars to trim areas'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-741402214217284604</id><published>2010-11-15T13:12:00.000+08:00</published><updated>2010-11-15T13:12:54.649+08:00</updated><title type='text'>3D Video Capture with Kinect</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/7QrnwoO1-8A?fs=1&amp;amp;hl=zh_TW"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/7QrnwoO1-8A?fs=1&amp;amp;hl=zh_TW" width="425" height="344" allowScriptAccess="never" allowFullScreen="true" wmode="transparent" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-741402214217284604?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/741402214217284604/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=741402214217284604' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/741402214217284604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/741402214217284604'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/11/3d-video-capture-with-kinect.html' title='3D Video Capture with Kinect'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-4708058648675964358</id><published>2010-10-31T09:11:00.000+08:00</published><updated>2010-10-31T09:11:20.049+08:00</updated><title type='text'>Out of Sight</title><content type='html'>&lt;object style="background-image:url(http://i1.ytimg.com/vi/4qCbiCxBd2M/hqdefault.jpg)"  width="480" height="295"&gt;&lt;param name="movie" value="http://www.youtube.com/v/4qCbiCxBd2M?fs=1&amp;amp;hl=zh_TW"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/4qCbiCxBd2M?fs=1&amp;amp;hl=zh_TW" width="480" height="295" allowScriptAccess="never" allowFullScreen="true" wmode="transparent" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-4708058648675964358?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/4708058648675964358/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=4708058648675964358' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/4708058648675964358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/4708058648675964358'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/10/out-of-sight.html' title='Out of Sight'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-9115949393484185251</id><published>2010-10-29T23:32:00.000+08:00</published><updated>2010-10-29T23:32:32.990+08:00</updated><title type='text'>Robo-butlers, oil wrecks and avatars</title><content type='html'>&lt;object style="background-image:url(http://i1.ytimg.com/vi/LdDOyokLRS8/hqdefault.jpg)"  width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/LdDOyokLRS8?fs=1&amp;amp;hl=zh_TW"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/LdDOyokLRS8?fs=1&amp;amp;hl=zh_TW" width="425" height="344" allowScriptAccess="never" allowFullScreen="true" wmode="transparent" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-9115949393484185251?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/9115949393484185251/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=9115949393484185251' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/9115949393484185251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/9115949393484185251'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/10/robo-butlers-oil-wrecks-and-avatars.html' title='Robo-butlers, oil wrecks and avatars'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-7381943126919671558</id><published>2010-08-17T15:11:00.000+08:00</published><updated>2010-08-17T15:12:56.006+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Java UUEncoder</title><content type='html'>&lt;pre&gt;&lt;CODE&gt;import java.io.File;&lt;br /&gt;import java.io.FileInputStream;&lt;br /&gt;&lt;br /&gt;import sun.misc.UUEncoder;&lt;br /&gt;&lt;br /&gt;public class Main {&lt;br /&gt;&lt;br /&gt;  public static void main(String[] args) throws Exception {&lt;br /&gt;    File file = new File(args[0]);&lt;br /&gt;    UUEncoder uuec = new UUEncoder(file.getName());&lt;br /&gt;    FileInputStream is = new FileInputStream(file);&lt;br /&gt;    try {&lt;br /&gt;    uuec.encodeBuffer(is, System.out);&lt;br /&gt;    } finally {&lt;br /&gt;      is.close();&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-7381943126919671558?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/7381943126919671558/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=7381943126919671558' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7381943126919671558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7381943126919671558'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/08/java-uuencoder.html' title='Java UUEncoder'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-5014081406567381529</id><published>2010-08-02T15:27:00.000+08:00</published><updated>2010-08-02T15:27:30.747+08:00</updated><title type='text'>Eclipse Corner Article: 图形上下文导论（Introduction to SWT Graphics）</title><content type='html'>&lt;a href="http://www.eclipse.org/articles/article.php?charset=utf-8&amp;amp;file=Article-SWT-graphics%2Findex_cn.html"&gt;Eclipse Corner Article: 图形上下文导论（Introduction to SWT Graphics）&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-5014081406567381529?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.eclipse.org/articles/article.php?charset=utf-8&amp;file=Article-SWT-graphics%2Findex_cn.html' title='Eclipse Corner Article: 图形上下文导论（Introduction to SWT Graphics）'/><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/5014081406567381529/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=5014081406567381529' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/5014081406567381529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/5014081406567381529'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/08/eclipse-corner-article-introduction-to.html' title='Eclipse Corner Article: 图形上下文导论（Introduction to SWT Graphics）'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-959261517361316449</id><published>2010-08-01T23:00:00.000+08:00</published><updated>2010-08-01T23:00:07.442+08:00</updated><title type='text'>借りぐらしのアリエッティ 1分56秒　予告</title><content type='html'>&lt;object style="background-image:url(http://i4.ytimg.com/vi/wAqmcXZjrW8/hqdefault.jpg)"  width="480" height="295"&gt;&lt;param name="movie" value="http://www.youtube.com/v/wAqmcXZjrW8&amp;amp;hl=zh_TW&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/wAqmcXZjrW8&amp;amp;hl=zh_TW&amp;amp;fs=1" width="480" height="295" allowScriptAccess="never" allowFullScreen="true" wmode="transparent" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-959261517361316449?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/959261517361316449/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=959261517361316449' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/959261517361316449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/959261517361316449'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/08/156.html' title='借りぐらしのアリエッティ 1分56秒　予告'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-951861049329336100</id><published>2010-07-29T14:20:00.000+08:00</published><updated>2010-07-29T14:20:08.025+08:00</updated><title type='text'>Free demo to create avatars using Text-to-Speech (TTS) by SitePal</title><content type='html'>&lt;a href="http://www.oddcast.com/home/demos/tts/tts_example.php?sitepal="&gt;Free demo to create avatars using Text-to-Speech (TTS) by SitePal&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-951861049329336100?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.oddcast.com/home/demos/tts/tts_example.php?sitepal=' title='Free demo to create avatars using Text-to-Speech (TTS) by SitePal'/><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/951861049329336100/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=951861049329336100' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/951861049329336100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/951861049329336100'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/07/free-demo-to-create-avatars-using-text.html' title='Free demo to create avatars using Text-to-Speech (TTS) by SitePal'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-8618763660672909606</id><published>2010-07-09T19:04:00.000+08:00</published><updated>2010-07-09T19:04:14.983+08:00</updated><title type='text'>「生態台灣」系列影片3分鐘集錦</title><content type='html'>&lt;object style="background-image:url(http://i2.ytimg.com/vi/1LH8TMjTfl8/hqdefault.jpg)"  width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/1LH8TMjTfl8&amp;amp;hl=zh_TW&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/1LH8TMjTfl8&amp;amp;hl=zh_TW&amp;amp;fs=1" width="425" height="344" allowScriptAccess="never" allowFullScreen="true" wmode="transparent" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-8618763660672909606?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/8618763660672909606/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=8618763660672909606' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8618763660672909606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8618763660672909606'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/07/3.html' title='「生態台灣」系列影片3分鐘集錦'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-747870749006605869</id><published>2010-06-14T22:35:00.002+08:00</published><updated>2010-06-14T22:39:56.687+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Eclipse Preference Pages with Field Editors</title><content type='html'>&lt;a href="http://www.eclipse.org/articles/Article-Field-Editors/field_editors.html"&gt;Simplifying Preference Pages with Field Editors&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.java2s.com/Code/Java/SWT-JFace-Eclipse/JFacepreferencesandfieldeditors.htm"&gt;JFace preferences and field editors&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;//-- Main.java --&lt;br /&gt;import java.io.IOException;&lt;br /&gt;&lt;br /&gt;import org.eclipse.jface.preference.BooleanFieldEditor;&lt;br /&gt;import org.eclipse.jface.preference.ColorFieldEditor;&lt;br /&gt;import org.eclipse.jface.preference.DirectoryFieldEditor;&lt;br /&gt;import org.eclipse.jface.preference.FieldEditorPreferencePage;&lt;br /&gt;import org.eclipse.jface.preference.FileFieldEditor;&lt;br /&gt;import org.eclipse.jface.preference.FontFieldEditor;&lt;br /&gt;import org.eclipse.jface.preference.PathEditor;&lt;br /&gt;import org.eclipse.jface.preference.PreferenceDialog;&lt;br /&gt;import org.eclipse.jface.preference.PreferenceManager;&lt;br /&gt;import org.eclipse.jface.preference.PreferenceNode;&lt;br /&gt;import org.eclipse.jface.preference.PreferenceStore;&lt;br /&gt;import org.eclipse.jface.preference.RadioGroupFieldEditor;&lt;br /&gt;import org.eclipse.jface.window.Window;&lt;br /&gt;&lt;br /&gt;public class Main extends FieldEditorPreferencePage {&lt;br /&gt;&lt;br /&gt;  @Override&lt;br /&gt;  protected void createFieldEditors() {&lt;br /&gt;&lt;br /&gt;    BooleanFieldEditor bfe = new BooleanFieldEditor("Boolean", "Boolean",&lt;br /&gt;        getFieldEditorParent());&lt;br /&gt;    addField(bfe);&lt;br /&gt;&lt;br /&gt;    String[][] labelAndValues = new String[][] {&lt;br /&gt;        { "First Value", "first" }, { "Second Value", "second" } };&lt;br /&gt;    RadioGroupFieldEditor rfe = new RadioGroupFieldEditor("RadioGroup",&lt;br /&gt;        "Radio Group:", 2, labelAndValues, getFieldEditorParent(), true);&lt;br /&gt;    addField(rfe);&lt;br /&gt;&lt;br /&gt;    ColorFieldEditor cfe = new ColorFieldEditor("Color", "Color:",&lt;br /&gt;        getFieldEditorParent());&lt;br /&gt;    addField(cfe);&lt;br /&gt;&lt;br /&gt;    FontFieldEditor fontFe = new FontFieldEditor("Font", "Font:",&lt;br /&gt;        getFieldEditorParent());&lt;br /&gt;    addField(fontFe);&lt;br /&gt;&lt;br /&gt;    DirectoryFieldEditor dfe = new DirectoryFieldEditor("Directory",&lt;br /&gt;        "Directory:", getFieldEditorParent());&lt;br /&gt;    addField(dfe);&lt;br /&gt;&lt;br /&gt;    FileFieldEditor ffe = new FileFieldEditor("File", "File:",&lt;br /&gt;        getFieldEditorParent());&lt;br /&gt;    addField(ffe);&lt;br /&gt;&lt;br /&gt;    PathEditor pe = new PathEditor("Path", "Path:", "Choose a Path",&lt;br /&gt;        getFieldEditorParent());&lt;br /&gt;    addField(pe);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public static void main(String[] args) throws IOException {&lt;br /&gt;    PreferenceManager mgr = new PreferenceManager();&lt;br /&gt;&lt;br /&gt;    PreferenceStore ps = new PreferenceStore("Main.properties");&lt;br /&gt;&lt;br /&gt;    PreferenceNode one = new PreferenceNode("one", "One", null, Main.class&lt;br /&gt;        .getName());&lt;br /&gt;&lt;br /&gt;    mgr.addToRoot(one);&lt;br /&gt;&lt;br /&gt;    PreferenceDialog dlg = new PreferenceDialog(null, mgr);&lt;br /&gt;&lt;br /&gt;    try {&lt;br /&gt;      ps.load();&lt;br /&gt;    } catch (IOException e) {&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;    dlg.setPreferenceStore(ps);&lt;br /&gt;    if (dlg.open() == Window.OK) {&lt;br /&gt;      ps.save();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-747870749006605869?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/747870749006605869/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=747870749006605869' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/747870749006605869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/747870749006605869'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/06/eclipse-preference-pages-with-field.html' title='Eclipse Preference Pages with Field Editors'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-4437823724192669987</id><published>2010-06-14T21:48:00.004+08:00</published><updated>2010-06-14T22:43:37.077+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Eclipse FieldEditor</title><content type='html'>&lt;a href="http://www.eclipse.org/articles/Article-Field-Editors/field_editors.html"&gt;Simplifying Preference Pages with Field Editors&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.java2s.com/Code/Java/SWT-JFace-Eclipse/JFacepreferencesandfieldeditors.htm"&gt;JFace preferences and field editors&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;//-- Main.java --&lt;br /&gt;import java.io.IOException;&lt;br /&gt;&lt;br /&gt;import org.eclipse.jface.preference.PreferenceStore;&lt;br /&gt;import org.eclipse.jface.preference.RadioGroupFieldEditor;&lt;br /&gt;import org.eclipse.jface.util.IPropertyChangeListener;&lt;br /&gt;import org.eclipse.jface.util.PropertyChangeEvent;&lt;br /&gt;import org.eclipse.swt.layout.FillLayout;&lt;br /&gt;import org.eclipse.swt.widgets.Display;&lt;br /&gt;import org.eclipse.swt.widgets.Shell;&lt;br /&gt;&lt;br /&gt;public class Main {&lt;br /&gt;&lt;br /&gt;  public static void main(String[] args) throws IOException {&lt;br /&gt;&lt;br /&gt;    PreferenceStore ps = new PreferenceStore("RadioGroupFieldEditor.properties");&lt;br /&gt;    try {&lt;br /&gt;      ps.load();&lt;br /&gt;    } catch (IOException e) {&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    Display display = new Display();&lt;br /&gt;    Shell shell = new Shell(display);&lt;br /&gt;    shell.setText("RadioGroup");&lt;br /&gt;    shell.setLayout(new FillLayout());&lt;br /&gt;&lt;br /&gt;    String[][] labelAndValues = new String[][] { &lt;br /&gt;        { "Red", "1" },&lt;br /&gt;        { "Green", "2" }&lt;br /&gt;    };&lt;br /&gt;    RadioGroupFieldEditor radioGroupEditor = new RadioGroupFieldEditor(&lt;br /&gt;        "color", "Radio Group", 2,&lt;br /&gt;        labelAndValues, shell, true);&lt;br /&gt;&lt;br /&gt;    IPropertyChangeListener listener = new IPropertyChangeListener() {&lt;br /&gt;&lt;br /&gt;      @Override&lt;br /&gt;      public void propertyChange(PropertyChangeEvent event) {&lt;br /&gt;        Object newValue = event.getNewValue();&lt;br /&gt;        if (event.getOldValue() != newValue) {&lt;br /&gt;          System.out.println(newValue);&lt;br /&gt;        }&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;    };&lt;br /&gt;&lt;br /&gt;    radioGroupEditor.setPropertyChangeListener(listener);&lt;br /&gt;    radioGroupEditor.setPreferenceStore(ps);&lt;br /&gt;    radioGroupEditor.load();&lt;br /&gt;    &lt;br /&gt;    shell.pack();&lt;br /&gt;    shell.open();&lt;br /&gt;&lt;br /&gt;    while (!shell.isDisposed()) {&lt;br /&gt;      if (!display.readAndDispatch())&lt;br /&gt;        display.sleep();&lt;br /&gt;    }&lt;br /&gt;    radioGroupEditor.store();&lt;br /&gt;    &lt;br /&gt;    display.dispose();&lt;br /&gt;    &lt;br /&gt;    ps.save();&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-4437823724192669987?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/4437823724192669987/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=4437823724192669987' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/4437823724192669987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/4437823724192669987'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/06/eclipse-fieldeditor.html' title='Eclipse FieldEditor'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-2087270704766300496</id><published>2010-06-13T16:22:00.002+08:00</published><updated>2010-06-13T16:27:21.234+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Eclipse Nebula Project: RadioGroup</title><content type='html'>&lt;a href="http://www.eclipse.org/nebula/"&gt;Nebula Projec&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;//-- Main.java --&lt;br /&gt;import org.eclipse.nebula.widgets.radiogroup.RadioGroup;&lt;br /&gt;import org.eclipse.nebula.widgets.radiogroup.RadioItem;&lt;br /&gt;import org.eclipse.swt.SWT;&lt;br /&gt;import org.eclipse.swt.layout.FillLayout;&lt;br /&gt;import org.eclipse.swt.widgets.Display;&lt;br /&gt;import org.eclipse.swt.widgets.Event;&lt;br /&gt;import org.eclipse.swt.widgets.Listener;&lt;br /&gt;import org.eclipse.swt.widgets.Shell;&lt;br /&gt;&lt;br /&gt;public class Main {&lt;br /&gt;&lt;br /&gt;  public static void main(String[] args) {&lt;br /&gt;    final Display display = new Display();&lt;br /&gt;    final Shell shell = new Shell(display);&lt;br /&gt;    shell.setText("RadioGroup");&lt;br /&gt;    shell.setLayout(new FillLayout());&lt;br /&gt;&lt;br /&gt;    final RadioGroup rg = new RadioGroup(shell, SWT.NONE);&lt;br /&gt;    (new RadioItem(rg, 0)).setText("Red");&lt;br /&gt;    (new RadioItem(rg, 0)).setText("Green");&lt;br /&gt;&lt;br /&gt;    Listener listener = new Listener() {&lt;br /&gt;&lt;br /&gt;      @Override&lt;br /&gt;      public void handleEvent(Event arg) {&lt;br /&gt;        if (arg.item != null) {&lt;br /&gt;          System.out.println("index: " + arg.index + " text: "&lt;br /&gt;              + ((RadioItem) arg.item).getText());&lt;br /&gt;        }&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;    };&lt;br /&gt;    rg.addListener(SWT.Selection, listener);&lt;br /&gt;    shell.pack();&lt;br /&gt;    shell.open();&lt;br /&gt;&lt;br /&gt;    while (!shell.isDisposed()) {&lt;br /&gt;      if (!display.readAndDispatch())&lt;br /&gt;        display.sleep();&lt;br /&gt;    }&lt;br /&gt;    display.dispose();&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-2087270704766300496?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/2087270704766300496/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=2087270704766300496' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/2087270704766300496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/2087270704766300496'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/06/eclipse-nebula-project-radiogroup.html' title='Eclipse Nebula Project: RadioGroup'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-7850647122675957336</id><published>2010-06-13T13:33:00.002+08:00</published><updated>2010-06-13T13:40:46.566+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Eclipse Nebula Project</title><content type='html'>&lt;a href="http://www.eclipse.org/nebula/"&gt;Nebula Project&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;//-- Main.java --&lt;br /&gt;import java.util.Date;&lt;br /&gt;&lt;br /&gt;import org.eclipse.nebula.widgets.cdatetime.CDT;&lt;br /&gt;import org.eclipse.nebula.widgets.cdatetime.CDateTime;&lt;br /&gt;import org.eclipse.swt.layout.FillLayout;&lt;br /&gt;import org.eclipse.swt.widgets.Display;&lt;br /&gt;import org.eclipse.swt.widgets.Shell;&lt;br /&gt;&lt;br /&gt;public class Main {&lt;br /&gt;&lt;br /&gt;  public static void main(String[] args) {&lt;br /&gt;    final Display display = new Display();&lt;br /&gt;    final Shell shell = new Shell(display);&lt;br /&gt;    shell.setText("Clock");&lt;br /&gt;    shell.setLayout(new FillLayout());&lt;br /&gt;&lt;br /&gt;    final CDateTime cdt = new CDateTime(shell, CDT.SIMPLE | CDT.TIME_MEDIUM);&lt;br /&gt;    cdt.setEditable(false);&lt;br /&gt;&lt;br /&gt;    Runnable changeDate = new Runnable() {&lt;br /&gt;&lt;br /&gt;      @Override&lt;br /&gt;      public void run() {&lt;br /&gt;        while (!shell.isDisposed()) {&lt;br /&gt;          try {&lt;br /&gt;            display.asyncExec(new Runnable() {&lt;br /&gt;&lt;br /&gt;              @Override&lt;br /&gt;              public void run() {&lt;br /&gt;                if (!shell.isDisposed()) {&lt;br /&gt;                  cdt.setEditable(true);&lt;br /&gt;                  cdt.setSelection(new Date());&lt;br /&gt;                  cdt.setEditable(false);&lt;br /&gt;                }&lt;br /&gt;              }&lt;br /&gt;            });&lt;br /&gt;            Thread.sleep(1000);&lt;br /&gt;          } catch (InterruptedException e) {&lt;br /&gt;            e.printStackTrace();&lt;br /&gt;            return;&lt;br /&gt;          }&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;      }&lt;br /&gt;    };&lt;br /&gt;    shell.pack();&lt;br /&gt;    shell.open();&lt;br /&gt;&lt;br /&gt;    new Thread(changeDate).start();&lt;br /&gt;&lt;br /&gt;    while (!shell.isDisposed()) {&lt;br /&gt;      if (!display.readAndDispatch())&lt;br /&gt;        display.sleep();&lt;br /&gt;    }&lt;br /&gt;    display.dispose();&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-7850647122675957336?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/7850647122675957336/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=7850647122675957336' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7850647122675957336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7850647122675957336'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/06/eclipse-nebula-project.html' title='Eclipse Nebula Project'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-861817220247849971</id><published>2010-06-07T17:50:00.002+08:00</published><updated>2010-06-07T17:55:20.647+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Apache Commons JEXL</title><content type='html'>&lt;a href="http://commons.apache.org/jexl/"&gt;Apache Commons JEXL (Java Expression Language)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://commons.apache.org/jexl/reference/syntax.html"&gt;JEXL Syntax&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;//-- Main.java --&lt;br /&gt;import org.apache.commons.jexl2.Expression;&lt;br /&gt;import org.apache.commons.jexl2.JexlContext;&lt;br /&gt;import org.apache.commons.jexl2.JexlEngine;&lt;br /&gt;import org.apache.commons.jexl2.MapContext;&lt;br /&gt;&lt;br /&gt;public class Main {&lt;br /&gt;&lt;br /&gt;  public static void main(String[] args) throws Exception {&lt;br /&gt;    // Create or retrieve a JexlEngine&lt;br /&gt;    JexlEngine jexl = new JexlEngine();&lt;br /&gt;    // Create an expression object&lt;br /&gt;    String jexlExp = "if ((x * 2) == 5) { y = 1; } else {y = 2;}";&lt;br /&gt;    Expression e = jexl.createExpression(jexlExp);&lt;br /&gt;&lt;br /&gt;    // Create a context and add data&lt;br /&gt;    JexlContext jc = new MapContext();&lt;br /&gt;    jc.set("x", 2.5);&lt;br /&gt;&lt;br /&gt;    // Now evaluate the expression, getting the result&lt;br /&gt;    Object o = e.evaluate(jc);&lt;br /&gt;    System.out.println(o);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-861817220247849971?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/861817220247849971/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=861817220247849971' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/861817220247849971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/861817220247849971'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/06/apache-commons-jexl.html' title='Apache Commons JEXL'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-8413888751135531329</id><published>2010-05-31T11:31:00.005+08:00</published><updated>2010-05-31T12:58:05.085+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Git'/><title type='text'>Seting up a shared git repository by group</title><content type='html'>&lt;a href="http://git-scm.com/"&gt;Git&lt;/a&gt;&lt;br /&gt;&lt;a href="http://telepathy.freedesktop.org/wiki/Git"&gt;Telepathy Wiki - Git&lt;/a&gt;&lt;br /&gt;&lt;a href="https://37s.backpackit.com/pub/1465067"&gt;Git Resources&lt;/a&gt;&lt;br /&gt;&lt;a href="http://people.debian.org.tw/~chihchun/2009/01/05/understand-git-in-one-hour/"&gt;一小時內搞懂 Git&lt;/a&gt;&lt;br /&gt;&lt;a href="http://plog.longwin.com.tw/my_note-unix/2009/05/19/git-learn-initial-command-2009"&gt;Git 初學筆記 - 指令操作教學&lt;/a&gt;&lt;br /&gt;&lt;a href="http://gitcasts.com/posts/railsconf-git-talk"&gt;RailsConf Git Talk&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ihower.tw/blog/archives/2620"&gt;Git 版本控制系統(2) 開 branch 分支和操作遠端 repo.&lt;/a&gt;&lt;br /&gt;&lt;a href="http://zrusin.blogspot.com/2007/09/git-cheat-sheet.html"&gt;Git cheat sheet&lt;/a&gt;&lt;br /&gt;&lt;a href="http://jan-krueger.net/development/git-cheat-sheet-extended-edition"&gt;Git cheat sheet, extended edition&lt;/a&gt;&lt;br /&gt;&lt;a href="http://toolmantim.com/thoughts/setting_up_a_new_remote_git_repository"&gt;Setting up a new remote git repository&lt;/a&gt;&lt;br /&gt;&lt;a href="https://git.wiki.kernel.org/index.php/GitFaq"&gt;GitFaq&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;mkdir projectName.git&lt;br /&gt;cd projectName.git&lt;br /&gt;git init --bare --shared=group&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-8413888751135531329?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/8413888751135531329/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=8413888751135531329' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8413888751135531329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8413888751135531329'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/05/seting-up-shared-git-repository-by.html' title='Seting up a shared git repository by group'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-6020213729359746020</id><published>2010-05-26T21:02:00.006+08:00</published><updated>2010-05-26T22:02:05.300+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='GAS'/><title type='text'>Linux Assembly Hello, world!</title><content type='html'>&lt;a href="http://www.tldp.org/HOWTO/Assembly-HOWTO/"&gt;Linux Assembly HOWTO&lt;/a&gt;&lt;br /&gt;&lt;a href="http://tldp.org/HOWTO/Assembly-HOWTO/quickstart.html"&gt;Linux Assembly HOWTO - Chapter 6. Quick start&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;# hello.S&lt;br /&gt;.text&lt;br /&gt;&lt;br /&gt;        .globl _start&lt;br /&gt;&lt;br /&gt;_start:&lt;br /&gt;        movl    $len,   %edx&lt;br /&gt;        movl    $msg,   %ecx&lt;br /&gt;        movl    $1,     %ebx&lt;br /&gt;        movl    $4,     %eax&lt;br /&gt;        int     $0x80&lt;br /&gt;&lt;br /&gt;        xorl    %ebx,   %ebx&lt;br /&gt;        movl    $1,     %eax&lt;br /&gt;        int     $0x80&lt;br /&gt;&lt;br /&gt;.data&lt;br /&gt;&lt;br /&gt;msg:&lt;br /&gt;        .ascii  "Hello, world!\n"&lt;br /&gt;        len = . - msg&lt;br /&gt;&lt;br /&gt;&lt;/CODE&gt;&lt;br /&gt;&lt;CODE&gt;# Makefile&lt;br /&gt;&lt;br /&gt;all: hello.o&lt;br /&gt;&amp;#9ld -s -o hello hello.o&lt;br /&gt;&lt;br /&gt;hello.o: hello.S&lt;br /&gt;&amp;#9as -o hello.o hello.S&lt;br /&gt;&lt;br /&gt;clean:&lt;br /&gt;&amp;#9rm -f hello.o hello&lt;br /&gt;&lt;br /&gt;run:&lt;br /&gt;&amp;#9./hello&lt;br /&gt;&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;br /&gt;$ make all run&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-6020213729359746020?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/6020213729359746020/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=6020213729359746020' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/6020213729359746020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/6020213729359746020'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/05/linux-assembly-hello-world.html' title='Linux Assembly Hello, world!'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-302023297673135299</id><published>2010-05-12T22:10:00.001+08:00</published><updated>2010-05-12T22:13:52.432+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Eclipse User Settings: FAQ</title><content type='html'>&lt;a href="http://www.eclipse.org/eclipse/platform-core/documents/user_settings/faq.html"&gt;Eclipse User Settings: FAQ&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-302023297673135299?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/302023297673135299/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=302023297673135299' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/302023297673135299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/302023297673135299'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/05/eclipse-user-settings-faq.html' title='Eclipse User Settings: FAQ'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-8041421035423541334</id><published>2010-04-24T13:20:00.007+08:00</published><updated>2010-04-24T14:10:31.572+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Eclipse dynamic extension API</title><content type='html'>&lt;a href="http://publib.boulder.ibm.com/infocenter/ledoc/v6r1/index.jsp?topic=/com.ibm.rcp.tools.doc.appdev/ttoolbadddynamic.html"&gt;Contributing items to a toolbar dynamically&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;New Plug-in Project&lt;br /&gt;  Project Name: test.contributing&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Add Dependencies&lt;br /&gt;// -- META-INF/MANIFEST.MF --&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;&lt;br /&gt;Manifest-Version: 1.0&lt;br /&gt;Bundle-ManifestVersion: 2&lt;br /&gt;Bundle-Name: Contributing&lt;br /&gt;Bundle-SymbolicName: test.contributing;singleton:=true&lt;br /&gt;Bundle-Version: 1.0.0.qualifier&lt;br /&gt;Bundle-Activator: test.contributing.Activator&lt;br /&gt;Require-Bundle: org.eclipse.ui,&lt;br /&gt; org.eclipse.ui.ide,&lt;br /&gt; org.eclipse.core.runtime&lt;br /&gt;Bundle-ActivationPolicy: lazy&lt;br /&gt;Bundle-RequiredExecutionEnvironment: JavaSE-1.6&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Add Extensions&lt;br /&gt;// -- plugin.xml --&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;br /&gt;&amp;lt;?eclipse version="3.4"?&gt;&lt;br /&gt;&amp;lt;plugin&gt;&lt;br /&gt; &amp;lt;extension point="org.eclipse.ui.startup"&gt;&lt;br /&gt;   &amp;lt;startup class="test.contributing.Startup"&gt;&lt;br /&gt;   &amp;lt;/startup&gt;&lt;br /&gt; &amp;lt;/extension&gt;&lt;br /&gt;&amp;lt;/plugin&gt;&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Add Java Class&lt;br /&gt;// -- /src/test/contributing/Startup.java --&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;&lt;br /&gt;package test.contributing;&lt;br /&gt;&lt;br /&gt;import java.io.InputStream;&lt;br /&gt;&lt;br /&gt;import org.eclipse.core.internal.registry.ExtensionRegistry;&lt;br /&gt;import org.eclipse.core.runtime.ContributorFactoryOSGi;&lt;br /&gt;import org.eclipse.core.runtime.IContributor;&lt;br /&gt;import org.eclipse.core.runtime.IExtensionRegistry;&lt;br /&gt;import org.eclipse.core.runtime.RegistryFactory;&lt;br /&gt;import org.eclipse.ui.IStartup;&lt;br /&gt;import org.osgi.framework.Bundle;&lt;br /&gt;&lt;br /&gt;public class Startup implements IStartup {&lt;br /&gt;&lt;br /&gt;  @Override public void earlyStartup() {&lt;br /&gt;    try {&lt;br /&gt;      // use Eclipse Dynamic Extension API&lt;br /&gt;      IExtensionRegistry reg = RegistryFactory.getRegistry();&lt;br /&gt;      Object key = ((ExtensionRegistry) reg).getTemporaryUserToken();&lt;br /&gt;      Bundle bundle = Activator.getDefault().getBundle();&lt;br /&gt;      IContributor contributor = ContributorFactoryOSGi&lt;br /&gt;          .createContributor(bundle);&lt;br /&gt;      InputStream is = Startup.class.getResourceAsStream("dynamically.xml");&lt;br /&gt;      try {&lt;br /&gt;        reg.addContribution(is, contributor, false, null, null, key);&lt;br /&gt;      } finally {&lt;br /&gt;        is.close();&lt;br /&gt;      }&lt;br /&gt;    } catch (Exception e) {&lt;br /&gt;      e.printStackTrace();&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Add dynamic extension file&lt;br /&gt;// -- src/test/contributing/dynamically.xml --&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;br /&gt;&amp;lt;?eclipse version="3.4"?&gt;&lt;br /&gt;&amp;lt;plugin&gt;&lt;br /&gt;  &amp;lt;extension&lt;br /&gt;     point="org.eclipse.ui.actionSets"&lt;br /&gt;     id="test.contributing.dynamically.actionSets"&gt;&lt;br /&gt;   &amp;lt;actionSet&lt;br /&gt;      id="test.contributing.dynamically.actionSet"&lt;br /&gt;      label="Dynamically"&lt;br /&gt;      visible="true"&gt;&lt;br /&gt;     &amp;lt;menu&lt;br /&gt;        id="test.contributing.dynamically.menu"&lt;br /&gt;        label="Dynamically"&gt;&lt;br /&gt;      &amp;lt;separator&lt;br /&gt;         name="test.contributing.dynamically.separator"&gt;&lt;br /&gt;      &amp;lt;/separator&gt;&lt;br /&gt;     &amp;lt;/menu&gt;&lt;br /&gt;     &amp;lt;action&lt;br /&gt;        id="test.contributing.dynamically.action"&lt;br /&gt;        label="Open Local File"&lt;br /&gt;        class="org.eclipse.ui.internal.ide.actions.OpenLocalFileAction"&lt;br /&gt;        toolbarPath="test.contributing.dynamically.separator"&gt;&lt;br /&gt;     &amp;lt;/action&gt;&lt;br /&gt;   &amp;lt;/actionSet&gt;&lt;br /&gt;  &amp;lt;/extension&gt;&lt;br /&gt;&amp;lt;/plugin&gt;&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-8041421035423541334?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/8041421035423541334/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=8041421035423541334' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8041421035423541334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8041421035423541334'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/04/eclipse-dynamic-extension-api.html' title='Eclipse dynamic extension API'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-5674641911395125522</id><published>2010-04-06T01:12:00.003+08:00</published><updated>2010-04-24T13:17:41.227+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Create hide project in Eclipse</title><content type='html'>&lt;pre&gt;&lt;CODE&gt;&lt;br /&gt;import org.eclipse.core.resources.IProject;&lt;br /&gt;import org.eclipse.core.resources.IProjectDescription;&lt;br /&gt;import org.eclipse.core.resources.IResource;&lt;br /&gt;import org.eclipse.core.resources.IWorkspace;&lt;br /&gt;import org.eclipse.core.resources.ResourcesPlugin;&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;try {&lt;br /&gt;  String name = ".hiddenProject";&lt;br /&gt;  IWorkspace workspace = ResourcesPlugin.getWorkspace();&lt;br /&gt;  IProject project = workspace.getRoot().getProject(name);&lt;br /&gt;  if (!project.exists()){&lt;br /&gt;    IProjectDescription description = workspace.newProjectDescription(name);&lt;br /&gt;    project.create(description,  IResource.HIDDEN, null);&lt;br /&gt;  }      &lt;br /&gt;} catch (Exception e) {&lt;br /&gt;  e.printStackTrace();&lt;br /&gt;}&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-5674641911395125522?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/5674641911395125522/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=5674641911395125522' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/5674641911395125522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/5674641911395125522'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/04/create-hide-project-in-eclipse.html' title='Create hide project in Eclipse'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-7777681779747786600</id><published>2010-04-02T23:10:00.005+08:00</published><updated>2010-04-02T23:30:10.788+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Linux ram disk /dev/shm</title><content type='html'>&lt;a href="http://www.cyberciti.biz/tips/what-is-devshm-and-its-practical-usage.html"&gt;What is /dev/shm and its practical usage&lt;/a&gt;&lt;br /&gt;$ mount -o remount,size=8G /dev/shm&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-7777681779747786600?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/7777681779747786600/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=7777681779747786600' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7777681779747786600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7777681779747786600'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/04/linux-ram-disk-devshm.html' title='Linux ram disk /dev/shm'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-7788734240446294804</id><published>2010-04-02T02:35:00.003+08:00</published><updated>2010-04-02T02:45:21.269+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>recordMyDesktop 畫面錄製軟體</title><content type='html'>&lt;a href="http://recordmydesktop.sourceforge.net/"&gt;recordMyDesktop&lt;/a&gt;&lt;br /&gt;&lt;a href="http://wiki.ubuntu-tw.org/index.php?title=RecordMyDesktop"&gt;RecordMyDesktop Wiki&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;$ sudo apt-get install recordmydesktop gtk-recordmydesktop&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-7788734240446294804?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/7788734240446294804/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=7788734240446294804' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7788734240446294804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7788734240446294804'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/04/recordmydesktop.html' title='recordMyDesktop 畫面錄製軟體'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-2366531220297703126</id><published>2010-03-30T21:10:00.003+08:00</published><updated>2010-03-30T21:14:49.894+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CentOS'/><title type='text'>Inkscape 0.47 for RHEL/CentOS</title><content type='html'>&lt;a href="http://lists.rpmforge.net/pipermail/packagers/2009-December/001083.html"&gt;Inkscape 0.47 for RHEL/CentOS&lt;/a&gt;&lt;br /&gt;&lt;a href="http://centos.toracat.org/misc/inkscape/"&gt;http://centos.toracat.org/misc/inkscape/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-2366531220297703126?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/2366531220297703126/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=2366531220297703126' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/2366531220297703126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/2366531220297703126'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/03/inkscape-047-for-rhelcentos.html' title='Inkscape 0.47 for RHEL/CentOS'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-3636651710577403051</id><published>2010-03-25T20:12:00.005+08:00</published><updated>2010-03-26T00:39:02.263+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CentOS'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Linux Dialog</title><content type='html'>&lt;a href="http://hightek.org/dialog/"&gt;Dialog - display dialog boxes from shell scripts&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.linuxjournal.com/article/2807"&gt;Dialog: An Introductory Tutorial&lt;/a&gt;&lt;br /&gt;Install dialog&lt;br /&gt;Ubuntu $ apt-get install dialog&lt;br /&gt;Redhat,CentOS $ yum install dialog&lt;br /&gt;&lt;br /&gt;Example&lt;br /&gt;$ (echo "30"; sleep 2; echo "50"; sleep 2; echo "100") | dialog --gauge "test gauge" 10 40 0&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-3636651710577403051?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/3636651710577403051/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=3636651710577403051' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/3636651710577403051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/3636651710577403051'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/03/linux-dialog.html' title='Linux Dialog'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-8617417569876248245</id><published>2010-03-01T16:42:00.002+08:00</published><updated>2010-03-01T19:04:18.427+08:00</updated><title type='text'>Cygwin - Changing the default prefix</title><content type='html'>&lt;a href="http://cygwin-lite.sourceforge.net/html/mount.html"&gt;Cygwin Utilities&lt;/a&gt;&lt;br /&gt;$ mount --change-cygdrive-prefix /&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-8617417569876248245?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/8617417569876248245/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=8617417569876248245' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8617417569876248245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8617417569876248245'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/03/cygwin-changing-default-prefix.html' title='Cygwin - Changing the default prefix'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-1735022754803767655</id><published>2010-02-24T10:35:00.003+08:00</published><updated>2010-02-24T10:52:13.561+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><title type='text'>curl easy perform with proxy</title><content type='html'>&lt;pre&gt;&lt;CODE&gt;// test_curl.c&lt;br /&gt;#include &amp;lt;stdio.h&gt;&lt;br /&gt;#include &amp;lt;stdlib.h&gt;&lt;br /&gt;#include &amp;lt;curl/curl.h&gt;&lt;br /&gt;#include &amp;lt;curl/easy.h&gt;&lt;br /&gt;&lt;br /&gt;int url_Perform(CURL* url, char* url_str) {&lt;br /&gt;        curl_easy_setopt(url, CURLOPT_URL, url_str);&lt;br /&gt;        CURLcode code = code = curl_easy_perform(url);&lt;br /&gt;        if(code != CURLE_OK) {&lt;br /&gt;                printf("%s\n", curl_easy_strerror(code));&lt;br /&gt;                return EXIT_FAILURE;&lt;br /&gt;        }&lt;br /&gt;        return EXIT_SUCCESS;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main(int argc, char* argv[]) {&lt;br /&gt;        CURL* url = curl_easy_init();&lt;br /&gt;        char* proxy = getenv("http_proxy");&lt;br /&gt;        curl_easy_setopt(url, CURLOPT_PROXY, proxy);&lt;br /&gt;        int code = url_Perform(url, argv[1]);&lt;br /&gt;        curl_easy_cleanup(url);&lt;br /&gt;        return code;&lt;br /&gt;}&lt;br /&gt;/*&lt;br /&gt;$ gcc -lcurl -o test_curl  test_curl.c;http_proxy=http://proxy:3128 ./test_curl http://www.google.com&lt;br /&gt;*/&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-1735022754803767655?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/1735022754803767655/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=1735022754803767655' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/1735022754803767655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/1735022754803767655'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/02/curl-easy-perform-with-proxy.html' title='curl easy perform with proxy'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-4032668436120622945</id><published>2010-02-19T12:58:00.003+08:00</published><updated>2010-02-21T16:24:41.665+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Custom Tab Completion</title><content type='html'>&lt;a href="http://aplawrence.com/Unix/customtab.html"&gt;Custom Tab Completion&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.caliban.org/bash/#completion"&gt;Programmable Completion&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;# unicode(1) completion&lt;br /&gt;# put this file in /etc/bash_completion.d/unicode&lt;br /&gt;&lt;br /&gt;have unicode &amp;&amp;&lt;br /&gt;_unicode()&lt;br /&gt;{&lt;br /&gt;  local cur&lt;br /&gt;&lt;br /&gt;  COMPREPLY=()&lt;br /&gt;  cur=${COMP_WORDS[COMP_CWORD]}&lt;br /&gt;&lt;br /&gt;  if [[ "$cur" == -* ]]; then&lt;br /&gt;    COMPREPLY=( $( compgen -W '-h --help -x --hexadecimal \&lt;br /&gt;      -d --decimal -r --regexp -s --string -a --auto \&lt;br /&gt;      -m --max= -i --io= -c --charset-add= \&lt;br /&gt;      -C --colour= -v --verbose -w --wikipedia' -- $cur ) ) &lt;br /&gt;  fi&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;[ "${have:-}" ] &amp;&amp; complete -F _unicode $filenames unicode&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;br /&gt;$ unicode -&amp;lt;tab&gt;&amp;lt;tab&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-4032668436120622945?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/4032668436120622945/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=4032668436120622945' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/4032668436120622945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/4032668436120622945'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/02/custom-tab-completion.html' title='Custom Tab Completion'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-4755073611705057109</id><published>2010-02-17T22:17:00.001+08:00</published><updated>2010-02-17T22:20:28.859+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu play a DVD video ISO image</title><content type='html'>&lt;a href="http://www.go2linux.org/how-to-play-dvd-iso-image-as-movie-video"&gt;How to play a DVD video ISO image&lt;/a&gt;&lt;br /&gt;$ sudo aptitude install gxine&lt;br /&gt;$ gxine dvd://media/DVDIMAGE.ISO&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-4755073611705057109?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/4755073611705057109/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=4755073611705057109' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/4755073611705057109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/4755073611705057109'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/02/ubuntu-play-dvd-video-iso-image.html' title='Ubuntu play a DVD video ISO image'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-4938811112658423128</id><published>2010-02-09T15:33:00.003+08:00</published><updated>2010-02-09T21:59:36.694+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Fixing Eclipse for Ubuntu Karmic Koala 9.10</title><content type='html'>&lt;a href="http://blog.export.be/2009/10/fixing-eclipse-for-ubuntu-karmic-koala-9-10/"&gt;Fixing Eclipse for Ubuntu Karmic Koala 9.10&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;$ GDK_NATIVE_WINDOWS=true ./eclipse&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-4938811112658423128?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/4938811112658423128/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=4938811112658423128' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/4938811112658423128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/4938811112658423128'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/02/fixing-eclipse-for-ubuntu-karmic-koala.html' title='Fixing Eclipse for Ubuntu Karmic Koala 9.10'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-8723453101406327261</id><published>2010-02-09T14:47:00.003+08:00</published><updated>2010-02-09T15:55:33.990+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Use Scala test Java code</title><content type='html'>&lt;a href="http://www.scala-lang.org/"&gt;Scala&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ scala&lt;br /&gt;scala&gt; var s = "\to1.setName( o2.getName());\no1.setXXX(o2.getX2X());"&lt;br /&gt;s: java.lang.String = &lt;br /&gt; o1.setName( o2.getName());&lt;br /&gt;o1.setXXX(o2.getX2X());&lt;br /&gt;scala&gt; s.replaceAll("(\\w*.)(set.*[(])(\\s*)(\\w*.)(get.*[(])","$4$2$3$1$5");&lt;br /&gt;res1: java.lang.String = &lt;br /&gt; o2.setName( o1.getName());&lt;br /&gt;o2.setXXX(o1.getX2X());&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-8723453101406327261?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/8723453101406327261/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=8723453101406327261' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8723453101406327261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8723453101406327261'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/02/use-scala-test-java-code.html' title='Use Scala test Java code'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-5613908179740282713</id><published>2010-02-06T17:47:00.003+08:00</published><updated>2010-03-26T00:40:04.454+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu trash-cli</title><content type='html'>&lt;a href="http://manpages.ubuntu.com/manpages/intrepid/man1/empty-trash.1.html"&gt;trash - Command line trash utility&lt;/a&gt;&lt;br /&gt;Install trash-cli&lt;br /&gt;$ apt-get install trash-cli&lt;br /&gt;&lt;br /&gt;$ touch test.txt&lt;br /&gt;$ trash test.txt&lt;br /&gt;$ list-trash&lt;br /&gt;2010-02-06 17:51:07 /home/solnone/test.txt&lt;br /&gt;$ restore-trash &lt;br /&gt;   0 2010-02-06 17:51:07 /home/solnone/test.txt&lt;br /&gt;What file to restore [0..0]: 0&lt;br /&gt;$ list-trash&lt;br /&gt;$ trash test.txt&lt;br /&gt;$ empty-trash&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-5613908179740282713?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/5613908179740282713/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=5613908179740282713' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/5613908179740282713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/5613908179740282713'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/02/ubuntu-trash-cli.html' title='Ubuntu trash-cli'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-7818475285715246547</id><published>2010-02-05T17:13:00.002+08:00</published><updated>2010-02-05T18:05:26.048+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu 9.10 move file to Trash</title><content type='html'>move file to Trash&lt;br /&gt;$ mv filename ~/.local/share/Trash/files/&lt;br /&gt;&lt;br /&gt;alias trash&lt;br /&gt;$ alias trash='_(){ mv $@ ~/.local/share/Trash/files/; }; _'&lt;br /&gt;$ trash filename&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-7818475285715246547?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/7818475285715246547/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=7818475285715246547' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7818475285715246547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7818475285715246547'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/02/ubuntu-910-move-file-to-trash.html' title='Ubuntu 9.10 move file to Trash'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-3748039833554766127</id><published>2010-02-04T18:09:00.003+08:00</published><updated>2010-02-04T18:14:42.695+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><title type='text'>AutoGen AutoOpts example</title><content type='html'>&lt;a href="http://www.gnu.org/software/autogen/"&gt;The AutoGen Home Page&lt;/a&gt;&lt;br /&gt;&lt;a href="http://autogen.sourceforge.net/doc/autogen_203.html#SEC203"&gt;AutoOpts Quick Start&lt;/a&gt;&lt;br /&gt;&lt;a href="http://cvs.savannah.gnu.org/viewvc/autogen/autoopts/test/getopt.test?root=autogen&amp;view=markup"&gt;example of the generated getopt_long&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;/* check.def */&lt;br /&gt;AutoGen Definitions options;&lt;br /&gt;&lt;br /&gt;prog_name  = check;&lt;br /&gt;prog_title = "Checkout Automated Options";&lt;br /&gt;version    = "1.0.0"; &lt;br /&gt;copyright  = {&lt;br /&gt;    date   = "2009-2010";&lt;br /&gt;    owner  = "None";&lt;br /&gt;    author = "Solnone";&lt;br /&gt;    eaddr  = "solnone@gmail.com";&lt;br /&gt;    type   = lgpl;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;long_opts;&lt;br /&gt;&lt;br /&gt;flag = {&lt;br /&gt;    name      = check-dirs;&lt;br /&gt;    value     = L;        /* flag style option character */&lt;br /&gt;    arg-type  = string;   /* option argument indication  */&lt;br /&gt;    max       = NOLIMIT;  /* occurrence limit (none)     */&lt;br /&gt;    stack-arg;            /* save opt args in a stack    */&lt;br /&gt;    descrip   = "Checkout directory list";&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;flag = {&lt;br /&gt;    name      = show_defs;&lt;br /&gt;    descrip   = "Show the definition tree";&lt;br /&gt;    disable   = dont;     /* mark as enable/disable type */&lt;br /&gt;                          /* option.  Disable as 'dont-' */&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;main = { &lt;br /&gt;    main-type = shell-process;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;$ autogen check.def&lt;br /&gt;$ cflags="-DTEST_CHECK_OPTS `autoopts-config cflags`"&lt;br /&gt;$ ldflags="`autoopts-config ldflags`"&lt;br /&gt;$ cc -o check -g ${cflags} check.c ${ldflags}&lt;br /&gt;$ ./check -L/tmp&lt;br /&gt;OPTION_CT=1&lt;br /&gt;export OPTION_CT&lt;br /&gt;CHECK_CHECK_DIRS_CT=1&lt;br /&gt;export CHECK_CHECK_DIRS_CT&lt;br /&gt;CHECK_CHECK_DIRS_1='/tmp'&lt;br /&gt;export CHECK_CHECK_DIRS_1&lt;br /&gt;*/&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-3748039833554766127?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/3748039833554766127/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=3748039833554766127' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/3748039833554766127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/3748039833554766127'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/02/autogen-autoopts-example.html' title='AutoGen AutoOpts example'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-6602368092703875185</id><published>2010-01-28T15:08:00.004+08:00</published><updated>2010-01-28T15:30:06.721+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><title type='text'>GNU gperf is a perfect hash function generator</title><content type='html'>&lt;a href="http://www.gnu.org/software/gperf/"&gt;GNU gperf&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;// lang-utf8.gperf&lt;br /&gt;struct language {&lt;br /&gt;  const char *foreign_name;&lt;br /&gt;  const char *english_name;&lt;br /&gt;  const char *locale;&lt;br /&gt;};&lt;br /&gt;%%&lt;br /&gt;አማርኛ,       "Amharic",    NULL&lt;br /&gt;česky,      "Czech",      "cs_CZ.UTF-8"&lt;br /&gt;Dansk,      "Danish",     "da_DK.UTF-8"&lt;br /&gt;English,    "English",    "en_GB.UTF-8"&lt;br /&gt;Suomi,      "Finnish",    "fi_FI.UTF-8"&lt;br /&gt;Français,   "French",     "fr_FR.UTF-8"&lt;br /&gt;Deutsch,    "German",     "de_DE.UTF-8"&lt;br /&gt;Ελληνικά,   "Greek",      "el_GR.UTF-8"&lt;br /&gt;עברית,      "Hebrew",     "he_IL.UTF-8"&lt;br /&gt;Italiano,   "Italian",    "it_IT.UTF-8"&lt;br /&gt;Norsk,      "Norwegian",  "no_NO.UTF-8"&lt;br /&gt;Русский,    "Russian",    "ru_RU.UTF-8"&lt;br /&gt;Español,    "Spanish",    "es_ES.UTF-8"&lt;br /&gt;Svenska,    "Swedish",    "sv_SE.UTF-8"&lt;br /&gt;ภาษาไทย,    "Thai",       "th_TH.UTF-8"&lt;br /&gt;Türkçe,     "Turkish",    "tr_TR.UTF-8"&lt;br /&gt;Tiếng Việt, "Vietnamese", "vi_VN.UTF-8"&lt;br /&gt;日本語,     "Japanese",   "ja_JP.UTF-8"&lt;br /&gt;繁體中文,   "Chinese",    "zh_TW.UTF-8"&lt;br /&gt;한글,       "Korean",     "ko_KR.UTF-8"&lt;br /&gt;%%&lt;br /&gt;&lt;br /&gt;#include &amp;lt;stdio.h&gt;&lt;br /&gt;#include &amp;lt;stdlib.h&gt;&lt;br /&gt;&lt;br /&gt;int main(int argc, char* argv[]) {&lt;br /&gt;  if (argc &lt; 2) {&lt;br /&gt;    return EXIT_FAILURE;&lt;br /&gt;  }&lt;br /&gt;  char* str = argv[1];&lt;br /&gt;  struct language * l = in_word_set(str, strlen(str));&lt;br /&gt;  if (l != NULL) {&lt;br /&gt;    printf("foreign_name: %s, english_name: %s, locale: %s\n",&lt;br /&gt;        l-&gt;foreign_name,  l-&gt;english_name, l-&gt;locale);&lt;br /&gt;  } else {&lt;br /&gt;    printf("NULL\n");&lt;br /&gt;  }&lt;br /&gt;  return EXIT_SUCCESS;&lt;br /&gt;}&lt;br /&gt;/*&lt;br /&gt;$ gperf  -k1 -t -I -K foreign_name &lt; lang-utf8.gperf &gt; lang-utf8.c &lt;br /&gt;$ gcc -o lang-utf8 lang-utf8.c&lt;br /&gt;$ ./lang-utf8 繁體中文&lt;br /&gt;foreign_name: 繁體中文, english_name: Chinese, locale: zh_TW.UTF-8&lt;br /&gt;*/&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-6602368092703875185?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/6602368092703875185/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=6602368092703875185' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/6602368092703875185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/6602368092703875185'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/01/gnu-gperf-is-perfect-hash-function.html' title='GNU gperf is a perfect hash function generator'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-5088734507483202932</id><published>2010-01-27T14:52:00.005+08:00</published><updated>2010-01-27T15:06:21.897+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><title type='text'>用 Perl 寫簡單的 nl command</title><content type='html'>&lt;a href="http://ind.ntou.edu.tw/~dada/cgi/Perlsynx.htm"&gt;Perl的基本語法&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;&lt;br /&gt;#!/usr/bin/perl&lt;br /&gt;# filename: nl.pl&lt;br /&gt;use 5.006;&lt;br /&gt;use strict;&lt;br /&gt;use warnings;&lt;br /&gt;&lt;br /&gt;my $fileHandle = *STDIN;&lt;br /&gt;&lt;br /&gt;if (@ARGV &gt; 0) {&lt;br /&gt;  open FILE, "&lt;", $ARGV[0];&lt;br /&gt;  $fileHandle = *FILE;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;while(&lt;$fileHandle&gt;) {&lt;br /&gt; printf "%7.d\t%s", $., $_; &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;close $fileHandle;&lt;br /&gt;&lt;br /&gt;__END__&lt;br /&gt;$ perl --version | ./nl.pl &lt;br /&gt;      1 &lt;br /&gt;      2 This is perl, v5.10.0 built for x86_64-linux-gnu-thread-multi&lt;br /&gt;      3 &lt;br /&gt;      4 Copyright 1987-2007, Larry Wall&lt;br /&gt;      5 &lt;br /&gt;      6 Perl may be copied only under the terms of either the Artistic License or the&lt;br /&gt;      7 GNU General Public License, which may be found in the Perl 5 source kit.&lt;br /&gt;      8 &lt;br /&gt;      9 Complete documentation for Perl, including FAQ lists, should be found on&lt;br /&gt;     10 this system using "man perl" or "perldoc perl".  If you have access to the&lt;br /&gt;     11 Internet, point your browser at http://www.perl.org/, the Perl Home Page.&lt;br /&gt;     12 &lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-5088734507483202932?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/5088734507483202932/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=5088734507483202932' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/5088734507483202932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/5088734507483202932'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/01/perl-nl-command.html' title='用 Perl 寫簡單的 nl command'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-1008427150450434666</id><published>2010-01-26T14:40:00.001+08:00</published><updated>2010-01-29T10:28:39.292+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><title type='text'>C enum bitmask</title><content type='html'>&lt;pre&gt;&lt;CODE&gt;&lt;br /&gt;#include &amp;lt;stdio.h&gt;&lt;br /&gt;#include &amp;lt;stdlib.h&gt;&lt;br /&gt;&lt;br /&gt;typedef enum {&lt;br /&gt;  Sunday = 0x01,&lt;br /&gt;  Monday = 0x02,&lt;br /&gt;  Tuesday = 0x04,&lt;br /&gt;  Wednesday = 0x08,&lt;br /&gt;  Thursday = 0x10,&lt;br /&gt;  Friday = 0x20,&lt;br /&gt;  Saturday = 0x40&lt;br /&gt;} DaysSet;&lt;br /&gt;&lt;br /&gt;char* days_str[] = {&lt;br /&gt;  "Sunday",&lt;br /&gt;  "Monday",&lt;br /&gt;  "Tuesday",&lt;br /&gt;  "Wednesday",&lt;br /&gt;  "Thursday",&lt;br /&gt;  "Friday",&lt;br /&gt;  "Saturday"&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;DaysSet week_end = Sunday | Saturday;&lt;br /&gt;&lt;br /&gt;int main() {&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  int order;&lt;br /&gt;&lt;br /&gt;  printf("Please enter the day of the week (0 to 6)\n");&lt;br /&gt;  scanf("%d", &amp;order);&lt;br /&gt;&lt;br /&gt;  if (((1 &amp;lt;&amp;lt; order) &amp; week_end) &gt; 0 ) {&lt;br /&gt;    printf("%s is weekend\n", days_str[order]);&lt;br /&gt;  } else {&lt;br /&gt;    printf("%s is week\n", days_str[order]);&lt;br /&gt;  }&lt;br /&gt;  return EXIT_SUCCESS;&lt;br /&gt;}&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-1008427150450434666?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/1008427150450434666/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=1008427150450434666' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/1008427150450434666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/1008427150450434666'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/01/c-enum-bitmask.html' title='C enum bitmask'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-2413951609664026136</id><published>2010-01-25T18:56:00.003+08:00</published><updated>2010-01-25T19:01:35.755+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><title type='text'>GLib Base64 encode decode</title><content type='html'>&lt;pre&gt;&lt;CODE&gt;// test_base64.c&lt;br /&gt;#include &amp;lt;stdio.h&gt;&lt;br /&gt;#include &amp;lt;stdlib.h&gt;&lt;br /&gt;#include &amp;lt;locale.h&gt;&lt;br /&gt;#include &amp;lt;glib.h&gt;&lt;br /&gt;&lt;br /&gt;int main(void) {&lt;br /&gt; setlocale(LC_ALL,"");&lt;br /&gt;&lt;br /&gt; gchar* text = g_strdup("中文");&lt;br /&gt; gchar* result = NULL;&lt;br /&gt; guchar* result2 = NULL;&lt;br /&gt; gsize length = 0;&lt;br /&gt; result = g_base64_encode(text, strlen(text));&lt;br /&gt; g_print("%s\n", result);&lt;br /&gt; result2 = g_base64_decode(result, &amp;length);&lt;br /&gt; g_print("%s\n", result2);&lt;br /&gt; g_free(text);&lt;br /&gt; g_free(result);&lt;br /&gt; g_free(result2);&lt;br /&gt; return EXIT_SUCCESS;&lt;br /&gt;}&lt;br /&gt;/*&lt;br /&gt;$ gcc `pkg-config --cflags --libs glib-2.0` -o test_base64 test_base64.c&lt;br /&gt;$ ./test_base64&lt;br /&gt;5Lit5paH&lt;br /&gt;中文&lt;br /&gt;*/&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-2413951609664026136?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/2413951609664026136/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=2413951609664026136' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/2413951609664026136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/2413951609664026136'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/01/glib-base64-encode-decode.html' title='GLib Base64 encode decode'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-7639907183532371409</id><published>2010-01-22T10:49:00.004+08:00</published><updated>2010-01-22T10:54:31.744+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><title type='text'>curl easy perform</title><content type='html'>&lt;pre&gt;&lt;CODE&gt;// test_curl.c&lt;br /&gt;#include &amp;lt;stdio.h&gt;&lt;br /&gt;#include &amp;lt;stdlib.h&gt;&lt;br /&gt;#include &amp;lt;curl/curl.h&gt;&lt;br /&gt;#include &amp;lt;curl/easy.h&gt;&lt;br /&gt;&lt;br /&gt;int url_Perform(CURL* url, char* url_str) {&lt;br /&gt;  CURLcode code = curl_easy_setopt(url, CURLOPT_URL, url_str);&lt;br /&gt;  if(code != CURLE_OK) {&lt;br /&gt;    printf("%s\n", curl_easy_strerror(code));&lt;br /&gt;    return EXIT_FAILURE;&lt;br /&gt;  }     &lt;br /&gt;  code = curl_easy_perform(url);&lt;br /&gt;  if(code != CURLE_OK) {&lt;br /&gt;    printf("%s\n", curl_easy_strerror(code));&lt;br /&gt;    return EXIT_FAILURE;&lt;br /&gt;  }     &lt;br /&gt;  return EXIT_SUCCESS;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main(void) {&lt;br /&gt;  CURL* url = curl_easy_init();&lt;br /&gt;  int code = url_Perform(url, "file:///etc/bash.bashrc");&lt;br /&gt;  curl_easy_cleanup(url);&lt;br /&gt;  puts("EXIT");&lt;br /&gt;  return code; &lt;br /&gt;}&lt;br /&gt;/*&lt;br /&gt;$ gcc -lcurl -o test_curl  test_curl.c; ./test_curl&lt;br /&gt;*/&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-7639907183532371409?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/7639907183532371409/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=7639907183532371409' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7639907183532371409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7639907183532371409'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/01/curl-easy-perform.html' title='curl easy perform'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-644411299094462783</id><published>2010-01-21T02:13:00.006+08:00</published><updated>2010-01-22T10:24:00.365+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><title type='text'>GLib Key-value file parser</title><content type='html'>&lt;pre&gt;&lt;CODE&gt;// test_KeyFile.c&lt;br /&gt;#include &amp;lt;stdio.h&gt;&lt;br /&gt;#include &amp;lt;stdlib.h&gt;&lt;br /&gt;#include &amp;lt;glib.h&gt;&lt;br /&gt;&lt;br /&gt;int main(void) {&lt;br /&gt;  char* filename = "/usr/share/applications/gnome-terminal.desktop";&lt;br /&gt;  GError* error = NULL;&lt;br /&gt;  gsize length = 0;&lt;br /&gt;&lt;br /&gt;  GKeyFileFlags flags = G_KEY_FILE_NONE;&lt;br /&gt;  GKeyFile* keyFile = g_key_file_new();&lt;br /&gt;&lt;br /&gt;  if(!g_key_file_load_from_file(keyFile, filename, flags, &amp;error)) {&lt;br /&gt;    g_key_file_free(keyFile);&lt;br /&gt;    g_printerr("File name: %s, %s\n", filename, error-&gt;message);&lt;br /&gt;    return EXIT_FAILURE;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  gchar** groups = g_key_file_get_groups(keyFile, &amp;length);&lt;br /&gt;  int i;&lt;br /&gt;  for (i = 0; i &lt; length; ++i) {&lt;br /&gt;    gchar* group_name = groups[i];&lt;br /&gt;    g_print("Group name: %s\n", group_name);&lt;br /&gt;&lt;br /&gt;    gsize keyLength = 0;&lt;br /&gt;    gchar** keys = g_key_file_get_keys(keyFile, group_name, &amp;keyLength, &amp;error);&lt;br /&gt;    int j;&lt;br /&gt;    for (j = 0; j &lt; keyLength; ++j) {&lt;br /&gt;      gchar* key = keys[j];&lt;br /&gt;      gchar* value = g_key_file_get_string(keyFile, group_name, key , &amp;error);&lt;br /&gt;      g_print("%s,\t%s\n", key, value);&lt;br /&gt;      g_free(value);&lt;br /&gt;    }&lt;br /&gt;    g_strfreev(keys);&lt;br /&gt;  }&lt;br /&gt;  g_strfreev(groups);&lt;br /&gt;  g_key_file_free(keyFile);&lt;br /&gt;  puts("EXIT");&lt;br /&gt;  return EXIT_SUCCESS;&lt;br /&gt;}&lt;br /&gt;/*&lt;br /&gt;$ gcc `pkg-config --cflags --libs glib-2.0` -o test_KeyFile test_KeyFile.c &lt;br /&gt;$ ./test_KeyFile &lt;br /&gt;Group name: Desktop Entry&lt;br /&gt;Name, Terminal&lt;br /&gt;Comment, Use the command line&lt;br /&gt;TryExec, gnome-terminal&lt;br /&gt;Exec, gnome-terminal&lt;br /&gt;Icon, utilities-terminal&lt;br /&gt;Type, Application&lt;br /&gt;X-GNOME-DocPath, gnome-terminal/index.html&lt;br /&gt;X-GNOME-Bugzilla-Bugzilla, GNOME&lt;br /&gt;X-GNOME-Bugzilla-Product, gnome-terminal&lt;br /&gt;X-GNOME-Bugzilla-Component, BugBuddyBugs&lt;br /&gt;X-GNOME-Bugzilla-Version, 2.28.1&lt;br /&gt;Categories, GNOME;GTK;Utility;TerminalEmulator;&lt;br /&gt;StartupNotify, true&lt;br /&gt;OnlyShowIn, GNOME;&lt;br /&gt;X-Ubuntu-Gettext-Domain, gnome-terminal&lt;br /&gt;EXIT&lt;br /&gt; */&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-644411299094462783?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/644411299094462783/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=644411299094462783' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/644411299094462783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/644411299094462783'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/01/glib-key-value-file-parser.html' title='GLib Key-value file parser'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-5496930211382007237</id><published>2010-01-17T19:16:00.003+08:00</published><updated>2010-01-19T18:51:15.789+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><title type='text'>GLib GHashTable</title><content type='html'>&lt;a href="http://library.gnome.org/devel/glib/stable/glib-Hash-Tables.html"&gt;GLib Hash Tables&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;// test_GHashTable.c&lt;br /&gt;#include &amp;lt;stdio.h&gt;&lt;br /&gt;#include &amp;lt;stdlib.h&gt;&lt;br /&gt;#include &amp;lt;glib.h&gt;&lt;br /&gt;&lt;br /&gt;int main(void) {&lt;br /&gt;  GHashTable* hash = g_hash_table_new(g_str_hash, g_str_equal);&lt;br /&gt;  &lt;br /&gt;  g_hash_table_insert(hash, "Yes", "No");&lt;br /&gt;  g_hash_table_insert(hash, "Left", "Right");&lt;br /&gt;  g_hash_table_insert(hash, "Up", "Down");&lt;br /&gt;  &lt;br /&gt;  printf("Size: %d\n", g_hash_table_size(hash));&lt;br /&gt;  printf("Left Opposite is %s\n", (char*) g_hash_table_lookup(hash, "Left"));&lt;br /&gt;  &lt;br /&gt;  g_hash_table_destroy(hash);&lt;br /&gt;&lt;br /&gt;  return EXIT_SUCCESS;&lt;br /&gt;}&lt;br /&gt;/*&lt;br /&gt;$ gcc `pkg-config --cflags --libs glib-2.0` -o test_GHashTable test_GHashTable.c&lt;br /&gt;$ ./test_GHashTable&lt;br /&gt;Size: 3&lt;br /&gt;Left Opposite is Right&lt;br /&gt;*/&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-5496930211382007237?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/5496930211382007237/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=5496930211382007237' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/5496930211382007237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/5496930211382007237'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/01/glib-ghashtable.html' title='GLib GHashTable'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-5027353252272302118</id><published>2010-01-17T14:37:00.005+08:00</published><updated>2010-01-17T16:10:35.775+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><title type='text'>GLib GList</title><content type='html'>&lt;a href="http://library.gnome.org/devel/glib/stable/glib-Doubly-Linked-Lists.html"&gt;Doubly-Linked Lists&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;//-- test_GList.c --&lt;br /&gt;#include &amp;lt;stdio.h&gt;&lt;br /&gt;#include &amp;lt;stdlib.h&gt;&lt;br /&gt;#include &amp;lt;glib.h&gt;&lt;br /&gt;&lt;br /&gt;void print_iterator(gpointer data, gpointer user_data) {&lt;br /&gt;  g_print(user_data, data);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main(void) {&lt;br /&gt;  {&lt;br /&gt;    GList* list = g_list_append(NULL, "First");&lt;br /&gt;    list = g_list_append(list, "Second");&lt;br /&gt;    g_list_foreach(list, (GFunc) puts, NULL);&lt;br /&gt;    puts(((GList *) g_list_previous(g_list_last(list)))-&gt;data);&lt;br /&gt;    g_list_free(list);&lt;br /&gt;  }&lt;br /&gt;  puts("---");&lt;br /&gt;  {&lt;br /&gt;    GList* list = g_list_append(NULL, g_strdup("First"));&lt;br /&gt;    list = g_list_append(list, g_strdup("Second"));&lt;br /&gt;    list = g_list_append(list, g_strdup("Third"));&lt;br /&gt;&lt;br /&gt;    GList* temp_list = g_list_previous(g_list_last(list));&lt;br /&gt;    list = g_list_remove_link(list, temp_list);&lt;br /&gt;    puts(temp_list-&gt;data);&lt;br /&gt;    g_free(temp_list-&gt;data);&lt;br /&gt;&lt;br /&gt;    g_list_foreach(list, print_iterator, "%s\n");&lt;br /&gt;    g_list_foreach(list, (GFunc) g_free, NULL);&lt;br /&gt;    g_list_free(list);&lt;br /&gt;  }&lt;br /&gt;  return EXIT_SUCCESS;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;$ gcc `pkg-config --cflags --libs glib-2.0` -o test_GList test_GList.c&lt;br /&gt;$ ./test_GList&lt;br /&gt;First&lt;br /&gt;Second&lt;br /&gt;First&lt;br /&gt;---&lt;br /&gt;Second&lt;br /&gt;First&lt;br /&gt;Third&lt;br /&gt;*/&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-5027353252272302118?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/5027353252272302118/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=5027353252272302118' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/5027353252272302118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/5027353252272302118'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/01/glib-glist.html' title='GLib GList'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-4454273109865103234</id><published>2010-01-16T17:06:00.006+08:00</published><updated>2010-01-17T16:09:36.064+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><title type='text'>GLib GSList</title><content type='html'>&lt;a href="http://library.gnome.org/devel/glib/stable/glib-Singly-Linked-Lists.html"&gt;Singly-Linked Lists&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;//-- test_GSList.c --&lt;br /&gt;#include &amp;lt;stdio.h&gt;&lt;br /&gt;#include &amp;lt;stdlib.h&gt;&lt;br /&gt;#include &amp;lt;glib.h&gt;&lt;br /&gt;&lt;br /&gt;typedef struct {&lt;br /&gt;  char* name; &lt;br /&gt;  int age;&lt;br /&gt;} Person;&lt;br /&gt;&lt;br /&gt;Person* persion_new(char* name, int age) {&lt;br /&gt;  Person* psn = g_new(Person, 1);&lt;br /&gt;  psn-&gt;name = name; &lt;br /&gt;  psn-&gt;age = age;&lt;br /&gt;  return psn;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void print_person(Person* person) {&lt;br /&gt;  printf("Name: %s, Age: %d\n", person-&gt;name, person-&gt;age);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main(int argc, char** argv) {&lt;br /&gt;  GSList* list = NULL; &lt;br /&gt;&lt;br /&gt;  list = g_slist_append(list, persion_new("First", 11)); &lt;br /&gt;  list = g_slist_append(list, persion_new("Second", 12)); &lt;br /&gt;&lt;br /&gt;  printf("First age: %d, ", ((Person*) list-&gt;data)-&gt;age);&lt;br /&gt;  printf("First name: %s\n\n", ((Person*) g_slist_nth_data(list, 0))-&gt;name);&lt;br /&gt;  g_slist_foreach(list, (GFunc) print_person, NULL);&lt;br /&gt;&lt;br /&gt;  g_slist_foreach(list, (GFunc) g_free, NULL);&lt;br /&gt;  g_slist_free(list);&lt;br /&gt;&lt;br /&gt;  return EXIT_SUCCESS;&lt;br /&gt;}&lt;br /&gt;/*&lt;br /&gt;$ gcc `pkg-config --cflags --libs glib-2.0` -o test_GSList test_GSList.c&lt;br /&gt;$ ./test_GSList&lt;br /&gt;First age: 11, First name: First&lt;br /&gt;&lt;br /&gt;Name: First, Age: 11&lt;br /&gt;Name: Second, Age: 12&lt;br /&gt;*/&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-4454273109865103234?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/4454273109865103234/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=4454273109865103234' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/4454273109865103234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/4454273109865103234'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/01/glib-gslist.html' title='GLib GSList'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-5963703706387134102</id><published>2010-01-15T11:22:00.007+08:00</published><updated>2010-01-21T10:14:20.917+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Linux Library 套件相依關係圖</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ug7u_x6hp58/S0_griu8ygI/AAAAAAAAAdI/ryw_jK5guTA/s1600-h/grep.png"&gt;&lt;img style="float:top; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 294px;" src="http://4.bp.blogspot.com/_Ug7u_x6hp58/S0_griu8ygI/AAAAAAAAAdI/ryw_jK5guTA/s320/grep.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5426803114667461122" /&gt;&lt;/a&gt;&lt;br /&gt;$ apt-get install apt-rdepends signing-party&lt;br /&gt;$ D=grep ; apt-rdepends -d $D | springgraph &gt; $D.png ; gnome-open $D.png&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-5963703706387134102?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/5963703706387134102/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=5963703706387134102' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/5963703706387134102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/5963703706387134102'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/01/linux-library.html' title='Linux Library 套件相依關係圖'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Ug7u_x6hp58/S0_griu8ygI/AAAAAAAAAdI/ryw_jK5guTA/s72-c/grep.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-897008579735217291</id><published>2010-01-15T11:02:00.005+08:00</published><updated>2010-01-21T10:14:59.251+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu 查尋 unicode</title><content type='html'>$ apt-get install unicode&lt;br /&gt;$ unicode 中文&lt;br /&gt;U+4E2D CJK UNIFIED IDEOGRAPH-4E2D&lt;br /&gt;UTF-8: e4 b8 ad  UTF-16BE: 4e2d  Decimal: &amp;#20013;&lt;br /&gt;中 (中)&lt;br /&gt;Uppercase: U+4E2D&lt;br /&gt;Category: Lo (Letter, Other)&lt;br /&gt;Bidi: L (Left-to-Right)&lt;br /&gt;&lt;br /&gt;U+6587 CJK UNIFIED IDEOGRAPH-6587&lt;br /&gt;UTF-8: e6 96 87  UTF-16BE: 6587  Decimal: &amp;#25991;&lt;br /&gt;文 (文)&lt;br /&gt;Uppercase: U+6587&lt;br /&gt;Category: Lo (Letter, Other)&lt;br /&gt;Bidi: L (Left-to-Right)&lt;br /&gt;&lt;br /&gt;$ unicode -x 4e2d&lt;br /&gt;U+4E2D CJK UNIFIED IDEOGRAPH-4E2D&lt;br /&gt;UTF-8: e4 b8 ad  UTF-16BE: 4e2d  Decimal: &amp;#20013;&lt;br /&gt;中 (中)&lt;br /&gt;Uppercase: U+4E2D&lt;br /&gt;Category: Lo (Letter, Other)&lt;br /&gt;Bidi: L (Left-to-Right)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-897008579735217291?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/897008579735217291/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=897008579735217291' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/897008579735217291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/897008579735217291'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/01/ubuntu-unicode.html' title='Ubuntu 查尋 unicode'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-8244746081184727239</id><published>2010-01-10T23:47:00.004+08:00</published><updated>2010-01-11T01:11:14.145+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><title type='text'>OpenMP</title><content type='html'>&lt;a href="http://openmp.org/"&gt;OpenMP&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;//-- openMP.c --&lt;br /&gt;#include &amp;lt;omp.h&gt;&lt;br /&gt;#include &amp;lt;stdio.h&gt;&lt;br /&gt;#include &amp;lt;stdlib.h&gt;&lt;br /&gt;#include &amp;lt;unistd.h&gt;&lt;br /&gt;&lt;br /&gt;int main(void) {&lt;br /&gt;  printf("Max Threads: %d, Process: %d\n", omp_get_max_threads(),&lt;br /&gt;      omp_get_num_procs());&lt;br /&gt;#pragma omp parallel for&lt;br /&gt;  for (int i = 0; i &amp;lt; 10; i++) {&lt;br /&gt;    sleep(1);   &lt;br /&gt;    printf("Thread: %d, Times: %d\n", omp_get_thread_num(), i);&lt;br /&gt;  }     &lt;br /&gt;  return EXIT_SUCCESS;&lt;br /&gt;}&lt;br /&gt;/*&lt;br /&gt;$ gcc -std=c99 -fopenmp openMP.c -oopenMP&lt;br /&gt;$ ./openMP&lt;br /&gt;Max Threads: 2, Process: 2&lt;br /&gt;Thread: 1, Times: 5&lt;br /&gt;Thread: 0, Times: 0&lt;br /&gt;Thread: 1, Times: 6&lt;br /&gt;Thread: 0, Times: 1&lt;br /&gt;Thread: 1, Times: 7&lt;br /&gt;Thread: 0, Times: 2&lt;br /&gt;Thread: 1, Times: 8&lt;br /&gt;Thread: 0, Times: 3&lt;br /&gt;Thread: 1, Times: 9&lt;br /&gt;Thread: 0, Times: 4&lt;br /&gt;*/&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-8244746081184727239?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/8244746081184727239/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=8244746081184727239' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8244746081184727239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8244746081184727239'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/01/openmp.html' title='OpenMP'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-8535994638656190195</id><published>2010-01-10T15:07:00.010+08:00</published><updated>2010-01-12T20:29:00.465+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><title type='text'>Unicode C Example</title><content type='html'>&lt;a href="http://www.unicode.org/"&gt;Unicode Consortium&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blog.xuite.net/hsuyucheng/Knight/14446557"&gt;如何用GCC編譯UTF8檔能正確顯示中文&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;//-- test_unicode.c file encoding=UTF-8 --&lt;br /&gt;#include &amp;lt;stdio.h&gt;&lt;br /&gt;#include &amp;lt;stdlib.h&gt;&lt;br /&gt;#include &amp;lt;stddef.h&gt;&lt;br /&gt;#include &amp;lt;locale.h&gt;&lt;br /&gt;#include &amp;lt;wctype.h&gt;&lt;br /&gt;#include &amp;lt;wchar.h&gt;&lt;br /&gt;&lt;br /&gt;int main(void) {&lt;br /&gt;  setlocale(LC_ALL,"");&lt;br /&gt;&lt;br /&gt;  putwchar(0x6587); // 文 UTF-16BE: 6587&lt;br /&gt;  putwchar(L'字');&lt;br /&gt;  wchar_t *wstr = L"中文, アプンノ, 평화";&lt;br /&gt;  wprintf(L"\n-&gt; %ls 字串長度 %d\n", wstr, wcslen(wstr));&lt;br /&gt;  return EXIT_SUCCESS;&lt;br /&gt;}&lt;br /&gt;/*&lt;br /&gt;$ gcc -Wall -std=c99 test_unicode.c -otest_unicode&lt;br /&gt;$ ./test_unicode &lt;br /&gt;文字&lt;br /&gt;-&gt; 中文, アプンノ, 평화 字串長度 12&lt;br /&gt;*/&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-8535994638656190195?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/8535994638656190195/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=8535994638656190195' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8535994638656190195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8535994638656190195'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/01/unicode-c-example.html' title='Unicode C Example'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-572016574523234666</id><published>2010-01-06T02:59:00.006+08:00</published><updated>2010-01-12T19:36:06.903+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><title type='text'>libxml2 xmlwriter</title><content type='html'>&lt;a href="http://xmlsoft.org/examples/index.html"&gt;Libxml2 set of examples&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;//-- xmlwriter.c --&lt;br /&gt;#include &amp;lt;libxml/xmlversion.h&gt;&lt;br /&gt;#include &amp;lt;libxml/xmlstring.h&gt;&lt;br /&gt;#include &amp;lt;libxml/xmlwriter.h&gt;&lt;br /&gt;&lt;br /&gt;int main(void) {&lt;br /&gt;  xmlTextWriterPtr writer = xmlNewTextWriterFilename("hello.xml", 0);&lt;br /&gt;  if (writer == NULL) {&lt;br /&gt;    return EXIT_FAILURE;&lt;br /&gt;  }&lt;br /&gt;  xmlTextWriterStartDocument(writer, NULL, "UTF-8", NULL);&lt;br /&gt;    xmlTextWriterWriteComment(writer, BAD_CAST "comment");&lt;br /&gt;    xmlTextWriterStartElement(writer, BAD_CAST "root");&lt;br /&gt;      xmlTextWriterWriteAttribute(writer, BAD_CAST BAD_CAST "attribute", BAD_CAST "1.0");&lt;br /&gt;      xmlTextWriterWriteFormatComment(writer, "format %s", "comment");&lt;br /&gt;      xmlTextWriterWriteElement(writer, BAD_CAST "entry", BAD_CAST "Hello World");&lt;br /&gt;      xmlTextWriterWriteFormatElement(writer, BAD_CAST "entry", "format %s", BAD_CAST "Hello World");&lt;br /&gt;    xmlTextWriterEndElement(writer);&lt;br /&gt;  xmlTextWriterEndDocument(writer);&lt;br /&gt;  xmlFreeTextWriter(writer);&lt;br /&gt;  return EXIT_SUCCESS;&lt;br /&gt;}&lt;br /&gt;/*&lt;br /&gt;$ gcc -I/usr/include/libxml2 -lxml2 xmlwriter.c -oxmlwriter&lt;br /&gt;$ ./xmlwriter&lt;br /&gt;$ cat hello.xml&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;br /&gt;&amp;lt;!--comment--&gt;&amp;lt;root attribute="1.0"&gt;&amp;lt;!--format comment--&gt;&amp;lt;entry&gt;Hello World&amp;lt;/entry&gt;&amp;lt;entry&gt;format Hello World&amp;lt;/entry&gt;&amp;lt;/root&gt;&lt;br /&gt;*/&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-572016574523234666?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/572016574523234666/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=572016574523234666' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/572016574523234666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/572016574523234666'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/01/libxml2-xmlwriter.html' title='libxml2 xmlwriter'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-2711200752988783900</id><published>2010-01-05T18:18:00.003+08:00</published><updated>2010-01-05T18:28:52.393+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><title type='text'>Regex in C</title><content type='html'>&lt;a href="http://www.osix.net/modules/article/?id=349"&gt;Regex in C&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.daniweb.com/code/snippet216955.html"&gt;Replace using POSIX regular expressions&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;#include &amp;lt;stdio.h&gt;&lt;br /&gt;#include &amp;lt;stdlib.h&gt;&lt;br /&gt;&lt;br /&gt;#include &amp;lt;ctype.h&gt;&lt;br /&gt;#include &amp;lt;regex.h&gt;&lt;br /&gt;#include &amp;lt;string.h&gt;&lt;br /&gt;&lt;br /&gt;int rmatch(const char *string, char *pattern) {&lt;br /&gt;  int status;&lt;br /&gt;  regex_t re;&lt;br /&gt;  if (regcomp(&amp;re, pattern, REG_EXTENDED | REG_NOSUB) != 0) {&lt;br /&gt;    return 0;&lt;br /&gt;  }&lt;br /&gt;  status = regexec(&amp;re, string, (size_t) 0, NULL, 0);&lt;br /&gt;  regfree(&amp;re);&lt;br /&gt;  if (status != 0) {&lt;br /&gt;    return 0;&lt;br /&gt;  }&lt;br /&gt;  return 1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int __rreplace(char *buf, int size, regex_t *re, char *rp) {&lt;br /&gt;  char *pos;&lt;br /&gt;  int sub, so, n;&lt;br /&gt;  regmatch_t pmatch[10]; /* regoff_t is int so size is int */&lt;br /&gt;  if (regexec(re, buf, 10, pmatch, 0))&lt;br /&gt;    return 0;&lt;br /&gt;  for (pos = rp; *pos; pos++)&lt;br /&gt;    if (*pos == '\\' &amp;&amp; *(pos + 1) &gt; '0' &amp;&amp; *(pos + 1) &lt;= '9') {&lt;br /&gt;      so = pmatch[*(pos + 1) - 48].rm_so;&lt;br /&gt;      n = pmatch[*(pos + 1) - 48].rm_eo - so;&lt;br /&gt;      if (so &lt; 0 || strlen(rp) + n - 1 &gt; size)&lt;br /&gt;        return 1;&lt;br /&gt;      memmove(pos + n, pos + 2, strlen(pos) - 1);&lt;br /&gt;      memmove(pos, buf + so, n);&lt;br /&gt;      pos = pos + n - 2;&lt;br /&gt;    }&lt;br /&gt;  sub = pmatch[1].rm_so; /* no repeated replace when sub &gt;= 0 */&lt;br /&gt;  for (pos = buf; !regexec(re, pos, 1, pmatch, 0);) {&lt;br /&gt;    n = pmatch[0].rm_eo - pmatch[0].rm_so;&lt;br /&gt;    pos += pmatch[0].rm_so;&lt;br /&gt;    if (strlen(buf) - n + strlen(rp) + 1 &gt; size)&lt;br /&gt;      return 1;&lt;br /&gt;    memmove(pos + strlen(rp), pos + n, strlen(pos) - n + 1);&lt;br /&gt;    memmove(pos, rp, strlen(rp));&lt;br /&gt;    pos += strlen(rp);&lt;br /&gt;    if (sub &gt;= 0)&lt;br /&gt;      break;&lt;br /&gt;  }&lt;br /&gt;  return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int rreplace(char *buf, int size, char *expressions, char *rp) {&lt;br /&gt;  int result;&lt;br /&gt;  regex_t re;&lt;br /&gt;  regcomp (&amp;re, expressions, REG_ICASE);&lt;br /&gt;  result = __rreplace(buf, size, &amp;re, rp);&lt;br /&gt;  regfree (&amp;re);&lt;br /&gt;  return result;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main(void) {&lt;br /&gt;  // match&lt;br /&gt;  printf("%s\r\n", rmatch("Hello World!", "^Hello.*!$") == 1 ? "true":"false");&lt;br /&gt;&lt;br /&gt;  // replace&lt;br /&gt;  int buf_size = 4096;&lt;br /&gt;  char buf [buf_size];&lt;br /&gt;&lt;br /&gt;  strcpy(buf, "hello world!");&lt;br /&gt;  rreplace(buf, buf_size, "world", "Jack");&lt;br /&gt;  printf("%s\r\n", buf);&lt;br /&gt;&lt;br /&gt;  return EXIT_SUCCESS;&lt;br /&gt;}&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-2711200752988783900?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/2711200752988783900/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=2711200752988783900' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/2711200752988783900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/2711200752988783900'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/01/regex-in-c.html' title='Regex in C'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-79825082775396157</id><published>2010-01-04T19:27:00.004+08:00</published><updated>2010-01-04T19:52:18.176+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>OSCache</title><content type='html'>&lt;a href="http://www.opensymphony.com/oscache/"&gt;OSCache&lt;/a&gt;&lt;br /&gt;&lt;a href="http://hairroot.blogchina.com/blog/1500809.html"&gt;OSCache - 成长的路上&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;// -- Main.java --&lt;br /&gt;import java.io.File;&lt;br /&gt;import java.util.Iterator;&lt;br /&gt;&lt;br /&gt;import com.opensymphony.oscache.base.NeedsRefreshException;&lt;br /&gt;import com.opensymphony.oscache.general.GeneralCacheAdministrator;&lt;br /&gt;&lt;br /&gt;public class Main {&lt;br /&gt;&lt;br /&gt;  private static GeneralCacheAdministrator admin = new GeneralCacheAdministrator();&lt;br /&gt;&lt;br /&gt;  public static void main(String[] args) {&lt;br /&gt;&lt;br /&gt;    for (int i = 0; i &lt; 2; i++) {&lt;br /&gt;      Iterator files = org.apache.commons.io.FileUtils.iterateFiles(&lt;br /&gt;          new File("."), new String[] {"java", "properties", "xml" }, false);&lt;br /&gt;      while (files.hasNext()) {&lt;br /&gt;        File file = (File) files.next();&lt;br /&gt;        long st = System.currentTimeMillis();&lt;br /&gt;        byte[] value = getFromFile(file);&lt;br /&gt;        System.out.println("File name: " + file.getAbsolutePath()&lt;br /&gt;            + " TimeMillis: " + (System.currentTimeMillis() - st)&lt;br /&gt;            + " Size: " + value.length);&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  private static byte[] getFromFile(File file) {&lt;br /&gt;    String key = file.getAbsolutePath();&lt;br /&gt;    byte[] myValue;&lt;br /&gt;    int myRefreshPeriod = 60; // How long the object can stay in cache in seconds.&lt;br /&gt;    try {&lt;br /&gt;      myValue = (byte[]) admin.getFromCache(key, myRefreshPeriod);&lt;br /&gt;    } catch (NeedsRefreshException nre) {&lt;br /&gt;      try {&lt;br /&gt;        myValue = org.apache.commons.io.FileUtils.readFileToByteArray(file);&lt;br /&gt;        admin.putInCache(key, myValue);&lt;br /&gt;      } catch (Exception ex) {&lt;br /&gt;        myValue = (byte[]) nre.getCacheContent();&lt;br /&gt;        admin.cancelUpdate(key);&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;    return myValue;&lt;br /&gt;  }&lt;br /&gt;}&lt;/CODE&gt;&lt;br /&gt;// -- output --&lt;br /&gt;File name: C:\test\.\Main.java TimeMillis: 31 Size: 1456&lt;br /&gt;File name: C:\test\.\oscache.properties TimeMillis: 16 Size: 5629&lt;br /&gt;File name: C:\test\.\pom.xml TimeMillis: 15 Size: 910&lt;br /&gt;File name: C:\test\.\Main.java TimeMillis: 0 Size: 1456&lt;br /&gt;File name: C:\test\.\oscache.properties TimeMillis: 0 Size: 5629&lt;br /&gt;File name: C:\test\.\pom.xml TimeMillis: 0 Size: 910&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-79825082775396157?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/79825082775396157/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=79825082775396157' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/79825082775396157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/79825082775396157'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/01/oscache.html' title='OSCache'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-4249178040901688861</id><published>2010-01-04T15:22:00.005+08:00</published><updated>2010-01-21T10:16:13.864+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>javap 反編譯器</title><content type='html'>&lt;a href="http://www.idevelopment.info/data/Programming/java/miscellaneous_java/Using_javap.html"&gt;Using javap&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;// -- Main.java --&lt;br /&gt;public class Main{&lt;br /&gt;  public static void main(String[] args){&lt;br /&gt;    System.out.println("Hello World");&lt;br /&gt;  } &lt;br /&gt;}&lt;/CODE&gt;&lt;br /&gt;$ javac Main.java&lt;br /&gt;$ javap -c Main&lt;br /&gt;Compiled from "Main.java"&lt;br /&gt;public class Main extends java.lang.Object{&lt;br /&gt;public Main();&lt;br /&gt;  Code:&lt;br /&gt;   0:   aload_0&lt;br /&gt;   1:   invokespecial   #1; //Method java/lang/Object."&lt;init&gt;":()V&lt;br /&gt;   4:   return&lt;br /&gt;&lt;br /&gt;public static void main(java.lang.String[]);&lt;br /&gt;  Code:&lt;br /&gt;   0:   getstatic       #2; //Field java/lang/System.out:Ljava/io/PrintStream;&lt;br /&gt;   3:   ldc     #3; //String Hello World&lt;br /&gt;   5:   invokevirtual   #4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V&lt;br /&gt;   8:   return&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-4249178040901688861?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/4249178040901688861/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=4249178040901688861' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/4249178040901688861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/4249178040901688861'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2010/01/javap.html' title='javap 反編譯器'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-7358800982866724547</id><published>2009-12-28T11:45:00.006+08:00</published><updated>2010-01-21T10:17:50.461+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>安裝 Ubuntu 開機管理程式 (grub startup manager)</title><content type='html'>安裝 Startup Manager&lt;br /&gt;$ sudo apt-get install startupmanager&lt;br /&gt;執行 Menu -&gt; 系統 -&gt; 管理 -&gt; 開機管理程式&lt;br /&gt;&lt;br /&gt;安裝佈景主題畫面&lt;br /&gt;$ sudo apt-get install grub-splashimages&lt;br /&gt;&lt;br /&gt;&lt;a href="http://shibuvarkala.blogspot.com/2009/11/how-to-make-your-own-splashimage-for.html"&gt;How to make your own splashimage for GRUB2 on ubuntu 9.10&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-7358800982866724547?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/7358800982866724547/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=7358800982866724547' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7358800982866724547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7358800982866724547'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/12/ubuntu-grub-startup-manager.html' title='安裝 Ubuntu 開機管理程式 (grub startup manager)'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-2507066022375543868</id><published>2009-12-18T19:46:00.003+08:00</published><updated>2010-01-18T10:07:07.123+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>GNU gettext utilities</title><content type='html'>&lt;a href="http://www.gnu.org/software/gettext/manual/gettext.html"&gt;GNU gettext utilities&lt;/a&gt;&lt;br /&gt;&lt;a href="http://oriya.sarovar.org/docs/gettext/"&gt;A tutorial on Native Language Support using GNU gettex&lt;/a&gt;&lt;br /&gt;&lt;a href="http://gcc.gnu.org/onlinedocs/libstdc++/manual/messages.html"&gt;libstdc++ messages&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.gted.org/"&gt;gted Eclipse plugin&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-2507066022375543868?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/2507066022375543868/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=2507066022375543868' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/2507066022375543868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/2507066022375543868'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/12/gnu-gettext-utilities.html' title='GNU gettext utilities'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-8631955498955796401</id><published>2009-12-16T09:55:00.003+08:00</published><updated>2009-12-16T10:59:07.103+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>GNU build system</title><content type='html'>&lt;a href="http://en.wikipedia.org/wiki/GNU_build_system"&gt;GNU build system&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ibm.com/developerworks/cn/linux/l-makefile/"&gt;例解 autoconf 和 automake 生成 Makefile 文件&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.gnu.org/software/automake/manual/automake.html"&gt;automake&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mij.oltrelinux.com/devel/autoconf-automake/"&gt;A tutorial for porting to autoconf &amp; automake&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.gnu.org/software/autogen/"&gt;AutoGen&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.airs.com/ian/configure/configure_toc.html"&gt;The GNU configure and build system&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.cse.iitb.ac.in/~uday/courses/cs715-08/config-build-report.pdf"&gt;Study of tools used in build process&lt;br /&gt;http://www.cse.iitb.ac.in/~uday/courses/cs715-08/config-build-report.pdf&lt;/a&gt;&lt;br /&gt;&lt;a href="http://sources.redhat.com/autobook/autobook/autobook_toc.html#SEC_Contents"&gt;GNU Autoconf, Automake and Libtool&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-8631955498955796401?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/8631955498955796401/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=8631955498955796401' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8631955498955796401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8631955498955796401'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/12/gnu-build-system.html' title='GNU build system'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-4512505544073359135</id><published>2009-12-16T09:40:00.004+08:00</published><updated>2010-01-21T10:18:51.616+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Anjuta 2.28 Wrong Warning and error opening terminal for debugging</title><content type='html'>&lt;a href="https://bugs.launchpad.net/ubuntu/+source/anjuta/+bug/486324"&gt;Anjuta 2.28 Wrong Warning and error opening terminal for debugging&lt;/a&gt;&lt;br /&gt;The problem is within the anjuta source code. Anjuta tries to start anjuta_launcher, but the filename is called anjuta-launcher. Symlink /usr/bin/anjuta-launcher to /usr/bin/anjuta_launcher fixes this problem.&lt;br /&gt;$ sudo ln -s /usr/bin/anjuta-launcher /usr/bin/anjuta_launcher&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-4512505544073359135?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/4512505544073359135/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=4512505544073359135' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/4512505544073359135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/4512505544073359135'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/12/anjuta-228-wrong-warning-and-error.html' title='Anjuta 2.28 Wrong Warning and error opening terminal for debugging'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-3723633031322776588</id><published>2009-12-09T22:14:00.005+08:00</published><updated>2010-01-21T10:19:42.034+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Installing 64-bit Flash Player in Ubuntu 9.10 Karmic Koala</title><content type='html'>&lt;a href="http://ubuntuforums.org/showthread.php?t=1325824"&gt;Installing 64-bit Flash Player in Ubuntu 9.10 Karmic Koala&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Save this script as getflashx64.sh&lt;br /&gt;&lt;CODE&gt;#!/bin/bash&lt;br /&gt;# Script  created by&lt;br /&gt;# Romeo-Adrian Cioaba romeo.cioaba@spotonearth.com&lt;br /&gt;# Super minor updates by jason.melton[at]gmail[dot]com&lt;br /&gt;# Updates by Alejandro Cuervo 3[at]cuervo[dot]net&lt;br /&gt;# more very minor updates by damien[at]groovey[dot]com&lt;br /&gt;# and one more update by Antonio Cassano bigbroantonio[at]yahoo[dot]it&lt;br /&gt;# Released under GPL&lt;br /&gt;&lt;br /&gt;echo "Closing Firefox"&lt;br /&gt;sudo killall -9 firefox&lt;br /&gt;&lt;br /&gt;echo "Downloading and instaling Getlibs for required libraries"&lt;br /&gt;wget http://www.boundlesssupremacy.com/Cappy/getlibs/getlibs-all.deb&lt;br /&gt;sudo dpkg -i getlibs-all.deb&lt;br /&gt;&lt;br /&gt;echo "Removing previous installs of flash:"&lt;br /&gt;sudo apt-get remove -y --purge flashplugin-nonfree gnash gnash-common mozilla-plugin-gnash swfdec-mozilla libflashsupport nspluginwrapper&lt;br /&gt;sudo rm -f /usr/lib/mozilla/plugins/*flash*&lt;br /&gt;sudo rm -f ~/.mozilla/plugins/*flash*&lt;br /&gt;sudo rm -f /usr/lib/firefox/plugins/*flash*&lt;br /&gt;sudo rm -f /usr/lib/firefox-addons/plugins/*flash*&lt;br /&gt;sudo rm -rfd /usr/lib/nspluginwrapper&lt;br /&gt;&lt;br /&gt;echo "Installing ia32-libs and nspluginwrapper"&lt;br /&gt;sudo apt-get install ia32-libs nspluginwrapper&lt;br /&gt;&lt;br /&gt;echo "Getting libs"&lt;br /&gt;sudo apt-get install libcurl3 libnss3-1d libnspr4-0d&lt;br /&gt;# sudo getlibs -p libcurl3&lt;br /&gt;# sudo getlibs -p libnss3-1d&lt;br /&gt;# sudo getlibs -p libnspr4-0d&lt;br /&gt;&lt;br /&gt;echo "Installing Flash Player 10"&lt;br /&gt;cd ~&lt;br /&gt;wget http://download.macromedia.com/pub/labs/flashplayer10/libflashplayer-10.0.32.18.linux-x86_64.so.tar.gz&lt;br /&gt;tar zxvf libflashplayer-10.0.32.18.linux-x86_64.so.tar.gz&lt;br /&gt;sudo mv libflashplayer.so /usr/lib/mozilla/plugins/&lt;br /&gt;sudo nspluginwrapper -i /usr/lib/mozilla/plugins/libflashplayer.so&lt;br /&gt;&lt;br /&gt;echo "Linking the libraries so that firefox can see them."&lt;br /&gt;sudo ln -sf /usr/lib/nspluginwrapper/plugins/npwrapper.libflashplayer.so /usr/lib/mozilla/plugins/&lt;br /&gt;sudo ln -sf /usr/lib/nspluginwrapper/plugins/npwrapper.libflashplayer.so /usr/lib/firefox-addons/plugins/&lt;br /&gt;&lt;br /&gt;echo "Done :-)"&lt;br /&gt;echo "You may re-start Firefox now"&lt;/CODE&gt;&lt;br /&gt;And run it via&lt;br /&gt;$ sudo bash getflashx64.sh&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-3723633031322776588?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/3723633031322776588/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=3723633031322776588' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/3723633031322776588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/3723633031322776588'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/12/installing-64-bit-flash-player-in.html' title='Installing 64-bit Flash Player in Ubuntu 9.10 Karmic Koala'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-5920933624244255783</id><published>2009-11-25T15:30:00.006+08:00</published><updated>2009-11-25T17:37:20.400+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu 9.10 installer doesn’t recognize the hard drive</title><content type='html'>解決 ubuntu 9.10 安裝程式抓不到硬碟的問題&lt;br /&gt;&lt;br /&gt;1) Boot into a live session using the LiveCD (without installing)&lt;br /&gt;2) Open Terminal&lt;br /&gt;3) Type "sudo apt-get remove dmraid" and hit Enter (command without quotes)&lt;br /&gt;4) Start the installer by double-clicking on its icon&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ubuntuforums.org/showthread.php?p=8354569#post8354569"&gt;Can Partition in 9.04 but not in 9.10&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.uluga.ubuntuforums.org/showthread.php?p=8211423"&gt;First hard disk is not visible during install&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ubuntuforums.org/showthread.php?t=1310560"&gt;can't install ubuntu 9.10&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-5920933624244255783?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/5920933624244255783/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=5920933624244255783' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/5920933624244255783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/5920933624244255783'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/11/ubuntu-910-installer-doesnt-recognize.html' title='Ubuntu 9.10 installer doesn’t recognize the hard drive'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-6926542969327585902</id><published>2009-11-18T10:49:00.010+08:00</published><updated>2009-11-19T10:11:15.115+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><title type='text'>Visual Studio C Command Line Debugging</title><content type='html'>&lt;a href="http://www.microsoft.com/exPress/"&gt;Visual Studio Express Editions&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx"&gt;Install Debugging Tools for Windows 32-bit Version&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;CODE&gt;//-- src/hello.c --&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;void main(void){&lt;br /&gt; printf("hello world\r\n");&lt;br /&gt;}&lt;br /&gt;&lt;/CODE&gt;&lt;br /&gt;&lt;CODE&gt;//-- makefile --&lt;br /&gt;debugPath=Debug&lt;br /&gt;&lt;br /&gt;all:&lt;br /&gt;&amp;#9;cl /Zi src\hello.c /Fo$(debugPath)\hello.obj /Fe$(debugPath)\hello.exe&lt;br /&gt;&lt;br /&gt;clean:&lt;br /&gt;&amp;#9;del $(debugPath)\hello.* *.pdb&lt;br /&gt;&lt;br /&gt;debugging:&lt;br /&gt;&amp;#9;cdb -lines -y .;$(debugPath) -c "~*kb;t;t;p;g;q" $(debugPath)\hello.exe&lt;br /&gt;&lt;/CODE&gt;&lt;br /&gt;Start Menu-&gt;programs-&gt;Microsoft Visual C++ 2008 Express Edition-&gt;&lt;br /&gt;  Visual Studio Tools-&gt;Visual Studio 2008 Command Prompt&lt;br /&gt;&lt;CODE&gt;set PATH=%PATH%;C:\Program Files\Debugging Tools for Windows (x86)&lt;br /&gt;nmake all&lt;br /&gt;nmake debugging&lt;br /&gt;nmake clean&lt;br /&gt;&lt;/CODE&gt;&lt;br /&gt;&lt;br /&gt;&gt;nmake all&lt;br /&gt;&lt;br /&gt;Microsoft (R) Program Maintenance Utility Version 9.00.30729.01&lt;br /&gt;Copyright (C) Microsoft Corporation.  All rights reserved.&lt;br /&gt;&lt;br /&gt;        cl /Zi src\hello.c /FoDebug\hello.obj /FeDebug\hello.exe&lt;br /&gt;Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86&lt;br /&gt;Copyright (C) Microsoft Corporation.  All rights reserved.&lt;br /&gt;&lt;br /&gt;hello.c&lt;br /&gt;Microsoft (R) Incremental Linker Version 9.00.30729.01&lt;br /&gt;Copyright (C) Microsoft Corporation.  All rights reserved.&lt;br /&gt;&lt;br /&gt;/debug&lt;br /&gt;/out:Debug\hello.exe&lt;br /&gt;Debug\hello.obj&lt;br /&gt;&lt;br /&gt;&gt;nmake debugging&lt;br /&gt;&lt;br /&gt;Microsoft (R) Program Maintenance Utility Version 9.00.30729.01&lt;br /&gt;Copyright (C) Microsoft Corporation.  All rights reserved.&lt;br /&gt;&lt;br /&gt;        cdb -lines -y .;Debug -c "~*kb;t;t;p;g;q" Debug\hello.exe&lt;br /&gt;&lt;br /&gt;Microsoft (R) Windows Debugger Version 6.11.0001.404 X86&lt;br /&gt;Copyright (c) Microsoft Corporation. All rights reserved.&lt;br /&gt;&lt;br /&gt;CommandLine: Debug\hello.exe&lt;br /&gt;Symbol search path is: .;Debug&lt;br /&gt;Executable search path is:&lt;br /&gt;ModLoad: 00400000 00426000   hello.exe&lt;br /&gt;ModLoad: 7c920000 7c9b7000   ntdll.dll&lt;br /&gt;ModLoad: 7c800000 7c91f000   C:\WINDOWS\system32\kernel32.dll&lt;br /&gt;(1010.a60): Break instruction exception - code 80000003 (first chance)&lt;br /&gt;eax=00241eb4 ebx=7ffdf000 ecx=00000001 edx=00000002 esi=00241f48 edi=00241eb4&lt;br /&gt;eip=7c92120e esp=0012fb20 ebp=0012fc94 iopl=0         nv up ei pl nz na po nc&lt;br /&gt;cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000202&lt;br /&gt;*** ERROR: Symbol file could not be found.  Defaulted to export symbols for ntdll.dll -&lt;br /&gt;ntdll!DbgBreakPoint:&lt;br /&gt;7c92120e cc              int     3&lt;br /&gt;0:000&gt; cdb: Reading initial command '~*kb;t;t;p;g;q'&lt;br /&gt;&lt;br /&gt;.  0  Id: 1010.a60 Suspend: 1 Teb: 7ffde000 Unfrozen&lt;br /&gt;ChildEBP RetAddr  Args to Child&lt;br /&gt;WARNING: Stack unwind information not available. Following frames may be wrong.&lt;br /&gt;0012fc94 7c9410af 0012fd30 7c920000 0012fce0 ntdll!DbgBreakPoint&lt;br /&gt;0012fd1c 7c92e457 0012fd30 7c920000 00000000 ntdll!RtlLookupElementGenericTable+0x80&lt;br /&gt;00000000 00000000 00000000 00000000 00000000 ntdll!KiUserApcDispatcher+0x7&lt;br /&gt;hello world&lt;br /&gt;quit:&lt;br /&gt;&lt;br /&gt;&gt;nmake clean&lt;br /&gt;&lt;br /&gt;Microsoft (R) Program Maintenance Utility Version 9.00.30729.01&lt;br /&gt;Copyright (C) Microsoft Corporation.  All rights reserved.&lt;br /&gt;&lt;br /&gt;        del Debug\hello.* *.pdb&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-6926542969327585902?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/6926542969327585902/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=6926542969327585902' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/6926542969327585902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/6926542969327585902'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/11/visual-studio-c-command-line-debugging.html' title='Visual Studio C Command Line Debugging'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-3475598560349234591</id><published>2009-11-14T13:23:00.002+08:00</published><updated>2009-11-14T13:27:17.060+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Eclipse Variables</title><content type='html'>&lt;pre&gt;&lt;CODE&gt;org.eclipse.core.variables.IStringVariableManager svm = org.eclipse.core.variables.VariablesPlugin&lt;br /&gt;    .getDefault().getStringVariableManager();&lt;br /&gt;try {&lt;br /&gt;  System.out.println(svm.performStringSubstitution("${eclipse_home}"));&lt;br /&gt;} catch (CoreException e) {&lt;br /&gt;  e.printStackTrace();&lt;br /&gt;}&lt;br /&gt;&lt;/CODE&gt;&lt;br /&gt;// Console Output&lt;br /&gt;/C:/java/eclipse/&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-3475598560349234591?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/3475598560349234591/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=3475598560349234591' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/3475598560349234591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/3475598560349234591'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/11/eclipse-variables.html' title='Eclipse Variables'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-164226008987106312</id><published>2009-11-12T15:44:00.004+08:00</published><updated>2009-11-12T16:17:42.610+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><title type='text'>AT Command Send Unicode Message</title><content type='html'>&lt;a href="http://www.developershome.com/sms/howToSendSMSFromPC.asp"&gt;How to Send SMS Messages from a Computer&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.quintillion.co.jp/3GPP/3gpp_rel6.html"&gt;3GPP UMTS Specification Release 6&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Unit1.pas&lt;CODE&gt;unit Unit1;&lt;br /&gt;&lt;br /&gt;interface&lt;br /&gt;&lt;br /&gt;uses&lt;br /&gt;  SysUtils, Types, Classes, QGraphics, QControls, QForms, QDialogs,&lt;br /&gt;  QStdCtrls;&lt;br /&gt;&lt;br /&gt;type&lt;br /&gt;  TForm1 = class(TForm)&lt;br /&gt;    Button1: TButton;&lt;br /&gt;    Edit1: TEdit;&lt;br /&gt;    Edit3: TEdit;&lt;br /&gt;    Label1: TLabel;&lt;br /&gt;    Label2: TLabel;&lt;br /&gt;    Memo1: TMemo;&lt;br /&gt;    procedure Button1Click(Sender: TObject);&lt;br /&gt;  private&lt;br /&gt;  public&lt;br /&gt;  end;&lt;br /&gt;&lt;br /&gt;var&lt;br /&gt;  Form1: TForm1;&lt;br /&gt;&lt;br /&gt;implementation&lt;br /&gt;{$R *.xfm}&lt;br /&gt;&lt;br /&gt;function WStrToHex(ws: WideString): string;&lt;br /&gt;var&lt;br /&gt;  i: integer;&lt;br /&gt;begin&lt;br /&gt;  Result := '';&lt;br /&gt;  for i := 1 to Length(ws) do begin&lt;br /&gt;    Result  := Format('%s%.4x', [Result, Word(ws[i])]);&lt;br /&gt;  end;&lt;br /&gt;  Result := Format('%.2x%s', [length(ws) * 2, Result]);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;function swapphone(Phone: string): string;&lt;br /&gt;var&lt;br /&gt;  b: Char;&lt;br /&gt;  i, ln: Integer;&lt;br /&gt;  Internationalnumber: Boolean;&lt;br /&gt;  interstr: string;&lt;br /&gt;begin&lt;br /&gt;  Internationalnumber := Phone[1] = '+';&lt;br /&gt;  ln := Length(Phone);&lt;br /&gt;  if Internationalnumber then begin&lt;br /&gt;    Result := PChar(@Phone[2]);&lt;br /&gt;    Dec(ln);&lt;br /&gt;  end else begin&lt;br /&gt;    Result := Phone;&lt;br /&gt;  end;&lt;br /&gt;  if (ln mod 2) = 1 then begin&lt;br /&gt;    Result := Result + 'F';&lt;br /&gt;  end;&lt;br /&gt;  i := 1;&lt;br /&gt;  while (i &lt; Length(Result)) do begin&lt;br /&gt;    b := Result[i];&lt;br /&gt;    Result[i] := Result[i + 1];&lt;br /&gt;    Result[i + 1] := b;&lt;br /&gt;    Inc(i, 2);&lt;br /&gt;  end;&lt;br /&gt;  if Internationalnumber then begin&lt;br /&gt;    interstr := '91';&lt;br /&gt;  end else begin&lt;br /&gt;    interstr := '81';&lt;br /&gt;  end;&lt;br /&gt;    Result := Format('%.2x%s%s', [ln ,interstr ,Result]);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;procedure TForm1.Button1Click(Sender: TObject);&lt;br /&gt;var&lt;br /&gt;  msgstr: string;&lt;br /&gt;  pln, mln: Integer;&lt;br /&gt;begin&lt;br /&gt;  msgstr := Format('0001FF%S0008%s',[&lt;br /&gt;    swapphone(Edit3.Text), WStrToHex(Edit1.Text)]);&lt;br /&gt;  Memo1.Clear;&lt;br /&gt;  Memo1.Lines.Add(Format('AT+CMGW=%d',[(Length(msgstr) div 2) -1]));&lt;br /&gt;  Memo1.Lines.Add(msgstr);&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;end.&lt;/CODE&gt;&lt;/pre&gt;&lt;pre&gt;Unit1.dfm&lt;CODE&gt;object Form1: TForm1&lt;br /&gt;  Left = 192&lt;br /&gt;  Top = 107&lt;br /&gt;  Width = 696&lt;br /&gt;  Height = 480&lt;br /&gt;  Caption = 'Form1'&lt;br /&gt;  Color = clBtnFace&lt;br /&gt;  Font.Charset = DEFAULT_CHARSET&lt;br /&gt;  Font.Color = clWindowText&lt;br /&gt;  Font.Height = -11&lt;br /&gt;  Font.Name = 'MS Sans Serif'&lt;br /&gt;  Font.Style = []&lt;br /&gt;  OldCreateOrder = False&lt;br /&gt;  PixelsPerInch = 96&lt;br /&gt;  TextHeight = 13&lt;br /&gt;  object Button1: TButton&lt;br /&gt;    Left = 4&lt;br /&gt;    Top = 32&lt;br /&gt;    Width = 75&lt;br /&gt;    Height = 25&lt;br /&gt;    Caption = 'Binary Code'&lt;br /&gt;    TabOrder = 0&lt;br /&gt;    OnClick = Button1Click&lt;br /&gt;  end&lt;br /&gt;  object Edit1: TEdit&lt;br /&gt;    Left = 4&lt;br /&gt;    Top = 8&lt;br /&gt;    Width = 289&lt;br /&gt;    Height = 21&lt;br /&gt;    TabOrder = 1&lt;br /&gt;    Text = '手機'&lt;br /&gt;  end&lt;br /&gt;  object Edit2: TEdit&lt;br /&gt;    Left = 4&lt;br /&gt;    Top = 60&lt;br /&gt;    Width = 617&lt;br /&gt;    Height = 21&lt;br /&gt;    TabOrder = 2&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-164226008987106312?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/164226008987106312/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=164226008987106312' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/164226008987106312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/164226008987106312'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/11/at-command-send-unicode-message.html' title='AT Command Send Unicode Message'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-1615317335384320425</id><published>2009-11-01T08:54:00.004+08:00</published><updated>2009-11-01T09:25:17.514+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>Install WordPress 2.8.5</title><content type='html'>&lt;a href="http://wordpress.org/"&gt;WordPress&lt;/a&gt;&lt;br /&gt;Modify php.ini &lt;br /&gt;&lt;CODE&gt;&lt;br /&gt;[Date]&lt;br /&gt;; Defines the default timezone used by the date functions&lt;br /&gt;; http://php.net/date.timezone&lt;br /&gt;; date.timezone = GMT&lt;br /&gt;date.timezone = Asia/Taipei&lt;br /&gt;&lt;br /&gt;&lt;/CODE&gt;&lt;br /&gt;Download and Unzip WordPressto Apache htdocs folder&lt;br /&gt;copy wp-config-sample.php wp-config.php&lt;br /&gt;modify wp-config.php&lt;br /&gt;&lt;CODE&gt;&lt;br /&gt;define('WP_SITEURL', "http://${_SERVER['HTTP_HOST']}/wordpress");&lt;br /&gt;define('WP_HOME',    "http://${_SERVER['HTTP_HOST']}/wordpress");&lt;br /&gt;&lt;br /&gt;define('DB_NAME', 'wordpress');&lt;br /&gt;define('DB_USER', 'wordpress');&lt;br /&gt;define('DB_PASSWORD', 'wordpress');&lt;br /&gt;define('DB_HOST', 'localhost');&lt;br /&gt;...&lt;br /&gt;&lt;/CODE&gt;&lt;br /&gt;Create Database&lt;br /&gt;&lt;CODE&gt;&lt;br /&gt;CREATE USER 'wordpress'@'localhost' IDENTIFIED BY '***';&lt;br /&gt;GRANT USAGE ON * . * TO 'wordpress'@'localhost' IDENTIFIED BY '***' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;&lt;br /&gt;CREATE DATABASE IF NOT EXISTS `wordpress` ;&lt;br /&gt;GRANT ALL PRIVILEGES ON `wordpress` . * TO 'wordpress'@'localhost';&lt;br /&gt;&lt;/CODE&gt;&lt;br /&gt;http://localhost/wordpress/&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.beyes.tw/377"&gt;WordPress 2.8.5 中文語系檔 - 我的普立茲&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-1615317335384320425?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/1615317335384320425/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=1615317335384320425' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/1615317335384320425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/1615317335384320425'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/11/install-wordpress-285.html' title='Install WordPress 2.8.5'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-1046589320607277187</id><published>2009-10-28T17:30:00.006+08:00</published><updated>2009-11-09T23:20:51.152+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Maps API for Flash - 3D Maps</title><content type='html'>&lt;a href="http://code.google.com/intl/en/apis/maps/documentation/flash/3d-maps.html#Introduction"&gt;Google Maps API for Flash - 3D Maps&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;HelloWorld.mxml&lt;code&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;br /&gt;&amp;lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"&gt;&lt;br /&gt;&amp;lt;maps:Map3D&lt;br /&gt; xmlns:maps="com.google.maps.*"&lt;br /&gt; id="map"&lt;br /&gt; mapevent_mappreinitialize="onMapPreinitialize(event)"&lt;br /&gt; mapevent_mapready="onMapReady(event)"&lt;br /&gt; width="100%" height="100%"&lt;br /&gt; key="ABQIAAAA7QUChpcnvnmXxsjC7s1fCxQGj0PqsCtxKvarsoS-iqLdqZSKfxTd7Xf-2rEc_PC9o8IsJde80Wnj4g"/&gt;&lt;br /&gt;&amp;lt;mx:Script&gt;&lt;br /&gt; &amp;lt;![CDATA[&lt;br /&gt; import com.google.maps.LatLng;&lt;br /&gt; import com.google.maps.Map3D;&lt;br /&gt; import com.google.maps.MapEvent;&lt;br /&gt; import com.google.maps.MapType;&lt;br /&gt; import com.google.maps.MapMouseEvent;&lt;br /&gt; import com.google.maps.MapOptions;&lt;br /&gt; import com.google.maps.View;&lt;br /&gt; import com.google.maps.geom.Attitude; &lt;br /&gt; import com.google.maps.controls.NavigationControl;&lt;br /&gt; import com.google.maps.controls.MapTypeControl;&lt;br /&gt; import com.google.maps.overlays.*;&lt;br /&gt; import com.google.maps.services.*;&lt;br /&gt;&lt;br /&gt; private var clickCount:uint = 0;&lt;br /&gt;&lt;br /&gt; private function onMapPreinitialize(event:MapEvent):void {&lt;br /&gt;   var myMapOptions:MapOptions = new MapOptions();&lt;br /&gt;   myMapOptions.zoom = 12;&lt;br /&gt;   myMapOptions.center = new LatLng(24.15, 120.6);&lt;br /&gt;   myMapOptions.mapType = MapType.HYBRID_MAP_TYPE;&lt;br /&gt;   myMapOptions.viewMode = View.VIEWMODE_PERSPECTIVE;&lt;br /&gt;   myMapOptions.attitude = new Attitude(20,30,0);&lt;br /&gt;   map.setInitOptions(myMapOptions); &lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; private function onMapReady(event:Event):void {&lt;br /&gt;   map.addControl(new NavigationControl());&lt;br /&gt;   map.addControl(new MapTypeControl());   &lt;br /&gt;   map.addEventListener(MapMouseEvent.CLICK, onMapClick);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; private function onMapClick(event:MapMouseEvent):void {&lt;br /&gt;   clickCount++;&lt;br /&gt;   map.addOverlay(new Marker(event.latLng,&lt;br /&gt;     new MarkerOptions({label: clickCount.toString()})));&lt;br /&gt; }   &lt;br /&gt; ]]&gt;&lt;br /&gt;&amp;lt;/mx:Script&gt;&lt;br /&gt;&amp;lt;/mx:Application&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;$ mxmlc -library-path+=../lib/map_flex_1_17.swc HelloWorld.mxml&lt;br /&gt;&lt;pre&gt;HelloWorld.html&lt;code&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;&lt;br /&gt;&amp;lt;html&gt;&lt;br /&gt; &amp;lt;head&gt;&lt;br /&gt; &amp;lt;meta http-equiv="content-type" content="text/html; charset=windows-1250"&gt;&lt;br /&gt; &amp;lt;meta name="generator" content="PSPad editor, www.pspad.com"&gt;&lt;br /&gt; &amp;lt;title&gt;&amp;lt;/title&gt;&lt;br /&gt; &amp;lt;/head&gt;&lt;br /&gt; &amp;lt;body&gt;&lt;br /&gt; &amp;lt;div id="map_canvas" name="map_canvas"&gt;&lt;br /&gt;   &amp;lt;object&lt;br /&gt;     codebase="."&lt;br /&gt;     width="100%"&lt;br /&gt;     height="100%"&gt;&lt;br /&gt;     &amp;lt;param name="movie" value="helloworld.swf"&gt;&lt;br /&gt;     &amp;lt;param name="quality" value="high"&gt;&lt;br /&gt;     &amp;lt;embed&lt;br /&gt;       width="100%"&lt;br /&gt;       height="100%"&lt;br /&gt;       src="HelloWorld.swf"&lt;br /&gt;       quality="high"&lt;br /&gt;       pluginspage="http://www.macromedia.com/go/getflashplayer"&lt;br /&gt;       type="application/x-shockwave-flash"&gt;&lt;br /&gt;     &amp;lt;/embed&gt;&lt;br /&gt;   &amp;lt;/object&gt;&lt;br /&gt; &amp;lt;/div&gt;&lt;br /&gt; &amp;lt;/body&gt;&lt;br /&gt;&amp;lt;/html&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a href="http://sites.google.com/site/solnone/google-map-api-flash-helloworld"&gt;Example&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-1046589320607277187?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/1046589320607277187/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=1046589320607277187' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/1046589320607277187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/1046589320607277187'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/10/google-maps-api-for-flash-3d-maps.html' title='Google Maps API for Flash - 3D Maps'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-8079233699568614770</id><published>2009-10-27T22:55:00.004+08:00</published><updated>2009-10-27T23:07:23.658+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>FreeMarker FreemarkerXmlTask</title><content type='html'>&lt;a href="http://freemarker.org/"&gt;FreeMarker&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;test.ftl&lt;CODE&gt;&amp;lt;html&gt;&lt;br /&gt;&amp;lt;head&gt;&lt;br /&gt;  &amp;lt;title&gt;Welcome!&amp;lt;/title&gt;&lt;br /&gt;&amp;lt;/head&gt;&lt;br /&gt;&amp;lt;body&gt;&lt;br /&gt;&amp;lt;#assign test= .node.test &gt;&lt;br /&gt;  &amp;lt;h1&gt;Welcome ${test.user}!&amp;lt;/h1&gt;&lt;br /&gt;  &amp;lt;p&gt;Our product:&amp;lt;br /&gt;&lt;br /&gt;  &amp;lt;#list test.products as product&gt;&lt;br /&gt;  &amp;lt;a href="${product.url}"&gt;${product.name}&amp;lt;/a&gt;&amp;lt;br /&gt;&lt;br /&gt;  &amp;lt;/#list&gt;&lt;br /&gt;&amp;lt;/body&gt;&lt;br /&gt;&amp;lt;/html&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;xml/test.xml&lt;CODE&gt;&amp;lt;?xml version="1.0"?&gt;&lt;br /&gt;&amp;lt;test&gt;&lt;br /&gt;  &amp;lt;user&gt;Big Joe&amp;lt;/user&gt;&lt;br /&gt;  &amp;lt;products&gt;&lt;br /&gt;    &amp;lt;url&gt;products/greenmouse.html&amp;lt;/url&gt;&lt;br /&gt;    &amp;lt;name&gt;green mouse&amp;lt;/name&gt;&lt;br /&gt;  &amp;lt;/products&gt;&lt;br /&gt;  &amp;lt;products&gt;&lt;br /&gt;    &amp;lt;url&gt;products/greenmouse2.html&amp;lt;/url&gt;&lt;br /&gt;    &amp;lt;name&gt;green mouse2&amp;lt;/name&gt;&lt;br /&gt;  &amp;lt;/products&gt;&lt;br /&gt;&amp;lt;/test&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;build.xml&lt;CODE&gt;&amp;lt;?xml version="1.0"?&gt;&lt;br /&gt;&amp;lt;project name="FreeMarker" default="generate" basedir="."&gt;&lt;br /&gt;  &amp;lt;taskdef name="freemarker"&lt;br /&gt;      classname="freemarker.ext.ant.FreemarkerXmlTask"&gt;&lt;br /&gt;    &amp;lt;classpath&gt;&lt;br /&gt;      &amp;lt;fileset dir="."&gt;&lt;br /&gt;        &amp;lt;include name="freemarker.jar" /&gt;&lt;br /&gt;      &amp;lt;/fileset&gt;&lt;br /&gt;    &amp;lt;/classpath&gt;&lt;br /&gt;  &amp;lt;/taskdef&gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;target name="generate"&gt;&lt;br /&gt;    &amp;lt;mkdir dir="html" /&gt;&lt;br /&gt;    &amp;lt;freemarker&lt;br /&gt;        basedir="xml"&lt;br /&gt;        destdir="html"&lt;br /&gt;        includes="**/*.xml"&lt;br /&gt;        template="test.ftl"&lt;br /&gt;    /&gt;&lt;br /&gt;  &amp;lt;/target&gt;&lt;br /&gt;&amp;lt;/project&gt;&lt;/CODE&gt;&lt;/pre&gt;&lt;br /&gt;run ant&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-8079233699568614770?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/8079233699568614770/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=8079233699568614770' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8079233699568614770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8079233699568614770'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/10/freemarker-freemarkerxmltask.html' title='FreeMarker FreemarkerXmlTask'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-1732306471723185001</id><published>2009-10-27T11:05:00.006+08:00</published><updated>2009-10-27T11:13:39.684+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Apache Velocity StringResourceLoader and GenericTools</title><content type='html'>&lt;pre&gt;&lt;code&gt;import java.io.PrintWriter;&lt;br /&gt;import java.io.StringWriter;&lt;br /&gt;import java.util.Date;&lt;br /&gt;&lt;br /&gt;import org.apache.velocity.Template;&lt;br /&gt;import org.apache.velocity.VelocityContext;&lt;br /&gt;import org.apache.velocity.app.Velocity;&lt;br /&gt;import org.apache.velocity.runtime.resource.loader.StringResourceLoader;&lt;br /&gt;import org.apache.velocity.runtime.resource.util.StringResourceRepository;&lt;br /&gt;import org.apache.velocity.tools.generic.DateTool;&lt;br /&gt;&lt;br /&gt;public class Main {&lt;br /&gt;&lt;br /&gt;  public static void main(String[] args) throws Exception {&lt;br /&gt;    Velocity.setProperty("resource.loader", "string");&lt;br /&gt;    Velocity.setProperty("string.resource.loader.class",&lt;br /&gt;      "org.apache.velocity.runtime.resource.loader.StringResourceLoader");&lt;br /&gt;    Velocity.setProperty("string.resource.loader.repository.class",&lt;br /&gt;      "org.apache.velocity.runtime.resource.util.StringResourceRepositoryImpl");&lt;br /&gt;    Velocity.init();&lt;br /&gt;&lt;br /&gt;    StringWriter templateString = new StringWriter();&lt;br /&gt;    PrintWriter pw = new PrintWriter(templateString);&lt;br /&gt;&lt;br /&gt;    pw.println("    Name: $name");&lt;br /&gt;    pw.println("     Age: $age");&lt;br /&gt;    pw.println("birthday: $date.format('yyyy-MM-dd', $birthday)");&lt;br /&gt;    &lt;br /&gt;    StringResourceRepository repo = StringResourceLoader.getRepository();&lt;br /&gt;    repo.putStringResource("test.vm", templateString.getBuffer().toString());&lt;br /&gt;    &lt;br /&gt;    Template template = Velocity.getTemplate("test.vm");&lt;br /&gt;    &lt;br /&gt;    VelocityContext context = new VelocityContext();&lt;br /&gt;    context.put("date", new DateTool());&lt;br /&gt;    &lt;br /&gt;    context.put("name", "Solnone");&lt;br /&gt;    context.put("age", new Integer(37));&lt;br /&gt;    Date birthday = new Date();&lt;br /&gt;    context.put("birthday", birthday);&lt;br /&gt;&lt;br /&gt;    StringWriter sw = new StringWriter();&lt;br /&gt;    template.merge(context, sw);&lt;br /&gt;    System.out.println(sw);&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-1732306471723185001?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/1732306471723185001/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=1732306471723185001' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/1732306471723185001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/1732306471723185001'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/10/apache-velocity-stringresourceloader.html' title='Apache Velocity StringResourceLoader and GenericTools'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-8089975261827070710</id><published>2009-10-24T20:09:00.001+08:00</published><updated>2009-10-24T20:11:39.826+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Map API 地理編碼</title><content type='html'>&lt;pre&gt;&lt;br /&gt;&amp;lt;html&gt;&lt;br /&gt;  &amp;lt;head&gt;&lt;br /&gt;    &amp;lt;meta http-equiv="content-type" content="text/html; charset=UTF-8"&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&lt;br /&gt;  src="http://www.google.com/jsapi?key=ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ-i1QfUnH94QxWIa6N4U6MouMmBA"&gt;&amp;lt;/script&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&gt;&lt;br /&gt;google.load("maps", "2.x");&lt;br /&gt;&lt;br /&gt;var map = null;&lt;br /&gt;var geocoder = null;&lt;br /&gt;var marker = null;&lt;br /&gt;&lt;br /&gt;function updateLatLng(point) {&lt;br /&gt;  document.getElementById("Lat").value = point.y;&lt;br /&gt;  document.getElementById("Lng").value = point.x;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function initialize() {&lt;br /&gt;  if (GBrowserIsCompatible()) {&lt;br /&gt;    map = new GMap2(document.getElementById("map_canvas"));&lt;br /&gt;    map.addControl(new GSmallMapControl());&lt;br /&gt;    map.addControl(new GMenuMapTypeControl());&lt;br /&gt;    map.setMapType(G_HYBRID_MAP);&lt;br /&gt;&lt;br /&gt;    var point = new GLatLng(25.033668, 121.519913);&lt;br /&gt;    map.setCenter(point, 7);&lt;br /&gt;    marker = new GMarker(point, {&lt;br /&gt;      draggable : true&lt;br /&gt;    });&lt;br /&gt;    map.addOverlay(marker);&lt;br /&gt;&lt;br /&gt;    GEvent.addListener(marker, "dragstart", function() {&lt;br /&gt;      map.closeInfoWindow();&lt;br /&gt;    });&lt;br /&gt;    GEvent.addListener(marker, "dragend", function() {&lt;br /&gt;      updateLatLng(marker.getLatLng());&lt;br /&gt;    });&lt;br /&gt;&lt;br /&gt;    geocoder = new GClientGeocoder();&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function showAddress(address) {&lt;br /&gt;  if (geocoder) {&lt;br /&gt;    geocoder.getLatLng(address, function(point) {&lt;br /&gt;      if (!point) {&lt;br /&gt;        alert(address + " not found");&lt;br /&gt;      } else {&lt;br /&gt;        map.setCenter(point, 13);&lt;br /&gt;        marker.setLatLng(point);&lt;br /&gt;        marker.openInfoWindowHtml(address);&lt;br /&gt;        updateLatLng(point);&lt;br /&gt;      }&lt;br /&gt;    });&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&amp;lt;/script&gt;&lt;br /&gt;    &amp;lt;title&gt;&amp;lt;/title&gt;&lt;br /&gt;  &amp;lt;/head&gt;&lt;br /&gt;  &amp;lt;body onload="initialize()" onunload="GUnload()"&gt;&lt;br /&gt;    &amp;lt;div id="map_canvas" style="width: 500px; height: 300px"&gt;&lt;br /&gt;    &amp;lt;/div&gt;&lt;br /&gt;    &amp;lt;input type="text" name="address" id="addressId" value="台北市中正紀念堂"/&gt;&lt;br /&gt;    &amp;lt;input type="button" value="查詢經緯度" onclick="showAddress(document.getElementById('addressId').value);" /&gt;    &amp;lt;br /&gt;&lt;br /&gt;    緯度&amp;lt;input type="text" name="Lat" id="Lat" /&gt;&lt;br /&gt;    經度&amp;lt;input type="text" name="Lng" id="Lng" /&gt;&lt;br /&gt;  &amp;lt;/body&gt;&lt;br /&gt;&amp;lt;/html&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-8089975261827070710?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/8089975261827070710/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=8089975261827070710' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8089975261827070710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8089975261827070710'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/10/google-map-api.html' title='Google Map API 地理編碼'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-5952814075200001525</id><published>2009-10-24T16:09:00.007+08:00</published><updated>2009-10-24T18:39:42.495+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>XAMPP with Oracle XE</title><content type='html'>Install Oracle Client or Server, &lt;br /&gt;&lt;a href="http://solnone.blogspot.com/2008/11/oracle-database-10g-express-edition.html"&gt;Oracle Database 10g Express Edition&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Add tnsnames.ora&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;//-- C:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN\tnsnames.ora --&lt;br /&gt;XE =&lt;br /&gt;  (DESCRIPTION =&lt;br /&gt;    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))&lt;br /&gt;    (CONNECT_DATA =&lt;br /&gt;      (SERVER = DEDICATED)&lt;br /&gt;      (SERVICE_NAME = XE)&lt;br /&gt;    )&lt;br /&gt;  )&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Download and Install &lt;a href="http://www.apachefriends.org/"&gt;XAMPP&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enable Oracle in php.ini&lt;br /&gt;extension=php_oci8.dll&lt;br /&gt;extension=php_pdo_oci8.dll&lt;br /&gt;&lt;br /&gt;http://localhost/xampp/adodb.php&lt;br /&gt;&lt;br /&gt;Database server: oci8&lt;br /&gt;Host of the DB server: localhost&lt;br /&gt;Username: scott&lt;br /&gt;Password: tiger&lt;br /&gt;Current database on this database server: XE&lt;br /&gt;Selected table of database: emp&lt;br /&gt;&lt;br /&gt;click submit&lt;br /&gt;The example:&lt;br /&gt;DBServer: oci8&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;//-- connectOracle.php --&lt;br /&gt;&amp;lt;?php&lt;br /&gt;  header('Content-type: text/html; charset=UTF-8');&lt;br /&gt;  header('Vary: Accept-Language'); &lt;br /&gt;?&gt;&lt;br /&gt;&amp;lt;html&gt;&lt;br /&gt;    &amp;lt;head&gt;&lt;br /&gt;      &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;&lt;br /&gt;    &amp;lt;/head&gt;&lt;br /&gt;    &amp;lt;body&gt;&lt;br /&gt;&amp;lt;?php &lt;br /&gt;  include "/adodb/adodb.inc.php";&lt;br /&gt;  $db = NewADOConnection("oci8");&lt;br /&gt;  $db-&gt;charSet = "utf8";&lt;br /&gt;  $db-&gt;Connect("XE", "scott", "tiger");&lt;br /&gt;  &lt;br /&gt;  $rs = $db-&gt;Execute("select * from emp");&lt;br /&gt;  while ($arr = $rs-&gt;FetchRow()) {&lt;br /&gt;      print_r($arr);&lt;br /&gt;   echo "&amp;lt;hr&gt;";&lt;br /&gt;  }&lt;br /&gt;?&gt;&lt;br /&gt;    &amp;lt;/body&gt;&lt;br /&gt;&amp;lt;/html&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-5952814075200001525?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/5952814075200001525/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=5952814075200001525' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/5952814075200001525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/5952814075200001525'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/10/xampp-with-oracle-xe.html' title='XAMPP with Oracle XE'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-2338502627288045153</id><published>2009-10-24T01:13:00.004+08:00</published><updated>2009-10-24T01:31:47.663+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>FreeMarker</title><content type='html'>&lt;a href="http://freemarker.org/"&gt;FreeMarker&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://freemarker.org/docs/pgui_quickstart_all.html"&gt;Quick start code&lt;/a&gt;&lt;br /&gt;&lt;a href="http://freemarker.org/docs/dgui_quickstart_basics.html#example.first"&gt;Template&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-2338502627288045153?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/2338502627288045153/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=2338502627288045153' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/2338502627288045153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/2338502627288045153'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/10/freemarker.html' title='FreeMarker'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-2655954421624800523</id><published>2009-10-19T14:53:00.004+08:00</published><updated>2009-10-19T15:00:58.806+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Map addDomListener</title><content type='html'>&lt;a href="http://code.google.com/apis/maps/documentation/controls.html"&gt;Google Maps API Controls&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;&lt;br /&gt;&amp;lt;html xmlns:v="urn:schemas-microsoft-com:vml"&lt;br /&gt; xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;br /&gt;&amp;lt;head&gt;&lt;br /&gt;&amp;lt;meta http-equiv="content-type" content="text/html; charset=UTF-8"&gt;&lt;br /&gt;&amp;lt;title&gt;Google Maps JavaScript API Example: addDomListener&amp;lt;/title&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&lt;br /&gt; src="http://www.google.com/jsapi?key=abcdefg"&gt;&amp;lt;/script&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&gt;&lt;br /&gt;google.load("maps", "2.x");&lt;br /&gt;function initialize() {&lt;br /&gt; if (GBrowserIsCompatible()) {&lt;br /&gt;  var mapDataList = new Array();&lt;br /&gt;  var map = new GMap2(document.getElementById("map_canvas"));&lt;br /&gt;  var latlngbounds = new GLatLngBounds();&lt;br /&gt;  mapDataList.push( {&lt;br /&gt;   id : 'ChungShanPark',&lt;br /&gt;   message : '台中市中山公園&amp;lt;br/&gt;湖心亭',&lt;br /&gt;   marker : new GMarker(new GLatLng(24.143657, 120.684167))&lt;br /&gt;  });&lt;br /&gt;  function createDomListener(elm, index) {&lt;br /&gt;   GEvent.addDomListener(document.getElementById(elm), 'click',&lt;br /&gt;     function() {&lt;br /&gt;      GEvent.trigger(mapDataList[index].marker, 'click');&lt;br /&gt;     });&lt;br /&gt;  }&lt;br /&gt;  function addMarkerListener(d, index) {&lt;br /&gt;   var marker = d.marker;&lt;br /&gt;   GEvent.addListener(marker, "click", function() {&lt;br /&gt;    map.openInfoWindowHtml(marker.getLatLng(), d.message);&lt;br /&gt;   });&lt;br /&gt;   createDomListener(d.id, index);&lt;br /&gt;   return marker;&lt;br /&gt;  }&lt;br /&gt;  for ( var i = 0; i &amp;lt; mapDataList.length; i++) {&lt;br /&gt;   var d = mapDataList[i];&lt;br /&gt;   map.addOverlay(addMarkerListener(d, i));&lt;br /&gt;   latlngbounds.extend(d.marker.getLatLng());&lt;br /&gt;  }&lt;br /&gt;  map.setCenter(latlngbounds.getCenter(), map&lt;br /&gt;    .getBoundsZoomLevel(latlngbounds));&lt;br /&gt;  map.addControl(new GSmallMapControl());&lt;br /&gt;  map.addControl(new GMenuMapTypeControl());&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&amp;lt;/script&gt;&lt;br /&gt;&amp;lt;/head&gt;&lt;br /&gt;&amp;lt;body onload="initialize()" onunload="GUnload()"&gt;&lt;br /&gt;&amp;lt;div id="map_canvas" style="width: 500px; height: 350px;"&gt;&amp;lt;/div&gt;&lt;br /&gt;&amp;lt;a id="ChungShanPark" href="#"&gt;湖心亭&amp;lt;/a&gt;&lt;br /&gt;&amp;lt;br /&gt;&lt;br /&gt;&amp;lt;/body&gt;&lt;br /&gt;&amp;lt;/html&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-2655954421624800523?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/2655954421624800523/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=2655954421624800523' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/2655954421624800523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/2655954421624800523'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/10/google-map-adddomlistener.html' title='Google Map addDomListener'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-7396931978973846172</id><published>2009-10-18T11:14:00.005+08:00</published><updated>2009-10-18T11:24:38.888+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Apache Roller 4.0.1 and OpenJPA 1.2.1</title><content type='html'>&lt;pre&gt;&lt;br /&gt;http://roller.apache.org/&lt;br /&gt;  Download and unzip apache-roller-src-4.0.1.zip&lt;br /&gt;&lt;br /&gt;http://openjpa.apache.org/&lt;br /&gt;  Download and unzip apache-openjpa-1.2.1-binary.zip&lt;br /&gt;&lt;br /&gt;$ mkdir ${roller}/tools/openjpa-1.2.1&lt;br /&gt;$ cp ${openjpa}/openjpa-1.2.1.jar                 ${roller}/tools/openjpa-1.2.1/&lt;br /&gt;$ cp ${openjpa}/lib/geronimo-jpa_3.0_spec-1.0.jar ${roller}/tools/openjpa-1.2.1/&lt;br /&gt;$ cp ${openjpa}/lib/geronimo-jta_1.1_spec-1.1.jar ${roller}/tools/openjpa-1.2.1/&lt;br /&gt;$ cp ${openjpa}/lib/serp-1.13.1.jar               ${roller}/tools/openjpa-1.2.1/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;modify ${roller}/apps/weblogger/properties.xmlf&lt;br /&gt;  &amp;lt;!--&lt;br /&gt;    &amp;lt;property name="tools.jpa"           value="${ro.tools}/openjpa-0.9.7" /&gt;&lt;br /&gt;  --&gt;&lt;br /&gt;  &amp;lt;property name="tools.jpa"           value="${ro.tools}/openjpa-1.2.1" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$ cd ${roller}/apps/weblogger/&lt;br /&gt;$ ant clean dist&lt;br /&gt;&lt;br /&gt;deploy ${roller}/apps/weblogger/dist/webapp/roller-weblogger.war&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-7396931978973846172?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/7396931978973846172/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=7396931978973846172' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7396931978973846172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7396931978973846172'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/10/apache-roller-401-and-openjpa-121.html' title='Apache Roller 4.0.1 and OpenJPA 1.2.1'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-3901292657695304489</id><published>2009-10-17T23:10:00.010+08:00</published><updated>2009-10-21T09:32:15.547+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Apache Roller 4.0.1 and Struts 2.1.8</title><content type='html'>&lt;pre&gt;&lt;br /&gt;http://roller.apache.org/&lt;br /&gt;  Download and unzip apache-roller-src-4.0.1.zip&lt;br /&gt;&lt;br /&gt;http://struts.apache.org/&lt;br /&gt;  Download and unzip struts-2.1.8-all.zip&lt;br /&gt;&lt;br /&gt;$ mkdir ${roller}/tools/struts-2.1.8/lib&lt;br /&gt;$ cp ${struts}/lib/antlr-2.7.2.jar                 ${roller}/tools/struts-2.1.8/lib/&lt;br /&gt;$ cp ${struts}/lib/commons-beanutils-1.7.0.jar     ${roller}/tools/struts-2.1.8/lib/&lt;br /&gt;$ cp ${struts}/lib/commons-chain-1.2.jar           ${roller}/tools/struts-2.1.8/lib/&lt;br /&gt;$ cp ${struts}/lib/commons-fileupload-1.2.1.jar    ${roller}/tools/struts-2.1.8/lib/&lt;br /&gt;$ cp ${struts}/lib/commons-io-1.3.2.jar            ${roller}/tools/struts-2.1.8/lib/&lt;br /&gt;$ cp ${struts}/lib/commons-validator-1.3.1.jar     ${roller}/tools/struts-2.1.8/lib/&lt;br /&gt;$ cp ${struts}/lib/freemarker-2.3.15.jar           ${roller}/tools/struts-2.1.8/lib/&lt;br /&gt;$ cp ${struts}/lib/ognl-2.7.3.jar                  ${roller}/tools/struts-2.1.8/lib/&lt;br /&gt;$ cp ${struts}/lib/oro-2.0.8.jar                   ${roller}/tools/struts-2.1.8/lib/&lt;br /&gt;$ cp ${struts}/lib/struts2-core-2.1.8.jar          ${roller}/tools/struts-2.1.8/lib/&lt;br /&gt;$ cp ${struts}/lib/struts2-spring-plugin-2.1.8.jar ${roller}/tools/struts-2.1.8/lib/&lt;br /&gt;$ cp ${struts}/lib/struts2-tiles-plugin-2.1.8.jar  ${roller}/tools/struts-2.1.8/lib/&lt;br /&gt;$ cp ${struts}/lib/tiles-api-2.0.6.jar             ${roller}/tools/struts-2.1.8/lib/&lt;br /&gt;$ cp ${struts}/lib/tiles-core-2.0.6.jar            ${roller}/tools/struts-2.1.8/lib/&lt;br /&gt;$ cp ${struts}/lib/tiles-jsp-2.0.6.jar             ${roller}/tools/struts-2.1.8/lib/&lt;br /&gt;$ cp ${struts}/lib/xwork-core-2.1.6.jar            ${roller}/tools/struts-2.1.8/lib/&lt;br /&gt;$ cp ${struts}/lib/commons-digester-2.0.jar        ${roller}/tools/lib/&lt;br /&gt;$ cp ${struts}/lib/commons-lang-2.3.jar            ${roller}/tools/lib/&lt;br /&gt;&lt;br /&gt;modify ${roller}/apps/weblogger/properties.xmlf&lt;br /&gt;  &amp;lt;!--&lt;br /&gt;    &amp;lt;property name="tools.struts2"       value="${ro.tools}/struts-2.0.9" /&gt;&lt;br /&gt;  --&gt;&lt;br /&gt;  &amp;lt;property name="tools.struts2"       value="${ro.tools}/struts-2.1.8" /&gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;!--&lt;br /&gt;    &amp;lt;include name="commons-digester-1.6.jar" /&gt;&lt;br /&gt;    &amp;lt;include name="commons-lang-2.1.jar" /&gt;&lt;br /&gt;  --&gt;&lt;br /&gt;  &amp;lt;include name="commons-digester-2.0.jar" /&gt;&lt;br /&gt;  &amp;lt;include name="commons-lang-2.3.jar" /&gt;&lt;br /&gt;&lt;br /&gt;modify ${roller}/apps/weblogger/web/WEB-INF/classes/struts.xml&lt;br /&gt;&amp;lt;interceptor-stack name="rollerStack"&gt;&lt;br /&gt;    &amp;lt;interceptor-ref name="exception"/&gt;&lt;br /&gt;    &amp;lt;interceptor-ref name="alias"/&gt;&lt;br /&gt;    &amp;lt;!--&lt;br /&gt;    &amp;lt;interceptor-ref name="servlet-config"/&gt;&lt;br /&gt;    &amp;lt;interceptor-ref name="prepare"/&gt;&lt;br /&gt;    &amp;lt;interceptor-ref name="i18n"/&gt;&lt;br /&gt;    &amp;lt;interceptor-ref name="chain"/&gt;&lt;br /&gt;    &amp;lt;interceptor-ref name="debugging"/&gt;&lt;br /&gt;    &amp;lt;interceptor-ref name="profiling"/&gt;&lt;br /&gt;    &amp;lt;interceptor-ref name="scoped-model-driven"/&gt;&lt;br /&gt;    &amp;lt;interceptor-ref name="model-driven"/&gt;&lt;br /&gt;    &amp;lt;interceptor-ref name="fileUpload"/&gt;&lt;br /&gt;    &amp;lt;interceptor-ref name="checkbox"/&gt;&lt;br /&gt;    &amp;lt;interceptor-ref name="static-params"/&gt;&lt;br /&gt;    --&gt;&lt;br /&gt;    &amp;lt;interceptor-ref name="servletConfig"/&gt;&lt;br /&gt;    &amp;lt;interceptor-ref name="prepare"/&gt;&lt;br /&gt;    &amp;lt;interceptor-ref name="i18n"/&gt;&lt;br /&gt;    &amp;lt;interceptor-ref name="chain"/&gt;&lt;br /&gt;    &amp;lt;interceptor-ref name="debugging"/&gt;&lt;br /&gt;    &amp;lt;interceptor-ref name="profiling"/&gt;&lt;br /&gt;    &amp;lt;interceptor-ref name="scopedModelDriven"/&gt;&lt;br /&gt;    &amp;lt;interceptor-ref name="modelDriven"/&gt;&lt;br /&gt;    &amp;lt;interceptor-ref name="fileUpload"/&gt;&lt;br /&gt;    &amp;lt;interceptor-ref name="checkbox"/&gt;&lt;br /&gt;    &amp;lt;interceptor-ref name="staticParams"/&gt;&lt;br /&gt;...&lt;br /&gt;&amp;lt;action name="profile!*" method="{1}"&lt;br /&gt;  class="org.apache.roller.weblogger.ui.struts2.core.Profile"&gt;&lt;br /&gt; &amp;lt;result name="input" type="tiles"&gt;.Profile&amp;lt;/result&gt;&lt;br /&gt; &amp;lt;!--&lt;br /&gt; &amp;lt;result name="cancel" type="redirect-action"&gt;menu&amp;lt;/result&gt;&lt;br /&gt; --&gt;&lt;br /&gt; &amp;lt;result name="cancel" type="redirectAaction"&gt;menu&amp;lt;/result&gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;result name="success" type="tiles"&gt;.Profile&amp;lt;/result&gt;&lt;br /&gt;&amp;lt;/action&gt;&lt;br /&gt;&lt;br /&gt;$ cd ${roller}/apps/weblogger/&lt;br /&gt;$ ant dist&lt;br /&gt;&lt;br /&gt;deploy ${roller}/apps/weblogger/dist/webapp/roller-weblogger.war&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-3901292657695304489?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/3901292657695304489/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=3901292657695304489' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/3901292657695304489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/3901292657695304489'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/10/apache-roller-401-and-struts-218.html' title='Apache Roller 4.0.1 and Struts 2.1.8'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-8590861256911337123</id><published>2009-10-17T12:03:00.003+08:00</published><updated>2009-10-17T12:30:12.048+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>To build the Struts Dojo profile</title><content type='html'>Download and unzip&lt;br /&gt;&lt;a href="http://download.dojotoolkit.org/release-0.4.3/dojo-0.4.3-src.zip"&gt;http://download.dojotoolkit.org/release-0.4.3/dojo-0.4.3-src.zip&lt;/a&gt;&lt;br /&gt;&lt;span&gt;&lt;a href="http://apache.ntu.edu.tw/struts/binaries/struts-2.1.8-all.zip"&gt;http://apache.ntu.edu.tw/struts/binaries/struts-2.1.8-all.zip&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Read struts-2.1.8/src/plugins/dojo/src/profile/README&lt;br /&gt;Copy struts.profile.js to ${dojo}/buildscripts/profiles&lt;br /&gt;modify ${dojo}/buildscripts/profiles/struts.profile.js&lt;br /&gt;&lt;br /&gt;// struts.profile.js&lt;br /&gt;...&lt;br /&gt;dependencies.prefixes = [&lt;br /&gt; ["struts", "../struts-2.1.8/src/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts"]&lt;br /&gt;];&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;Set ANT_OPTS&lt;br /&gt;  Windows&lt;br /&gt;    $ set ANT_OPTS=%ANT_OPTS% -Dfile.encoding=UTF-8&lt;br /&gt;  Linux&lt;br /&gt;    $ export ANT_OPTS="$ANT_OPTS -Dfile.encoding=UTF-8"&lt;br /&gt;&lt;br /&gt;Inside ${dojo}/buildscripts run:&lt;br /&gt;   $ ant -Dversion=0.4.3 -Dprofile=struts clean release intern-strings&lt;br /&gt;   $ cp ../release/dojo/dojo.js ${struts}/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js&lt;br /&gt;   $ cp ../release/dojo/dojo.js.uncompressed.js  ${struts}/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js.uncompressed.js&lt;br /&gt;   $ cp ../release/dojo/nls ${struts}/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/  &lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-8590861256911337123?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/8590861256911337123/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=8590861256911337123' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8590861256911337123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8590861256911337123'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/10/to-build-struts-dojo-profile.html' title='To build the Struts Dojo profile'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-5074844685106165831</id><published>2009-10-16T23:35:00.010+08:00</published><updated>2009-10-17T00:41:19.352+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Fix Struts2 Dojo Plugin Asian Localization Datetime Picker</title><content type='html'>修正 Struts2 Dojo Plugin 中、日、韓文的日期顯示問題&lt;br /&gt;&lt;ol&gt;&lt;li&gt;解壓縮 struts2-dojo-plugin-2.1.*.jar&lt;/li&gt;&lt;li&gt;使用 UTF-8 編碼的編輯器，修改 org/apache/struts2/static/dojo/nls/*.js 內的文字&lt;/li&gt;&lt;li&gt;將修改後的檔案以 UTF-8 編碼存檔，壓縮回 jar 檔中&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;// dojo_zh-tw.js&lt;br /&gt;dojo.provide("nls.dojo_zh-tw");&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian._built=true;&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian.zh_tw");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian.zh_tw={&lt;br /&gt; "dateFormat-full":"yyyy'年'M'月'd'日'EEEE",&lt;br /&gt; "dateFormat-medium":"yyyy'年'M'月'd'日'",&lt;br /&gt; "field-second":"秒",&lt;br /&gt; "field-week":"週",&lt;br /&gt; "timeFormat-full":"ahh'時'mm'分'ss'秒' z",&lt;br /&gt; "eras":[&lt;br /&gt; "西元前",&lt;br /&gt; "西元"],&lt;br /&gt; "field-year":"年",&lt;br /&gt; "field-minute":"分鐘",&lt;br /&gt; "timeFormat-medium":"ahh:mm:ss",&lt;br /&gt; "field-hour":"小時",&lt;br /&gt; "dateFormat-long":"yyyy'年'M'月'd'日'",&lt;br /&gt; "field-day":"整日",&lt;br /&gt; "field-dayperiod":"日間",&lt;br /&gt; "field-month":"月",&lt;br /&gt; "dateFormat-short":"yy'年'M'月'd'日'",&lt;br /&gt; "field-era":"年代",&lt;br /&gt; "timeFormat-short":"ah:mm",&lt;br /&gt; "months-format-abbr":[&lt;br /&gt; "1月",&lt;br /&gt; "2月",&lt;br /&gt; "3月",&lt;br /&gt; "4月",&lt;br /&gt; "5月",&lt;br /&gt; "6月",&lt;br /&gt; "7月",&lt;br /&gt; "8月",&lt;br /&gt; "9月",&lt;br /&gt; "10月",&lt;br /&gt; "11月",&lt;br /&gt; "12月"],&lt;br /&gt; "timeFormat-long":"ahh'時'mm'分'ss'秒'",&lt;br /&gt; "field-weekday":"週天",&lt;br /&gt; "field-zone":"區域",&lt;br /&gt; "days-format-abbr":[&lt;br /&gt; "週日",&lt;br /&gt; "週一",&lt;br /&gt; "週二",&lt;br /&gt; "週三",&lt;br /&gt; "週四",&lt;br /&gt; "週五",&lt;br /&gt; "週六"],&lt;br /&gt; "days-standAlone-narrow":[&lt;br /&gt; "日",&lt;br /&gt; "一",&lt;br /&gt; "二",&lt;br /&gt; "三",&lt;br /&gt; "四",&lt;br /&gt; "五",&lt;br /&gt; "六"],&lt;br /&gt; "am":"上午",&lt;br /&gt; "pm":"下午",&lt;br /&gt; "months-format-wide":[&lt;br /&gt; "一月",&lt;br /&gt; "二月",&lt;br /&gt; "三月",&lt;br /&gt; "四月",&lt;br /&gt; "五月",&lt;br /&gt; "六月",&lt;br /&gt; "七月",&lt;br /&gt; "八月",&lt;br /&gt; "九月",&lt;br /&gt; "十月",&lt;br /&gt; "十一月",&lt;br /&gt; "十二月"],&lt;br /&gt; "months-standAlone-narrow":[&lt;br /&gt; "1月",&lt;br /&gt; "2月",&lt;br /&gt; "3月",&lt;br /&gt; "4月",&lt;br /&gt; "5月",&lt;br /&gt; "6月",&lt;br /&gt; "7月",&lt;br /&gt; "8月",&lt;br /&gt; "9月",&lt;br /&gt; "10月",&lt;br /&gt; "11月",&lt;br /&gt; "12月"],&lt;br /&gt; "days-format-wide":[&lt;br /&gt; "星期日",&lt;br /&gt; "星期一",&lt;br /&gt; "星期二",&lt;br /&gt; "星期三",&lt;br /&gt; "星期四",&lt;br /&gt; "星期五",&lt;br /&gt; "星期六"]};&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorianExtras");&lt;br /&gt;dojo.i18n.calendar.nls.gregorianExtras._built=true;&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorianExtras.zh_tw");&lt;br /&gt;dojo.i18n.calendar.nls.gregorianExtras.zh_tw={&lt;br /&gt; "dateFormat-yearOnly":"yyyy'年'"};&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian._built=true;&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian.zh_tw");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian.zh_tw={&lt;br /&gt; "dateFormat-full":"yyyy'年'M'月'd'日'EEEE",&lt;br /&gt; "dateFormat-medium":"yyyy'年'M'月'd'日'",&lt;br /&gt; "field-second":"秒",&lt;br /&gt; "field-week":"週",&lt;br /&gt; "timeFormat-full":"ahh'時'mm'分'ss'秒' z",&lt;br /&gt; "eras":[&lt;br /&gt; "西元前",&lt;br /&gt; "西元"],&lt;br /&gt; "field-year":"年",&lt;br /&gt; "field-minute":"分鐘",&lt;br /&gt; "timeFormat-medium":"ahh:mm:ss",&lt;br /&gt; "field-hour":"小時",&lt;br /&gt; "dateFormat-long":"yyyy'年'M'月'd'日'",&lt;br /&gt; "field-day":"整日",&lt;br /&gt; "field-dayperiod":"日間",&lt;br /&gt; "field-month":"月",&lt;br /&gt; "dateFormat-short":"yy'年'M'月'd'日'",&lt;br /&gt; "field-era":"年代",&lt;br /&gt; "timeFormat-short":"ah:mm",&lt;br /&gt; "months-format-abbr":[&lt;br /&gt; "1月",&lt;br /&gt; "2月",&lt;br /&gt; "3月",&lt;br /&gt; "4月",&lt;br /&gt; "5月",&lt;br /&gt; "6月",&lt;br /&gt; "7月",&lt;br /&gt; "8月",&lt;br /&gt; "9月",&lt;br /&gt; "10月",&lt;br /&gt; "11月",&lt;br /&gt; "12月"],&lt;br /&gt; "timeFormat-long":"ahh'時'mm'分'ss'秒'",&lt;br /&gt; "field-weekday":"週天",&lt;br /&gt; "field-zone":"區域",&lt;br /&gt; "days-format-abbr":[&lt;br /&gt; "週日",&lt;br /&gt; "週一",&lt;br /&gt; "週二",&lt;br /&gt; "週三",&lt;br /&gt; "週四",&lt;br /&gt; "週五",&lt;br /&gt; "週六"],&lt;br /&gt; "days-standAlone-narrow":[&lt;br /&gt; "日",&lt;br /&gt; "一",&lt;br /&gt; "二",&lt;br /&gt; "三",&lt;br /&gt; "四",&lt;br /&gt; "五",&lt;br /&gt; "六"],&lt;br /&gt; "am":"上午",&lt;br /&gt; "pm":"下午",&lt;br /&gt; "months-format-wide":[&lt;br /&gt; "一月",&lt;br /&gt; "二月",&lt;br /&gt; "三月",&lt;br /&gt; "四月",&lt;br /&gt; "五月",&lt;br /&gt; "六月",&lt;br /&gt; "七月",&lt;br /&gt; "八月",&lt;br /&gt; "九月",&lt;br /&gt; "十月",&lt;br /&gt; "十一月",&lt;br /&gt; "十二月"],&lt;br /&gt; "months-standAlone-narrow":[&lt;br /&gt; "1月",&lt;br /&gt; "2月",&lt;br /&gt; "3月",&lt;br /&gt; "4月",&lt;br /&gt; "5月",&lt;br /&gt; "6月",&lt;br /&gt; "7月",&lt;br /&gt; "8月",&lt;br /&gt; "9月",&lt;br /&gt; "10月",&lt;br /&gt; "11月",&lt;br /&gt; "12月"],&lt;br /&gt; "days-format-wide":[&lt;br /&gt; "星期日",&lt;br /&gt; "星期一",&lt;br /&gt; "星期二",&lt;br /&gt; "星期三",&lt;br /&gt; "星期四",&lt;br /&gt; "星期五",&lt;br /&gt; "星期六"]};&lt;br /&gt;dojo.provide("dojo.widget.nls.TimePicker");&lt;br /&gt;dojo.widget.nls.TimePicker._built=true;&lt;br /&gt;dojo.provide("dojo.widget.nls.TimePicker.zh_tw");&lt;br /&gt;dojo.widget.nls.TimePicker.zh_tw={&lt;br /&gt; "any":"any"};&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownTimePicker");&lt;br /&gt;dojo.widget.nls.DropdownTimePicker._built=true;&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownTimePicker.zh_tw");&lt;br /&gt;dojo.widget.nls.DropdownTimePicker.zh_tw={&lt;br /&gt; "selectTime":"Select time"};&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownDatePicker");&lt;br /&gt;dojo.widget.nls.DropdownDatePicker._built=true;&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownDatePicker.zh_tw");&lt;br /&gt;dojo.widget.nls.DropdownDatePicker.zh_tw={&lt;br /&gt; "selectDate":"Select a date"};&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// dojo_zh-cn.js&lt;br /&gt;dojo.provide("nls.dojo_zh-cn");&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian._built=true;&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian.zh_cn");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian.zh_cn={&lt;br /&gt; "dateFormat-medium":"yyyy-M-d",&lt;br /&gt; "field-second":"秒钟",&lt;br /&gt; "field-week":"周",&lt;br /&gt; "timeFormat-full":"ahh'时'mm'分'ss'秒' z",&lt;br /&gt; "field-year":"年",&lt;br /&gt; "field-minute":"分钟",&lt;br /&gt; "timeFormat-medium":"ahh:mm:ss",&lt;br /&gt; "field-hour":"小时",&lt;br /&gt; "dateFormat-long":"yyyy'年'M'月'd'日'",&lt;br /&gt; "field-day":"日",&lt;br /&gt; "field-dayperiod":"上午/下午",&lt;br /&gt; "field-month":"月",&lt;br /&gt; "dateFormat-short":"yy-M-d",&lt;br /&gt; "field-era":"时期",&lt;br /&gt; "timeFormat-short":"ah:mm",&lt;br /&gt; "timeFormat-long":"ahh'时'mm'分'ss'秒'",&lt;br /&gt; "dateFormat-full":"yyyy'年'M'月'd'日'EEEE",&lt;br /&gt; "field-weekday":"周天",&lt;br /&gt; "field-zone":"区域",&lt;br /&gt; "days-standAlone-narrow":[&lt;br /&gt; "日",&lt;br /&gt; "一",&lt;br /&gt; "二",&lt;br /&gt; "三",&lt;br /&gt; "四",&lt;br /&gt; "五",&lt;br /&gt; "六"],&lt;br /&gt; "eras":[&lt;br /&gt; "公元前",&lt;br /&gt; "公元"],&lt;br /&gt; "am":"上午",&lt;br /&gt; "months-format-abbr":[&lt;br /&gt; "一月",&lt;br /&gt; "二月",&lt;br /&gt; "三月",&lt;br /&gt; "四月",&lt;br /&gt; "五月",&lt;br /&gt; "六月",&lt;br /&gt; "七月",&lt;br /&gt; "八月",&lt;br /&gt; "九月",&lt;br /&gt; "十月",&lt;br /&gt; "十一月",&lt;br /&gt; "十二月"],&lt;br /&gt; "days-format-abbr":[&lt;br /&gt; "周日",&lt;br /&gt; "周一",&lt;br /&gt; "周二",&lt;br /&gt; "周三",&lt;br /&gt; "周四",&lt;br /&gt; "周五",&lt;br /&gt; "周六"],&lt;br /&gt; "pm":"下午",&lt;br /&gt; "months-format-wide":[&lt;br /&gt; "一月",&lt;br /&gt; "二月",&lt;br /&gt; "三月",&lt;br /&gt; "四月",&lt;br /&gt; "五月",&lt;br /&gt; "六月",&lt;br /&gt; "七月",&lt;br /&gt; "八月",&lt;br /&gt; "九月",&lt;br /&gt; "十月",&lt;br /&gt; "十一月",&lt;br /&gt; "十二月"],&lt;br /&gt; "months-standAlone-narrow":[&lt;br /&gt; "1月",&lt;br /&gt; "2月",&lt;br /&gt; "3月",&lt;br /&gt; "4月",&lt;br /&gt; "5月",&lt;br /&gt; "6月",&lt;br /&gt; "7月",&lt;br /&gt; "8月",&lt;br /&gt; "9月",&lt;br /&gt; "10月",&lt;br /&gt; "11月",&lt;br /&gt; "12月"],&lt;br /&gt; "days-format-wide":[&lt;br /&gt; "星期日",&lt;br /&gt; "星期一",&lt;br /&gt; "星期二",&lt;br /&gt; "星期三",&lt;br /&gt; "星期四",&lt;br /&gt; "星期五",&lt;br /&gt; "星期六"]};&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorianExtras");&lt;br /&gt;dojo.i18n.calendar.nls.gregorianExtras._built=true;&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorianExtras.zh_cn");&lt;br /&gt;dojo.i18n.calendar.nls.gregorianExtras.zh_cn={&lt;br /&gt; "dateFormat-yearOnly":"yyyy'年'"};&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian._built=true;&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian.zh_cn");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian.zh_cn={&lt;br /&gt; "dateFormat-medium":"yyyy-M-d",&lt;br /&gt; "field-second":"秒钟",&lt;br /&gt; "field-week":"周",&lt;br /&gt; "timeFormat-full":"ahh'时'mm'分'ss'秒' z",&lt;br /&gt; "field-year":"年",&lt;br /&gt; "field-minute":"分钟",&lt;br /&gt; "timeFormat-medium":"ahh:mm:ss",&lt;br /&gt; "field-hour":"小时",&lt;br /&gt; "dateFormat-long":"yyyy'年'M'月'd'日'",&lt;br /&gt; "field-day":"日",&lt;br /&gt; "field-dayperiod":"上午/下午",&lt;br /&gt; "field-month":"月",&lt;br /&gt; "dateFormat-short":"yy-M-d",&lt;br /&gt; "field-era":"时期",&lt;br /&gt; "timeFormat-short":"ah:mm",&lt;br /&gt; "timeFormat-long":"ahh'时'mm'分'ss'秒'",&lt;br /&gt; "dateFormat-full":"yyyy'年'M'月'd'日'EEEE",&lt;br /&gt; "field-weekday":"周天",&lt;br /&gt; "field-zone":"区域",&lt;br /&gt; "days-standAlone-narrow":[&lt;br /&gt; "日",&lt;br /&gt; "一",&lt;br /&gt; "二",&lt;br /&gt; "三",&lt;br /&gt; "四",&lt;br /&gt; "五",&lt;br /&gt; "六"],&lt;br /&gt; "eras":[&lt;br /&gt; "公元前",&lt;br /&gt; "公元"],&lt;br /&gt; "am":"上午",&lt;br /&gt; "months-format-abbr":[&lt;br /&gt; "一月",&lt;br /&gt; "二月",&lt;br /&gt; "三月",&lt;br /&gt; "四月",&lt;br /&gt; "五月",&lt;br /&gt; "六月",&lt;br /&gt; "七月",&lt;br /&gt; "八月",&lt;br /&gt; "九月",&lt;br /&gt; "十月",&lt;br /&gt; "十一月",&lt;br /&gt; "十二月"],&lt;br /&gt; "days-format-abbr":[&lt;br /&gt; "周日",&lt;br /&gt; "周一",&lt;br /&gt; "周二",&lt;br /&gt; "周三",&lt;br /&gt; "周四",&lt;br /&gt; "周五",&lt;br /&gt; "周六"],&lt;br /&gt; "pm":"下午",&lt;br /&gt; "months-format-wide":[&lt;br /&gt; "一月",&lt;br /&gt; "二月",&lt;br /&gt; "三月",&lt;br /&gt; "四月",&lt;br /&gt; "五月",&lt;br /&gt; "六月",&lt;br /&gt; "七月",&lt;br /&gt; "八月",&lt;br /&gt; "九月",&lt;br /&gt; "十月",&lt;br /&gt; "十一月",&lt;br /&gt; "十二月"],&lt;br /&gt; "months-standAlone-narrow":[&lt;br /&gt; "1月",&lt;br /&gt; "2月",&lt;br /&gt; "3月",&lt;br /&gt; "4月",&lt;br /&gt; "5月",&lt;br /&gt; "6月",&lt;br /&gt; "7月",&lt;br /&gt; "8月",&lt;br /&gt; "9月",&lt;br /&gt; "10月",&lt;br /&gt; "11月",&lt;br /&gt; "12月"],&lt;br /&gt; "days-format-wide":[&lt;br /&gt; "星期日",&lt;br /&gt; "星期一",&lt;br /&gt; "星期二",&lt;br /&gt; "星期三",&lt;br /&gt; "星期四",&lt;br /&gt; "星期五",&lt;br /&gt; "星期六"]};&lt;br /&gt;dojo.provide("dojo.widget.nls.TimePicker");&lt;br /&gt;dojo.widget.nls.TimePicker._built=true;&lt;br /&gt;dojo.provide("dojo.widget.nls.TimePicker.zh_cn");&lt;br /&gt;dojo.widget.nls.TimePicker.zh_cn={&lt;br /&gt; "any":"any"};&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownTimePicker");&lt;br /&gt;dojo.widget.nls.DropdownTimePicker._built=true;&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownTimePicker.zh_cn");&lt;br /&gt;dojo.widget.nls.DropdownTimePicker.zh_cn={&lt;br /&gt; "selectTime":"Select time"};&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownDatePicker");&lt;br /&gt;dojo.widget.nls.DropdownDatePicker._built=true;&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownDatePicker.zh_cn");&lt;br /&gt;dojo.widget.nls.DropdownDatePicker.zh_cn={&lt;br /&gt; "selectDate":"Select a date"};&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// dojo_zh.js&lt;br /&gt;dojo.provide("nls.dojo_zh");&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian._built=true;&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian.zh");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian.zh={&lt;br /&gt; "days-standAlone-narrow":[&lt;br /&gt; "日",&lt;br /&gt; "一",&lt;br /&gt; "二",&lt;br /&gt; "三",&lt;br /&gt; "四",&lt;br /&gt; "五",&lt;br /&gt; "六"],&lt;br /&gt; "eras":[&lt;br /&gt; "公元前",&lt;br /&gt; "公元"],&lt;br /&gt; "am":"上午",&lt;br /&gt; "months-format-abbr":[&lt;br /&gt; "一月",&lt;br /&gt; "二月",&lt;br /&gt; "三月",&lt;br /&gt; "四月",&lt;br /&gt; "五月",&lt;br /&gt; "六月",&lt;br /&gt; "七月",&lt;br /&gt; "八月",&lt;br /&gt; "九月",&lt;br /&gt; "十月",&lt;br /&gt; "十一月",&lt;br /&gt; "十二月"],&lt;br /&gt; "days-format-abbr":[&lt;br /&gt; "周日",&lt;br /&gt; "周一",&lt;br /&gt; "周二",&lt;br /&gt; "周三",&lt;br /&gt; "周四",&lt;br /&gt; "周五",&lt;br /&gt; "周六"],&lt;br /&gt; "pm":"下午",&lt;br /&gt; "months-format-wide":[&lt;br /&gt; "一月",&lt;br /&gt; "二月",&lt;br /&gt; "三月",&lt;br /&gt; "四月",&lt;br /&gt; "五月",&lt;br /&gt; "六月",&lt;br /&gt; "七月",&lt;br /&gt; "八月",&lt;br /&gt; "九月",&lt;br /&gt; "十月",&lt;br /&gt; "十一月",&lt;br /&gt; "十二月"],&lt;br /&gt; "months-standAlone-narrow":[&lt;br /&gt; "1月",&lt;br /&gt; "2月",&lt;br /&gt; "3月",&lt;br /&gt; "4月",&lt;br /&gt; "5月",&lt;br /&gt; "6月",&lt;br /&gt; "7月",&lt;br /&gt; "8月",&lt;br /&gt; "9月",&lt;br /&gt; "10月",&lt;br /&gt; "11月",&lt;br /&gt; "12月"],&lt;br /&gt; "days-format-wide":[&lt;br /&gt; "星期日",&lt;br /&gt; "星期一",&lt;br /&gt; "星期二",&lt;br /&gt; "星期三",&lt;br /&gt; "星期四",&lt;br /&gt; "星期五",&lt;br /&gt; "星期六"],&lt;br /&gt; "field-weekday":"Day of the Week",&lt;br /&gt; "dateFormat-medium":"yyyy MMM d",&lt;br /&gt; "field-second":"Second",&lt;br /&gt; "field-week":"Week",&lt;br /&gt; "timeFormat-full":"HH:mm:ss z",&lt;br /&gt; "field-year":"Year",&lt;br /&gt; "field-minute":"Minute",&lt;br /&gt; "timeFormat-medium":"HH:mm:ss",&lt;br /&gt; "field-hour":"Hour",&lt;br /&gt; "dateFormat-long":"yyyy MMMM d",&lt;br /&gt; "field-day":"Day",&lt;br /&gt; "field-dayperiod":"Dayperiod",&lt;br /&gt; "field-month":"Month",&lt;br /&gt; "dateFormat-short":"yy/MM/dd",&lt;br /&gt; "field-era":"Era",&lt;br /&gt; "timeFormat-short":"HH:mm",&lt;br /&gt; "timeFormat-long":"HH:mm:ss z",&lt;br /&gt; "dateFormat-full":"EEEE,&lt;br /&gt;  yyyy MMMM dd",&lt;br /&gt; "field-zone":"Zone"};&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorianExtras");&lt;br /&gt;dojo.i18n.calendar.nls.gregorianExtras._built=true;&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorianExtras.zh");&lt;br /&gt;dojo.i18n.calendar.nls.gregorianExtras.zh={&lt;br /&gt; "dateFormat-yearOnly":"yyyy'年'"};&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian._built=true;&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian.zh");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian.zh={&lt;br /&gt; "days-standAlone-narrow":[&lt;br /&gt; "日",&lt;br /&gt; "一",&lt;br /&gt; "二",&lt;br /&gt; "三",&lt;br /&gt; "四",&lt;br /&gt; "五",&lt;br /&gt; "六"],&lt;br /&gt; "eras":[&lt;br /&gt; "公元前",&lt;br /&gt; "公元"],&lt;br /&gt; "am":"上午",&lt;br /&gt; "months-format-abbr":[&lt;br /&gt; "一月",&lt;br /&gt; "二月",&lt;br /&gt; "三月",&lt;br /&gt; "四月",&lt;br /&gt; "五月",&lt;br /&gt; "六月",&lt;br /&gt; "七月",&lt;br /&gt; "八月",&lt;br /&gt; "九月",&lt;br /&gt; "十月",&lt;br /&gt; "十一月",&lt;br /&gt; "十二月"],&lt;br /&gt; "days-format-abbr":[&lt;br /&gt; "周日",&lt;br /&gt; "周一",&lt;br /&gt; "周二",&lt;br /&gt; "周三",&lt;br /&gt; "周四",&lt;br /&gt; "周五",&lt;br /&gt; "周六"],&lt;br /&gt; "pm":"下午",&lt;br /&gt; "months-format-wide":[&lt;br /&gt; "一月",&lt;br /&gt; "二月",&lt;br /&gt; "三月",&lt;br /&gt; "四月",&lt;br /&gt; "五月",&lt;br /&gt; "六月",&lt;br /&gt; "七月",&lt;br /&gt; "八月",&lt;br /&gt; "九月",&lt;br /&gt; "十月",&lt;br /&gt; "十一月",&lt;br /&gt; "十二月"],&lt;br /&gt; "months-standAlone-narrow":[&lt;br /&gt; "1月",&lt;br /&gt; "2月",&lt;br /&gt; "3月",&lt;br /&gt; "4月",&lt;br /&gt; "5月",&lt;br /&gt; "6月",&lt;br /&gt; "7月",&lt;br /&gt; "8月",&lt;br /&gt; "9月",&lt;br /&gt; "10月",&lt;br /&gt; "11月",&lt;br /&gt; "12月"],&lt;br /&gt; "days-format-wide":[&lt;br /&gt; "星期日",&lt;br /&gt; "星期一",&lt;br /&gt; "星期二",&lt;br /&gt; "星期三",&lt;br /&gt; "星期四",&lt;br /&gt; "星期五",&lt;br /&gt; "星期六"],&lt;br /&gt; "field-weekday":"Day of the Week",&lt;br /&gt; "dateFormat-medium":"yyyy MMM d",&lt;br /&gt; "field-second":"Second",&lt;br /&gt; "field-week":"Week",&lt;br /&gt; "timeFormat-full":"HH:mm:ss z",&lt;br /&gt; "field-year":"Year",&lt;br /&gt; "field-minute":"Minute",&lt;br /&gt; "timeFormat-medium":"HH:mm:ss",&lt;br /&gt; "field-hour":"Hour",&lt;br /&gt; "dateFormat-long":"yyyy MMMM d",&lt;br /&gt; "field-day":"Day",&lt;br /&gt; "field-dayperiod":"Dayperiod",&lt;br /&gt; "field-month":"Month",&lt;br /&gt; "dateFormat-short":"yy/MM/dd",&lt;br /&gt; "field-era":"Era",&lt;br /&gt; "timeFormat-short":"HH:mm",&lt;br /&gt; "timeFormat-long":"HH:mm:ss z",&lt;br /&gt; "dateFormat-full":"EEEE,&lt;br /&gt;  yyyy MMMM dd",&lt;br /&gt; "field-zone":"Zone"};&lt;br /&gt;dojo.provide("dojo.widget.nls.TimePicker");&lt;br /&gt;dojo.widget.nls.TimePicker._built=true;&lt;br /&gt;dojo.provide("dojo.widget.nls.TimePicker.zh");&lt;br /&gt;dojo.widget.nls.TimePicker.zh={&lt;br /&gt; "any":"any"};&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownTimePicker");&lt;br /&gt;dojo.widget.nls.DropdownTimePicker._built=true;&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownTimePicker.zh");&lt;br /&gt;dojo.widget.nls.DropdownTimePicker.zh={&lt;br /&gt; "selectTime":"Select time"};&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownDatePicker");&lt;br /&gt;dojo.widget.nls.DropdownDatePicker._built=true;&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownDatePicker.zh");&lt;br /&gt;dojo.widget.nls.DropdownDatePicker.zh={&lt;br /&gt; "selectDate":"Select a date"};&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// dojo_ja.js&lt;br /&gt;dojo.provide("nls.dojo_ja");&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian._built=true;&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian.ja");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian.ja={&lt;br /&gt; "days-standAlone-narrow":[&lt;br /&gt; "日",&lt;br /&gt; "月",&lt;br /&gt; "火",&lt;br /&gt; "水",&lt;br /&gt; "木",&lt;br /&gt; "金",&lt;br /&gt; "土"],&lt;br /&gt; "timeFormat-full":"H'時'mm'分'ss'秒'z",&lt;br /&gt; "eras":[&lt;br /&gt; "紀元前",&lt;br /&gt; "西暦"],&lt;br /&gt; "timeFormat-medium":"H:mm:ss",&lt;br /&gt; "dateFormat-medium":"yyyy/MM/dd",&lt;br /&gt; "am":"午前",&lt;br /&gt; "months-format-abbr":[&lt;br /&gt; "1 月",&lt;br /&gt; "2 月",&lt;br /&gt; "3 月",&lt;br /&gt; "4 月",&lt;br /&gt; "5 月",&lt;br /&gt; "6 月",&lt;br /&gt; "7 月",&lt;br /&gt; "8 月",&lt;br /&gt; "9 月",&lt;br /&gt; "10 月",&lt;br /&gt; "11 月",&lt;br /&gt; "12 月"],&lt;br /&gt; "dateFormat-full":"yyyy'年'M'月'd'日'EEEE",&lt;br /&gt; "days-format-abbr":[&lt;br /&gt; "日",&lt;br /&gt; "月",&lt;br /&gt; "火",&lt;br /&gt; "水",&lt;br /&gt; "木",&lt;br /&gt; "金",&lt;br /&gt; "土"],&lt;br /&gt; "timeFormat-long":"H:mm:ss:z",&lt;br /&gt; "timeFormat-short":"H:mm",&lt;br /&gt; "pm":"午後",&lt;br /&gt; "months-format-wide":[&lt;br /&gt; "1 月",&lt;br /&gt; "2 月",&lt;br /&gt; "3 月",&lt;br /&gt; "4 月",&lt;br /&gt; "5 月",&lt;br /&gt; "6 月",&lt;br /&gt; "7 月",&lt;br /&gt; "8 月",&lt;br /&gt; "9 月",&lt;br /&gt; "10 月",&lt;br /&gt; "11 月",&lt;br /&gt; "12 月"],&lt;br /&gt; "dateFormat-long":"yyyy'年'M'月'd'日'",&lt;br /&gt; "days-format-wide":[&lt;br /&gt; "日曜日",&lt;br /&gt; "月曜日",&lt;br /&gt; "火曜日",&lt;br /&gt; "水曜日",&lt;br /&gt; "木曜日",&lt;br /&gt; "金曜日",&lt;br /&gt; "土曜日"],&lt;br /&gt; "field-weekday":"Day of the Week",&lt;br /&gt; "field-second":"Second",&lt;br /&gt; "field-week":"Week",&lt;br /&gt; "months-standAlone-narrow":[&lt;br /&gt; "1",&lt;br /&gt; "2",&lt;br /&gt; "3",&lt;br /&gt; "4",&lt;br /&gt; "5",&lt;br /&gt; "6",&lt;br /&gt; "7",&lt;br /&gt; "8",&lt;br /&gt; "9",&lt;br /&gt; "10",&lt;br /&gt; "11",&lt;br /&gt; "12"],&lt;br /&gt; "field-year":"Year",&lt;br /&gt; "field-minute":"Minute",&lt;br /&gt; "field-hour":"Hour",&lt;br /&gt; "field-day":"Day",&lt;br /&gt; "field-dayperiod":"Dayperiod",&lt;br /&gt; "field-month":"Month",&lt;br /&gt; "dateFormat-short":"yy/MM/dd",&lt;br /&gt; "field-era":"Era",&lt;br /&gt; "field-zone":"Zone"};&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorianExtras");&lt;br /&gt;dojo.i18n.calendar.nls.gregorianExtras._built=true;&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorianExtras.ja");&lt;br /&gt;dojo.i18n.calendar.nls.gregorianExtras.ja={&lt;br /&gt; "dateFormat-yearOnly":"yyyy年"};&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian._built=true;&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian.ja");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian.ja={&lt;br /&gt; "days-standAlone-narrow":[&lt;br /&gt; "日",&lt;br /&gt; "月",&lt;br /&gt; "火",&lt;br /&gt; "水",&lt;br /&gt; "木",&lt;br /&gt; "金",&lt;br /&gt; "土"],&lt;br /&gt; "timeFormat-full":"H'時'mm'分'ss'秒'z",&lt;br /&gt; "eras":[&lt;br /&gt; "紀元前",&lt;br /&gt; "西暦"],&lt;br /&gt; "timeFormat-medium":"H:mm:ss",&lt;br /&gt; "dateFormat-medium":"yyyy/MM/dd",&lt;br /&gt; "am":"午前",&lt;br /&gt; "months-format-abbr":[&lt;br /&gt; "1 月",&lt;br /&gt; "2 月",&lt;br /&gt; "3 月",&lt;br /&gt; "4 月",&lt;br /&gt; "5 月",&lt;br /&gt; "6 月",&lt;br /&gt; "7 月",&lt;br /&gt; "8 月",&lt;br /&gt; "9 月",&lt;br /&gt; "10 月",&lt;br /&gt; "11 月",&lt;br /&gt; "12 月"],&lt;br /&gt; "dateFormat-full":"yyyy'年'M'月'd'日'EEEE",&lt;br /&gt; "days-format-abbr":[&lt;br /&gt; "日",&lt;br /&gt; "月",&lt;br /&gt; "火",&lt;br /&gt; "水",&lt;br /&gt; "木",&lt;br /&gt; "金",&lt;br /&gt; "土"],&lt;br /&gt; "timeFormat-long":"H:mm:ss:z",&lt;br /&gt; "timeFormat-short":"H:mm",&lt;br /&gt; "pm":"午後",&lt;br /&gt; "months-format-wide":[&lt;br /&gt; "1 月",&lt;br /&gt; "2 月",&lt;br /&gt; "3 月",&lt;br /&gt; "4 月",&lt;br /&gt; "5 月",&lt;br /&gt; "6 月",&lt;br /&gt; "7 月",&lt;br /&gt; "8 月",&lt;br /&gt; "9 月",&lt;br /&gt; "10 月",&lt;br /&gt; "11 月",&lt;br /&gt; "12 月"],&lt;br /&gt; "dateFormat-long":"yyyy'年'M'月'd'日'",&lt;br /&gt; "days-format-wide":[&lt;br /&gt; "日曜日",&lt;br /&gt; "月曜日",&lt;br /&gt; "火曜日",&lt;br /&gt; "水曜日",&lt;br /&gt; "木曜日",&lt;br /&gt; "金曜日",&lt;br /&gt; "土曜日"],&lt;br /&gt; "field-weekday":"Day of the Week",&lt;br /&gt; "field-second":"Second",&lt;br /&gt; "field-week":"Week",&lt;br /&gt; "months-standAlone-narrow":[&lt;br /&gt; "1",&lt;br /&gt; "2",&lt;br /&gt; "3",&lt;br /&gt; "4",&lt;br /&gt; "5",&lt;br /&gt; "6",&lt;br /&gt; "7",&lt;br /&gt; "8",&lt;br /&gt; "9",&lt;br /&gt; "10",&lt;br /&gt; "11",&lt;br /&gt; "12"],&lt;br /&gt; "field-year":"Year",&lt;br /&gt; "field-minute":"Minute",&lt;br /&gt; "field-hour":"Hour",&lt;br /&gt; "field-day":"Day",&lt;br /&gt; "field-dayperiod":"Dayperiod",&lt;br /&gt; "field-month":"Month",&lt;br /&gt; "dateFormat-short":"yy/MM/dd",&lt;br /&gt; "field-era":"Era",&lt;br /&gt; "field-zone":"Zone"};&lt;br /&gt;dojo.provide("dojo.widget.nls.TimePicker");&lt;br /&gt;dojo.widget.nls.TimePicker._built=true;&lt;br /&gt;dojo.provide("dojo.widget.nls.TimePicker.ja");&lt;br /&gt;dojo.widget.nls.TimePicker.ja={&lt;br /&gt; "any":"any"};&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownTimePicker");&lt;br /&gt;dojo.widget.nls.DropdownTimePicker._built=true;&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownTimePicker.ja");&lt;br /&gt;dojo.widget.nls.DropdownTimePicker.ja={&lt;br /&gt; "selectTime":"Select time"};&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownDatePicker");&lt;br /&gt;dojo.widget.nls.DropdownDatePicker._built=true;&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownDatePicker.ja");&lt;br /&gt;dojo.widget.nls.DropdownDatePicker.ja={&lt;br /&gt; "selectDate":"Select a date"};&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// dojo_ja-jp.js&lt;br /&gt;dojo.provide("nls.dojo_ja-jp");&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian._built=true;&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian.ja_jp");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian.ja_jp={&lt;br /&gt; "days-standAlone-narrow":[&lt;br /&gt; "日",&lt;br /&gt; "月",&lt;br /&gt; "火",&lt;br /&gt; "水",&lt;br /&gt; "木",&lt;br /&gt; "金",&lt;br /&gt; "土"],&lt;br /&gt; "timeFormat-full":"H'時'mm'分'ss'秒'z",&lt;br /&gt; "eras":[&lt;br /&gt; "紀元前",&lt;br /&gt; "西暦"],&lt;br /&gt; "timeFormat-medium":"H:mm:ss",&lt;br /&gt; "dateFormat-medium":"yyyy/MM/dd",&lt;br /&gt; "am":"午前",&lt;br /&gt; "months-format-abbr":[&lt;br /&gt; "1 月",&lt;br /&gt; "2 月",&lt;br /&gt; "3 月",&lt;br /&gt; "4 月",&lt;br /&gt; "5 月",&lt;br /&gt; "6 月",&lt;br /&gt; "7 月",&lt;br /&gt; "8 月",&lt;br /&gt; "9 月",&lt;br /&gt; "10 月",&lt;br /&gt; "11 月",&lt;br /&gt; "12 月"],&lt;br /&gt; "dateFormat-full":"yyyy'年'M'月'd'日'EEEE",&lt;br /&gt; "days-format-abbr":[&lt;br /&gt; "日",&lt;br /&gt; "月",&lt;br /&gt; "火",&lt;br /&gt; "水",&lt;br /&gt; "木",&lt;br /&gt; "金",&lt;br /&gt; "土"],&lt;br /&gt; "timeFormat-long":"H:mm:ss:z",&lt;br /&gt; "timeFormat-short":"H:mm",&lt;br /&gt; "pm":"午後",&lt;br /&gt; "months-format-wide":[&lt;br /&gt; "1 月",&lt;br /&gt; "2 月",&lt;br /&gt; "3 月",&lt;br /&gt; "4 月",&lt;br /&gt; "5 月",&lt;br /&gt; "6 月",&lt;br /&gt; "7 月",&lt;br /&gt; "8 月",&lt;br /&gt; "9 月",&lt;br /&gt; "10 月",&lt;br /&gt; "11 月",&lt;br /&gt; "12 月"],&lt;br /&gt; "dateFormat-long":"yyyy'年'M'月'd'日'",&lt;br /&gt; "days-format-wide":[&lt;br /&gt; "日曜日",&lt;br /&gt; "月曜日",&lt;br /&gt; "火曜日",&lt;br /&gt; "水曜日",&lt;br /&gt; "木曜日",&lt;br /&gt; "金曜日",&lt;br /&gt; "土曜日"],&lt;br /&gt; "field-weekday":"Day of the Week",&lt;br /&gt; "field-second":"Second",&lt;br /&gt; "field-week":"Week",&lt;br /&gt; "months-standAlone-narrow":[&lt;br /&gt; "1",&lt;br /&gt; "2",&lt;br /&gt; "3",&lt;br /&gt; "4",&lt;br /&gt; "5",&lt;br /&gt; "6",&lt;br /&gt; "7",&lt;br /&gt; "8",&lt;br /&gt; "9",&lt;br /&gt; "10",&lt;br /&gt; "11",&lt;br /&gt; "12"],&lt;br /&gt; "field-year":"Year",&lt;br /&gt; "field-minute":"Minute",&lt;br /&gt; "field-hour":"Hour",&lt;br /&gt; "field-day":"Day",&lt;br /&gt; "field-dayperiod":"Dayperiod",&lt;br /&gt; "field-month":"Month",&lt;br /&gt; "dateFormat-short":"yy/MM/dd",&lt;br /&gt; "field-era":"Era",&lt;br /&gt; "field-zone":"Zone"};&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorianExtras");&lt;br /&gt;dojo.i18n.calendar.nls.gregorianExtras._built=true;&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorianExtras.ja_jp");&lt;br /&gt;dojo.i18n.calendar.nls.gregorianExtras.ja_jp={&lt;br /&gt; "dateFormat-yearOnly":"yyyy年"};&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian._built=true;&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian.ja_jp");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian.ja_jp={&lt;br /&gt; "days-standAlone-narrow":[&lt;br /&gt; "日",&lt;br /&gt; "月",&lt;br /&gt; "火",&lt;br /&gt; "水",&lt;br /&gt; "木",&lt;br /&gt; "金",&lt;br /&gt; "土"],&lt;br /&gt; "timeFormat-full":"H'時'mm'分'ss'秒'z",&lt;br /&gt; "eras":[&lt;br /&gt; "紀元前",&lt;br /&gt; "西暦"],&lt;br /&gt; "timeFormat-medium":"H:mm:ss",&lt;br /&gt; "dateFormat-medium":"yyyy/MM/dd",&lt;br /&gt; "am":"午前",&lt;br /&gt; "months-format-abbr":[&lt;br /&gt; "1 月",&lt;br /&gt; "2 月",&lt;br /&gt; "3 月",&lt;br /&gt; "4 月",&lt;br /&gt; "5 月",&lt;br /&gt; "6 月",&lt;br /&gt; "7 月",&lt;br /&gt; "8 月",&lt;br /&gt; "9 月",&lt;br /&gt; "10 月",&lt;br /&gt; "11 月",&lt;br /&gt; "12 月"],&lt;br /&gt; "dateFormat-full":"yyyy'年'M'月'd'日'EEEE",&lt;br /&gt; "days-format-abbr":[&lt;br /&gt; "日",&lt;br /&gt; "月",&lt;br /&gt; "火",&lt;br /&gt; "水",&lt;br /&gt; "木",&lt;br /&gt; "金",&lt;br /&gt; "土"],&lt;br /&gt; "timeFormat-long":"H:mm:ss:z",&lt;br /&gt; "timeFormat-short":"H:mm",&lt;br /&gt; "pm":"午後",&lt;br /&gt; "months-format-wide":[&lt;br /&gt; "1 月",&lt;br /&gt; "2 月",&lt;br /&gt; "3 月",&lt;br /&gt; "4 月",&lt;br /&gt; "5 月",&lt;br /&gt; "6 月",&lt;br /&gt; "7 月",&lt;br /&gt; "8 月",&lt;br /&gt; "9 月",&lt;br /&gt; "10 月",&lt;br /&gt; "11 月",&lt;br /&gt; "12 月"],&lt;br /&gt; "dateFormat-long":"yyyy'年'M'月'd'日'",&lt;br /&gt; "days-format-wide":[&lt;br /&gt; "日曜日",&lt;br /&gt; "月曜日",&lt;br /&gt; "火曜日",&lt;br /&gt; "水曜日",&lt;br /&gt; "木曜日",&lt;br /&gt; "金曜日",&lt;br /&gt; "土曜日"],&lt;br /&gt; "field-weekday":"Day of the Week",&lt;br /&gt; "field-second":"Second",&lt;br /&gt; "field-week":"Week",&lt;br /&gt; "months-standAlone-narrow":[&lt;br /&gt; "1",&lt;br /&gt; "2",&lt;br /&gt; "3",&lt;br /&gt; "4",&lt;br /&gt; "5",&lt;br /&gt; "6",&lt;br /&gt; "7",&lt;br /&gt; "8",&lt;br /&gt; "9",&lt;br /&gt; "10",&lt;br /&gt; "11",&lt;br /&gt; "12"],&lt;br /&gt; "field-year":"Year",&lt;br /&gt; "field-minute":"Minute",&lt;br /&gt; "field-hour":"Hour",&lt;br /&gt; "field-day":"Day",&lt;br /&gt; "field-dayperiod":"Dayperiod",&lt;br /&gt; "field-month":"Month",&lt;br /&gt; "dateFormat-short":"yy/MM/dd",&lt;br /&gt; "field-era":"Era",&lt;br /&gt; "field-zone":"Zone"};&lt;br /&gt;dojo.provide("dojo.widget.nls.TimePicker");&lt;br /&gt;dojo.widget.nls.TimePicker._built=true;&lt;br /&gt;dojo.provide("dojo.widget.nls.TimePicker.ja_jp");&lt;br /&gt;dojo.widget.nls.TimePicker.ja_jp={&lt;br /&gt; "any":"any"};&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownTimePicker");&lt;br /&gt;dojo.widget.nls.DropdownTimePicker._built=true;&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownTimePicker.ja_jp");&lt;br /&gt;dojo.widget.nls.DropdownTimePicker.ja_jp={&lt;br /&gt; "selectTime":"Select time"};&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownDatePicker");&lt;br /&gt;dojo.widget.nls.DropdownDatePicker._built=true;&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownDatePicker.ja_jp");&lt;br /&gt;dojo.widget.nls.DropdownDatePicker.ja_jp={&lt;br /&gt; "selectDate":"Select a date"};&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// dojo_ko.js&lt;br /&gt;dojo.provide("nls.dojo_ko");&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian._built=true;&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian.ko");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian.ko={&lt;br /&gt; "months-standAlone-narrow":[&lt;br /&gt; "1월",&lt;br /&gt; "2월",&lt;br /&gt; "3월",&lt;br /&gt; "4월",&lt;br /&gt; "5월",&lt;br /&gt; "6월",&lt;br /&gt; "7월",&lt;br /&gt; "8월",&lt;br /&gt; "9월",&lt;br /&gt; "10월",&lt;br /&gt; "11월",&lt;br /&gt; "12월"],&lt;br /&gt; "dateFormat-long":"yyyy'년' M'월' d'일'",&lt;br /&gt; "timeFormat-full":"a hh'시' mm'분' ss'초' z",&lt;br /&gt; "eras":[&lt;br /&gt; "기원전",&lt;br /&gt; "서기"],&lt;br /&gt; "timeFormat-medium":"a hh'시' mm'분'",&lt;br /&gt; "dateFormat-medium":"yyyy. MM. dd",&lt;br /&gt; "am":"오전",&lt;br /&gt; "months-format-abbr":[&lt;br /&gt; "1월",&lt;br /&gt; "2월",&lt;br /&gt; "3월",&lt;br /&gt; "4월",&lt;br /&gt; "5월",&lt;br /&gt; "6월",&lt;br /&gt; "7월",&lt;br /&gt; "8월",&lt;br /&gt; "9월",&lt;br /&gt; "10월",&lt;br /&gt; "11월",&lt;br /&gt; "12월"],&lt;br /&gt; "dateFormat-full":"yyyy'년' M'월' d'일' EEEE",&lt;br /&gt; "days-format-abbr":[&lt;br /&gt; "일",&lt;br /&gt; "월",&lt;br /&gt; "화",&lt;br /&gt; "수",&lt;br /&gt; "목",&lt;br /&gt; "금",&lt;br /&gt; "토"],&lt;br /&gt; "timeFormat-long":"a hh'시' mm'분' ss'초'",&lt;br /&gt; "timeFormat-short":"a hh'시' mm'분'",&lt;br /&gt; "dateFormat-short":"yy. MM. dd",&lt;br /&gt; "pm":"오후",&lt;br /&gt; "months-format-wide":[&lt;br /&gt; "1월",&lt;br /&gt; "2월",&lt;br /&gt; "3월",&lt;br /&gt; "4월",&lt;br /&gt; "5월",&lt;br /&gt; "6월",&lt;br /&gt; "7월",&lt;br /&gt; "8월",&lt;br /&gt; "9월",&lt;br /&gt; "10월",&lt;br /&gt; "11월",&lt;br /&gt; "12월"],&lt;br /&gt; "days-standAlone-narrow":[&lt;br /&gt; "일",&lt;br /&gt; "월",&lt;br /&gt; "화",&lt;br /&gt; "수",&lt;br /&gt; "목",&lt;br /&gt; "금",&lt;br /&gt; "토"],&lt;br /&gt; "days-format-wide":[&lt;br /&gt; "일요일",&lt;br /&gt; "월요일",&lt;br /&gt; "화요일",&lt;br /&gt; "수요일",&lt;br /&gt; "목요일",&lt;br /&gt; "금요일",&lt;br /&gt; "토요일"],&lt;br /&gt; "field-weekday":"Day of the Week",&lt;br /&gt; "field-second":"Second",&lt;br /&gt; "field-week":"Week",&lt;br /&gt; "field-year":"Year",&lt;br /&gt; "field-minute":"Minute",&lt;br /&gt; "field-hour":"Hour",&lt;br /&gt; "field-day":"Day",&lt;br /&gt; "field-dayperiod":"Dayperiod",&lt;br /&gt; "field-month":"Month",&lt;br /&gt; "field-era":"Era",&lt;br /&gt; "field-zone":"Zone"};&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorianExtras");&lt;br /&gt;dojo.i18n.calendar.nls.gregorianExtras._built=true;&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorianExtras.ko");&lt;br /&gt;dojo.i18n.calendar.nls.gregorianExtras.ko={&lt;br /&gt; "dateFormat-yearOnly":"yyyy"};&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian._built=true;&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian.ko");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian.ko={&lt;br /&gt; "months-standAlone-narrow":[&lt;br /&gt; "1월",&lt;br /&gt; "2월",&lt;br /&gt; "3월",&lt;br /&gt; "4월",&lt;br /&gt; "5월",&lt;br /&gt; "6월",&lt;br /&gt; "7월",&lt;br /&gt; "8월",&lt;br /&gt; "9월",&lt;br /&gt; "10월",&lt;br /&gt; "11월",&lt;br /&gt; "12월"],&lt;br /&gt; "dateFormat-long":"yyyy'년' M'월' d'일'",&lt;br /&gt; "timeFormat-full":"a hh'시' mm'분' ss'초' z",&lt;br /&gt; "eras":[&lt;br /&gt; "기원전",&lt;br /&gt; "서기"],&lt;br /&gt; "timeFormat-medium":"a hh'시' mm'분'",&lt;br /&gt; "dateFormat-medium":"yyyy. MM. dd",&lt;br /&gt; "am":"오전",&lt;br /&gt; "months-format-abbr":[&lt;br /&gt; "1월",&lt;br /&gt; "2월",&lt;br /&gt; "3월",&lt;br /&gt; "4월",&lt;br /&gt; "5월",&lt;br /&gt; "6월",&lt;br /&gt; "7월",&lt;br /&gt; "8월",&lt;br /&gt; "9월",&lt;br /&gt; "10월",&lt;br /&gt; "11월",&lt;br /&gt; "12월"],&lt;br /&gt; "dateFormat-full":"yyyy'년' M'월' d'일' EEEE",&lt;br /&gt; "days-format-abbr":[&lt;br /&gt; "일",&lt;br /&gt; "월",&lt;br /&gt; "화",&lt;br /&gt; "수",&lt;br /&gt; "목",&lt;br /&gt; "금",&lt;br /&gt; "토"],&lt;br /&gt; "timeFormat-long":"a hh'시' mm'분' ss'초'",&lt;br /&gt; "timeFormat-short":"a hh'시' mm'분'",&lt;br /&gt; "dateFormat-short":"yy. MM. dd",&lt;br /&gt; "pm":"오후",&lt;br /&gt; "months-format-wide":[&lt;br /&gt; "1월",&lt;br /&gt; "2월",&lt;br /&gt; "3월",&lt;br /&gt; "4월",&lt;br /&gt; "5월",&lt;br /&gt; "6월",&lt;br /&gt; "7월",&lt;br /&gt; "8월",&lt;br /&gt; "9월",&lt;br /&gt; "10월",&lt;br /&gt; "11월",&lt;br /&gt; "12월"],&lt;br /&gt; "days-standAlone-narrow":[&lt;br /&gt; "일",&lt;br /&gt; "월",&lt;br /&gt; "화",&lt;br /&gt; "수",&lt;br /&gt; "목",&lt;br /&gt; "금",&lt;br /&gt; "토"],&lt;br /&gt; "days-format-wide":[&lt;br /&gt; "일요일",&lt;br /&gt; "월요일",&lt;br /&gt; "화요일",&lt;br /&gt; "수요일",&lt;br /&gt; "목요일",&lt;br /&gt; "금요일",&lt;br /&gt; "토요일"],&lt;br /&gt; "field-weekday":"Day of the Week",&lt;br /&gt; "field-second":"Second",&lt;br /&gt; "field-week":"Week",&lt;br /&gt; "field-year":"Year",&lt;br /&gt; "field-minute":"Minute",&lt;br /&gt; "field-hour":"Hour",&lt;br /&gt; "field-day":"Day",&lt;br /&gt; "field-dayperiod":"Dayperiod",&lt;br /&gt; "field-month":"Month",&lt;br /&gt; "field-era":"Era",&lt;br /&gt; "field-zone":"Zone"};&lt;br /&gt;dojo.provide("dojo.widget.nls.TimePicker");&lt;br /&gt;dojo.widget.nls.TimePicker._built=true;&lt;br /&gt;dojo.provide("dojo.widget.nls.TimePicker.ko");&lt;br /&gt;dojo.widget.nls.TimePicker.ko={&lt;br /&gt; "any":"any"};&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownTimePicker");&lt;br /&gt;dojo.widget.nls.DropdownTimePicker._built=true;&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownTimePicker.ko");&lt;br /&gt;dojo.widget.nls.DropdownTimePicker.ko={&lt;br /&gt; "selectTime":"Select time"};&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownDatePicker");&lt;br /&gt;dojo.widget.nls.DropdownDatePicker._built=true;&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownDatePicker.ko");&lt;br /&gt;dojo.widget.nls.DropdownDatePicker.ko={&lt;br /&gt; "selectDate":"Select a date"};&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// dojo_ko-kr.js&lt;br /&gt;dojo.provide("nls.dojo_ko-kr");&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian._built=true;&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian.ko_kr");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian.ko_kr={&lt;br /&gt; "months-standAlone-narrow":[&lt;br /&gt; "1월",&lt;br /&gt; "2월",&lt;br /&gt; "3월",&lt;br /&gt; "4월",&lt;br /&gt; "5월",&lt;br /&gt; "6월",&lt;br /&gt; "7월",&lt;br /&gt; "8월",&lt;br /&gt; "9월",&lt;br /&gt; "10월",&lt;br /&gt; "11월",&lt;br /&gt; "12월"],&lt;br /&gt; "dateFormat-long":"yyyy'년' M'월' d'일'",&lt;br /&gt; "timeFormat-full":"a hh'시' mm'분' ss'초' z",&lt;br /&gt; "eras":[&lt;br /&gt; "기원전",&lt;br /&gt; "서기"],&lt;br /&gt; "timeFormat-medium":"a hh'시' mm'분'",&lt;br /&gt; "dateFormat-medium":"yyyy. MM. dd",&lt;br /&gt; "am":"오전",&lt;br /&gt; "months-format-abbr":[&lt;br /&gt; "1월",&lt;br /&gt; "2월",&lt;br /&gt; "3월",&lt;br /&gt; "4월",&lt;br /&gt; "5월",&lt;br /&gt; "6월",&lt;br /&gt; "7월",&lt;br /&gt; "8월",&lt;br /&gt; "9월",&lt;br /&gt; "10월",&lt;br /&gt; "11월",&lt;br /&gt; "12월"],&lt;br /&gt; "dateFormat-full":"yyyy'년' M'월' d'일' EEEE",&lt;br /&gt; "days-format-abbr":[&lt;br /&gt; "일",&lt;br /&gt; "월",&lt;br /&gt; "화",&lt;br /&gt; "수",&lt;br /&gt; "목",&lt;br /&gt; "금",&lt;br /&gt; "토"],&lt;br /&gt; "timeFormat-long":"a hh'시' mm'분' ss'초'",&lt;br /&gt; "timeFormat-short":"a hh'시' mm'분'",&lt;br /&gt; "dateFormat-short":"yy. MM. dd",&lt;br /&gt; "pm":"오후",&lt;br /&gt; "months-format-wide":[&lt;br /&gt; "1월",&lt;br /&gt; "2월",&lt;br /&gt; "3월",&lt;br /&gt; "4월",&lt;br /&gt; "5월",&lt;br /&gt; "6월",&lt;br /&gt; "7월",&lt;br /&gt; "8월",&lt;br /&gt; "9월",&lt;br /&gt; "10월",&lt;br /&gt; "11월",&lt;br /&gt; "12월"],&lt;br /&gt; "days-standAlone-narrow":[&lt;br /&gt; "일",&lt;br /&gt; "월",&lt;br /&gt; "화",&lt;br /&gt; "수",&lt;br /&gt; "목",&lt;br /&gt; "금",&lt;br /&gt; "토"],&lt;br /&gt; "days-format-wide":[&lt;br /&gt; "일요일",&lt;br /&gt; "월요일",&lt;br /&gt; "화요일",&lt;br /&gt; "수요일",&lt;br /&gt; "목요일",&lt;br /&gt; "금요일",&lt;br /&gt; "토요일"],&lt;br /&gt; "field-weekday":"Day of the Week",&lt;br /&gt; "field-second":"Second",&lt;br /&gt; "field-week":"Week",&lt;br /&gt; "field-year":"Year",&lt;br /&gt; "field-minute":"Minute",&lt;br /&gt; "field-hour":"Hour",&lt;br /&gt; "field-day":"Day",&lt;br /&gt; "field-dayperiod":"Dayperiod",&lt;br /&gt; "field-month":"Month",&lt;br /&gt; "field-era":"Era",&lt;br /&gt; "field-zone":"Zone"};&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorianExtras");&lt;br /&gt;dojo.i18n.calendar.nls.gregorianExtras._built=true;&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorianExtras.ko_kr");&lt;br /&gt;dojo.i18n.calendar.nls.gregorianExtras.ko_kr={&lt;br /&gt; "dateFormat-yearOnly":"yyyy"};&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian._built=true;&lt;br /&gt;dojo.provide("dojo.i18n.calendar.nls.gregorian.ko_kr");&lt;br /&gt;dojo.i18n.calendar.nls.gregorian.ko_kr={&lt;br /&gt; "months-standAlone-narrow":[&lt;br /&gt; "1월",&lt;br /&gt; "2월",&lt;br /&gt; "3월",&lt;br /&gt; "4월",&lt;br /&gt; "5월",&lt;br /&gt; "6월",&lt;br /&gt; "7월",&lt;br /&gt; "8월",&lt;br /&gt; "9월",&lt;br /&gt; "10월",&lt;br /&gt; "11월",&lt;br /&gt; "12월"],&lt;br /&gt; "dateFormat-long":"yyyy'년' M'월' d'일'",&lt;br /&gt; "timeFormat-full":"a hh'시' mm'분' ss'초' z",&lt;br /&gt; "eras":[&lt;br /&gt; "기원전",&lt;br /&gt; "서기"],&lt;br /&gt; "timeFormat-medium":"a hh'시' mm'분'",&lt;br /&gt; "dateFormat-medium":"yyyy. MM. dd",&lt;br /&gt; "am":"오전",&lt;br /&gt; "months-format-abbr":[&lt;br /&gt; "1월",&lt;br /&gt; "2월",&lt;br /&gt; "3월",&lt;br /&gt; "4월",&lt;br /&gt; "5월",&lt;br /&gt; "6월",&lt;br /&gt; "7월",&lt;br /&gt; "8월",&lt;br /&gt; "9월",&lt;br /&gt; "10월",&lt;br /&gt; "11월",&lt;br /&gt; "12월"],&lt;br /&gt; "dateFormat-full":"yyyy'년' M'월' d'일' EEEE",&lt;br /&gt; "days-format-abbr":[&lt;br /&gt; "일",&lt;br /&gt; "월",&lt;br /&gt; "화",&lt;br /&gt; "수",&lt;br /&gt; "목",&lt;br /&gt; "금",&lt;br /&gt; "토"],&lt;br /&gt; "timeFormat-long":"a hh'시' mm'분' ss'초'",&lt;br /&gt; "timeFormat-short":"a hh'시' mm'분'",&lt;br /&gt; "dateFormat-short":"yy. MM. dd",&lt;br /&gt; "pm":"오후",&lt;br /&gt; "months-format-wide":[&lt;br /&gt; "1월",&lt;br /&gt; "2월",&lt;br /&gt; "3월",&lt;br /&gt; "4월",&lt;br /&gt; "5월",&lt;br /&gt; "6월",&lt;br /&gt; "7월",&lt;br /&gt; "8월",&lt;br /&gt; "9월",&lt;br /&gt; "10월",&lt;br /&gt; "11월",&lt;br /&gt; "12월"],&lt;br /&gt; "days-standAlone-narrow":[&lt;br /&gt; "일",&lt;br /&gt; "월",&lt;br /&gt; "화",&lt;br /&gt; "수",&lt;br /&gt; "목",&lt;br /&gt; "금",&lt;br /&gt; "토"],&lt;br /&gt; "days-format-wide":[&lt;br /&gt; "일요일",&lt;br /&gt; "월요일",&lt;br /&gt; "화요일",&lt;br /&gt; "수요일",&lt;br /&gt; "목요일",&lt;br /&gt; "금요일",&lt;br /&gt; "토요일"],&lt;br /&gt; "field-weekday":"Day of the Week",&lt;br /&gt; "field-second":"Second",&lt;br /&gt; "field-week":"Week",&lt;br /&gt; "field-year":"Year",&lt;br /&gt; "field-minute":"Minute",&lt;br /&gt; "field-hour":"Hour",&lt;br /&gt; "field-day":"Day",&lt;br /&gt; "field-dayperiod":"Dayperiod",&lt;br /&gt; "field-month":"Month",&lt;br /&gt; "field-era":"Era",&lt;br /&gt; "field-zone":"Zone"};&lt;br /&gt;dojo.provide("dojo.widget.nls.TimePicker");&lt;br /&gt;dojo.widget.nls.TimePicker._built=true;&lt;br /&gt;dojo.provide("dojo.widget.nls.TimePicker.ko_kr");&lt;br /&gt;dojo.widget.nls.TimePicker.ko_kr={&lt;br /&gt; "any":"any"};&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownTimePicker");&lt;br /&gt;dojo.widget.nls.DropdownTimePicker._built=true;&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownTimePicker.ko_kr");&lt;br /&gt;dojo.widget.nls.DropdownTimePicker.ko_kr={&lt;br /&gt; "selectTime":"Select time"};&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownDatePicker");&lt;br /&gt;dojo.widget.nls.DropdownDatePicker._built=true;&lt;br /&gt;dojo.provide("dojo.widget.nls.DropdownDatePicker.ko_kr");&lt;br /&gt;dojo.widget.nls.DropdownDatePicker.ko_kr={&lt;br /&gt; "selectDate":"Select a date"};&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-5074844685106165831?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/5074844685106165831/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=5074844685106165831' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/5074844685106165831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/5074844685106165831'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/10/fix-struts2-dojo-plugin-asian.html' title='Fix Struts2 Dojo Plugin Asian Localization Datetime Picker'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-8620366194213834727</id><published>2009-09-14T14:37:00.001+08:00</published><updated>2009-09-14T14:45:40.570+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Java Kill process</title><content type='html'>&lt;a href="http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/taskkill.mspx?mfr=true"&gt;Microsoft Windows XP - Taskkill&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.cyberciti.biz/faq/kill-process-in-linux-or-terminate-a-process-in-unix-or-linux-systems/"&gt;Kill process in Linux or terminate a process in UNIX or Linux systems&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;//-- Main.java --&lt;br /&gt;import java.io.IOException;&lt;br /&gt;&lt;br /&gt;public class Main {&lt;br /&gt;&lt;br /&gt;  public static void main(String[] args) throws IOException {&lt;br /&gt;    String osName = System.getProperty("os.name");&lt;br /&gt;    String name = args[0];&lt;br /&gt;    String[] commands = null;&lt;br /&gt;    if (osName.startsWith("Windows")) {&lt;br /&gt;      commands = new String[] { "TASKKILL", "/F", "/T", "/IM", name };&lt;br /&gt;    } else {&lt;br /&gt;      commands = new String[] { "/usr/bin/killall", "-9", name };&lt;br /&gt;    }&lt;br /&gt;    ProcessBuilder pb = new ProcessBuilder();&lt;br /&gt;    pb.command(commands);&lt;br /&gt;    pb.start();&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-8620366194213834727?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/8620366194213834727/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=8620366194213834727' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8620366194213834727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8620366194213834727'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/09/java-kill-process.html' title='Java Kill process'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-8453467060706208711</id><published>2009-09-08T11:10:00.015+08:00</published><updated>2009-09-10T14:05:32.116+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Compiling Apache Roller 4.0.1 source code</title><content type='html'>&lt;a href="http://java.sun.com/javase/technologies/desktop/javabeans/jaf/"&gt;JavaBeans Activation Framework (JAF)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://java.sun.com/products/javamail/"&gt;JavaMail API&lt;/a&gt;&lt;br /&gt;&lt;a href="http://roller.apache.org/"&gt;Apache Roller&lt;/a&gt;&lt;br /&gt;&lt;a href="http://cwiki.apache.org/confluence/display/ROLLER/Build+Guide"&gt;Apache Roller Build Guide&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Download and unpack apache-roller-src-4.0.1, JAF and JavaMail.&lt;br /&gt;Copy activation.jar and mail.jar into apache-roller-src-4.0.1/tools/buildtime/&lt;br /&gt;&lt;br /&gt;% cd apache-roller-src-4.0.1/apps/weblogger&lt;br /&gt;% ant dist&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-8453467060706208711?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/8453467060706208711/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=8453467060706208711' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8453467060706208711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8453467060706208711'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/09/compiling-apache-roller-401-source-code.html' title='Compiling Apache Roller 4.0.1 source code'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-8320714707556059791</id><published>2009-08-19T16:45:00.005+08:00</published><updated>2009-09-07T09:40:15.957+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>PHP List Session Variables</title><content type='html'>&lt;pre&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;session_start();&lt;br /&gt;&lt;br /&gt;$key = $_REQUEST["key"];&lt;br /&gt;$value = $_REQUEST["value"];&lt;br /&gt;&lt;br /&gt;if ($key != "" &amp;&amp; $value != "") {&lt;br /&gt;    $_SESSION[$key] = $value;&lt;br /&gt;}&lt;br /&gt;?&gt;&lt;br /&gt;&amp;lt;html&gt;&lt;br /&gt;    &amp;lt;head&gt;&lt;br /&gt;        &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;&lt;br /&gt;        &amp;lt;title&gt;&amp;lt;/title&gt;&lt;br /&gt;    &amp;lt;/head&gt;&lt;br /&gt;    &amp;lt;body&gt;&lt;br /&gt;        &amp;lt;table border="1"&gt;&lt;br /&gt;            &amp;lt;tr&gt;&amp;lt;th&gt;Key&amp;lt;/th&gt;&amp;lt;th&gt;Value&amp;lt;/th&gt;&amp;lt;/tr&gt;&lt;br /&gt;            &amp;lt;?php&lt;br /&gt;            foreach($_SESSION as $k=&gt;$v) {&lt;br /&gt;                $hk = htmlspecialchars($k);&lt;br /&gt;                $hv = htmlspecialchars($v);&lt;br /&gt;                print "&amp;lt;tr&gt;&amp;lt;td&gt;$hk&amp;lt;/td&gt;&amp;lt;td&gt;$hv&amp;lt;/td&gt;&amp;lt;/tr&gt;";&lt;br /&gt;            }&lt;br /&gt;            ?&gt;&lt;br /&gt;        &amp;lt;/table&gt;&lt;br /&gt;        &amp;lt;form method="POST"&gt;&lt;br /&gt;            &amp;lt;table&gt;&lt;br /&gt;                &amp;lt;tr&gt;&amp;lt;td align="right"&gt;Key&amp;lt;/td&gt;&amp;lt;td&gt;&amp;lt;input name="key"&gt;&amp;lt;/td&gt;&amp;lt;/tr&gt;&lt;br /&gt;                &amp;lt;tr&gt;&amp;lt;td align="right"&gt;Value&amp;lt;/td&gt;&amp;lt;td&gt;&amp;lt;input name="value"&gt;&amp;lt;/td&gt;&amp;lt;/tr&gt;&lt;br /&gt;                &amp;lt;tr&gt;&amp;lt;td align="right"&gt;&amp;lt;/td&gt;&amp;lt;td&gt;&amp;lt;input type="submit"&gt;&amp;lt;/td&gt;&amp;lt;/tr&gt;&lt;br /&gt;            &amp;lt;/table&gt;&lt;br /&gt;        &amp;lt;/form&gt;&lt;br /&gt;    &amp;lt;/body&gt;&lt;br /&gt;&amp;lt;/html&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-8320714707556059791?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/8320714707556059791/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=8320714707556059791' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8320714707556059791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/8320714707556059791'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/08/list-session-variables.html' title='PHP List Session Variables'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-2431993687736949224</id><published>2009-08-06T11:26:00.003+08:00</published><updated>2009-08-06T11:31:12.575+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Use ConsoleFactory and ConsolePageParticipant Extension</title><content type='html'>&lt;a href="http://www.diybl.com/course/3_program/java/javashl/2007123/89735.html"&gt;实现RCP自身的控制台&lt;/a&gt;&lt;pre&gt;&lt;br /&gt;New Plug-in Project&lt;br /&gt;  Project Name: hello.console  &lt;br /&gt;&lt;br /&gt;Add org.eclipse.ui.console Dependency&lt;br /&gt;// -- META-INF/MANIFEST.MF --&lt;br /&gt;Manifest-Version: 1.0&lt;br /&gt;Bundle-ManifestVersion: 2&lt;br /&gt;Bundle-Name: Console&lt;br /&gt;Bundle-SymbolicName: hello.console;singleton:=true&lt;br /&gt;Bundle-Version: 1.0.0.qualifier&lt;br /&gt;Bundle-RequiredExecutionEnvironment: JavaSE-1.6&lt;br /&gt;Require-Bundle: org.eclipse.core.runtime,&lt;br /&gt; org.eclipse.ui,&lt;br /&gt; org.eclipse.ui.console&lt;br /&gt; &lt;br /&gt;  &lt;br /&gt;Add org.eclipse.ui.console.consoleFactories Extension&lt;br /&gt;Add org.eclipse.ui.console.consolePageParticipants Extension&lt;br /&gt;// -- plugin.xml --&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;br /&gt;&amp;lt;?eclipse version="3.4"?&gt;&lt;br /&gt;&amp;lt;plugin&gt;&lt;br /&gt;   &amp;lt;extension&lt;br /&gt;         point="org.eclipse.ui.console.consoleFactories"&gt;&lt;br /&gt;      &amp;lt;consoleFactory&lt;br /&gt;            class="hello.console.ConsoleFactory"&lt;br /&gt;            label="New Hello Console"&gt;&lt;br /&gt;      &amp;lt;/consoleFactory&gt;&lt;br /&gt;   &amp;lt;/extension&gt;&lt;br /&gt;   &amp;lt;extension&lt;br /&gt;         point="org.eclipse.ui.console.consolePageParticipants"&gt;&lt;br /&gt;      &amp;lt;consolePageParticipant&lt;br /&gt;            class="hello.console.ConsolePageParticipant"&lt;br /&gt;            id="hello.console.consolePageParticipant"&gt;&lt;br /&gt;         &amp;lt;enablement&gt;&lt;br /&gt;            &amp;lt;instanceof&lt;br /&gt;                  value="org.eclipse.ui.console.IOConsole"&gt;&lt;br /&gt;            &amp;lt;/instanceof&gt;&amp;lt;/enablement&gt;&lt;br /&gt;      &amp;lt;/consolePageParticipant&gt;&lt;br /&gt;   &amp;lt;/extension&gt;&lt;br /&gt;   &amp;lt;extension&lt;br /&gt;         point="org.eclipse.ui.perspectiveExtensions"&gt;&lt;br /&gt;      &amp;lt;perspectiveExtension&lt;br /&gt;            targetID="org.eclipse.ui.resourcePerspective"&gt;&lt;br /&gt;         &amp;lt;view&lt;br /&gt;               id="org.eclipse.ui.console.ConsoleView"&lt;br /&gt;               minimized="false"&lt;br /&gt;               relationship="top"&lt;br /&gt;               relative="org.eclipse.ui.views.TaskList"&lt;br /&gt;               visible="true"&gt;&lt;br /&gt;         &amp;lt;/view&gt;&lt;br /&gt;      &amp;lt;/perspectiveExtension&gt;&lt;br /&gt;   &amp;lt;/extension&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/plugin&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// -- src/hello/console/ConsoleFactory.java --&lt;br /&gt;package hello.console;&lt;br /&gt;&lt;br /&gt;import org.eclipse.ui.console.ConsolePlugin;&lt;br /&gt;import org.eclipse.ui.console.IConsole;&lt;br /&gt;import org.eclipse.ui.console.IConsoleFactory;&lt;br /&gt;import org.eclipse.ui.console.IConsoleManager;&lt;br /&gt;import org.eclipse.ui.console.IOConsole;&lt;br /&gt;&lt;br /&gt;public class ConsoleFactory implements IConsoleFactory {&lt;br /&gt;&lt;br /&gt;  @Override public void openConsole() {&lt;br /&gt;    IConsoleManager consoleManager = ConsolePlugin.getDefault().getConsoleManager();&lt;br /&gt;    IConsole console = new IOConsole("Hello Console", null);&lt;br /&gt;    consoleManager.addConsoles(new IConsole[]{console});&lt;br /&gt;    consoleManager.showConsoleView(console);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// -- src/hello/console/ConsolePageParticipant.java --&lt;br /&gt;package hello.console;&lt;br /&gt;&lt;br /&gt;import org.eclipse.jface.action.IAction;&lt;br /&gt;import org.eclipse.jface.action.IToolBarManager;&lt;br /&gt;import org.eclipse.ui.console.IConsole;&lt;br /&gt;import org.eclipse.ui.console.IConsoleConstants;&lt;br /&gt;import org.eclipse.ui.console.IConsolePageParticipant;&lt;br /&gt;import org.eclipse.ui.console.actions.CloseConsoleAction;&lt;br /&gt;import org.eclipse.ui.part.IPageBookViewPage;&lt;br /&gt;&lt;br /&gt;public class ConsolePageParticipant implements IConsolePageParticipant {&lt;br /&gt;&lt;br /&gt;  @Override public void activated() {}&lt;br /&gt;&lt;br /&gt;  @Override public void deactivated() {}&lt;br /&gt;&lt;br /&gt;  @Override public void dispose() {}&lt;br /&gt;&lt;br /&gt;  @Override public void init(IPageBookViewPage page, IConsole console) {&lt;br /&gt;    IToolBarManager manager = page.getSite().getActionBars().getToolBarManager();&lt;br /&gt;    IAction fCloseAction = new CloseConsoleAction(console);&lt;br /&gt;    manager.appendToGroup(IConsoleConstants.LAUNCH_GROUP, fCloseAction);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  @Override public Object getAdapter(Class adapter) {  return null; }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-2431993687736949224?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/2431993687736949224/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=2431993687736949224' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/2431993687736949224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/2431993687736949224'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/08/use-consolefactory-and.html' title='Use ConsoleFactory and ConsolePageParticipant Extension'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-5883669046133775106</id><published>2009-07-21T13:57:00.002+08:00</published><updated>2009-07-22T13:32:41.314+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Show Eclipse Plug-in Icons</title><content type='html'>&lt;pre&gt;// New Plug-in Project with a view Templement&lt;br /&gt;public void createPartControl(Composite parent) {&lt;br /&gt;  viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);&lt;br /&gt;  Table table = viewer.getTable();&lt;br /&gt;  AbstractUIPlugin plugin = Activator.getDefault();&lt;br /&gt;  ImageRegistry imageRegistry = plugin.getImageRegistry();&lt;br /&gt;  Bundle[] bundles = WorkbenchPlugin.getDefault().getBundles();&lt;br /&gt;  for (Bundle bundle : bundles) {&lt;br /&gt;    Enumeration&amp;lt;URL&gt; entries = bundle.findEntries("icons", "*.gif",  true);&lt;br /&gt;    if (entries != null) {&lt;br /&gt;      while (entries.hasMoreElements()) {&lt;br /&gt;        URL element = entries.nextElement();&lt;br /&gt;        String path = element.getPath();&lt;br /&gt;        String symbolicName = bundle.getSymbolicName();&lt;br /&gt;        String key = symbolicName + path;&lt;br /&gt;        try {&lt;br /&gt;          Image image = imageRegistry.get(key);&lt;br /&gt;          if (image == null) {&lt;br /&gt;            ImageDescriptor imageDescriptor = AbstractUIPlugin&lt;br /&gt;                .imageDescriptorFromPlugin(symbolicName, path);&lt;br /&gt;            imageRegistry.put(key, imageDescriptor);&lt;br /&gt;            image = imageRegistry.get(key);&lt;br /&gt;          }&lt;br /&gt;          TableItem ti = new TableItem(table, SWT.NONE);&lt;br /&gt;          ti.setImage(imageRegistry.get(key));&lt;br /&gt;          ti.setText(key);&lt;br /&gt;        } catch (Exception e) {&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-5883669046133775106?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/5883669046133775106/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=5883669046133775106' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/5883669046133775106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/5883669046133775106'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/07/show-eclipse-plug-in-icons.html' title='Show Eclipse Plug-in Icons'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-4695418665613656539</id><published>2009-07-20T16:40:00.005+08:00</published><updated>2009-07-21T13:57:33.917+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Show Eclipse SharedImages</title><content type='html'>&lt;a href="http://www.eclipse.org/articles/Article-Using%20Images%20In%20Eclipse/Using%20Images%20In%20Eclipse.html"&gt;Using Images in the Eclipse UI&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.eclipse.org/articles/Article-UI-Guidelines/Contents.html"&gt;Eclipse User Interface Guidelines&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blog.cypal-solutions.com/2008/02/eclipse-icons.html"&gt;Eclipse Tips - Old: Eclipse icons&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;// New Plug-in Project with a view Templement&lt;br /&gt;public void createPartControl(Composite parent) {&lt;br /&gt;  viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL  | SWT.V_SCROLL);&lt;br /&gt;  ISharedImages sharedImages = PlatformUI.getWorkbench().getSharedImages();&lt;br /&gt;  Table table = viewer.getTable();&lt;br /&gt;&lt;br /&gt;  Field[] fields = ISharedImages.class.getFields();&lt;br /&gt;  for (Field field : fields) {&lt;br /&gt;    try {&lt;br /&gt;      String name = (String) field.get(sharedImages);&lt;br /&gt;      if (name.endsWith("_HOVER")) {&lt;br /&gt;        continue;&lt;br /&gt;      }&lt;br /&gt;      TableItem ti = new TableItem(table, SWT.NONE);&lt;br /&gt;      ti.setText(name);&lt;br /&gt;      ti.setImage(sharedImages.getImage(name));&lt;br /&gt;    } catch (Exception e) {&lt;br /&gt;      e.printStackTrace();&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-4695418665613656539?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/4695418665613656539/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=4695418665613656539' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/4695418665613656539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/4695418665613656539'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/07/show-eclipse-sharedimages.html' title='Show Eclipse SharedImages'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-962872902237355039</id><published>2009-07-17T22:58:00.000+08:00</published><updated>2009-07-17T22:59:21.297+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Java Calendar</title><content type='html'>&lt;pre&gt;&lt;br /&gt;import java.text.DateFormatSymbols;&lt;br /&gt;import java.util.Calendar;&lt;br /&gt;import java.util.Locale;&lt;br /&gt;&lt;br /&gt;public class Main {&lt;br /&gt;&lt;br /&gt;  private static Locale locale = Locale.getDefault();&lt;br /&gt;  private static String[] weekdays = DateFormatSymbols.getInstance(locale).getShortWeekdays();&lt;br /&gt;  private static StringBuilder sb = new StringBuilder();&lt;br /&gt;&lt;br /&gt;  public static void main(String[] args) throws Exception {&lt;br /&gt;    Calendar calendar = Calendar.getInstance(locale);&lt;br /&gt;&lt;br /&gt;    for (int i = Calendar.JANUARY; i &lt;= Calendar.DECEMBER; i++) {&lt;br /&gt;      calendar.set(Calendar.MONTH, i);&lt;br /&gt;      printCalendar(calendar);&lt;br /&gt;    }&lt;br /&gt;    System.out.println(sb);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  private static void printCalendar(Calendar calendar) {&lt;br /&gt;    int week = calendar.getActualMaximum(Calendar.DAY_OF_WEEK);&lt;br /&gt;    int maxDayOfMonth = calendar.getActualMaximum(Calendar.DATE);&lt;br /&gt;    &lt;br /&gt;    String era = calendar.getDisplayName(Calendar.ERA, Calendar.ALL_STYLES,  locale);&lt;br /&gt;    int year = calendar.get(Calendar.YEAR);&lt;br /&gt;    String month = calendar.getDisplayName(Calendar.MONTH, Calendar.ALL_STYLES, locale);&lt;br /&gt;    sb.append(String.format("%1$s %2$d %3$s\r\n", era, year, month));&lt;br /&gt;    &lt;br /&gt;    for (String weekStr : weekdays) {&lt;br /&gt;      sb.append(weekStr).append('\t');&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    calendar.set(Calendar.DATE, 1);&lt;br /&gt;    int weekOfYear = calendar.get(Calendar.WEEK_OF_YEAR);&lt;br /&gt;    int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 2;&lt;br /&gt;    int modWeek = (week - dayOfWeek) % week;&lt;br /&gt;&lt;br /&gt;    for (int i = -dayOfWeek; i &lt;= maxDayOfMonth; i++) {&lt;br /&gt;      if ((week + i) % week == modWeek) {&lt;br /&gt;        sb.append("\r\n").append(weekOfYear).append('\t');&lt;br /&gt;        weekOfYear++;&lt;br /&gt;      }&lt;br /&gt;      if (i &gt; 0) {&lt;br /&gt;        sb.append(String.format("%d\t", i));&lt;br /&gt;      } else {&lt;br /&gt;        sb.append("\t");&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;    sb.append("\r\n\r\n");&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-962872902237355039?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/962872902237355039/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=962872902237355039' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/962872902237355039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/962872902237355039'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/07/java-calendar.html' title='Java Calendar'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8111497590625307008.post-7858141530393720021</id><published>2009-07-16T14:19:00.003+08:00</published><updated>2009-07-16T14:24:34.453+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>使用 Field 直接改變 object value</title><content type='html'>&lt;pre&gt;&lt;br /&gt;import java.lang.reflect.Field;&lt;br /&gt;&lt;br /&gt;public class Main {&lt;br /&gt;&lt;br /&gt;  public static void main(String[] args) throws Exception {&lt;br /&gt;    MyClass o = new MyClass();&lt;br /&gt;    Field field = MyClass.class.getDeclaredField("name");&lt;br /&gt;    field.setAccessible(true);&lt;br /&gt;    field.set(o, "Hello World");&lt;br /&gt;    System.out.println(field.get(o));&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class MyClass {&lt;br /&gt;  private String name;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8111497590625307008-7858141530393720021?l=solnone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://solnone.blogspot.com/feeds/7858141530393720021/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8111497590625307008&amp;postID=7858141530393720021' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7858141530393720021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8111497590625307008/posts/default/7858141530393720021'/><link rel='alternate' type='text/html' href='http://solnone.blogspot.com/2009/07/field-object-value.html' title='使用 Field 直接改變 object value'/><author><name>Solnone</name><uri>http://www.blogger.com/profile/13360140827676556873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
