<?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>隔叶黄莺 Unmi Blog</title> <atom:link href="http://unmi.cc/feed" rel="self" type="application/rss+xml" /><link>http://unmi.cc</link> <description></description> <lastBuildDate>Tue, 01 May 2012 02:01:41 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.2</generator> <item><title>WordPress Code Editor 插件让你在线编辑主题/插件即时语法高亮</title><link>http://unmi.cc/wordpress-code-editor-realtime-syntaxhighlight</link> <comments>http://unmi.cc/wordpress-code-editor-realtime-syntaxhighlight#comments</comments> <pubDate>Mon, 30 Apr 2012 20:22:09 +0000</pubDate> <dc:creator>Unmi</dc:creator> <category><![CDATA[JS/AJAX]]></category> <category><![CDATA[WordPress]]></category> <category><![CDATA[Syntax]]></category> <category><![CDATA[wordpress]]></category><guid
isPermaLink="false">http://unmi.cc/?p=4577</guid> <description><![CDATA[晚上找了一些时候在线的即时语加亮组件，很多的，在线的代码编辑器就语法即时高亮上都可与客户端的编辑器相媲美了。有商业的，功能很丰富的，也有开源的，像&#160;CodePress,&#160;&#160; 就很简单它支持&#160;PHP, JavaScript, Java, Perl, SQL, HTML&#160;和 CSS&#160;代码的即时着色，完全由 JavaScript&#160;来进行渲染。 顺着&#160;CodePress&#160;来搜索，恰好还找到一个能让我们在&#160;WordPress&#160;的后台在线编辑插件/主题的代码编辑框中实现语法着色，并且时编辑时实时语法着色哦，那就是插件：WordPress Plugin Code Editor，可以点击&#160;Code Editor&#160;&#160;链接下载并安装为&#160;WordPress&#160;的插件。 安装完启用后，使能看到编辑插件/主题时的代码都高亮了，使代码的可读性大大增加，编辑时即时的效果，能让你修改代码时出错的几率明显降低。 还是看图看真想吧： 这个插件在&#160;WordPress&#160;官方没有下载。 这也是&#160;CodePress&#160;的一个应用，我们可以针对它进行发挥，定制出自己的在线即应语法着色器。 另外，EditArea&#160;&#160; 也是一个非常好的开源在线即时语法高亮组件，在 http://sourceforge.net/projects/editarea/&#160;下载，示例 http://www.cdolivet.com/editarea/editarea/exemples/exemple_full.html。 以上 CodePress&#160;和 EditArea&#160;都有具体的用法说明。 参考：1. 10+ useful online code editors &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 2. 3 Best Online Real Time Syntax Highlighting Editor in Javascript &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 3. The Most Powerful and Feature Rich Web-Based Code Editors (IDEs) [...]]]></description> <wfw:commentRss>http://unmi.cc/wordpress-code-editor-realtime-syntaxhighlight/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>HTML各种标签的默认样式和浏览器默认css样式</title><link>http://unmi.cc/html-tags-default-style-in-browser</link> <comments>http://unmi.cc/html-tags-default-style-in-browser#comments</comments> <pubDate>Fri, 27 Apr 2012 01:40:08 +0000</pubDate> <dc:creator>Unmi</dc:creator> <category><![CDATA[Web]]></category> <category><![CDATA[css]]></category> <category><![CDATA[html]]></category><guid
isPermaLink="false">http://unmi.cc/?p=4559</guid> <description><![CDATA[下面列出了所有HTML标签的默认样式，供大家参考，写出这些东西的初衷是因为今天在修改一个样式的时候【怎么样修正zblog文章内容中ol列表样式为原来的样式]】，不清楚OL的默认样式距离左边距有多少像素，所以这里就列出这些，以供参考，我脑子不太好用，记不住， HTML默认样式 html, address,blockquote,body, dd, div,dl, dt, fieldset, form,frame, frameset,h1, h2, h3, h4,h5, h6, noframes,ol, p, ul, center,dir, hr, menu, pre { display: block } li { display: list-item } head { display: none } table { display: table } tr { display: table-row } thead { display: table-header-group } tbody { display: table-row-group } [...]]]></description> <wfw:commentRss>http://unmi.cc/html-tags-default-style-in-browser/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>在 Java 中使用正则表达式进行后向引用($1,$2...)</title><link>http://unmi.cc/java-regex-replace-string</link> <comments>http://unmi.cc/java-regex-replace-string#comments</comments> <pubDate>Wed, 25 Apr 2012 11:02:32 +0000</pubDate> <dc:creator>Unmi</dc:creator> <category><![CDATA[Java/JEE]]></category> <category><![CDATA[Java]]></category> <category><![CDATA[javascript]]></category> <category><![CDATA[jregex]]></category><guid
isPermaLink="false">http://unmi.cc/?p=4552</guid> <description><![CDATA[自 JDK1.4 引入正则表达式的支持可称得上是次大改变，可 Java 的正则表达式的能力还是很弱，别说和 Perl 比了，就是和 C# 和 JavaScript 的正则表达式比较来也逊色不少，不过现在 JVM 上有其他语言对正则表达式有所增强，像 Groovy, jRuby 和 Scala。 比如在 Java 中要实现正则表达式的分组，后向引用的方式进行替换挺复杂的，像 JavaScript 完成两个分组的调换： &#60;script&#62; &#160;&#160; &#160;var src = "abc def"; &#160;&#160; &#160;var des = src.replace(/(\w+)\s+(\w+)/, "$2 $1"); &#160;&#160; &#160;document.write(des); &#160;&#160; &#160;//输出为： def abc &#60;/script&#62; 在 Java 中可得用上 Pattern, Matcher，还要 find()/group() 等操作，于是我就会考虑在 Java 中完成类似的功能有没有曲线的方法，有的。你可以调用 JVM 上其他语言的功能，我这里用列了两种实现方式： JDK1.6 [...]]]></description> <wfw:commentRss>http://unmi.cc/java-regex-replace-string/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>华军软件园的新广告模式，利用验证码转入广告</title><link>http://unmi.cc/newhua-new-ads-way</link> <comments>http://unmi.cc/newhua-new-ads-way#comments</comments> <pubDate>Thu, 29 Mar 2012 05:23:42 +0000</pubDate> <dc:creator>Unmi</dc:creator> <category><![CDATA[Gossip]]></category> <category><![CDATA[广告]]></category><guid
isPermaLink="false">http://unmi.cc/?p=4547</guid> <description><![CDATA[广告成了许多网站的主要盈利模式，而把广告发挥的淋漓尽致的尤以软件下载的网站。什么浮动的，弹窗的，色诱的都不算什么，最可恶的应该是伪装成下载链接的大按钮，一不小心就被安装了插件，引进了木马，不太懂电脑的人常常中招，致使半个屏幕的 IE 都是插件；而可能实际的软件根本下载不了。 刚刚下载个软件，搜索导向到了华军软件园，于是发现了它的一种新的置入广告的方式，那就是 验证码广告 看下图就知道了 最初的验证码图片过了这么多久年，终是派上了用场，不知道这个创意最早来自哪里，国外的吗？ 看上图中有 YucMedia，查了下它是 深圳市宇初网络技术有限公司，它是一个提供验证码广告服务的平台。 这种方式对于展示次数来计算的广告很有效，而且更有意义的是使浏览者的目光不得不聚焦在广告上面，无法去忽略它。 终于，影视剧里的置入广告都不会觉得恶心了，更感叹网络上的创意是源源不断的，特别是伴随着相关技术日新月异之时。 &#160;]]></description> <wfw:commentRss>http://unmi.cc/newhua-new-ads-way/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>SPRING-MVC 访问静态文件, 如 jpg/js/css</title><link>http://unmi.cc/spring-mvc-access-static-resources-jpgjscss</link> <comments>http://unmi.cc/spring-mvc-access-static-resources-jpgjscss#comments</comments> <pubDate>Thu, 15 Mar 2012 14:59:49 +0000</pubDate> <dc:creator>Unmi</dc:creator> <category><![CDATA[Spring]]></category> <category><![CDATA[mvc]]></category><guid
isPermaLink="false">http://unmi.cc/?p=4541</guid> <description><![CDATA[如何你的DispatcherServlet拦截 *.do这样的URL，就不存在访问不到静态资源的问题。如果你的DispatcherServlet拦截“/”，拦截了所有的请求，同时对*.js,*.jpg的访问也就被拦截了。 &#160;目的：可以正常访问静态文件，不要找不到静态文件报404。 &#160; 方案一：激活Tomcat的defaultServlet来处理静态文件 &#60;servlet-mapping&#62; &#160;&#160;&#160; &#60;servlet-name&#62;default&#60;/servlet-name&#62; &#160;&#160;&#160; &#60;url-pattern&#62;*.jpg&#60;/url-pattern&#62; &#60;/servlet-mapping&#62; &#60;servlet-mapping&#62; &#160;&#160;&#160; &#60;servlet-name&#62;default&#60;/servlet-name&#62; &#160;&#160;&#160; &#60;url-pattern&#62;*.js&#60;/url-pattern&#62; &#60;/servlet-mapping&#62; &#60;servlet-mapping&#62; &#160;&#160;&#160; &#60;servlet-name&#62;default&#60;/servlet-name&#62; &#160;&#160;&#160; &#60;url-pattern&#62;*.css&#60;/url-pattern&#62; &#60;/servlet-mapping&#62; &#160; 要配置多个，每种文件配置一个&#160;&#160;&#160; 要写在DispatcherServlet的前面， 让defaultServlet先拦截，这个就不会进入Spring了，我想性能是最好的吧。 Tomcat, Jetty, JBoss, and GlassFish&#160; 默认 Servlet的名字 -- "default" Google App Engine 默认 Servlet的名字 -- "_ah_default" Resin 默认 Servlet的名字 -- "resin-file" WebLogic 默认 Servlet的名字&#160; -- "FileServlet" WebSphere&#160; 默认 [...]]]></description> <wfw:commentRss>http://unmi.cc/spring-mvc-access-static-resources-jpgjscss/feed</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>强制退出Mac程序的六种方法</title><link>http://unmi.cc/exit-mac-process-force</link> <comments>http://unmi.cc/exit-mac-process-force#comments</comments> <pubDate>Mon, 05 Mar 2012 03:32:30 +0000</pubDate> <dc:creator>Unmi</dc:creator> <category><![CDATA[iOS]]></category> <category><![CDATA[mac]]></category><guid
isPermaLink="false">http://unmi.cc/?p=4278</guid> <description><![CDATA[用电脑时间长了，难免会遇到程序卡住，风火轮狂转不停，没有任何相应等情况。可能是由于程序冲突、缓存不足或者一些bug等情况导致，这个时候我们就需要强制退出这个程序了，下面有六种在Mac系统中强制退出程序的方法，大家至少应该记住一两个。 1、使用键盘快捷键强制退出处于活跃状态的Mac程序快捷键：Command+Option+Shift+Esc这样按住一两秒钟，就可以强制退出当前程序了，算是最方便的一种方法。 2、打开强制退出程序窗口 使用快捷键：Command+Option+Esc 来打开“强制退出应用程序”的窗口，然后选中你需要退出的程序，再点右下方的“强制退出”即可。 3、从Dock中强制退出程序 按住Option然后右键点击程序在Dock中的图标，可以看到“强制退出”的选项，选择即可。 4、从左上角苹果菜单中强制退出程序 这个有些类似第二条，从左上角的菜单中选择“强制退出”，不过有些时候程序当机，点击菜单会出现没反应的情况。 5、使用“活动监视器”强制退出程序 在 应用程序-实用工具 中找到“活动监视器”，找到程序的名字然后选择左上方红色按钮强制退出程序，这个就有些类似Windows中的任务管理器了。如果上面的方法都不奏效，那么可以尝试这个方法。 6、使用终端命令强制退出程序 这个应该算是重启电脑之前的最后办法了，在终端中输入如下命令 killall [程序名称] 比如说强制退出Safari，就输入 killall Safari 再回车即可，这样有关Safari的全部进程就都退出了；如果你想分的细一些，可以通过 ps 或者 ps aux 命令查找某些单独的进行，然后使用 kill -9 [pid] 来单独结束某个进程。 很多情况下强制退出程序，之前的内容可能就会不在了，需要注意一下。 最后说说iOS设备上的强制退出程序方法：按住上方电源键，直到出现提示关机滑动条，这个时候放开电源键再按住Home键，直到程序退出。（文/Macx） 摘自：http://www.cnbeta.com/articles/175447.htm]]></description> <wfw:commentRss>http://unmi.cc/exit-mac-process-force/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>谈Objective-C中的property</title><link>http://unmi.cc/several-tips-about-objc-property</link> <comments>http://unmi.cc/several-tips-about-objc-property#comments</comments> <pubDate>Sun, 26 Feb 2012 05:05:52 +0000</pubDate> <dc:creator>Unmi</dc:creator> <category><![CDATA[iOS]]></category> <category><![CDATA[objective-c]]></category> <category><![CDATA[property]]></category><guid
isPermaLink="false">http://unmi.cc/?p=4272</guid> <description><![CDATA[property大概是objc中唯一的元编程机制，用来快速地生成类的数据成员的get和set方法。本文谈谈我对property的一些使用心得。 1）retain，copy和assign： retain的作用在于生成set方法时该数据成员（一定是objc对象）的引用计数+1，通常用于除NSString类型以外的objc对象。如 - (void)setMember:(Member *)member { &#160;&#160; &#160;[member_ release]; &#160;&#160; &#160;member_ = [member retain]; } 一个常见的例外是delegate的set方法通常设为assign，这是为了避免循环引用造成的引用计数无法归0，然后内存泄漏——考虑一个view的delegate为该view所在controller的情况。 NSString类的对象的set方法设为copy，字符串对象需要深拷贝。 变量的set方法都应设为assign。 2）优雅地释放成员对象。 以controller为例，通常在viewDidUnload方法和dealloc方法中需要释放成员对象，直接的方法是 [member_ release]; 这样做的问题在于产生了野指针，在多线程的程序中也许会产生意想不到的bug——如果程序的设计比较奇特， 并且运气足够差的话。 优雅的做法是 self.member = nil; 展开来就是 [member_ release]; member_ = nil; 3）nonatomic和atomic atomic即原子的意思，在多线程的程序中，atomic的数据成员在读写时会加锁，以极小的额外开销保证数据的安全。nonatomic则认为该数据成员不会同时被多线程读写。 个人的观点——在实际编程中准确判断一个数据成员是否有可能被多线程同时读写是不现实的，所以不必用nonatomic，由此造成的额外开销可以忽略不计。 滥用nonatomic也许会造成意料不到的bug——运气足够差的话。 4）私有与公有 应该尽量把property设成私有的——这样能让类的头文件看起来简洁很多。通常而言，一个controller中的几乎所有数据成员的property都可以设成私有的——否则意味着程序的设计很可能存在问题。 摘自：http://www.cnblogs.com/qswang/archive/2011/11/08/2360486.html]]></description> <wfw:commentRss>http://unmi.cc/several-tips-about-objc-property/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>iOS 开发中使用正则表达式－暨 RegexKitLite 库的用法</title><link>http://unmi.cc/ios-regexkitlite-library</link> <comments>http://unmi.cc/ios-regexkitlite-library#comments</comments> <pubDate>Sat, 25 Feb 2012 12:17:53 +0000</pubDate> <dc:creator>Unmi</dc:creator> <category><![CDATA[iOS]]></category> <category><![CDATA[RegexKitLite]]></category> <category><![CDATA[正则表达式]]></category><guid
isPermaLink="false">http://unmi.cc/?p=4259</guid> <description><![CDATA[在 iOS&#160;开发中要用正则表达式的话，至少有三种选择： 1.&#160;系统自带的&#160; NSString&#160;和&#160;NSMutableString&#160;相关的方法 2.&#160;RegexKit Framework - http://regexkit.sourceforge.net 3. RegexKitLite - http://regexkit.sourceforge.net/RegexKitLite/ NSString&#160;和&#160;NSMutableString&#160;里像 - (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask; - (NSUInteger)replaceOccurrencesOfString:(NSString *)target withString:(NSString *)replacement &#160;options:(NSStringCompareOptions)options range:(NSRange)searchRange; 带有 NSStringCompareOptions&#160;参数的方法就可以支持正则表达式，只要对于 NSStringCompareOptions&#160;参数取值中含有 NSRegularExpressionSearch 这个 Mask 值即可。 RegexKit Framework&#160;用的是 PCRE(Perl Compatible Regular Expressions)&#160;库，可能是我们熟悉正则表达式语法，但需要引入&#160;PCRE&#160;静态库。 RegexKitLite，看链接它与&#160;RegexKit&#160;Framework&#160;出自一家，但它用的是 Mac&#160;自带的 ICU(International Components for Unicode)&#160;库，所以语法上与&#160;RegexKit&#160;Framework&#160;是不一样的，且引入它也较简单。 只要下载到文件 RegexKitLite-4.0.tar.bz2，解压出其中的 RegexKitLite.h&#160;和 RegexKitLite.m 两文件加到项目中来，再就记得加上系统自带的 libicucore.dylib&#160;库就行。RegexKitLite&#160;所有的方法也是对&#160;NSString&#160;和&#160;NSMutableString&#160;两个类的扩展方法，典型的方法： - (BOOL)RKL_METHOD_PREPEND(isMatchedByRegex):(NSString *)regex; - (NSRange)RKL_METHOD_PREPEND(rangeOfRegex):(NSString *)regex [...]]]></description> <wfw:commentRss>http://unmi.cc/ios-regexkitlite-library/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>在FCKEditor中使用插件UGeSHi-GeSHi实现代码高亮显示</title><link>http://unmi.cc/fckeditor-ugeshi-code-highlight</link> <comments>http://unmi.cc/fckeditor-ugeshi-code-highlight#comments</comments> <pubDate>Wed, 22 Feb 2012 05:19:34 +0000</pubDate> <dc:creator>Unmi</dc:creator> <category><![CDATA[Web]]></category> <category><![CDATA[fckeditor]]></category> <category><![CDATA[geshi]]></category><guid
isPermaLink="false">http://unmi.cc/?p=4251</guid> <description><![CDATA[本人安装了一个个人知识库管理系统 Knowledgeroot，选定了其中所见即所得编辑器比较好用的是 FckEditor，又再需要给它配上一款代码高亮的插件，于是找来了 UGeSHi-GeSHi。下面是从网络上摘来的在 FckEditor 中如何安装 UGeSHi-GeSHi 插件。 什 么是UGeSHi？UGeSHi是一个连接器，它把FCKEditor与GeSHi（采用PHP编程语言写的代码高亮插件，目前它已能高亮100多种程序 语言）紧密的结合在一起，您可以称为它为FCK插件，也可以称它为连接器（因为代码高亮的核心文件不是本人编写，本人只编写了其与FCKEditor整合 的过程）。 UGeSHi的功能：高亮程序代码，使程序代码美观且易读。 为什么采用GeSHi作为核心文件？原因很简单，因为GeSHi高亮足够完美，而且支持高亮的程序语言也很完善。 UGeSHi能高亮多少种程序语言？粗略的说可以高亮100多种，具体细节看下表： abap actionscript actionscript3 ada apache applescript apt_sources asm asp autoit avisynth bash basic4gl blitzbasic bnf boo c caddcl cadlisp cfdg cfm cil cobol cpp-qt cpp csharp css c_mac d delphi diff div dos dot eiffel email fortran freebasic genero gettext [...]]]></description> <wfw:commentRss>http://unmi.cc/fckeditor-ugeshi-code-highlight/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>UIView 中的控件事件穿透 Passthrough 的实现</title><link>http://unmi.cc/uiview-event-passthrough</link> <comments>http://unmi.cc/uiview-event-passthrough#comments</comments> <pubDate>Sun, 19 Feb 2012 15:08:08 +0000</pubDate> <dc:creator>Unmi</dc:creator> <category><![CDATA[iOS]]></category> <category><![CDATA[passthrough]]></category> <category><![CDATA[popover]]></category> <category><![CDATA[UIView]]></category><guid
isPermaLink="false">http://unmi.cc/?p=4085</guid> <description><![CDATA[我们在有多个 UIView&#160;层叠时，比如一个按钮被一个 UIView&#160;遮盖时，想要在点击最上层的&#160;UIView&#160;时能触发按钮的相应事件，我们该如何实现呢，初步可以想到几种办法： 1.&#160;把按钮上层的所有 UIView&#160;的 userInteractionEnabled&#160;属性设置为&#160;NO，要是 UIView&#160;有自己的交互事件该如何办呢？而且这个 userInteractionEnabled 不能动态设置，等到点击后决定设置它的 NO 是没用的 2. UIView&#160;接受到点击事件后主动去触发下面按钮的点击，这时的关题有三，按钮没有点击过程中的交换效果、多层&#160;UIView&#160;时不切实际，逐层下传吗、还有就是其他双击、三击或别的手势如何处理 我也一直被前面两种方式纠缠着，同时也让 UIPopoverController&#160;的 NSArray *passthroughViews&#160;属性提醒着，因为对于&#160;UIPopoverController，设置到它的 passthoughViews&#160;属性中的控件事件可以完全从 UIDimmingView&#160;下透出来。但苦于不可能看到 UIPopoverController&#160;的源码，还是后面一而再的&#160;Google&#160;终于发现了&#160;UIView 的方法： - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event;&#160;&#160; // recursively calls -pointInside:withEvent:. point is in the receiver's coordinate system 只要实现了最顶层的&#160;UIView&#160;的&#160;hitTest&#160;方法，在某些情况返回下层的某个按钮实例，即相当于把那个按钮的事件透出来了，比如在点击落在该按钮上时，不管这个按钮在&#160;UIView&#160;下多少层都可以把它挖出来。 先看效果图： &#160;&#160; 三个图分别是： 1.&#160;所见到的，按钮被半透明红色&#160;View&#160;遮住了一部分 2.&#160;可点击未遮住的按钮部分，可看到按钮被点下未抬起的效果 3.&#160;在红色的&#160;View&#160;中点击按钮被遮住部分，同样触发了按钮的相应事件，且有中间效果，也就是说按钮穿透出来了 再看代码实现，有两部分代码，分别是 ViewController&#160;和&#160; CustomController ViewController.h // //&#160; ViewController.h // //&#160; Created by [...]]]></description> <wfw:commentRss>http://unmi.cc/uiview-event-passthrough/feed</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Windows  平台下的 TextMate：E-TextEditor (附下载)</title><link>http://unmi.cc/windows-textmat-e-texteditor</link> <comments>http://unmi.cc/windows-textmat-e-texteditor#comments</comments> <pubDate>Wed, 15 Feb 2012 05:40:52 +0000</pubDate> <dc:creator>Unmi</dc:creator> <category><![CDATA[Ruby]]></category> <category><![CDATA[E-TextEditor]]></category> <category><![CDATA[textmate]]></category><guid
isPermaLink="false">http://unmi.cc/?p=4232</guid> <description><![CDATA[在&#160;Mac&#160;平台下慢慢习惯了&#160;TextMate&#160;文本编辑器，功能很强，丰富的&#160;Bundle&#160;支持，于是想在&#160;Windows&#160;下找到一款类似的软件，那就是 E-TextEditor。E-TextEditor&#160;可以支持许许多多的编程语言，关键它可以直接使用&#160;TextMate&#160;的 Bundle，这就能与&#160;TextMate&#160;达成一致了。 官方当前版本是 2.0.2，可在 http://www.e-texteditor.com/&#160;下载，可试用 30&#160;天，可自己在网上找找，这里列出两方法： 1.&#160;破解文件覆盖 只找到 2.0a&#160;的 e.exe&#160;文件，在 E-TextEditor.v2.0a.Cracked-EAT&#160;同时有安装文件和 e.exe&#160;文件下载 2.&#160;修改注册表法 试用期 30&#160;天记在 HKEY_CURRENT_USER\Software\e\CLSID2,&#160;所以只要试用期快到了，把这个键删了就行，E-TextEditor&#160;在试用期间好像也没有功能上的限制。 另外，你在&#160;Windows&#160;下安装时可能会报告错误，提示你 “放弃、忽略、重试”，你要一直“忽略”也能安装完成，但不完善。解决方法是在安装前修改区域设置：控制面板中\语言与区域设置\高级\选择对非&#160;unicode&#160;的程序文件默认使用语言为：English(United States)，再次安装 E-TextEditor&#160;即可。 最后，已破解的&#160;E-TextEditor 2.0a&#160;的下载地址是：E-TextEditor.v2.0a.Cracked-EAT。 附：1. E-texteditor&#160;几种破解方法 &#160;&#160;&#160;&#160;&#160;&#160;&#160; 2. 18 个最佳代码编辑器/IDE推荐 &#160;&#160;&#160;&#160;&#160;&#160;&#160; 3. 推荐我常用并好用的一款代码编辑器 e-texteditor &#160;&#160;&#160;&#160;&#160;&#160;&#160; 4. 编程字体Monaco，YaHei.Consolas及theme下载]]></description> <wfw:commentRss>http://unmi.cc/windows-textmat-e-texteditor/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>走近 Ruby 的世界(六)</title><link>http://unmi.cc/close-to-ruby-world-6</link> <comments>http://unmi.cc/close-to-ruby-world-6#comments</comments> <pubDate>Sun, 05 Feb 2012 15:36:20 +0000</pubDate> <dc:creator>Unmi</dc:creator> <category><![CDATA[Ruby]]></category> <category><![CDATA[encoding]]></category> <category><![CDATA[ruby]]></category><guid
isPermaLink="false">http://unmi.cc/?p=4205</guid> <description><![CDATA[对于&#160;Block，可以用 {}&#160;或 do...end&#160;来调用，如： 3.times { print "Ruby!" } ＃可以写成 3.times do print "Ruby!" end 1.upto(10) do &#124;x&#124; print x end #也可以写成 1.upto(10) {&#124;x&#124; print x}&#160;&#160; 一般是多行时用&#160;do...end，单行时用 {} 但对于 module、class、method&#160;的声明不能像&#160;C/Java&#160;那样用 {}，要用 ...end&#160;来定义。 Ruby&#160;的文件结构 #!/usr/bin/ruby -W #shebang 注释，给 Unix/Linux 的脚本说明的，必须放在第一行 #coding: utf-8 #指定编码的注释，放在第二行，如果没有 shebang 注释就放第一行 require 'socket' ... __END__ #代码结束标识，下面为程序数据，可用 IO 的 DATA 读取的，像是可执行文件的.data 数据区 ... 字符码码的注释，对于 [...]]]></description> <wfw:commentRss>http://unmi.cc/close-to-ruby-world-6/feed</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>走近 Ruby 的世界(五)</title><link>http://unmi.cc/close-to-ruby-world-5</link> <comments>http://unmi.cc/close-to-ruby-world-5#comments</comments> <pubDate>Sun, 05 Feb 2012 13:47:11 +0000</pubDate> <dc:creator>Unmi</dc:creator> <category><![CDATA[Ruby]]></category> <category><![CDATA[ruby]]></category> <category><![CDATA[Syntax]]></category><guid
isPermaLink="false">http://unmi.cc/?p=4179</guid> <description><![CDATA[Ruby 单行注释用 #，没有 /* */ 这样的多行注释方式，但是可以用文档注释方式来进行多行注释： =begin 注释描述 &#160;&#160;&#160;&#160;&#160;&#160; 中间的都是注释内容 =end 文档注释，像 Java 的 Javadoc, .net 的 ndoc，Ruby 也有 rdoc，Ruby 的 文档注释是也是在 method，class 和 module 定义之前进行注释的，注释的内容给 rdoc 生成 HTML 帮助文档，也给 ri 用的。也有一套语法，用 # = Headings 这样的语法，还支持些 HTML 代码。 Ruby 看到全大写的标识符，如 PI，还有像 LikeThis 或 LIKE_THIS 这样的标识符就认为是常量，对它们重新赋值就会告警： warning: already initialized constant LikeThis 命名成 like_this 就是变量，这也是 Ruby 的约定优于配置，常量就是大写命名。 [...]]]></description> <wfw:commentRss>http://unmi.cc/close-to-ruby-world-5/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>iPhone中Png图片格式的研究</title><link>http://unmi.cc/iphone-png-format</link> <comments>http://unmi.cc/iphone-png-format#comments</comments> <pubDate>Tue, 10 Jan 2012 02:11:18 +0000</pubDate> <dc:creator>Unmi</dc:creator> <category><![CDATA[iOS]]></category> <category><![CDATA[ios]]></category> <category><![CDATA[png]]></category><guid
isPermaLink="false">http://unmi.cc/?p=4195</guid> <description><![CDATA[有时候我们看到一个App，想看看他的一些界面是如何实现的，这个时候需要查看一下它的图片资源，不过iOS的png图片编译后一般的图片阅读器都是没法查看的，本文将告诉的原因和转换出原图的方法（得安装XCode）。 ipa 解压，将png相关文件夹拷贝出来，在命令行下使用/Developer/Platforms/iPhoneOS.platform/Developer /usr/bin/pngcrush -revert-iphone-optimizations xxx.png yyy.png 我们都知道一个编译好的iPhone app 其中的png图片一般普通的图片阅读器是无法直接读取的，这是因为XCode在编译的过程中，将图片进行了优化，实际上它已经不是一个png图片了。 这边有一些apple iPhone png自己格式的一些说明 http://iphonedevwiki.net/index.php/CgBI_file_format 在Png数据中，我们最关心的莫过于png的数据块，其中包含了png每一个像素的信息，当然了为了减少存储空间，这些像素信息都是压缩保存的。而且是使用zlib进行压缩的，压缩后 包含zlib header 信息，还有由于解压验证的crc信息。 而iPhone的CgBI格式的png则将原始的png图片作如下变化: 增加一个新的关键块 CgBI Chunk 四个字节 zlib的header和CRC信息全部从IDAT中移除 红蓝交换，每一个像素（RGBA）中的R和B进行调换变成BGRA ，解压后每一个像素有四个字节组成，也就是将每一个像素的 第一个字节和第三个字节调换 透明像素处理 Premultiplied Alpha ，这个的意思是为了图像加载变得更快，预先将Alpha的信息乘到像素的颜色信息中去，这样后期计算的时候就可以减少CPU或者GPU计算了 把一个正常的PNG图片优化成iPhone 的png图片格式可以使用XCode自带的工具 /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush -iphone 还有一个第三方的开源工具也可以 https://github.com/DHowett/pincrush 如果你想把一个经过优化后的图片还原成普通图片阅读器可以查看的png图片，就是对上面的过程进行反向处理。 现在可以找到的第三方的转换的一般有如下几个 ipin.py(Python版本) http://www.axelbrz.com.ar/?mod=iphone-png-images-normalizer iPhonePNG（C版本） http://www.newsfirerss.com/blog/?p=176 经过本人测试，上面的这种第三方的额转换工具都没有对alpha相关的做任何处理，也可以是别的原因，有一些图片转换后的结果和原始图片还是有些出入的。 原图(Flip Board中的一个按钮背景图): 编译后如果使用第三方的python或者C版本的代码来转换，转换后的图片都是这样的，感觉边角的像素有点问题，不过大部分情况下 ，图片都是ok的 我尝试通过修改第三方的代码，想将Premultiplied Alpha 还原过去，但是还是存在各种问题，最终没有结果。 只能最终采用XCode自带的工具进行转换 /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush -revert-iphone-optimizations 1.png [...]]]></description> <wfw:commentRss>http://unmi.cc/iphone-png-format/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Objective-C 对 URL 进行 URLEncode 编码</title><link>http://unmi.cc/objective-c-urlencode</link> <comments>http://unmi.cc/objective-c-urlencode#comments</comments> <pubDate>Mon, 09 Jan 2012 14:33:50 +0000</pubDate> <dc:creator>Unmi</dc:creator> <category><![CDATA[iOS]]></category> <category><![CDATA[encode]]></category> <category><![CDATA[objective-c]]></category> <category><![CDATA[URLencode]]></category><guid
isPermaLink="false">http://unmi.cc/?p=4187</guid> <description><![CDATA[在 iOS&#160;程序访问&#160;HTTP&#160;资源时需要对&#160;URL&#160;进行&#160;Encode，比如像拼出来的&#160;http://unmi.cc?p1=%+&#38;sd f&#38;p2=中文，其中的中文、特殊符号&#38;％和空格都必须进行转译才能正确访问。 在 Java、.net&#160;和&#160;JS&#160;中都有相应的 encodeURL&#160;方法可用，在 Objective-C&#160;语言中，你可以试下 - (NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)enc; 来对完整的&#160;URL(带请求参数的)进行编码，比如执行下面的代码： &#160;NSString *url=@"http://unmi.cc?p1=%+&#38;sd &#38;p2=中文"; &#160;NSString *encodedValue = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 上面代码转换出的&#160;encodedValue&#160;是： http://unmi.cc?p1=%25+&#38;sd%20&#38;p2=%E4%B8%AD%E6%96%87 可见，它不会转换&#160;URL&#160;中的 ?%&#38;&#160;符号，这也正常，因为它肯定分不出哪个 &#38;&#160;是参数的连接符号还是参数值，你可以单独编码参数，然后在拼接成&#160;URL&#160;之前把属性参数值中的 ?%&#38;&#160;等符号分别替换成相应的编码。 或者，您还可以试下另外一个方法来单独编码参数值，然后拼接成完整的&#160;URL： /* newString = CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, origString, NULL, NULL, kCFStringEncodingUTF8); */ CF_EXPORT CFStringRef CFURLCreateStringByAddingPercentEscapes(CFAllocatorRef allocator, CFStringRef originalString, CFStringRef charactersToLeaveUnescaped, CFStringRef legalURLCharactersToBeEscaped, CFStringEncoding encoding); 参考代码，分别编码前面的 p1=%+&#38;sd f&#38;p2=中文，两个参数的代码和结果如下： NSString *param = @"%+&#38;sd f"; [...]]]></description> <wfw:commentRss>http://unmi.cc/objective-c-urlencode/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>走近 Ruby 的世界(四)</title><link>http://unmi.cc/close-to-ruby-world-4</link> <comments>http://unmi.cc/close-to-ruby-world-4#comments</comments> <pubDate>Sun, 08 Jan 2012 17:02:39 +0000</pubDate> <dc:creator>Unmi</dc:creator> <category><![CDATA[Ruby]]></category> <category><![CDATA[bdd]]></category> <category><![CDATA[gem]]></category> <category><![CDATA[irb]]></category> <category><![CDATA[ri]]></category> <category><![CDATA[ruby]]></category><guid
isPermaLink="false">http://unmi.cc/?p=4175</guid> <description><![CDATA[Ruby&#160;解释器给我们提供了四个常用的命令行工具，ruby、irb、ri&#160;和&#160; gem。动态脚本语言的解释器类似工具的使用方法基本一致的，逐个来看下它们的用法： 1.&#160;ruby：脚本解释器，直接执行脚本或脚本文件 ％ ruby -e 'puts "hello world!"' % ruby hello.rb ruby&#160;显示输出可以用三种方法：print、puts&#160;和&#160;p，print&#160;和&#160;puts&#160;都会把操作对象的 to_s&#160;返回值输出，只是 puts&#160;会在输出内容没有换行时加上一个换行，有则和&#160;print&#160;是一样的。例如 puts "Hello World!"&#160;就是 print "Hello World!\n"，puts "Hello World!\n"&#160;也是&#160; print "Hello World!\n"。p&#160;会调用对象的&#160;inspect&#160;方法进行输出，最后加不加换行与&#160;puts&#160;的规则是一样的。 2.&#160;&#160;&#160; irb：(Interactive RuBy)&#160;是个&#160;Ruby&#160;的交互命令行，可用来测试一些 Ruby&#160;的特性，不过有 TextMate&#160;那样的工具基本不会去用它。你还能在&#160;irb&#160;的&#160;shell&#160;下再次输入&#160;irb&#160;启动一个子&#160;shell。 unmi-mac:~ mssz$ irb --simple-prompt &#62;&#62; 2**3 =&#62; 8 &#62;&#62; "Ruby ! " * 3 =&#62; "Ruby ! Ruby ! Ruby ! " &#62;&#62; quit [...]]]></description> <wfw:commentRss>http://unmi.cc/close-to-ruby-world-4/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>NSNotificationCenter 的使用详解</title><link>http://unmi.cc/nsnotificationcenter-usage</link> <comments>http://unmi.cc/nsnotificationcenter-usage#comments</comments> <pubDate>Fri, 06 Jan 2012 18:22:24 +0000</pubDate> <dc:creator>Unmi</dc:creator> <category><![CDATA[iOS]]></category> <category><![CDATA[ios]]></category> <category><![CDATA[notification]]></category><guid
isPermaLink="false">http://unmi.cc/?p=4163</guid> <description><![CDATA[通常我们在&#160;iOS&#160;中发生什么事件时该做什么是由&#160;Delegate&#160;实现的，例如&#160;View&#160;加载完后会触发&#160;viewDidLoad。&#160; Apple 还为我们提供了另一种通知响应方式，那就是&#160;NSNotification，系统中(UIKeyboardDidShowNotification&#160;等) 以及某些第三方组件(例如&#160;ASIHTTPRequest&#160;的 kReachabilityChangedNotification&#160;等)。 NSNotificationCenter&#160;较之于&#160;Delegate&#160;可以实现更大的跨度的通信机制，可以为两个无引用关系的两个对象进行通信。NSNotificationCenter&#160;的通信原理使用了观察者模式： 1. NSNotificationCenter&#160;注册观察者对某个事件(以字符串命名)感兴趣，及该事件触发时该执行的 Selector&#160;或&#160;Block 2.&#160;NSNotificationCenter&#160;在某个时机激发事件(以字符串命名) 3. 观察者在收到感兴趣的事件时，执行相应的 Selector 或 Block 使用&#160;NSNotificationCenter&#160;的步骤示例代码： 1.&#160;定义一个事件到来时该执行的方法： - (void)execute:(NSNotification *)notification { &#160;&#160;&#160; //do something when received notification &#160;&#160;&#160; //notification.name is @"NOTIFICATION_NAME" &#160;&#160;&#160; if(notification.object &#38;&#38; [notification.object isKindOfClass:[Test class]]){ &#160;&#160;&#160;&#160;&#160;&#160;&#160; //do something &#160;&#160;&#160; } } 2.&#160;注册观察者： [[NSNotificationCenter defaultCenter] addObserver:self &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; selector:@selector(execute:) &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; name:@"NOTIFICATION_NAME" &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; object:nil]; 使用默认的通知中心，上面代码的意义的，观察者 self&#160;&#160; [...]]]></description> <wfw:commentRss>http://unmi.cc/nsnotificationcenter-usage/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>给网页开发者的20个有用的Firefox插件</title><link>http://unmi.cc/20-firefox-plugins-for-web-developers</link> <comments>http://unmi.cc/20-firefox-plugins-for-web-developers#comments</comments> <pubDate>Fri, 06 Jan 2012 05:09:13 +0000</pubDate> <dc:creator>Unmi</dc:creator> <category><![CDATA[JS/AJAX]]></category> <category><![CDATA[FireFox]]></category> <category><![CDATA[plugin]]></category><guid
isPermaLink="false">http://unmi.cc/?p=4138</guid> <description><![CDATA[Firebug Web Developer Pixlr Grabber FireFTP ColorZilla Codetch Greasemonkey FireShot – Webpage Screenshots: Capture + Annotate MeasureIt GridFox – The Grid Layout Firefox Extension OperaView Window Resizer IE Tab Palette Grabber Console⊃2; Font Finder IE NetRenderer Yahoo! YSlow for Firefox SeoQuake SEO extension Total Validator Server Switcher 转自：http://www.oschina.net/news/24494/20-firefox-plugins-for-web-developers?from=20120102]]></description> <wfw:commentRss>http://unmi.cc/20-firefox-plugins-for-web-developers/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>走近 Ruby 的世界(三)</title><link>http://unmi.cc/close-to-ruby-world-3</link> <comments>http://unmi.cc/close-to-ruby-world-3#comments</comments> <pubDate>Wed, 04 Jan 2012 16:05:10 +0000</pubDate> <dc:creator>Unmi</dc:creator> <category><![CDATA[Ruby]]></category> <category><![CDATA[Class]]></category> <category><![CDATA[module]]></category> <category><![CDATA[ruby]]></category><guid
isPermaLink="false">http://unmi.cc/?p=4131</guid> <description><![CDATA[Ruby&#160;中有许多以 ? 和 !号结尾的方法，?&#160;号方法返回布尔值用于判断的，如Array.empty?，可以想到三元操作符 a = b==1?1:2 。出现在方法名尾部的感叹号表明使用该方法是需要多加小心。许多Ruby的核心类都定义了成对的方法，它们具有同样的名称，只是结尾相差一个“！”,通常情况下，不带感叹号的方法返调用该方法的一个拷贝，带感叹号的方法则是一个可变方法，该方法会修改原来的对象，如 Array 类中的 sort 和 sort!。 Ruby&#160;里对变量名有这么一个约定：全局变量加前缀 $，实例变量用前缀 @，类变量前缀用 @@。 Ruby&#160;的类和模块，来实现一个&#160;Ruby&#160;的示例类，从中了解类的构造方法，块的实现、块内循环和调用以及符号的重载，看如下代码： class Sequence &#160; def initialize(from, to) #Sequence.new(1,2) 构造实例时会调用这个方法 &#160;&#160;&#160; @from, @to = from, to #实例变量约定用 @ 开头 &#160; end&#160;&#160;&#160;&#160; &#160; &#160; &#160; def each #定义的实例方法，下面用了 yield 语句可以接受块 &#160;&#160;&#160; x = @from &#160;&#160;&#160; while x &#60;= @to #块内循环实现 [...]]]></description> <wfw:commentRss>http://unmi.cc/close-to-ruby-world-3/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>走近 Ruby 的世界(二)</title><link>http://unmi.cc/close-to-ruby-world-2</link> <comments>http://unmi.cc/close-to-ruby-world-2#comments</comments> <pubDate>Mon, 02 Jan 2012 14:35:48 +0000</pubDate> <dc:creator>Unmi</dc:creator> <category><![CDATA[Ruby]]></category> <category><![CDATA[Method]]></category> <category><![CDATA[operator]]></category> <category><![CDATA[ruby]]></category><guid
isPermaLink="false">http://unmi.cc/?p=4120</guid> <description><![CDATA[还是零碎的记录，也不知道该为每一篇赋上什么合适的标题，姑且用一、二、三、四 ......&#160;往下标吧。 一种编程语 言，Coding&#160;时一定要讲求效率的，我向来不认为用记事本来写程序就可被认为是多么的高明。就像测试&#160;Java&#160;程序我仍然是选用 Eclipse，当然命令行技术是要求掌握的。写&#160;Ruby&#160;程序可以用&#160;NetBeans&#160;那样带智能提示的工具，但是 Mac OS&#160;下，TextMate&#160;的口碑很不多的，它有很好用的&#160;Bundle，Cmd＋R&#160;就能看到运行结果，查帮助也很方便。 从代码的智能提示来看，TextMate&#160;或许只能称之为半智能，但它的效率还是非常的高，且基于其余时候打开 TextMate&#160;的频度，我选择 TextMate&#160;作为 Ruby&#160;的 IDE。 Ruby&#160;的表达式和操作符，Ruby&#160;的语法是面向表达式的，如在其他语言中的控制结构在&#160;Ruby&#160;中统统叫做表达式，只是它们的返回值为&#160;nil。来看几个较有特色的&#160;Ruby&#160;运算符： puts 2**1024 #Ruby 支持很大很大的整数，不会那么容易出现放不下的问题 puts "Ruby" + " rocks!" #连接字符串 puts "Ruby! " * 3 #字符串成以数字就是重复几遍 puts "%d %s" % [3, "rubies"] #格式化字符串更直白，就是字符串的百分号操作符，参数为数组 执行的结果如下图，直接在&#160;TextMate&#160;中运行后的截屏： 许多的&#160;Ruby&#160;操作符就是由方法实现的，也就是说上面的运算符也就是方法调用，不信的话，你可以把上面的代码写成下面的形式： puts 2**(1024) puts "Ruby" + (" rocks!") puts "Ruby! " * (3) puts "%d %s" % ([3, [...]]]></description> <wfw:commentRss>http://unmi.cc/close-to-ruby-world-2/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 27/74 queries in 117.800 seconds using disk: basic
Object Caching 1795/1926 objects using disk: basic

Served from: unmi.cc @ 2012-05-16 17:09:26 -->
