就像开发MFC 框架下的 windows应用程序 必须学会基于单文档的应用程序开发一样 , 学习Iphone应用程序的开发,对window-based-application的掌握也是最基础.最必要的.
通知Xcode的菜单向导很快就是得到一个最基本的window-based-application的框架.通过简单的build就可以在模拟环境中运行了.
向导为我们做了什么事情?,窗口是怎么来,又是怎么去的?
1. 有C相关语言开发经验的朋友都知道,所有程序运行都是从 main 程序开始的.于是找到了自动生成的main.m源代码
#import
int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil); //核心函数
[pool release];
return retVal;
}
2. UIApplicationMain 到底为我们做了什么事情?
2.1 为我们创建了UIApplication的实例来展现工程师设计的界面.
2.2 首先人他会查看Info.plist 这个文档包含了程序需要初始化的一些元素比如,icon,名称,和指定主界面的nib文件等等,例如:
NSMainNibFile => MainWindow
3. 主界面nib页面又给我们指定了什么东西呢?
Continued…
Posted in MAC, iphone, 未分类.
By shanfeng
– 2010年10月29日
Memcached在很多时候都是作为数据库前端cache使用的,大大降低数据库压力,使系统执行效率提升.
memcached虽然称为“分布式”缓存服务器,但服务器端并没有“分布式”功能,memcached的分布式,则是完全由客户端程序库实现的.
客户端实现分布是memcached分布式的一个特点.这个特点提供了开发者,最大的自由度,但也容易导致问题的的发生.
以Php::Memcache为例子:
Continued…
Posted in linux, memcached.
Tagged with memcached, php.
By shanfeng
– 2010年10月27日
很不幸机器最近1周一台跑了3年多的机器挂了两次.为了过好5/1决定好好检查一下情况,不幸的是到目前为止还是没有确认最终的因素.
1.检查案发时间:通过cacti的记录,发现机器发生不幸发生在0点到2点之间.这个时间段是后台定时任务运行的高发期.
2.判断一:夜间机器后台任务太过集中,机器load太高,机器年久老化导致机器不堪重负
3.措施: 排查所有crontab中的任务,注释了其中有可以有计算压力太大的任务.把nagios的load报警设到5以下.
4.结果: 不幸在第二次发生.
5.查询日志: 发现在案发时间的日志中记录有关 oom-killer (out of memory)的记录.难道是这个做怪?有关oom请移步http://www.dbanotes.net/database/linux_outofmemory_oom_killer.html. 看了一下本机的内存.发现没有swap分区(当年装机的同事为了提高工作效率) . 再次观察cacti中的内存趋势.内存第天基本没有free. 细看一下crotab中的任务.发现每天2点左右确实有一个吃内存的awstats有跑着.
6.措施: 添加swap别让oom-killer 工作了.
7.添加SWAP:
Continued…
Posted in linux, 技术.
Tagged with awstats, cacti, crontab, nagios, swap.
By shanfeng
– 2010年04月28日
技术经理 若干
职责:
带领3-10人技术团队,开发、完善鲜果网及公司旗下其它产品线。
要求:
1、本科或以上学历,三年以上互联网产品开发经验、一年以上技术团队管理经验。
2、有极强的执行能力,即使最艰难的目标也能带领团队完美实现。
3、对互联网产品的系统架构设计有较深造诣;算法等基本功扎实,编码习惯和文档习惯良好。
4、熟悉PHP+Mysql编程、XHTML、Javascript、CSS,至少了解一种JS库;熟悉数据库设计,熟悉Apache配置,长期使用一种或多种Unix/Linux系统。
5、热爱技术,有创业激情,能承受巨大的工作压力,有超强的自我驱动能力。
6、有大型网站开发经验着优先;参与过开源项目者优先;有个人的技术Blog者优先。
Continued…
Posted in 未分类.
By shanfeng
– 2010年02月22日
时间:2010年3月3日星期三,19:30~21:30
地点:奇遇花园咖啡馆(问路电话010-88320741)
地址:西直门北展北街9号华远企业号(华远地产)D座一层(地图)
详情:http://club.blogbeta.com/149.html
好像上次的主题演讲ppt(amazon相关的)没有放上去。
Posted in 活动.
Tagged with 活动.
By shanfeng
– 2010年02月3日
关于mysql中的列类型如何定义,是一个让初学者让人头痛的问题。列类型的恰当定义是一个数据库高效存储的重要保证,其中字符串类型的定义是最重要也是相对较难的。很不幸到至今我才清楚char,varchar的真正定义方式 。
原因有二.
1.没有亲自动手去试错,文档上说的怎么样,就天真的认为就是那样
2.是看过官方源文档,但没有查看官方原版英文文档
咱们通过对比来加深记忆
1.mysq中文文档http://dev.mysql.com/doc/refman/5.1/zh/column-types.html#storage-requirements
2. mysql英文文档http://dev.mysql.com/doc/refman/5.1-maria/en/storage-requirements.html
Continued…
Posted in mysql.
Tagged with mysql.
By shanfeng
– 2010年01月30日
转载自:
1. http://www.sysadmin.md/most-useful-snmp-oids.html
2. http://blog.chinaunix.net/u2/70049/showart_1136607.html
CPU
Percentages of user CPU time (ssCpuUser)
.1.3.6.1.4.1.2021.11.9
Percentages of system CPU time (ssCpuSystem)
.1.3.6.1.4.1.2021.11.10
Percentages of idle CPU time (ssCpuIdle)
.1.3.6.1.4.1.2021.11.11
Load
1 minute Load (laLoad.1)
.1.3.6.1.4.1.2021.10.1.3.1
5 minute Load (laLoad.2)
.1.3.6.1.4.1.2021.10.1.3.2
15 minute Load (laLoad.3)
.1.3.6.1.4.1.2021.10.1.3.3
Continued…
Posted in linux, 技术.
Tagged with linux, snmp.
By shanfeng
– 2010年01月21日
看技术文档的时候很多作者的警告明知很重要,但经常被我们当作耳边风。不是我们有意把它们忘记,只是很多事情只是经历过之后才能铭记在心。
============================================
APC will probably be 20-30% faster, but if you are writing to it frequently it can cause problems. The APC cache is best for things that change very rarely. And by very rarely I mean days, not hours or minutes.
Because of the way APC does an anonymous file-backed mmap where I unlink the file at startup to get process-death protection, it isn’t easy to get at the cache from a separate standalone command line script. That can be solved by mmap’ing slightly differently, but in the default config your approach won’t work.
-Rasmus
==============================================
apc不适合用于缓存经常改动的内容。如果你的代码经常改动,最好先禁用cache.或者修改后清空一下缓存。
Posted in Web开发, linux, php.
Tagged with apc, php.
By shanfeng
– 2010年01月5日
##摘自mysql的性能调优与架构设计##(备忘)
1.myIsam存储引擎索引键长度的总和不能超过1000字节
2.BLOB和TEXT列只能创建前缘索引
3.Mysql目前不支持函数索引
4.使用不等于(!=或者<>)的时候,Mysql无法使用 索引
5.过滤字段如果使用 函数运算(如abs(column))后,mysql无法使用索引
6.join语句中join条件字段类型不一致时,mysql无法使用索引
7.使用like操作的时候,如果条件以通配符开始(”%abc…”)时,mysql无法使用索引
8.使用非等值查询的时候,mysql无法使用hash索引
Posted in mysql.
Tagged with mysql.
By shanfeng
– 2009年12月10日
lsof的参数很多,不过搞来搞去无非是根据什么条件找出被进程打开的文件句柄。条件有根据文件名,文件夹,进程名,端口号,gid,fd等,太丰富了。当你用到的时候再查手册也来得及。
本人用这个解决的最头痛的问题是:一次由于磁盘空间占用较高了,于随手删除了几个大文件,然后用df查看文件系统使用情况,发现一直没有变。搞了半天找不出个所以然来,了解这个命令之后查询了一下这个系统中所有被打开的文件,发现原来那几个大文件被某个程序使用着呢。关闭那个进程后df结果正常。
Posted in linux, tools.
By shanfeng
– 2009年11月4日
最近评论