积累日常生活的点滴,开发过程的心得。

将静态库转换为动态库dylib

比如我要将libGoogleAdmobAds.a转换为相应的dylib
首先要将fat格式的静态库转换为i386的瘦库(Thin library)
http://stackoverflow.com/questions/5352113/how-do-i-turn-a-fat-library-i...

lipo libx.a -thin armv6 -output libx-armv6.a
lipo libx.a -thin armv7 -output libx-armv7.a

然后,执行下面的命令
mkdir obj
cd obj
ar x ../libGoogleAdmobAds-i386.a
cc="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc"

DLL中使用GDI+的一个问题

发现一个问题,在DLL中使用GDI+的时候,需要每次都重新初始化。
http://www.myexception.cn/vc-mfc/145377.html

IOS中静态连接Objective-C的库

首先要编写下面的dependency ,
function IsGADAdSizeValid(size:GADAdSize):Boolean;
cdecl;external libadmob dependency 'MessageUI', 'AudioToolbox', 'StoreKit', 'SystemConfiguration', 'AdSupport';

然后将Frameworks中对应的library重新命名为libXXXX.a放到C:\Program Files (x86)\Embarcadero\RAD Studio\11.0\lib\iosDevice\release目录下。

有些库需要添加-ObjC到, Options Passed to linker.

或者完全使用ld 参数来实现
-ObjC -framework MessageUI -framework AudioToolbox -framework StoreKit -framework AdSupport -framework SystemConfiguration

发现gmail的web界面越来越难用了

google的产品用户体验越来越差。跟微软有一拼了,天天折腾它的破界面,越改越难用。

买风筝的一些窍门

N年以前挺爱买风筝的,最近又想玩风筝了,去尾货逛了逛,看了看,发现质量都不怎么样,用塑料布做的。

对于像我这种瞎玩的人买风筝,注意几点。
1.要买专业的200以上线,专业线类似鱼线,不会缠在一起。
2.风筝的重心很重要,为了飞得稳,最好选有长尾巴的风筝,翅膀不要多,最好不要选蜻蜓,这种有两对翅膀。
3.最好是用纸做的风筝,不要塑料的,轻,好飞。
4.买的线轴要直径大,风大的时候好控制。
5.别买太大的风筝,不容易飞起来,风大的时候不好控制。

SSE2指令优化心得

SSE2可以在一个指令周期完成最多4个指令周期的任务,最理想的情况是比C代码快4倍,但是一般达不到的
因为是处理对象是128位数据,一般1个Int是32位,4倍。

一个教程
http://blog.xuite.net/jiing.deng/jiing/253910

VC的SSE指令帮助
http://msdn.microsoft.com/zh-cn/library/vstudio/84t4h8ys.aspx

一个SIMD库,用SSE,SSE2模拟实现了很多SSE3以上的指令
http://sourceforge.net/projects/sseplus

加载操作
为了将128位数据放到寄存器,我们需要使用_mm_load_si128来加载,注意要加载的数据必须是16个字节对齐的。

_mm_load_si128((__m128i*)coeff);

运算完结果,输出结果的时候,要调用
_mm_store_si128

对齐内存的分配和释放指令指令(Windows)
//16个字节对齐
_aligned_malloc( sizeof(type)*(len), 16 )
_aligned_free ( ptr )

将条件语句转换为SIMD指令,比如
iDst = (iSrc < 0 ? -1: 1);

Services3.x中用2 legged oauth实现key auth

Services2.x的时候有一个Key Auth,到3.x的时候整个改成了Oauth,标准的Oauth是3 legged,但是中间需要一个Callback认证的过程,对用户不友好,很多时候我们其实想给匿名用户一个最低的权限的认证,这可以通过Key2 legged auth来实现简化版的认证。这里有一个教程写的很好http://drupal.org/node/1827698

ShareKit中禁用不使用的Service

需要编辑SHKSharers.plist文件,删除不使用的Service关键字。
另外注意,ShareKit默认只支持IOS5以上,为了支持IOS4.3,我们还需要处理点击更多按钮窗体的取消按钮,否则会报错。

同步内容