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

<channel>
	<title>Calm Hill &#187; နည်းပညာ</title>
	<atom:link href="http://blog.calmhill.info/category/%e1%80%94%e1%80%8a%e1%80%ba%e1%80%b8%e1%80%95%e1%80%8a%e1%80%ac/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.calmhill.info</link>
	<description>The way of my life ...</description>
	<lastBuildDate>Wed, 01 Feb 2012 03:50:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>DLL to Lib</title>
		<link>http://blog.calmhill.info/2012/01/23/dll-to-lib/</link>
		<comments>http://blog.calmhill.info/2012/01/23/dll-to-lib/#comments</comments>
		<pubDate>Sun, 22 Jan 2012 18:50:26 +0000</pubDate>
		<dc:creator>CalmHill</dc:creator>
				<category><![CDATA[နည်းပညာ]]></category>

		<guid isPermaLink="false">http://blog.calmhill.info/?p=515</guid>
		<description><![CDATA[Windows ပေါ်မှာ Build လုပ်ရတာ တကယ်တော့ လွယ်လှတယ်မဟုတ်ဘူး Error အများဆုံးပေးပါတယ်။ Source Code တစ်ချို့ကလည်း Windows ပေါ်မှာ Build လုပ်ဖို့အတွက် Makefile ဒါမှမဟုတ် Visual Studion Project သတ်သတ်ပေးထားပေမယ့် မပါလာရင်တော့ တကယ်ပဲရွာလည်ပါပြီ GNU Autotools တွေကကောင်းပေမယ့် VC အတွက်ကတော့ အဆင်မပြေပါဘူး configure လုပ်လို့မရပါဘူး အဲဒီတော့တကယ်လို့ VC နဲ့ဘယ်လိုမှ Build လုပ်လို့မရရင်တော့ MinGW နဲ့ Build လုပ်ယူရင်ရတတ်ပါတယ် &#8230; <a href="http://blog.calmhill.info/2012/01/23/dll-to-lib/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<span style="font-family:'Masterpiece Uni Sans',Yunghkio,Myanmar3, Parabaik, Padauk, 'WinUni Innwa', 'Win Uni Innwa', 'MyMyanmar Unicode',Myanmar2;"><p>Windows ပေါ်မှာ Build လုပ်ရတာ တကယ်တော့ လွယ်လှတယ်မဟုတ်ဘူး Error အများဆုံးပေးပါတယ်။ Source Code တစ်ချို့ကလည်း Windows ပေါ်မှာ Build လုပ်ဖို့အတွက် Makefile ဒါမှမဟုတ် Visual Studion Project သတ်သတ်ပေးထားပေမယ့် မပါလာရင်တော့ တကယ်ပဲရွာလည်ပါပြီ GNU Autotools တွေကကောင်းပေမယ့် VC အတွက်ကတော့ အဆင်မပြေပါဘူး configure လုပ်လို့မရပါဘူး အဲဒီတော့တကယ်လို့ VC နဲ့ဘယ်လိုမှ Build လုပ်လို့မရရင်တော့ MinGW နဲ့ Build လုပ်ယူရင်ရတတ်ပါတယ် MinGW ကလည်း 64bits အတွက်က အမြဲတမ်းတော့ အဆင်မပြေတတ်ပါဘူး အဲဒီတော့ Windows ပေါ်မှာက VC ဘယ်မှမရမှသာ MinGW နဲ့လုပ်တာ ကောင်းပါတယ်။ MinGW နဲ့ကထွက်လာရင် exe or dll ထွက်လာတယ် အဲဒီ့မှာ dll တွေကအလုပ်လုပ်ပေမယ့် အဲဒီ့ dll တွေကို အခြားသော VC နဲ့ Build လုပ်မယ့်နေရာမှာ ယူသုံးချင်ရတော့ မရပြန်ပါဘူး သူ့အတွက်က lib လိုပါတယ်။ ဒါကလည်း dll ကို lib ပြန်ထုတ်လို့ရပါတယ် နည်းနည်းတော့ ကြံရဖန်ရတယ်။ Visual Studio မှာပါတဲ့ lib ဆိုတဲ့ Command နဲ့ lib ထုတ်ယူလို့ရပါတယ် ဒါပေမယ့် dll ထဲမှာပါတဲ့ defination စာရင်းကိုထည့်ပေးဖို့လိုအပ်ပါတယ် ဒါလည်းပြန်ထုတ်ယူလို့ရပါတယ်။ စမ်းကြည့်တဲ့အနေနဲ့ libjpeg ကို MinGW64 နဲ့ Build လုပ်ထားတယ်။ အရင်ဆုံးအနေနဲ့ dll ထဲကနေ defination စာရင်းကို အရင်ထုတ်ရမယ်။ dumpbin command နဲ့အလွယ်တကူ ထုတ်လို့ရပါတယ် ထွက်လာတဲ့ Results တွေကိုမလိုတာတွေ ဖျက်ရမှာပေါ့။ အလွယ်ဆုံးကတော့ အောက်မှာပြထားသလို Command Prompt ကို Quick Edit On ထားပြီး Select လုပ်ကူးလိုက်တာ အဆင်ပြေပါတယ်။ </p>
<div id="attachment_516" class="wp-caption aligncenter" style="width: 294px"><a href="http://blog.calmhill.info/wp-content/uploads/2012/01/dumpbin.png" rel="lightbox[515]"><img src="http://blog.calmhill.info/wp-content/uploads/2012/01/dumpbin-284x300.png" alt="Dumpbin" title="Dumpbin" width="284" height="300" class="size-medium wp-image-516" /></a><p class="wp-caption-text">Dumpbin</p></div>
<p>Name တွေကိုပဲကူးရပါမယ် တစ်ခြားဟာမပါရပါဘူး။ Text file အသစ်တခုယူ ပထမဆုံးတစ်ကြောင်းမှာ EXPORTS လို့ရေး အောက်ကနေ စောစောကကူးထားတဲ့ Name တွေကိုကူးထည့် ပြီးရင်တော့ extension ကို def နဲ့သိမ်းပါ။ def ရရင်တော့ lib ထုတ်လို့ရပါပြီ။</p>
<pre>lib /def:libjpeg-8.def /out:libjpeg-8.lib /machine:x64</pre>
<p>lib command ကိုသုံးပြီးထုတ်ရင် lib file ရလာပါလိမ်မယ် အဲဒီ့ဖိုင်ကိုရရင်တော့ VC နဲ့ Build ရင်လည်း အဲဒီ့ Library တွေကို ကိုယ့်ရဲ့ Project ထဲကနေ Reference လုပ်ပြီးတော့ ယူသုံးလို့ရနေပါပြီ။</p>
<p>Reference:</p>
<p>http://wiki.videolan.org/GenerateLibFromDll</p>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.calmhill.info/2012/01/23/dll-to-lib/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building Python extension with Windows SDK 7.1</title>
		<link>http://blog.calmhill.info/2012/01/21/building-python-extension-with-windows-sdk-7-1/</link>
		<comments>http://blog.calmhill.info/2012/01/21/building-python-extension-with-windows-sdk-7-1/#comments</comments>
		<pubDate>Sat, 21 Jan 2012 06:09:16 +0000</pubDate>
		<dc:creator>CalmHill</dc:creator>
				<category><![CDATA[နည်းပညာ]]></category>

		<guid isPermaLink="false">http://blog.calmhill.info/?p=509</guid>
		<description><![CDATA[Windows ပေါ်မှာ Python 64 bits သုံးနေရင် ပြဿနာက Extension တွေက 64 bits မရှိတဲ့ပြဿနာ ခဏခဏကြုံရတယ်။ 64 bits Build လုပ်ပြီးသားတွေကို Unofficial ပေးတဲ့ဆိုက်တွေလည်းရှိပါတယ် ဒါပေမယ့် လွယ်လွယ်ကူကူနဲ့ Dependency မများရင်ကိုယ်တိုင်လည်း Build လုပ်ယူလို့ရတာပါပဲ။ အဲဒီ့မှာအခက်အခဲရှိတာက MinGW32 ကိုအခုအချိန်မှာ အတော်များများက Support လုပ်တဲ့အတွက် ဘာမှမဖြစ်ပေမယ့် 64 bits လိုချင်တဲ့အတွက် MinGW64 သုံးမယ်ဆိုရင်တော့ ထင်သလောက်အဆင်မပြေပါဘူး MinGW32 ရဲ့ &#8230; <a href="http://blog.calmhill.info/2012/01/21/building-python-extension-with-windows-sdk-7-1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<span style="font-family:'Masterpiece Uni Sans',Yunghkio,Myanmar3, Parabaik, Padauk, 'WinUni Innwa', 'Win Uni Innwa', 'MyMyanmar Unicode',Myanmar2;"><p>Windows ပေါ်မှာ Python 64 bits သုံးနေရင် ပြဿနာက Extension တွေက 64 bits မရှိတဲ့ပြဿနာ ခဏခဏကြုံရတယ်။ 64 bits Build လုပ်ပြီးသားတွေကို Unofficial ပေးတဲ့ဆိုက်တွေလည်းရှိပါတယ် ဒါပေမယ့် လွယ်လွယ်ကူကူနဲ့ Dependency မများရင်ကိုယ်တိုင်လည်း Build လုပ်ယူလို့ရတာပါပဲ။ အဲဒီ့မှာအခက်အခဲရှိတာက MinGW32 ကိုအခုအချိန်မှာ အတော်များများက Support လုပ်တဲ့အတွက် ဘာမှမဖြစ်ပေမယ့် 64 bits လိုချင်တဲ့အတွက် MinGW64 သုံးမယ်ဆိုရင်တော့ ထင်သလောက်အဆင်မပြေပါဘူး MinGW32 ရဲ့ Configuration ဟာ MinGW64 နဲ့တိုက်ရိုက် အဆင်မပြေတာရှိပါတယ်။ ဒီတော့အကောင်းဆုံးကတော့ Visual C++ Compiler နဲ့ Build လုပ်တာအကောင်းဆုံးပါပဲ။ Python 2.7 ဟာ Visual Studio 2008 နဲ့ Build လုပ်ထားတဲ့အတွက် သူအတွက် Extension တွေကိုလည်း အတူတူပဲ VS 2008 နဲ့ပဲ Build လုပ်မှရပါတယ်။ 64 bits Build လုပ်ဖို့အတွက် အနည်းဆုံးအနေနဲ့ Visual C++ Express 2008 အပြင် Windows SDK လိုပါတယ် Windows 7 သုံးနေတဲ့အတွက် Microsoft Windows SDK for Windows 7 and .NET Framework 4 နဲ့ Build လုပ်ပါတယ်။</p>
<p>အဲဒီ့နှစ်ခုကို Install လုပ်ပြီးရင်တော့ ချက်ချင်းသုံးလို့မရသေးပါဘူး 64 bits အတွက် Configure လုပ်ဖို့အတွက် နည်းနည်းကြံရဖန်ရပါတယ်။ Visual Studio ကို Default Path မှာသာ Install လုပ်ထားမယ်ဆိုရင် C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC အောက်မှာ vcvarsall.bat ဆိုတာရှိပါတယ် အဲဒီ့ဖိုင်ထဲမှာ amd64 ဆိုရင် bin/amd64/vcvarsamd64.bat ကိုသွားခေါ်ခိုင်းတယ်။ ဒါပေမယ့် Windows SDK ထဲက 64 bits compiler and linker တွေက bin/amd64 အောက်မှာမရှိပဲ တစ်ခြားနေရာမှာရှိနေပါတယ် အဲဒါကြောင့် C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\ အောက်မှာ amd64 ဆိုပြီး Folder တစ်ခုထပ်ထည့် နောက်ပြီးတော့ amd64 ထဲမှာ vcvarsamd64.bat ဆိုပြီးဖိုင်တစ်ခု အသစ်ထည့်ရပါမယ်။ 64 bits Environment ကို Initialize လုပ်တဲ့ Script တွေက Windows SDK ထဲမှာရှိပြီးသားဖြစ်တဲ့အတွက် အဲဒါကိုပဲလှမ်းခေါ်ရင်ရပါတယ်။ vcvarsamd64.bat ထဲမှာ </p>
<pre>call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 /Release</pre>
<p>ဆိုပြီးတစ်ကြောင်းထည့်ရေးလိုက်ရင် ရပါပြီ။ ဒါဆိုရင် Python ထဲကနေ Build လုပ်ကြည့်ရင်ရပါပြီ လွယ်လွယ်ကူကူဆိုရင် PyCrypto ရဲ့ Source ကို Download လုပ် setup.py build ဆိုလုပ်ကြည့်ရင် ရနေပါလိမ့်မယ်။</p>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.calmhill.info/2012/01/21/building-python-extension-with-windows-sdk-7-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to manage Git Repository Server with Gitosis?</title>
		<link>http://blog.calmhill.info/2011/12/12/how-to-manage-git-repository-server-with-gitosis/</link>
		<comments>http://blog.calmhill.info/2011/12/12/how-to-manage-git-repository-server-with-gitosis/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 09:29:33 +0000</pubDate>
		<dc:creator>CalmHill</dc:creator>
				<category><![CDATA[နည်းပညာ]]></category>

		<guid isPermaLink="false">http://blog.calmhill.info/?p=492</guid>
		<description><![CDATA[ပရောဂျက်တစ်ခုချင်းအလိုက် Permission မလိုအပ်ရင်နဲ့ လူနည်းရင်တော့ Authorized Key နဲ့အဆင်ပြေပါတယ်။ ဒါပေမယ့် Permission တွေလိုအပ်လာပြီ နောက်ပြီးတော့ Repository Initialization တွေ User Management တွေလိုလာရင်တော့ Authorized Key နဲ့မလုံလောက်တော့ပါဘူး။ အသုံးများတာကတော့ Gitosis နဲ့ Gitolite သုံးကြပါတယ် ကောင်းတာကတော့ နှစ်ခုလုံးကောင်းပါတယ် တစ်ခုတော့ရှိပါတယ် Gitosis ကတော့ Development ရပ်နေတာ အတော်လေးကြာနေပါပြီ။ Gitosis ကို Setup လုပ်ရတာ သိပ်မခက်ပါဘူး အရင်ဆုံးတော့ Gitosis &#8230; <a href="http://blog.calmhill.info/2011/12/12/how-to-manage-git-repository-server-with-gitosis/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<span style="font-family:'Masterpiece Uni Sans',Yunghkio,Myanmar3, Parabaik, Padauk, 'WinUni Innwa', 'Win Uni Innwa', 'MyMyanmar Unicode',Myanmar2;"><p>ပရောဂျက်တစ်ခုချင်းအလိုက် Permission မလိုအပ်ရင်နဲ့ လူနည်းရင်တော့ Authorized Key နဲ့အဆင်ပြေပါတယ်။ ဒါပေမယ့် Permission တွေလိုအပ်လာပြီ နောက်ပြီးတော့ Repository Initialization တွေ User Management တွေလိုလာရင်တော့ Authorized Key နဲ့မလုံလောက်တော့ပါဘူး။ အသုံးများတာကတော့ Gitosis နဲ့ Gitolite သုံးကြပါတယ် ကောင်းတာကတော့ နှစ်ခုလုံးကောင်းပါတယ် တစ်ခုတော့ရှိပါတယ် Gitosis ကတော့ Development ရပ်နေတာ အတော်လေးကြာနေပါပြီ။</p>
<p>Gitosis ကို Setup လုပ်ရတာ သိပ်မခက်ပါဘူး အရင်ဆုံးတော့ Gitosis ကိုသူ့ရဲ့ Repository ကနေ Clone လုပ်ယူရပါတယ်။ အကယ်လို့ Ubuntu လိုသုံးရင်တော့ သူ့ရဲ့ Repo ထဲကနေ apt-get နဲ့ Install လုပ်လို့ရပါတယ် ဒါပေမယ့်သူက User creation တွေပါလုပ်ကုန်လို့ မလိုတဲ့ဟာတွေပါလို့ ကိုယ်တိုင်ပဲ Install လုပ်ယူတာကပိုပြီး ကိစ္စရှင်းပါတယ်။ အောက်မှာပြထားတဲ့ Commands တွေနဲ့ Gitosis ကို Install လုပ်ယူလိုက်ပါ။</p>
<blockquote><p>
root@gitserver:~# git clone git://eagain.net/gitosis.git<br />
root@gitserver:~# cd gitosis<br />
root@gitserver:~# python setup.py install
</p></blockquote>
<p>Gitosis ကို Install လုပ်ပြီးပြီဆိုရင်တော့ အရင်ကလုပ်ထားတဲ့ Authorized Key တွေကို ပြန်ပြင်ဖို့လိုပါလိမ့်မယ်။ အရင်ကရေးထားတဲ့ authorized_keys ကိုတစ်နေရာမှာ Backup လုပ်ထားဖို့လိုပါမယ်။ Gitosis မှာတော့ Admin လုပ့်မယ့်လူတစ်ယောက်ကိုတော့ authorized_keys မှာထည့်ပေးပါတယ်။ Admin တာဝန်ယူမယ့်လူရဲ့ Key ဟာ Git user ရဲ့ home အောက်မှာ id_rsa_admin.pub လို့ရှိနေတယ်လို့ ယူဆထားပါတယ်။ နောက်ပြီးတော့ Git User Account ကို Shell Access ပြန်ပေးဖို့လိုပါတယ်။ Gitosis ကိုအောက်မှာပြထားတဲ့ Commands တွေနဲ့ Initialize လုပ်လို့ရပါတယ်။</p>
<blockquote><p>
root@gitserver:~# chsh -s /bin/bash git<br />
root@gitserver:~# su git<br />
git@gitserver:~$ cd ~/<br />
git@gitserver:~$ mv ~/.ssh/authorized_keys ~/.ssh/authorized_keys.backup<br />
git@gitserver:~$ gitosis-init < id_rsa_admin.pub<br />
git@gitserver:~$ chmod 755 ~/repositories/gitosis-admin.git/hooks/post-update
</p></blockquote>
<p>Gitosis မှာထူးခြားတာက Repository တွေကို Manage လုပ်တာက Git နဲ့ပဲလုပ်ပါတယ် Git Server ပေါ်မှာ Management လုပ်ဖို့အတွက် သီးသန့်အနေနဲ့ Repository တစ်ခုပါလာပြီးဖြစ်ပြီးတော့ အဲဒီ့ Repository ထဲက File တွေကိုလိုအပ်သလိုပြင် ပြီးရင်တော့ ပြန်ပြီးတော့ Server ပေါ်ကို Push လုပ်ရပါတယ်။ အောက်မှာပြထားသလို Clone လုပ်ယူလို့ရပါတယ် Clone လုပ်ဖို့အတွက်တော့ Gitosis ကို Configure လုပ်ခဲ့တုံးက id_rsa_admin.pub ရဲ့ပိုင်ရှင်ဖြစ်ဖို့လိုပါမယ်။</p>
<blockquote><p>
git_admin@gitclient:~$ clone git@gitserver:gitosis-admin.git
</p></blockquote>
<p>gitosis-admin ဆိုတဲ့ Repository ထဲမှာ ရှုပ်ရှုပ်ထွေးထွေးမပါပါဘူး keydir ဆိုတဲ့ Folder တစ်ခုရယ် gitosis.conf ဆိုတဲ့ ဖိုင်တစ်ခုရယ်ပဲပါတယ်။ User တစ်ယောက်အသစ်ထည့်ချင်ရင် အရင်ကဆိုရင် Public Key ကို authorized_keys ထဲကိုသွားရေးပေးရတယ်။ Gitosis မှာတော့ username.pub ဆိုပြီး Public Key File ကိုနာမည်ပေးပြီး keydir ထဲကိုကူးထည့် ဆာဗာပေါ်ကိုပြန်ပြီးတော့ Push လုပ်ပေးလိုက်ရုံပါပဲ။ Repository တစ်ခု အသစ်လုပ်မယ်ဆိုရင် အောက်မှာပြထားသလို gitosis.conf ထဲမှာသွားရေးပေးရပါတယ်။ ပြီးရင်တော့ Server ပေါ်ကိုပြန်ပြီးတော့ Push လုပ်ပါ အဲဒါဆိုရင် Gitosis ကလိုအပ်တာတွေကို Initialize လုပ်ပါလိမ့်မယ်။</p>
<blockquote><p>
[group my_repo_write]<br />
writable = myrepo<br />
members = user1 user2</p>
<p>[group my_repo_read]<br />
readonly = myrepo<br />
members = user3 user4
</p></blockquote>
<p>အဲဒါဆိုရင် myrepo ဆိုတဲ့ Repository ထဲမှာ user1 နဲ့ user2 တို့နှစ်ယောက်ဟာ ရေးခွင့်ဖတ်ခွင့်ရှိတယ်။ user3 နဲ့ user4 ကတော့ ဖတ်ခွင့်ပဲရှိတယ်။ အရင်တုံးက Shell တစ်ခုကို Share လုပ်နေတုံးကဆိုရင် အဲလိုဖတ်ခွင့်ပဲပေးပြီး ရေးခွင့်မပေးချင်လို့မရပါဘူး အခုတော့ရပါတယ်။ အရင်တုံးကလို myrepo ကို Server ပေါ်မှာ Initialize လည်းလုပ်ပေးဖို့မလိုအပ်ပါဘူး Repository မရှိသေးလည်း ပထမဆုံးအကြိမ် Client ကနေ Push လုပ်တဲ့အချိန်မှာ Gitosis ကပဲ လုပ်သွားပါလိမ့်မယ်။ အဲဒါတွေပြီးရင်တော့ အောက်မှာပြထားသလို သုံးလို့ရပါပြီ။</p>
<blockquote><p>
user1@gitclient:~$ git init<br />
user1@gitclient:~$ git remote add origin git@gitserver:myrepo.git<br />
user1@gitclient:~$ git push origin master
</p></blockquote>
<p>ဒါဆိုရင် Gitosis ကိုသုံးပြီးတော့ Git Repository Server တစ်ခုလုပ်လို့ရပါပြီ ခက်ခက်ခဲခဲမရှိလှပါဘူး Git Repository Server ဟာ Public IP နဲ့ဆိုရင် ဘယ်နေရာကဖြစ်ဖြစ် သုံးလို့ရပါတယ် အခုကတော့ SSH ပေါ်ကနေပဲ အလုပ်လုပ်ပါတယ် အဲဒါကြောင့် မြန်မာနိုင်ငံထဲ ပြန်ရောက်နေလို့ Push လုပ်ချင်လို့ပါဆိုရင်တော့ မဖြစ်နိုင်ပါဘူး။ အဲဒါတွေအတွက်ဆိုရင်တော့ Firewall အများစုဖွင့်ထားတဲ့ http ပေါ်ကနေ Push လုပ်ဖို့ထပ်ပြီးတော့ Setup လုပ်ရပါလိမ့်မယ်။ နောက်အားတဲ့အခါမှ ဆက်ရေးပါဦးမယ်။</p>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.calmhill.info/2011/12/12/how-to-manage-git-repository-server-with-gitosis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to setup a simple Git Repository Server?</title>
		<link>http://blog.calmhill.info/2011/11/25/how-to-setup-a-simple-git-repository-server/</link>
		<comments>http://blog.calmhill.info/2011/11/25/how-to-setup-a-simple-git-repository-server/#comments</comments>
		<pubDate>Fri, 25 Nov 2011 08:05:46 +0000</pubDate>
		<dc:creator>CalmHill</dc:creator>
				<category><![CDATA[နည်းပညာ]]></category>

		<guid isPermaLink="false">http://blog.calmhill.info/?p=486</guid>
		<description><![CDATA[Git Server တစ်ခုလုပ်ယူရတာ သိပ်ပြီးတော့ မခက်ခဲလှပါဘူး ရုံးမှာတစ်ယောက်တစ်ပေါက် Revision Control တစ်ခုခုတင်ပေးပါ ပြောပြောနေလို့ Git Server တစ်ခုလုပ်ပေးဖို့ တာဝန်ကျလာပါတယ်။ Server ပေါ်မှာ Git အတွက် User Account တစ်ခုခွဲထားလို်က်ပြီး Repository တွေကိုသိမ်းလို့ရပါတယ်။ အလွယ်ဆုံးနည်းကတော့ ခွဲထားတဲ့ User Account တစ်ခုနဲ့ အားလုံးသုံးမှာဖြစ်တဲ့အတွက် Password ကိုအားလုံးကို ပေးထားတာထက် Authorized Key နဲ့ဝင်တာ အဆင်အပြေဆုံးပါပဲ။ အောက်မှာပြထားတဲ့ Command တွေနဲ့ git &#8230; <a href="http://blog.calmhill.info/2011/11/25/how-to-setup-a-simple-git-repository-server/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<span style="font-family:'Masterpiece Uni Sans',Yunghkio,Myanmar3, Parabaik, Padauk, 'WinUni Innwa', 'Win Uni Innwa', 'MyMyanmar Unicode',Myanmar2;"><p>Git Server တစ်ခုလုပ်ယူရတာ သိပ်ပြီးတော့ မခက်ခဲလှပါဘူး ရုံးမှာတစ်ယောက်တစ်ပေါက် Revision Control တစ်ခုခုတင်ပေးပါ ပြောပြောနေလို့ Git Server တစ်ခုလုပ်ပေးဖို့ တာဝန်ကျလာပါတယ်။ Server ပေါ်မှာ Git အတွက် User Account တစ်ခုခွဲထားလို်က်ပြီး Repository တွေကိုသိမ်းလို့ရပါတယ်။ အလွယ်ဆုံးနည်းကတော့ ခွဲထားတဲ့ User Account တစ်ခုနဲ့ အားလုံးသုံးမှာဖြစ်တဲ့အတွက် Password ကိုအားလုံးကို ပေးထားတာထက် Authorized Key နဲ့ဝင်တာ အဆင်အပြေဆုံးပါပဲ။ အောက်မှာပြထားတဲ့ Command တွေနဲ့ git ဆိုတဲ့ User တစ်ယောက်ကို Create လုပ်လို့ပြီး Authorized Key အတွက် Folder တစ်ခုထည့်လို့ရပါတယ်။</p>
<blockquote><p>root@gitserver:~# adduser -m git<br />
root@gitserver:~# su git<br />
git@gitserver:~$ cd ~<br />
git@gitserver:~$ mkdir .ssh</p></blockquote>
<p>ပြီးပြီဆိုရင်တော့ ကိုယ့်ရဲ့ Git Server ကိုသုံးမယ့်လူတွေရဲ့ Public Key တွေကို .ssh အောက်ထဲမှာ authorized_keys ဆိုတဲ့ဖိုင် အနေနဲ့ထည့်ပေးရပါမယ်။ ကိုယ့်အထဲမှာ သုံးမယ့်လူတွေရဲ့ Public Key တွေရှိပြီးသားဆိုရင်တော့ အောက်မှာပြထားသလို အလွယ်တကူပဲရေးလို့ရပါတယ်။ ဒါမှမဟုတ်လည်း authorized_keys ကို Editor တစ်ခုနဲ့ဖွင့်ပြီး ထပ်ထပ်ထည့်လည်းရပါတယ် ခက်ခက်ခဲခဲမဟုတ်ပါဘူး။</p>
<blockquote><p>git@gitserver:~$ cd ~/.ssh<br />
git@gitserver:~$ cat mg_mg_id_rsa.pub >> authorized_keys<br />
git@gitserver:~$ cat ma_ma_id_rsa.pub >> authorized_keys</p></blockquote>
<p>ဒါဆိုရင် mg_mg_id_rsa.pub နဲ့ ma_ma_id_rsa.pub နှစ်ယောက်ဟာ git ဆိုတဲ့ User Account ကိုသူတို့ရဲ့ Private Key တွေနဲ့ SSH ကို Access လုပ်လို့ရပါပြီ။ Server ဘက်မှာတော့ Repository ကို Initialize လုပ်ပေးဖို့ပဲကျန်တော့တယ်။ အောက်မှာပြထားတဲ့ Command တွေနဲ့လုပ်လို့ရပါတယ်။ Git Repository Initialize လုပ်တာက Server ဖြစ်တဲ့အတွက် Working Directory မလိုပဲလုပ်ရပါတယ် အဲဒီ့အတွက် &#8211;bare ဆိုတဲ့ Option တစ်ခုပါဖို့ သတိထားရပါတယ်။</p>
<blockquote><p>git@gitserver:~$ cd ~<br />
git@gitserver:~$ mkdir myproject.git<br />
git@gitserver:~$ cd myproject.git<br />
git@gitserver:~$ git &#8211;bare init</p></blockquote>
<p>ဒါတွေပြီးရင်တော့ Client အနေနဲ့ သုံးလို့ရပါပြီ။ သုံးခွင့်က mg_mg_id_rsa.pub နဲ့ ma_ma_id_rsa.pub နှစ်ယောက်ကို ပေးထားတဲ့အတွက် အဲဒီ့လူတစ်ယောက်ယောက်ရဲ့ Private Key ရှိတဲ့ ကွန်ပျူတာတစ်လုံးကနေ Clone လုပ်ကြည့်မယ်ဆိုရင် ရပါလိမ့်မယ်။</p>
<blockquote><p>mgmg@computer:~$ cd ~<br />
mgmg@computer:~$ git clone git@gitserver:myproject.git<br />
mgmg@computer:~$ cd myproject<br />
mgmg@computer:~$ touch README<br />
mgmg@computer:~$ git add .<br />
mgmg@computer:~$ git commit -am &#8220;Initial Commit&#8221;<br />
mgmg@computer:~$ git push origin master</p></blockquote>
<p>သုံးလို့ရသွားပြီဆိုပေမယ့် ထပ်ဖြစ်လာတဲ့ ပြဿနာက mg_mg_id_rsa.pub နဲ့ ma_ma_id_rsa.pub နှစ်ယောက်ဟာ git ဆိုတဲ့ User Account ကိုသူတို့ရဲ့ Private Key တွေနဲ့ SSH ကို Access လုပ်လို့ရနေပါတယ်။ အကယ်လို့ သူတို့နှစ်ယောက်ဟာ ဆာဗာပေါ်မှာ Shell Access မလုပ်စေချင်ရင်တော့ git ဆိုတဲ့ User Account အတွက်ပေးထားတဲ့ Shell ကိုပြင်ဖို့လိုပါတယ်။ Git မှာ git-shell ဆိုပြီးပါပြီးသားရှိပါတယ် အဲဒါကိုပဲသုံးစေမယ်ဆိုရင်တော့ Repository List ကလွဲရင်ကြည့်လို့မရအောင် လုပ်ပေးလို့ပါတယ်။</p>
<blockquote><p>root@gitserver:~# cp -R /usr/share/doc/git-your-version/contrib/git-shell-commands /home/git<br />
root@gitserver:~# chown -R git /home/git/git-shell-commands/<br />
root@gitserver:~# chmod +x /home/git/git-shell-commands/help<br />
root@gitserver:~# chmod +x /home/git/git-shell-commands/list<br />
root@gitserver:~# chsh -s /usr/bin/git-shell git</p></blockquote>
<p>အထက်မှာပြောခဲ့တဲ့အတိုင်း Setup လုပ်မယ်ဆိုရင် Git Server တစ်ခုအလွယ်တကူ လုပ်လို့ရပါတယ် ဒါပေမယ့် အလွယ်ဆုံးနည်းလမ်း ဖြစ်တဲ့အတွက် လိုအပ်ချက်တွေတိုးလာရင် အဆင်မပြေတော့ပါဘူး။ အခုလုပ်ထားတာက User Account တစ်ခုကို လူအများမျှပြီးသုံးတဲ့နေရာမှာ Public Key တွေကို authorized_keys ထဲကိုရေးပေးရတဲ့အတွက် လူများလာတာနဲ့အမျှ ထိမ်းချုပ်ရခက်ပါတယ် လူတစ်ယောက်ကို ပြန်ဖျက်ဖို့အတွက် authorized_keys ကိုပြန်ဖွင့်ပြီး တစ်ခုစီလိုက်ရှာရတာ အတော်ခက်ခဲ့ပါလိမ့်မယ်။ နောက်တစ်ချက်က လူတိုင်းမှာတူညီတဲ့ လုပ်ပိုင်ခွင့်ဖြစ်နေပါတယ် သုံးခွင့်ရှိတယ်ဆိုတာနဲ့ ရှိသမျှ Repository တွေကို Access လုပ်လို့ရပါတယ်။ အဲဒီလိုအပ်ချက်တွေ တိုးလာရင်တော့ အခြားသော Git Server Management Tools တွေသုံးရပါလိမ့်မယ်။ နောက်တစ်ခုမှပဲ Git Server Management Tools တွေအကြောင်းရေးပါဦးမယ်။</p>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.calmhill.info/2011/11/25/how-to-setup-a-simple-git-repository-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dennis MacAlistair Ritchie</title>
		<link>http://blog.calmhill.info/2011/10/14/dennis-macalistair-ritchie/</link>
		<comments>http://blog.calmhill.info/2011/10/14/dennis-macalistair-ritchie/#comments</comments>
		<pubDate>Thu, 13 Oct 2011 18:26:50 +0000</pubDate>
		<dc:creator>CalmHill</dc:creator>
				<category><![CDATA[ထင်ရာမြင်ရာ]]></category>
		<category><![CDATA[နည်းပညာ]]></category>

		<guid isPermaLink="false">http://blog.calmhill.info/?p=464</guid>
		<description><![CDATA[ဒီလထဲမှာ iPhone အသစ်ထွက်ပြီးတဲ့နောက်နေ့ Steve Jobs ဆုံးသွားတယ် တစ်နေရာတစ်ခါ လူတစ်ယောက်တွေ့တိုင်း Steve Jobs ဆုံးသွားတယ်ပဲပြောကြတယ် Facebook မှာလည်းပုံတွေ ပလူပျံနေတယ် Profile ပြောင်းတဲ့လူလည်းပြောင်း အခုထိပြန်မဖြုတ်ကြသေးဘူး။ iPhone ဝယ်မလားတော့ စဉ်းစားမိပါတယ် ဒါပေမယ့် ဆုံးသွားပြီဆိုတော့ ဪ.. သွားရှာပြီလို့ စိတ်မကောင်း တစ်ချက်ဖြစ်တာတစ်ခုပါပဲ။ ကိုယ့်အတွက်တော့ ကွန်ပျူတာနဲ့စီးပွားရေး လုပ်စားတာအင်မတန် တော်တယ်ဆိုပြီး နှစ်ဘက်တော်တဲ့ လူတစ်ယောက်အဖြစ် အသိအမှတ်ပြုထားတာကလွဲရင် သိပ်ထူးခြားမှု့မရှိပါဘူး။ လူသုံးလွယ်တဲ့ ကွန်ပျူတာတွေ အများကြီးထုတ်ခဲ့တာ လက်ခံလို့ရပါတယ် ဒါပေမယ့် လူအများကြီးအတွက် &#8230; <a href="http://blog.calmhill.info/2011/10/14/dennis-macalistair-ritchie/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<span style="font-family:'Masterpiece Uni Sans',Yunghkio,Myanmar3, Parabaik, Padauk, 'WinUni Innwa', 'Win Uni Innwa', 'MyMyanmar Unicode',Myanmar2;"><p>ဒီလထဲမှာ iPhone အသစ်ထွက်ပြီးတဲ့နောက်နေ့ Steve Jobs ဆုံးသွားတယ် တစ်နေရာတစ်ခါ လူတစ်ယောက်တွေ့တိုင်း Steve Jobs ဆုံးသွားတယ်ပဲပြောကြတယ် Facebook မှာလည်းပုံတွေ ပလူပျံနေတယ် Profile ပြောင်းတဲ့လူလည်းပြောင်း အခုထိပြန်မဖြုတ်ကြသေးဘူး။ iPhone ဝယ်မလားတော့ စဉ်းစားမိပါတယ် ဒါပေမယ့် ဆုံးသွားပြီဆိုတော့ ဪ.. သွားရှာပြီလို့ စိတ်မကောင်း တစ်ချက်ဖြစ်တာတစ်ခုပါပဲ။</p>
<p>ကိုယ့်အတွက်တော့ ကွန်ပျူတာနဲ့စီးပွားရေး လုပ်စားတာအင်မတန် တော်တယ်ဆိုပြီး နှစ်ဘက်တော်တဲ့ လူတစ်ယောက်အဖြစ် အသိအမှတ်ပြုထားတာကလွဲရင် သိပ်ထူးခြားမှု့မရှိပါဘူး။ လူသုံးလွယ်တဲ့ ကွန်ပျူတာတွေ အများကြီးထုတ်ခဲ့တာ လက်ခံလို့ရပါတယ် ဒါပေမယ့် လူအများကြီးအတွက် အထောက်အကူ မပေးနိုင်ခဲ့ဘူး။ IBM သာ PC Standard ကိုထုတ်ပေးခဲ့တာ အင်မတန်ကျေးဇူးတင်ရမယ် မထုတ်ပေးခဲ့ရင် ဒီအချိန်မှာ ဆင်းရဲတဲ့နိုင်ငံတွေ ကွန်ပျူတာသုံးနိုင်ဖို့ လမ်းမမြင်မိသေးဘူး။</p>
<p>Microsoft ချမ်းသာတော့ လူတွေကအတော် ဆန့်ကျင်ကြတယ် Microsoft ပစ္စည်းမသုံးဘူး အော်ကြဟစ်ကြတယ် Apple တစ်ခုခုထွက်တော့ လုဝယ်ကြပြန်တယ် တကယ်တော့ ပြန်စဉ်းစားကြည့်ရင် Apple စီးပွားဖြစ်တော့ ဘယ်သူအကျိုးရှိသလဲ လိုက်ကြည့်တော့ သူတို့ချမ်းသာတာတစ်ခုပဲ မြင်မိပါတယ်။ Microsoft စီးပွားဖြစ်တော့ အနည်းဆုံးတော့ Bill Gates ချမ်းသာတယ်ပေါ့ အဲဒီကတစ်ဆင့် Bill &#038; Melinda Gates Foundation ဟာ ချို့တဲ့ပြီး လိုအပ်တဲ့နေရာတစ်ချို့မှာ တစ်စိတ်တစ်ဒေသ အကျိုးပြုနိုင်သေးတယ်။</p>
<p>သတင်းတစ်ခုထဲမှာ အောက်တိုဘာ ၈ ရက်နေ့က Dennis MacAlistair Ritchie ဆုံးသွားပြီဆိုတာ ဖတ်လိုက်ရတယ်။ Dennis M. Ritchie ဟာ ကွန်ပျူတာခေတ်မှာ အရေးပါတဲ့နေရာမှ ရှိနေခဲ့တယ် သူရဲ့အမွေတွေကို ဆက်ပြီးသုံးနေကြတယ် အခုအချိန်အထိ နှစ်ပေါင်းများစွာ မကျဆုံးပဲရပ်တည်နေတဲ့ C Programming Language ရဲ့ဖခင်ကြီးလို့ပြောရမယ်။ ၁၉၈၀ မှာ Dennis M. Ritchie နဲ့ Brian W. Kernighan အစပြုခဲ့တဲ့ C Language ဟာအခုအချိန်အထိ မဖြစ်မနေသုံးစွဲနေကြဆဲဖြစ်တယ်။ သူဟာ Unix System ကိုလည်း ပူးတွဲတည်ဆောက်ခဲ့တဲ့ လူတစ်ဦးလည်းဖြစ်တယ်။ တကယ်တော့ အင်တာနက်သုံးနေသ၍ Unix နဲ့ကင်းတယ်လို့ ဘယ်လိုမှပြောလို့မရနိုင်ပါဘူး အင်တာနက်ပေါ်က ဆာဗာအများစုဟာ Unix မဟုတ်ခဲ့ရင်တောင် သူ့ကိုအခြေခံတဲ့ Linux တွေဖြစ်နေတယ်။</p>
<p>အာဒမ်နဲ့ဧဝခိုးစားတဲ့ ပန်းသီးရယ် နယူတန်တွေ့လိုက်တဲ့ ကြွေကျတဲ့ပန်းသီးရယ် Steve Jobs ပေးတဲ့ပန်းသီးရယ်ဆိုပဲ တကယ်တော့ Steve Jobs ရဲ့ပန်းသီးလည်း Dennis M. Ritchie ပေးတာတွေနဲ့ တည်ဆောက်ထားရတယ် Objective C ဆိုတော့ နာမည်နဲ့တင် ပြောစရာမလိုတော့သလို တကယ်တော့အခု အချိန်မှာသုံးနေတဲ့ MacOSX တွေဟာ Dennis ရဲ့ Unix ကိုအခြေခံပြီးပြုပြင်ထားရတာပါ။ Bill Gates ဟာ BASIC Language ကိုအင်မတန် သံယောစဉ်ရှိပေမယ့် တကယ်တော့သူ့ရဲ့ OS တွေလည်း ၉၀% C or C++ ကိုသုံးနေရသလို Unix လွှမ်းမိုးမှု့အောက်က မလွတ်မြောက်ပါဘူး။ တကယ်တော့ Dennis လုပ်ခဲ့တဲ့အရာတွေဟာ တစ်ဦးတစ်ယောက်တည်းအတွက် မဟုတ်ခဲ့ပဲ ခေတ်သစ်ကွန်ပျူတာ လောကတစ်ခုလုံးကို အကျိုးပြုသွားသလို အခုလည်း အကျိုးပြုနေဆဲပါပဲ သူဆုံးပါးသွားပေမယ့် သူ့ရဲ့တီထွင်မှု့တွေက ရှေ့ဆက်ပြီးလည်း အကျိုးပြုနေအောင် ထားသွားနိုင်ခဲ့တဲ့ လူတစ်ဦးပါပဲ။</p>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.calmhill.info/2011/10/14/dennis-macalistair-ritchie/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cross Compile with MinGW-w64</title>
		<link>http://blog.calmhill.info/2011/10/07/cross-compile-with-mingw-w64/</link>
		<comments>http://blog.calmhill.info/2011/10/07/cross-compile-with-mingw-w64/#comments</comments>
		<pubDate>Fri, 07 Oct 2011 13:45:46 +0000</pubDate>
		<dc:creator>CalmHill</dc:creator>
				<category><![CDATA[နည်းပညာ]]></category>

		<guid isPermaLink="false">http://blog.calmhill.info/?p=449</guid>
		<description><![CDATA[Windows ရဲ့ Environment ဟာ Compile လုပ်ဖို့အဓိက မထားတဲ့အတွက် တကယ်တမ်း တစ်ချို့ Opensource တွေကို ကိုယ်တိုင် Compile လုပ်ဖို့လိုလိုရင် အတော်ပြဿနာတက်တယ် အများအားဖြင့် 64 bits တွေလိုချင်ရင်ဖြစ်တတ်တယ် အဲဒီ့အချိန်ကျရင်တော့ သူများလုပ်ထားတာရှိသလား လိုက်ရှာရတာကမောတယ် ကိုယ်တိုင်ကိုယ်ကျ Compile လုပ်ရရင်ပိုမောပါတယ်။ Windows မှာ Compile လုပ်ချင်ရင် Native မဟုတ်ပဲ လွယ်ချင်ရင်တော့ Cygwin မှာလုပ်ရင်တော့ဖြစ်တယ် ဒါပေမယ့် Cygwin dll ကြားထဲကပါနေတော့ နေရာတိုင်းသုံးလို့မဖြစ်ဘူး တစ်ချို့ &#8230; <a href="http://blog.calmhill.info/2011/10/07/cross-compile-with-mingw-w64/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<span style="font-family:'Masterpiece Uni Sans',Yunghkio,Myanmar3, Parabaik, Padauk, 'WinUni Innwa', 'Win Uni Innwa', 'MyMyanmar Unicode',Myanmar2;"><p>Windows ရဲ့ Environment ဟာ Compile လုပ်ဖို့အဓိက မထားတဲ့အတွက် တကယ်တမ်း တစ်ချို့ Opensource တွေကို ကိုယ်တိုင် Compile လုပ်ဖို့လိုလိုရင် အတော်ပြဿနာတက်တယ် အများအားဖြင့် 64 bits တွေလိုချင်ရင်ဖြစ်တတ်တယ် အဲဒီ့အချိန်ကျရင်တော့ သူများလုပ်ထားတာရှိသလား လိုက်ရှာရတာကမောတယ် ကိုယ်တိုင်ကိုယ်ကျ Compile လုပ်ရရင်ပိုမောပါတယ်။ Windows မှာ Compile လုပ်ချင်ရင် Native မဟုတ်ပဲ လွယ်ချင်ရင်တော့ Cygwin မှာလုပ်ရင်တော့ဖြစ်တယ် ဒါပေမယ့် Cygwin dll ကြားထဲကပါနေတော့ နေရာတိုင်းသုံးလို့မဖြစ်ဘူး တစ်ချို့ Opensource တွေက VC နဲ့လုပ်ရလွယ်အောင် မပေးထားရင် Compile လုပ်ရတာ အတော်ဒုက္ခများပါတယ်။ Native လိုချင်ရင် အသုံးအတည့်ဆုံးကတော့ Mingw ကို MSys နဲ့သုံးရင်တော့အဆင်ပြေတယ်။ အခုနောက်ပိုင်း ပြဿနာဖြစ်ဖြစ်နေတာက 64 bits လိုချင်တော့ Mingw 64 bits ကို Setup လုပ်ရတာကလည်း နည်းနည်းလက်ဝင်ပါတယ် အဲဒါကြောင့် နောက်ပိုင်းတော့ Mingw သုံးပြီး Linux ပေါ်မှာပဲ Cross Compile လုပ်လိုက်တော့တယ်။</p>
<p>Linux ကလည်း သူ့ရဲ့ Native မှာ Compile လုပ်ရလွယ်ပေမယ့် Cross Compile ဆိုရင်တော့ GNU Autotools တွေအလုပ်လုပ်တာတော့ နည်းနည်းနားလည်ဖို့လိုပါတယ်။ Ubuntu ပေါ်မှာပဲ Cross Compile လုပ်ဖြစ်တယ် Ubuntu ရဲ့ Repo ထဲမှာ Mingw 64 bits ပါပေမယ့် တကယ်သုံးကြည့်တော့ Error များပါတယ် အဲဒါကြောင့် တကယ်သုံးမယ်ဆိုရင် <a href="http://mingw-w64.sourceforge.net/">Mingw 64 bits Binary</a> တွေကိုမူရင်းဆိုက်ကနေပဲ ဆွဲယူရပါတယ် အဲဒါတွေကိုပါ ကိုယ်တိုင် Compile လုပ်လို့ရပါတယ် ဒါပေမယ့်လုပ်ဖို့တော့ မလိုအပ်ရင်အားမပေးပါဘူး Mingw တစ်ခုလုံးကို Compile လုပ်ရတာ အတော်အချိန်ကုန်သလို ပြဿနာလည်းများလွန်းပါတယ်။ Cross Compile ဖြစ်တဲ့အတွက် ကိုယ်လုပ်ချင်တဲ့ Platform အလိုက် Compiler တွေကိုယူရပါမယ် Windows 32 and 64 ဆိုတဲ့အတွက် Compiler လည်း ၂ ခုလိုပါတယ်။ အောက်မှာပြထားတဲ့ URL နှစ်ခုကနေ ဒေါင်းလုပ်လုပ်လို့ရပါတယ်။ အဲဒီ့မှာလည်း Personal နဲ့ Automated Builds ဆိုပြီး ၂ မျိုးရှိတယ် တစ်ချို့ကလည်း Personal က အများနည်းတယ်ပြောတယ် ဒါပေမယ့် နောက်ဆုံး Build ကိုပဲကျွန်တော်သုံးတော့ Automated သုံးနေတာ အခုထိတော့ ဘာမှမဖြစ်ဖူးသေးပါဘူး။</p>
<blockquote><p>http://sourceforge.net/projects/mingw-w64/files/Toolchains targetting Win32<br />
http://sourceforge.net/projects/mingw-w64/files/Toolchains targetting Win64</p></blockquote>
<p>ရလာတဲ့ Compiler တွေကို တစ်နေရာမှာသွားထားပါတယ် ဘယ်နေရာထားထားရပါတယ် ကျွန်တော်ကတော့ /opt အောက်မှာ mingw32 and mingw64 ဆိုပြီးသတ်မှတ်ထားလိုက်တယ်။ သူက Compiler name တွေရှေ့မှာ ကိုယ် Cross လုပ်မယ့် Architecture Name ထည့်ထားတယ် gcc compiler ဆိုရင် 32 Bits Windows အတွက်ဆို i686-mingw32msvc-gcc လို့နာမည်ပေးပြီးတော့ 64 Bits Windows အတွက်ဆို x86_64-mingw32msvc-gcc လို့နာမည်ပေးထားတယ်။ အဲဒီတော့ Cross Compile လုပ်ချင်တဲ့ Source တွေကို သက်ဆိုင်ရာ Compiler နဲ့ Compile လုပ်ရပါတယ် တကယ်တော့ Compiler တစ်ခုတည်မဟုတ်ပါဘူး Loader, Linker, &#8230; စသည်ဖြင့် အကုန်လုံးကိုပြောင်းသုံးရမှာပါ။ အဲဒီတော့ Build လုပ်တဲ့အချိန်မှာ Manual ဆိုရင်ပြဿနာမဟုတ်ပေမယ့် Automated ဆိုရင်တော့ Makefile ထဲမှာ လိုက်ပြင်ရပါလိမ့်မယ် အဲဒါလည်း လက်နဲပြင်လို့မဖြစ်နိုင်တော့ Autotools တွေနဲ့ Makefile generate လုပ်တဲ့အချိန်မှာ Parameter ထည့်ပေးလိုက်မှအဆင်ပြေပါတယ်။ အဲဒါကြောင့် Makefile generate လုပ်တဲ့ Configure script ကို Execute လုပ်တဲ့အချိန်မှာ အောက်မှာပြထားတဲ့ Parameter တွေထည့်ပေးရပါမယ်။</p>
<blockquote><p>CC=/opt/mingw64/bin/x86_64-w64-mingw32-gcc CXX=/opt/mingw64/bin/x86_64-w64-mingw32-g++ LD=/opt/mingw64/bin/x86_64-w64-mingw32-ld AR=/opt/mingw64/bin/x86_64-w64-mingw32-ar AS=/opt/mingw64/bin/x86_64-w64-mingw32-as NM=/opt/mingw64/bin/x86_64-w64-mingw32-nm STRIP=/opt/mingw64/bin/x86_64-w64-mingw32-strip RANLIB=/opt/mingw64/bin/x86_64-w64-mingw32-ranlib DLLTOOL=/opt/mingw64/bin/x86_64-w64-mingw32-dlltool OBJDUMP=/opt/mingw64/bin/x86_64-w64-mingw32-objdump RC=/opt/mingw64/bin/x86_64-w64-mingw32-windres &#8211;host=x86_64-w64-mingw32</p></blockquote>
<blockquote><p>CC=/opt/mingw32/bin/i686-w64-mingw32-gcc CXX=/opt/mingw32/bin/i686-w64-mingw32-g++ LD=/opt/mingw32/bin/i686-w64-mingw32-ld AR=/opt/mingw32/bin/i686-w64-mingw32-ar AS=/opt/mingw32/bin/i686-w64-mingw32-as NM=/opt/mingw32/bin/i686-w64-mingw32-nm STRIP=/opt/mingw32/bin/i686-w64-mingw32-strip RANLIB=/opt/mingw32/bin/i686-w64-mingw32-ranlib DLLTOOL=/opt/mingw32/bin/i686-w64-mingw32-dlltool OBJDUMP=/opt/mingw32/bin/i686-w64-mingw32-objdump RC=/opt/mingw32/bin/i686-w64-mingw32-windres &#8211;host=i686-w64-mingw32</p></blockquote>
<p>ပြီးရင်တော့ ပုံမှန် Build လုပ်သလိုပဲ Make လုပ်လို့ရပါပြီ။ စိတ်ဝင်စားတယ်ဆိုရင် တစ်ခုခုကို Cross Compile လုပ်ကြည့်ပါ လွယ်လွယ်ကူကူဆိုရင် Curl ရဲ့ Source ကို Download လုပ်လိုက်ပါ ပြီးရင်တော့ အပေါ်မှာပြထားသလို 32 bits အတွက်ရယ် 64 bits အတွက်ရယ် Compile လုပ်ကြည့်ပါ curl.exe တွေကို Build လုပ်ပေးပါလိမ့်မယ် အဲဒါတွေကို Windows ပေါ်ကိုကူးသွားပြီး Execute လုပ်ကြည့်ပါ အလုပ်လုပ်ပါလိမ့်မယ်။ 64 bits ကို 32 bits Windows ပေါ်မှာစမ်းကြည့်မိရင်တော့ အလုပ်မလုပ်တာတွေ့ပါလိမ့်မယ်။ Linux ပေါ်မှာလည်း Exe files တွေအလုပ်လုပ်မလုပ် စမ်းကြည့်ချင်တယ်ဆိုရင် Wine Install လုပ်ထားရင်တော့ Exe တွေကိုတစ်ခါတည်း Execute လုပ်ပြီးစမ်းလို့ရပါတယ်။ အားလို့စိတ်ဝင်စားရင်တော့ စမ်းကြည့်နိုင်ပါတယ် ဘာအကျိုးထူးသလဲမေးရင်တော့ Source Code အလကားပေးရင်တောင် ကောင်းလွန်းပေမယ့် သုံးလို့မလွယ်တာတွေ ရှိတယ်လို့သိစေချင်တာပါ တကယ်လုပ်ကြည့်ရင် ရေးထားတဲ့ကုဒ်ကို Compile လုပ်ရတာကိုက မလွယ်ကူဘူးဆိုတာ နားလည်သွားပါလိမ့်မယ်။</p>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.calmhill.info/2011/10/07/cross-compile-with-mingw-w64/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Vim</title>
		<link>http://blog.calmhill.info/2011/09/29/open-vim/</link>
		<comments>http://blog.calmhill.info/2011/09/29/open-vim/#comments</comments>
		<pubDate>Thu, 29 Sep 2011 05:27:48 +0000</pubDate>
		<dc:creator>CalmHill</dc:creator>
				<category><![CDATA[နည်းပညာ]]></category>

		<guid isPermaLink="false">http://blog.calmhill.info/?p=364</guid>
		<description><![CDATA[Linux သုံးနေရင်တော့ အနည်းနဲ့အများကတော့ Terminal ကနေသုံးနေရတာပါပဲ အများအားဖြင့် ဆာဗာတွေကို Manage လုပ်နေရရင်တော့ Terminal ကမသုံးမဖြစ်ပါပဲ။ အဲဒီ့နေရာမှာ အမြဲပြဿနာဖြစ်နေရတာက Editor ပါ။ Vi သုံးရတာက နည်းနည်းခက်ပါတယ် Command တွေမမှတ်မိရင် အမြဲပြဿနာတက်ပါတယ်။ အဲဒီတော့ Vi ကိုလေ့ကျင့်ခန်းဆင်းချင်ရင် ကျူတိုရီရယ်တွေပါပါတယ် တစ်ခါတည်း Simulated Vi ပါလာတဲ့အတွက် လေ့ကျင့်ရတာ ပိုအဆင်ပြေပါတယ်။ Vi လေ့ကျင့်ခန်း ဆင်းချင်တဲ့လူတွေအတွက် Open Vim မှာလေ့ကျင့်ခန်း ဆင်းလို့ရပါတယ် စမ်းကြည့်မိတော့ အတော်လေးသဘောကျမိတယ်။ &#8230; <a href="http://blog.calmhill.info/2011/09/29/open-vim/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<span style="font-family:'Masterpiece Uni Sans',Yunghkio,Myanmar3, Parabaik, Padauk, 'WinUni Innwa', 'Win Uni Innwa', 'MyMyanmar Unicode',Myanmar2;"><p>Linux သုံးနေရင်တော့ အနည်းနဲ့အများကတော့ Terminal ကနေသုံးနေရတာပါပဲ အများအားဖြင့် ဆာဗာတွေကို Manage လုပ်နေရရင်တော့ Terminal ကမသုံးမဖြစ်ပါပဲ။ အဲဒီ့နေရာမှာ အမြဲပြဿနာဖြစ်နေရတာက Editor ပါ။ Vi သုံးရတာက နည်းနည်းခက်ပါတယ် Command တွေမမှတ်မိရင် အမြဲပြဿနာတက်ပါတယ်။ အဲဒီတော့ Vi ကိုလေ့ကျင့်ခန်းဆင်းချင်ရင် ကျူတိုရီရယ်တွေပါပါတယ် တစ်ခါတည်း Simulated Vi ပါလာတဲ့အတွက် လေ့ကျင့်ရတာ ပိုအဆင်ပြေပါတယ်။ Vi လေ့ကျင့်ခန်း ဆင်းချင်တဲ့လူတွေအတွက် Open Vim မှာလေ့ကျင့်ခန်း ဆင်းလို့ရပါတယ် စမ်းကြည့်မိတော့ အတော်လေးသဘောကျမိတယ်။ ကိုယ်တွေခေတ်က ဒါမျိုးသာတွေ့ခဲ့ရင် Vi ကနေမထွက်တတ်လို့ ကွန်ပျူတာကို မီးပိတ်စရာလို့ခဲ့မယ်မထင်ဘူး။</p>
<p><code>http://www.openvim.com/index.html</code></p>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.calmhill.info/2011/09/29/open-vim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>လိပ် ၄ ကောင်နဲ့ကွန်ပျူတာ</title>
		<link>http://blog.calmhill.info/2011/07/07/318/</link>
		<comments>http://blog.calmhill.info/2011/07/07/318/#comments</comments>
		<pubDate>Thu, 07 Jul 2011 03:04:53 +0000</pubDate>
		<dc:creator>CalmHill</dc:creator>
				<category><![CDATA[နည်းပညာ]]></category>

		<guid isPermaLink="false">http://blog.calmhill.info/?p=534</guid>
		<description><![CDATA[Version Control System တွေသုံးရတာ တကယ်တော့ မျက်စေ့လည်တယ် တစ်ယောက်တစ်ပေါက် SVN ကြိုက်တဲ့လူကကြိုက် Git တဲ့လူက Git တကယ်တော့ ကိုယ်သုံးနေကျဟာ သုံးကြတာပါပဲ ဒါပေမယ့် ရွေးစရာက တစ်ခါတစ်ယံတော့ ရှိချင်မှရှိတယ် လိုအပ်တာလည်းသုံးရတတ်တယ်။ ကိုယ်ကတော့ Centralize ဖြစ်တဲ့ Subversion ကိုသဘောကျတယ် တစ်နေရာထဲမှာရှိလို့ ထိမ်းရသိမ်းကလွယ်သလို ကိုယ်ထဲကလူတွေကိုလည်း အလုပ်လုပ်မလုပ် ထိမ်းချုပ်ရလွယ်တယ် အဲဒါကြောင့် Distributed တွေကိုမသုံးဖြစ်ဘူး ဒါပေမယ့် တစ်ခါတစ်လေတော့ လိုအပ်ရင်လည်းသုံးရတယ်။ အဲလိုနဲ့စက်ထဲမှာ VCS ပေါင်းစုံဖြစ်လာတယ် Windows &#8230; <a href="http://blog.calmhill.info/2011/07/07/318/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<span style="font-family:'Masterpiece Uni Sans',Yunghkio,Myanmar3, Parabaik, Padauk, 'WinUni Innwa', 'Win Uni Innwa', 'MyMyanmar Unicode',Myanmar2;"><p>Version Control System တွေသုံးရတာ တကယ်တော့ မျက်စေ့လည်တယ် တစ်ယောက်တစ်ပေါက် SVN ကြိုက်တဲ့လူကကြိုက် Git တဲ့လူက Git တကယ်တော့ ကိုယ်သုံးနေကျဟာ သုံးကြတာပါပဲ ဒါပေမယ့် ရွေးစရာက တစ်ခါတစ်ယံတော့ ရှိချင်မှရှိတယ် လိုအပ်တာလည်းသုံးရတတ်တယ်။ ကိုယ်ကတော့ Centralize ဖြစ်တဲ့ Subversion ကိုသဘောကျတယ် တစ်နေရာထဲမှာရှိလို့ ထိမ်းရသိမ်းကလွယ်သလို ကိုယ်ထဲကလူတွေကိုလည်း အလုပ်လုပ်မလုပ် ထိမ်းချုပ်ရလွယ်တယ် အဲဒါကြောင့် Distributed တွေကိုမသုံးဖြစ်ဘူး ဒါပေမယ့် တစ်ခါတစ်လေတော့ လိုအပ်ရင်လည်းသုံးရတယ်။ အဲလိုနဲ့စက်ထဲမှာ VCS ပေါင်းစုံဖြစ်လာတယ် Windows ပေါ်တော့ Commandline လည်းသုံးရပျင်းတယ် ဒါနဲ့ Tortoise တွေတင်ထားတယ်။ SVN, Git, Mercurial, Bazaar ဆိုတော့ လိပ်ကလေးလည်း လေးကောင် ဖြစ်သွားတယ်။</p>
<p><a href="http://blog.calmhill.info/wp-content/uploads/2011/07/Tortoise.gif" rel="lightbox[318]"><img src="http://blog.calmhill.info/wp-content/uploads/2011/07/Tortoise-132x300.gif" alt="" title="Tortoise" width="132" height="300"></a></p>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.calmhill.info/2011/07/07/318/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vi</title>
		<link>http://blog.calmhill.info/2011/06/15/vi/</link>
		<comments>http://blog.calmhill.info/2011/06/15/vi/#comments</comments>
		<pubDate>Wed, 15 Jun 2011 05:49:15 +0000</pubDate>
		<dc:creator>CalmHill</dc:creator>
				<category><![CDATA[နည်းပညာ]]></category>

		<guid isPermaLink="false">http://blog.calmhill.info/?p=528</guid>
		<description><![CDATA[အလုပ်ထဲက ဆာဗာတွေက အများအားဖြင့် Terminal ကနေသုံးလေ့ရှိတယ် တစ်ခါတစ်လေ File တွေကပြင်စရာရှိရင် ဒေါင်းလုပ်လုပ်ပြင်ရတယ် ကိုယ်ကတော့ လုပ်ရမှာပျင်းလို့ Terminal ထဲမှာပဲ vi နဲ့ပြင်လိုက်တာများတယ် အလုပ်ထဲက စီနီယာအစ်ကိုက Terminal သုံးနေကျမဟုတ်ဘူး တစ်နေ့က ကိုယ်ကပြင်စရာရှိလို့ vi နဲ့ပြင်နေတာတွေ့တော့ vi ထဲကနေ Exit ဘယ်လိုလုပ်သလဲ မေးလာလို့ အတိတ်ကို သတိရမိတယ်။ vi Editor ပေါ်ခဲ့တာ အတော်ကြာပါပြီ 1976 ခုနှစ်က စပြီးအသုံးပြုခဲ့တာဆိုတော့ ၃၅ နှစ်သက်တမ်းရှိနေပါပြီ။ Linux &#8230; <a href="http://blog.calmhill.info/2011/06/15/vi/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<span style="font-family:'Masterpiece Uni Sans',Yunghkio,Myanmar3, Parabaik, Padauk, 'WinUni Innwa', 'Win Uni Innwa', 'MyMyanmar Unicode',Myanmar2;"><p>အလုပ်ထဲက ဆာဗာတွေက အများအားဖြင့် Terminal ကနေသုံးလေ့ရှိတယ် တစ်ခါတစ်လေ File တွေကပြင်စရာရှိရင် ဒေါင်းလုပ်လုပ်ပြင်ရတယ် ကိုယ်ကတော့ လုပ်ရမှာပျင်းလို့ Terminal ထဲမှာပဲ vi နဲ့ပြင်လိုက်တာများတယ် အလုပ်ထဲက စီနီယာအစ်ကိုက Terminal သုံးနေကျမဟုတ်ဘူး တစ်နေ့က ကိုယ်ကပြင်စရာရှိလို့ vi နဲ့ပြင်နေတာတွေ့တော့ vi ထဲကနေ Exit ဘယ်လိုလုပ်သလဲ မေးလာလို့ အတိတ်ကို သတိရမိတယ်။ vi Editor ပေါ်ခဲ့တာ အတော်ကြာပါပြီ 1976 ခုနှစ်က စပြီးအသုံးပြုခဲ့တာဆိုတော့ ၃၅ နှစ်သက်တမ်းရှိနေပါပြီ။</p>
<p>Linux စသုံးတော့ 2001-2002 လောက်ကဖြစ်မယ် အဲဒီ့အချိန်က Linux က အခုခေတ်လို GUI လှလှပပနဲ့မဟုတ် ဖွင့်လိုက်ရင် Black and White Screen ပဲမြင်ရပါတယ် GUI တစ်ခုခုတင်ထားရင်တောင် သုံးချင်ရင် startx ဆိုမှတင်ထားတဲ့ Window Manager တစ်ခုခုဖွင့်သုံးရတယ်။ မျက်မမြင်ပုဏ္ဏားဆင်စမ်းသလိုပဲ မေးစရာလည်းလူမရှိ ရှာစရာလည်း အင်တာနက်လည်းမရှိ ဂူဂဲလည်းမရှိ စမ်းတဝါးဝါးတင်လိုက်တာ Linux တစ်ခုစက်မှာ တင်လို့ရလိုက်တယ်။ ကျောင်းက စာကြည့်တိုက်ကလည်း ဖတ်လို့ကောင်းမယ့် စာအုပ်မှန်သမျှက Reference ထဲမှာထည့်ထားတယ် ဘယ်တော့မှငှားလို့မရဘူး ဖတ်သလားဆိုတော့ ဘယ်သူမှလည်းမဖတ်ကြပါဘူး။ Linux စာအုပ်ကို စာကြည့်တိုက်ထဲဖတ် မှတ်စုထဲကိုကူးထည့် အိမ်ရောက်မှစမ်းကြည့်ရတယ်။</p>
<p>စာရိုက်ချင်ရင် Command က vi ဆိုပြီးမှတ်လာခဲ့တယ် တကယ်တော့ ငယ်ကတည်းက Command Line နဲ့ကမစိမ်းပါဘူး Windows မရှိခင် DOS တွေခေတ်ကတည်းကသုံးပါတယ် အဲတော့ စာရိုက်တဲ့ Text Editor ဆိုတော့ DOS ထဲက edit လိုပဲ စိတ်ကထင်လိုက်မိတယ်။ အိမ်ရောက်တော့ စမ်းကြည့်ဦးမယ်ဆိုပြီး vi လို့ရိုက်လိုက်တယ် အဲဒီ့မှာပြဿနာစတာပဲ Menu လည်းတစ်ခုမှမပါ စာကလည်းရိုက်လို့မရ မရတာနဲ့ ခလုတ်မှန်သမျှ အကုန်လျှောက်နှိပ်တော့ ဘယ်ဟာနှိပ်လိုက်မိသလဲမသိဘူး စာရိုက်လို့ရသွားတယ်။ ရိုက်လို့ရသွားပြန်တော့ Save ဘယ်လိုလုပ်ရမလဲ မသိတော့ဘူး။ အဲဒါထက်ဆိုးတာက vi ထဲကနေဘယ်လို ထွက်ရမှန်းမသိတော့တာပဲ နောက်ဆုံးကြံရာမရတာနဲ့ မီးခလုတ်ပိတ်လိုက်ရတယ်။ ၁၀ နှစ်နီးနီးလွန်လာပြီးတဲ့ အခုနောက်တော့ vi နဲ့အသားကျနေတာ အချိန်တွေအတော်ကြာသွားခဲ့ပြီ ဒါပေမယ့် မီးခလုတ်ပိတ်လိုက်ရတာ အမှတ်တရဖြစ်နေတယ်။</p>
<p><a href="http://www.userfriendly.org/cartoons/archives/11mar/uf001688.gif" rel="lightbox[319]"><img alt="Six Editor" src="http://www.userfriendly.org/cartoons/archives/11mar/uf001688.gif" title="Six Editor" width="520"></a></p>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.calmhill.info/2011/06/15/vi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>E-Book များနဲ့ တစ်ဝဲလည်လည်</title>
		<link>http://blog.calmhill.info/2011/05/31/e-book/</link>
		<comments>http://blog.calmhill.info/2011/05/31/e-book/#comments</comments>
		<pubDate>Tue, 31 May 2011 06:23:14 +0000</pubDate>
		<dc:creator>CalmHill</dc:creator>
				<category><![CDATA[နည်းပညာ]]></category>

		<guid isPermaLink="false">http://blog.calmhill.info/?p=508</guid>
		<description><![CDATA[ပရိုဂရမ်မာတစ်ယောက် ဘယ်အရာအချမ်းသာဆုံးလဲ မေးခဲ့မယ်ဆိုရင် E-Book လို့ဖြေရပါလိမ့်မယ်။ ကိုယ်လည်း ထိုနည်းလည်းကောင်းပဲပါပဲ မြောက်များစွာသော E-Book တွေစုဆောင်းထားမိပါတယ်။ တစ်ချိန်က အခုခေတ်လို အင်တာနက် မလွယ်တော့ နေရှင်နယ်စီဒီကိုသွားတယ် E-Book Collection အသစ်ထွက်လားကြည့် ထွက်ရင်ဝယ်ရပါတယ် လိုချင်တာရော မလိုချင်တာရော စုံစီနဖာပါသမျှ အကုန်စုဆောင်းရပါတယ် တစ်ခါတစ်ယံလည်း ဆရာတစ်ယောက်က သူရှာလို့ဖွေလို့ရရင် တပည့်ကျော်ကို ခေါ်ပြီးပေးတတ်ပါတယ်။ အင်တာနက်ရတော့ ပိုဆိုးသွားပါတယ် အားတိုင်းရှာလိုက် ဒေါင်းလိုက်လုပ်နေလို့ အရေအတွက်တွေ ပိုလို့သာတိုးလာပါတယ်။ ဝယ်ထားတာလားလို့ မသိချင်ယောင်ဆောင်မေးရင်တော့ မဟုတ်ပါဘူး တစ်ခုမှမဝယ်ထားပါဘူး အကုန်လုံးခိုးထားတာပါလို့ အမြဲဖြေပါတယ်။ &#8230; <a href="http://blog.calmhill.info/2011/05/31/e-book/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<span style="font-family:'Masterpiece Uni Sans',Yunghkio,Myanmar3, Parabaik, Padauk, 'WinUni Innwa', 'Win Uni Innwa', 'MyMyanmar Unicode',Myanmar2;"><p>ပရိုဂရမ်မာတစ်ယောက် ဘယ်အရာအချမ်းသာဆုံးလဲ မေးခဲ့မယ်ဆိုရင် E-Book လို့ဖြေရပါလိမ့်မယ်။ ကိုယ်လည်း ထိုနည်းလည်းကောင်းပဲပါပဲ မြောက်များစွာသော E-Book တွေစုဆောင်းထားမိပါတယ်။ တစ်ချိန်က အခုခေတ်လို အင်တာနက် မလွယ်တော့ နေရှင်နယ်စီဒီကိုသွားတယ် E-Book Collection အသစ်ထွက်လားကြည့် ထွက်ရင်ဝယ်ရပါတယ် လိုချင်တာရော မလိုချင်တာရော စုံစီနဖာပါသမျှ အကုန်စုဆောင်းရပါတယ် တစ်ခါတစ်ယံလည်း ဆရာတစ်ယောက်က သူရှာလို့ဖွေလို့ရရင် တပည့်ကျော်ကို ခေါ်ပြီးပေးတတ်ပါတယ်။ အင်တာနက်ရတော့ ပိုဆိုးသွားပါတယ် အားတိုင်းရှာလိုက် ဒေါင်းလိုက်လုပ်နေလို့ အရေအတွက်တွေ ပိုလို့သာတိုးလာပါတယ်။ ဝယ်ထားတာလားလို့ မသိချင်ယောင်ဆောင်မေးရင်တော့ မဟုတ်ပါဘူး တစ်ခုမှမဝယ်ထားပါဘူး အကုန်လုံးခိုးထားတာပါလို့ အမြဲဖြေပါတယ်။</p>
<p>လက်ရှိကတော့ E-Book တွေကို Category Hierarchy အလိုက် Folder တွေခွဲသိမ်းပါတယ် ဒါပေမယ့်ပြဿနာက စာအုပ်တစ်အုပ်ဟာ Category တစ်ခုထက်ပိုပါရင် အခက်အခဲဖြစ်ပါတယ် Windows မှာက File တစ်ခုဟာ Folder တစ်ခုမှာပဲပါလို့ရပါတယ် အဲဒါကြောင့် အမျိုးအစားခွဲရင် အမြင့်ဆုံး Category တစ်ခုကိုပဲရွေးသိမ်းရတော့ အချိန်ကြာလာတော့ ရှာရခက်လာပါတယ် Category တစ်ခုထက်ပိုပါတဲ့ စာအုပ်ရှာချင်ရင် ဘယ်နေရာသွားရှာရမလဲ အတော်ကိုခက်ခဲလာပါတယ် အဲဒါနဲ့စနစ်တစ်ကျ ပြန်စီစဉ်ဖို့စဉ်းစားရပါတယ်။ လိုချင်တဲ့ဆော့ဝဲက ရှာလို့လွယ်ရမယ် စာအုပ်တွေကိုသိမ်းတာ ကိုယ်တိုင်လုပ်စရာမလိုချင်ဘူး နောက်ပြီးတော့ အများအားဖြင့်ကိုယ်က မတူညီတဲ့ OS တွေပေါ်မှာသုံးတတ်တော့ Multiple Platform မှာအလုပ်လုပ်တာလိုချင်တယ် အလကားရရမယ် ဒါမှမဟုတ်ဈေးချိုရမယ်။</p>
<p>ပထမဆုံးတော့ စာကလေးကို အမြောက်နဲ့ချိန်တဲ့ အလုပ်မျိုးနဲ့စပါတယ် စာအုပ်ဆိုတော့ ဒါကစာကြည့်တိုက်ပေါ့ အဲဒီတော့ စာကြည့်တိုက်ဆော့ဝဲတွေ လိုက်ကြည့်ပါတယ်။ Greenstone, NewGenLib, Evergreen, Invenio, Koha, … အဲလိုဟာတွေ လိုက်စမ်းကြည့်တယ် ကောင်းတာကကောင်းပါတယ် ဒါပေမယ့် မလိုတာတွေပိုနေတယ် အများအားဖြင့် Web-Based တွေဖြစ်နေတော့ ကိုယ်နဲ့အသုံးမတည့်ဘူး။ အဲဒီ့အထဲမှာ Invenio ကိုတော့သဘောကျပါတယ် သူက Digital Library အတွက်သီးသန့်ဆိုတော့ Metadata Search တင်မကပဲနဲ့ Content Search ပါလုပ်နိုင်ပါတယ် ဒါပေမယ့်ကိုယ့်အတွက်တော့ တစ်ယောက်တည်းသုံးမှာ ဖြစ်နေတော့ Content Search မပါလည်းရပါတယ် တကယ်တော့ Content Search ဟာ Indexing Cost ကြီးလွန်းပါတယ်။</p>
<p>ဒီလိုနဲ့ စာကလေးပစ်ဖို့တော့ လောက်လေးခွလောက်ဆို အဆင်ပြေပါတယ်ဆိုပြီး E-Book Management Software တွေဘက်ပြန်လှည့်ရပါတယ်။ Alfa Ebooks Manager, Calibre, Koobits, … အဲဒါတွေစမ်းကြည့်ဖြစ်တယ်။ Alfa ကိုသဘောကျပါတယ် UI လည်းအတော်ကို ကောင်းပါတယ် Catalog, Search, Organize, Metadata Search from Web, Preview, Manage Ebook files အဲဒါတွေကို သဘောကျပါတယ် ခက်တာက ဝင်းဒိုးအတွက်ရယ် အလကားမရပဲ ၁၉.၉၅ ဒေါ်လာပေးရတယ်။ ထပ်ရှာကြည့်တော့ ဆင်တူပြီးအလကားရတာက Koobits ရှိပါတယ် Koobits မှာတစ်ခုပိုသဘောကျတာက Annotate လုပ်လို့ရပါတယ် သူလည်းပြဿနာက ဝင်းဒိုးအတွက်ပဲရပါတယ်။ နောက်တစ်ခုထပ်ရှာကြည့်တော့ Calibre ကိုတွေ့တယ်။</p>
<p>Calibre ကိုတော့ Open-Source ဖြစ်တာရယ် Platform မရွေးတာရယ်ကြောင့် စစချင်းပဲအတော် သဘောကျမိတယ်။ ပထမဆုံးစာအုပ်တစ်အုပ် ထည့်ကြည့်ပါတယ် PDF File ကိုရွေးပေးလိုက်တော့ Title, Authors စတာတွေကို File Metadata ထဲကနေဆွဲထုတ်နိုင်ပါတယ် အဲဒါကြောင့် အကုန်လုံးပြန်ထည့်စရာ မလိုပါဘူး။ ကိုယ့်လိုပျင်းတဲ့လူအတွက် အသုံးတည့်တယ်။ Tags တွေလည်း ကိုယ်တိုင်မခွဲချင်ရင် Online ရှာခိုင်းလို့ရပါတယ် ဒါပေမယ့် အဲဒါတော့ ကိုယ်တိုင်ခွဲမှာဖြစ်လို့ မသုံးဖြစ်ပါဘူး။ Format Converter တွေပါတဲ့အတွက် အလွယ်တစ်ကူပဲ ကိုယ်သုံးတဲ့ Ebook Reader ရှိရင် သင့်လျော်ရာပြောင်းလို့ရပါတယ်။ Build-in Webserver တစ်ခုပါလို့ လိုအပ်ရင် Share လုပ်လို့ရပါတယ် Shared by Email လည်းပါလို့ တစ်ယောက်ယောက်က အကူအညီတောင်းလို့ ရှာပေးရရင် တစ်ခါတည်း Email ပို့လို့ရတာကို သဘောကျမိတယ်။ မကောင်းတာဘာရှိသလဲဆိုရင် Alfa and Koobits ထက်တော့ UI ညံ့ပါတယ်။</p>
<p>ဒီလိုနဲ့ ဆယ်နှစ်တာသူခိုးမှတ်တမ်းကို Calibre သုံးပြီး Catalog လုပ်တဲ့လုပ်ငန်းစပါတယ် အတော်ကိုအားရစရာကောင်းပါတယ် တစ်နေကုန်ထိုင်လုပ်တာ စာအုပ် ၁၃၀လောက်ပြီးပါတယ် တကယ်တမ်းလုပ်ရမှာက ၃ ထောင်လောက်ရှိပါတယ်။ မနေ့ညက ပြီးသွားတဲ့ Calibre Library Data တွေကို Dropbox ထဲထည့်ပြီး Sync လုပ်ထားလိုက်တယ်။ ဒီမနက်မှ ကိုယ်သုံးနေကျ စက်တွေမှာ Calibre ကို Install လုပ် Dropbox ထဲက Calibre Library နဲ့ Configure လုပ်လိုက်တယ် အတော်စိတ်ချမ်းသာစရာ ကောင်းသွားပါတယ် အရင်လိုရှာချင်လို့ ဘယ် Folder ကို ဖွင့်ရမလဲ စဉ်းစားစရာမလိုတော့ဘူး ရှာချင်တဲ့ Keywords လေးရိုက်ထည့် ကျလာတဲ့စာရင်းထဲကနေ ရွေးဖတ်ရုံပါပဲ။</p>
</span>]]></content:encoded>
			<wfw:commentRss>http://blog.calmhill.info/2011/05/31/e-book/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

