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

<channel>
	<title>Fan&#039;s blog &#187; 工具</title>
	<atom:link href="http://fkpwolf.net/category/%e5%b7%a5%e5%85%b7/feed/" rel="self" type="application/rss+xml" />
	<link>http://fkpwolf.net</link>
	<description>无为而无不为</description>
	<lastBuildDate>Sun, 13 May 2012 13:24:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2</generator>
		<item>
		<title>Xcode开发感受</title>
		<link>http://fkpwolf.net/2010/10/23/xcode%e5%bc%80%e5%8f%91%e6%84%9f%e5%8f%97/</link>
		<comments>http://fkpwolf.net/2010/10/23/xcode%e5%bc%80%e5%8f%91%e6%84%9f%e5%8f%97/#comments</comments>
		<pubDate>Sat, 23 Oct 2010 04:59:43 +0000</pubDate>
		<dc:creator>Fan Fan</dc:creator>
				<category><![CDATA[工具]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http:///?p=833</guid>
		<description><![CDATA[最近写了个iphone的小东西，对xcode也用了段时间，而我原来一直都是java环境下开发，比较起来两者差别很大。 最大差别是IDE对语言的支持。java在eclipse下可以即使的显示语法错误，而objective-c还的build一把才能看到，这个太影响效率。xcode下一个版本改进了llvm后会引入这个feature。eclipse的refactory的功能也很强大，这个在xp开发模式下是必须的，而xcode也没有这个东西。所以objective-c其实拖累了iphone，真是成也萧何，败也萧何。 java在exception情况下会给出详细的调用stack，而xcode的错误信息很少，空指针情况下提示更如天书一样，不清楚这个是语言的局限还是ide的无能。其实界面还是用约束毕竟少的语言，比如弱类型或者动态语言来开发，C和Java过于严肃，很小的错误都会导致程序崩溃，也缺乏灵活性，因为界面是千变万化的，预想好的模型在实际开发中并不能适应所有情况。 UI方面，xcode还是坚持用多窗口的方式，苹果好像对这个情有独钟，一个程序分成多个小的窗口显示，这中非独占式的模式在大显示器下可能有更好的互操作性，因为你可以任意的调整窗口位置，也更节省空间：独占式的会将整个桌面填满。但是有时候则很不方便，比如它的log是单独的窗口显示，大多数情况下这个窗口被代码编辑器（这是个大窗口）挡住，而任务栏上又看不到这个log窗口的图标，这时候想查看log就很不方便。 当然，Interface builder这里就显示了apple的强处，界面非常cool，特别是事件定义时采用拖拉的方式很是直观。Cocoa的界面是独立定义的，然后跟objective-c的类进行绑定（事件绑定和属性绑定）。Swing则是在code中定义界面，纯编程式的，这部分有些IDE可以代劳。 所以最完美的组合是：java + mac的UI库，或者java用javascript代替。当然，已经存在的东西就是不完美的，所以存在的东西就是完美的&#8230;..]]></description>
			<content:encoded><![CDATA[<p>最近写了个iphone的小东西，对xcode也用了段时间，而我原来一直都是java环境下开发，比较起来两者差别很大。</p>
<p>最大差别是IDE对语言的支持。java在eclipse下可以即使的显示语法错误，而objective-c还的build一把才能看到，这个太影响效率。xcode下一个版本改进了llvm后会引入这个feature。eclipse的refactory的功能也很强大，这个在xp开发模式下是必须的，而xcode也没有这个东西。所以objective-c其实拖累了iphone，真是成也萧何，败也萧何。</p>
<p>java在exception情况下会给出详细的调用stack，而xcode的错误信息很少，空指针情况下提示更如天书一样，不清楚这个是语言的局限还是ide的无能。其实界面还是用约束毕竟少的语言，比如弱类型或者动态语言来开发，C和Java过于严肃，很小的错误都会导致程序崩溃，也缺乏灵活性，因为界面是千变万化的，预想好的模型在实际开发中并不能适应所有情况。</p>
<p>UI方面，xcode还是坚持用多窗口的方式，苹果好像对这个情有独钟，一个程序分成多个小的窗口显示，这中非独占式的模式在大显示器下可能有更好的互操作性，因为你可以任意的调整窗口位置，也更节省空间：独占式的会将整个桌面填满。但是有时候则很不方便，比如它的log是单独的窗口显示，大多数情况下这个窗口被代码编辑器（这是个大窗口）挡住，而任务栏上又看不到这个log窗口的图标，这时候想查看log就很不方便。</p>
<p>当然，Interface builder这里就显示了apple的强处，界面非常cool，特别是事件定义时采用拖拉的方式很是直观。Cocoa的界面是独立定义的，然后跟objective-c的类进行绑定（事件绑定和属性绑定）。Swing则是在code中定义界面，纯编程式的，这部分有些IDE可以代劳。</p>
<p>所以最完美的组合是：java + mac的UI库，或者java用javascript代替。当然，已经存在的东西就是不完美的，所以存在的东西就是完美的&#8230;..</p>
]]></content:encoded>
			<wfw:commentRss>http://fkpwolf.net/2010/10/23/xcode%e5%bc%80%e5%8f%91%e6%84%9f%e5%8f%97/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>做一个上海图书馆iPac系统的客户端</title>
		<link>http://fkpwolf.net/2010/02/04/%e5%81%9a%e4%b8%80%e4%b8%aa%e4%b8%8a%e6%b5%b7%e5%9b%be%e4%b9%a6%e9%a6%86ipac%e7%b3%bb%e7%bb%9f%e7%9a%84%e5%ae%a2%e6%88%b7%e7%ab%af/</link>
		<comments>http://fkpwolf.net/2010/02/04/%e5%81%9a%e4%b8%80%e4%b8%aa%e4%b8%8a%e6%b5%b7%e5%9b%be%e4%b9%a6%e9%a6%86ipac%e7%b3%bb%e7%bb%9f%e7%9a%84%e5%ae%a2%e6%88%b7%e7%ab%af/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 03:37:22 +0000</pubDate>
		<dc:creator>Fan Fan</dc:creator>
				<category><![CDATA[工具]]></category>
		<category><![CDATA[小想法]]></category>

		<guid isPermaLink="false">http:///?p=628</guid>
		<description><![CDATA[前些天做过豆瓣的客户端，今天使用上图的系统（http://ipac.library.sh.cn/ipac20/ipac.jsp），感觉有些地方可以改进，于是想到，为什么不也做个客户端呢？（为什么老想做客户端呢，奇怪&#8230;） 列下功能点吧： 1）添加收藏的功能。原系统倒有“加入到我的邮件清单”这个功能，不过还是不是很方便，因为邮件的内容太简单。这个可以用greasemonky直接修改页面，比较容易做到。 为什么不直接用浏览器的bookmark功能呢？那里太简单，只是一个链接。所以这里的收藏功能要做到数据的重新保存，比如书名，索书号。馆藏情况是动态的，就不好保存了，这是遗憾。 如果做好“馆藏情况”就算是很好的亮点了，这样用户可以随时方便的了解书的情况了。 2）添加手机访问渠道。Android Market上有个app，暂时不知道是否有这个功能。手机上的重头是“搜索”功能，暂时不清楚iPac系统的开放程度，多半没有API，我想也只能做页面抓取了，这是个风险点。]]></description>
			<content:encoded><![CDATA[<p>前些天做过豆瓣的客户端，今天使用上图的系统（http://ipac.library.sh.cn/ipac20/ipac.jsp），感觉有些地方可以改进，于是想到，为什么不也做个客户端呢？（为什么老想做客户端呢，奇怪&#8230;）</p>
<p>列下功能点吧：</p>
<p>1）添加收藏的功能。原系统倒有“加入到我的邮件清单”这个功能，不过还是不是很方便，因为邮件的内容太简单。这个可以用greasemonky直接修改页面，比较容易做到。</p>
<p>为什么不直接用浏览器的bookmark功能呢？那里太简单，只是一个链接。所以这里的收藏功能要做到数据的重新保存，比如书名，索书号。馆藏情况是动态的，就不好保存了，这是遗憾。</p>
<p>如果做好“馆藏情况”就算是很好的亮点了，这样用户可以随时方便的了解书的情况了。</p>
<p>2）添加手机访问渠道。Android Market上有个app，暂时不知道是否有这个功能。手机上的重头是“搜索”功能，暂时不清楚iPac系统的开放程度，多半没有API，我想也只能做页面抓取了，这是个风险点。</p>
]]></content:encoded>
			<wfw:commentRss>http://fkpwolf.net/2010/02/04/%e5%81%9a%e4%b8%80%e4%b8%aa%e4%b8%8a%e6%b5%b7%e5%9b%be%e4%b9%a6%e9%a6%86ipac%e7%b3%bb%e7%bb%9f%e7%9a%84%e5%ae%a2%e6%88%b7%e7%ab%af/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Firefox Weave &#8211; 另外一坨云</title>
		<link>http://fkpwolf.net/2010/02/02/firefox-weave-another-cloud/</link>
		<comments>http://fkpwolf.net/2010/02/02/firefox-weave-another-cloud/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 05:58:32 +0000</pubDate>
		<dc:creator>Fan Fan</dc:creator>
				<category><![CDATA[工具]]></category>
		<category><![CDATA[Cloud Computing]]></category>

		<guid isPermaLink="false">http:///?p=616</guid>
		<description><![CDATA[记得很早前就传出Mozilla Labs要出这个东西，不过最近他们才出1.0的正式版。其主要功能是把Firefox的配置信息、浏览历史和保存过的密码等等一股脑保存到云中，这样用户在家中、工作中和手机上就可以方便的切换了。手机的支持是一个亮点，因为Firefox mobile刚刚出来。不过来的晚了些，Chrome和Opera早就支持bookmark的同步功能，Firefox我用Delicious的插件。 这个云存储只能存储Firefox才能明白的东西：脱离了Firefox这些数据能被其他应用使用吗？这些数据对其他程序来说有意义吗？ 看下面这张图感觉这个平台还是开放的，不过bookmarks分享还说的过去，其他的分享有意义么？]]></description>
			<content:encoded><![CDATA[<p>记得很早前就传出Mozilla Labs要出这个东西，不过最近他们才出<a href="https://addons.mozilla.org/en-US/firefox/addon/10868">1.0的正式版</a>。其主要功能是把Firefox的配置信息、浏览历史和保存过的密码等等一股脑保存到云中，这样用户在家中、工作中和手机上就可以方便的切换了。手机的支持是一个亮点，因为Firefox mobile刚刚出来。不过来的晚了些，Chrome和Opera早就支持bookmark的同步功能，Firefox我用Delicious的插件。</p>
<p>这个云存储只能存储Firefox才能明白的东西：脱离了Firefox这些数据能被其他应用使用吗？这些数据对其他程序来说有意义吗？</p>
<p>看下面这张图感觉这个平台还是开放的，不过bookmarks分享还说的过去，其他的分享有意义么？</p>
<p><img class="alignnone" title="sss" src="https://addons.mozilla.org/en-US/firefox/images/p/30487/1237088706" alt="" width="538" height="525" /></p>
]]></content:encoded>
			<wfw:commentRss>http://fkpwolf.net/2010/02/02/firefox-weave-another-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows下Rails的Console的彩色显示</title>
		<link>http://fkpwolf.net/2009/11/26/windows%e4%b8%8brails%e7%9a%84console%e7%9a%84%e5%bd%a9%e8%89%b2%e6%98%be%e7%a4%ba/</link>
		<comments>http://fkpwolf.net/2009/11/26/windows%e4%b8%8brails%e7%9a%84console%e7%9a%84%e5%bd%a9%e8%89%b2%e6%98%be%e7%a4%ba/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 06:35:19 +0000</pubDate>
		<dc:creator>Fan Fan</dc:creator>
				<category><![CDATA[工具]]></category>
		<category><![CDATA[折腾]]></category>

		<guid isPermaLink="false">http:///?p=493</guid>
		<description><![CDATA[很早前就发现Mac OS X下Rails控制台的日志信息可以彩色的显示，比如sql语句可以高亮，感觉很方便，这里说下如何在Windows下得到同样效果。 1）安装Cygwin，使用setup.exe来安装Ruby，Rails安装则照旧。 因为彩色字符是称为ANSI escape sequences的东西，windows下还不支持，所以使用Cygwin。setup.exe安装的Ruby是i386-cygwin版本的，跟我们采用一般的win32版本是不同的，ruby -v 显示为：ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-cygwin]，windows下则为 ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]。 最后的日志的显示和CMD下面的是一样的：没有上色。有些方法采用了让mswin32的ruby运行在unix终端下，比如rxvt，或者cygwin-x下（一个叫PuTTYcyg的东西更简便，神奇&#8230; Console 很强，但是没这个功能&#8230;），这样是可以彩色显示出来，但是个人实验发现console下日志显示会滞后，不会实时显示，感觉有buffer的存在（自己有开始吹毛求疵了&#8230;），看来unix终端和mswin32版本的ruby之间的兼容性不大好。 2) 安装sqlite3 driver 最难搞的地方&#8230; 最后发现可行的为：a) 用Cygwin install &#8220;gcc&#8221;, &#8220;make&#8221;, &#8220;libsqlite3-devel&#8221;, &#8220;sqlite3&#8243;;   b)gem install sqlite3-ruby, 这时会编译成本地sqlite3_api.so，没错，这里不是 sqlite3.dll，可见Cygwin下so文件是可以使用的。如果出现编译错误，可能要下载sqlite3源文件，然后再：$ gem install sqlite3-ruby-1.2.5.gem &#8212; &#8211;with-opt-include=/cygdrive/d/dev/sqlite-3.6.20/ 参考的RailsOnWindowsCygwinWithSQLite3这篇文章前后矛盾，可见Cygwin的水还是很深的&#8230;  搞了这么多，发现Windows上面开发还是蹩脚，可是有啥办法呢，使用习惯了，改成别的还真难。 12.20 add: 上面控制台中SQL显示是白色的，可以在Console 2中把白色映射成其他明显的颜色，但是在PuTTY中这招就不行，不解。个人是更prefer后者的，感觉功能更强大，颜色的定制可以看这里Custom PuTTY Color Themes，很喜欢里面dersert的主题，更多关于Putty的调整可以看这篇Improving Putty [...]]]></description>
			<content:encoded><![CDATA[<p>很早前就发现Mac OS X下Rails控制台的日志信息可以彩色的显示，比如sql语句可以高亮，感觉很方便，这里说下如何在Windows下得到同样效果。</p>
<p>1）安装Cygwin，<strong>使用setup.exe来安装Ruby</strong>，Rails安装则照旧。</p>
<p>因为彩色字符是称为<a href="http://kpumuk.info/ruby-on-rails/colorizing-console-ruby-script-output/" target="_blank">ANSI escape sequences</a>的东西，windows下还不支持，所以使用Cygwin。setup.exe安装的Ruby是i386-cygwin版本的，跟我们采用一般的win32版本是不同的，ruby -v 显示为：ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-cygwin]，windows下则为 ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]。 最后的日志的显示和CMD下面的是一样的：没有上色。有些<a href="http://b2.broom9.com/?p=718" target="_blank">方法</a>采用了让mswin32的ruby运行在unix终端下，比如rxvt，或者cygwin-x下（一个叫PuTTYcyg的东西更简便，神奇&#8230; <a href="http://sourceforge.net/projects/console/">Console</a> 很强，但是没这个功能&#8230;），这样是可以彩色显示出来，但是个人实验发现console下日志显示会滞后，不会实时显示，感觉有buffer的存在（自己有开始吹毛求疵了&#8230;），看来unix终端和mswin32版本的ruby之间的兼容性不大好。</p>
<p><img class="alignnone size-full wp-image-500" title="cygwin-rails" src="http://fkpwolf.net/WordPress/wp-content/uploads/2009/11/cygwin-rails1.png" alt="cygwin-rails" /></p>
<p>2) 安装sqlite3 driver</p>
<p>最难搞的地方&#8230; 最后发现可行的为：a) 用Cygwin install &#8220;gcc&#8221;, &#8220;make&#8221;, &#8220;libsqlite3-devel&#8221;, &#8220;sqlite3&#8243;;   b)gem install sqlite3-ruby, 这时会编译成本地sqlite3_api.so，没错，这里不是 sqlite3.dll，可见Cygwin下so文件是可以使用的。如果出现编译错误，可能要下载sqlite3源文件，然后再：$ gem install sqlite3-ruby-1.2.5.gem &#8212; &#8211;with-opt-include=/cygdrive/d/dev/sqlite-3.6.20/</p>
<p>参考的<a href="http://oldwiki.rubyonrails.org/rails/pages/RailsOnWindowsCygwinWithSQLite3" target="_blank">RailsOnWindowsCygwinWithSQLite3</a>这篇文章前后矛盾，可见Cygwin的水还是很深的&#8230;  搞了这么多，发现Windows上面开发还是蹩脚，可是有啥办法呢，使用习惯了，改成别的还真难。</p>
<p><img class="alignnone size-full wp-image-498" title="cygwin-rails2" src="http://fkpwolf.net/WordPress/wp-content/uploads/2009/11/cygwin-rails2.png" alt="cygwin-rails2" /></p>
<p>12.20 add: 上面控制台中SQL显示是白色的，可以在Console 2中把白色映射成其他明显的颜色，但是在PuTTY中这招就不行，不解。个人是更prefer后者的，感觉功能更强大，颜色的定制可以看这里<a href="http://www.igvita.com/2008/04/14/custom-putty-color-themes/">Custom PuTTY Color Themes</a>，很喜欢里面dersert的主题，更多关于Putty的调整可以看这篇<a href="http://dag.wieers.com/blog/improving-putty-settings-on-windows">Improving Putty settings on Windows</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://fkpwolf.net/2009/11/26/windows%e4%b8%8brails%e7%9a%84console%e7%9a%84%e5%bd%a9%e8%89%b2%e6%98%be%e7%a4%ba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3DS for dos</title>
		<link>http://fkpwolf.net/2009/10/14/3ds-for-dos/</link>
		<comments>http://fkpwolf.net/2009/10/14/3ds-for-dos/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 06:28:53 +0000</pubDate>
		<dc:creator>Fan Fan</dc:creator>
				<category><![CDATA[工具]]></category>

		<guid isPermaLink="false">http:///?p=437</guid>
		<description><![CDATA[看到“著名设计软件欢迎画面的演变”，想起了第一个让自己入迷的软件：3DS，dos版的，时间大概是1998年，大一&#8230;.，只找到了这个图：]]></description>
			<content:encoded><![CDATA[<p>看到“<a href="http://solidot.org/article.pl?sid=09/10/13/0754222">著名设计软件欢迎画面的演变</a>”，想起了第一个让自己入迷的软件：3DS，dos版的，时间大概是1998年，大一&#8230;.，只找到了<a href="http://www.cgarchitect.com/news/Reviews/Review010_1.asp">这个图</a>：</p>
<p><img class="alignnone" title="3ds" src="http://www.cgarchitect.com/news/Reviews/MAX5/M5-01.gif" alt="" width="315" height="236" /></p>
]]></content:encoded>
			<wfw:commentRss>http://fkpwolf.net/2009/10/14/3ds-for-dos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>给Web Service调试加上一个断点</title>
		<link>http://fkpwolf.net/2009/07/14/%e7%bb%99web-service%e8%b0%83%e8%af%95%e5%8a%a0%e4%b8%8a%e4%b8%80%e4%b8%aa%e6%96%ad%e7%82%b9/</link>
		<comments>http://fkpwolf.net/2009/07/14/%e7%bb%99web-service%e8%b0%83%e8%af%95%e5%8a%a0%e4%b8%8a%e4%b8%80%e4%b8%aa%e6%96%ad%e7%82%b9/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 06:30:15 +0000</pubDate>
		<dc:creator>Fan Fan</dc:creator>
				<category><![CDATA[工具]]></category>

		<guid isPermaLink="false">http:///?p=310</guid>
		<description><![CDATA[对于一般的web service调试，大都会用到类似 http monitor的工具，比如apache的tcpmon，可以对发送和接收到的SOAP消息进行监控，但是大多是只能查看而不能“修改”。 Java的调试器一般都带有断点的功能，可以修改正在运行的程序中的变量的值。 这里的工具是对tcpmon的一个小小的修改：当“filter”选中的时候，对一个进入的soap request，程序会将其block住，然后可以修改soap message的内容，最后点击“submit to server”将这个request发送到目的web service server。 具体代码在这里。]]></description>
			<content:encoded><![CDATA[<p>对于一般的web service调试，大都会用到类似 http monitor的工具，比如apache的<a href="http://ws.apache.org/commons/tcpmon/" target="_blank">tcpmon</a>，可以对发送和接收到的SOAP消息进行监控，但是大多是只能查看而不能“修改”。</p>
<p>Java的调试器一般都带有断点的功能，可以修改正在运行的程序中的变量的值。</p>
<p>这里的工具是对tcpmon的一个小小的修改：当“filter”选中的时候，对一个进入的soap request，程序会将其block住，然后可以修改soap message的内容，最后点击“submit to server”将这个request发送到目的web service server。</p>
<p><img class="alignnone size-full wp-image-311" title="soap-filter" src="http://fkpwolf.net/WordPress/wp-content/uploads/2009/07/soap-filter.PNG" alt="soap-filter" width="560" height="392" /></p>
<p>具体代码在<a href="http://code.google.com/p/tcpmon2/" target="_blank">这里</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://fkpwolf.net/2009/07/14/%e7%bb%99web-service%e8%b0%83%e8%af%95%e5%8a%a0%e4%b8%8a%e4%b8%80%e4%b8%aa%e6%96%ad%e7%82%b9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

