<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>programming &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://wordpress.com/tag/programming/</link>
	<description>Feed of posts on WordPress.com tagged "programming"</description>
	<pubDate>Mon, 08 Sep 2008 03:00:21 +0000</pubDate>

	<generator>http://wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Creating ShortCut to Desktop]]></title>
<link>http://noryahya.wordpress.com/?p=143</link>
<pubDate>Mon, 08 Sep 2008 02:01:05 +0000</pubDate>
<dc:creator>ridwan</dc:creator>
<guid>http://noryahya.wordpress.com/?p=143</guid>
<description><![CDATA[List Program berikut adalah code untuk mengkopi folder aplikasi dan isinya serta membuatkan shortcut]]></description>
<content:encoded><![CDATA[<p>List Program berikut adalah code untuk mengkopi folder aplikasi dan isinya serta membuatkan shortcut executable pada desktop. :) usesnya apa rada lupa.. Yang penting di coba dulu dech.. :D</p>
<p>[sourcecode language="delphi"]</p>
<p>uses ShlObj, ShellApi..</p>
<p>procedure CreateShortCut(Source : String);<br />
var<br />
   IObject : IUnknown;<br />
   ISLink : IShellLink;<br />
   IPFile : IPersistFile;<br />
   PIDL : PItemIDList;<br />
   InFolder : array[0..MAX_PATH] of Char;<br />
   TargetName : String;<br />
   LinkName : WideString;<br />
begin<br />
   TargetName := Source;</p>
<p>   IObject := CreateComObject(CLSID_ShellLink) ;<br />
   ISLink := IObject as IShellLink;<br />
   IPFile := IObject as IPersistFile;</p>
<p>   with ISLink do<br />
   begin<br />
     SetPath(pChar(TargetName)) ;<br />
     SetWorkingDirectory(pChar(ExtractFilePath(TargetName))) ;<br />
   end;</p>
<p>   SHGetSpecialFolderLocation(0, CSIDL_DESKTOPDIRECTORY, PIDL) ;<br />
   SHGetPathFromIDList(PIDL, InFolder) ;</p>
<p>   LinkName := InFolder + '\App ShortCut.lnk';<br />
   IPFile.Save(PWChar(LinkName), false) ;<br />
end;</p>
<p>[/sourcecode]</p>
<p><!--more Next code click here--></p>
<p>[sourcecode language="delphi"]</p>
<p>procedure TFTool.cxButton1Click(Sender: TObject);<br />
var<br />
  Fo      : TSHFileOpStruct;<br />
  buffer  : array[0..4096] of char;<br />
  p       : pchar;<br />
begin<br />
  MessageDlg('It will copy to PC which is Directory choose and create Shortcut ' +<br />
    'in Desktop.',mtInformation,[mbOk],0);<br />
  FillChar(Buffer, sizeof(Buffer), #0);<br />
  p := @buffer;<br />
  StrECopy(p,  'E:\PROJECTS\APP\*.*'); //Diambil contoh aplikasi berada di E:\PROJECTS\APP<br />
  FillChar(Fo, sizeof(Fo), #0);</p>
<p>  Fo.Wnd    := Handle;<br />
  Fo.wFunc  := FO_COPY;<br />
  Fo.pFrom  := @Buffer;<br />
  Fo.pTo    :='c:\app' ; // di Kopikan ke C.</p>
<p>  if ((SHFileOperation(Fo) <> 0) or (Fo.fAnyOperationsAborted <> false)) then<br />
  begin<br />
    MessageDlg('Copying was cancelled !',mtInformation,[mbok],0);<br />
  end else<br />
  begin<br />
    CreateShortCut('c:\app\app.exe');<br />
  end;<br />
end;</p>
<p>[/sourcecode]</p>
<p>Maka akan muncul di desktop App Shortcut sebagai shortcut app.exe. Selamat mencoba :)</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[My First Numerical Method in Java]]></title>
<link>http://pcgameprogramming.wordpress.com/?p=168</link>
<pubDate>Mon, 08 Sep 2008 01:10:27 +0000</pubDate>
<dc:creator>Jesse</dc:creator>
<guid>http://pcgameprogramming.wordpress.com/?p=168</guid>
<description><![CDATA[Last time I promised I would have real code for the Trapezoid Rule. It&#8217;s relatively easy to ch]]></description>
<content:encoded><![CDATA[<p>Last time I promised I would have real code for the <a href="http://pcgameprogramming.wordpress.com/2008/09/06/from-theory-to-computer-code/">Trapezoid Rule</a>. It's relatively easy to change my pseudo code into C++, but I wish to do it in Java mainly because my university is forcing me to learn Java and I could use the practice. Though I'm not too thrilled about having to learn Java, I see this as an opportunity to practice my <a href="http://pcgameprogramming.wordpress.com/faq/">personal philosophy</a> of being able to translate into different contexts in order to demonstrate understanding.</p>
<p>Last post my pseudo code looked ike this:</p>
<blockquote>
<table style="height:184px;" border="0" width="413">
<tbody>
<tr>
<td>
<pre style="text-align:left;"><span style="font-size:medium;">float trapezoidRule( n, a, b, f(x))

{
   h = (b-a) / n; //figure out interval length

   sum = (f(a) + f(b))/2; //sum initialized

   //do the sum and collect the terms
   for (i = 1; i &#60;= n-1; i++)
        sum += f(a + i * h);
   sum *= h; 

   return sum;
}</span></pre>
</td>
</tr>
</tbody>
</table>
</blockquote>
<p>It's almost usable as is, but it needs one more thing: it needs to have a way to evaluate the function that is being passed. An easy way to do this is to use an <a href="http://en.wikipedia.org/wiki/Method_(computer_science)">abstract method</a>, or what is called in C++ a <a href="http://en.wikipedia.org/wiki/Virtual_function">virtual function</a>.  Here I will just create an abstract class and extend it to the actual function that will be used.</p>
<blockquote>
<table style="height:165px;" border="0" width="460">
<tbody>
<tr>
<td>
<pre style="text-align:left;"><span style="font-size:medium;">//Function.java

public class abstract Function ()
{
   public double abstract getValue(double x);
}

</span></pre>
</td>
</tr>
</tbody>
</table>
</blockquote>
<p>Now when I <a href="http://en.wikipedia.org/wiki/Inheritance_(computer_science)">inherit</a> this class, I need to provide the actual implementation for getValue. Of course, this will depend on what function I want to integrate. For testing my program, I want to use a function I can integrate by hand to test for correctness. I will use $latex f(x) = x\log (x)$ for this purpose. So now I create my concrete function:</p>
<blockquote>
<table style="height:165px;" border="0" width="460">
<tbody>
<tr>
<td>
<pre style="text-align:left;"><span style="font-size:medium;">//logFunction.java

public class logFunction extends Function
{
	   public double getValue(double x)
	   {
	      return x*Math.log(x);
	   }
}

</span></pre>
</td>
</tr>
</tbody>
</table>
</blockquote>
<p>Now I can write the actual method for the Trapezoid Rule. The class will look almost identical to the pseudo code:</p>
<blockquote>
<table style="height:374px;" border="0" width="750">
<tbody>
<tr>
<td>
<pre style="text-align:left;"><span style="font-size:medium;">//trapezoidRule.java

public class trapezoidRule
{
    public static double integrate(double a,
                  double b, int n, Function f)
    {
    	double h = (b - a) / n;

    	double sum = (f.getValue(a)+ f.getValue(b))/2;

    	for(int i = 1; i &#60;= (n-1); i++)
    	   sum += f.getValue(a + i * h);

    	sum *= h;

    	return sum;

  }
}

</span></pre>
</td>
</tr>
</tbody>
</table>
</blockquote>
<p>Finally, I need a driver program to test the numerical method. Something that prints the result to the screen will do:</p>
<blockquote>
<table style="height:165px;" border="0" width="460">
<tbody>
<tr>
<td>
<pre style="text-align:left;"><span style="font-size:medium;">//test.java

public class test
{
  public static void main(String args[])
  {
    double value;

    //  Integrate the function y = x*ln(x) from
    //  x=2 to x=4 with 20 iterations

    logFunction f = new logFunction();
    value = trapezoidRule.integrate(2.0, 4.0, 20,f);

    System.out.println("value = " + value);

  }
}

</span></pre>
</td>
</tr>
</tbody>
</table>
</blockquote>
<p>When I run the program, I get "value = 6.704638124459645". Now I will compare this to the real value:</p>
<p style="text-align:center;">$latex \displaystyle \int_{2}^{4}x\log x \,dx = \left . \frac{1}{2}x^{2} \log x- \frac{1} {4} x^{2} \right &#124;_{2}^{4} \approx 6.704060528.$</p>
<p>Looks like I got an accurate answer to three decimal places. This sort of accuracy is way more than sufficient for games. What needs to be done now is to optimize the algorithm or maybe use a different one for fastest performance and maybe add some bells and whistles like <a href="http://en.wikipedia.org/wiki/Template_(programming)">templates</a>, 2D plots, GUI interfaces, etc... Unfortunately, I'm a complete beginner so I would have to study a lot more to learn how to do those things. But the whole point of implementing this numerical method was to demonstrate that it is sometimes possible to start with only theoretical knowledge and to somehow use it to create real code that can be used in an application.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[GMandel meets Julia sets]]></title>
<link>http://fpereda.wordpress.com/?p=35</link>
<pubDate>Mon, 08 Sep 2008 01:08:54 +0000</pubDate>
<dc:creator>Fernando J. Pereda</dc:creator>
<guid>http://fpereda.wordpress.com/?p=35</guid>
<description><![CDATA[I was bored and decided to hack support for viewing Julia sets into GMandel. The code could be nicer]]></description>
<content:encoded><![CDATA[<p>I was bored and decided to hack support for viewing <a href="http://en.wikipedia.org/wiki/Julia_set">Julia sets</a> into <a href="http://git.ferdyx.org/?p=gmandel.git;a=summary">GMandel</a>. The code could be nicer, but that will come tomorrow. I should really stop slacking and make a proper hierarchy of widgets (<tt>GFractMandel</tt> and <tt>GFractJulia</tt> should inherit a common <tt>GFractWidget</tt>) to make the code more manageable but this will do for now.</p>
<p>These are some examples of Julia sets generated with GMandel:</p>
<p><a href="http://fpereda.wordpress.com/files/2008/09/gmandel-julia.png"><img src="http://fpereda.wordpress.com/files/2008/09/gmandel-julia.png?w=300" alt="" title="Julia sets generated with GMandel" width="300" height="183" class="aligncenter size-medium wp-image-36" /></a></p>
<p>I strongly recommend <a href="http://mitpress.mit.edu/books/FLAOH/cbnhtml/">The Computational Beauty of Nature</a> to those interested or curious about this kind of stuff. It is a nice book that can even be read without too much mathematical or computer science background. One of the nice things about fractals and chaos is that you can see most the stuff yourself through <i>pretty pictures</i>.</p>
<p>&#8212; ferdy</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Tentang MySQL]]></title>
<link>http://sultanofswings.wordpress.com/?p=6</link>
<pubDate>Sun, 07 Sep 2008 20:41:27 +0000</pubDate>
<dc:creator>sultanofswings</dc:creator>
<guid>http://sultanofswings.wordpress.com/?p=6</guid>
<description><![CDATA[Mysql&#8230;.
So Curl
]]></description>
<content:encoded><![CDATA[<p>Mysql....<br />
So Curl</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Media Player Update]]></title>
<link>http://pulsemedia.wordpress.com/?p=7</link>
<pubDate>Sun, 07 Sep 2008 19:00:38 +0000</pubDate>
<dc:creator>pulsemedia</dc:creator>
<guid>http://pulsemedia.wordpress.com/?p=7</guid>
<description><![CDATA[Pulse Media Skin
These are ScreenShots of a new Mp3 player called &#8220;Pulse Media&#8221;
Pulse Me]]></description>
<content:encoded><![CDATA[[caption id="attachment_13" align="aligncenter" width="371" caption="Pulse Media Skin"]<a href="http://pulsemedia.wordpress.com/files/2008/09/untitled3.jpg"><img class="size-full wp-image-13" title="Pulse Media Skin" src="http://pulsemedia.wordpress.com/files/2008/09/untitled3.jpg" alt="Pulse Media Skin" width="371" height="249" /></a>[/caption]
<p>These are ScreenShots of a new Mp3 player called "Pulse Media"</p>
[caption id="attachment_10" align="aligncenter" width="291" caption="Pulse Media"]<a href="http://pulsemedia.wordpress.com/files/2008/09/untitxled1.jpg"><img class="size-full wp-image-10" title="Pulse Media" src="http://pulsemedia.wordpress.com/files/2008/09/untitxled1.jpg" alt="Pulse Media" width="291" height="171" /></a>[/caption]
]]></content:encoded>
</item>
<item>
<title><![CDATA[A Byte of Python]]></title>
<link>http://punchagan.wordpress.com/?p=164</link>
<pubDate>Sun, 07 Sep 2008 17:08:09 +0000</pubDate>
<dc:creator>punchagan</dc:creator>
<guid>http://punchagan.wordpress.com/?p=164</guid>
<description><![CDATA[This post&#8217;s been inspired by a wonderful book, &#8220;A Byte of Python&#8221;[1] by Swaroop C ]]></description>
<content:encoded><![CDATA[<p>This post's been inspired by a wonderful book, "A Byte of Python"<sup><a name="link1" href="#ref1">[1]</a></sup> by Swaroop C H. The book has been revised after a gap of nearly 4 years and the wait is worth it! I thoroughly loved the book, and I'm happy to be accompanied by so many others<sup><a name="link2" href="#ref2">[2]</a></sup><sup><a name="link3" href="#ref3">[3]</a></sup>. This book has filled me with a sense of joy and pride. The pride, of being part of such a wonderful community, a beautiful crowd. Further, it is a matter of pride, the book's been authored by an Indian - its quite rare to find such books written by people in this part of the world.</p>
<p>I have loved python, the moment I started using it. There are quite a few occasions, where I did something, just because I had the power of Python with me. Python is undoubtedly amongst the best, not just as a first programming language, but to give the user a sense of "do-able-ity" and I am thoroughly enjoying it. </p>
<p><code><br />
&#62;&#62;&#62; import this<br />
The Zen of Python, by Tim Peters<br />
<code><br />
Beautiful is better than ugly.<br />
Explicit is better than implicit.<br />
Simple is better than complex.<br />
Complex is better than complicated.<br />
Flat is better than nested.<br />
Sparse is better than dense.<br />
Readability counts.<br />
Special cases aren't special enough to break the rules.<br />
Although practicality beats purity.<br />
Errors should never pass silently.<br />
Unless explicitly silenced.<br />
In the face of ambiguity, refuse the temptation to guess.<br />
There should be one-- and preferably only one --obvious way to do it.<br />
Although that way may not be obvious at first unless you're Dutch.<br />
Now is better than never.<br />
Although never is often better than *right* now.<br />
If the implementation is hard to explain, it's a bad idea.<br />
If the implementation is easy to explain, it may be a good idea.<br />
Namespaces are one honking great idea -- let's do more of those!<br />
&#62;&#62;&#62;</code><br />
</code></p>
<hr />Links, References:<br />
<a name="ref1" href="#link1">[1]</a><a href="http://www.swaroopch.com/notes/Python_en:Table_of_Contents" target="_blank"> A Byte of Python </a><br />
<a name="ref2" href="#link1">[2]</a><a href="http://www.swaroopch.com/notes/Python" target="_blank"> Python - Notes -- Swaroop CH </a><br />
<a name="ref3" href="#link3">[3]</a><a href="http://www.swaroopch.com/blog/book-updated-for-python-3000/" target="_blank"> Book updated for Python 3000 -- Swaroop CH</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[این همه Notepad! تا حالا کجا بودن!؟]]></title>
<link>http://farasun.wordpress.com/?p=280</link>
<pubDate>Sun, 07 Sep 2008 15:28:20 +0000</pubDate>
<dc:creator>ایمان</dc:creator>
<guid>http://farasun.wordpress.com/?p=280</guid>
<description><![CDATA[یکی از نرم افزارهای حیاتی که هر فردی به آن نیاز دارد، یک]]></description>
<content:encoded><![CDATA[<p style="text-align:justify;">یکی از نرم افزارهای حیاتی که هر فردی به آن نیاز دارد، یک "ویرایشگر متن" (= Text Editor) است. همان طور که می دانید در این زمینه انتخاب های زیادی وجود دارد که هرکس بر اساس سلیقه و نیاز خود یک ویرایشگر متن مناسب را انتخاب می کند. سیستم عامل ویندوز به صورت پیش فرض یک ویرایشگر متن ساده به نام Notepad دارد که خیلی ها از آن استفاده می کنند. Notepad از زمان پیدایش ویندوز همراه آن عرضه شده و در این سال ها کمتر دستخوش تغییر شده و هیچ قابلیت جدیدی به آن اضافه نشده است. کمبود امکانات این برنامه شرکت ها و برنامه نویسان را مجبور کرد تا محصولات مشابهی با قابلیت های گوناگون برای این نیاز اساسی کاربران تولید کنند.</p>
<p style="text-align:justify;"><span style="color:#ff0000;">توجه : در این مطلب قصد دارم تا لیستی از برنامه های جایگزین برای Notepad ویندوز تهیه کنم. توجه داشته باشید که فقط نرم افزارهای رایگان و آزاد در این صفحه معرفی خواهند شد. این مطلب به مرور و به کمک شما به روز خواهد شد.</span></p>
<h2 style="text-align:justify;">ویرایشگرهای متن معمولی</h2>
<p style="text-align:justify;"><span style="color:#808080;"><em>این دسته شامل برنامه هایی است که ویژگی های معمول یک ویرایشگر متن را دارند و مناسب کاربران معمولی هستند.</em></span></p>
<p style="text-align:justify;"><span style="color:#ff9900;"><strong>Notepad2</strong></span> : بهترین و شایسته ترین جایگزین برای Notepad ویندوز همین نرم افزار Notepad2 است. توصیه من به شما هم همین برنامه است. حجم پایین، دارای توابع مختلف برای کار با متون ساده، باز کردن فایل های حجیم با سرعت بالا، تنظیمات متنوع و قابلیت روشنایی نحوی (که البته این ویژگی برای طراحان وب و برنامه نویسان مناسب است)، از جمله مزایای این ویرایشگر متن قدرتمند است. کاربران معمولی، طراحان وب و برنامه نویسان افرادی هستند که این ویرایشگر متن نیاز آن ها را برطرف خواهد کرد.</p>
<p style="text-align:justify;"><a title="More Info" href="http://www.flos-freeware.ch/notepad2.html" target="_blank"><span style="color:#3366ff;">توضیحات بیشتر</span></a> &#124; <a title="Download" href="http://www.flos-freeware.ch/zip/notepad2.zip" target="_blank"><span style="color:#0000ff;">دریافت</span></a></p>
<p style="text-align:justify;"><span style="color:#ff9900;"><strong>Win32pad</strong></span> : برنامه ای بسیار کم حجم با قابلیت های بسیار خوب جهت ویرایش متون ساده. این برنامه قابلیت هایی را که Notepad ویندوز فاقد آن هاست به شما ارائه می کند. یکی از مهمترین ویِژگی های این برنامه باز کردن فایل های حجیم با سرعت بالا است.</p>
<p style="text-align:justify;"><a title="More Info" href="http://www.gena01.com/win32pad/" target="_blank"><span style="color:#3366ff;">توضیحات بیشتر</span></a> &#124; <a title="Download" href="http://www.gena01.com/win32pad/download.shtml" target="_blank"><span style="color:#0000ff;">دریافت</span></a></p>
<p style="text-align:justify;"><span style="color:#ff9900;"><strong>NoteTab Light </strong></span>: ویرایشگر متن قدرتمند با پشتیبانی از فایل های RTF و رابط کاربری مناسب که به شما اجازه می دهد فایل های متنی مختلف را در تب های جداگانه باز نمایید. این برنامه به شما کمک می کتد تا فایل های HTML را آسان تر ویرایش کنید.</p>
<p style="text-align:justify;"><a title="More Info" href="http://www.notetab.com/ntl.php" target="_blank"><span style="color:#3366ff;">توضیحات بیشتر</span></a> &#124; <a title="Download" href="http://www.fookes.com/ftp/free/ntfree.zip" target="_blank"><span style="color:#0000ff;">دریافت</span></a></p>
<p style="text-align:justify;"><span style="color:#ff9900;"><strong>MoonEdit <span style="color:#333333;">: </span></strong></span>ویرایشگر متنی ساده که در سیستم عامل های ویندوز و لینوکس قابل اجراست. البته من این ویرایشگر متن قدیمی را به هیچ عنوان به شما توصیه نمی کنم.</p>
<p style="text-align:justify;"><a title="More Info" href="http://moonedit.com/indexen.htm" target="_blank"><span style="color:#3366ff;">توضیحات بیشتر</span></a> &#124; <a title="Download" href="http://moonedit.com/mesetup.exe" target="_blank"><span style="color:#0000ff;">دریافت</span></a></p>
<p style="text-align:justify;"><span style="color:#ff9900;"><strong>TED Notepad </strong></span><span style="color:#ff9900;"><strong><span style="color:#333333;">: </span></strong></span>این برنامه قدرت بسیار زیادی در کار با متون ساده دارد. وجود توابع بسیار زیاد برای کار با متون و قدرت فوق العاده در پردازش رشته ها، TED Notepad را از برنامه های مشابه دیگر جدا می کند. این برنامه قابل حمل است، یعنی شما می توانید آن را بر روی کول دیسک خود ذخیره کنید و در همه جا از آن استفاده کنید. برای استفاده از این ویرایشگر متن لازم نیست آن را نصب کنید.</p>
<p style="text-align:justify;"><a title="More Info" href="http://jsimlo.sk/notepad" target="_blank"><span style="color:#3366ff;">توضیحات بیشتر</span></a> &#124; <a title="Download" href="http://jsimlo.sk/notepad/files.php/tnp531le_uni.exe" target="_blank"><span style="color:#0000ff;">دریافت</span></a></p>
<p style="text-align:justify;"><span style="color:#ff9900;"><strong>Elfima Notepad </strong></span><span style="color:#ff9900;"><strong><span style="color:#333333;">: </span></strong></span>پس از اجرای این برنامه، فرق خاصی میان آن و Notepad ویندوز نمی بینید. اما این برنامه کوچک قادر است متون شما را به فرمت های PDF، SVG, XML و XHTML تبدیل نماید. برای این کار فقط کافیست راهنمای ساده اش را مطالعه کنید.</p>
<p style="text-align:justify;"><a title="More Info" href="http://www.elfima.com" target="_blank"><span style="color:#3366ff;">توضیحات بیشتر</span></a> &#124; <a title="Download" href="http://www.elfima.com/download/setup-enp-full.exe" target="_blank"><span style="color:#0000ff;">دریافت</span></a></p>
<p style="text-align:justify;"><span style="color:#ff9900;"><strong>Metapad </strong></span><span style="color:#ff9900;"><strong><span style="color:#333333;">: </span></strong></span>برنامه ای مناسب جهت جایگزینی Notepad ویندوز با قابلیت های مناسب و تنظیمات بسیار.</p>
<p style="text-align:justify;"><a title="More Info" href="http://www.liquidninja.com/metapad" target="_blank"><span style="color:#3366ff;">توضیحات بیشتر</span></a> &#124; <a title="Download" href="http://www.liquidninja.com/metapad/download.html" target="_blank"><span style="color:#0000ff;">دریافت</span></a></p>
<p style="text-align:justify;"><span style="color:#ff9900;"><strong>Notepad.NET </strong></span><span style="color:#ff9900;"><strong><span style="color:#333333;">: </span></strong></span>برنامه ای ساده و زیبا برای کار با متون ساده. رابط کاربری این ویرایشگر متن شبیه به Office2007 طراحی شده و کاربر در آن احساس خستگی نخواهد کرد. اما Notepad.NET هنوز با یک ویرایشگر متن ایده آل بسیار فاصله دارد. سورس کد این پروژه به زبان ویژوال بیسیک.نت در دسترس است.</p>
<p style="text-align:justify;"><a title="More Info" href="http://sourceforge.net/projects/notepaddotnet/" target="_blank"><span style="color:#3366ff;">توضیحات بیشتر</span></a> &#124; <a title="Download" href="http://sourceforge.net/project/showfiles.php?group_id=203740&#38;package_id=242950&#38;release_id=576279" target="_blank"><span style="color:#0000ff;">دریافت</span></a></p>
<h2 style="text-align:justify;">ویرایشگرهای متن با قابلیت رمزگذاری اطلاعات</h2>
<p style="text-align:justify;"><span style="color:#808080;"><em>در این قسمت با برنامه هایی آشنا می شوید که علاوه بر ویرایش متن، امنیت اطلاعات شما را نیز تامین می کنند.</em></span></p>
<p style="text-align:justify;"><span style="color:#ff9900;"><strong>MAXA Text2Exe </strong></span><span style="color:#ff9900;"><strong><span style="color:#333333;">: </span></strong></span>با ماکسا می توانید رمزهای عبور، سریال نامبرها و اطلاعات شخصی خود را رمز گذاری کنید تا کسی نتواند به آن ها دسترسی پیدا کند. ماکسا قادر است فایل های متنی شما را به فایل های اجرایی رمز گذاری شده تبدیل کند.</p>
<p style="text-align:justify;"><a title="More Info" href="http://www.maxa-tools.com/text2exe.php?lang=en" target="_blank"><span style="color:#3366ff;">توضیحات بیشتر</span></a> &#124; <a title="Download" href="http://www.maxa-tools.com/text2exe.exe" target="_blank"><span style="color:#0000ff;">دریافت</span></a></p>
<p style="text-align:justify;"><span style="color:#ff9900;"><strong>fSekrit </strong></span><span style="color:#ff9900;"><strong><span style="color:#333333;">: </span></strong><span style="color:#333333;">برنامه ایست برای حفاظت از اطلاعات متنی شما. فایل های اجرایی تولید می کند که هیچ کس جز شما نمی تواند متن درون آن ها را تشخیص دهد. الگوریتم رمزگذاری این برنامه بسیار پیچیده است.</span></span></p>
<p style="text-align:justify;"><a title="More Info" href="http://www.donationcoder.com/Software/Other/fSekrit/" target="_blank"><span style="color:#3366ff;">توضیحات بیشتر</span></a> &#124; <a title="Download" href="http://www.donationcoder.com/Software/Other/fSekrit/" target="_blank"><span style="color:#0000ff;">دریافت</span></a></p>
<h2 style="text-align:justify;">ویرایشگر های متن با قابلیت مدیریت اطلاعات</h2>
<p style="text-align:justify;"><span style="color:#808080;"><em>در این بخش برنامه هایی معرفی می شوند که علاوه بر امکانات معمول ویرایشگرهای متن، قابلیت مدیریت بر اطلاعات را نیز به ما می دهند.</em></span></p>
<p style="text-align:justify;"><span style="color:#ff9900;"><strong>Evernote </strong></span><span style="color:#ff9900;"><strong><span style="color:#333333;">: </span></strong><span style="color:#333333;">محلی برای مدیریت تمامی اطلاعات و متون شماست که ویژگی های منحصر به فردی را ارائه می کند. شما می توانید تمامی اطلاعات خودتان را از جمله : آدرس های اینترنی، شماره تلفن، لیست کارهای روزمره و ... را در این نرم افزار ذخیره کنید.</span></span></p>
<p style="text-align:justify;"><a title="More Info" href="http://www.evernote.com/" target="_blank"><span style="color:#3366ff;">توضیحات بیشتر</span></a> &#124; <a title="Download" href="http://www.evernote.com/about/download/" target="_blank"><span style="color:#0000ff;">دریافت</span></a></p>
<p style="text-align:justify;"><span style="color:#ff9900;"><strong>NotesHolder lite </strong></span><span style="color:#ff9900;"><strong><span style="color:#333333;">: </span></strong><span style="color:#333333;">این برنامه با جا گرفتن در دسکتاپ شما، قابلیت های زیادی برای مدیریت یادداشت هایتان به شما می دهد. ویژگی های همچون جستجو و یادآور نیز در این برنامه موجود است.</span></span></p>
<p style="text-align:justify;"><a title="More Info" href="http://notes.aklabs.com/" target="_blank"><span style="color:#3366ff;">توضیحات بیشتر</span></a> &#124; <a title="Download" href="http://www.aklabs.com/downloads/notesholderl.zip" target="_blank"><span style="color:#0000ff;">دریافت</span></a></p>
<p style="text-align:justify;"><span style="color:#ff9900;"><strong>Keynote </strong></span><span style="color:#ff9900;"><strong><span style="color:#333333;">: </span></strong><span style="color:#333333;">یک برنامه قدرتمند و مناسب جهت مدیریت یاداشت ها و متون شماست. در این برنامه قادرید تا یادداشت های خود را به صورت درختی (=Tree Like) دسته بندی کنید و از ویرایشگر متن قدرتمن آن نیز استفاده کنید.</span></span></p>
<p style="text-align:justify;"><a title="More Info" href="http://www.tranglos.com/free/keynote_download.html" target="_blank"><span style="color:#3366ff;">توضیحات بیشتر</span></a> &#124; <a title="Download" href="http://www.tranglos.com/free/keynote.html" target="_blank"><span style="color:#0000ff;">دریافت</span></a></p>
<h2 style="text-align:justify;">ویرایشگرهای متن مخصوص طراحان وب و برنامه نویسان</h2>
<p style="text-align:justify;"><span style="color:#808080;"><em>در این قسمت برنامه هایی که ویژگی Syntax Highlighting دارند و برای برنامه نویسان و طراحان وب مناسب اند معرفی می کنیم.</em></span></p>
<p style="text-align:justify;"><span style="color:#ff9900;"><strong>Notepad++ </strong></span><span style="color:#ff9900;"><strong><span style="color:#333333;">: </span></strong><span style="color:#333333;">فکر نمی کنم نیازی به توضیح در مورد این برنامه باشد. قدرتمند ترین ویرایشگر متن حال حاضر با قابلیت های بسیار کاربردی به صورت اوپن سروس در اختیار شماست. پلاگین های گوناگون، تنظیمات پیشرفته، توابع مختلف کار با متون و امکانات پیشرفته از جمله ویژگی های Notepad++ است. پشتیبانی از زبان های برنامه نویسی مختلف و امکاناتی که برای برنامه نویسان مهیا کرده، آن را به اولین انتخاب افراد متخصص تبدیل کرده است.<br />
</span></span></p>
<p style="text-align:justify;"><a title="More Info" href="notepad-plus.sourceforge.net/ " target="_blank"><span style="color:#3366ff;">توضیحات بیشتر</span></a> &#124; <a title="Download" href="http://notepad-plus.sourceforge.net/uk/download.php" target="_blank"><span style="color:#0000ff;">دریافت</span></a></p>
<p style="text-align:justify;"><span style="color:#ff9900;"><strong>PsPad </strong></span><span style="color:#ff9900;"><strong><span style="color:#333333;">: </span></strong><span style="color:#333333;">ویرایشگر متنی واقعاً حرفه ای که قابلیت های بسیار زیادی را به کاربرش می دهد. این برنامه را نمی توان فقط یک ویرایشگر متن ساده دانست، ویژگی های حرفه ای، تنظیمات بسیار، قالب بندی مناسب متن و ... آن را از محصولات مشابه جدا می کند.</span></span></p>
<p style="text-align:justify;"><a title="More Info" href="http://www.pspad.com/" target="_blank"><span style="color:#3366ff;">توضیحات بیشتر</span> </a>&#124; <a title="Download" href="http://www.pspad.com/en/download.php" target="_blank"><span style="color:#0000ff;">دریافت</span></a></p>
<p style="text-align:justify;"><span style="color:#ff9900;"><strong>Programmer's Notepad </strong></span><span style="color:#ff9900;"><strong><span style="color:#333333;">: </span></strong><span style="color:#333333;">نام این برنامه مشخص کننده ی کارکرد آن است. ویرایشگر متنی که مخصوص نیازهای یک برنامه نویس تولید شده است. به جز امکانات ویرایش متن، امکاناتی برای مدیریت سورس کدها نیز به شما می دهد.</span></span></p>
<p style="text-align:justify;"><a title="More Info" href="http://www.pnotepad.org/" target="_blank"><span style="color:#3366ff;">توضیحات بیشتر</span></a> &#124; <a title="Download" href="http://pnotepad.googlecode.com/files/pn208718.exe" target="_blank"><span style="color:#0000ff;">دریافت</span></a></p>
<h2 style="text-align:justify;">ویرایشگرهای متن برای افرادی که متفاوت می اندیشند!</h2>
<p style="text-align:justify;"><span style="color:#808080;"><em>در این دسته برنامه هایی قرار می گیرند که ایده جالبی برای ویرایش متون به کار گرفته باشند.</em></span></p>
<p style="text-align:justify;"><span style="color:#ff9900;"><strong>q10 </strong></span><span style="color:#ff9900;"><strong><span style="color:#333333;">: </span></strong><span style="color:#333333;">ویرایشگر متنی تمام صفحه ایست که حس نوشتن را در شما زنده می کند. در این برنامه احساس خستگی نخواهید کرد و با هر بار فشردن کلید صدای فشردن دکمه ماشین تایپ های قدیمی را می شنوید که حداقل از صدای ناشی از فشردن کلیدهای صفحه کلید جالب تر است.</span></span></p>
<p style="text-align:justify;"><a title="More Info" href="http://farasun.wordpress.com/2008/04/15/q10-and-dark-room/" target="_blank"><span style="color:#3366ff;">توضیحات بیشتر</span></a> &#124; <a title="Download" href="http://www.baara.com/q10/" target="_blank"><span style="color:#0000ff;">دریافت</span></a></p>
<p style="text-align:justify;"><a title="Download" href="http://pnotepad.googlecode.com/files/pn208718.exe" target="_blank"></a></p>
<p style="text-align:justify;"><span style="color:#ff9900;"><strong>DarkRoom </strong></span><span style="color:#ff9900;"><strong><span style="color:#333333;">: </span></strong><span style="color:#333333;">تقریباً با q10 یکی است اما انعطاف پذیری q10 را ندارد. برای استفاده از این برنامه حتماً باید دات نت فریم ورک 2 روی سیستم شما نصب باشد.</span></span></p>
<p style="text-align:justify;"><a title="More Info" href="http://farasun.wordpress.com/2008/04/15/q10-and-dark-room/" target="_blank"><span style="color:#3366ff;">توضیحات بیشتر</span></a> &#124; <a title="Download" href="http://they.misled.us/dark-room" target="_blank"><span style="color:#0000ff;">دریافت</span></a></p>
<p style="text-align:justify;"><span style="color:#ff9900;"><strong>Darkpad </strong></span><span style="color:#ff9900;"><strong><span style="color:#333333;">: </span></strong><span style="color:#333333;">دارک پد به شما کمک می کند تا فقط روی متن تان تمرکز کنید و دسکتاپ خود را فراموش کنید. این برنامه توسط من با ایده ی q10 ساخته شده است با این تفاوت که قابلیت راست به چپ نویسی نیز دارد (که q10 ندارد). در این برنامه هیچ نوار ابزار یا نوار منوی مزاحی وجود ندارد و شما تمام دستورات ویرایش را با صفحه کلید صادر خواهید کرد. به علاوه این برنامه هیچ نیازی به نصب ندارد و کاملاً قابل حمل (=Portable) است تا شما بتوانید آن را روی کول دیسک خود همیشه همراه خود داشته باشید.</span></span></p>
<p style="text-align:justify;"><a title="More Info" href="http://farasun.wordpress.com/2008/08/01/darkpad-intro/" target="_blank"><span style="color:#3366ff;">توضیحات بیشتر</span></a> &#124; <a title="Download from Box.net" href="http://www.box.net/shared/cut3l3e7jk" target="_blank"><span style="color:#0000ff;">دریافت</span></a></p>
<p style="text-align:justify;">
<p style="text-align:justify;"><span style="color:#ffffff;">farasun.wordpress.com</span></p>
<p><a href="http://feeds.feedburner.com/Farasun"><img class="size-full wp-image-163" title="feed" src="http://farasun.wordpress.com/files/2008/07/feed.jpg" alt="Subcribe to Farasun feed" width="16" height="16" /><strong>مشترک فراسان شويد</strong></a></p>
<p><span style="color:#ffffff;">farasun.wordpress.com</span></p>
<p>مطالب مرتبط :</p>
<ul>
<li><a title="مشاهده مطلب &#34;آزادانه روی صف�ه مانیوتر تایپ کنید!&#34;" href="http://farasun.wordpress.com/2008/08/01/darkpad-intro/" target="_blank">آزادانه روی صفحه مانیتور تایپ کنید!</a></li>
<li><a title="مشاهده مطلب &#34;هر چه در ذهنتان می گذرد روی صف�ه بیاورید!&#34;" href="http://farasun.wordpress.com/2008/04/15/q10-and-dark-room/" target="_blank">هرچه در ذهنتان می گذرد روی صفحه بیاورید!</a></li>
<li><a title="مشاهده مطلب &#34;Paint.net جایگزینی مناسب برای Paint ویندوز&#34;" href="http://farasun.wordpress.com/2007/08/01/pain-dot-net-intro/">Paint.NET جایگزینی مناسب برای Paint ویندوز</a></li>
</ul>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Functions and bound/unbound methods]]></title>
<link>http://mypythonnotes.wordpress.com/?p=122</link>
<pubDate>Sun, 07 Sep 2008 15:11:38 +0000</pubDate>
<dc:creator>nmiyasato</dc:creator>
<guid>http://mypythonnotes.wordpress.com/?p=122</guid>
<description><![CDATA[Something that I found really weird in this language was the way in which functions and methods are ]]></description>
<content:encoded><![CDATA[<p>Something that I found really weird in this language was the way in which functions and methods are called. Let me explain myself.</p>
<p>A function is just as anyone coming from C/C++ would expect... it's just a function. No big deal.</p>
<p>But when you call a method of a class, there is this little object that gets automatically passed when you call it.</p>
<p>[sourcecode language='python']</p>
<p>class myClass(object):</p>
<p>    def myMethod(self, to_print):</p>
<p>        print "Printing %s" % to_print</p>
<p>an_instance = myClass()</p>
<p>[/sourcecode]</p>
<p>So when you call myMethod in an instance of myClass, the self argument gets automatically passed. Why? It seems that explicit is better than implicit (whatever that is...). I don't get how this is easier or more readable. Anyway...</p>
<p>The thing is that you can think of this method call</p>
<p>[sourcecode language='python']<br />
>>> an_instance.myMethod(10)<br />
printing 10<br />
[/sourcecode]</p>
<p>as this one</p>
<p>[sourcecode language='python']<br />
>>> myClass.myMethod<br />
<unbound method myClass.myMethod><br />
>>> myClass.myMethod(an_instance, 10)<br />
printing 10<br />
>>><br />
[/sourcecode]</p>
<p>So here you can see what an anbound method is... it's basically a method where the self argument is not passed. You can't call it because it'll complain about that...</p>
<p>[sourcecode language='python']<br />
>>> myClass.myMethod()<br />
Traceback (most recent call last):<br />
 File "<stdin>", line 1, in <module><br />
TypeError: unbound method myMethod() must be called with myClass instance as first argument (got nothing instead)<br />
>>><br />
[/sourcecode]</p>
<p>And you can do some other stuff...<br />
 [sourcecode language='python']<br />
>>>> def another_method(self, p):<br />
...     print "printing another param: %s " % p<br />
...<br />
>>> another_method<br />
<function another_method at 0xb7ed98ec><br />
>>> another_method(10)<br />
Traceback (most recent call last):<br />
  File "<stdin>", line 1, in <module><br />
TypeError: another_method() takes exactly 2 arguments (1 given)<br />
>>> another_method(a, 10)<br />
printing another param: 10<br />
>>> myClass<br />
<class '__main__.myClass'><br />
>>> myClass.a = another_method<br />
>>> myClass.a<br />
<unbound method myClass.another_method> # Ataching a new method!<br />
>>> an_instance.a<br />
<bound method myClass.another_method of <__main__.myClass object at 0xb7ee4f0c>><br />
>>> an_instance.a()<br />
Traceback (most recent call last):<br />
  File "<stdin>", line 1, in <module><br />
TypeError: another_method() takes exactly 2 arguments (1 given)<br />
>>> an_instance.a(10)<br />
printing another param: 10<br />
>>><br />
[/sourcecode]<br />
Actually, the another_method implements the descriptor protocol.<br />
[sourcecode language='python']<br />
>>> another_method.__get__<br />
<method-wrapper '__get__' of function object at 0xb7ed98ec><br />
>>> another_method.__get__(a,myClass)<br />
<bound method myClass.another_method of <__main__.myClass object at 0xb7ee4f0c>><br />
>>> another_method.__get__(a,myClass)(10)<br />
printing another param: 10<br />
>>><br />
>>> another_method.__get__(None,myClass)<br />
<unbound method myClass.another_method><br />
>>><br />
[/sourcecode]</p>
<p>I always thought of methods being like "inside" the instance, so that when you call them there is some kind of pointer in there that points to the right one and calls it. But here it seems that methods live somewhere and you just pass them the instance to which they should be called from... (this is automatically done, yet it's different from what I thought).<br />
With this in mind, you can always "bind" a new method into an existing instance at runtime. </p>
<p>Weird stuff...</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Canary progress update]]></title>
<link>http://macsphere.wordpress.com/?p=73</link>
<pubDate>Sun, 07 Sep 2008 13:23:13 +0000</pubDate>
<dc:creator>macsphere</dc:creator>
<guid>http://macsphere.wordpress.com/?p=73</guid>
<description><![CDATA[It&#8217;s been some time since my last post about Canary.
It is still a work in progress, but progr]]></description>
<content:encoded><![CDATA[<p>It's been some time since my last post about Canary.</p>
<p>It is still a work in progress, but progress is kind of slow, due to my new job. I can spend relatively little time and it's not really the most productive of its kind.</p>
<p>Still, I've managed to implement significant parts of the API (which I intend to release for free,  eventually) and some marginal improvements and additions to the user interface. More about the API implementation in a later post.</p>
<p>Here is a screenshot: </p>
[caption id="attachment_74" align="alignnone" width="460" caption="Canary screenshot (latest iteration)"]<a href="http://macsphere.wordpress.com/files/2008/09/picture-1.png"><img class="size-full wp-image-74" title="Canary screenshot" src="http://macsphere.wordpress.com/files/2008/09/picture-1.png" alt="Canary screenshot (latest iteration)" width="460" height="724" /></a>[/caption]
]]></content:encoded>
</item>
<item>
<title><![CDATA[Headfirst HTML]]></title>
<link>http://talentlessprogrammer.wordpress.com/?p=33</link>
<pubDate>Sun, 07 Sep 2008 12:34:44 +0000</pubDate>
<dc:creator>sfvkye</dc:creator>
<guid>http://talentlessprogrammer.wordpress.com/?p=33</guid>
<description><![CDATA[The book finally arrived a week late, but its a brilliant book.
I have not had the time to actually ]]></description>
<content:encoded><![CDATA[<p>The book finally arrived a week late, but its a <a href="http://www.amazon.com/Head-First-HTML-CSS-XHTML/dp/059610197X/ref=pd_bbs_sr_1?ie=UTF8&#38;s=books&#38;qid=1220790670&#38;sr=8-1">brilliant book.</a></p>
<p>I have not had the time to actually try alot what ive been reading. I have though been able to write an extremely basic html page with ease the day after reading the first chapter. It is pretty simple, and the book is an enjoyable read for a change.</p>
<p>Kye.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[on demand javascript]]></title>
<link>http://emap.wordpress.com/?p=669</link>
<pubDate>Sun, 07 Sep 2008 10:52:44 +0000</pubDate>
<dc:creator>pkgis2007</dc:creator>
<guid>http://emap.wordpress.com/?p=669</guid>
<description><![CDATA[        เดี่ยวนี้มี mush up api มาให้ใช้เยอะ]]></description>
<content:encoded><![CDATA[<p>        เดี่ยวนี้มี mush up api มาให้ใช้เยอะครับ ทั้งที่เกี่ยวกับแผนที่อย่างเดียวหรือจะเป็น api ที่เกี่ยวข้องกับ application ต่างๆ api บางส่วนเช่น google map, yahoo map ก็จะอยู่ในรูปแบบของ javascript ขนาดใหญ่ซึ่งแน่นอนว่ามีผลต่อการโหลดของ webpage วันนี้ผมขอนำเสนอเทคนิคที่เรียกว่า on demand javascript</p>
<p>        อธิบายง่ายก็คือการเรียกโหลดไฟล์ javascript มาเฉพาะที่ต้องการใช้งาน เหมาะกับ webapplication ที่ต้องใช้ javascript หลายๆส่วนในการประมวลผล</p>
<p><span style="color:#ff0000;">&#60;script type=”http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.1″&#62;&#60;/script&#62;<br />
&#60;script type=”http://maps.google.com/maps?file=api&#38;v=2.x&#38;key=apikey”&#62;&#60;/script&#62;</span></p>
<p>ตัวอย่าง javascript library ที่ embed ลงใน web กรณีนี้ application ผมใช้ทั้ง yahoo map และ Google Map เทคนิคที่ว่าก็การสร้าง fuction สำหรับ API โดยให้ทำการ load เฉพาะเวลาที่เราต้องการ หรือเมื่อ user ทำ event ที่กำหนด เขียน code สั้นๆดังนี้ครับ</p>
<p><span style="color:#ff0000;">function LazyGoogleMaps() {<br />
var script = document.createElement(’script’);</span></p>
<p><span style="color:#ff0000;">script.setAttribute(’src’, ‘</span><a rel="nofollow" href="http://maps.google.com/maps?" target="_blank"><strong><span style="color:#ff0000;">http://maps.google.com/maps?</span></strong></a><span style="color:#ff0000;">file=api&#38;v=2.x&#38;key=apikey&#38;async=2&#38;callback=’ + <span style="color:#0000ff;">callback</span>);</span></p>
<p><span style="color:#ff0000;">script.setAttribute(’type’, ‘text/javascript’);<br />
document.documentElement.firstChild.appendChild(script);<br />
}</span></p>
<p>สำหรับ callback ก็เป็น fuction เริ่มต้นหลังจาก load javascript library</p>
<p><span style="color:#0000ff;">function callback() {<br />
//Run started code<br />
}</span></p>
<p>สำหรับท่านที่ใช้ jquery อยู้แล้วก็เขียน code สั้นๆได้ดังนี้เลย</p>
<p><span style="color:#ff0000;">$(document).ready(function(){<br />
$.requireJs(’http://maps.google.com/maps?file=api&#38;v=2.x&#38;key=apiky&#38;async=2′,<br />
function(){<br />
//code to be executed immediately after script loads<br />
}<br />
);<br />
});</span></p>
<p>เทคนิคนี้ผมนำมาจาก ajax pattern นำมาใช้แก้ปัญหาการ initialize page ให้เร็วขึ้นซึ่งสามารถอ่านรายละเอียดเพิ่มเติมได้ที่ <a href="http://ajaxpatterns.org/On-Demand_Javascript">http://ajaxpatterns.org/On-Demand_Javascript</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[From Theory to Computer Code]]></title>
<link>http://pcgameprogramming.wordpress.com/?p=154</link>
<pubDate>Sun, 07 Sep 2008 09:47:44 +0000</pubDate>
<dc:creator>Jesse</dc:creator>
<guid>http://pcgameprogramming.wordpress.com/?p=154</guid>
<description><![CDATA[One of the problems I have when reading technical books about 3d graphics and techniques is learning]]></description>
<content:encoded><![CDATA[<p>One of the problems I have when reading technical books about 3d graphics and techniques is learning to translate the math theory into actual computer code. I know it's a problem for a lot of people who may know a lot about programming but very little math yet they still want to learn 3d graphics programming. I'm just the opposite of this--I know tons of math but little programming skill.</p>
<p>At amazon.com for example, it's not uncommon to find a lot of <a href="http://www.amazon.com/Game-Engine-Design-Second-Interactive/dp/0122290631/ref=sr_1_1?ie=UTF8&#38;s=books&#38;qid=1220777914&#38;sr=1-1">negative reviews</a> on very well written books that teach the theory behind 3d engine programming. It seems as though most technical books are evenly split into two different groups: those that are very heavy on the theory and those that skip the theory altogether and present a cookbook approach. To see a good example of what I'm talking about,  compare the books of, say, <a href="http://www.amazon.com/Tricks-Windows-Programming-Gurus-Other/dp/0672323699/ref=sr_1_5?ie=UTF8&#38;s=books&#38;qid=1220777852&#38;sr=1-5">Andre LaMothe</a> to a theoretical author like <a href="http://www.amazon.com/Game-Engine-Design-Second-Interactive/dp/0122290631/ref=sr_1_1?ie=UTF8&#38;s=books&#38;qid=1220777914&#38;sr=1-1">David Eberly</a><a href="http://www.gamedev.net/reference/business/features/eberly/eberly.asp">.</a></p>
<p>I think both types of books are necessary and have their place in education but I also know that in order to learn cutting edge techniques or to invent new ones, it is imperative to be able to write computer code just from understanding the theory behind the technique. This is where I think learning to translate mathematics directly into computer code can be useful.</p>
<p style="text-align:left;">Let's say I am working on a <a href="http://en.wikipedia.org/wiki/Physics_engine">physics engine</a> for a game. I need to know how to solve <a href="http://en.wikipedia.org/wiki/Differential_equation">differential equations</a> to simulate collisions, explosions, and movement. More important, I need to know how to solve them <em>numerically </em>on the computer. So I turn to my calculus textbook to a section called <a href="http://en.wikipedia.org/wiki/Numerical_integration"><em>Numerical Integration.</em></a> Now why would I want to learn that? Well, in game physics there is something called <a href="http://en.wikipedia.org/wiki/Rigid_body_dynamics">rigid body dynamics</a>. Rigid body dynamics is the heart of a physics engine and it is entirely based on solutions to differential equations. A differential equation is nothing more that an equation with a <a href="http://en.wikipedia.org/wiki/Derivative">derivative</a> in it:</p>
<p style="text-align:center;">$latex \Large \displaystyle \frac {dy}{dt} = f(y,t)$</p>
<p>From the study of calculus, this means we sometimes need to integrate to get a solution.  So I need to create a program that knows how to integrate functions to work on my physics engine. How to go about it? Well, I know what I want, so I look for the simplest integration technique first. It turns out the simplest technique is called the <a href="http://en.wikipedia.org/wiki/Trapezoid_rule">Trapezoidal Rule</a>. Turning to my calculus textbook, I see the formula for the Trapezoid Rule is this hairy monster:</p>
<p style="text-align:center;">$latex \Large \displaystyle \int_{a}^{b} f(x)dx \approx \frac{h} {2}f(a) + h \sum_{i=1}^{n-1}f(a+ih)+\frac{h}{2} f(b)$</p>
<p>This is actually easier than it looks. The hard part is figuring out what $latex h$ is. $latex h$ is simply the width of the trapezoids whose areas will be summed up together when approximating the area under the curve. It is sometimes labeled as $latex \Delta x$.</p>
<p><a href="http://pcgameprogramming.files.wordpress.com/2008/09/trapz.gif"><img class="aligncenter size-full wp-image-156" title="trapz" src="http://pcgameprogramming.wordpress.com/files/2008/09/trapz.gif" alt="" width="317" height="282" /></a></p>
<p style="text-align:left;">After factoring out the $latex h$ to make it easier for the computer, it now looks like this:</p>
<p style="text-align:center;">$latex \Large \displaystyle \int_{a}^{b} f(x)dx \approx h \left [ \frac{f(a)} {2}+ \sum_{i=1}^{n-1}f(a+ih)+\frac{f(b)}{2} \right]$</p>
<p>Everything to the left of the squiggly lines is ignored since we want to approximate that integral. I'm assuming I already have a program that can evaluate $latex f(x).$ I will first divide $latex \displaystyle \frac{f(a)} {2}$ and $latex \displaystyle \frac{f(b)}{2}$ then add them together. Then I substitute for $latex \Large i=1, 2, \ldots, n-1$ adding all the $latex \Large f(a+ih)$ terms together since that is what $latex \Large \sum$ means. Finally, whatever I get after I add I multiply with $latex h.$That's it. So my pseudo code looks something like this:</p>
<blockquote>
<table style="height:184px;" border="0" width="413">
<tbody>
<tr>
<td>
<pre style="text-align:left;"><span style="font-size:medium;">float trapezoidRule( n, a, b, f(x))

{
   h = (b-a) / n; //figure out interval length

   sum = (f(a) + f(b))/2; //sum initialized

   //do the sum and collect the terms
   for (i = 1; i &#60;= n-1; i++)
        sum += f(a + i * h);
   sum *= h; 

   return sum;
}</span></pre>
</td>
</tr>
</tbody>
</table>
</blockquote>
<p>Now with the pseudo code, it is much easier to program in C++ or Java. All that remains is to translate the pseudo code into working computer code. Next post will have the code.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[gemを1.2.0にアップデート]]></title>
<link>http://matsuda.wordpress.com/?p=9</link>
<pubDate>Sat, 28 Jun 2008 14:11:13 +0000</pubDate>
<dc:creator>kosukematsuda</dc:creator>
<guid>http://matsuda.wordpress.com/?p=9</guid>
<description><![CDATA[
$ sudo gem update --system

インストール完了後にgemについての説明が表示され]]></description>
<content:encoded><![CDATA[<pre><code>
$ sudo gem update --system
</code></pre>
<p>インストール完了後にgemについての説明が表示されたのでメモ。</p>
<pre><code>
------------------------------------------------------------------------------

= Announce: RubyGems Release 1.2.0

Release 1.2.0 adds new features and fixes some bugs.

New features:

* RubyGems no longer performs bulk updates and instead only fetches the gemspec
  files it needs.  Alternate sources will need to upgrade to RubyGems 1.2 to
  allow RubyGems to take advantage of the new metadata updater.  If a pre 1.2
  remote source is in the sources list, RubyGems will revert to the bulk update
  code for compatibility.
* RubyGems now has runtime and development dependency types.  Use
  #add_development_dependency and #add_runtime_dependency.  All typeless
  dependencies are considered to be runtime dependencies.
* RubyGems will now require rubygems/defaults/operating_system.rb and
  rubygems/defaults/#{RBX_ENGINE}.rb if they exist.  This allows packagers and
  ruby implementers to add custom behavior to RubyGems via these files.  (If
  the RubyGems API is insufficient, please suggest improvements via the
  RubyGems list.)
* /etc/gemrc (and windows equivalent) for global settings
* setup.rb now handles --vendor and --destdir for packagers
* `gem stale` command that lists gems by last access time

Bugs Fixed:

* File modes from gems are now honored, patch #19737
* Marshal Gem::Specification objects from the future can now be loaded.
* A trailing / is now added to remote sources when missing, bug #20134
* Gems with legacy platforms will now be correctly uninstalled, patch #19877
* `gem install --no-wrappers` followed by `gem install --wrappers` no longer
  overwrites executables
* `gem pristine` now forces reinstallation of gems, bug #20387
* RubyGems gracefully handles ^C while loading .gemspec files from disk, bug
  #20523
* Paths are expanded in more places, bug #19317, bug #19896
* Gem::DependencyInstaller resets installed gems every install, bug #19444
* Gem.default_path is now honored if GEM_PATH is not set, patch #19502

Other Changes Include:

* setup.rb
  * stub files created by RubyGems 0.7.x and older are no longer removed.  When
    upgrading from these ancient versions, upgrade to 1.1.x first to clean up
    stubs.
  * RDoc is no longer required until necessary, patch #20414
* `gem server`
  * Now completely matches the output of `gem generate_index` and
    has correct content types
  * Refreshes from source directories for every hit.  The server will no longer
    need to be restarted after installing gems.
* `gem query --details` and friends now display author, homepage, rubyforge url
  and installed location
* `gem install` without -i no longer reinstalls dependencies if they are in
  GEM_PATH but not in GEM_HOME
* Gem::RemoteFetcher now performs persistent connections for HEAD requests,
  bug #7973

For a full list of changes to RubyGems and the contributor for each change, see
the ChangeLog file.

Special thanks to Chad Wooley for backwards compatibility testing and Luis
Lavena for continuing windows support.

== How can I get RubyGems?

NOTE:  If you have installed RubyGems using a package system you may want to
install a new RubyGems through the same packaging system.

If you have a recent version of RubyGems (0.8.5 or later), then all
you need to do is:

  $ gem update --system   (you might need to be admin/root)

(Note: You may have to run the command twice if you have any previosly
installed rubygems-update gems).

If you have an older version of RubyGems installed, then you can still
do it in two steps:

  $ gem install rubygems-update  (again, might need to be admin/root)
  $ update_rubygems              (... here too)

If you don't have any gems install, there is still the pre-gem
approach to getting software ... doing it manually:

1. DOWNLOAD FROM: http://rubyforge.org/frs/?group_id=126
2. UNPACK INTO A DIRECTORY AND CD THERE
3. INSTALL WITH:  ruby setup.rb  (you may need admin/root privilege)

== To File Bugs

The RubyGems bug tracker can be found on RubyForge at:
http://rubyforge.org/tracker/?func=add&#38;group_id=126&#38;atid=575

When filing a bug, `gem env` output will be helpful in diagnosing the issue.

If you find a bug where RubyGems crashes, please provide debug output. You can
do that with `gem --debug the_command`.

== Thanks

Keep those gems coming!

-- Jim &#38; Chad &#38; Eric (for the RubyGems team)

------------------------------------------------------------------------------

RubyGems installed the following executables:
	/opt/local/bin/gem

If `gem` was installed by a previous RubyGems installation, you may need
to remove it by hand.

RubyGems system software updated

</code></pre>
]]></content:encoded>
</item>
<item>
<title><![CDATA[TextMateにGit Textmate bundleをインストール]]></title>
<link>http://matsuda.wordpress.com/?p=6</link>
<pubDate>Mon, 26 May 2008 14:09:04 +0000</pubDate>
<dc:creator>kosukematsuda</dc:creator>
<guid>http://matsuda.wordpress.com/?p=6</guid>
<description><![CDATA[TextMateのGit Textmate bundleをインストール。
Git Textmate bundleをgitでインストー]]></description>
<content:encoded><![CDATA[<p>TextMateの<a href="http://gitorious.org/projects/git-tmbundle">Git Textmate bundle</a>をインストール。</p>
<h3>Git Textmate bundleをgitでインストール</h3>
<pre><code>
$ cd ~/Library/Application\ Support/TextMate/Bundles/
$ git clone git://gitorious.org/git-tmbundle/mainline.git Git.tmbundle
</code></pre>
<h3>TextMateのbundleをリロード</h3>
<pre><code>
$osascript -e 'tell app "TextMate" to reload bundles'
</code></pre>
<h3>gitのコミットメッセージ用のエディターをTextMateに設定</h3>
<pre><code>
$ emacs ~/.bashrc
export GIT_EDITOR="mate -w"
</code></pre>
<h3>TextMateにTM_GIT変数を設定</h3>
<p>TextMate-Preferences-Advanced-Shell Variablesを開いて<br />
Variable : TM_GIT<br />
Value : /opt/local/bin/git<br />
を設定。<br />
Valueについてはgitコマンドのあるところ。<br />
自分の場合は、</p>
<pre><code>
$ which git
/opt/local/bin/git
</code></pre>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Mac OS Xにgitをインストール]]></title>
<link>http://matsuda.wordpress.com/?p=3</link>
<pubDate>Sun, 25 May 2008 14:05:33 +0000</pubDate>
<dc:creator>kosukematsuda</dc:creator>
<guid>http://matsuda.wordpress.com/?p=3</guid>
<description><![CDATA[Macに今話題のgitをインストールする。
MacPortsにgitがあるか検索

$ port search ]]></description>
<content:encoded><![CDATA[<p>Macに今話題のgitをインストールする。</p>
<h3>MacPortsにgitがあるか検索</h3>
<pre><code>
$ port search git
cogito                         devel/cogito   0.18.2       Git core and cogito tools to provide a fully-distributed SCM
git-core                       devel/git-core 1.5.5.1      The stupid content tracker.
stgit                          devel/stgit    0.14.1       Push/pop utility on top of GIT
cgit                           www/cgit       0.7.1        A fast web interface for the git source code management system
</code></pre>
<h3>git-coreをインストール</h3>
<pre><code>
$ sudo port install git-core +svn +gitweb
---&#62;  Fetching curl
---&#62;  Attempting to fetch curl-7.18.1.tar.bz2 from http://curl.haxx.se/download/
---&#62;  Verifying checksum(s) for curl
---&#62;  Extracting curl
---&#62;  Configuring curl
---&#62;  Building curl with target all
---&#62;  Staging curl into destroot
---&#62;  Packaging tgz archive for curl 7.18.1_2
---&#62;  Installing curl 7.18.1_2
---&#62;  Activating curl 7.18.1_2
---&#62;  Cleaning curl
---&#62;  Fetching openssh
---&#62;  Attempting to fetch DVG-5142987_launchd_DISPLAY_for_X11.patch from http://www.opensource.apple.com/darwinsource/10.5/OpenSSH-87/patches/
---&#62;  Attempting to fetch openssh-5.0p1.tar.gz from http://mirror.roothell.org/pub/OpenBSD/OpenSSH/portable
---&#62;  Verifying checksum(s) for openssh
---&#62;  Extracting openssh
---&#62;  Applying patches to openssh
---&#62;  Configuring openssh
---&#62;  Building openssh with target all
---&#62;  Staging openssh into destroot
---&#62;  Creating launchd control script
###########################################################
# A startup item has been generated that will aid in
# starting openssh with launchd. It is disabled
# by default. Execute the following command to start it,
# and to cause it to launch at startup:
#
# sudo launchctl load -w /Library/LaunchDaemons/org.macports.OpenSSH.plist
###########################################################
---&#62;  Packaging tgz archive for openssh 5.0p1_0+darwin_9
---&#62;  Installing openssh 5.0p1_0+darwin_9
---&#62;  Activating openssh 5.0p1_0+darwin_9
---&#62;  Cleaning openssh
---&#62;  Fetching p5-error
---&#62;  Attempting to fetch Error-0.17012.tar.gz from http://ftp.ucr.ac.cr/Unix/CPAN/modules/by-module/Error
---&#62;  Verifying checksum(s) for p5-error
---&#62;  Extracting p5-error
---&#62;  Configuring p5-error
---&#62;  Building p5-error with target all
---&#62;  Staging p5-error into destroot
---&#62;  Packaging tgz archive for p5-error 0.17012_0
---&#62;  Installing p5-error 0.17012_0
---&#62;  Activating p5-error 0.17012_0
---&#62;  Cleaning p5-error
---&#62;  Fetching p5-compress-raw-zlib
---&#62;  Attempting to fetch Compress-Raw-Zlib-2.011.tar.gz from http://ftp.ucr.ac.cr/Unix/CPAN/modules/by-module/Compress
---&#62;  Verifying checksum(s) for p5-compress-raw-zlib
---&#62;  Extracting p5-compress-raw-zlib
---&#62;  Configuring p5-compress-raw-zlib
---&#62;  Building p5-compress-raw-zlib with target all
---&#62;  Staging p5-compress-raw-zlib into destroot
---&#62;  Packaging tgz archive for p5-compress-raw-zlib 2.011_0
---&#62;  Installing p5-compress-raw-zlib 2.011_0
---&#62;  Activating p5-compress-raw-zlib 2.011_0
---&#62;  Cleaning p5-compress-raw-zlib
---&#62;  Fetching p5-io-compress-base
---&#62;  Attempting to fetch IO-Compress-Base-2.011.tar.gz from http://ftp.ucr.ac.cr/Unix/CPAN/modules/by-module/IO
---&#62;  Verifying checksum(s) for p5-io-compress-base
---&#62;  Extracting p5-io-compress-base
---&#62;  Configuring p5-io-compress-base
---&#62;  Building p5-io-compress-base with target all
---&#62;  Staging p5-io-compress-base into destroot
---&#62;  Packaging tgz archive for p5-io-compress-base 2.011_0
---&#62;  Installing p5-io-compress-base 2.011_0
---&#62;  Activating p5-io-compress-base 2.011_0
---&#62;  Cleaning p5-io-compress-base
---&#62;  Fetching p5-io-compress-zlib
---&#62;  Attempting to fetch IO-Compress-Zlib-2.011.tar.gz from http://ftp.ucr.ac.cr/Unix/CPAN/modules/by-module/IO
---&#62;  Verifying checksum(s) for p5-io-compress-zlib
---&#62;  Extracting p5-io-compress-zlib
---&#62;  Configuring p5-io-compress-zlib
---&#62;  Building p5-io-compress-zlib with target all
---&#62;  Staging p5-io-compress-zlib into destroot
---&#62;  Packaging tgz archive for p5-io-compress-zlib 2.011_0
---&#62;  Installing p5-io-compress-zlib 2.011_0
---&#62;  Activating p5-io-compress-zlib 2.011_0
---&#62;  Cleaning p5-io-compress-zlib
---&#62;  Fetching p5-compress-zlib
---&#62;  Attempting to fetch Compress-Zlib-2.011.tar.gz from http://ftp.ucr.ac.cr/Unix/CPAN/modules/by-module/Compress
---&#62;  Verifying checksum(s) for p5-compress-zlib
---&#62;  Extracting p5-compress-zlib
---&#62;  Configuring p5-compress-zlib
---&#62;  Building p5-compress-zlib with target all
---&#62;  Staging p5-compress-zlib into destroot
---&#62;  Packaging tgz archive for p5-compress-zlib 2.011_0
---&#62;  Installing p5-compress-zlib 2.011_0
---&#62;  Activating p5-compress-zlib 2.011_0
---&#62;  Cleaning p5-compress-zlib
---&#62;  Fetching p5-html-tagset
---&#62;  Attempting to fetch HTML-Tagset-3.20.tar.gz from http://ftp.ucr.ac.cr/Unix/CPAN/modules/by-module/HTML
---&#62;  Verifying checksum(s) for p5-html-tagset
---&#62;  Extracting p5-html-tagset
---&#62;  Configuring p5-html-tagset
---&#62;  Building p5-html-tagset with target all
---&#62;  Staging p5-html-tagset into destroot
---&#62;  Packaging tgz archive for p5-html-tagset 3.20_0
---&#62;  Installing p5-html-tagset 3.20_0
---&#62;  Activating p5-html-tagset 3.20_0
---&#62;  Cleaning p5-html-tagset
---&#62;  Fetching p5-html-parser
---&#62;  Attempting to fetch HTML-Parser-3.56.tar.gz from http://ftp.ucr.ac.cr/Unix/CPAN/modules/by-module/HTML
---&#62;  Verifying checksum(s) for p5-html-parser
---&#62;  Extracting p5-html-parser
---&#62;  Configuring p5-html-parser
---&#62;  Building p5-html-parser with target all
---&#62;  Staging p5-html-parser into destroot
---&#62;  Packaging tgz archive for p5-html-parser 3.56_0
---&#62;  Installing p5-html-parser 3.56_0
---&#62;  Activating p5-html-parser 3.56_0
---&#62;  Cleaning p5-html-parser
---&#62;  Fetching p5-uri
---&#62;  Attempting to fetch URI-1.35.tar.gz from http://ftp.ucr.ac.cr/Unix/CPAN/modules/by-module/URI
---&#62;  Verifying checksum(s) for p5-uri
---&#62;  Extracting p5-uri
---&#62;  Configuring p5-uri
---&#62;  Building p5-uri with target all
---&#62;  Staging p5-uri into destroot
---&#62;  Packaging tgz archive for p5-uri 1.35_1
---&#62;  Installing p5-uri 1.35_1
---&#62;  Activating p5-uri 1.35_1
---&#62;  Cleaning p5-uri
---&#62;  Fetching p5-libwww-perl
---&#62;  Attempting to fetch libwww-perl-5.812.tar.gz from http://ftp.ucr.ac.cr/Unix/CPAN/modules/by-module/LWP
---&#62;  Verifying checksum(s) for p5-libwww-perl
---&#62;  Extracting p5-libwww-perl
---&#62;  Configuring p5-libwww-perl
---&#62;  Building p5-libwww-perl with target all
---&#62;  Staging p5-libwww-perl into destroot
---&#62;  Packaging tgz archive for p5-libwww-perl 5.812_0
---&#62;  Installing p5-libwww-perl 5.812_0
---&#62;  Activating p5-libwww-perl 5.812_0
---&#62;  Cleaning p5-libwww-perl
---&#62;  Fetching subversion-perlbindings
---&#62;  Verifying checksum(s) for subversion-perlbindings
---&#62;  Extracting subversion-perlbindings
---&#62;  Configuring subversion-perlbindings
---&#62;  Building subversion-perlbindings with target swig-pl
---&#62;  Staging subversion-perlbindings into destroot
---&#62;  Packaging tgz archive for subversion-perlbindings 1.4.6_0
---&#62;  Installing subversion-perlbindings 1.4.6_0
---&#62;  Activating subversion-perlbindings 1.4.6_0
---&#62;  Cleaning subversion-perlbindings
---&#62;  Fetching p5-svn-simple
---&#62;  Attempting to fetch SVN-Simple-0.27.tar.gz from http://cpan.perl.org/authors/id/C/CL/CLKAO/
---&#62;  Verifying checksum(s) for p5-svn-simple
---&#62;  Extracting p5-svn-simple
---&#62;  Configuring p5-svn-simple
---&#62;  Building p5-svn-simple with target all
---&#62;  Staging p5-svn-simple into destroot
---&#62;  Packaging tgz archive for p5-svn-simple 0.27_0
---&#62;  Installing p5-svn-simple 0.27_0
---&#62;  Activating p5-svn-simple 0.27_0
---&#62;  Cleaning p5-svn-simple
---&#62;  Fetching p5-term-readkey
---&#62;  Attempting to fetch TermReadKey-2.30.tar.gz from http://ftp.ucr.ac.cr/Unix/CPAN/modules/by-module/Term
---&#62;  Verifying checksum(s) for p5-term-readkey
---&#62;  Extracting p5-term-readkey
---&#62;  Configuring p5-term-readkey
---&#62;  Building p5-term-readkey with target all
---&#62;  Staging p5-term-readkey into destroot
---&#62;  Packaging tgz archive for p5-term-readkey 2.30_0
---&#62;  Installing p5-term-readkey 2.30_0
---&#62;  Activating p5-term-readkey 2.30_0
---&#62;  Cleaning p5-term-readkey
---&#62;  Fetching popt
---&#62;  Attempting to fetch popt-1.13.tar.gz from http://rpm5.org/files/popt/
---&#62;  Verifying checksum(s) for popt
---&#62;  Extracting popt
---&#62;  Configuring popt
---&#62;  Building popt with target all
---&#62;  Staging popt into destroot
---&#62;  Packaging tgz archive for popt 1.13_0
---&#62;  Installing popt 1.13_0
---&#62;  Activating popt 1.13_0
---&#62;  Cleaning popt
---&#62;  Fetching rsync
---&#62;  Attempting to fetch rsync-3.0.2.tar.gz from http://rsync.samba.org/ftp/rsync/
---&#62;  Verifying checksum(s) for rsync
---&#62;  Extracting rsync
---&#62;  Configuring rsync
---&#62;  Building rsync with target all
---&#62;  Staging rsync into destroot
---&#62;  Packaging tgz archive for rsync 3.0.2_0
---&#62;  Installing rsync 3.0.2_0
---&#62;  Activating rsync 3.0.2_0
---&#62;  Cleaning rsync
---&#62;  Fetching git-core
---&#62;  Attempting to fetch git-1.5.5.1.tar.bz2 from http://www.kernel.org/pub/software/scm/git/
---&#62;  Attempting to fetch git-manpages-1.5.5.1.tar.bz2 from http://www.kernel.org/pub/software/scm/git/
---&#62;  Attempting to fetch git-htmldocs-1.5.5.1.tar.bz2 from http://www.kernel.org/pub/software/scm/git/
---&#62;  Verifying checksum(s) for git-core
---&#62;  Extracting git-core
---&#62;  Applying patches to git-core
---&#62;  Configuring git-core
---&#62;  Building git-core with target all gitweb/gitweb.cgi
---&#62;  Staging git-core into destroot
---&#62;  Packaging tgz archive for git-core 1.5.5.1_0+doc+gitweb+svn
---&#62;  Installing git-core 1.5.5.1_0+doc+gitweb+svn
---&#62;  Activating git-core 1.5.5.1_0+doc+gitweb+svn
---&#62;  Cleaning git-core
</code></pre>
<h3>cogitoをインストール</h3>
<pre><code>
$ sudo port install cogito
---&#62;  Fetching coreutils
---&#62;  Attempting to fetch coreutils-6.11.tar.gz from http://ftp.gnu.org/gnu/coreutils
---&#62;  Verifying checksum(s) for coreutils
---&#62;  Extracting coreutils
---&#62;  Configuring coreutils
---&#62;  Building coreutils with target all
---&#62;  Staging coreutils into destroot
---&#62;  Packaging tgz archive for coreutils 6.11_0+darwin_9
---&#62;  Installing coreutils 6.11_0+darwin_9
---&#62;  Activating coreutils 6.11_0+darwin_9
---&#62;  Cleaning coreutils
---&#62;  Fetching cogito
---&#62;  Attempting to fetch cogito-0.18.2.tar.bz2 from http://kernel.org/pub/software/scm/cogito/
---&#62;  Verifying checksum(s) for cogito
---&#62;  Extracting cogito
---&#62;  Applying patches to cogito
---&#62;  Configuring cogito
---&#62;  Building cogito with target all
---&#62;  Staging cogito into destroot
Error: Target org.macports.destroot returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_cogito/work/cogito-0.18.2" &#38;&#38; gnumake install prefix=/opt/local DESTDIR=/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_cogito/work/destroot " returned error 2
Command output: m755 -d /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_cogito/work/destroot/opt/local/bin
gnumake: m755: Command not found
gnumake: [install-cogito] Error 127 (ignored)
cg-object-id cg-add cg-admin-lsobj cg-admin-uncommit cg-branch-add cg-branch-ls cg-reset cg-clone cg-commit cg-diff cg-export cg-help cg-init cg-log cg-merge cg-mkpatch cg-patch cg-fetch cg-restore cg-rm cg-seek cg-status cg-tag cg-tag-ls cg-update cg cg-admin-ls cg-push cg-branch-chg cg-admin-cat cg-clean cg-admin-setuprepo cg-switch cg-mv cg-admin-rewritehist cg-tag-show cg-version /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_cogito/work/destroot/opt/local/bin
gnumake: cg-object-id: Command not found
gnumake: *** [install-cogito] Error 127

Error: Status 1 encountered during processing.
</code></pre>
<p>なんかエラーが発生した。<br />
ググったら例えば<a href="http://www.nabble.com/error-installing-cogito-td16793188.html">error installing cogito</a>というページを発見。<br />
どうももう一回コマンド叩けばうまくいくかもって書いてあるので再度実行。</p>
<pre><code>
$ sudo port install cogito
---&#62;  Staging cogito into destroot
---&#62;  Packaging tgz archive for cogito 0.18.2_1
---&#62;  Installing cogito 0.18.2_1
---&#62;  Activating cogito 0.18.2_1
---&#62;  Cleaning cogito
</code></pre>
<p>うまくいった。</p>
]]></content:encoded>
</item>

</channel>
</rss>
