CocoaChina六年了,记我的这六年——六年汇总

CocoaChina六年了,我的六年呢。

2008年:

1、六年前,也就是08年年初,我在做什么呢,捣鼓AI。07年后半年学了《人工智能》有讲到什么产生式、谓词,只学到点理论,后面机器学习连理论都没入门,到是搜索策略理论不敢说精通吧,但至少代码实现了书上例子的八数码,后来帮网友用五种搜索策略实现了一下八数码,MFC实现的,http://download.csdn.net/detail/yjh4866/419788,http://download.csdn.net/detail/yjh4866/3362709。大学时写了好多俄罗斯方块,可是AI版的还没写过呢。一是不知道AI到底怎么实现,只是大概想到是把当前方块按四种角度分别从不同位置落到底;二是内存空间没管理好内存泄漏导致的一些奇怪的计算结果。代码写了好久终于能让电脑自己玩了,尽管玩的很差劲,至少剩下的工作就是改进评分机制就好了。http://download.csdn.net/detail/yjh4866/419824,http://download.csdn.net/detail/yjh4866/1232933。后来又实现了AI版的五子棋,记得让同学玩出好多评分机制不足导致的脑残走法。http://download.csdn.net/detail/yjh4866/1138536。

2、后来又学计算机图形学,终于明白很多SDK都提供画直线算法,为什么还要学直线生成算法了。也学会了直接用代码实现三维变换显示立方体及隐藏面,线性代数原来是用在这里的。

3、对《神经网络》比较有印象,代码上只是用感知机简单实现了个数字识别,什么海明网之类的只是学了点理论(现在已经忘光光了)。

4、暑假学C#,当然是写俄罗斯方块练习了(初学者就写俄罗斯方块吧,别瞅着简单,看你是否眼高手低的时候到了)。C#封装自定义控件比MFC要简单几万倍,后来封装了个俄罗斯方块的控件,弄个双人对战的要容易很多很多很多。

5、后半年进入导师公司BI项目组。做Silverlight,从WPF学起,Blend做渐变太容易了(跟MFC比),只做了一个月。

6、Lucene。十月份偶然的机会接手基于Lucene的搜索引擎。起初是基于网站的搜索引擎,有点像百度了。从起始地址抓取网页,然后取出文本用Lucene建索引并自动机识别出所有网址,拿着这些网址继续抓取网页取出文本建索引并识别出网址……,这就是网络蜘蛛。后来基于本地数据库做搜索引擎,SQL数据库,16核CPU服务器1亿多行的数据起初跑了个周末还没跑够10%,改进到14个小时左右跑完。

7、JS。用JS写了个俄罗斯方块。弄明白哪些代码是服务器执行,哪些是浏览器执行。http://download.csdn.net/detail/yjh4866/1138497


2009年:

1、用C#做类似于QQ的聊天软件,体会到三层架构的思想。网络层一定要单独做,网络层和界面层之间要插一层业务层,不要全揉在一起。自己做的太难看了,只好照着QQ2008抄了。分析了QQ2008年皮肤包,计划直接识别他的皮肤包,发现皮肤包里居然有脚本,不会写脚本解析器,只好修改皮肤包再识别了。http://download.csdn.net/detail/yjh4866/1366967。后来帮同学做了个唱歌比赛的评分系统,自然有客户端、服务器,http://download.csdn.net/detail/yjh4866/1637088。

2、用C#写了几个QQ游戏外挂,连连看,火拼俄罗斯之类。

3、图像处理。人像采集系统,连上相机,客户端从相机终端读数据然后分析处理。刚开始没看出另个库中包含人脸识别功能,所以自己又去学了图像处理各种算法,什么边缘检测之类,这个也是OCR及机器视觉的基础。JPG格式实在是没看懂,快速傅里叶变换什么的,只是把bmp文件格式看懂了。买了几本书,看明白了OCR的原理,这一点在12年用上了,自己简单实现了验证码识别并帮人约车(*_*,对不会外挂约车的是不是太不公平)。实现了人像采集系统的皮肤包功能、语言包功能,一套皮肤有好多图片,万一用户不小心把皮肤包中的图片删了怎么办?于是把皮肤包下的所有配置文件、图片文件打包成一个文件,用的时候解压出来,再后来直接解压到内存里使用,而且在一定程度上也保护了美工的工作啊,哈哈。后来分析腾讯个软件发现他就是这么做的。


2010年:

1、毕业论文。《基于密度的聚类算法研究》,主要是处理密度不均匀时的聚类。需要先用灰度阈值分割理论对密度进行划分,再用距离分段聚类,用代码简单实现了吧,没有过多的对聚类速度进行优化。灰度阈值分割理论,就是图像处理上的内容。

2、相册客户端。模仿Google的Picass做自己的相册,当时腾讯也有自己的相册QQ影像,做的没Picass漂亮,但体验上差不了太多,比QQ影像好多了,关于这点在搜狐面试时被人家笑话了,你M,好像我在骗你似的,你他M见过QQ影像那死样吗?从此再也没仰视过这些大公司,尽管我不曾进去过。之前设计过的皮肤包在这里又用上了。

3、WebQQ。当时WebQQ1.0刚出来,也学会抓包了,于是用MFC写了个基于WebQQ的客户端,还专门在博客上对WebQQ协议进行了解析。不过现在已经没用了,WebQQ早就升级了,当时的协议已经没用了。

4、公司网页游戏外挂。由于要挂多个帐户,还没太弄明白Cookie,于是频繁登录操作下线,一晚上登录下线一千多次,第二天被网站部同事发现了。后来做约车外挂才用保存Cookie的方式多帐号登录。

5、模仿FlipBoard、Kik的两个App。就此进入IOS开发。


2011年:

1、模仿Viber,推信11。我们总结了目前在使用的一套架构方案,ViewController像UITableViewController一样配上DataSource协议和delegate协议,都有一个UIEngine实现,这样就切断各VC之间的联系了,也切断各VC与数据库、网络层的联系。我们三个人一起开发,界面一个人,数据库一个人,网络一个人,而不是按界面分工自己处理自己的数据缓存和网络交互(我不赞成这样分工)。

2、版本大升级,神聊,加入群聊。IOS做了差不多一年才算是入门吧,有了自己的一套架构,而不是简单的MVC。


2012年:

1、驾校约车外挂。抓包分析接口比较简单,无非是模仿浏览器发数据而已;难点的就是后来必须进行验证码识别了,写了个简单的验证码识别算法。

2、整体软件。之前只负责界面部分,学了下数据库,网络层放弃ASIHTTPRequest改用自己基于NSURLConnection封装的HTTPConnection。


2013年:

1、继续App应用开发。

2、SDK开发。之前以为单例用在静态库开发上再好不过了,做SDK开发后就不这么看了。SDK开发跟应用开发差不多,单例只能作为特殊的类对待,不能让他穿插于各模块之间,滥用单例就是在破坏软件的封装性。

3、Unity3D。Unity3D基础版免费了,于是学习一下做了个简单的游戏。购买NGUI并学习。




2014年未来一年:

1、继续Unity3D简单游戏开发,没有合适的模型,只能拼凑游戏了。

2、学习Cocos2D-x,Box2D。



唉,总结了一下,前三年技术进步很快,后三年就在IOS应用开发上原地踏步,没像很多“高手”一像深入IOS,也没像少数高手一样深入一门高科技。

kevin会人脸识别,羡慕啊;zenny_chen会的太多,都知道他到底精通哪块。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
目录 1. 开始 . 4 1.1.1.1. 基本设置 基本设置 . 4 建立你的 建立你的 SwiftSwift 环境 . 5 理解 SwiftSwift 导入过程 导入过程 . 6 2. 互用性 互用性 . 7 2.1. 2.1. 与 Objective ObjectiveObjective Objective Objective-C API 交互 7 初始化 (Initialization)(Initialization) (Initialization) (Initialization) (Initialization) (Initialization)(Initialization)(Initialization)(Initialization) (Initialization) 7 访问属性 访问属性 (Accessing Properties)(Accessing Properties) (Accessing Properties) (Accessing Properties) (Accessing Properties)(Accessing Properties) (Accessing Properties)(Accessing Properties)(Accessing Properties)(Accessing Properties) (Accessing Properties)(Accessing Properties) (Accessing Properties) . 8 方法 (Working with Methods)(Working with Methods)(Working with Methods)(Working with Methods)(Working with Methods) (Working with Methods) (Working with Methods) (Working with Methods) (Working with Methods) (Working with Methods) (Working with Methods) (Working with Methods) . 9 id 兼容性 兼容性 (id Compatibility)(id Compatibility) (id Compatibility)(id Compatibility) (id Compatibility)(id Compatibility) (id Compatibility)(id Compatibility) (id Compatibility) (id Compatibility) (id Compatibility) 10 使用 nil (Working with nilWorking with nilWorking with nilWorking with nil Working with nil Working with nil Working with nil Working with nil ) . 11 扩展( Extensions Extensions Extensions Extensions ) . 12 闭包( Closures ClosuresClosures Closures ) . 13 比较对象( 比较对象( Object Comparison Object Comparison Object Comparison Object Comparison Object ComparisonObject ComparisonObject ComparisonObject ComparisonObject Comparison) 14 SwiftSwift 类型兼容性( 类型兼容性( 类型兼容性( Swift Type CompatibilitySwift Type Compatibility Swift Type Compatibility Swift Type CompatibilitySwift Type Compatibility Swift Type Compatibility Swift Type CompatibilitySwift Type Compatibility Swift Type Compatibility Swift Type Compatibility Swift Type Compatibility) . 14 Objective Objective Objective Objective-C选择器 选择器 (Selectors)(Selectors)(Selectors) (Selectors)(Selectors)(Selectors)(Selectors) 15 2.2. 2.2. 使用 Objective Objective Objective Objective-C特性编写 特性编写 SwiftSwift 类 16 继承 Objective ObjectiveObjective Objective Objective-C的类 16 采用协议 采用协议 . 17 编写构造器 和析编写构造器 和析编写构造器 和析编写构造器 和析 . 17 集成 Interface Builder Interface BuilderInterface Builder Interface BuilderInterface Builder Interface Builder Interface Builder Interface Builder Interface Builder . 18 指明属性 特指明属性 特指明属性 特 . 19 实现 Core Data Managed Object Subclasses Core Data Managed Object SubclassesCore Data Managed Object SubclassesCore Data Managed Object Subclasses Core Data Managed Object SubclassesCore Data Managed Object Subclasses Core Data Managed Object Subclasses Core Data Managed Object Subclasses Core Data Managed Object Subclasses Core Data Managed Object Subclasses Core Data Managed Object SubclassesCore Data Managed Object Subclasses Core Data Managed Object Subclasses Core Data Managed Object Subclasses Core Data Managed Object Subclasses Core Data Managed Object SubclassesCore Data Managed Object Subclasses 20 2.3. Cocoa2.3. Cocoa 2.3. Cocoa 2.3. Cocoa2.3. Cocoa2.3. Cocoa数据类型 数据类型 . 20 字符串 . 21 数字 . 22 类集合 . 22 FoundationFoundationFoundation Foundation FoundationFoundation Foundation数据类型 . 24 FoundationFoundationFoundation Foundation FoundationFoundation Foundation函数 . 25 Core Foundation Core FoundationCore FoundationCore Foundation Core FoundationCore Foundation Core Foundation Core FoundationCore Foundation Core Foundation 25 2.4. 2.4. 采用 Cocoa CocoaCocoaCocoa设计模式 设计模式 . 27 委托 . 27 延迟初始化 延迟初始化 . 28 错误报告 错误报告 . 28 键值观察 键值观察 . 29 TargetTarget TargetTarget -Action Action Action模式 29 类型匹配与统一规范 类型匹配与统一规范 类型匹配与统一规范 类型匹配与统一规范 . 29 Using Swift with Cocoa and Objective-C 完整中文版(CocoaChina 精校) 3 2.5. 2.5. 与 C 语言交互编程 语言交互编程 语言交互编程 语言交互编程 30 基本数据类型 基本数据类型 基本数据类型 . 30 枚举 . 31 指针 . 32 全局常量 全局常量 . 37 预处理指令 预处理指令 . 37 3.Mix and Match3.Mix and Match 3.Mix and Match 3.Mix and Match 3.Mix and Match3.Mix and Match 3.Mix and Match3.Mix and Match . 39 3.1. 3.1. 在同一工程中使用 在同一工程中使用 在同一工程中使用 在同一工程中使用 SwiftSwift Swift 和 Objective Objective Objective Objective-C . 39 Mix and Match Mix and Match Mix and Match Mix and Match Mix and Match Mix and Match Mix and Match Mix and Match 概述 . 39 在同一个 在同一个 App Target App Target App TargetApp TargetApp TargetApp Target 中进行代码导入 中进行代码导入 中进行代码导入 中进行代码导入 . 40 在同个 在同个 Framework Framework Framework Framework Framework Framework Framework 的 TargetTarget TargetTarget 中导入代码 中导入代码 中导入代码 . 43 将 Swift Swift Swift 导入 Objc Objc . 44 导入外部 导入外部 FramewoFramewoFramewo FramewoFramewoFramework 44 在 Objective Objective Objective Objective-C中使用 中使用 SwiftSwift Swift 45 Product ModuleProduct ModuleProduct ModuleProduct Module Product Module Product Module Product Module Product Module 模块命名 模块命名 . 47 问题解决提示 问题解决提示 问题解决提示 . 47 4. 迁移 . 48 4.1. 4.1. 将 Objective ObjectiveObjective Objective Objective-C代码迁至 代码迁至 代码迁至 SwiftSwift . 48 为你的 为你的 Objective Objective Objective Objective-C代码迁移做好准备 代码迁移做好准备 代码迁移做好准备 代码迁移做好准备 48 迁移过程 迁移过程 . 48 问题解决提示 问题解决提示 问题解决提示 . 50 Using Swift with Cocoa and Objective-C 完整中文版(CocoaChina 精校) 4 1. 开始 1.1.1.1.1.1.1.1.基本 设置 本篇译者: 本篇译者: CreolophusCreolophusCreolophusCreolophus Creolophus Creolophus (githubgithubgithub githubgithub主页 ),敬请勘误。 ),敬请勘误。 ),敬请勘误。 ),敬请勘误。 ),敬请勘误。 重要事项 这篇文章初步介绍了在开发中用到的 API 或技术。苹果公司提供这些信息来帮助您规划本文所说明的技术和接口以用于苹果的产品上。这些信息会改变,并且根据这篇文章所实现的软件应该在最新的操作系统并根据最新的文档测试。本文档的新版本,可能在未来通过技术和 API 的 seeds 版本来提供 Swift 被设计用来无缝兼容 Cocoa 和 Objective-C 。在 Swift 中,你可以使用 Objective-C 的 API(包括系统框架和你自定义的代码),你也可以在 Objective-C中 使用 Swift 的 API。这种兼容性使 Swift 变成了一个简单、方便并且强大的工具集成到你的 Cocoa 应用开发工作流程中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

脱离语言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值