2014年1月 ’ 的文章存档

理解WebKit和Chromium: Android 4.4 上的Chromium WebView

 

 ## 概述

相信读者已经注意到了,在最新的Android 4.4 Kitkat版本中,原本基于Android WebKit的WebView实现被换成基于Chromium的WebView实现。在前面的章节中,笔者也介绍过基于Chromium的WebView实现即将成为Android系统上的缺省实现方式,笔者也一直期待这一重大转变,现在它真的发生了。而之前基于WebView接口的应用程序甚至可以直接工作在该实现上而不需要任何特别的改变。举个例子来说,Android系统上的缺省浏览器(AOSP中的浏览器),可以不需要任何改变直接工作在新的实现上。

WebView是一种嵌入式的编程接口,能够提供Java接口给开发者来使用该模块来渲染网页。现在的WebView只是一个接口类,通过一些内部设计的改变,其具体的实现可以在之前的Android WebKit和Chromium之间进行切换。新的Chromium实现专注于提供一致性的接口(为了兼容以前的应用),而内部的渲染引擎改为使用基于Blink/Content内核的引擎,这实现不管是从功能上还是性能来讲,都带来巨大的提升。为了支持WebView的工作方式,Chromium还是做了不少的改变的,例如前面提到的进程模型,渲染方式等,下面一一对他们作介绍。
阅读全文

做一个不喊爸不喊妈的程序员

公司的项目这几个月一直处于上线攻坚阶段,各种问题层出不穷,其实对于这个阶段来说,对程序员而言并非是技术的磨练,而是心态,面对无休止的加班,面对不合理不规律的版本发布,面对管理层各种你认为扯淡的想法,面对团队内有同事扛不住先离去的现象,面对项目上线后不理想的结果。。。
阅读全文

心里好累的产品汪如何跨岗位盯人

我负责的版本在公司内部不是重点,所以从去年到今年一直面临的问题是:项目人手不够,每个人都跟我说“手里活儿太多,没时间啊”。

这一年,我依次采取了以下解决办法:

1、产品会议时,跟研发、UI(UE一直缺人,来了又走,我自己硬着头皮冒充)、测试反复述说——朝着“提升用户数据、提升产品口碑”这个目标走,这样做是我暗自希望可以让大家达成共识“我们在共同维护一款产品”——现在来看,以失败告终;
2、研发反馈手里活儿多的时候,我先去问清楚他手里有什么活儿,卡在哪里,然后去找研发总监协调,这里我每次都用考核时间“威胁”或者装可怜(虽然我负责的版本有专职研发,但是他们总是会被临时抽调去赶别的项目);
3、当UI反馈手里活儿多的时候,我就很没办法了,因为她从自己职业发展角度,优先完成公司的重点项目(客户端产品),我是完全理解的,且她是老员工,不妥协,所以说服她非常费劲,我几乎没想到什么法子,就是每天跑去她那里软磨硬泡;
4、测试虽然没有这样的问题,但是他们动不动就以完不成来威胁说不测试——倒是每次都卡住时间了,这样的情况发生了我也可以上报,但是听得太多次,心里超级凉;
5、我自己提前两个月完成方案呢,中间也会遇到各种问题,或者大家估算着时间充裕,就优先完成其它时间紧急的。
我想来想去,除了天天跟在后面磨嘴皮,装可怜,用考核时间吓唬人、假传圣旨……没一个是正经的办法。也跟关系非常密切的同事讨论这个问题的解决办法,结论是公司流程和体制的问题。多少算是自我安慰。心里好累啊~不知道你有没有什么盯人的好办法呢?
阅读全文

想法与方法

忘记在哪看到的文章了,回想原文,大致如下:

一群耗子开会,怎么能解决掉“猫抓老鼠”的问题。其中一只老鼠提议,咱们在猫的脖子上挂个铃铛,这样就能早点避开它了,满场叫好。散会后再回想,谁来把铃铛挂到猫的脖子上??

我们不缺想法,三五个人头脑风暴一下,能出来N个点子。
哪个是能做的,哪个是现在还做不了的,心里要有数。

靠谱的人,应该帮助团队一起达成目标。
了解自己的资源是什么,能够借助的资源是什么,能够完成的绩效是什么。

可以坑自己,别坑了在一起的人。

作者:崔凯

来源:http://uicss.cn/execution/

LINUX上MYSQL优化三板斧

现在MySQL运行的大部分环境都是在Linux上的,如何在Linux操作系统上根据MySQL进行优化,我们这里给出一些通用简单的策略。这些方法都有助于改进MySQL的性能。
闲话少说,进入正题。
阅读全文

今天才知道,空壳星球的内部是没有重力的

曾经想过要写一篇科幻小说,讲一种生活在空壳星球内表面的文明,如何发现自己的星球是圆的,如何成功地环游世界一周,又如何发现自己其实是在星球的内表面。今天我长出了一口气,幸好当初没写这样的文章,不然就闹笑话了。今天我才知道,空壳星球内部的人是不能居住在星球的内表面的,因为空壳星球内的任意一点都没有重力。
阅读全文

那些出现在电影中的程序代码

高科技无关的电影也偶尔会出现一些跟计算机相关的镜头。文本搜罗的是在各种电影中出现过的代码,它们有的是黑客脚本,有的是绝密文件,有的就是为了摆酷,文中对这些代码都有截屏,你是否能看出它们是什么语言?
阅读全文

吐槽:memcached服务器不搭理来自nc的set命令!

使用nc访问memcache服务的时候,发现set命令总是失败,但是其他命令可用。换telnet一切正常,疑似服务器bug,值得研究。

nc使用的命令是:

nc 127.0.0.1 11212

telnet使用的命令是:

telnet 127.0.0.1 11212

于是尝试使用wireshark抓包分析数据差异,

telnet的请求数据如下:

0000 73 65 74 20 70 79 77 20 31 20 30 20 33 0d 0a 31 set pyw 1 0 3..1
0010 30 30 0d 0a 00..

nc的请求数据如下:

0000 73 65 74 20 70 79 77 20 31 20 30 20 33 0a set pyw 1 0 3.
0000 31 30 30 0a 100.

 
阅读全文

Linux平台Web服务性能测试工具http_load

http_load的主页(实在是有点简陋):http://www.acme.com/software/http_load/

下载回来一个压缩包,解压出来之后连configure都不用,直接make即可生成可执行程序 http_load(视系统情况不同,可能你需要自己修改Makefile再编译)。注意:make的时候可能会有若干警告,但是可能并不影响使用生成的http_load程序,例如我在自己的机器上make,出现了这些警告:
阅读全文

50行Python代码写一个语言检测器

你有没有曾经好奇过Chrome浏览器是如何知道一个网页的语言,并对外国文字的网页提供翻译服务的?或者,Facebook是如何翻译你朋友用写在你主页上的外国文字?检测一种语言实际上非常简单,改进了用户体验,而且不需要用户做任何的事情。

我无意中发现的 ActiveState recipe for a language detector in Python这是非常不错的一段程序,但是我决定做点小小的改进。提供一些背景知识给那些不熟悉自然语言处理或者是程序语言学的人。

如果你是有经验的程序员,你也许可以直接跳到这段文字最下端的程序部分。出奇的简单。
阅读全文