使用xcode去开发makefile的project(Building Makefile Projects With Xcode)

2014年2月19日 18 条评论

最近的工作方向又发生了变化,暂时放下IOS的开发。不过业余时间还是会继续研究IOS和MAC的原生程序开发的。这次又走回以前的伤疤–视频。希望这次可以成功。以前在视频这块搞左好多年。但是产品没有出来,最终已失败告终。这次一定要把产品搞出来。要不然以后都不再接触视频这一块。

言归正传,由于需要搞视频这一块,又需要重回到C/C++的大家庭。又需要解决开发环境的问题。经过多放面的考察和选择,暂定选择了xcode为开发环境,这2-3年都是使用xcode作为开发环境。一是熟悉。而且xcode有插件配置成VI的编辑模式。而且在mac属于POSIX系统。mac与linux的跨平台运行应该问题不大。可以在mac上进行测试与调试。最后再在linux测试。应该不会有太大的问题。不需要在开发的时候老是开着虚拟机。

使用xcode会存在一个问题,如何与编译现有的开源软件或者将来编写的程序进行跨平台编译。不过xcode还是比较强大的。支持makefile编译。具体如何做,请看官方说明。说明比较清晰。不过我还是来一篇图文说明,并把我遇到的问题给大家说明一下。省得大家走弯路。使用的是xcode 5。并使用一个流媒体的的开源软件Live555作为说明(live555这个软件下载解压后需要运行./genMakefiles macosx生成makefile)。

1、新建项目,选择Command Line Tool。(其实选择其他都可以,不过千万别选择External build system ,因为如果选择了这个,将会失去智能提示与定义跳转)。

Screen Shot 2014-02-18 at 5.24.04 PM

Screen Shot 2014-02-19 at 11.21.37 AM

阅读全文…

分类: IT, 编程 标签: , , , ,

2013 AirPort Time Capsule备份大小设置及实用感受。

2013年11月28日 3 条评论

买左2013版本的AirPort Time Capsule有3个月时间了,最近这几天才在上边设置Time Machine备份,Time Machine的备份是非常霸道的,没有设置最大备份空间的。会把整个分区都占满的。在Time Capsule也不例外,移动硬盘可以专门划分一个分区给Time Machine,这样可以有效控制备份的大小。不过Time Capsule是不能划分分区的,Time Machine会慢慢把整个空间都填满。不过Time Machine是通过在Time Capsule上生成一个sparsebundle的磁盘影像文件进行备份的。可以通过这个sparsebundle文件进行做手脚,从而达到控制备份的大少。
在网络上找到好几种方法,不过发觉都不行。
1、修改Time Machine的配置文件,以控制大小。(不过这种方法在10.7以后的系统已经不支持了。)
2、自己生成sparsebundle这个文件。网络教授的方法是通过网络的mac地址生成sparsebundle文件,不过现在Time Machine生成的文件已经不带mac地址了。
3、Time Machine自动生成文件,然后删除分区,重新分区。或者重新调整分区大小。
这种方法会出现下边的提示
自上次备份后,备份磁盘““daozhao”的“AirPort 基站””的标识已更改。

该磁盘可能已被更换或抹掉,或者有人可能正尝试诱骗您的电脑备份到错误的磁盘。

阅读全文…

分类: IT, 生活 标签:

Puerto Galera打真枪

2013年8月12日 1 条评论

PG的活动除左潜水等水上活动,还有一个比较受人欢迎的项目的打真枪,应该讲比较受国人欢迎,因为去到那里打枪基本上都是讲中文的。这个可能是在国内没有这些地方玩把。这是我第一次打真枪。之前都未打过,最多是军训的时候打过气枪。现在是真枪实弹。这里玩抢基本上是一打就是一合子弹,忘记多少钱了,下边有价目表。我们买了一盒子弹和租了一把枪。两个人打,不过这里的规定有点怪,如果你多一个人打就要在租枪的费用上加多一点费用,就算你买两盒子弹两个人打都要在租枪费上加钱。开始觉得是霸皇条款,不过后来觉得也是合理的,因为他会有指导员服务我们两个,各自讲解打枪的要领和服务我们两个轮流打。

IMG_2056

阅读全文…

分类: 旅游 标签: , ,

Puerto Galera美吃之极度推荐之不推荐

2013年6月10日 没有评论

这篇文章为什么名字叫“极度推荐之不推荐”,因为这里两间店都是网上极度推荐的。但是我尝试后并不推荐。

第一间、海明威,巨多网友推荐。所有选择了2月14日这一天前往。点左个情人节特别套餐。

海明威

情人节套餐

一款上来的原来是生牛肉,不过我不感吃,叫店家是否可以加工下,不过店家话不会加工这个,这个是生吃的,叫我放心吃,不会有问题,是澳洲新鲜空运过来的牛肉,不会有问题的。由于以前在其他地方吃过这些,肠胃不太好出问题了。所有这次不感吃,唯有晒左。

阅读全文…

Puerto Galera美味的餐厅–Tamarind

2013年6月10日 没有评论

pg这个地方的美吃选择比较多,而且比起其他海岛好多了。价格适中。这里需要推荐几间餐厅。第一间推荐的,也是我觉得最好的一间餐厅–Tamarind。这间餐厅其实都比较有名气,在其他游记都好多人推荐,这间比较出名的是碳烧排骨。

下边是靠近海滩的门口。在另外一边的门口可以看到有个碳炉在烧排骨。好像一份排骨大概是80元RMB左右。具体忘记了,大家可以看看下边的账单图片。感觉在广州在市场买排骨都要这个价钱。如果你不是太大吃的话,两个人叫一份烧排骨加一些其他小吃估计都够饱了,叫烧排骨好像还会送一份细的沙拉和面包。不过我见到些鬼佬是一个人一份烧排骨,不过他们非常不会吃,只会吃表面的一些肉,不会像我那样,把整个排骨拆架。

 

IMG_2196 菜单 菜单  IMG_0331

阅读全文…

ios5与ios6的屏幕旋转的差异

2013年5月3日 没有评论

ios5和6在屏幕的选择方面做了不少的修改。主要是取消了几个api的函数。
– didAnimateFirstHalfOfRotationToInterfaceOrientation: Deprecated in iOS 5.0
– willAnimateFirstHalfOfRotationToInterfaceOrientation:duration: Deprecated in iOS 5.0
– willAnimateSecondHalfOfRotationFromInterfaceOrientation:duration: Deprecated in iOS 5.0

– shouldAutorotateToInterfaceOrientation: Deprecated in iOS 6.0
剩余:
– willRotateToInterfaceOrientation:duration:
– willAnimateRotationToInterfaceOrientation:duration:
– didRotateFromInterfaceOrientation:
剩余这几个函数。平时的项目一般用系统旋转后自动对齐功能,大部分都可以满足需求。这次修改一个项目,tableview在旋转后cell需要加载不同的xib文件,于是重载didRotateFromInterfaceOrientation,不过发现系统并没有调用这个函数。想了一下,估计是tableviewController并不是rootviewControlller。而且是放在其他第三方的ViewController内,估计是第三方ViewController没有使用addChildViewController把tableViewController放入其子controller。查看了一下代码。发现估计是正确的。但是不太想修改这个第三方的ViewController。因为嵌套了2个第三方的ViewController,要修改起来会比较麻烦。
想了想使用注册旋转事件来处理这个需求。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didRotate:) 
name:@"UIDeviceOrientationDidChangeNotification" object:nil];
 
- (void)didRotate:(NSNotification *)notification
{
 
NSLog(@"didRotate:。---interFaceOrientation:%d,DeviceOrientation:%d",
        self.interfaceOrientation,[[UIDevice currentDevice] orientation]);
//[self.tableView reloadData];
}

阅读全文…

分类: IT, 编程 标签: , , , , ,

Puerto Galera住宿

2013年4月18日 没有评论

PG的住宿是在网上找好的。以前去旅游有时候会去到当地才找住宿,这样可以看到住宿环境好不好,才决定住哪里。不过发现这种方法有很大的缺点,就是找住宿会耗费比较多时间,而且托着行李找住宿实在太辛苦了。而且遇到旺季,经常会满房。所以现在我都是在网上找好住宿的房间。这次一共住宿了两间resort。一间普通的,一间豪华的。本来PG的resort大多都自带潜店的。不过这次选择的住宿都没有带潜店,因为选择的时候都没有留意他是否带潜店。不过不带也没有问题。因为走几步就有潜店了。

第一间住宿,比较平民的。但是我感觉比较好。有好大的花园,就在海边,而且分配给我们的房间还可以看到“一线”海景。

Seashore Beach Resort

Seashore Beach Resort

Seashore Beach Resort Seashore Beach Resort Seashore Beach Resort 我住这间 Seashore Beach Resort

房间内部忘记照相片。房间内部比较干净,还有雪柜添。总体非常满意。

 

第二间是比较豪华的–poitofino。这间酒店有星级酒店的feel。不过房间内部有一股味道,非常讨厌。选择的时候已经觉得这酒店会否有一股味道,去到果然有。因为酒店房间的装饰使用了很多藤之类的东西,比较容易受潮。因为这味道所以不太喜欢这里。

poitofino

酒店的外部比较漂亮,坐系露天的bar。欣赏海景,会非常写意。

poitofino

poitofino poitofino poitofino

我预订的房间是包早餐的,早餐有几个固定的套餐选择。出品就不过不失啦。不过在这个露天bar吃早餐就真是一大享受了。

poitofino

这里洗手间的花洒非常差,是固定在顶部,而且调水温比较麻烦。加上水压不稳定。这里虽然有厨房,不过我们并没有使用。因为煤气炉连接的管老化得厉害,不敢用。

poitofino poitofino poitofino poitofino

如果再次在这两间resort在次选择,我只会选择seashore,因为poitofino感觉麻麻,只有一个豪字。加上在房间的时间比较少。就算豪也享受不了。还有泳池也比较少,只能泡泡水。

海底图片@Puerto Galera Philippines

2013年4月4日 没有评论

图片就只有图片,因为好多生物我都不清楚他们叫什么名字。所以只有图片没有说明。

小丑鱼

阅读全文…

潜店@Puerto Galera Philippines

2013年4月3日 没有评论

这次在pg上的潜水,一共参加了两间潜店的fun dive。分别是Tina‘s reef diversblue:ribbon Dive resort。讲一讲选择这两间潜店的原因吧,第一间tian潜店,在sabang beach的东面最末端。为什么找到这间店,因为一下船,就有一个兜生意的人带我们去酒店,而且他看见我带着潜水电脑,就知道我来这里潜水的,就不停地推介我们去这间tina潜店。不过我都没有理他,到酒店后,我们放下行李,就出外吃饭。吃完饭就去了他介绍的潜店,问了一问价钱,1000p一潜,包装备。虽然今天他们已经完成了所有潜水计划了。不过如果我潜的话还是会单独带我去潜的。潜水引发作得特别犀利。也没有多想就选择了他了。在这里前后潜了三天,都没有再见过兜生意那个人。这间潜店比较小型,装备比较少,而且有新有旧的、不是统一一个品牌,不同牌子的设备都有些。杂牌军感。后来发觉我用那个二级头都不知道是什么牌子的,好像没有牌子的。最后一潜,发觉二级头有小小漏气。不过他算比较便宜了,因为来pg之前就查过这里的价格大概30-40元美金一潜(带装备)。所有1000p算是比较便宜了。第一天第一潜就得我和dm下水。不过第二第三天和他们的排期出海,发觉他们都几好生意的。好多人选择这里。一条快艇基本坐满,有时候快艇还要分两批出发。不过他们一个dm最多也是带4个人。这里上水后冲身的水的水流好细。还有洗bcd的水池的水除了一大早是清切的,其余时间都是黑黑的。

Tina‘s reef divers

Tina's Reef Divers

Tina's Reef Divers Tina's Reef Divers Tina's Reef Divers Tina's Reef Divers船

Tina's Reef的水池

这间店还有一个好大的缺点是,他们的快艇上落那条楼梯是不锈钢做的,非常滑,梯级的管比较细,上落不好用力,不方便,其中一潜我就滑倒过。撞到脚指。

阅读全文…

准备研究node.js

2013年4月3日 没有评论

node.js—使用javascript开发后台程序,这东西一直对它都有误解,我一路都以为它是给前端的朋友玩玩后台的玩具。

直到早几天看到一个报道《LinkedIn从Rails迁移到Node:服务器减少27台,速度提升了20倍》(注:由30台减少到3台),才开始去认真了解node.js这个新玩意。发觉这个玩具非常强大。

对node.js的误解可能是由于一些对这个node.js的介绍都是介绍它是一个使用javascript的开发后台的解析器。其实node.js是一个基于事件驱动开发的服务器组件,,javascript只不过是这个组件的粘合剂。node.js是一种开发模式,是一种编程思想。其实它不一定选择javascript作为开发语言,可以选择lua,或者一种全新的语言。据说作者初期做的时候选择过使用lua的,不过速度不是很理想。选择javascript主要是因为google的javascript V8引擎速度超快,再加上javascript的闭包特性比较适合这种事件驱动开发模式和面向过程的语言。

现在讲讲我为什么对node.js有一种强烈的愿望去研究它。

1、node.js开发的产品吞吐量大,符合现在一些高并发的需求。而且比较方便扩展到分布式的应用。

2、我比较喜欢这种事件驱动模型的编程方式,以前搞tcp通信程序的时候我都是选择这种事件驱动方式去处理。虽然这种异步编程的复杂度比同步编程方式复杂些,但是这种复杂度比起多线程同步的处理还是方便很多。出错机会小很多,特别死锁这些情况很难在开发的时候发现的问题。

3、虽然我个人很喜欢c语言,但是使用c语言开发成本实在太贵了。加上有时候开发一些应用服务使用c语言也不合适。我觉得c比较适合在底层通信和网络通信部分用c是一个好选择,其它开发还是别用c比较好。node.js就是使用c来开发最底层的东西,例如:tcp通信通信。其余用脚本来处理。这样可以大大降低开发成本,需要速度快的地方可以用c/c++来来处理。既有开发速度又有运行速度。

4、我希望在我一个项目中编写一个爬虫服务。使用node.js可以方便地嵌入jquery。jquery的选择器对于爬虫服务抽取数据非常方便。不过目前发现node.js的html分析器都是直接用javascript编写的。可能性能不是特别好。希望可以把webkit的dom解析器嵌入node.js就强了,还可以适应一些不太标准的网页,例如一些闭合标签不完整的网页。

5、研究node.js的源码,希望将来可以参照它,把V8 javascript引擎引入在IOS开发中,提高一些ios程序的灵活性。虽然现在一些游戏框架使用lua来实现。不过我感觉用javascript实现会比Lua好。

6、还有一点,node.js比较简洁,轻量级结构。核心只包含最基本的库。其他通过插件扩充。这样学习成本比较底,同时拥有超强的扩充能力。

这里提一提Erlang,这个语言同样是一个面向高并发,和面向过程的语言。去年这个时候也花费了一些时间学习了。不过现在已经忘记七七八八了,只是记得它的编程思想,方式,方法。语法那些都忘记了。加上Erlang这个语言加上OTP的组件过于庞大。需要化好多时间才可以深入。不过它比起node.js的确强很多。但是node.js简单得多了。非常符合make it sample的原则。

分类: 编程 标签: , , ,