- 博客(1316)
- 资源 (26)
- 收藏
- 关注
原创 ios开发小记
今天ios遇到一个bug, UITableView的contentOffset会在内容不满一页的时候被reset, 其他时候正常, 而且这个bug只在有tabbar的地方出现, 经过调试, 发现是UIViewAutoresizingFlexibleHeight导致的. 网上有人说改变UITableView的大小会导致contentOffset被reset, 看来这个也是这个原因了.一些其他的
2013-05-18 21:11:21 4591 3
原创 随便聊聊
上一篇文章是在去年8月份写的, 已经快半年没到csdn写东西了. 一来是习惯了在everynote里面写东西, 另外是现在越来越忙, 没多少时间来写片长篇博文了. 去年到现在做的东西很杂, 思路也在不停地发展变化. 去年到现在做的东西主要有: 一. 做给c++加入元数据的东西, 我以前还写过一个文章来介绍这个:http://blog.csdn.net/chief1985/arti
2013-05-05 16:39:56 4715
原创 微信的研究(二)
10. 前面说到了现在承载赚钱业务的以web为主,原因是为什么呢? 是因为数据。马云曾经说过:21世纪核心的竞争是数据的竞争,谁拥有更多数据,谁就拥有未来。数据对于互联网公司就相当于现实中金钱。对于web而已,在客户这么没保留什么数据,基本将所要的用户信息全部汇集到了服务器。对于一个公司而言,发布一个软件,如果软件装在客户端之后就不再贡献数据了(例如单机应用),那么这个公司的寿命基本就等同于这个软
2012-08-24 22:01:48 23013 10
原创 微信的研究
下面是个人研究微信android 4.2版本的一些结果,不一定正确。1. 微信android使用的是amr编码;iphone未知,估计是aac,转码会在微信服务器上完成。android上使用了speex这个库,估计是为了达到边录边发。在服务器做格式转换确实比客户端方便多了,用ffmpeg就可以搞定了,也是瘦客户端的一种思路,而且可以依此延伸很多扩展业务。2. 微信android最新
2012-08-24 00:33:10 41025 17
原创 最近所想和所做
好久没写博客了,原因之一是最近习惯了用evernote去记录自己所想和所看的,另外一个原因是CSDN关闭了live writer的写blog的功能后,就没多大兴趣在csdn的网页编辑框里面写东西了,一来崩溃了写的东西全部丢了,一来手机上不好写。CSDN的标题是“全球最大中文IT社区,为IT专业技术人员提供最全面的信息传播和服务平台”,但我觉得现在的CSDN并不是面向于IT人员了,对于IT人员,特别
2012-07-03 13:55:08 5162 2
原创 android的crash log
在android下,如果我们写jni程序,可能经常会出现类似下面的crash log:10-11 20:47:24.527: INFO/DEBUG(61): *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2011-10-13 16:18:50 10030 1
原创 webkit在win32下的编译规则(九)
在webkit在win32下的编译规则(七)中,曾经说到要专门介绍js binding这部分的,但后面逐渐忘记了,最近有网友提起,特加入js binding这部分的介绍。首先来说是js engine,js engine是一个解释器。解释器比较直观的就是命令行(cmd.exe)
2011-09-12 23:30:51 10135 3
原创 使用FireBreath写浏览器插件(三)
三. FireBreath Helloworld首先需要创建一个自己插件的工程,首先要安装Python,然后进入命令行后,在Firebreath的源代码目录下执行:python fbgen.py,这是将提示输入一些信息:Plugin Name:插件的名称,
2011-08-26 20:22:53 14432 6
原创 使用FireBreath写浏览器插件(二)
二. Firebreath的实际应用 去年我在给公司开发PC上Widget引擎,这个Widget引擎上面运行WebApp应用,界面和应用逻辑使用HTML+CSS+Javascript实现,而网页无法实现的功能则由CAR实现(CAR是与COM类似的技术,不过支持反射和AO
2011-08-25 22:28:50 13943 1
原创 使用FireBreath写浏览器插件(一)
一. FireBreath介绍 FireBreath是一个跨平台和跨浏览器的插件开发框架,通过Firebreath写的插件可以运行在windows,linux和mac上的IE,Firefox,Chrome,Opera,Safari等浏览器上。FireBreath的主
2011-08-25 22:20:48 22067 2
原创 svn 207 Multi-Status
最近更新webkit,出现了 svn 207 Multi-Status的错误:svn: PROPFIND of '/repository/webkit/!svn/bc/19963/trunk/LayoutTests/fast/xpath/4XPath/Core/tes
2011-08-23 21:59:31 5013
原创 将google reader里面的星标文章导成pdf
自从2007年开始使用google reader以来,已经看了不少文章,给不少文章加了星标,以供后面好查阅。最近google不太稳定,是否担心无法访问Google Reader后这些文章都丢失掉,因此想将这些文章备份起来。但Google Reader并没有提供将星标文章导出的功能
2011-08-15 21:45:43 4703
原创 给cygwin安装package
最近看到在win7下编译nodejs的文章《一步一步教你搭建win7下的Node.js服务》,也想自己尝试一下。编译需要依赖cygwin和一些模块,我机器上已经安装了cygwin用于编译cygwin,但还缺少nodejs需要的openssl-devel,pkg-config等模块
2011-08-15 21:28:00 17731
原创 买了台Intel i7 2600K的机器
最近没法忍受笔记本的编译速度,到太平洋三期买了台组装机,大概配置如下:CPU:Intel i7 2600K主板:技嘉 Z68x-ud3r-B3内存:金士顿 8G DDR3硬盘:希捷 1T 7200转 32MB系统: win 7 64位买回来后编译了Chro
2011-07-25 10:01:57 6020 1
原创 chrome使用的开源工程介绍
在chrome地址栏输入about:credits就可以看到chrome使用的开源工程了,之前也有一篇介绍chrome开源工程的文章:Code Reuse in Google Chrome Browser,大家可以参考一下。 David M. Gays floating point routines homepage fp是netlib的一部分,主要用于浮点数运算,数的二进制与十进制的
2011-06-13 09:40:00 14249 1
原创 chrome里面的一些技巧
1. 求数组长度 求数组长度一般采用的是#define count_of(arg) (sizeof(arg) / sizeof(arg[0])),但这个宏对于指针在编译是不报错的,chrome里面是这么干的: template char (&ArraySizeHelper(T (&array)[N]))[N];#define arraysize(array) (sizeof(ArraySizeHelper(array)))void Test(int C[3]){ int
2011-05-26 19:36:00 3912
原创 wcscpy_s会改变后面的内容
wchar_t testBuf[MAX_PATH] = {0}; wcscpy_s(testBuf, MAX_PATH, L“c:/test”); assert(testBuf[16] == 0); 上面的代码会中assert,说明wcscpy_s会将/0后面的内容改变。
2011-05-26 19:20:00 5507 1
原创 webkit在win32下的编译规则(八)
HTMLElementFactory.cpp和HTMLNames.cpp是由如下规则生成的: ifdef HTML_FLAGS HTMLElementFactory.cpp HTMLNames.cpp : dom/make_names.pl html/HTMLTagNames.in html/HTMLAttributeNames.in perl -I $(WebCore)/bindings/scripts $û,在浏览器打开就可以看见一个世界地图。 WMLElementF
2011-03-23 09:23:00 7348 5
原创 webkit在win32下的编译规则(七)
首先看$(JS_DOM_HEADERS),这些文件都是以JS开头的,对其做处理的是如下规则: JS%.h : %.idl $(JS_BINDINGS_SCRIPTS) $(call generator_script, $(JS_BINDINGS_SCRIPTS)) $(IDL_COMMON_ARGS) --defines "$(FEATURE_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS $ CSSGram
2011-03-22 09:29:00 6368 3
原创 webkit在win32下的编译规则(六)
WebCore Folder下面的有3个工程:QTMovieWin,WebCore,WebCoreGenerated,编译的顺序是:WebCoreGenerated-》QTMovieWin-》QTMovieWin。 首先来看WebCoreGenerated这个工程,这个工程的NMake Build Comand Line如下: %SystemDrive%/cygwin/bin/which.exe bashif errorlevel 1 set PATH=%SystemDrive%/cygwin/bin;
2011-03-22 09:27:00 5767
原创 chrome里面的about Scheme
对about Scheme进行处理的地方: D:/project/chrome/src/src/chrome/browser/browser_url_handler.cc的void BrowserURLHandler::InitURLHandlers()函数 // staticvoid BrowserURLHandler::InitURLHandlers() { if (!url_handlers_.empty()) return; // Visual Studio 2010
2011-03-21 09:21:00 3561 2
原创 chrome sandbox中的几个有用函数
//判断句柄与路径是否是一样的// We get a |full_path| of the form /??/c:/some/foo/bar, and the name that// we'll get from |handle| will be /device/harddiskvolume1/some/foo/bar.bool SameObject(HANDLE handle, const wchar_t* full_path) { std::wstring path(full_p
2011-03-17 19:29:00 3229
原创 COMPILE_ASSERT
最近在看chrome的代码,发现了有个叫COMPILE_ASSERT的宏,用于编译时做判断。COMPILE_ASSERT宏的实现在D:/project/chrome/src/src/base/basictypes.h ,注释部分有其原理的介绍,如下: // The COMPILE_ASSERT macro can be used to verify that a compile time// expression is true. For example, you could use it to
2011-03-08 09:11:00 4657
原创 webkit在win32下的编译规则(五)
接下来看testapi这个工程,这个工程的编译设置基本与javascriptcore相同,最终生成testapi.exe。testapi.exe是一个测试javascript导出api的工程,这个工程就testapi.c和testapi.js两个文件,如下图: 虽然只有两个文件,却可以从这两个文件中学到如何使用javascriptcore这个js引擎,例如如何向js引擎注入对象和函数。可能很多人看了testapi.js这个文件函数会产生一个疑问,为什么不用window对象?对于js引擎而言,根本不存
2011-03-01 12:32:00 2726 2
原创 webkit在win32下的编译规则(四)
接下来看JavaScriptCore这个工程,这个工程继承的project property sheet如下: ../../../../WebKitLibraries/win/tools/vsprops/FeatureDefinesCairo.vsprops ../../../../WebKitLibraries/win/tools/vsprops/common.vsprops ../../../../WebKitLibraries/win/tools/vsprops/debug.vspro
2011-03-01 12:31:00 5030
原创 用Incredibuild编译webkit,chrome和Qt
前一段时间换了一个500G 7200转的硬盘,以为可以提高webkit等工程的编译速度,最终测试下来并没有提高多少。最近试了一下Incredibuild,确实可以提高速度很多。例如4台机器一块编译,差不多可以提高2-3倍左右。下图是编译webkit的截图: 编译chrome的截图: 编译qt的设置参考http://zaichunchen.appspot.com/2010/06/7/qt_incredibuild_compile.html 虽然提高速度很多,但Incredibuild并不能完
2011-02-28 09:56:00 5288
原创 webkit在win32下的编译规则(三)
首先来看WTF这个project,这个project的Pre-build event如下: 1: REM Do not edit from the Visual Studio IDE! Customize via a $(ProjectName)PreBuild.cmd file. 2: if not exist "$(ProjectDir)$(ProjectName)PreBuild.cmd" exit /b 3:
2011-02-14 19:37:00 4982
原创 error LNK2019
<br /><br />编译dll时出现了LNK2019这个错误,<br />libcmtd.lib(crt0.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup,我尝试了http://hi.baidu.com/kanoncom/blog/item/9150b4a1fe533c80471064f9.html提到的方法,无用,到网上找了一些别的方法,也无用,后来又试了在
2011-01-14 23:09:00 2969
原创 webkit在win32下的编译规则(二)
现在的webkit分为4个Floder:Javascript Folder,Tools,WebCore Folder,Webkit2 Folder,WebkitCom Folder,这5个目录的编译顺序基本是:Javascript Folder-》WebCore Folder-》WebkitCom Folder-》Webkit2 Folder-》Tools(有些子工程的顺序并不是这样的),下面就以这几个目录为单位来说明webkit的编译规则。 1. Javascript Folder 这个目录下有
2011-01-07 20:46:00 7915 5
原创 webkit在win32下的编译规则
最近有人在windows 7下的webkit编译不过去,问我该怎么解决。我看了一下,主要是SVGAnimationElement.cpp等文件编译不过去,这里面使用了开启svg后的一些枚举变量,但webkit在编译时生成的WebKitBuild/include/WebCore/CSSPropertyNames.h文件里面并没有生成这些枚举变量,我检查一些编译选项,配置都是OK的,我又看了一下webkit的编译规则,发现CSSPropertyNames.h的生成是依赖CSSPropertyNames.in等文
2010-12-27 22:25:00 10341 7
原创 CDialog里面的Webkit
如果你在VC的对话框(CDialog)里面加入Wekbit,你会发现网页里面的输入框(input box)无法输入,点击时也没有高亮的效果。调试的时候你可以发现CDialog里面的Webkit窗口可以收到Key_down事件,但是无法收到key_up事件和key_char事件,而WinLauncher是正常的。对比WinLauncher的代码你可以发现,CDialog所创建的窗口样式和WinLauncher所创建的窗口样式是不一样的。CDialog的样式中包括WS_POPUP,而WinLauncher的样式
2010-12-25 19:56:00 3792 6
原创 adb devices获得的设备标识
在命令行执行adb devices,你会得到连接上的设备,结果里面有每个设备的标识(serial number)。在adb的其他命令中,你可以用adb –s 来指定用某一个设备来执行命令,但是每个设备的serial number都不一样,adb是如何得到的呢?查看adb的源码后,发现其获取serial number的代码如下: //D:/project/android/android-1.5/development/host/windows/usb/api/adb_interface.cpp bool
2010-12-08 22:39:00 29725 5
原创 运行chrome ui
最近看了一下chrome UI 学习笔记(http://blog.chinaunix.net/u2/76055/showart.php?id=2093274),觉得chrome的ui架构不错,将很多基本控件进行了封装,这样写出来的ui就可以运行在windows,linux,mac机上,但其比qt和wxwidget轻量化,应该可以抽离出来,单独来作为一个简易的图形库。另外,chrome对多语言和皮肤等处理都很值得参考。在这里面学到了一个技巧是,设置完cygwin的环境后就可以在bat里面运行linux的相关命
2010-11-13 23:59:00 4860 1
原创 wprintf输出中文
浅析 Linux 的国际化与本地化机制 http://www.ibm.com/developerworks/cn/linux/l-cn-linuxglb/index.html?ca=drs- 如何获得当前系统的locale呢?包括windows和UNIX http://bbs.chinaunix.net/viewthread.php?tid=1752378 http://search.cpan.org/~sburke/Win32-Locale-0.04/Locale.pm use Win32:
2010-11-09 22:07:00 9045 2
原创 判断目录是否可写
下面是一段delphi代码(来自http://www.delphiarea.com/articles/how-to-find-if-a-directory-is-writable/),function IsDirectoryWritable(const Dir: String): Boolean;var TempFile: array[0..MAX_PATH] of Char;begin if GetTempFileName(PChar(Dir), 'DA', 0, TempFi
2010-11-09 22:07:00 2594 1
原创 调试dll和exe加载失败
如果启动程序时出现《应用程序正常初始化(0xc0000142)失败。请单击“确定”,终止应用程序》这种错误,可以先用depends.exe这个工具来看依赖没有问题。如果没有问题,可以用resourcehacker之类的工具看exe和dll的资源段的manifest信息,通过这个来看依赖的crt是否正确,特别要注意不同dll之间这个信息可能不一样(一个exe不能同时加载多个版本的crt)。如果还不能解决,只能通过调试器来分析了。通过devenv.exe 《程序路径》来启动程序,然后打开下面的文件,并在相应地方
2010-10-20 21:33:00 3424 1
转载 奇技淫巧之避免因宏带来的名字冲突
<br />转自:http://hi.baidu.com/solidmcp/blog/item/3e8fd789d4142ebd0f2444f2.html 。介绍的方法不错,可以解决很多宏冲突的问题。<br /> <br /> <br /><br />奇技淫巧之避免因宏带来的名字冲突<br /> <br />>> 退避三舍:<br />既成事实,不得不低头,你把max的名儿占了,那我就叫iMax;<br /> <br /><br />>> 刮骨疗伤:<br />中毒没问题,格老子效仿关云长刮骨疗伤。<br
2010-10-18 16:09:00 2099
原创 webkit中js调用SHBrowseForFolder时需要点击两次才能点中确定按钮的bug
html form里面的选择文件对话框只能得到文件的名称,拿不到文件的全路径,只能扩展js让其去调用通用对话框的函数,例如SHBrowseForFolder。写完代码后,发现需要点击两次才能点中确定按钮的bug,一开始以为是鼠标有问题,后来发现每次都是这样,这肯定是代码的问题了。一开始我以为是SHBrowseForFolder调用有问题,认为SHBrowseForFolder产生的对话框没有获得焦点,所以用各种方法来使得对话框获得焦点,用各种方法都发现没用。针对要点击两次的问题,我还试过模拟鼠标点击来试图解
2010-10-11 23:56:00 2438
原创 webkit中tooltip不显示的解决方法
<br />在WebKit/WebKit/win/WebView.cpp里面有如下一段代码:<br />void WebView::initializeToolTipWindow(){ if (!initCommonControls()) return; m_toolTipHwnd = CreateWindowEx(WS_EX_TRANSPARENT, TOOLTIPS_CLASS, 0, WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTI
2010-09-27 22:54:00 2738
原创 2010中国自由软件日活动同济大学分站讲座ppt
2010中国自由软件日活动同济大学分站日程 "自由软件日(SFD)"是全世界自由/开源软件(FOSS)的节日。我们希望借此活动能够向公众介绍在教育、政务、商业等所有领域使用高质量自由/开源软件的益处。在全球,非赢利组织----国际自由软件基金会(SFI)为SFD活动提供必要的合作和支持,而遍布全球的志愿者团队负责筹办当地的SFD活动来推动其社区的发展。同济大学分站的活动日程如下: 地点:同济大学嘉定校区电信学院 时间:2010年9月18日 13:00 ~ 17:40时间内容13:00 ~13:10开场白1
2010-09-19 23:18:00 1855
webkit介绍
2010-09-19
Android Open Project
2010-09-19
The Interoperability Between Dalvik and CAR
2010-09-19
Extend Webkit with CAR.ppt
2010-09-19
Dalvik VM——Research and Implement on Elastos.ppt
2010-04-17
可以在cygwin下面编译通过的cldc kvm 1.1
2009-09-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人