`
tonynju
  • 浏览: 76421 次
  • 性别: Icon_minigender_1
  • 来自: 浙江嘉善
社区版块
存档分类
最新评论
文章列表
使用protocol buffer传输数据,相比json,数据量大大降低。不过objc的protocol buffer实现还是有很多小缺陷的,比较令人郁闷的是没有property的set方法。   为了修改一些entity的属性,使用了category自己写了一些set方法,结果导致了很多序列化的问题。发现问题的根源在于entity build以后会记录serizlization size,而自己的实现的set方法会导致serizlization size出错。最终找到了一个修改protoc objc gen工具的模板的方式。详情见:https://github.com/tonycn/pro ...
  使用objective c的runtime特性动态增加字段。 在category中特别有用,可以实现在不增加变量的情况下达到成员变量类似的效果。 示例: - (BOOL)isRobot {     NSNumber *boolNum = objc_getAssociatedObject(self, kPlayerIsRobotKey);   if (boolNum == nil) {     return NO;   } else {     return [boolNum boolValue];   } }   - (void)setIsRobot:(BO ...
一些IOS开发的心得:   1) [Multiple Threads] IOS多线程注意, 所有的UI操作都必须在主线程上: Any code that will update the UI should be done on the main thread. Data loading should typically be done in some background thread.  示例: [self performSelectorOnMainThread:@selector(updateThumbnail:) withObject:tmpImg waitUntilDone:f ...
初步学习IOS(IPad/IPhone)开发,这两天在界面布局上花了很多时间。 IOS的界面方法有两种方式: 1 使用Interface Builder创建界面,然后和相应的controller相关联 2 通过code手动的添加UI组件和布局   优缺点: 方法1可以创建界面快捷而简单,也会比较易于维护。缺点就是动态性不够,据说性能上也会差些(由于需要读取XIB文件)。 方法2的优点就是比较灵活和可控。缺点正好是方法1的优点的方面。   个人对这两种方式的体会: *使用方法1来划分组件,每个功能都有自己独立的View&Controller。 *使用方法1做整体布局 ...
目前J2EE中使用的web serivce的主流技术有JAX-WS2.0, CXF, AXIS2等,这些技术都能作为WSDL1.1, 1,2服务器或者客户端。JAX-WS2.0, CXF, AXIS2这些技术各有优缺点, 相互之间也会有一些类库冲突,一般在一个公司内部都会采用欧一种技术作为web service的实现。我们用的是jboss 的jax-ws实现。   最近在项目中遇到了一个和billing system集成的任务, 这个系统发布得有6,7年了,用软件开发的术语来描述就是和Legacy System集成。从客户那边拿到了一个使用rpc/encoding作为binding styl ...
在使用perforce的时候workspace需要绑定一个hostname,mac的hostname貌似默认会跟着网络接入点而变化。所以在同一mac osX的电脑,会因为网络切换了而使用不了原有的workspace,除非去perforce去修改host。 先不论mac为何要去动态修改hostname,有可能是为了防止网络中hostname重名吧。 为了解决这个问题,这个命令可以使得hostname静态化: sudo scutil --set HostName {custom_hostname} 解决完这个问题以后,又遇到了一个新问题,突然连接不了公司网络了。。。 解决方法:把hostname ...
今天在路上,一人骑车路过朝我喊了两声“小心,扒手” 把包拿下来一看,发现包的拉链都开着 刚想说声谢谢,那人已经过去了,谢谢了!心里暖暖的。 ps:不过包的拉链可能是自己打开的,当时找个东西忘关了,不管如何,感谢那位好心人
示例: var f = function (){ //console.log(this.name); alert(this.name) } var a = { fn: f, name: 'A' } a.fn() var b = { fn: f, name: 'B' } b.fn() b.fn.call(a); 那个对象调用了函数,函数中的this就是那个对象 在extjs中scope配置就是来源于此 代码2: MyClass = function(){ } MyClass.protot ...
Rectangle类的定义以及子类Square的定义 var Rectangle = function(config){ //console.log( this) this.width = config.width; this.height = config.height; //console.log( this) } Rectangle.prototype = { name: '', getArea: function(){ return this.width * this.heig ...
试用了一下palm的webos,使用web的开发方式开发手机应用,开发方式的创新. 对于熟悉web开发的我来说,手机开发变得简单快速了不少. 在ubuntu下安装了virtualbox,webos sdk,eclipse 按照官方的document写了一个hello world html+js开发了一个手机程序,太牛了 接下去一段时间准备好好学习下,可惜只能使用模拟器...
周末把自己的rails开发环境迁移到了ubuntu下 ubuntu9.0.4启动速度果然很快,估计在15s左右全部搞定 安装ruby,rails等等,安装的过程还是遇到不少问题,不是很便捷,不过一一化解 linux的桌面效果永远是个问题,文字,边框都显得过于粗糙,不过对于开发来说影响不到 linux安装的分区小记: /     5g /home 2g /usr  4g /var  3g swap  1g 用下来发现/usr的空间太小,/home将就可以了 准备扩容一下,把/usr扩大到6g左右
去一家做敏捷开发的公司面试,公司给人的感觉很好,环境很温馨. 出的上机笔试题目主要是以基础算法为主,还算简单: 1 取三个数的最大值 2 字符串中只含有"("和")",检查是否成对 3 一串股票的指数,计算何时入手,何时出手赢利最大 4 在数组中找到一个点k,A[k] >= A[i] when k>i,A[k] <= A[i] when k<i 后两题可能会有性能上的要求,回头再思考一番 暂时就等复试通知了,很喜欢注重思维的公司,加油了!
去一个外资公司面试了一回,第一次用mac book,有点不适应,连按键都不一样. 第一面 ruby的基础问题没什么问题. 第二面 问了我一些rails 的问题 q1: rails中一个请求改变了一个全局变量,之后的请求会怎么样 answer: 没头绪 q2: java 和 ruby中的hash实现 answer: 但是没打出来,现在想想可能是hash中key的值是对象的hashcode这个答案吧,不知道解决碰撞是怎么办的,使用了链表? q3: Array和linkedList的区别 Answer: 简单,略 q4: 树的遍历 Answer:  深度遍历(递归) 广度遍历(使用队列存储一层的 ...
记录一下自己使用的一些工具或者命令: javascript调试器: firebug, http查看器: firefox下live http headers fiddle可以在ie和ff下同事使用 linux的模拟器: portable_ubuntu,感觉不错 编辑器: emedit, notepad++
做了两年的web开发,web端的技术几乎都有涉猎,理解了各种技术之间的关系和运用场景. 技术上perl,java,javascript是主要运用的语言,linux,mysql,apache httpd,tomcat也有充分的了解. 自认为技术上的优势是在于技术全面,劣势也就是缺乏一种优势的专业特长. 经过了这段时间的思考和过渡期,也为自己定下来一种发展方向. 1 技术学习和算法修行的同步:   开发技术可谓是博大精深,博到倾尽一生也无法触到边际. 对于现在掌握的技术和个人开发习惯和能力倾向.学习ruby,rails非常适合自己的发展,不想继续在j2ee的深海中浮沉,宁划一叶方舟飘荡于山川之间   ...
Global site tag (gtag.js) - Google Analytics