08 2011 档案
摘要:说明这篇文章用来提供在asp.net中使用comet的一种理论上的解决方案。它包含了Comet技术在服务端的实现以及怎样去解决可扩展的问题。我将在不久以后发表一般文章,使用我接下来要讲到的Comet 线程池技术演示一个小游戏,来提供客户端的代码。它可能会给你在真实的环境下解决问题带来一些思路。简介在过去的六个月里,我一直都在投入精力开发一个在线的象棋应用程序。它能够让玩家注册、登陆,并且像在真实世界中对弈一样。其中,我不得不克服的一个障碍就是,怎样在服务端和客户端实现一个类似在真实世界中的通信。要克服这个障碍,以下一系列的因素需要考虑:(1)可扩展性 – 我想让它在一个负载均衡的环境中工作,并
阅读全文
摘要:前言:最近开始研究Android自动化测试方法,整理了一些工具、方法和框架,其中包括android测试框架,CTS、Monkey、Monkeyrunner、benchmark,以及其它test tool等等。一、 什么是MonkeyMonkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。二、 Monkey的特征1、 测试的对象仅为应用程序包,有一定的局限性。2、 Monky测试使用的事件流数据流是
阅读全文
摘要:自己主机是Windows7,开始虚拟机是CentOS5x,在VirtualBox上设置了共享目录“share”之后,在虚拟机里使用命令sudo mount -t vboxsf -o uid=<uid>,gid=<gid>,dmode=0755,fmode=0755 share /share就可以把共享目录mount到虚拟机系统上,但是今天装了个CentOS6之后,设置了同样的共享目录“share”之后,在运行以上命令总是出现以下错误/sbin/mount.vboxsf: mounting failed with the error: Invalid argument好来
阅读全文
摘要:作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windows\tools\下面多了一个proguard文件夹proguard是一个java代码混淆的工具,通过proguard,别人即使反编译你的apk包,也只会看到一些让人很难看懂的代码,从而达到保护代码的作用。下面具体说一说怎么样让SDK2.3下的proguard.cfg文件起作用,先来看看android-sdk-windows\tools\lib\proguard.cfg的内容:-op
阅读全文
摘要:这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全是一种学习的态度,不过好像通过这种方式也可以去汉化一些外国软件。一、反编译Apk得到Java源代码首先要下载两个工具:dex2jar和JD-GUI前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。以下是下载地址:dex2jar:http://laichao.googlecode.com/files/dex2jar-0.0.7-
阅读全文
摘要:先明确几个概念的区别:padding margin:都是边距的含义,关键问题得明白是什么相对什么的边距padding:是控件的内容相对控件的边缘的边距.margin :是控件边缘相对父空间的边距android:gravity是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.该属性就干了这个.android:layout_gravity 是用来设置该view中的子view相对于父view的位置.比如一个button 在linearlayout里,你想把该button放在靠左,靠右等位置就可以在linearlayout中通过该属
阅读全文
摘要:Android --- 图片处理的方法转换 - drawable To bitmap缩放 - Zoom圆角 - Round Corner倒影 - ReflectedbitmapPrcess code:package com.learn.games; import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.LinearGradient;
import android.graphics.Matrix;
import android.graphics.Paint;
import .
阅读全文
摘要:本文主要讲解下AsyncTask的使用以及Handler的应用首先,我们得明确下一个概念,什么是UI线程。顾名思义,ui线程就是管理着用户界面的那个线程!android的ui线程操作并不是安全的,并且和用户直接进行界面交互的操作都必须在ui线程中进行才可以。这种模式叫做单线程模式。我们在单线程模式下编程一定要注意:不要阻塞ui线程、确保只在ui线程中访问ui组件当我们要执行一个复杂耗时的算法并且最终要将计算结果反映到ui上时,我们会发现,我们根本没办法同时保证上面的两点要求;我们肯定会想到开启一个新的线程,让这个复杂耗时的任务到后台去执行,但是执行完毕了呢?我们发现,我们无法再与ui进行交互了
阅读全文
摘要:android字体闪烁动画,使用线程和Timer实现public class ActivityMain extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); spark(); } private int clo = 0; public void spark() { final TextView touchScreen = (TextView) find...
阅读全文
摘要:当你创建自己的类型,一种有效的建议就是去重新实现那些属于Object类的一些方法——toString()、equals()、hashcode()。没错,这些都是正确的建议。但是,对于这些方法有时我们并不能很有效地去为我们的类给出高效的实现,比如说eqauls()。假设有一个类,point:/* * created by:yh * date:2011-08-18 */
public class Point { private int x,y; public Point(int x,int y) { this.x=x; this.y=y; } @Override ...
阅读全文
摘要:前几天写js,跟踪调试时,发现误传了参数类型【原本需要的是number类型的,结果传递的实参却是string类型的】。结果居然没有产生异常,仍然顺利地执行了。于是,今天特地做了几个测试。(1)字符串类型数字的自加/* *测试字符串类型数字的自加操作 */ function testStringSelfAdd() { var i = "0"; for (var j = 0; j < 100; j++) { i++; } ...
阅读全文
摘要:android中获取屏幕的长于宽,参考了网上有很多代码,但结果与实际不符,如我的手机是i9000,屏幕大小是480*800px,得到的结果却为320*533结果很不靠谱,于是自己写了几行代码,亲测一下测试参数:测试环境: i9000(三星)物理屏幕:480*800pxdensity :1.5测试代码: // 获取屏幕密度(方法1) int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); // 屏幕宽(像素,如:480px) int screenHeight = getWindowM...
阅读全文
摘要:px :是屏幕的像素点in :英寸mm :毫米pt :磅,1/72 英寸dp :一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1pxdip :等同于dpsp :同dp相似,但还会根据用户的字体大小偏好来缩放。建议使用sp作为文本的单位,其它用dip针对dip和px 的关系,做以下概述:QVGA屏density=120; QVGA(240*320)HVGA屏density=160; HVGA(320*480)WVGA屏density=240; WVGA(480*800)WQVGA屏density=120 WQVGA(240*400)den...
阅读全文
摘要:项目中使用了jqGrid列表控件,碰到“通过选择不同的日期段,出现该日期段中每一天的统计数据”这样的需求。因为之前对这个列表控件不是很熟悉,网上的资料显示和列相关的两个属性:colName、colModel都是不可更改的。所以这个办法行不通,也就退而求其次,想通过重新加载的方法,为这两个列重新设置值。但是,这仍然没有成功。中文社区中,也没有很有效的解决方案。后来同事在英文社区,给找到了相应的解决方案。在重新加载之前,得先调用——gridunload 这样一个方法。然后重新为colName和colModel设置属性值,重新加载就可以动态改变列了。也就是说,通常情况下你得为此准备两个方法:firs
阅读全文
摘要:在《Java编程思想》中花了一章的篇幅介绍,内部类的相关特性。而在C#的书籍中很少有提交内部类的介绍。这篇文章,就简要介绍一下,C#中的内部类。我们新建一个测试类文件,定义一个类:OuterClass。在其内部定义一个类:InnerClass1(暂且将其访问级别设置为public)。来做几个简单测试,截图如下:以上在InnerClass1中试图访问outerClass的实例变量失败!内部类访问外部类的实例方法同样失败!外部类也无法索引到内部类的实例变量(同样外部类也无法调用内部类的任何实例方法,即使方法是公有方法)。这在预料之中:不管innerClass1定义在外部还是在OutClass内部,
阅读全文
摘要:昨晚开始看《编程之美》,刚看到序中有一道面试题。据说,早期应聘PM职位的应聘者大多曾碰到这道题目:房间里有三盏灯,屋外有三个开关,分别控制这三盏灯,只有进入房间,才能看到哪一个电灯是亮的。请问:如何只进入房间一次,就能指明哪个开关控制哪个灯。自己有个想法,也没看网上的答案:先将一个开关,拨到开的状态,维持十分钟。然后将该开关,拨到关的状态。然后,将另一个开关的状态拨到开,然后,迅速进入房间。当前亮着的灯,肯定被外面开关为“开”状态的开关控制。接着用手摸一下,哪个灯泡是热的,该灯泡就是被刚才,状态为“开”的开关控制,剩下的正好配对。这里,利用了温度做文章~好吧,还是忍不住到网上搜了一下,有没有其
阅读全文
摘要:原文地址:http://www.sencha.com/blog/what-to-expect-in-ext-js-4-1/ 我们正在努力为ExtJS从4.0.x升级到4.1而努力工作着,不单是进行错误修复的工作,还包括改善的工作。在ExtJS 4.1的第1个beta测试版即将发布之时,我们迫不及待的想与大家分享一下在4.1中值得期待的东西。 在社区的交流中,意见最多和最清晰,也是我们需要花费大量时间去处理的是性能和文档这两个部分。事实上,这也是4.1的焦点所在,让我们分别看看在这两方面都做了什么改进。 性能 现在,很多人的关键项目都依赖于ExtJS,这些项目都是带有上百个布局、视图和配置的..
阅读全文
摘要:今天早上儿子一睁眼就发了一句感叹:哎呀,我啥时候结婚呀!? 妈妈惊讶的问:你结婚干啥呀? 儿子:我找个女人结婚给我再生一个女的,可以当妹妹。
阅读全文
摘要:前几天和儿子在家里玩游戏,玩到打仗的游戏,我就想儿子不爱学数字加减法,我就把加减法给揉到游戏中,这样既可以玩游戏又可以学习,所以在玩游戏的时候我就喊:团长,敌人来了一百个人,爸爸啪啪打死了三个,还有几个? 儿子:还有97个。 爸爸:啪啪,爸爸又打死了两个还有几个鬼子? 儿子:还有95个。 爸爸:啪啪,爸爸又打死了四个鬼子,还有几个鬼子? 儿子:爸爸,你别让我数数字了,咱们还是玩打仗的游戏吧。 完了,怎么被看出来了。 今天又在家里玩打仗的游戏,儿子又说:爸爸,来了100个鬼子。 爸爸:啪啪,爸爸打死了两个鬼子,还剩几个鬼子? 儿子:还剩97个。儿子不加思...
阅读全文
摘要:ADB (Android Debug Bridge)Android 提供的一个通用的调试工具,借助这个工具,我们可以很好的调试开发的程序,adb.exe在你安装的android的sdk开发包tools(或platform-tools)目录下adb使用方法:adb [-d|-e|-s <serialNumber>] <command>当你发出一个命令,系统启用Android客户端。客户端并不与模拟器实例相关,所以如果双服务器/设备是运行中的,你需要用-d选项 去为应被控制的命令确定目标实例。关于使用这个选项的更多信息,可以查看模拟器/设备实例术语控制命令。1、安装应用 到
阅读全文
摘要:一般数据采用的固定的静态数据类型,而SQLite采用的是动态数据类型,会根据存入值自动判断。SQLite具有以下五种数据类型:1.NULL:空值。2.INTEGER:带符号的整型,具体取决有存入数字的范围大小。3.REAL:浮点数字,存储为8-byte IEEE浮点数。4.TEXT:字符串文本。5.BLOB:二进制对象。但实际上,sqlite3也接受如下的数据类型:smallint 16 位元的整数。interger 32 位元的整数。decimal(p,s) p 精确值和 s 大小的十进位整数,精确值p是指全部有几个数(digits)大小值,s是指小数点后有几位数。如果没有特别指定,则系统会
阅读全文
摘要:一 直接在AndroidManifest.xml文件中设定Activity主题为全屏模式android:theme="@android:style/Theme.NoTitleBar.Fullscreen"例如:在NewGame视图中,全屏显示方法如下:<activity android:name="NewGame"android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>二 在代码中实现全屏1、隐藏标题栏requestWindowFeature(Window.F
阅读全文
摘要:一个标准的web应用程序,打包成war之后,在jetty,tomcat和webshpere里日志都是好的,但是部署到WebLogic里就不能打印出日志。感觉好像是WebLogic没有认出log4j.properties文件,查了一些资料,发现通过下面的方法可以解决这个问题。1. 编辑{WEBLOGIC_HOME}\user_projects\domains\<XXXdomain>\setEnv.cmd文件,在最后加入以下内容:set LOG4J_CONFIG_FILE={WEBLOGIC_HOME}/user_projects/domains/<XXXdomain>/l
阅读全文
摘要:本文地址:http://blog.csdn.net/kongxx/article/details/6656658今天升级了Vertica从4.0.x到5.0.4版本,发现Vertica4x多数据库实例端口配置文章中提到的方法不再适用,做了一些调研发现可以通过以下步骤来实现:1. 首先先停止所有的数据库实例;2. 创建多个数据库实例,比如mydb1和mydb2;3. 编辑/opt/vertica/config/admintools.conf文件,将其中mydb1和mydb2配置部分的端口改成自己想要的端口,如下:[Configuration]
install_opts = ['-u
阅读全文
摘要:原文地址:Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Membase vs Neo4j comparisonCassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Membase vs Neo4j comparisonWhile SQL databases are insanely useful tools, their monopoly of ~15 years is coming to an end.And it was just time: I
阅读全文