Mac上安装eclipse + adt + subclipse 的曲折经历

下载adt sdk后,直接用里面的eclipse加装subclipse死活装不上,试了各种方式都不行;换装subversive也装不了。 于是只好先下个普通的eclipse, 然后装subclipse很顺利; 但通过update site的方式安装adt插件又死活装不了,因为adt update site的xml叫site.xml, 而eclipse只认content.xml; 只好改用archive方式,下载adt插件,然后安装,但在安装时又出现 "Computing alternate solutions, may take a while", 暴慢无比; 只好重装,去掉“NDK”组件,突然就好了。 p.s. 今天为别人装了一次,遇到"calculate dependencies"一直停在 2%处,后来去掉 "Contract all update sites" before installing your selection"就好了

Netty的写:异步,但是可以保证顺序

Netty的写是异步的,但可以保证两个消息写出的顺序与它们在代码中被写出的先后顺序相同。 handshaker.handshake(…); channel.write(myFirstTextWebSocketFrame); 会不会因为异步,导致上面代码中 text frame比handshake response更先到达客户端?  答案是不会:(这人是netty开发者之一)

Netty Websocket服务端出现unsupported message type: TextWebSocketFrame

Netty Websocket服务器如果在一定程度的并发下出现下列异常并导致channel关闭: java.lang.IllegalArgumentException: unsupported message type: class org.jboss.netty.handler.codec.http.websocketx.TextWebSocketFrame 发生这种情况,是因为Netty Server仍处于握手状态; 在握手状态下,channel只能发送http报文,不能发送websocket帧; 如果强行发生,就会在SocketSendBufferPool.acquire()方法内抛出上述异常。 解决办法有两种: 1. 修改你的代码,确保handshake response发送完后才发出text frame 2. 回送handshake response前把websocket encoder加入到channel pipeline中,即使这时有websocket frame发出,也不会报错。– 这是作者的观点,并且他已经实现到了新版的Netty里: https://github.com/netty/netty/commit/3b324e9515831f658fe8777df513a3a381822b34

android eclipse导入existing project出现大量红点怎么办?

android eclipse导入existing project出现大量红点怎么办? 1. 如果说"gen"目录找不到,则创建这个目录 2. 如果说“android.app"之类的找不到,则去sdk某个子目录下找到android.jar加入到build path 3. 如果说”android.support.v4"之类的找不到,则去sdk某个子目录下找到android support v4相关的一个jar包加入到build path 4. 如果说"R"类找不到,则检查一下res目录、AndroidManifest.xml是不是有错误; 如果还不行,看看project.properties里指定的target是否跟sdk版本一致。

服务端开发中的两种“异步”

服务端开发时经常会用到“异步”这个概念。要注意你说的是哪种异步,否则可能会导致沟通的误会,甚至设计的失误。 1. 客户端和服务端之间的异步交互。 客户端发出一个业务请求,服务端在这个业务请求完成之前就发出响应,然后再在后台进行处理。 2. 服务端处理请求时,在内部使用异步模式。 比如收到请求时将它丢给一个线程池来处理。 请求处理中可以同时使用这两种异步,也可以只用一种。 对于http来说,一般是“交互要同步”,但“服务端内部处理要异步”。I/O线程收到请求后,立即丢给worker线程池处理;但在worker线程处理完请求、回送响应之前,客户端要处于阻塞状态,等待响应;服务端内部使用异步处理,对客户端并没有什么好处,但它可以提高服务端自身的吞吐率。 一个常见的失误就是,一味想着“异步”,结果把一些本该同步的c/s交互也变成了异步。 最近我在处理websocket握手逻辑时就遇到这样一个问题。我们基于Netty在握手时进行了用户验证。Netty的握手API采用异步编程模型,于是我们就把验证的逻辑放到了握手API的callback中;结果 验证逻辑还没执行完,客户端就收到“握手成功”的通知,然后发出正常的业务请求。解决办法是先验证,再执行握手;如果验证逻辑采用了异步编程模型,则可以把握手API放到验证逻辑的callback中。

手机访问内网无域名站点

手机浏览器通过IP访问内网站点,一般都访问不了。 有个招数是: 1. 在内网某台电脑上开一个http代理 2. 设置手机的wifi配置,配置这个http代理 3. 修改电脑上的hosts,为内网ip指定一个域名 4. 在手机上通过域名访问