<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Plusha's computer memo</title>
    <link>http://plusha.springnote.com/pages</link>
    <description>Plusha's Computer memos</description>
    <language>ko-KR</language>
    <item>
      <title>tmp</title>
      <description>&lt;p&gt;&amp;nbsp;&lt;a href="http://news.softpedia.com/news/Install-Nvidia-Video-Drivers-and-AWN-on-Fedora-9-86757.shtml"&gt;http://news.softpedia.com/news/Install-Nvidia-Video-Drivers-and-AWN-on-Fedora-9-86757.shtml&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://nareshv.blogspot.com/2008/04/fedora-9-rawhide-and-latest-nvidia-179.html"&gt;http://nareshv.blogspot.com/2008/04/fedora-9-rawhide-and-latest-nvidia-179.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.edaboard.com/ftopic318678.html"&gt;http://www.edaboard.com/ftopic318678.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="postbody"&gt;This is from http://www.mjmwired.net/resources/mjm-&lt;span style="COLOR: #ffa34f;"&gt;fedora&lt;/span&gt;-f9.html (I always use this guy's installation guides, they are easy to understand) So, don't use the installer from &lt;span style="COLOR: #ffa34f;"&gt;Nvidia&lt;/span&gt;'s website.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="COLOR: #ffa34f;"&gt;Fedora&lt;/span&gt; recommends users install a 3rd-party RPM packaged &lt;span style="COLOR: #ffa34f;"&gt;driver&lt;/span&gt; instead of using the installer from &lt;span style="COLOR: #ffa34f;"&gt;Nvidia&lt;/span&gt;'s website. Currently Livna provides a well packaged &lt;span style="COLOR: #ffa34f;"&gt;driver&lt;/span&gt;, installable via yum.&lt;br /&gt;
&lt;br /&gt;
First, setup Livna Repository&lt;br /&gt;
$ sudo rpm -ivh http://rpm.livna.org/livna-release-&lt;span style="COLOR: #ffa34f;"&gt;9&lt;/span&gt;.rpm&lt;br /&gt;
$ sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-livna&lt;br /&gt;
&lt;br /&gt;
Install the &lt;span style="COLOR: #ffa34f;"&gt;nvidia&lt;/span&gt; &lt;span style="COLOR: #ffa34f;"&gt;driver&lt;/span&gt; through Livna:&lt;br /&gt;
$ sudo yum install kmod-&lt;span style="COLOR: #ffa34f;"&gt;nvidia&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
If a kernel update is installed at the same time (most likely), then a reboot will be required. If not, then simply log out completely of Gnome or KDE and the &lt;span style="COLOR: #ffa34f;"&gt;Nvidia&lt;/span&gt; &lt;span style="COLOR: #ffa34f;"&gt;driver&lt;/span&gt; should load. The &lt;span style="COLOR: #ffa34f;"&gt;Nvidia&lt;/span&gt; logo will flash quickly once.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.mjmwired.net/resources/mjm-fedora-f9.html"&gt;http://www.mjmwired.net/resources/mjm-fedora-f9.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://fedoraforum.org/forum/showthread.php?t=192585"&gt;http://fedoraforum.org/forum/showthread.php?t=192585&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://wiki.debian.org/XStrikeForce/HowToRandR12"&gt;http://wiki.debian.org/XStrikeForce/HowToRandR12&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description>
      <pubDate>Wed, 07 Jan 2009 10:14:16 +0900</pubDate>
      <link>http://plusha.springnote.com/pages/2453974</link>
      <guid>http://plusha.springnote.com/pages/2453974</guid>
    </item>
    <item>
      <title>03. Linux</title>
      <description>&lt;p&gt;&lt;a href="http://www.ibm.com/developerworks/kr/library/au-unixtips/"&gt;http://www.ibm.com/developerworks/kr/library/au-unixtips/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://kldp.org/HOWTO/html/Adv-Bash-Scr-HOWTO/index.html"&gt;http://kldp.org/HOWTO/html/Adv-Bash-Scr-HOWTO/index.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Bash by example&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.gentoo.org/doc/en/articles/bash-by-example-p1.xml"&gt;http://www.gentoo.org/doc/en/articles/bash-by-example-p1.xml&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.gentoo.org/doc/en/articles/bash-by-example-p2.xml"&gt;http://www.gentoo.org/doc/en/articles/bash-by-example-p2.xml&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.gentoo.org/doc/en/articles/bash-by-example-p3.xml"&gt;http://www.gentoo.org/doc/en/articles/bash-by-example-p3.xml&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;alias xx='Xnest :1 -ac -pn -depth 24 -geometry 1280x800 -query localhost -once 2&amp;gt;/dev/null &amp;amp;'&lt;br /&gt;
&lt;a href="http://en.wikipedia.org/wiki/Xnest"&gt;http://en.wikipedia.org/wiki/Xnest&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&lt;/p&gt;
</description>
      <pubDate>Mon, 29 Dec 2008 14:40:33 +0900</pubDate>
      <link>http://plusha.springnote.com/pages/1907556</link>
      <guid>http://plusha.springnote.com/pages/1907556</guid>
    </item>
    <item>
      <title>scons</title>
      <description>&lt;p&gt;Program("hello.c")&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;Program&#51060;&#46972;&#45716; &#54632;&#49688;&#45716; source &#54028;&#51068;&#51012; &#44032;&#51648;&#44256; compile&#54616;&#46972;&#45716; &#47749;&#47161;&#51077;&#45768;&#45796;.&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;hello.c &#54028;&#51068;&#51012; compile&#54616;&#50668; hello&#46972;&#45716; &#49892;&#54665;&#54028;&#51068;&#51012; &#47564;&#46317;&#45768;&#45796;. &#51060; &#46412; compile option&#51008; DefaultEnvironment &#49444;&#51221;&#51012; &#46384;&#47493;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Program("new_hello", "hello.c")&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;hello.c &#54028;&#51068;&#51012; compile&#54616;&#50668; new_hello&#46972;&#45716; &#49892;&#54665;&#54028;&#51068;&#51012; &#47564;&#46317;&#45768;&#45796;. &#51060;&#47111;&#44172; target &#51060;&#47492;&#51008; &#50526;&#50640; &#50416;&#44256;, source &#51060;&#47492;&#51008; &#46244;&#50640; &#50433;&#45768;&#45796;. target&#51012; &#49373;&#47029;&#54624; &#44221;&#50864; &#50526;&#50640;&#49436;&#50752; &#44057;&#51060; source &#51060;&#47492;&#51012; &#51060;&#50857;&#54616;&#50668; target &#51060;&#47492;&#51012; &#49373;&#49457;&#54633;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Program("hello", ["hello.c"])&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;source&#45716; &#51060;&#47111;&#44172; list&#50640; &#45347;&#50612;&#49436; &#51077;&#47141;&#54624; &#49688;&#46020; &#51080;&#49845;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Program("hello", ["file1.c", "file2.c"])&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;list&#47484; &#51060;&#50857;&#54616;&#47732; &#50668;&#47084; &#44060;&#51032; source &#54028;&#51068;&#51012; &#51060;&#50857;&#54616;&#50668; compile&#51012; &#54624; &#49688; &#51080;&#51424;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Program(["main.c", "file1.c", "file2.c"])&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;&#50668;&#44592;&#50640;&#49436; &#48372;&#49884;&#45716; &#44163;&#52376;&#47100; target &#51060;&#47492;&#51012; &#49373;&#47029;&#54616;&#44256; source list&#47564; &#45347;&#51004;&#47732; list&#51032; &#52395; &#48264;&#51704; &#54028;&#51068;&#47749;&#51004;&#47196;&#48512;&#53552; main&#51060;&#46972;&#45716; target&#51012; &#49373;&#49457;&#54644;&#51469;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Program("program", ["main.c", "file1.c", "file2.c"])&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;&#47932;&#47200;, target &#51060;&#47492;&#51012; &#45347;&#51012; &#49688;&#46020; &#51080;&#51424;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Program("program", Split("main.c file1.c file2.c"))&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;Split&#51060;&#46972;&#45716; &#54632;&#49688;&#47484; &#49324;&#50857;&#54616;&#47732; &#47928;&#51088;&#50676;&#50640;&#49436; &#44277;&#48177;&#51012; &#44592;&#51456;&#51004;&#47196; &#54028;&#51068;&#47749;&#51012; &#48516;&#47532;&#54616;&#50668; list&#47484; &#47564;&#46308;&#50612; &#51469;&#45768;&#45796;. source list&#47484; &#47564;&#46308; &#46412; &#46384;&#50740;&#54364;&#50752; &#49788;&#54364;&#47484; &#51077;&#47141;&#54616;&#44592; &#44480;&#52270;&#51004;&#47732; &#51060;&#47111;&#44172; Split &#54632;&#49688;&#47484; &#49324;&#50857;&#54616;&#47732; &#46121;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
list = Split("""main.c&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; file1.c&amp;nbsp; file2.c""")&lt;br /&gt;
Program("program", list)&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;&#51060;&#47111;&#44172; &#46384;&#50740;&#54364; &#49464; &#44060;&#47484; &#49324;&#50857;&#54616;&#47732; &#47928;&#51088;&#50676;&#51032; &#51460;&#51012; &#45208;&#45600; &#51077;&#47141;&#54624; &#49688;&#46020; &#51080;&#49845;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Program(Split("foo.c common1.c common2.c"))&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;&#47932;&#47200;, target &#51060;&#47492;&#51012; &#49373;&#47029;&#54624; &#49688;&#46020; &#51080;&#44256;,&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Program("bar", Split("bar1.c bar2.c common1.c common2.c"))&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;target &#51060;&#47492;&#51012; &#45347;&#50612;&#51460; &#49688;&#46020; &#51080;&#49845;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;list = Split("main.c file1.c file2.c")&lt;/p&gt;
&lt;p&gt;Program(source = list, target = "program")&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;source&#50752; target keyword&#47484; &#49324;&#50857;&#54616;&#47732; &#51077;&#47141; &#49692;&#49436;&#47484; &#48148;&#44992; &#49688;&#46020; &#51080;&#51424;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
common = ["common1.c", "common2.c"]&lt;br /&gt;
foo_files = ["foo.c"] + common&lt;br /&gt;
bar_files = ["bar1.c", "bar2.c"] + common&lt;br /&gt;
Program("foo", foo_files)&lt;br /&gt;
Program("bar", bar_files)&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;&#51060;&#47111;&#44172; python &#47749;&#47161;&#46308;&#51012; &#49324;&#50857;&#54616;&#50668; &#54200;&#47532;&#54616;&#44172; compile&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Library("foo", ["f1.c", "f2.c", "f3.c"])&lt;br /&gt;
StaticLibrary("foo", ["f1.c", "f2.c", "f3.c"])&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; % scons -Q&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cc -o f1.o -c f1.c&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cc -o f2.o -c f2.c&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cc -o f3.o -c f3.c&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ar rc libfoo.a f1.o f2.o f3.o&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ranlib libfoo.a&lt;/p&gt;
&lt;p&gt;Library(&#46608;&#45716; StaticLibrary)&#45716; &#50948;&#51032; &#49892;&#54665; &#44208;&#44284;&#50640;&#49436; &#48380; &#49688; &#51080;&#45716; &#44163;&#52376;&#47100;, &#51221;&#51201; library&#47484; &#47564;&#46308;&#50612;&#51469;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Library("foo", ["f1.c", "f2.c", "f3.c"])&lt;br /&gt;
Program("prog.c", LIBS=["foo", "bar"], LIBPATH=".")&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; % scons -Q&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cc -o f1.o -c f1.c&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cc -o f2.o -c f2.c&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cc -o f3.o -c f3.c&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ar rc libfoo.a f1.o f2.o f3.o&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ranlib libfoo.a&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cc -o prog.o -c prog.c&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cc -o prog prog.o -L. -lfoo -lbar&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;&#51060;&#47111;&#44172; library&#47484; &#47564;&#46304; &#54980;&#50640; Program &#54632;&#49688;&#50640; &#50612;&#46500; &#44221;&#47196;&#51032; &#50612;&#46500; library&#47484; &#49324;&#50857;&#54616;&#50668; compile&#54624; &#44163;&#51064;&#51648; &#50508;&#47140;&#51460; &#49688; &#51080;&#49845;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Program("prog.c", LIBS="foo", LIBPATH=".")&lt;br /&gt;
Program("prog.c", LIBS=["foo"], LIBPATH=".")&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Program("prog.c", LIBS = "m",LIBPATH = ["/usr/lib", "/usr/local/lib"])&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LIBPATH = "/usr/lib:/usr/local/lib"&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; % scons -Q&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cc -o prog.o -c prog.c&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cc -o prog prog.o -L/usr/lib -L/usr/local/lib -lm&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;source &#51077;&#47141;&#54624; &#46412;&#52376;&#47100;, &#49324;&#50857;&#54624; library&#47484; &#51648;&#51221;&#54616;&#45716; LIBS&#50752; LIBPATH &#48320;&#49688;&#50640; &#47928;&#51088;&#50676;&#44284; list &#47784;&#46160; &#49324;&#50857; &#44032;&#45733;&#54633;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Object("hello.c", CCFLAGS="-DHELLO")&lt;br /&gt;
Object("goodbye.c", CCFLAGS="-DGOODBYE")&lt;br /&gt;
Program(["hello.o", "goodbye.o"])&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;Object&#46972;&#45716; &#54632;&#49688;&#47484; &#49324;&#50857;&#54616;&#47732; compile option&#51060; &#45796;&#47480; object&#46308;&#51012; &#47564;&#46308;&#50612; link&#54624; &#49688;&#46020; &#51080;&#49845;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
hello_list = Object("hello.c", CCFLAGS="-DHELLO")&lt;br /&gt;
goodbye_list = Object("goodbye.c", CCFLAGS="-DGOODBYE")&lt;br /&gt;
Program(hello_list + goodbye_list)&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
object_list = Object("hello.c")&lt;br /&gt;
program_list = Program(object_list)&lt;br /&gt;
print "The object file is:", object_list[0]&lt;br /&gt;
print "The program file is:", program_list[0]&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;&#51060;&#47111;&#44172; &#54632;&#49688;&#47484; node &#44060;&#52404;&#50640; &#51200;&#51109;&#54616;&#50668; &#49324;&#50857;&#54624; &#49688;&#46020; &#51080;&#49845;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
env = Environment(CC = "gcc",CCFLAGS = "-O2")&lt;br /&gt;
env.Program("foo.c")&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; % scons -Q&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; gcc -o foo.o -c -O2 foo.c&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; gcc -o foo foo.o&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;&#51060;&#47111;&#44172; compile &#54872;&#44221;&#48320;&#49688;&#46308;&#51032; &#47784;&#51020;(Environment)&#51012; &#47564;&#46308;&#50612; &#49324;&#50857;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
opt = Environment(CCFLAGS = "-O2")&lt;br /&gt;
dbg = Environment(CCFLAGS = "-g")&lt;br /&gt;
opt.Program("foo", "foo.c")&lt;br /&gt;
dbg.Program("bar", "bar.c")&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; % scons -Q&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cc -o bar.o -c -g bar.c&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cc -o bar bar.o&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cc -o foo.o -c -O2 foo.c&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cc -o foo foo.o&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;&#49436;&#47196; &#45796;&#47480; &#54872;&#44221;&#51004;&#47196;&#48512;&#53552; &#49436;&#47196; &#45796;&#47480; &#54872;&#44221;&#48320;&#49688;&#47484; &#49324;&#50857;&#54616;&#50668; &#54620;&#44732;&#48264;&#50640; compile&#54624; &#49688; &#51080;&#51424;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
opt = Environment(CCFLAGS = "-O2")&lt;br /&gt;
dbg = Environment(CCFLAGS = "-g")&lt;br /&gt;
o = opt.Object("foo-opt", "foo.c")&lt;br /&gt;
opt.Program(o)&lt;br /&gt;
d = dbg.Object("foo-dbg", "foo.c")&lt;br /&gt;
dbg.Program(d)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; % scons -Q&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cc -o foo-dbg.o -c -g foo.c&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cc -o foo-dbg foo-dbg.o&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cc -o foo-opt.o -c -O2 foo.c&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cc -o foo-opt foo-opt.o&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;&#50526;&#50640; &#45208;&#50728; &#45236;&#50857;&#46308;&#51012; &#51312;&#54633;&#54644;&#49436; &#51060;&#47111;&#44172; &#47564;&#46308; &#49688;&#46020; &#51080;&#44256;,&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
env = Environment(CC = "gcc")&lt;br /&gt;
opt = env.Clone(CCFLAGS = "-O2")&lt;br /&gt;
dbg = env.Clone(CCFLAGS = "-g")&lt;br /&gt;
env.Program("foo", "foo.c")&lt;br /&gt;
o = opt.Object("foo-opt", "foo.c")&lt;br /&gt;
opt.Program(o)&lt;br /&gt;
d = dbg.Object("foo-dbg", "foo.c")&lt;br /&gt;
dbg.Program(d)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; % scons -Q&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; gcc -o foo.o -c foo.c&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; gcc -o foo foo.o&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; gcc -o foo-dbg.o -c -g foo.c&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; gcc -o foo-dbg foo-dbg.o&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; gcc -o foo-opt.o -c -O2 foo.c&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; gcc -o foo-opt foo-opt.o&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;Clone &#54632;&#49688;&#47484; &#51060;&#50857;&#54644; environment&#47484; &#48373;&#51228;&#54616;&#50668; &#49324;&#50857;&#54624; &#49688;&#46020; &#51080;&#49845;&#45768;&#45796;. &#51060; &#46412; Clone &#54632;&#49688;&#50640; &#54872;&#44221;&#48320;&#49688;&#47484; &#51077;&#47141;&#54616;&#47732; &#54644;&#45817;&#54616;&#45716; &#54872;&#44221;&#48320;&#49688;&#44032; &#48148;&#45068;&#44172; &#46121;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
env = Environment()&lt;br /&gt;
print "CC is:", env["CC"]&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;&#54872;&#44221; &#48320;&#49688;&#45716; Dictionary&#52376;&#47100; &#48520;&#47084;&#49436; &#49324;&#50857;&#54624; &#49688; &#51080;&#44256;,&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
env = Environment(FOO = "foo", BAR = "bar")&lt;br /&gt;
dict = env.Dictionary()&lt;br /&gt;
for key in ["OBJSUFFIX", "LIBSUFFIX", "PROGSUFFIX"]:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;print "key = %s, value = %s" % (key, dict[key])&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; % scons -Q&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; key = OBJSUFFIX, value = .o&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; key = LIBSUFFIX, value = .a&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; key = PROGSUFFIX, value =&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; scons: &#8216;." is up to date.&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;&#49892;&#51228;&#47196; Dictionary&#47196; &#47564;&#46308; &#49688;&#46020; &#51080;&#49845;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
if "bar" in COMMAND_LINE_TARGETS:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;print "Don"t forget to copy &#8216;bar" to the archive!"&lt;br /&gt;
Default(Program("foo.c"))&lt;br /&gt;
Program("bar.c")&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; % scons -Q&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cc -o foo.o -c foo.c&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cc -o foo foo.o&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; % scons -Q bar&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Don"t forget to copy &#8216;bar" to the archive!&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cc -o bar.o -c bar.c&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cc -o bar bar.o&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;command line &#51077;&#47141;&#51012; &#51060;&#50857;&#54624; &#49688;&#46020; &#51080;&#49845;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Command("file.out", "file.in", Copy("$TARGET", "$SOURCE"))&lt;br /&gt;
Command("file.out", [], Copy("$TARGET", "file.in"))&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; % scons -Q&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Copy("file.out", "file.in")&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;Command &#47749;&#47161;&#51012; &#51060;&#50857;&#54616;&#47732; &#51068;&#54924;&#50857;(?) &#47749;&#47161;&#51012; &#47564;&#46308; &#49688;&#46020; &#51080;&#49845;&#45768;&#45796;. Copy, Move, Delete, Mkdir &#46321;&#51008; platform independent &#47749;&#47161;&#46308;&#51077;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Command("file.out", "file.in",&lt;br /&gt;
[&lt;br /&gt;
Copy("tempfile", "$SOURCE"),&lt;br /&gt;
"modify tempfile",&lt;br /&gt;
Copy("$TARGET", "tempfile"),&lt;br /&gt;
])&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; % scons -Q&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Copy("tempfile", "file.in")&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; modify tempfile&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Copy("file.out", "tempfile")&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Command("file.out", "file.in",&lt;br /&gt;
[&lt;br /&gt;
Delete("tempfile"),&lt;br /&gt;
Copy("tempfile", "$SOURCE"),&lt;br /&gt;
"modify tempfile",&lt;br /&gt;
Copy("$TARGET", "tempfile"),&lt;br /&gt;
])&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; % scons -Q&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Delete("tempfile")&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Copy("tempfile", "file.in")&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; modify tempfile&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Copy("file.out", "tempfile")&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Command("file.out", "file.in",&lt;br /&gt;
[&lt;br /&gt;
Delete("$TARGET"),&lt;br /&gt;
Copy("$TARGET", "$SOURCE")&lt;br /&gt;
])&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; % scons -Q&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Delete("file.out")&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Copy("file.out", "file.in")&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Command("file.out", "file.in",&lt;br /&gt;
[&lt;br /&gt;
Copy("tempfile", "$SOURCE"),&lt;br /&gt;
"modify tempfile",&lt;br /&gt;
Move("$TARGET", "tempfile"),&lt;br /&gt;
])&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; % scons -Q&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Copy("tempfile", "file.in")&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; modify tempfile&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Move("file.out", "tempfile")&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;&#51060;&#47111;&#44172; list&#50640; &#50668;&#47084; &#44060;&#51032; &#47749;&#47161;&#46308;&#51012; &#45347;&#50612;&#49436; Command&#47484; &#49373;&#49457;&#54624; &#49688;&#46020; &#51080;&#49845;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Command("file.out", "file.in",&lt;br /&gt;
[&lt;br /&gt;
Delete("tempdir"),&lt;br /&gt;
Mkdir("tempdir"),&lt;br /&gt;
Copy("tempdir/${SOURCE.file}", "$SOURCE"),&lt;br /&gt;
"process tempdir",&lt;br /&gt;
Move("$TARGET", "tempdir/output_file"),&lt;br /&gt;
Delete("tempdir"),&lt;br /&gt;
])&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; % scons -Q&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Delete("tempdir")&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Mkdir("tempdir")&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Copy("tempdir/file.in", "file.in")&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; process tempdir&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Move("file.out", "tempdir/output_file")&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; scons: *** [file.out] No such file or directory&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Command("file.out", "file.in",&lt;br /&gt;
[&lt;br /&gt;
Copy("$TARGET", "$SOURCE"),&lt;br /&gt;
Chmod("$TARGET", 0755),&lt;br /&gt;
])&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; % scons -Q&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Copy("file.out", "file.in")&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Chmod("file.out", 0755)&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;Chmod&#50752; &#44057;&#51008; &#47749;&#47161;&#46020; &#44032;&#45733;&#54633;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Execute(Mkdir("/tmp/my_temp_directory"))&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;Execute &#54632;&#49688;&#50640; &#47749;&#47161;&#51012; &#45347;&#51004;&#47732; &#48148;&#47196; &#49892;&#54665;&#49884;&#53429;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Preventing target removal during build: the Precious Function&lt;br /&gt;
env = Environment(RANLIBCOM=&#8221;)&lt;br /&gt;
lib = env.Library("foo", ["f1.c", "f2.c", "f3.c"])&lt;br /&gt;
env.Precious(lib)&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;Build&#54624; &#46412; &#51648;&#50864;&#47732; &#50504; &#46104;&#45716; &#44163;&#51008; Precious&#54616;&#45796;&#44256; &#51648;&#51221;&#54644;&#51469;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Preventing target removal during clean: the NoClean Function&lt;br /&gt;
env = Environment(RANLIBCOM=&#8221;)&lt;br /&gt;
lib = env.Library("foo", ["f1.c", "f2.c", "f3.c"])&lt;br /&gt;
env.NoClean(lib)&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;scons -c &#54664;&#51012; &#46412; &#51648;&#50864;&#47732; &#50504; &#46104;&#45716; &#44163;&#51008; NoClean&#51004;&#47196; &#51648;&#51221;&#54644;&#51469;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Removing additional files during clean: the Clean Function&lt;br /&gt;
t = Command("foo.out", "foo.in", "build -o $TARGET $SOURCE")&lt;br /&gt;
Clean(t, "foo.log")&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;complie&#54624; &#46412; &#48512;&#49688;&#51201;&#51004;&#47196; &#49373;&#44592;&#45716; &#54028;&#51068;&#46308;&#51008; scons -c&#47196; &#44057;&#51060; &#51648;&#50864;&#44592; &#50948;&#54644; Clean&#51004;&#47196; &#51648;&#51221;&#54644;&#51460; &#49688; &#51080;&#49845;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;SConscript(["drivers/display/SConscript",&lt;br /&gt;
"drivers/mouse/SConscript",&lt;br /&gt;
"parser/SConscript",&lt;br /&gt;
"utilities/SConscript"])&lt;/p&gt;
&lt;p style="margin-left: 2em;"&gt;SConscript&#45716; &#54616;&#50948; &#46356;&#47113;&#53664;&#47532;&#50640; &#51080;&#45716; SConscript &#54028;&#51068;&#46308;&#51012; &#44057;&#51060; &#49688;&#54665;&#54616;&#44592; &#50948;&#54620; &#54632;&#49688;&#51077;&#45768;&#45796;.&lt;/p&gt;
</description>
      <pubDate>Sat, 27 Dec 2008 15:20:59 +0900</pubDate>
      <link>http://plusha.springnote.com/pages/2388488</link>
      <guid>http://plusha.springnote.com/pages/2388488</guid>
    </item>
    <item>
      <title>Refactoring</title>
      <description>&lt;h3&gt;&#54056;&#53556;&#51012; &#54876;&#50857;&#54620; &#47532;&#54057;&#53552;&#47553;&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#47532;&#54057;&#53552;&#47553;&#51012; &#54616;&#45716; &#51060;&#50976;(p.40)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&#49352;&#47196;&#50868; &#53076;&#46300;&#47484; &#45908; &#49789;&#44172; &#52628;&#44032;&#54624; &#49688; &#51080;&#46020;&#47197; &#54616;&#44592; &#50948;&#54644;&lt;/li&gt;
&lt;li&gt;&#44592;&#51316; &#53076;&#46300;&#51032; &#49444;&#44228;&#47484; &#44060;&#49440;&#54616;&#44592; &#50948;&#54644;&lt;/li&gt;
&lt;li&gt;&#44592;&#51316; &#53076;&#46300;&#47484; &#45908; &#51096; &#51060;&#54644;&#54616;&#44592; &#50948;&#54644;&lt;/li&gt;
&lt;li&gt;&#45916; &#51676;&#51613;&#45208;&#45716; &#53076;&#46300;&#47196; &#47564;&#46308;&#44592; &#50948;&#54644;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&#52980;&#54504;&#53552;&#44032; &#51060;&#54644;&#54616;&#45716; &#53076;&#46300;&#45716; &#50612;&#45712; &#48148;&#48372;&#45208; &#45796; &#51684; &#49688; &#51080;&#45796;. &#54988;&#47469;&#54620; &#54532;&#47196;&#44536;&#47000;&#47672;&#45716; &#49324;&#46988;&#51060; &#51060;&#54644;&#54624; &#49688; &#51080;&#45716; &#53076;&#46300;&#47484; &#51680;&#45796;.//Martin Fowler (p.45)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#49444;&#44228; &#48512;&#52292;&#45716; &#45796;&#51020; &#49464; &#44032;&#51648;&#47484; &#44984;&#51456;&#55176; &#49688;&#54665;&#54616;&#51648; &#50506;&#51012; &#46412; &#48156;&#49373;&#54620;&#45796;.(p.48)&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&#51473;&#48373; &#51228;&#44144;&lt;/li&gt;
&lt;li&gt;&#53076;&#46300; &#45800;&#49692;&#54868;&lt;/li&gt;
&lt;li&gt;&#53076;&#46300;&#51032; &#51032;&#46020; &#47749;&#47308;&#54868;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&#48373;&#54633; &#47532;&#54057;&#53552;&#47553;&lt;/strong&gt;&#51008; &#50668;&#47084; &#44060;&#51032; &#51200;&#49688;&#51456; &#47532;&#54057;&#53552;&#47553;&#51004;&#47196; &#51060;&#47364;&#51652; &#44256;&#49688;&#51456; &#47532;&#54057;&#53552;&#47553;&#51060;&#45796;. &#51089;&#50629;&#51008; &#45824;&#48512;&#48516; &#53076;&#46300;&#47484; &#51060;&#46041;&#49884;&#53412;&#45716; &#46321; &#51068;&#47144;&#51032; &#51200;&#49688;&#51456; &#47532;&#54057;&#53552;&#47553;&#51012; &#49688;&#54665;&#54616;&#45716; &#44163;&#51060;&#45796;.(p.50)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&#53580;&#49828;&#53944; &#51452;&#46020; &#47532;&#54057;&#53552;&#47553;&lt;/strong&gt;&#51008; &#53580;&#49828;&#53944; &#51452;&#46020; &#44060;&#48156;&#51012; &#53685;&#54644; &#45824;&#52404; &#53076;&#46300;&#47484; &#51089;&#49457;&#54620; &#45796;&#51020; &#44592;&#51316; &#53076;&#46300;&#47484; &#49352; &#53076;&#46300;&#47196; &#45824;&#52404;(&#44592;&#51316; &#53076;&#46300;&#50640; &#45824;&#54620; &#53580;&#49828;&#53944;&#45716; &#44536;&#47000;&#47196; &#50976;&#51648;&#54616;&#47732;&#49436;)&#54616;&#45716; &#48169;&#48277;&#51060;&#45796;.(p.51)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#48373;&#54633; &#47532;&#54057;&#53552;&#47553;&#51032; &#51109;&#51216;(p.52)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&#47532;&#54057;&#53552;&#47553; &#51208;&#52264;&#50640; &#45824;&#54620; &#51204;&#48152;&#51201;&#51064; &#44228;&#54925;&#51012; &#49444;&#47749;&#54620;&#45796;.&lt;/li&gt;
&lt;li&gt;&#49444;&#44228;&#50640; &#45824;&#54620; &#47749;&#54869;&#54620; &#48169;&#54693;&#51012; &#51228;&#49884;&#54620;&#45796;.&lt;/li&gt;
&lt;li&gt;&#54056;&#53556; &#44396;&#54788;&#50640; &#45824;&#54620; &#53685;&#52272;&#47141;&#51012; &#51228;&#44277;&#54620;&#45796;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#53076;&#46300; &#49549;&#51032; &#45252;&#49352;(p.75)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&#51473;&#48373;&#46108; &#53076;&#46300;&#44032; &#51080;&#45796;.&lt;/li&gt;
&lt;li&gt;&#53076;&#46300;&#51032; &#51032;&#48120;&#44032; &#47749;&#54869;&#54616;&#51648; &#50506;&#45796;.&lt;/li&gt;
&lt;li&gt;&#53076;&#46300;&#44032; &#48373;&#51105;&#54616;&#45796;.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;table class="datatable"&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;
&lt;p&gt;&#45252;&#49352;&lt;/p&gt;
&lt;/th&gt;
&lt;th&gt;&#47532;&#54057;&#53552;&#47553;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&#51473;&#48373;&#46108; &#53076;&#46300;&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Form template method&lt;/p&gt;
&lt;p&gt;Introduce polymorphic creation with factory method&lt;/p&gt;
&lt;p&gt;Chain constructors&lt;/p&gt;
&lt;p&gt;Replace one/many distinctions with composite&lt;/p&gt;
&lt;p&gt;Extract composite&lt;/p&gt;
&lt;p&gt;Unify interfaces with adapter&lt;/p&gt;
&lt;p&gt;Introduce null object&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&#44596; &#47700;&#49436;&#46300;&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Compose method&lt;/p&gt;
&lt;p&gt;Move accumulation to collecting parameter&lt;/p&gt;
&lt;p&gt;Replace conditional dispatcher with command&lt;/p&gt;
&lt;p&gt;Move accumulation to visitor&lt;/p&gt;
&lt;p&gt;Reaplace conditional logic with strategy&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&#48373;&#51105;&#54620; &#51312;&#44148;&#47928;&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Reaplace conditional logic with strategy&lt;/p&gt;
&lt;p&gt;Move embellishment to decorator&lt;/p&gt;
&lt;p&gt;Replace state-altering conditionals with state&lt;/p&gt;
&lt;p&gt;Introduce null object&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&#44592;&#48376; &#53440;&#51077;&#50640; &#45824;&#54620; &#44053;&#48149;&#44288;&#45392;&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Replace type code with class&lt;/p&gt;
&lt;p&gt;Replace state-altering conditionals with state&lt;/p&gt;
&lt;p&gt;Replace conditional logic with strategy&lt;/p&gt;
&lt;p&gt;Replace implicit tree with composite&lt;/p&gt;
&lt;p&gt;Replace implicit language with interpreter&lt;/p&gt;
&lt;p&gt;Move embellishment to decorator&lt;/p&gt;
&lt;p&gt;Encapsulate composite with builder&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&#52628;&#51105;&#54620; &#45432;&#52636;&lt;/td&gt;
&lt;td&gt;Encapsulate classes with factory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&#47928;&#50612;&#48156; &#49556;&#47336;&#49496;&lt;/td&gt;
&lt;td&gt;Move creation knowledge to factory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&#51064;&#53552;&#54168;&#51060;&#49828;&#44032; &#49436;&#47196; &#45796;&#47480; &#45824;&#52404; &#53364;&#47000;&#49828;&lt;/td&gt;
&lt;td&gt;Unify interfaces with adapter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&#44172;&#51004;&#47480; &#53364;&#47000;&#49828;&lt;/td&gt;
&lt;td&gt;Inline singleton&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&#44144;&#45824;&#54620; &#53364;&#47000;&#49828;&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Replace conditional dispatcher with command&lt;/p&gt;
&lt;p&gt;Replace state-altering conditionals with state&lt;/p&gt;
&lt;p&gt;Replace implicit language with interpreter&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Swich &#47928;&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;Replace conditional dispatcher with command&lt;/p&gt;
&lt;p&gt;Move accumulation to visitor&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&#51312;&#54633;&#51032; &#54253;&#48156;&#51201; &#51613;&#44032;&lt;/td&gt;
&lt;td&gt;Replace implicit language with interpreter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&#44340;&#51676; &#49556;&#47336;&#49496;&lt;/td&gt;
&lt;td&gt;Unifi interfaces with adapter&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;6&#51109; &#49373;&#49457;&lt;/p&gt;
&lt;p&gt;Replace Constructors with Creation Methods&lt;/p&gt;
&lt;p&gt;&#50612;&#46500; &#53364;&#47000;&#49828;&#51032; &#51064;&#49828;&#53556;&#49828;&#47484; &#49373;&#49457;&#54624; &#46412; &#44536;&#44163;&#51060; &#51228;&#44277;&#54616;&#45716; &#50668;&#47084; &#49373;&#49457;&#51088; &#51473; &#50612;&#46500; &#44163;&#51012; &#54840;&#52636;&#54644;&#50556; &#54624;&#51648; &#44208;&#51221;&#54616;&#44592;&#44032; &#50612;&#47157;&#45796;&#47732;, &#51064;&#49828;&#53556;&#49828;&#47484; &#49373;&#49457;&#54644; &#47532;&#53556;&#54616;&#45716; &#49373;&#49457; &#47700;&#49436;&#46300;(creation method)&#47196; &#44033; &#49373;&#49457;&#51088;&#47484; &#45824;&#52404;&#54616;&#50668; &#44536; &#50857;&#46020;&#44032; &#47749;&#54869;&#55176; &#46300;&#47084;&#45208;&#46020;&#47197; &#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Move Creation Knowledge to Factory&lt;/p&gt;
&lt;p&gt;&#50612;&#46500; &#53364;&#47000;&#49828;&#51032; &#51064;&#49828;&#53556;&#49828;&#47484; &#49373;&#49457;&#54616;&#45716;&#45936; &#49324;&#50857;&#46104;&#45716; &#45936;&#51060;&#53552;&#50752; &#53076;&#46300;&#44032; &#50668;&#47084; &#53364;&#47000;&#49828;&#50640; &#54140;&#51256; &#51080;&#45796;&#47732;, &#44536; &#49373;&#49457; &#51648;&#49885;(creation knowledge)&#51012; &#54616;&#45208;&#51032; &#54057;&#53552;&#47532;(factory) &#53364;&#47000;&#49828;&#47196; &#50734;&#44596;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Encapsulate Classes with Factory&lt;/p&gt;
&lt;p&gt;&#53364;&#46972;&#51060;&#50616;&#53944;&#44032; &#54620; &#54056;&#53412;&#51648; &#45236;&#51032;, &#44277;&#53685; &#51064;&#53552;&#54168;&#51060;&#49828;&#47484; &#44032;&#51648;&#45716; &#53364;&#47000;&#49828;&#46308;&#51032; &#51064;&#49828;&#53556;&#49828;&#47484; &#51649;&#51217; &#49373;&#49457;&#54616;&#44256; &#51080;&#45796;&#47732;, &#44536; &#53364;&#47000;&#49828;&#51032; &#49373;&#49457;&#51088;&#47484; &#53364;&#46972;&#51060;&#50616;&#53944;&#44032; &#51649;&#51217; &#48380; &#49688; &#50630;&#44172; &#48148;&#44984;&#44256; &#53364;&#46972;&#51060;&#50616;&#53944;&#45716; &#54057;&#53552;&#47532;&#47484; &#53685;&#54644; &#44536; &#51064;&#49828;&#53556;&#49828;&#47484; &#50619;&#46020;&#47197; &#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Introduce Polymorphic Creation with Factory Method&lt;/p&gt;
&lt;p&gt;&#54620; &#49345;&#49549; &#44396;&#51312; &#45236;&#51032; &#53364;&#47000;&#49828;&#46308;&#51060; &#50612;&#46500; &#47700;&#49436;&#46300;&#47484; &#44033;&#51088; &#44396;&#54788;&#54616;&#45716;&#45936; &#44061;&#52404; &#49373;&#49457; &#45800;&#44228;&#47564; &#51228;&#50808;&#54616;&#44256; &#45208;&#47672;&#51648;&#44032; &#49436;&#47196; &#50976;&#49324;&#54616;&#45796;&#47732;, &#44536; &#47700;&#49436;&#46300;&#47484; &#49688;&#54140;&#53364;&#47000;&#49828;&#47196; &#50734;&#44592;&#44256; &#44061;&#52404; &#49373;&#49457;&#51008; &#54057;&#53552;&#47532; &#47700;&#49436;&#46300;&#50640; &#47585;&#44592;&#46020;&#47197; &#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Encapsulate Composite with Builder&lt;/p&gt;
&lt;p&gt;&#52980;&#54252;&#51667;(composite) &#44396;&#51312;&#47484; &#49373;&#49457;&#54616;&#45716; &#44284;&#51221;&#51060; &#48152;&#48373;&#51201;&#51004;&#47196; &#49688;&#54665;&#46104;&#44256; &#48373;&#51105;&#54616;&#47728; &#50640;&#47084; &#48156;&#49373; &#44032;&#45733;&#49457;&#46020; &#47566;&#51008; &#49345;&#53468;&#46972;&#47732;, &#44536; &#49464;&#48512; &#49324;&#54637;&#51012; &#52376;&#47532;&#54616;&#45716; &#48324;&#46020;&#51032; &#48716;&#45908;&#47484; &#51228;&#44277;&#54616;&#50668; &#52980;&#54252;&#51667; &#44396;&#51312;&#47484; &#49789;&#44172; &#49373;&#49457;&#54624; &#49688; &#51080;&#46020;&#47197; &#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Inline Singleton&lt;/p&gt;
&lt;p&gt;&#53076;&#46300;&#51032; &#50668;&#47084; &#44275;&#50640;&#49436; &#51217;&#44540;&#54624; &#49688; &#51080;&#50612;&#50556; &#54616;&#51648;&#47564; &#51204;&#50669;&#51201;&#51068; &#54596;&#50836;&#44620;&#51648;&#45716; &#50630;&#45716; &#44061;&#52404;&#44032; &#49905;&#44544;&#53556;&#51004;&#47196; &#44396;&#54788;&#46104;&#50612; &#51080;&#45796;&#47732;, &#49905;&#44544;&#53556; &#44061;&#52404;&#47484; &#51200;&#51109;&#54616;&#44256; &#44536;&#50640; &#45824;&#54620; &#51217;&#44540; &#44221;&#47196;&#47484; &#51228;&#44277;&#54616;&#45716; &#53364;&#47000;&#49828;&#47196; &#49905;&#44544;&#53556;&#51032; &#44592;&#45733;&#51012; &#50734;&#44596;&#45796;. &#44536;&#47532;&#44256; &#49905;&#44544;&#53556;&#51008; &#51228;&#44144;&#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;7&#51109; &#45800;&#49692;&#54868;&lt;/p&gt;
&lt;p&gt;Compose Method&lt;/p&gt;
&lt;p&gt;&#50612;&#46500; &#47700;&#49436;&#46300;&#51032; &#45236;&#48512; &#47196;&#51649;&#51060; &#54620; &#45576;&#50640; &#51060;&#54644;&#54616;&#44592; &#50612;&#47157;&#45796;&#47732;, &#44536; &#47196;&#51649;&#51012; &#51032;&#46020;&#44032; &#51096; &#46300;&#47084;&#45208;&#47728; &#46041;&#46321;&#54620; &#49688;&#51456;&#51032; &#51089;&#50629;&#51012; &#54616;&#45716; &#50668;&#47084; &#45800;&#44228;&#47196; &#45208;&#45576;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Replace conditional Logic with Strategy&lt;/p&gt;
&lt;p&gt;&#47700;&#49436;&#46300; &#45236;&#51032; &#51312;&#44148;&#47928;&#51012; &#53685;&#54644; &#50668;&#47084; &#44060;&#51032; &#49436;&#47196; &#45796;&#47480; &#47196;&#51649;(&#44228;&#49328;&#48277;) &#44032;&#50868;&#45936; &#50612;&#46500; &#44163;&#51012; &#49892;&#54665;&#54624;&#51648; &#49440;&#53469;&#54616;&#44256; &#51080;&#45796;&#47732;, &#44033; &#44228;&#49328;&#48277;&#50640; &#45824;&#51025;&#54616;&#45716; &#49828;&#53944;&#47112;&#54000;&#51648;(strategy) &#53364;&#47000;&#49828;&#47484; &#47564;&#46308;&#44256; &#54644;&#45817; &#49828;&#53944;&#47112;&#54000;&#51648; &#51064;&#49828;&#53556;&#49828;&#50640; &#44228;&#49328;&#51012; &#50948;&#51076;&#54616;&#46020;&#47197; &#47700;&#49436;&#46300;&#47484; &#49688;&#51221;&#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Move Embellishment to Decorator&lt;/p&gt;
&lt;p&gt;&#50612;&#46500; &#53364;&#47000;&#49828;&#50640; &#54645;&#49900; &#44592;&#45733;&#51012; &#50948;&#54620; &#53076;&#46300;&#50752; &#44984;&#48136; &#53076;&#46300;&#44032; &#46244;&#49438;&#50668; &#51080;&#51004;&#47732;, &#44984;&#48136; &#53076;&#46300;&#47484; &#45936;&#53076;&#47112;&#51060;&#53552;(decorator)&#47196; &#50734;&#44596;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Replace State-Altering Conditionals with State&lt;/p&gt;
&lt;p&gt;&#50612;&#46500; &#44061;&#52404;&#51032; &#49345;&#53468; &#51204;&#51060;&#47484; &#51228;&#50612;&#54616;&#45716; &#51312;&#44148; &#47196;&#51649;&#51060; &#48373;&#51105;&#54616;&#45796;&#47732;, &#44033; &#49345;&#53468;&#50640; &#54644;&#45817;&#54616;&#45716; &#49828;&#53580;&#51060;&#53944;(state) &#53364;&#47000;&#49828;&#47484; &#54616;&#45208;&#50473; &#47564;&#46308;&#44256; &#44536;&#46308;&#51060; &#49828;&#49828;&#47196; &#45796;&#47480; &#49345;&#53468;&#47196; &#51204;&#51060;&#54616;&#45716; &#44163;&#51012; &#52293;&#51076;&#51648;&#46020;&#47197; &#54616;&#50668; &#48373;&#51105;&#54620; &#51312;&#44148; &#47196;&#51649;&#51012; &#51228;&#44144;&#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Replace Implicit Tree with Composite&lt;/p&gt;
&lt;p&gt;&#49892;&#51656;&#51201;&#51004;&#47196; &#53944;&#47532; &#44396;&#51312;&#51064; &#45936;&#51060;&#53552;&#47484; String&#44284; &#44057;&#51008; &#44592;&#48376; &#53440;&#51077;&#51004;&#47196; &#54364;&#54788;&#54616;&#44256; &#51080;&#45796;&#47732;, &#44536; &#44592;&#48376; &#53440;&#51077;&#51032; &#54364;&#54788;&#51012; &#52980;&#54252;&#51667; &#44396;&#51312;&#47196; &#48148;&#44988;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Replace conditional Dispatcher with Command&lt;/p&gt;
&lt;p&gt;&#50836;&#52397;&#50640; &#45824;&#54620; &#46356;&#49828;&#54056;&#52376;(dispatcher)&#44032; &#51312;&#44148; &#47196;&#51649;&#51004;&#47196; &#44396;&#54788;&#46104;&#50612; &#51080;&#45796;&#47732;, &#44033; &#50529;&#49496;&#50640; &#45824;&#54620; &#52964;&#47592;&#46300;(command) &#44061;&#52404;&#47484; &#47564;&#46308;&#50612; &#52972;&#47113;&#49496;&#50640; &#51200;&#51109;&#54644; &#46160;&#44256;, &#51312;&#44148; &#47196;&#51649;&#51008; &#52972;&#47113;&#49496;&#50640;&#49436; &#50896;&#54616;&#45716; &#52964;&#47592;&#46300; &#44061;&#52404;&#47484; &#52286;&#50500; &#49892;&#54665;&#54616;&#45716; &#53076;&#46300;&#47196; &#45824;&#52404;&#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;8&#51109; &#51068;&#48152;&#54868;&lt;/p&gt;
&lt;p&gt;From Template Method&lt;/p&gt;
&lt;p&gt;&#54620; &#49345;&#49549; &#44396;&#51312; &#45236;&#51032; &#50612;&#46500; &#46160; &#49436;&#48652;&#53364;&#47000;&#49828;&#44032; &#50976;&#49324;&#54620; &#45800;&#50948; &#51089;&#50629;&#51012; &#44057;&#51008; &#49692;&#49436;&#47196; &#49892;&#54665;&#54616;&#45716; &#47700;&#49436;&#46300;&#47484; &#44033;&#51088; &#44396;&#54788;&#54616;&#44256; &#51080;&#45796;&#47732;, &#44033; &#45800;&#50948; &#51089;&#50629;&#51012; &#48324;&#46020;&#51032; &#47700;&#49436;&#46300;&#47196; &#48977;&#50500;&#45236;&#50612; &#46160; &#47700;&#49436;&#46300;&#47484; &#51068;&#48152;&#54868;&#54616;&#44256; &#51060;&#47111;&#44172; &#51068;&#48152;&#54868;&#46108; &#47700;&#49436;&#46300;&#47484; &#49688;&#54140;&#53364;&#47000;&#49828;&#47196; &#50732;&#47140; &#53596;&#54540;&#47551; &#47700;&#49436;&#46300;(template method)&#47196; &#47564;&#46304;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Extract Composite&lt;/p&gt;
&lt;p&gt;&#54620; &#49345;&#49549; &#44396;&#51312; &#45236;&#51032; &#49436;&#48652;&#53364;&#47000;&#49828;&#44032; &#46041;&#51068;&#54620; &#52980;&#54252;&#51667;(comosite) &#44592;&#45733;&#51012; &#44033;&#51088; &#44396;&#54788;&#54616;&#44256; &#51080;&#45796;&#47732;, &#52980;&#54252;&#51667; &#44592;&#45733;&#51012; &#49688;&#54140;&#53364;&#47000;&#49828;&#47196; &#50734;&#44200; &#44396;&#54788;&#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Replace One/Many Distinctions with Composite&lt;/p&gt;
&lt;p&gt;&#50612;&#46500; &#53364;&#47000;&#49828;&#50640;&#49436; &#51452;&#50612;&#51652; &#44061;&#52404;&#47484; &#52376;&#47532;&#54624; &#46412;, &#44536; &#44061;&#52404;&#51032; &#44060;&#49688;&#50640; &#46384;&#46972; &#49436;&#47196; &#45796;&#47480; &#47196;&#51649;&#51012; &#49324;&#50857;&#54616;&#44256; &#51080;&#45796;&#47732;, &#52980;&#54252;&#51667;&#51012; &#49324;&#50857;&#54644; &#44061;&#52404;&#51032; &#44060;&#49688;&#50640; &#49345;&#44288;&#50630;&#51060; &#54620; &#47196;&#51649;&#51004;&#47196; &#52376;&#47532;&#54624; &#49688; &#51080;&#46020;&#47197; &#47564;&#46304;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Replace Hard-Coded Notifications with Observer&lt;/p&gt;
&lt;p&gt;&#50612;&#46500; &#49345;&#49549; &#44396;&#51312; &#45236;&#51032; &#49436;&#48652;&#53364;&#47000;&#49828;&#46308;&#51060; &#51088;&#49888;&#44284; &#44288;&#47144;&#46108; &#53364;&#47000;&#49828;&#50640; &#53685;&#48372;(notify)&#54616;&#45716; &#44592;&#45733;&#51012; &#54616;&#46300; &#53076;&#46377;&#51004;&#47196; &#44033;&#51088; &#44396;&#54788;&#54616;&#44256; &#51080;&#45796;&#47732;, Observer &#51064;&#53552;&#54168;&#51060;&#49828;&#47484; &#53685;&#54644; &#44536; &#49688;&#54140;&#53364;&#47000;&#49828;&#44032; &#51076;&#51032;&#51032; &#45796;&#47480; &#53364;&#47000;&#49828;&#50640; &#53685;&#48372;&#54624; &#49688; &#51080;&#46020;&#47197; &#51068;&#48152;&#51201;&#51064; &#53685;&#48372; &#44592;&#45733;&#51012; &#47564;&#46308;&#44256; &#49436;&#48652;&#53364;&#47000;&#49828;&#45716; &#51228;&#44144;&#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Unify Interfaces with Adapter&lt;/p&gt;
&lt;p&gt;&#53364;&#46972;&#51060;&#50616;&#53944;&#44032; &#46160; &#44060;&#51032; &#50976;&#49324;&#54620; &#53364;&#47000;&#49828;&#47484; &#49324;&#50857;&#54616;&#44256; &#51080;&#45716;&#45936; &#44536;&#51473; &#54620; &#51064;&#53552;&#54168;&#51060;&#49828;&#44032; &#45796;&#47480; &#54616;&#45208;&#48372;&#45796; &#45908; &#51339;&#50500; &#48372;&#51060;&#47732;, &#50612;&#45841;&#53552;(adapter)&#47484; &#46020;&#51077;&#54644; &#51064;&#53552;&#54168;&#51060;&#49828;&#47484; &#53685;&#54633;&#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Extract Adapter&lt;/p&gt;
&lt;p&gt;&#54616;&#45208;&#51032; &#53364;&#47000;&#49828;&#44032; &#52980;&#54252;&#45324;&#53552;, &#46972;&#51060;&#48652;&#47084;&#47532;, API &#46321;&#51032; &#50668;&#47084; &#48260;&#51204;&#51012; &#46041;&#49884;&#50640; &#51648;&#50896;&#54616;&#44592; &#50948;&#54620; &#50612;&#45841;&#53552;(adapter) &#50669;&#54624;&#51012; &#54616;&#44256; &#51080;&#45796;&#47732;, &#44033; &#48260;&#51204;&#51012; &#50948;&#54620; &#44592;&#45733;&#51012; &#48324;&#46020;&#51032; &#50612;&#45841;&#53552;&#47196; &#48977;&#50500;&#45240;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Replace Implicit Language with Interpreter&lt;/p&gt;
&lt;p&gt;&#54620; &#53364;&#47000;&#49828; &#45236;&#51032; &#50668;&#47084; &#47700;&#49436;&#46300;&#50640;&#49436; &#51068;&#51333;&#51032; &#47925;&#49884;&#51201; &#50616;&#50612;&#47484; &#51060;&#47336;&#45716; &#50836;&#49548;&#46308;&#51012; &#51312;&#54633;&#54616;&#44256; &#51080;&#45796;&#47732;, &#44536; &#47925;&#49884;&#51201; &#50616;&#50612;&#51032; &#50836;&#49548;&#46308;&#51012; &#44033;&#44033;&#51032; &#53364;&#47000;&#49828;&#47196; &#51221;&#51032;&#54616;&#44256; &#44536; &#44061;&#52404;&#51032; &#51312;&#54633;&#51012; &#53685;&#54644; &#54644;&#49437; &#44032;&#45733;&#54620; &#49688;&#49885;&#51012; &#47564;&#46308;&#50612; &#45244; &#49688; &#51080;&#46020;&#47197; &#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;9&#51109; &#48372;&#54840;&lt;/p&gt;
&lt;p&gt;Replace Type Code with Class&lt;/p&gt;
&lt;p&gt;&#50612;&#46500; &#54596;&#46300; &#53440;&#51077;(&#50696;&#47484; &#46308;&#50612;, String &#46608;&#45716; int &#46321;)&#51060; &#48512;&#51201;&#54633;&#54620; &#44050;&#51032; &#45824;&#51077;&#51060;&#45208; &#50976;&#54952;&#54616;&#51648; &#50506;&#51008; &#46041;&#51068;&#49457; &#44160;&#49324;(&#48708;&#44368;)&#47484; &#48169;&#51648;&#54616;&#51648; &#47803;&#54620;&#45796;&#47732;, &#54596;&#46300;&#51032; &#53440;&#51077;&#51012; &#53364;&#47000;&#49828;&#47196; &#48148;&#45012; &#44050;&#51032; &#45824;&#51077;&#44284; &#46041;&#51068;&#49457; &#44160;&#49324;&#50640; &#51228;&#50557; &#51312;&#44148;&#51012; &#48512;&#50668;&#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Limit Instantiation with Singleton&lt;/p&gt;
&lt;p&gt;&#50612;&#46500; &#53364;&#47000;&#49828;&#51032; &#51064;&#49828;&#53556;&#49828;&#47484; &#50668;&#47084; &#44060; &#49373;&#49457;&#54644; &#49324;&#50857;&#54616;&#44256; &#51080;&#45716;&#45936; &#44536;&#47196; &#51064;&#54644; &#47700;&#47784;&#47532; &#49324;&#50857;&#47049;&#51060; &#45320;&#47924; &#52964;&#51648;&#44144;&#45208; &#49884;&#49828;&#53596; &#49457;&#45733;&#51060; &#51200;&#54616;&#46108;&#45796;&#47732;, &#50668;&#47084; &#44060;&#51032; &#44061;&#52404;&#47484; &#54616;&#45208;&#51032; &#49905;&#44544;&#53556;(Singleton) &#44061;&#52404;&#47196; &#45824;&#52404;&#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Introduce Null Object&lt;/p&gt;
&lt;p&gt;&#50612;&#46500; &#54596;&#46300;&#45208; &#48320;&#49688;&#51032; &#44050;&#51060; &#45328;&#51064;&#51648; &#44160;&#49324;&#54616;&#45716; &#47196;&#51649;&#51060; &#53076;&#46300;&#51032; &#50668;&#44592;&#51200;&#44592;&#50640; &#51473;&#48373;&#46104;&#50612; &#51080;&#45796;&#47732;, &#44050;&#51060; &#45328;&#51060; &#44221;&#50864;&#50640; &#54665;&#54624; &#51089;&#50629;&#51012; &#45824;&#49888;&#54616;&#45716; &#45328; &#44061;&#52404;(Null Object)&#47484; &#49324;&#50857;&#54616;&#46020;&#47197; &#49688;&#51221;&#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;10&#51109; &#52629;&#51201;&lt;/p&gt;
&lt;p&gt;Move Accumulation to Collecting Parameter&lt;/p&gt;
&lt;p&gt;&#51648;&#50669; &#48320;&#49688;&#50640; &#51221;&#48372;&#47484; &#52629;&#51201;&#54616;&#45716; &#47588;&#50864; &#44596; &#47700;&#49436;&#46300;&#44032; &#51080;&#45796;&#47732;, &#44536;&#44163;&#51012; &#50668;&#47084; &#47700;&#49436;&#46300;&#47196; &#48516;&#54644;&#54616;&#44256; &#44033; &#47700;&#49436;&#46300;&#50640; &#49688;&#51665; &#54028;&#46972;&#48120;&#53552;&#47484; &#45336;&#44200; &#51221;&#48372;&#47484; &#52629;&#51201;&#54616;&#46020;&#47197; &#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Move Accumulation to Visitor&lt;/p&gt;
&lt;p&gt;&#50612;&#46500; &#47700;&#49436;&#46300;&#44032; &#51060;&#51656;&#51201;&#51064; &#50668;&#47084; &#53364;&#47000;&#49828;&#46308;&#47196;&#48512;&#53552; &#51221;&#48372;&#47484; &#50619;&#50612; &#52629;&#51201;&#54616;&#44256; &#51080;&#45796;&#47732;, &#44033; &#53364;&#47000;&#49828;&#47484; &#48169;&#47928;&#54644; &#51221;&#48372;&#47484; &#52629;&#51201;&#54616;&#45716; &#48169;&#47928;&#51088;(visitor) &#44061;&#52404;&#47196; &#52629;&#51201; &#44592;&#45733;&#51012; &#50734;&#44596;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;11&#51109; &#50976;&#54008;&#47532;&#54000;&lt;/p&gt;
&lt;p&gt;Chain Constructors&lt;/p&gt;
&lt;p&gt;&#51473;&#48373;&#46108; &#53076;&#46300;&#47484; &#44054;&#45716; &#49373;&#49457;&#51088;&#44032; &#50668;&#47084; &#44060; &#51080;&#45796;&#47732;, &#51473;&#48373;&#51012; &#52572;&#49548;&#54868;&#54616;&#44592; &#50948;&#54644; &#49373;&#49457;&#51088;&#46308;&#51060; &#49436;&#47196; &#54840;&#52636;&#54616;&#44172; &#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Unify Interfaces&lt;/p&gt;
&lt;p&gt;&#49688;&#54140;&#53364;&#47000;&#49828;(&#46608;&#45716; &#51064;&#53552;&#54168;&#51060;&#49828;)&#44032; &#49436;&#48652;&#53364;&#47000;&#49828;&#50752; &#46041;&#51068;&#54620; &#51064;&#53552;&#54168;&#51060;&#49828;&#47484; &#44032;&#51656; &#54596;&#50836;&#44032; &#51080;&#45796;&#47732;, &#49436;&#48652;&#53364;&#47000;&#49828;&#50640;&#49436; &#49688;&#54140;&#53364;&#47000;&#49828;&#50640; &#50630;&#45716; &#47784;&#46304; public &#47700;&#49436;&#46300;&#47484; &#52286;&#50500; &#51060;&#47484; &#49688;&#54140;&#53364;&#47000;&#49828;&#50640; &#52628;&#44032;&#54620;&#45796;. &#51060; &#46412; &#47700;&#49436;&#46300; &#47800;&#52404;&#45716; &#48708;&#50892;&#45459;&#50500; &#50500;&#47924; &#51068;&#46020; &#54616;&#51648; &#50506;&#46020;&#47197; &#47564;&#46304;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Extract Parameter&lt;/p&gt;
&lt;p&gt;&#47700;&#49436;&#46300;&#45208; &#49373;&#49457;&#51088; &#45236;&#50640;&#49436; &#49373;&#49457;&#54620; &#44050;&#51012; &#54596;&#46300;&#50640; &#51200;&#51109;&#54616;&#44256; &#51080;&#45796;&#47732;, &#45824;&#51077;&#47928;&#51032; &#50864;&#48320;&#51012; &#49352; &#54028;&#46972;&#48120;&#53552;&#47196; &#45824;&#52404;&#54644; &#53364;&#46972;&#51060;&#50616;&#53944;&#44032; &#44536; &#44050;&#51012; &#51648;&#51221;&#54624; &#49688; &#51080;&#46020;&#47197; &#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description>
      <pubDate>Thu, 27 Nov 2008 11:50:08 +0900</pubDate>
      <link>http://plusha.springnote.com/pages/1985746</link>
      <guid>http://plusha.springnote.com/pages/1985746</guid>
    </item>
    <item>
      <title>gpl backup utils</title>
      <description>&lt;h2&gt;Gpl Backup Manager (gplbackup)&lt;/h2&gt;
&lt;h5&gt;self document&lt;/h5&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Gpl Backup Manager : backup files matching extensions recursively&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Usage :&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gplbackup [cfg filename]&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Optional parameters :&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cfg filename&amp;nbsp;&amp;nbsp;&amp;nbsp; : configuration file(yaml file) name&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --cfg &amp;gt; gplbackup.yml&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : generate sample 'gplbackup.yml' file&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Configuration file&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; see sample 'gplbackup.yml' file. (use --cfg option)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Gpl backup manager&#45716; &#54788;&#51116; &#46356;&#47113;&#53664;&#47532; &#54616;&#50948;&#51032;&amp;nbsp;&#46356;&#47113;&#53664;&#47532;&#47484; &#46028;&#50500;&#45796;&#45768;&#47728; &#50896;&#54616;&#45716; &#54869;&#51109;&#51088;&#51032; &#54028;&#51068;&#46308;&#51012; backup&#54644;&#51452;&#45716; &#54532;&#47196;&#44536;&#47016;&#51077;&#45768;&#45796;. &#48177;&#50629;&#54624; &#46412;&#50640;&#45716; (&#54788;&#51116; &#46356;&#47113;&#53664;&#47532;&#50640;&#49436; &#49345;&#45824;&#51201;&#51064;) &#46356;&#47113;&#53664;&#47532; &#44396;&#51312;&#47484; &#44536;&#45824;&#47196; &#47564;&#46308;&#50612;&#51452;&#47728; &#48177;&#50629;&#51012; &#54633;&#45768;&#45796;. Backup &#54616;&#44256;&#51088; &#54616;&#45716; &#46356;&#47113;&#53664;&#47532;&#50752; &#54028;&#51068; &#49444;&#51221;&#51008; yml &#54028;&#51068;&#51012; &#51060;&#50857;&#54616;&#50668; &#54644;&#51469;&#45768;&#45796;. &#50696;&#51228; yml &#54028;&#51068;&#51008;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;gplbackup --cfg &amp;gt; gplbackup.yml&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&#44284; &#44057;&#51060; &#49373;&#49457;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;. &#51060;&#47111;&#44172; &#49373;&#44592;&#45716; yml &#54028;&#51068;&#51008; &#50500;&#47000;&#50752; &#44057;&#49845;&#45768;&#45796;. &#54028;&#51068;&#51008; YAML &#47928;&#48277;&#51012; &#46384;&#47476;&#45716;&#45936;, &#44036;&#45800;&#54616;&#44592; &#46412;&#47928;&#50640; YAML &#47928;&#48277;&#51012; &#47792;&#46972;&#46020; &#50500;&#47000; &#54028;&#51068;&#51012; &#49688;&#51221;&#54616;&#50668; &#49324;&#50857;&#54624; &#49688; &#51080;&#49845;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sample &lt;a href="http://en.wikipedia.org/wiki/YAML" class="external" title="yml"&gt;yml&lt;/a&gt; file&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;# Gpl Backup Manager Configuration File&lt;br /&gt;
# Date : 2008.02.21&lt;br /&gt;
&lt;br /&gt;
# Source directories you want to backup&lt;br /&gt;
sourceDirectory :&lt;br /&gt;
- Documents&lt;br /&gt;
- lib&lt;br /&gt;
&lt;br /&gt;
# Extensions of files you want to backup&lt;br /&gt;
extensions :&lt;br /&gt;
- .f&lt;br /&gt;
- .f90&lt;br /&gt;
- .c&lt;br /&gt;
- .rb&lt;br /&gt;
- .sh&lt;br /&gt;
- Makefile&lt;br /&gt;
- .tex&lt;br /&gt;
&lt;br /&gt;
# A directory name to which the backup files will be copied&lt;br /&gt;
targetDirectory : gop642Bak&lt;br /&gt;
&lt;br /&gt;
# Print the copying process (T/F)&lt;br /&gt;
verbose : T&lt;br /&gt;
&lt;br /&gt;
# Make "gop642Bak-2008.02.21.tgz" file using the targetDirectory (T/F)&lt;br /&gt;
makeTarBall : T&lt;br /&gt;
&lt;br /&gt;
# Remove the targetDirectory after backup (T/F) - when you want tgz file only&lt;br /&gt;
removeBackupDir : F&lt;br /&gt;
&lt;br /&gt;
# Files containing these words in their absolute path will be omitted&lt;br /&gt;
exclude :&lt;br /&gt;
- 'backup'&lt;br /&gt;
- 'lib/dms'&lt;br /&gt;
- 'lib/UMFPACK'&lt;br /&gt;
- 'lib/SU'&lt;br /&gt;
- 'lib/seplib'&lt;br /&gt;
- '.svn'&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#50696;&#51228;&#51032; yml &#54028;&#51068;&#50640;&#49436; #&#51004;&#47196; &#49884;&#51089;&#54616;&#45716; &#48512;&#48516;&#51008; comment&#51077;&#45768;&#45796;.&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;sourceDirectory :&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&#50500;&#47000;&#50640; '-'&#51012; &#44555;&#44256; backup&#54616;&#44256;&#51088; &#54616;&#45716; &#46356;&#47113;&#53664;&#47532; &#51060;&#47492;&#51012; &#51201;&#49845;&#45768;&#45796;. Backup&#51008; &#54616;&#50948; &#46356;&#47113;&#53664;&#47532;&#44620;&#51648; recursive&#54616;&#44172; &#54633;&#45768;&#45796;. '- .'&#44284; &#44057;&#51060; &#51201;&#51004;&#47732; &#54788;&#51116; &#46356;&#47113;&#53664;&#47532;&#50752;&amp;nbsp; &#54616;&#50948; &#46356;&#47113;&#53664;&#47532;&#51032; &#47784;&#46304; &#54028;&#51068;&#46308;&#51012; &#45824;&#49345;&#51004;&#47196; backup&#54633;&#45768;&#45796;. &#51060; &#46412; &#47784;&#46304; &#54028;&#51068;&#46308;&#51012; &#45796; backup&#54616;&#45716; &#44163;&#51060; &#50500;&#45768;&#46972;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;extensions :&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&#50640; &#54644;&#45817;&#54616;&#45716; &#54028;&#51068;&#46308;&#47564; backup&#54633;&#45768;&#45796;. &#44845; &#54869;&#51109;&#51088;&#44032; &#50500;&#45768;&#46972;&#46020;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;- Makefile&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&#44284; &#44057;&#51060; &#54028;&#51068; &#51060;&#47492;&#51032; &#45149;&#48512;&#48516;&#51060; &#44057;&#51004;&#47732; backup&#54633;&#45768;&#45796;. Backup&#54624; &#46412;&#50640;&#45716; &#54788;&#51116; &#46356;&#47113;&#53664;&#47532; &#50500;&#47000;&#50640;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;targetDirectory :&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&#50640; &#51648;&#51221;&#46108; &#46356;&#47113;&#53664;&#47532;&#47484; &#47564;&#46308;&#44256;, &#44536; &#50500;&#47000; &#54028;&#51068;&#51060; &#46308;&#50612;&#51080;&#45716; &#46356;&#47113;&#53664;&#47532;&#47484; &#47564;&#46308;&#50612; backup&#54633;&#45768;&#45796;. targetDirectory &#51060;&#47492;&#51008; &#54788;&#51116; hostname&#51012; &#44592;&#51456;&#51004;&#47196; &#47564;&#46317;&#45768;&#45796;.&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;verbose :&lt;/li&gt;
&lt;li&gt;makeTarBall :&lt;/li&gt;
&lt;li&gt;removeBackupDir :&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&#51008; T, F&#47196; &#54364;&#49884;&#54616;&#44256; backup &#44284;&#51221;&#51012; &#54868;&#47732;&#51004;&#47196; &#48372;&#50668;&#51460;&#51648;, &#46356;&#47113;&#53664;&#47532;&#47484; &#47564;&#46308;&#50612; backup&#54620; &#54980; &#46356;&#47113;&#53664;&#47532;&#47484; tgz &#54028;&#51068;&#47196; &#50517;&#52629;&#54624; &#44163;&#51064;&#51648;, &#50517;&#52629; &#54980; backup &#46356;&#47113;&#53664;&#47532;&#47484; &#51648;&#50872; &#44163;&#51064;&#51648; &#51648;&#51221;&#54644;&#51469;&#45768;&#45796;. &#50517;&#52629; &#54028;&#51068;&#47749;&#51008; &#44592;&#48376;&#51201;&#51004;&#47196; targetDirectory &#51060;&#47492;&#50640; &#54788;&#51116; &#45216;&#51676;&#47484; &#45908;&#54644;&#49436; &#47564;&#46308;&#50612;&#51469;&#45768;&#45796;. &#44057;&#51008; &#51060;&#47492;&#51032; &#54028;&#51068;&#51060; &#51316;&#51116;&#54624; &#44221;&#50864; &#46244;&#50640; &#49707;&#51088;&#47484; &#48537;&#50668; &#49352;&#47196; &#47564;&#46308; &#54028;&#51068;&#51032; &#51060;&#47492;&#51012; &#48320;&#44221;&#54644;&#51469;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;Backup&#54624; &#46412;&#50640;&#45716; 'extensions :'&#50640; &#47582;&#45908;&#46972;&#46020; &#51208;&#45824;&#44221;&#47196;&#50640; 'exclude :'&#51032; &#45236;&#50857;&#51060; &#46308;&#50612;&#44032; &#51080;&#45716; &#54028;&#51068;&#51008; &#51228;&#50808;&#54633;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h5&gt;Learning by doing&lt;/h5&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#49892;&#54665; &#50696;&#47484; &#48380;&#44620;&#50836;? &#54788;&#51116; &#46356;&#47113;&#53664;&#47532; &#50500;&#47000;&#50640; gplbackup.yml &#54028;&#51068;&#44284; test1, test2, test3 &#49464; &#44060;&#51032; &#46356;&#47113;&#53664;&#47532;&#44032; &#51080;&#44256;, &#44033;&#44033;&#51032; &#46356;&#47113;&#53664;&#47532;&#50640;&#45716; &#45796;&#51020;&#44284; &#44057;&#51008; &#54028;&#51068;&#46308;&#51060; &#51080;&#49845;&#45768;&#45796;.&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;$&amp;nbsp;ls -R&lt;br /&gt;
.:&lt;br /&gt;
gplbackup.yml&amp;nbsp; test1&amp;nbsp; test2&amp;nbsp; test3&lt;br /&gt;
./test1:&lt;br /&gt;
file1&amp;nbsp; file2&amp;nbsp; file2.f90&lt;br /&gt;
./test2:&lt;br /&gt;
file2.f&amp;nbsp; file2.f90&amp;nbsp; file3.f90&lt;br /&gt;
./test3:&lt;br /&gt;
file1.f90&amp;nbsp; file2.c&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;gplbackup.yml &#54028;&#51068;&#51032; &#45236;&#50857;&#51008; &#45796;&#51020;&#44284; &#44057;&#49845;&#45768;&#45796;.&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;$ cat gplbackup.yml&lt;/li&gt;
&lt;li&gt;# Gpl Backup Manager Configuration File&lt;/li&gt;
&lt;li&gt;# Date : 2008.11.18&lt;/li&gt;
&lt;li&gt;# Source directories you want to backup&lt;/li&gt;
&lt;li&gt;sourceDirectory :&lt;/li&gt;
&lt;li&gt;- .&lt;/li&gt;
&lt;li&gt;# Extensions of files you want to backup&lt;/li&gt;
&lt;li&gt;extensions :&lt;/li&gt;
&lt;li&gt;- .f90&lt;/li&gt;
&lt;li&gt;# A directory name to which the backup files will be copied&lt;/li&gt;
&lt;li&gt;targetDirectory : node480Bak&lt;/li&gt;
&lt;li&gt;# Print the copying process (T/F)&lt;/li&gt;
&lt;li&gt;verbose : T&lt;/li&gt;
&lt;li&gt;# Make "node480Bak-2008.11.18.tgz" file using the targetDirectory (T/F)&lt;/li&gt;
&lt;li&gt;makeTarBall : T&lt;/li&gt;
&lt;li&gt;# Remove the targetDirectory after backup (T/F) - when you want tgz file only&lt;/li&gt;
&lt;li&gt;removeBackupDir : F&lt;/li&gt;
&lt;li&gt;# Files containing these words in their absolute path will be omitted&lt;/li&gt;
&lt;li&gt;exclude :&lt;/li&gt;
&lt;li&gt;- 'test3'&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#54788;&#51116; &#46356;&#47113;&#53664;&#47532; &#50500;&#47000;&#51032; &#47784;&#46304; &#46356;&#47113;&#53664;&#47532;&#47484; &#46028;&#47728; backup&#54616;&#45716;&#45936; .f90 &#54028;&#51068;&#47564; backup&#54616;&#44256;, &#44221;&#47196;&#50640; 'test3'&#51060;&#46972;&#45716; &#47928;&#51088;&#50676;&#51060; &#46308;&#50612;&#44036; &#54028;&#51068;&#51008; &#51228;&#50808;&#54633;&#45768;&#45796;. &#49892;&#54665; &#44208;&#44284;&#45716; &#45796;&#51020;&#44284; &#44057;&#49845;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;$ gplbackup gplbackup.yml&lt;/li&gt;
&lt;li&gt;in .&lt;/li&gt;
&lt;li&gt;cp&amp;nbsp; ./test2/file2.f90&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; node480Bak/./test2&lt;/li&gt;
&lt;li&gt;cp&amp;nbsp; ./test2/file3.f90&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; node480Bak/./test2&lt;/li&gt;
&lt;li&gt;cp&amp;nbsp; ./test1/file2.f90&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; node480Bak/./test1&lt;/li&gt;
&lt;li&gt;3 files are backed up&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;making tgz ball : node480Bak/&lt;/li&gt;
&lt;li&gt;node480Bak/test2/&lt;/li&gt;
&lt;li&gt;node480Bak/test2/file2.f90&lt;/li&gt;
&lt;li&gt;node480Bak/test2/file3.f90&lt;/li&gt;
&lt;li&gt;node480Bak/test1/&lt;/li&gt;
&lt;li&gt;node480Bak/test1/file2.f90&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;node480Bak-20081118.tgz : 207 bytes&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#54788;&#51116; &#46356;&#47113;&#53664;&#47532; &#48145;&#50640; 'node480Bak' &#46972;&#45716; &#46356;&#47113;&#53664;&#47532;&#47484; &#47564;&#46308;&#44256;(hostname&#51060; 'node480'&#51077;&#45768;&#45796;) &#44536; &#50500;&#47000;&#50640; &#46356;&#47113;&#53664;&#47532; &#44396;&#51312;&#47484; &#50976;&#51648;&#54616;&#47728; .f90 &#54028;&#51068;&#46308;&#51012; backup&#54633;&#45768;&#45796;. yml &#54028;&#51068;&#50640;&#49436; verbose: T &#46972;&#44256; &#54664;&#44592; &#46412;&#47928;&#50640; backup &#44284;&#51221;&#51012; &#54868;&#47732;&#51004;&#47196; &#52636;&#47141;&#54644;&#51452;&#44256;, makeTarBall: T &#46972;&#44256; &#54664;&#44592; &#46412;&#47928;&#50640; backup &#46356;&#47113;&#53664;&#47532;&#47484; &#50517;&#52629;&#54616;&#50668; node480Bak-20081118.tgz &#54028;&#51068;&#51012; &#47564;&#46308;&#50612;&#51469;&#45768;&#45796;. &#46608;&#54620;, &#50517;&#52629; &#54028;&#51068;&#51032; &#53356;&#44592;&#46020; &#48372;&#50668;&#51469;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#51060; &#54532;&#47196;&#44536;&#47016;&#51008; ruby &#54532;&#47196;&#44536;&#47000;&#48141; &#50616;&#50612;&#47196; &#47564;&#46308;&#50632;&#44592; &#46412;&#47928;&#50640; &#49892;&#54665;&#54616;&#44592; &#50948;&#54644;&#49436;&#45716; ruby(version 1.8 &#51060;&#49345;)&#44032; &#54596;&#50836;&#54633;&#45768;&#45796;. &#44060;&#51064;&#51201;&#51004;&#47196; &#49345;&#45817;&#55176; &#50976;&#50857;&#54616;&#44172; &#50416;&#44256; &#51080;&#45716;&#45936;, &#54596;&#50836;&#54616;&#49888; &#48516;&#51008;&amp;nbsp;&lt;a href="/pages/838122/attachments/957128" title="gplbackup" class="attachment"&gt;&#50668;&#44592;&lt;/a&gt;&#50640;&#49436; &#48155;&#50500; &#50416;&#49464;&#50836;~^^&lt;/p&gt;
</description>
      <pubDate>Tue, 18 Nov 2008 16:07:45 +0900</pubDate>
      <link>http://plusha.springnote.com/pages/838122</link>
      <guid>http://plusha.springnote.com/pages/838122</guid>
    </item>
    <item>
      <title>Gpl file/directory utils</title>
      <description>&lt;h2&gt;Gpl Two-Directory Merger (gpldirmerge)&lt;/h2&gt;
&lt;h5&gt;self document&lt;/h5&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Gpl two-DIRectory MERGEr : delete duplicated files/directories and merge two directories&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;: duplication check : file name and size (not date)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Usage :&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpldirmerge org=[original directory name] dup=[duplicated directory name]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Required parameters :&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; org&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : original directory name&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dup&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : duplicated directory name&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Examples :&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ gpldirmerge org=dir1 dup=dir2&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- copied files --&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Gpl Duplicated Files/Directories Deleter (gpldupdel)&lt;/h2&gt;
&lt;h5&gt;self document&lt;/h5&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Gpl Duplicated files/directories Deleter : delete duplicated files/directories in two directories&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : duplication check : file name and size (not date)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Usage :&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gpldupdel org=[original directory name] dup=[duplicated directory name]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Required parameters :&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; org&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : original directory name&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dup&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : duplicated directory name&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Examples :&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $ gpldupdel org=dir1 dup=dir2&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- files left --&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description>
      <pubDate>Thu, 06 Nov 2008 16:42:13 +0900</pubDate>
      <link>http://plusha.springnote.com/pages/2055570</link>
      <guid>http://plusha.springnote.com/pages/2055570</guid>
    </item>
    <item>
      <title>GnuQuickPlot</title>
      <description>&lt;h2&gt;GNU Quick Plot&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://www.gnuplot.info" title="http://www.gnuplot.info" class="external"&gt;Gnuplot&lt;/a&gt;&#51008; &#47532;&#45573;&#49828;&#50640;&#49436; &#53581;&#49828;&#53944;&#54028;&#51068;&#50640; &#51200;&#51109;&#46108; &#44050;&#51012; &#48736;&#47476;&#44172; &#44536;&#47548;&#51004;&#47196; &#44536;&#47140;&#51452;&#45716; &#54532;&#47196;&#44536;&#47016;&#51077;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&#45796;&#50577;&#54620; &#44592;&#45733;&#51012; &#44032;&#51648;&#44256; &#51080;&#51648;&#47564;, &#51228; &#44221;&#50864;&#50640;&#45716; &#51452;&#47196; &#49688;&#52824;&#54644;&#49437; &#54980; &#44208;&#44284; &#54869;&#51064;&#50857;&#51004;&#47196; &#50433;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;gnuplot&#51004;&#47196; &#44536;&#47548;&#51012; &#44536;&#47540; &#46412;&#50640;&#45716;&amp;nbsp;command line &#49345;&#50640;&#49436; 'gnuplot'&#51060;&#46972;&#44256; &#52824;&#44256; &#46308;&#50612;&#44032;&#49436; gnuplot &#47749;&#47161;&#50612;&#46308;&#51012; &#51060;&#50857;&#54616;&#50668; &#44536;&#47548;&#51012; &#44536;&#47532;&#44256; 'q'&#47484; &#51077;&#47141;&#54616;&#50668; &#48736;&#51256;&#45208;&#50741;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&#44536;&#47088;&#45936; &#44036;&#45800;&#55176; &#44208;&#44284;&#47484; &#54869;&#51064;&#54644;&#48372;&#44592; &#50948;&#54644;&#49436; gnuplot&#50640; &#46308;&#50612;&#44032;&#49436;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;p 'file1'&amp;nbsp;w l,'file1' u 1:3 w l,'file1' u 1:4 w&amp;nbsp;p&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&#46608;&#45716;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;set grid&lt;/p&gt;
&lt;p&gt;set xrange[:10]&lt;/p&gt;
&lt;p&gt;set log y&lt;/p&gt;
&lt;p&gt;p 'file1' w l,'file2' w l,'file3' w l&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&#44284; &#44057;&#51060; &#47588;&#48264; &#52824;&#47140;&#45768; &#44480;&#52270;&#45796;&#45716; &#49373;&#44033;&#51060; &#46308;&#50632;&#49845;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&#44536;&#47000;&#49436; &#51060; script&#47484; &#47564;&#46308;&#44172; &#46104;&#50632;&#49845;&#45768;&#45796;. &#52376;&#51020;&#50640;&#45716; ruby&#47196; &#47564;&#46308;&#50612; &#49324;&#50857;&#54616;&#45796;&#44032; &#50504; &#50416;&#45716; &#44592;&#45733;&#51008; &#48764;&#44256;&amp;nbsp;python&amp;nbsp;script&#47196; &#48148;&#45032;&#49845;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&#51060; script&#47484; &#49324;&#50857;&#54616;&#47732; command line &#49345;&#50640;&#49436; &#48148;&#47196; gnuplot &#47749;&#47161;&#50612;&#47484; &#49324;&#50857;&#54616;&#50668; &#44536;&#47548;&#51012; &#44536;&#47540; &#49688; &#51080;&#49845;&#45768;&#45796;. &#49324;&#50857; &#48169;&#48277;&#51008; &#50500;&#47000;&#50752; &#44057;&#49845;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;Usage :&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;nbsp;./gnuqp.py [options] filename1 [u 1:2] [w l], filename2 [u 1:2] [w l], filename3 ...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#49892;&#54665;&#54028;&#51068; &#51060;&#47492;, &#47751; &#44032;&#51648; setting &#44288;&#47144;&amp;nbsp;&#50741;&#49496;&#46308;, &#51060;&#54980;&#50640;&#45716; gnuplot&#51032; plot &#47749;&#47161;&#50612;&#47484; &#51077;&#47141;&#54633;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;Required parameters :&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;nbsp;filename1&lt;br /&gt;
&amp;nbsp;Empty filename[2,3,...] will be replaced by the filename1&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#46160; &#48264;&#51704; &#50948;&#52824;&#48512;&#53552;&#45716;&amp;nbsp;&#54028;&#51068;&#47749;&#51012; &#49373;&#47029;&#54616;&#47732; &#52395; &#48264;&#51704; &#54028;&#51068;&#47749;&#51004;&#47196; &#45824;&#52404;&#54633;&#45768;&#45796;. &#54616;&#45208;&#51032; &#54028;&#51068;&#50640;&#49436; &#50668;&#47084; column&#46308;&#51012; &#44536;&#47540; &#46412; &#54200;&#47532;&#54633;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;Optional parameters :&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;nbsp;u 1:2&amp;nbsp;&amp;nbsp; : columns you want to plot&lt;br /&gt;
&amp;nbsp;w [lp..]: line style- line, point, dot or impulse ..etc (default: w l)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;plot &#47749;&#47161;&#50612;&#51032; &#50741;&#49496;&#46308; &#51473;&#50640;&#45716; using&amp;nbsp;(columns)&#44284;&amp;nbsp;with (line style)&#47564; &#51648;&#50896;&#54633;&#45768;&#45796;. &#44536; &#50808;&#51032; &#47749;&#47161;&#51008; &#51096; &#50504; &#50416;&#45908;&#46972;&#44256;&#50836;^^.&lt;/p&gt;
&lt;p&gt;&#50948;&#51032; &#50741;&#49496;&#51012; &#51452;&#51648; &#50506;&#50520;&#51012; &#46412; &#44592;&#48376;&#51201;&#51004;&#47196;&amp;nbsp;"with line" &#50741;&#49496;&#51004;&#47196; &#44536;&#47549;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;nbsp;-p&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : do not run gnuplot. just print the gnuplot command&lt;br /&gt;
&amp;nbsp;-c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : no comma seperation - the arguments are filenames seperated with a blank- use with glob pattern&lt;/p&gt;
&lt;p&gt;&amp;nbsp;-l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : set logscale y&lt;br /&gt;
&amp;nbsp;-g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : set grid&lt;/p&gt;
&lt;p&gt;&amp;nbsp;-x[:10] : set xrange [:10]&lt;br /&gt;
&amp;nbsp;-y[1:5] : set yrange [1:5]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#50948;&#51032; &#50741;&#49496;&#46308;&#51008; gnuplot&#51032; setting&#51012; &#44036;&#54200;&#54616;&#44172; &#54616;&#44592; &#50948;&#54644; &#47564;&#46308;&#50632;&#49845;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;-p &#50741;&#49496;&#51012; &#48537;&#51060;&#47732; gnuplot&#51032; &#47749;&#47161;&#50612;&#47564; &#52636;&#47141;&#54616;&#44256; &#44536;&#47548;&#51008; &#50504; &#44536;&#47549;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;-c &#50741;&#49496;&#51012; &#48537;&#51060;&#47732;&amp;nbsp;&#54028;&#51068;&#46308;&#51012; &#44592;&#48376; &#50741;&#49496;(with line)&#51004;&#47196; &#44536;&#47549;&#45768;&#45796;.&amp;nbsp;&#51060; &#46412; &#54028;&#51068;&#47749;&#46308; &#49324;&#51060;&#51032; ","&#47484; &#49373;&#47029;&#54616;&#44256; &#54028;&#51068;&#47749;&#47564; &#50433;&#45768;&#45796;. command line&#49345;&#50640;&#49436; glob pattern&#51012; &#51060;&#50857;&#54616;&#50668; &#50668;&#47084; &#44536;&#47548;&#51012; &#44536;&#47540; &#49688; &#51080;&#46020;&#47197; &#54616;&#44592; &#50948;&#54620; &#50741;&#49496;&#51077;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&#45208;&#47672;&#51648; gnuplot setting&#46308;&#51008; &#50948;&#51032; &#49444;&#47749;&#51004;&#47196; &#52649;&#48516;&#54624; &#44163;&#51060;&#46972;&amp;nbsp;&#49373;&#44033;&#54633;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;Examples :&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;nbsp;./gnuqp.py -p "file1", u 1:3 w p&lt;br /&gt;
&amp;nbsp;-&amp;gt; p 'file1' u 1:2 w l, 'file1' u 1:3 w p&lt;/p&gt;
&lt;p&gt;&amp;nbsp;./gnuqp.py -p -c file.00*&lt;br /&gt;
&amp;nbsp;-&amp;gt; p 'file.0010' w l,'file.0020' w l,'file.0030' w l&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Download: &lt;a href="/pages/1911426/attachments/845870?dummy=1223881326777" class="attachment" title="gnuqp.py"&gt;gnuqp.py&lt;/a&gt;&lt;/p&gt;
</description>
      <pubDate>Thu, 06 Nov 2008 16:23:43 +0900</pubDate>
      <link>http://plusha.springnote.com/pages/1911426</link>
      <guid>http://plusha.springnote.com/pages/1911426</guid>
    </item>
    <item>
      <title>gpl muting utils</title>
      <description>&lt;h2&gt;Gpl Mute Interpolator(gplMuteintp)&lt;/h2&gt;
&lt;h4&gt;&lt;span style="font-size: small;"&gt;self document&lt;/span&gt;&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Gpl Mute Interpolator : read polyg.#### files and interpolate missing numbers&lt;/p&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Usage :&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;gplMuteintp.rb first=[] last=[] step=[]&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Required parameters :&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;first&amp;nbsp;&amp;nbsp; &amp;nbsp;: shot number of the first shotgather&lt;br /&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;last&amp;nbsp;&amp;nbsp; &amp;nbsp;: shot number of the last shotgather&lt;/p&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;Optional parameter :&lt;br /&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;step=last-first&amp;nbsp;&amp;nbsp; &amp;nbsp;: shot step&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;Examples&lt;/h4&gt;
&lt;p&gt;&#50696;&#47484; &#46308;&#50612;, shotgather&#44032; 1200&#48264;&#48512;&#53552; 1300&#48264;&#44620;&#51648; &#51080;&#45716;&#45936; 1200&#48264;, 1204&#48264;, 1208&#48264;, ... , 1300&#48264;&#44620;&#51648; 4&#44060;&#50473; &#44148;&#45320; &#46832;&#47728; xmute script&#47196; Muting&#51012; &#54664;&#45796;&#44256; &#54633;&#49884;&#45796;.&lt;/p&gt;
&lt;p&gt;(&#51060; &#46412; &#54620; shotgather &#45236;&#50640;&#49436; muting&#51008; &#50812;&#51901;&#50640;&#49436; &#50724;&#47480;&#51901;&#51004;&#47196; &#51652;&#54665;&#54616;&#45716; &#44163;&#51060; &#51339;&#49845;&#45768;&#45796;.)&lt;/p&gt;
&lt;p&gt;&#44536;&#47100; polyg.1200, polyg.1204, polyg.1208, ... , polyg.1300 &#48264;&#44620;&#51648; polygon &#54028;&#51068;&#46308;&#51060; &#49373;&#49457;&#46104;&#50632;&#44192;&#51424;. &#51060; &#54028;&#51068;&#46308;&#51060; &#51060; &#54532;&#47196;&#44536;&#47016;&#51032; input&#51060; &#46121;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#51060; &#54532;&#47196;&#44536;&#47016;&#51008; &#50526;&#50640;&#49436; muting&#54644;&#45459;&#51008; polyg.#### &#54028;&#51068;&#46308;&#51012;&amp;nbsp;interpolation&#54616;&#50668; &#51473;&#44036;&#51473;&#44036; &#48708;&#50612;&#51080;&#45716; polyg.1201, polyg.1202, polyg.1203, polyg.1205, ..., polyg.1299 &#54028;&#51068;&#46308;(output)&#51012; &#49373;&#49457;&#54644;&#45236;&#45716; &#54532;&#47196;&#44536;&#47016;&#51077;&#45768;&#45796;. &#51060; &#46412;&#51032; &#49892;&#54665; &#47749;&#47161;&#51008;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;gplMuteintp.rb first=1200 last=1300 step=4&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&#44032; &#46121;&#45768;&#45796;. 1200&#48264;&#48512;&#53552; &#49884;&#51089;&#54616;&#50668; 4&#50473; &#45908;&#54644;&#44032;&#47728; &#51060;&#48120; &#51316;&#51116;&#54616;&#45716; polyg.#### &#54028;&#51068;&#46308;&#47196; &#48708;&#50612;&#51080;&#45716; polyg.#### &#54028;&#51068;&#46308;&#51012; &#49373;&#49457;&#54644;&#45253;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;1200&#48264;&#44284; 1204&#48264;&#51012; &#51060;&#50857;&#54616;&#50668; 1201~1203&#48264;&#51012; interpolation&#54616;&#44256;,&lt;/p&gt;
&lt;p&gt;1204&#48264;&#44284; 1208&#48264;&#51012; &#51060;&#50857;&#54616;&#50668; 1205~1207&#48264;&#51012; interpolation&#54633;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&#47564;&#50557; step&#51012; &#50024;&#51452;&#51648; &#50506;&#51004;&#47732; first&#50752; last &#49324;&#51060;&#50640; &#51080;&#45716; &#47784;&#46304; &#54028;&#51068;&#46308;&#51012; &#45796; interpolation&#54616;&#50668; &#49373;&#49457;&#54633;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Garbage in, garbage out &#51060;&#46972;&#44256;, &#51339;&#51008; &#44208;&#44284;&#47484; &#50619;&#44592; &#50948;&#54644;&#49436;&#45716; muting&#54620; &#44208;&#44284;&#44032; &#51339;&#51020;&#51012; &#54869;&#51064;&#54616;&#44256; &#50024;&#50556;&#54633;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;step&#44036;&#44201;&#51008; &#51088;&#47308;&#50640; &#46384;&#46972; &#45796;&#47493;&#45768;&#45796;. shotgather &#47784;&#50577;&#50640; &#44144;&#51032; &#48320;&#54868;&#44032; &#50630;&#45716; &#44221;&#50864; step&#51012; &#53356;&#44172; &#46168; &#49688; &#51080;&#44256;, &#47784;&#50577;&#51060; &#48520;&#44508;&#52825;&#54620; &#44221;&#50864;&#50640;&#45716; step&#51012; &#51089;&#44172; &#54616;&#44144;&#45208; &#51204;&#52404;&#47484; &#45796; &#51649;&#51217; muting&#54644;&#50556;&#44192;&#51424;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Gpl Muter(gplMute)&lt;/h2&gt;
&lt;h4&gt;&lt;span style="font-size: small;"&gt;self document&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Gpl Muter : mute shotgathers using polyg.#### files&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Usage :&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gplMute.rb first=[] last=[] step=[] [optional parameters]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Required parameters :&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; first&amp;nbsp;&amp;nbsp; : shot number of the first shotgather&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; last&amp;nbsp;&amp;nbsp;&amp;nbsp; : shot number of the last shotgather&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Optional parameters&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -i&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : include all&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not given, skip [first,last,step]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; step=last-first : shot step # skip shotgathers matching [do first,last,step]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fout=muteshot&amp;nbsp;&amp;nbsp; : output muted file name&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; perc=85&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : suximage percent&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hbox=1000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : suximage hbox&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wbox=1270&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : suximage wbox&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x1end&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : suximage x1end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d2=1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : suximage d2&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fin&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : su file name containing the shot gathers&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;Examples&lt;/h4&gt;
&lt;p&gt;&#51060; &#54532;&#47196;&#44536;&#47016;&#51008; &#50526;&#50640;&#49436; interpolation&#54644; &#45459;&#51008; &#54028;&#51068;&#46308;&#51012; &#44032;&#51648;&#44256; &#49892;&#51228; muting&#51012; &#54616;&#50668; &#51096; &#46104;&#50632;&#45716;&#51648; &#54869;&#51064;&#54616;&#45716; &#54532;&#47196;&#44536;&#47016;&#51077;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;shot&#51012; &#54252;&#54632;&#54620; su &#54028;&#51068;&#51008; shot &#48264;&#54840;&#47484; &#44592;&#51456;&#51004;&#47196; shots####_####.su &#54028;&#51068;&#46308; &#51473;&#50640;&#49436; &#51088;&#46041;&#51004;&#47196; &#52286;&#49845;&#45768;&#45796;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;gplMute.rb first=1200 last=1300 step=4 x1end=4.5&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&#50752; &#44057;&#51060; &#49892;&#54665;&#51012; &#54616;&#47732; 1200&#48264;, 1204&#48264;, 1208&#48264;, ... , 1300&#48264;&#51008; &#44148;&#45320;&#46832;&#44256;(&#50526;&#50640;&#49436; &#51060;&#48120; &#54869;&#51064;&#54664;&#51004;&#45768;&#44620;&#50836;, -i &#50741;&#49496;&#51012; &#51452;&#47732; &#45796; &#54252;&#54632;&#54633;&#45768;&#45796;), 1201&#48264;, 1202&#48264;, 1203&#48264;, 1205&#48264;, ... , 1299&#48264;&#44620;&#51648; interpolation&#54620; polyg.#### &#54028;&#51068;&#46308;&#51012; &#51060;&#50857;&#54616;&#50668; muting&#54620; &#44208;&#44284;&#47484; &#48372;&#50668;&#51469;&#45768;&#45796;. &#44208;&#44284;&#47484; &#48372;&#50668;&#51456; &#54980;&#50640;&#45716; &#54869;&#51064;&#51012; &#54633;&#45768;&#45796;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;ok? [ (y)es or enter | (r)eplace | (n)ot good | (q)uit ]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&#46972;&#44256; &#47700;&#49884;&#51648;&#44032; &#45208;&#50724;&#45716;&#45936;,&lt;/p&gt;
&lt;p&gt;muting&#51060; &#51096; &#46104;&#50632;&#51012; &#44221;&#50864;&#50640;&#45716; y &#46608;&#45716; &#44536;&#45285; enter&#47484; &#52824;&#47732; &#45796;&#51020; shot&#51004;&#47196; &#45336;&#50612;&#44049;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;muting &#44208;&#44284;&#44032; &#47588;&#50864; &#47560;&#51020;&#50640; &#46308;&#51648; &#50506;&#51012; &#46412;&#50640;&#45716; n &#51012; &#51077;&#47141;&#54616;&#50668; &#54644;&#45817; shot&#51012; &#45796;&#49884; muting&#54616;&#44256; &#54869;&#51064;&#54616;&#45716; &#44284;&#51221;&#51012; &#48152;&#48373;&#54633;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&#51068;&#48512;&#48516;&#47564; &#49688;&#51221;&#54616;&#47732; &#46112; &#44221;&#50864;(&#45824;&#48512;&#48516;&#51032; &#44221;&#50864;) r &#51012; &#51077;&#47141;&#54633;&#45768;&#45796;. &#51060; &#44221;&#50864; &#50500;&#47000;&#50752; &#44057;&#51060; muting &#46104;&#51648; &#50506;&#51008; shotgather&#50752; polyg.#### curve&#47484; &#54632;&#44760; &#48372;&#50668;&#51469;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&lt;img title="mutereplace1.png" class="attachment" src="/pages/838194/attachments/368112" alt="mutereplace1.png" /&gt;&lt;br /&gt;
&#51060; &#44536;&#47548;&#50640;&#49436; &#49688;&#51221;&#54616;&#44256; &#49910;&#51008; &#48512;&#48516;&#50640; mouse&#47484; &#52237;&#44256; &#51200;&#51109;&#54616;&#47732; &#54644;&#45817; &#50948;&#52824;&#50640; &#51080;&#45912; &#51060;&#51204; &#45936;&#51060;&#53552;&#44032; &#49352;&#47196; muting&#54620; &#45936;&#51060;&#53552;&#47196;&amp;nbsp;&#48148;&#45068;&#44172; &#46121;&#45768;&#45796;. &#49352;&#47196;&#50868; muting &#44208;&#44284;&#47484; &#48372;&#50668;&#51452;&#47732; &#50948;&#51032; &#54869;&#51064;&#44284;&#51221;&#51012; &#48152;&#48373;&#54633;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Gpl Mute Checker(gplMutecheck)&lt;/h2&gt;
&lt;h4&gt;Self Document&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Gpl Mute Checker : check &amp;amp; modify muted shotgathers&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Usage :&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gplMutecheck.rb first=[] last=[] [optional parameters]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Required parameters :&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; first&amp;nbsp;&amp;nbsp; : shot number of the first shotgather&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; last&amp;nbsp;&amp;nbsp;&amp;nbsp; : shot number of the last shotgather&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Optional parameters&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; step=1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : shot step [do first,last,step]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fout=muteshot&amp;nbsp;&amp;nbsp; : output muted file name&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; perc=85&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : suximage percent&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hbox=1000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : suximage hbox&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wbox=1270&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : suximage wbox&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x1end&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : suximage x1end&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d2=1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : suximage d2&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fin&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : su file name containing the shot gathers&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#51060; &#54532;&#47196;&#44536;&#47016;&#51008; &#50526;&#51032; gplMute&#50752; &#44144;&#51032; &#44057;&#51008;&#45936; [do first,last,step]&#50640; &#54644;&#45817;&#54616;&#45716; &#48264;&#54840;&#51032; shotgather&#47564; muting&#54633;&#45768;&#45796;. &#52376;&#51020;&#50640; &#47751; &#44060;&#50473; &#44148;&#45320;&#46832;&#47728; muting&#54664;&#45912; &#51088;&#47308;&#47484; &#54869;&#51064;&#54616;&#44592; &#50948;&#54644; &#49324;&#50857;&#54624; &#49688; &#51080;&#44192;&#51424;. polygon file&#51060; &#50630;&#51012; &#44221;&#50864; &#52376;&#51020;&#48512;&#53552; muting&#51012; &#54633;&#45768;&#45796;. &#46384;&#46972;&#49436; xmute.sh &#49828;&#53356;&#47549;&#53944; &#45824;&#49888; &#49324;&#50857;&#54624; &#49688;&#46020; &#51080;&#44192;&#51424;. &#54616;&#45208;&#51032; shot&#50640;&#49436; &#51089;&#50629;&#54616;&#45716; &#46041;&#50504; &#45796;&#51020;&#48264; shot &#51012; suwind&#47196; &#48120;&#47532; &#47564;&#46308;&#50612; &#45459;&#44592; &#46412;&#47928;&#50640; suwind&#47196; &#51064;&#54620; &#49549;&#46020; &#51648;&#52404; &#54788;&#49345;&#51060; &#47566;&#51060; &#44048;&#49548;&#54616;&#50688;&#49845;&#45768;&#45796;. &#44536;&#47100; su &#54028;&#51068;&#51012; &#51900;&#44068; &#54596;&#50836;&#44032; &#50630;&#44192;&#51424;?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;(&#49892;&#54665; &#54028;&#51068;&#46308;&#51008; muting&#54616;&#45716; server&#50640; &#51080;&#49845;&#45768;&#45796;~^^)&lt;/p&gt;
</description>
      <pubDate>Thu, 06 Nov 2008 16:20:41 +0900</pubDate>
      <link>http://plusha.springnote.com/pages/838194</link>
      <guid>http://plusha.springnote.com/pages/838194</guid>
    </item>
    <item>
      <title>Links</title>
      <description>&lt;p&gt;&lt;a href="http://www.liv.ac.uk/HPC/HTMLF90Course/HTMLF90CourseSlides.html"&gt;http://www.liv.ac.uk/HPC/HTMLF90Course/HTMLF90CourseSlides.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.star.le.ac.uk/%7Ecgp/fortran.html"&gt;http://www.star.le.ac.uk/~cgp/fortran.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www-solar.mcs.st-and.ac.uk/%7Esteveb/course/course.html"&gt;http://www-solar.mcs.st-and.ac.uk/~steveb/course/course.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.owlnet.rice.edu/%7Emech517/books.html"&gt;http://www.owlnet.rice.edu/~mech517/books.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description>
      <pubDate>Thu, 06 Nov 2008 10:38:21 +0900</pubDate>
      <link>http://plusha.springnote.com/pages/1968378</link>
      <guid>http://plusha.springnote.com/pages/1968378</guid>
    </item>
    <item>
      <title>Python</title>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 class="xqtHeading"&gt;&#54028;&#51060;&#50028; &#47928;&#49436;&lt;/h4&gt;
&lt;ul class="websiteListType"&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="http://coreapython.hosting.paran.com/pygnudoc.html" class="external" title="http://coreapython.hosting.paran.com/pygnudoc.html"&gt;&#54028;&#51060;&#50028; &#47928;&#49436;&#44256;&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&#54028;&#51060;&#50028; &#47928;&#49436;&#44256;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description>
      <pubDate>Wed, 29 Oct 2008 19:34:46 +0900</pubDate>
      <link>http://plusha.springnote.com/pages/2009816</link>
      <guid>http://plusha.springnote.com/pages/2009816</guid>
    </item>
    <item>
      <title>01. Numerical Analysis</title>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description>
      <pubDate>Fri, 24 Oct 2008 20:35:21 +0900</pubDate>
      <link>http://plusha.springnote.com/pages/1985766</link>
      <guid>http://plusha.springnote.com/pages/1985766</guid>
    </item>
  </channel>
</rss>
