MacOS下利用Alfred Workflow批量签名Android APK

最近需要在mac os上搭建完整的生产环境,可是在安卓apk签名的问题上卡了半天。当然,Mac下的Eclipse也是自带签名工具的,但是它只能在工程export时起作用。由于笔者需要向第三方加密平台上传APK,再从这些平台下载加密完的各渠道APK们二次签名。一个高效、漂亮的批量签名工具就显得尤为必要了。 总有一些Terminal神教信徒坚称命令行才是唯一有效率的,视一切GUI为异宗。我虽觉自己尚不够格对此作个评判,但只知道涉及到文件管理时,命令行实在是力不从心。当你面对着十来个待签名的渠道包APK,即使不去在命令行里一行行的敲jarsigner,写个shell每次不厌其烦的输入各种冗长的路径也着实让人头疼。 这里需要介绍的方法是利用小黑帽Alfred 2的Wo...阅读全文

深入探讨Box2D中ghost collision问题解决方案

在使用Box2D引擎时,我们必须牢记它只能对物理世界进行近似的仿真。这其中最根本的原因是帧速受限,而且在pix<->meter换算以及其它乘除法的约算上,会衍生出大量的边界问题。在box2d官方的FAQ页上可以看到这样一条提示:What are the biggest mistakes made by new users?  Expecting Box2D to give pixel perfect results.  这句话应当引起我们相当的注意。 对于“高速刚体穿越碰撞块”以及本文将讨论的“ghost collision”问题,目前还没有一个100%完美的解决方案。有时我真为这种bug感到抓狂,但是细想一下,如果要我自己去设计这样一套引擎,未必能做得更好。 ghost collision问题如下图所示: A块和B块代表固定的地面,蓝色块代...阅读全文

从开发者的角度看待各移动平台 ios/android/wp7/win8

T_T 这伪技术博客都快给写成Tron的读书笔记专栏了,这样可不行欸~ 如今正是移动平台的战国时期,厌烦了去讨论移动平台的未来,也无意于在HTML5和Native App之间纠结。本文只从开发者纯技术的角度聊聊各移动平台的特性。 1.WP7 个人挺喜欢wp7的系统,所以连带着也喜欢起wp7的开发。WP7开发常常与MVVM(Model-View-ViewModel)模式一起出现。抛开执行效率不谈,我觉得MVVM是在移动平台上写起来最优美的数据绑定策略。当然,MVVM与WPF/SL的整体架构是分不开的。现在虽然有好事者在安卓上也整了一套MVVM框架,但我总感觉怪怪的。MVVM可以使开发者把UI操作的注意力集中到ViewModel层上,对于双向绑定、单向绑定、集合绑定都有很好的解决方案,配合起W...阅读全文

以tab方式打开gVim

网上已经有方法介绍如何使用”右键->发送到”和”Edit with”方法来在新tab中打开gVim(如http://easwy.com/blog/archives/vim-tips-windows-open-file-in-tab/) 但由于笔者已深患TC强迫症(Total Commander),仍觉得用鼠标点选太过麻烦。这里介绍一个直接通过TC的F4功能在新标签页中打开gVim的方法。 依次进入TC的“ 配置->选项->编辑/查看”。把“编辑程序”一栏改写成形如下面的形式即可。 “C:\Program Files (x86)\Vim\vim73\gvim.exe” -p –remote-tab-silent “%*” 好吧,我承认应该有人点进来后发现被骗了,标题明明应该是“在TC下以tab方式打开gVim”嘛。但是我觉得如果读者...阅读全文

深入浅出Web Page Editor之二:布局引擎的四个层次

1. 简介 既然WPE是个html可视化编辑器,那么必然也会像浏览器一样有一个排版引擎之类的东西存在着。WPE的排版引擎主要可分为这么四个层次:  CSS层  HTML层  Tag Converter层  Edit层 给各层的命名可能与它们真实的作用稍微有点出入,但也一时找不到其它命名了。下面就对各层分别说明。 2. CSS层 CSS层决定了控件是如何绘制在Desinger视图的画布上的。其大部分类都在org.eclipse.jst.pagedesigner.css2这个包里。 2.1. ICSSStyle ICSSStyle是CSS层的核心接口,它实际上就是对html标签中style=””部分的建模。 2.2. Figure和Layout 在WPE中的Figure继承关系可如下图所示。 其中需要注意的是FlowPage、CSSFigure,CSSTextFigure。如果您...阅读全文

再论“我应该采用哪一种 WSDL 样式?”

IBM的developerworks社区上有一篇质量很高的文章:我应该采用哪一种 WSDL 样式(http://www.ibm.com/developerworks/cn/webservices/ws-whichwsdl/)。文中列举了四种style/use模型: rpc/encoded rpc/literal document/encoded document/literal 不少人将这篇文章盲目转载,却忘了看看这篇文章的发表日期“2003 年 11 月 01 日”。在互联网行业,2003-2011长达的八年意味着什么,想必大家都能理解。 我曾经找到一篇2004年的文章说:“Document/literal and RPC/literal will be the only allowed style/use combinations in the future.”,而现在正是这样一个情况。即使某个wsdl中是用的rpc/encoded,在我的myeclipse 8.5想通过这个wsd...阅读全文

Web Page Editor中绝对定位(absolute)问题的解决

既然有所谓“问题的解决”,那么必然就意味着原来是有问题的。原生态的Web Page Editor中默认的absolute开关是关着的(是的,虽然很费解,但它的确是关着的)。所以即使你在代码里写了带有position:absolute,它也会直接将其忽略掉。 打开这个开关的方法是,来到类PDPreferences中,将static属性DEFAULT_CSS_ENABLE_ABSOLUTE_POSITIONING设为true; 但是如果仅仅设其为true,若你在一个空文档里写入一行: <div style=’”position:absolute;left:10,;top10;”。 然后用web page editor打开此文档,你会发现Console视图下会发现报了一堆NullPointerException错误,且整个视图都比较混乱。跟踪调试一段时间后,我发现其根本原因在于CSSLayout...阅读全文

在RCP程序中集成Jetty

jetty是个开源的serverlt容器,由于良好的设计,它非常容易被嵌入到其它程序中,作为一个内嵌服务器而存在。 那么我们如何在自己的RCP程序中使用Jetty呢? 方法一:使用扩展点 这种方法比较容易实现,但缺点是无法在运行时改变参数,因为它的参数基本上都是在plugin.xml里就写好的。使用扩展点去集成Jetty,只需要在Plugin dependences 页面中添加如下插件: javax.servlet org.mortbay.jetty.server org.mortbay.jetty.util org.eclipse.equinox.http.jetty org.eclipse.equinox.http.registry org.eclipse.equinox.http.servlet 这还不够,我们还得在项目的启动配置里,把上述插件设为auto-start(因为lazy load机制的存在,如果代码中没有显...阅读全文

为 Web Page Editor 定制控件

Web Page Editor本身就自带了HTML和JSP的两大组控件,但是这些控件功能太简单了,你拖一个div控件出来,也就生成一个<div></div>,拖一个a控件出来,就生成一个<a></a>。有那拖的功夫,还不如自己拿键盘敲呢。比起Dreamweaver和Myeclipse的控件来说,差了不知道几个数量级。 想要定制控件,先得看看Palette(就是控件面版)上的每一项是怎么新建出来的。HTML和JSP控件最终都利用了以下代码在Palette中新建条目。 private TagToolPaletteEntry internalCreateTagEntry(final TaglibPaletteDrawer category, final String id, final String tagName, final String label, String desc, final ImageDescriptor ...阅读全文

为Web Page Editor添加拖动功能

对于可视化的页面编辑来说,控件的全局拖动功能是必不可少的。但很奇怪的是,原生的org.eclipse.jst.pagedesigner插件并没有实现这一功能(这个官方插件简直就是个渣!)。没关系,源代码在手,我们自己搞定它! 拖动功能对应的Command是MoveNodeCommand。原有的拖动只是调换两个元素的位置,不能拖动到画布上的任意空位置。对GEF、Draw2D有过了解的朋友应该对ToolbarLayout、FlowLayout和XYLayout有所印象。前两者都是继承自OrderedLayout,它们会按指定的方向排列显示图形,拖动不同的图形只会改变这个排列顺序。Web page editor中的layout就和这种layout比较相似,所以在原本的环境中,根本没有考虑当一个标签为postion:absolute时的全局拖...阅读全文