<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
    <channel>
        <title>Jundols.com</title>
        <link>http://www.jundols.com/xe/</link>
        <description></description>
        <language>ko</language>
        <pubDate>Mon, 21 May 2012 02:54:17 +0900</pubDate>
        <lastBuildDate>Mon, 21 May 2012 02:54:17 +0900</lastBuildDate>
        <generator>XpressEngine 1.4.5.7</generator>
                                <item>
            <title>우분투에서 Git 업그레이드하기</title>
            <dc:creator>준도리</dc:creator>
            <link>http://www.jundols.com/xe/jundols/1461</link>
            <guid isPermaLink="true">http://www.jundols.com/xe/jundols/1461</guid>
                        <comments>http://www.jundols.com/xe/jundols/1461#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;우분투에 같이 오는 git 버전이 낮아서..&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;post-text&quot;&gt;&lt;p&gt;To update git to newer version in ubuntu&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;sudo add-apt-repository ppa:git-core/ppa&lt;/li&gt;&lt;li&gt;sudo apt-get update&lt;/li&gt;&lt;li&gt;sudo apt-get install git&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;i am using ubuntu 10.04.2 Lucid&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이렇게 하면 된다..&lt;br /&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                        <pubDate>Thu, 09 Feb 2012 09:58:44 +0900</pubDate>
                        <category>git</category>
                                </item>
                <item>
            <title>C++/CLI Quick Reference</title>
            <dc:creator>준도리</dc:creator>
            <link>http://www.jundols.com/xe/jundols/1229</link>
            <guid isPermaLink="true">http://www.jundols.com/xe/jundols/1229</guid>
                        <comments>http://www.jundols.com/xe/jundols/1229#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;h3&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; C++/CLI란 무엇인가?&lt;/h3&gt;&lt;br /&gt;CLR위에서 돌아가는 프로그램 C# 같은 언어에서 네이티브 코드(C++, C)함수를 사용할 수 있도록 중간 다리 역활을 해주는 것이다.&lt;br /&gt;&lt;br /&gt;C++/CLI를 사용하기 위해서는 Visual Studio 2005 이상의 버전이 설치되어 있어야 컴파일러가 C++/CLI 문법을 인식한다.&lt;br /&gt;&lt;br /&gt;C++/CLI를 이용하면 C# 의 장점과 C++의 장점을 동시에 취할 수 있다.&lt;br /&gt;&lt;br /&gt;단점이 있다면 C++/CLI의 문법을 새로 익혀야 한다는 점이다. 코드가 복잡해 지면 문법이 무지 햇갈린다!!&lt;br /&gt;&lt;br /&gt;따라서 이 문서에서는 C++/CLI 의 문법을 간단하게 정리했다.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C++/CLI의 사전 지식####&lt;/h3&gt;&lt;br /&gt;C++/CLI 의 목적은 관리되지 않은 코드를 관리되는 코드와 엮어주는 것이다.&lt;br /&gt;&lt;br /&gt;여기서 관리되지 않은 코드는 C,C++ 코드를 의미한다.&lt;br /&gt;&lt;br /&gt;여기서 관리되는 코드는 C# 코드를 의미한다.&lt;br /&gt;&lt;br /&gt;이게 무슨 말일까?&lt;br /&gt;&lt;br /&gt;예를 들어 struct dataA 구조체가 있다고 하자.&lt;br /&gt;&lt;br /&gt;이것은 관리되지 않은 코드이다, 즉 C코드이다.&lt;br /&gt;&lt;br /&gt;이 dataA 구조체는 C#에서 참조할 수 없다.&lt;br /&gt;&lt;br /&gt;그러면 어떻게 dataA 구조체를 C#에서도 읽고, 쓰게 할 수 있을까?&lt;br /&gt;&lt;br /&gt;아래와 같이 관리되는 구조체를 만들어 준다&lt;br /&gt;&lt;br /&gt;struct ref wrapDataA&lt;br /&gt;&lt;br /&gt;위는 C++/CLI의 문법이다. 위 처럼 c#에서 인지할 수 있는 구조체를 만들어 주는 것이다.&lt;br /&gt;&lt;br /&gt;wrapDataA의 구조체 내용을 dataA 구조체와 똑같이 만들어 준다.&lt;br /&gt;&lt;br /&gt;c#은 wrapDataA 는 접근할 수 있으므로, 함수를 새로 만들어 dataA의 내용을 wrapDataA에 넣어주는 코드를 짜면되는 것이다.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; C++/CLI 프로젝트 만들기&lt;/h3&gt;&lt;br /&gt;Visual Studio 2005에서 새로 만들기로 cpp파일을 하나 추가하면 된다.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; C++ 의 해더 파일 include 하기&lt;/h3&gt;&lt;br /&gt;&amp;nbsp;그냥 C++코드 처럼 #include &amp;lt;stdio.h&amp;gt; 이렇게 사용한다&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; C# 기본 클래스 참조하기&lt;/h3&gt;&lt;p&gt;&lt;br /&gt;using namespace System;&lt;br /&gt;&lt;br /&gt;위 처럼 하면 된다. 주의할 점은 dot(.)사이가 ::로 바뀐다는 점이다.&lt;br /&gt;&lt;br /&gt;아래는 그것에 대한 예제이다&lt;br /&gt;&lt;br /&gt;using namespace System::Runtime::InteropServices;&lt;br /&gt;&lt;br /&gt;보시는 바와 같이 System.Runtime 이런식으로 하는게 아니라 :: 를 사용하게 된다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; define 문은 그대로 사용가능 하다&lt;/h3&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; class 만들기&lt;/h3&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c#에서 접근이 가능한 class를 만드는 방법이다&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public ref class _name_&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [참고] 관리될 필요가 없는 클래스(c#에서 접근하지 않아도 되는 클래스)는 예전처럼 그냥 쓰면 된다&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 구조체 만들기&lt;/h3&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c#에서 접근 가능한 구조체 만들기 예제&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public ref struct _name_{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String^&amp;nbsp; _var1_;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uchar&amp;nbsp;&amp;nbsp; _var2_;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array&amp;lt;int&amp;gt;^ _var3_;&amp;nbsp; /* 1차원 배열 */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array&amp;lt;int,2&amp;gt;^ _var4_; /* 2차원 배열 */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [참고] 관리될 필요가 없는 구조체(c#에서 접근하지 않아도 되는 구조체)는 예전처럼 그냥 쓰면 된다&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 배열 선언하고 이용하기&lt;/h3&gt;&lt;p&gt;&lt;br /&gt;관리되는 코드로 배열 선언하는 법은 다음과 같다&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int형 1차원 배열&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; array&amp;lt;int&amp;gt;^ _name_ = gcnew array&amp;lt;int&amp;gt;[_count_];&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int형 2차원 배열&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; array&amp;lt;int,2&amp;gt;^&amp;nbsp; _name_ = gcnew array&amp;lt;int, 2&amp;gt;(1차원 크기, 2차원 크기);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(int i = 0; i &amp;lt; 2; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(int k = 0; k &amp;lt; 32; k++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _name_[i,k] = ~~~~~~;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c#으로 부터 인자값 받기&lt;/h3&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int, short 같은 경우는 그냥 받으면 된다.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void func(int a, short b){ }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string 형식 받기&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void func(String^ _name_){ }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 구조체 받기&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void func(testStruct^% _name_){ }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 사용법은... _name_-&amp;gt;member = 10;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C#에서는 func(ref teststruct); 이렇게 호출해야 한다&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 구조체 배열 받기&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; void func(array&amp;lt;testStruct^&amp;gt;^% _name_){ }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 이때 C#에서는 func(ref teststructArray); 이렇게 호출해야 한다.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 관리되고 있는 배열을 Native Pointer로 활용하기#&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 관리되고 있는 배열들을 바로 네이티브 코드에 넣을 수 없다. 아래와 같이 pin_ptr를 이용한다.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; array&amp;lt;int&amp;gt;^ arr =&amp;nbsp; gcnew array&amp;lt;int&amp;gt;(SIZE);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pin_ptr&amp;lt;int&amp;gt; p = &amp;amp;arr[0];&amp;nbsp;&amp;nbsp; // pin pointer to first element in arr&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int* np = p;&amp;nbsp;&amp;nbsp; // pointer to the first element in arr&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; native_function(np);&amp;nbsp;&amp;nbsp; // pass pointer to native function&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 관련 자료 : http://msdn.microsoft.com/en-us/library/1dz8byfh(VS.80).aspx&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 스트링 문자열 사용하기&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 스트링 문자열 넘기기&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 새로운 예약어들&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Mon, 12 Dec 2011 01:17:33 +0900</pubDate>
                                </item>
                <item>
            <title>우분투 라이브 씨디 만들기</title>
            <dc:creator>준도리</dc:creator>
            <link>http://www.jundols.com/xe/jundols/1225</link>
            <guid isPermaLink="true">http://www.jundols.com/xe/jundols/1225</guid>
                        <comments>http://www.jundols.com/xe/jundols/1225#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;이번 문서의 목적은 사용자 입맛대로 수정하는 우분투 라이브 씨디 제작 방법이다.&lt;/p&gt;&lt;p&gt;원본 문서 : &lt;a href=&quot;https://help.ubuntu.com/community/LiveCDCustomization&quot;&gt;https://help.ubuntu.com/community/LiveCDCustomization&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h1&gt;준비과정&lt;/h1&gt;&lt;h3&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3&gt;첫번째로 필요한 툴들을 설치 해야 한다&lt;/h3&gt;&lt;p&gt;sudo aptitude install squashfs-tools genisoimage&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;두번째로 squashfs를 인식할 수 있도록 드라이버를 동적 로드한다&lt;/h3&gt;&lt;p&gt;sudo modprobe squashfs&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;이제, 수정할 오리지널 우분투ISO파일이 필요하다.&lt;/h3&gt;&lt;p&gt;여기서는 우분투 8.10을 예제로 한다. 우분투 8.10을 받아서 아래와 같이 저장한다&lt;/p&gt;&lt;p&gt;mkdir ~/live&lt;br /&gt;
mv ubuntu-8.10-desktop-i386.iso ~/live&lt;br /&gt;
cd ~/live&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h1&gt;시디 내용 풀기&lt;/h1&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;CD를 마운트 시켜서 CD내용을 읽을 수 있게 한다&lt;/h3&gt;&lt;p&gt;mkdir mnt&lt;br /&gt;
sudo mount -o loop ubuntu-8.10-desktop-i386.iso mnt&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;extract-cd폴더에 iso 파일의 내용을 푼다&lt;/h3&gt;&lt;p&gt;mkdir extract-cd&lt;br /&gt;
rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h1&gt;파일 시스템 내용 풀기&lt;/h1&gt;&lt;h3&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3&gt;파일 시스템 이미지를 마운트 한다&lt;/h3&gt;&lt;p&gt;mkdir squashfs&lt;br /&gt;
sudo mount -t squashfs -o loop mnt/casper/filesystem.squashfs squashfs&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;풀어낸 파일 시스템 이미지를 수정을 위해 edit 폴더로 복사한다&lt;/h3&gt;&lt;p&gt;mkdir edit&lt;br /&gt;
sudo cp -a squashfs/* edit/&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h1&gt;수정 준비 하고 chroot 하기&lt;/h1&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;만약 수정을 위해서 네트워크 연결이 필요하다면&lt;/h3&gt;&lt;p&gt;sudo cp /etc/resolv.conf edit/etc/&lt;br /&gt;
sudo cp /etc/hosts edit/etc/&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;수정할 파일 시스템 임시로 구성하기&lt;/h3&gt;&lt;p&gt;sudo mount --bind /dev/ edit/dev&lt;br /&gt;
sudo chroot edit&lt;br /&gt;
mount -t proc none /proc&lt;br /&gt;
mount -t sysfs none /sys&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;(these mount important 
directories of your host system - if you later decide to delete the 
edit/ directory, then make sure to unmount before doing so, otherwise 
your host system will become unusable at least temporarily until reboot)&lt;/p&gt;&lt;p&gt;(위에서 마운트한 디렉토리는 호스트 시스템의 중요한 디렉토리이다. 만약 당신이 나중에 edit/ 디렉토리를 지우기로 결정했다면,&lt;/p&gt;&lt;p&gt;우선 위 디렉토리들을 unmount해야 한다. 그렇지 않으면 당신의 호스트 시스템이 리부팅 하기 전까지 임시적으로 사용 불가 상태가 될 것이다)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;GPG키를 갱신하자&lt;/h3&gt;&lt;p&gt;export HOME=/root&lt;br /&gt;
export LC_ALL=C&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h1&gt;커스터마이징 하기&lt;/h1&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;프로그램 추가 삭제&lt;/h3&gt;&lt;p&gt;설치된 패키지를 크기대로 정렬해서 보기&lt;/p&gt;&lt;p&gt;dpkg-query -W --showformat=&apos;${Installed-Size} ${Package}\n&apos; | sort -nr | less&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;만약 위에서 조사된 패키지중에서 지우고 싶은게 있다면&lt;/h3&gt;&lt;p&gt;aptitude purge package-name&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;gconf 값 변경하기&lt;/h3&gt;&lt;p&gt;To make any change on the gconf attributes you must add the value that you want in the file &lt;b&gt;/etc/gconf/gconf.xml.defaults/%gconf-tree.xml&lt;/b&gt;.
 Adding a value in that file will change the default values of Gnome or 
other applications, so you can change fonts, backgrounds, themes, 
cursors etc.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;line862&quot;&gt;Instead of editing the file with &lt;b&gt;gedit&lt;/b&gt; or another text editor, you can use the &lt;b&gt;gconftool-2&lt;/b&gt;, under the chroot environment, running the following line: &lt;span class=&quot;anchor&quot; id=&quot;line-137&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-138&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-139&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --type string --set yourkey &quot;yourvalue&quot;&lt;/pre&gt;&lt;h3&gt;gfxboot에서 기본 언어 지정해 주기&lt;/h3&gt;&lt;p&gt;이 내용은 반드시 chroot를 빠져 나간 후에 해야 한다&lt;/p&gt;&lt;p&gt;sudo -s&lt;br /&gt;
aptitude install dpkg-dev&lt;br /&gt;
aptitude source gfxboot-theme-ubuntu gfxboot&lt;br /&gt;
cd gfxboot-theme-ubuntu*/&lt;br /&gt;
make DEFAULT_LANG=fi&lt;br /&gt;
sudo cp -af boot/* ../extract-cd/isolinux/&lt;br /&gt;
exit&lt;/p&gt;&lt;h1&gt;전문적인 커스터마이징 하기&lt;/h1&gt;&lt;h3&gt;커널 이나 부팅과정 수정하기&lt;/h3&gt;&lt;p&gt;커널을 수정하거나 부팅 과정을 수정하고 싶으면 extract-cd/casper 아래 있는 파일을 오버라이트 하면 된다&lt;/p&gt;&lt;p&gt;sudo cp edit/boot/vmlinuz-2.6.15-26-k7 extract-cd/casper/vmlinuz&lt;br /&gt;
sudo cp edit/boot/initrd.img-2.6.15-26-k7 extract-cd/casper/initrd.gz&lt;/p&gt;&lt;h3&gt;boot init 수정하기&lt;/h3&gt;&lt;p&gt;edit/usr/share/initramfs-tools/scripts/ 에 있는 파일을 수정하면 된다. 예들을어 호스트이름 이나 라이브씨디 유저의 이름을 변경하고 싶다면 아래 파일을 수정하라&lt;/p&gt;&lt;p&gt;edit/usr/share/initramfs-tools/scripts/casper&lt;/p&gt;&lt;p&gt;또는 유조이름이나 호스트이름을 수정하고 싶다면 아래를 변경하라&lt;br /&gt;
edit/usr/share/initramfs-tools/scripts/casper-bottom/10adduser&lt;br /&gt;
&lt;br /&gt;
to edit even the livecd user&apos;s password.&lt;br /&gt;
&lt;br /&gt;
P.S. in order to obtain an encrypted password, you have to use the mkpasswd program that&apos;s shipped with whois package!&lt;/p&gt;&lt;h3&gt;initrd 다시 만들기&lt;/h3&gt;&lt;p&gt;커널을 수정하였거나, boot init과정을 수정하였다면 아래 과정을 통해서 initrd를 새로 작성하고 extract-cd 에 오버라이트 해야 한다&lt;/p&gt;&lt;p&gt;sudo chroot edit&lt;br /&gt;
mkinitramfs -o /initrd.gz 2.6.27-7-generic&lt;/p&gt;&lt;p&gt;exit&lt;br /&gt;
mv edit/initrd.gz extract-cd/casper/&lt;/p&gt;&lt;p&gt;커널 버전은 씨디에 들어 있는 커널 버전을 확인 한 후에 위 명령을 적절히 변경한다. edit/lib/modules에서&lt;/p&gt;&lt;p&gt;커널 버전을 확인 할 수 있다&lt;/p&gt;&lt;h1&gt;정리하기&lt;/h1&gt;&lt;p&gt;위에서 작업을 마치고 이젠 정리하여면 아래 작업을 한다&lt;/p&gt;&lt;p&gt;aptitude clean&lt;br /&gt;
&lt;br /&gt;
rm -rf /tmp/* ~/.bash_history&lt;br /&gt;
&lt;br /&gt;
rm /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
umount /proc&lt;br /&gt;
umount /sys&lt;br /&gt;
exit&lt;br /&gt;
sudo umount edit/de&lt;/p&gt;&lt;h1&gt;씨디 제작하기&lt;/h1&gt;&lt;h3&gt;메니페스트를 재구성한다&lt;/h3&gt;&lt;p&gt;chmod +w extract-cd/casper/filesystem.manifest&lt;br /&gt;
sudo chroot edit dpkg-query -W --showformat=&apos;${Package} ${Version}\n&apos; &amp;gt; extract-cd/casper/filesystem.manifest&lt;br /&gt;
sudo cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop&lt;br /&gt;
sudo sed -i &apos;/ubiquity/d&apos; extract-cd/casper/filesystem.manifest-desktop&lt;/p&gt;&lt;h3&gt;수정한 파일 시스템을 압축한다&lt;/h3&gt;&lt;p&gt;sudo rm extract-cd/casper/filesystem.squashfs&lt;br /&gt;
sudo mksquashfs edit extract-cd/casper/filesystem.squashfs -nolzma&lt;/p&gt;&lt;h3&gt;기존의 MD5정보를 삭제하고 새롭게 만든다&lt;/h3&gt;&lt;p&gt;sudo -s&lt;br /&gt;
rm extract-cd/md5sum.txt&lt;br /&gt;
(cd extract-cd &amp;amp;&amp;amp; find . -type f -print0 | xargs -0 md5sum &amp;gt; md5sum.txt)&lt;br /&gt;
exit&lt;/p&gt;&lt;h3&gt;최종적으로 ISO파일을 만들면 완료가 된다.&lt;/h3&gt;&lt;p&gt;cd extract-cd&lt;br /&gt;
sudo mkisofs -D -r -V &quot;$IMAGE_NAME&quot; -cache-inodes -J -l -b 
isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size
 4 -boot-info-table -o ../ubuntu-8.04.1-desktop-i386-custom.iso .&lt;/p&gt;&lt;p&gt;이렇게 만들어진 ISO파일은 VirtualBox를 통해서 테스트를 하면 편하다&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Mon, 12 Dec 2011 01:10:26 +0900</pubDate>
                                </item>
                <item>
            <title>맥북에서 한글 설정</title>
            <dc:creator>준도리</dc:creator>
            <link>http://www.jundols.com/xe/jundols/1221</link>
            <guid isPermaLink="true">http://www.jundols.com/xe/jundols/1221</guid>
                        <comments>http://www.jundols.com/xe/jundols/1221#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;몇일간의 노가다 끝에 최적의 한/영 변환을 해냈다 -_-;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;라이온에서 테스트 함&lt;/p&gt;
&lt;p&gt;1. 바람 변환기 설치&amp;nbsp;( 반드시 1.6b7 를 설치한다 )&lt;/p&gt;
&lt;p&gt;2. 시스템 환경설정 &amp;gt; 손쉬운 사용 &amp;gt; 보조 장비에 대한 접근 활성화를 체크&lt;/p&gt;
&lt;p&gt;3. 재시작&lt;/p&gt;
&lt;p&gt;4. 화면 왼쪽 상단에 있는 언어 아이콘에 오른쪽 마우스&lt;/p&gt;
&lt;p&gt;5. 언어 및 텍스트 환경 설정 열기 &amp;gt; 바람 입력기를 추가&lt;/p&gt;
&lt;p&gt;6. 창 닫고 바람 입력기 아이콘으로 변경 시키고 다시 아이콘에 오른쪽 마우스 &amp;gt; 바람 환경설정&lt;/p&gt;
&lt;p&gt;7. 단축키 탭 &amp;gt; + 버튼 &lt;/p&gt;
&lt;p&gt;8. 단축키 타입 : 한글키 / 단축키 : 한글키 로 설정하고 Add&lt;/p&gt;
&lt;p&gt;9. 응용 프로그램가서 +버튼 &amp;gt; Parallels Desktop을 찾아서 추가 ( 리맵퍼 : 비활성화 )&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;여기까지가 바람 설정.. 이제부터는 KeyRemap4MacBook 설정&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. KeyRemap4MacBook 를 설치&lt;/p&gt;
&lt;p&gt;2. 어디서 잘 private.xml 파일을 구해서, Misc &amp;amp; uninstall 탭에 있는 Open private.xml클릭&lt;/p&gt;
&lt;p&gt;3. 새롭게 구한걸로 갔다가 덮어쓰기 &amp;gt; xml reload 버튼 누루기&lt;/p&gt;
&lt;p&gt;4. Change Key 탭에 가서 아래 항목을 체크&lt;/p&gt;
&lt;p&gt;&amp;nbsp;- Command_R to Command + Space ( KOR/ENG Only )&lt;/p&gt;
&lt;p&gt;&amp;nbsp;- Use PC Style Home/End (except in Virtual Machie, RDC) (2개 중 + 표시 있는 것)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;- Use PC Style Copy/Paste ( Except in Terminal, VM... )&lt;/p&gt;
&lt;p&gt;&amp;nbsp;- Use PC Style Undo&lt;/p&gt;
&lt;p&gt;&amp;nbsp;- Use PC Style Select All&lt;/p&gt;
&lt;p&gt;&amp;nbsp;- Use PC Style Save&lt;/p&gt;
&lt;p&gt;&amp;nbsp;- Use PC Style New Tab in Browser&lt;/p&gt;
&lt;p&gt;&amp;nbsp;- Use PC Style Find&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이렇게 하면 패러럴즈, 맥오에스 둘다 한영키로 한/영 변환이 된다 -_- &lt;/p&gt;
&lt;p&gt;아 조합 찾는라 힘들었다 ㅋㅋ&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Fri, 09 Dec 2011 13:38:31 +0900</pubDate>
                                </item>
                <item>
            <title>VS2010에서 Unix 형식 라인 인코딩하기</title>
            <dc:creator>준도리</dc:creator>
            <link>http://www.jundols.com/xe/jundols/1215</link>
            <guid isPermaLink="true">http://www.jundols.com/xe/jundols/1215</guid>
                        <comments>http://www.jundols.com/xe/jundols/1215#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;아래 프로그램을 깔면 저장할 떄 원하는 방식으로 end line encoding 을 해준다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;http://grebulon.com/software/stripem.php&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Thu, 08 Dec 2011 01:41:54 +0900</pubDate>
                                </item>
                <item>
            <title>네트워크 드라이브에 있는 VS Project 열기</title>
            <dc:creator>준도리</dc:creator>
            <link>http://www.jundols.com/xe/jundols/1211</link>
            <guid isPermaLink="true">http://www.jundols.com/xe/jundols/1211</guid>
                        <comments>http://www.jundols.com/xe/jundols/1211#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;보안 문제 때문에, 네트워크 드라이브를 통해서 비주얼 스튜디오 프로젝트 파일을 열면&lt;br /&gt;&lt;/p&gt;&lt;p&gt;DLL파일을 읽을 수 없다는 에러를 만난다.&lt;/p&gt;&lt;p&gt;해결 방법은 http://msdn.microsoft.com/en-us/library/dd409252.aspx 를 참고 하면 된다.&lt;/p&gt;&lt;p&gt;요약하자면, &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;configuration&amp;gt;
   &amp;lt;runtime&amp;gt;
      &amp;lt;loadFromRemoteSources enabled=&quot;true&quot;/&amp;gt;
   &amp;lt;/runtime&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/p&gt;&lt;p&gt;요 내용이 아래 파일 안에 추가되어야 한다.&lt;/p&gt;&lt;p&gt;C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe.config&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Thu, 08 Dec 2011 01:30:35 +0900</pubDate>
                                </item>
                <item>
            <title>파이어폭스 Add on 호환성 무시하기</title>
            <dc:creator>준도리</dc:creator>
            <link>http://www.jundols.com/xe/jundols/1205</link>
            <guid isPermaLink="true">http://www.jundols.com/xe/jundols/1205</guid>
                        <comments>http://www.jundols.com/xe/jundols/1205#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;firefox 8.0.1 하고 Read it later2.1.3하고 호환성 문제 때문에 설치가 안된다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;파폭이 워낙 자주 업데이트가 일어나서 이런 일이 자주 일어난다. 짜잉 -_-&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그럴때는 호환성 검사를 안하게 해주는 Add on compatibility Repoter를 깔면 될 수도 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;원래 이 에드온의 목적은 에드온의 호환성을 모질라에게 보고해 주는 툴인데, ㅋ&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;부가 기능(?)으로 이 툴을 깔면 호환성 검사를 스킵한다..ㅋㅋ&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Wed, 07 Dec 2011 04:18:33 +0900</pubDate>
                        <category>파이어폭스</category>
                        <category>호환성</category>
                                </item>
                <item>
            <title>요즘</title>
            <dc:creator>준도리</dc:creator>
            <link>http://www.jundols.com/xe/jundols/1192</link>
            <guid isPermaLink="true">http://www.jundols.com/xe/jundols/1192</guid>
                        <comments>http://www.jundols.com/xe/jundols/1192#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;요즘 계속 시스템 프로그래밍이나 공부를 못하고, 계속 WPF로 윈도우 어플만 짜고 있으니 시스템쪽 프로그래밍 감각이 사라지는듯;;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이제는 캐쉬가 어쩌고, 메모리 베리어가 어찌고, 멀티 코어가 어찌고 하는게 주된 업무가 아닌게 되버려서 ㅋ&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;물론, WPF로 윈도 프로그래밍 짜는것도 쉽다거나 그런거는 아니지만ㅋ&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;빨리 윈도우쪽 끝내고 다시 커널로 돌아가자...내 취향에는 시스템 프로그래밍이 더 좋아..&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;과연..돌아갈 수 있을까나..&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Fri, 25 Nov 2011 02:26:43 +0900</pubDate>
                                </item>
                <item>
            <title>C#(System.Data.SQLite) vs CSharpSqlite</title>
            <dc:creator>준도리</dc:creator>
            <link>http://www.jundols.com/xe/jundols/1180</link>
            <guid isPermaLink="true">http://www.jundols.com/xe/jundols/1180</guid>
                        <comments>http://www.jundols.com/xe/jundols/1180#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;SQLite에서 정식으로 배포되는 System.Data.SQLite 버전의 C# SQLite DLL이 있고,&lt;/p&gt;&lt;p&gt;다른 곳에서 독자적으로 개발하는 CsharpSqlite DLL이 있는데, 코드 수준에서 호환되지는 않는다.(하지만 마이그레이션 한다고 하면 크게 고칠곳은 없다)&lt;/p&gt;&lt;p&gt;http://code.google.com/p/csharp-sqlite/wiki/Benchmarks&lt;/p&gt;&lt;p&gt;위 싸이트 벤치마킹에 따르면 정식 DLL보다 iterating에서 CshartSqlite DLL이 20~40%정도 빠르다! 라고 자랑하고 있는데..&lt;/p&gt;&lt;p&gt;나는 Insert,Update는 느려도 되니까 이걸로 써야겠다! 라고 생각하고 도입했는데 결과는 더 느리다 ㅠ_ㅠ&lt;/p&gt;&lt;p&gt;원인은, 벤치마킹에 사용한 SQLite 정식 DLL의 Method가 GetValues라는 함수 인데, 이 함수 자체가 느리다.&lt;/p&gt;&lt;p&gt;정식 DLL에서 GetValues함수를 쓰지 않고, GetInt32() 나 GetDouble()로 일일이 지정해 줘서 쓰게 되면&lt;/p&gt;&lt;p&gt;CsharpSqlite 보다도 iteration 속도가 빠르게 나오는 것을 확인했다.&lt;/p&gt;&lt;p&gt;결과적으로 헛짓했지만, 아쉬운건 지금 100만건 iteration하는데 (Row당 Column개수가 8개임을 고려), 무려 4.8초나 걸린다 ㅠ_ㅠ&lt;/p&gt;&lt;p&gt;이거보다 좀 더 빠르게 하는 방법이 없을까나..&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Wed, 09 Nov 2011 14:34:35 +0900</pubDate>
                        <category>sqlite</category>
                        <category>c#</category>
                                </item>
                <item>
            <title>C#(System.Data.SQLite)용 SQLite의 DataType</title>
            <dc:creator>준도리</dc:creator>
            <link>http://www.jundols.com/xe/jundols/1174</link>
            <guid isPermaLink="true">http://www.jundols.com/xe/jundols/1174</guid>
                        <comments>http://www.jundols.com/xe/jundols/1174#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;c#으로 SQLite만지작 하다가 자꾸 Value was either too large or too small for an Int32 이런 에러나 가서 문서를 찾아보니&lt;/p&gt;&lt;p&gt;테이블을 생성할때 &quot;INT&quot;로 만들면 32비트용, &quot;INTEGER&quot;로 만들면 64비트용 -_-;; 헐 Native SQLite도 그런가?&lt;/p&gt;&lt;p&gt;어쨌든, 아래는 C# SQLite DataType목록이다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Since the SQLite engine is inherently typeless and ADO.NET is much 
more strongly typed, the ADO.NET wrapper must make certain decisions 
about the columns returned in any given SQL query.&amp;nbsp; One of the deciding 
factors&amp;nbsp;is&amp;nbsp;the underlying datatype declared in the CREATE TABLE 
statement.&lt;/p&gt;
&lt;p&gt;The following lists the datatypes and mappings the SQLite ADO.NET 
wrapper understands.&amp;nbsp; If there is anything missing, wrong, or needs 
adding, please let me know:&lt;/p&gt;


&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;COUNTER&lt;/td&gt;
&lt;td&gt;DbType.Int64&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AUTOINCREMENT&lt;/td&gt;
&lt;td&gt;DbType.Int64&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IDENTITY&lt;/td&gt;
&lt;td&gt;DbType.Int64&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LONG&lt;/td&gt;
&lt;td&gt;DbType.Int64&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TINYINT&lt;/td&gt;
&lt;td&gt;DbType.Byte&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;INTEGER&lt;/td&gt;
&lt;td&gt;DbType.Int64&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;INT&lt;/td&gt;
&lt;td&gt;DbType.Int32&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VARCHAR&lt;/td&gt;
&lt;td&gt;DbType.String&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NVARCHAR&lt;/td&gt;
&lt;td&gt;DbType.String&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CHAR&lt;/td&gt;
&lt;td&gt;DbType.String&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NCHAR&lt;/td&gt;
&lt;td&gt;DbType.String&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TEXT&lt;/td&gt;
&lt;td&gt;DbType.String&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NTEXT&lt;/td&gt;
&lt;td&gt;DbType.String&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;STRING&lt;/td&gt;
&lt;td&gt;DbType.String&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DOUBLE&lt;/td&gt;
&lt;td&gt;DbType.Double&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FLOAT&lt;/td&gt;
&lt;td&gt;DbType.Double&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;REAL&lt;/td&gt;
&lt;td&gt;DbType.Single&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BIT&lt;/td&gt;
&lt;td&gt;DbType.Boolean&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YESNO&lt;/td&gt;
&lt;td&gt;DbType.Boolean&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LOGICAL&lt;/td&gt;
&lt;td&gt;DbType.Boolean&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BOOL&lt;/td&gt;
&lt;td&gt;DbType.Boolean&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NUMERIC&lt;/td&gt;
&lt;td&gt;DbType.Decimal&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DECIMAL&lt;/td&gt;
&lt;td&gt;DbType.Decimal&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MONEY&lt;/td&gt;
&lt;td&gt;DbType.Decimal&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CURRENCY&lt;/td&gt;
&lt;td&gt;DbType.Decimal&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TIME&lt;/td&gt;
&lt;td&gt;DbType.DateTime&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DATE&lt;/td&gt;
&lt;td&gt;DbType.DateTime&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TIMESTAMP&lt;/td&gt;
&lt;td&gt;DbType.DateTime&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DATETIME&lt;/td&gt;
&lt;td&gt;DbType.DateTime&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BLOB&lt;/td&gt;
&lt;td&gt;DbType.Binary&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BINARY&lt;/td&gt;
&lt;td&gt;DbType.Binary&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VARBINARY&lt;/td&gt;
&lt;td&gt;DbType.Binary&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IMAGE&lt;/td&gt;
&lt;td&gt;DbType.Binary&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GENERAL&lt;/td&gt;
&lt;td&gt;DbType.Binary&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OLEOBJECT&lt;/td&gt;
&lt;td&gt;DbType.Binary&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GUID&lt;/td&gt;
&lt;td&gt;DbType.Guid&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UNIQUEIDENTIFIER&lt;/td&gt;
&lt;td&gt;DbType.Guid&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MEMO&lt;/td&gt;
&lt;td&gt;DbType.String&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NOTE&lt;/td&gt;
&lt;td&gt;DbType.String&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LONGTEXT&lt;/td&gt;
&lt;td&gt;DbType.String&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LONGCHAR&lt;/td&gt;
&lt;td&gt;DbType.String&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SMALLINT&lt;/td&gt;
&lt;td&gt;DbType.Int16&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BIGINT&lt;/td&gt;
&lt;td&gt;DbType.Int64&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LONGVARCHAR&lt;/td&gt;
&lt;td&gt;DbType.String&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SMALLDATE&lt;/td&gt;
&lt;td&gt;DbType.DateTime&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SMALLDATETIME&lt;/td&gt;
&lt;td&gt;DbType.DateTime&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;</description>
                        <pubDate>Wed, 09 Nov 2011 10:18:29 +0900</pubDate>
                        <category>sqlite</category>
                        <category>c#</category>
                                </item>
                <item>
            <title>Linux에서 콘솔 내용을 파일로 저장하기</title>
            <dc:creator>준도리</dc:creator>
            <link>http://www.jundols.com/xe/jundols/1130</link>
            <guid isPermaLink="true">http://www.jundols.com/xe/jundols/1130</guid>
                        <comments>http://www.jundols.com/xe/jundols/1130#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;원문 : http://linux.byexamples.com/archives/349/how-to-redirect-output-to-a-file-as-well-as-display-it-out/&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;text-align: left;&quot;&gt;standard output을 파일로 redirect시키는 방법은 간단하다. 그냥 redirection 기호만 사용하면 된다. 아래는 예제다&lt;br /&gt;&lt;pre class=&quot;brush: plain;&quot;&gt;echo &quot;hello world&quot; &amp;gt; test.txt&lt;/pre&gt;&lt;p&gt;하지만 이렇게 하면 콘솔에는 아무것도 보이지 않는다. 콘솔에도 보이고 파일에도 저장되게 하려면? 정답은 tee 명령이다&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre class=&quot;brush: plain;&quot;&gt;echo &quot;hello world&quot; | tee test.txt&lt;/pre&gt;파일 뒤에 계속 내용을 이어서 기록하려면? &amp;gt;&amp;gt; 를 사용하자&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;pre class=&quot;brush: plain;&quot;&gt;echo&quot;hello world&quot; &amp;gt;&amp;gt; test.txt&lt;/pre&gt;동시에 파일과 화면에 보이는 걸 계속 이어서 기록하려면?&lt;br /&gt;&lt;pre class=&quot;brush: plain;&quot;&gt;echo&quot;hello world&quot; | tee -a test.txt&lt;/pre&gt;standard output(stdou) 과 standard error(stderr)으로 나누어져 있으면?&lt;br /&gt;아래 2개의 다른 output stream을 볼 수 있다. 하나는 stdou이고 다른 하나는 stderr이다.&lt;br /&gt;일반적인 프린트는 stdout를 사용하고, 에러에 관련된 메세지는 보통 stderr를 사용한다.&lt;br /&gt;간단하게 파이썬으로 1개의 stdout을 사용하고 1개의 stderr를 사용하는 스크립트를 만들어보자.&lt;br /&gt;&lt;pre class=&quot;brush: python;&quot;&gt;#!/usr/bin/env python

import sys

sys.stdout.write(&quot;I am stdout\n&quot;)
sys.stderr.write(&quot;I am stderr\n&quot;)
&lt;/pre&gt;&lt;p&gt;좋다. 파이썬 스크립드를 sout.py라고 저장하고, 출력을 파일로 redirect 시도해보자.&lt;br /&gt;&lt;/p&gt;&lt;pre class=&quot;brush: plain;&quot;&gt;$ ./sout.py &amp;gt; test.txtI am stderr&lt;/pre&gt;standard output은 redirect가 되었지만, stderr은 그대로 화면으로 보여진다.&lt;br /&gt;&lt;p&gt;stderr을 refirect하고, stdour만 화면에 보여지게 하려면?&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre class=&quot;brush: plain;&quot;&gt;./sout.py 2&amp;gt; test.txt&lt;/pre&gt;stdout 과 stderr 둘다 파일로 저장하고 싶다면&lt;p&gt;&lt;/p&gt;&lt;pre class=&quot;brush: plain;&quot;&gt;./sout.py 2&amp;amp;&amp;gt; test.txt&lt;/pre&gt;마지막으로, stdout 과 stderr 둘 다 화면과 파일로 동시에 redirect하고 싶다면&lt;p&gt;&lt;/p&gt;&lt;pre class=&quot;brush: plain;&quot;&gt;./sout.py 2&amp;gt;&amp;amp;1 | tee test.txt&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</description>
                        <pubDate>Tue, 08 Nov 2011 13:26:51 +0900</pubDate>
                        <category>console</category>
                        <category>redirect</category>
                        <category>stdout</category>
                                </item>
                <item>
            <title>WPF 기반 Chart 컴포넌트들</title>
            <dc:creator>준도리</dc:creator>
            <link>http://www.jundols.com/xe/jundols/1115</link>
            <guid isPermaLink="true">http://www.jundols.com/xe/jundols/1115</guid>
                        <comments>http://www.jundols.com/xe/jundols/1115#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;&lt;a href=&quot;http://www.mindscapehq.com/demo/SilverlightElements/demopage.html#/ChartOverviewPage&quot;&gt;http://www.mindscapehq.com/demo/SilverlightElements/demopage.html#/ChartOverviewPage&lt;/a&gt;&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;- 200백만 포인트를 빠르게 그린다.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;- 박스 형태의 확대 가능&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;- 100만원&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;- 고급스럽지는 않고, 기능이 다양하지 않다&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;&lt;a href=&quot;http://dv2011.componentart.com/#Start&quot;&gt;http://dv2011.componentart.com/#Start&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;- 백만 포인트 그리는데 좀 시간이 걸린다&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;- Cycle을 표시할 수 있게 Two level Axis 가 된다.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;- 기능은 엄청 다양하다&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;&lt;a href=&quot;http://www.steema.com/&quot;&gt;http://www.steema.com/&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;&amp;nbsp;- TeeChart 라고 부른다&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;&amp;nbsp;- 유명하고 좋다고 하는데..&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;&amp;nbsp;- FastLine 모드&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;&lt;a href=&quot;http://www.softwarefx.co.kr/?gclid=CL7R5pTC_KoCFclV4godTyrM1Q&quot;&gt;http://www.softwarefx.co.kr/?gclid=CL7R5pTC_KoCFclV4godTyrM1Q&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;&amp;nbsp;- Chart FX&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;&amp;nbsp;- 제일 좋다는데 모르겠다&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;&lt;a href=&quot;http://www.componentone.com/superproducts/studioenterprise/&quot;&gt;http://www.componentone.com/superproducts/studioenterprise/&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;&amp;nbsp;- 탈락!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;&amp;nbsp;- X축 확대바께는 안됨&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;&lt;a href=&quot;http://www.visiblox.com/&quot;&gt;http://www.visiblox.com/&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;&amp;nbsp;- 음 라지 데이터라고 해서 달랑 6만 포인트 -_-&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;&amp;nbsp;- 이쁘지도 않고, 별로인듯&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;border-collapse: separate; color: rgb(0, 0, 0); font-family: Tahoma; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium;&quot;&gt;&amp;nbsp;- 다만 데모를 통해서 x,y축 값을 얻는게 가능함 확인&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</description>
                        <pubDate>Mon, 31 Oct 2011 12:36:09 +0900</pubDate>
                                </item>
                <item>
            <title>S/W 협업&amp;개발 도구들</title>
            <dc:creator>준도리</dc:creator>
            <link>http://www.jundols.com/xe/jundols/1109</link>
            <guid isPermaLink="true">http://www.jundols.com/xe/jundols/1109</guid>
                        <comments>http://www.jundols.com/xe/jundols/1109#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;UML Tool&lt;br /&gt;- Start UML&lt;br /&gt;공짜 UML 설계 툴~&lt;br /&gt;&lt;br /&gt;- Rational Rose&lt;br /&gt;유명하지만 무거움&lt;br /&gt;&lt;br /&gt;- Rhapsody&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Static Analysis Tool&lt;br /&gt;- Coverity Prevent&lt;br /&gt;시장 점유율 1위의 Static Code Analysis 툴이지만, 억대가 넘어간다고 한다&lt;br /&gt;&lt;br /&gt;- Klockwork Insight&lt;br /&gt;이것도 엄청 비싼툴인듯..&lt;br /&gt;&lt;br /&gt;- FxCOP&lt;br /&gt;VS.NET 에 들어있는 코그 검사 툴이라고 한다. 사용자가 Custom Rule을 추가할 수 있다.&lt;br /&gt;&lt;br /&gt;- Code Scroll &lt;br /&gt;Suresoft라는 한국 회사가 만들었음, 다양한 제품군이 있는듯&lt;br /&gt;&lt;br /&gt;- lint&lt;br /&gt;C 및 C++ 언어로 작성된 프로그램에 문제점이 있는지를 식별해줌&lt;br /&gt;splint 라는 툴이 있음&lt;br /&gt;&lt;br /&gt;-sonar&lt;br /&gt;다양한 기능이 들어있는 S/W 관리 툴 http://www.sonarsource.org/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Code Corverage Tool&lt;br /&gt;- GCOV&lt;br /&gt;GCC 와 연동되서 코드 커버리지를 보여주는 쿨&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Code Complexity Tool&lt;br /&gt;- Source Monitor&lt;br /&gt;모듈별 코드 복잡도를 계산해 주는 프로그램&lt;br /&gt;&lt;br /&gt;-C and C++ Code Counter&lt;br /&gt;모듈별 코드 복잡도를 계산해 주는 프로그램&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Dynamic (Profile) Tool&lt;br /&gt;- Ratinal Purity&lt;br /&gt;동적 메모리 할당에 관한 문제점을 분석해주는 툴이라고 한다&lt;br /&gt;&lt;br /&gt;- IBM&amp;nbsp; testREALTIME&lt;br /&gt;잘 모름&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Source Revision Tool&lt;br /&gt;- GIT&lt;br /&gt;내가 봤을때 현존하는 가장 진보된 툴, 분산 소스 관리 툴, 리누즈가 만듬&lt;br /&gt;&lt;br /&gt;- SVN&lt;br /&gt;거북이 때문에 쓴다~!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Source Documentation Tool&lt;br /&gt;- Doxygen&lt;br /&gt;주석을 HTML로 만들어줌, 사용하기 문법이 복잡함&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Coding Syle Check Tool&lt;br /&gt;- checkstyle&lt;br /&gt;JAVA용 인것 같다&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Continuous Integration Tool&lt;/p&gt;&lt;p&gt;- Jenkins(구 Hudson)&lt;/p&gt;&lt;p&gt;최고~&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;- Builtbot&lt;br /&gt;python 기반, 가벼운것 같음, 임베디드에 적용이 용이한 것 같음&lt;br /&gt;&lt;br /&gt;- ANT&lt;br /&gt;Java용인듯?&lt;br /&gt;&lt;br /&gt;- CruiseControl.NET&lt;br /&gt;많이 쓰는듯?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Unit Test Tool&lt;br /&gt;- CUnit&lt;br /&gt;C기반의 단위 테스트 라이브러리&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Software Management Tool&lt;br /&gt;- TRAC&lt;br /&gt;공짜임&lt;br /&gt;&lt;br /&gt;- Assembla&lt;br /&gt;월 얼마 내는 싸이트. 강력함&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bug Tracking Tool&lt;br /&gt;- Bugzilla&lt;br /&gt;파아이폭스 개발에 쓰이는 버그 관리 툴&lt;br /&gt;&lt;br /&gt;- TRAC&lt;br /&gt;&lt;br /&gt;- ClearQuest&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Code Review Tool&lt;br /&gt;- Gerrit&lt;br /&gt;GIT기반의 강력한 리뷰 툴, 구글이 만들고 사용중&lt;br /&gt;&lt;br /&gt;- Review Board&lt;br /&gt;SVN과 연동되는 무료 툴&lt;br /&gt;&lt;br /&gt;- SmartBear CodeCollaborator&lt;br /&gt;유료임&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Thu, 27 Oct 2011 10:52:02 +0900</pubDate>
                                </item>
                <item>
            <title>stdout redirect</title>
            <dc:creator>준도리</dc:creator>
            <link>http://www.jundols.com/xe/jundols/1103</link>
            <guid isPermaLink="true">http://www.jundols.com/xe/jundols/1103</guid>
                        <comments>http://www.jundols.com/xe/jundols/1103#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;pre class=&quot;brush: cpp;&quot;&gt;#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
#include &amp;lt;unistd.h&amp;gt;

#define MAX_LEN 1024

int main(void)
{
  char buffer[MAX_LEN+1] = {0};
  int out_pipe[2];
  int saved_stdout;

  saved_stdout = dup(STDOUT_FILENO);  /* save stdout for display later */

  if( pipe(out_pipe) != 0 ) {          /* make a pipe */
    exit(1);
  }

  dup2(out_pipe[1], STDOUT_FILENO);   /* redirect stdout to the pipe */
  close(out_pipe[1]);

  /* anything sent to printf should now go down the pipe */
  //printf(&quot;ceci n&apos;est pas une pipe&quot;);
  system(&quot;adb shell ls&quot;);
  fflush(stdout);

  read(out_pipe[0], buffer, MAX_LEN); /* read from pipe into buffer */

  dup2(saved_stdout, STDOUT_FILENO);  /* reconnect stdout for testing */
  printf(&quot;read: %s\n&quot;, buffer);

  return 0;

}&lt;/pre&gt;&lt;/div&gt;</description>
                        <pubDate>Thu, 27 Oct 2011 10:47:05 +0900</pubDate>
                                </item>
                <item>
            <title>BootChart</title>
            <dc:creator>준도리</dc:creator>
            <link>http://www.jundols.com/xe/jundols/1075</link>
            <guid isPermaLink="true">http://www.jundols.com/xe/jundols/1075</guid>
                        <comments>http://www.jundols.com/xe/jundols/1075#comment</comments>
                                    <description>&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;Andoird source compile시 아래와같이 active한다.&lt;br /&gt;# export INIT_BOOTCHART=true&lt;br /&gt;# make&lt;br /&gt;&lt;br /&gt;LOG_ROOT는 /system/core/init/bootchat.c에 지정할수있게 되어있다.&lt;br /&gt;일단 nand partition인 /data/bootchart에 저장하기로 한다.&lt;br /&gt;#define LOG_ROOT &quot;/data/bootchart&quot;&lt;br /&gt;&lt;br /&gt;active하기위해 &lt;br /&gt;#echo 1 &amp;gt; /data/bootchart //activating..&lt;br /&gt;//#echo 1 &amp;gt; /data/bootchart_stop //stoping..&lt;br /&gt;한후 android booting.... 아래와 같은 message출력되는것을 볼수있다.&lt;br /&gt;....&lt;br /&gt;init: bootcharting started&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;#cd /data/bootchart&lt;br /&gt;#ls ..저장되어있다..&lt;br /&gt;#tar -czf bootchart.tgz *&lt;br /&gt;&lt;br /&gt;이렇게 저장된 bootchart.tgz를 debian에 넣어서 아래와 같이 작업한다.&lt;br /&gt;&lt;br /&gt;1. /var/log/에 bootchart.tgz를 복사한다.&lt;br /&gt;2. $ bootchart :를 치면 자동으로 svgz를 만든다.&lt;br /&gt;$ bootchart -f png : png를 만든다.. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;other link&lt;br /&gt;http://elinux.org/Using_Bootchart_on_Android&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
                        <pubDate>Thu, 27 Oct 2011 10:33:29 +0900</pubDate>
                                </item>
            </channel>
</rss>

