时隔三年的回归
博客已经有快三年没有更新过了,这三年是我找到第一份工作,到成为一个工作两年的职场人转变的三年,也是我最为放飞自我的三年从今往后,希望自己能一直坚持下去,把这份坚持作为送给未来自己最好的礼物
小谈设计模式
说起设计模式,要回溯到本科二年级的时候,刘鹏远老师在讲软件设计导论的时候,曾提到的GOF的23种设计模式,从那时起,心中便有了设计模式这个概念,不过那个时候写过最大的工程,也无非是个通讯录,所以不以为然,后来在用java做系统开发,考软件设计师证书的时候才算是,有了一个粗略的认识,不过深度也就停留在看过一本程杰的名为《大话设计模式》的书,后来研究生阶段在设计系统,实现功能的时候或多或少的会受这些思想的影响,也越发觉得前辈们的伟大。前两天,在同学那又再次看到了这本《大话设计模式》,于是借来重读,似乎对设计模式有了一些新的认识和理解。如果说在开发中各门语言是武学套路的话,那设计模式,计算机系统,语言核心这三者就是内功心法。设计模式的提出,我的理解就是一个字——懒,人类不会像计算机那样重复的做一件事,因为这会使我们感到疲惫,所以我们想方设法的将开发变得尽量的易于扩充和修改,这是设计模式的核心原则,对修改封闭,对拓展开放。 时间关系,我先列举书中所写的28种基本模式,原则,法则,以后有时间再慢慢补充 ##简单工厂模式##策略模式##装饰模式##代理模式##工厂方法模式##原型模式#...
漫谈毕业论文
扯扯闲话,就从这研究生生活说起,学生生活固然是丰富多彩的,然而跟本科有所不同的是,我们已经成长为一个专业的人,或者终极目标是一名专业的人,专业的计算机人,慢慢的开始接触高级算法,机器学习,自然语言处理的一些相关模型,并用这些模型去解决一些实际问题,遇到问题不再会想着老师给你一套详细的解决办法,取而代之的是自己的思考,对学术的敬畏和对未知世界的探索,现实当中却又是举步维艰,虽然还没有参加9月份的正式校招,但在内推工作的时候就已经能感受到,只有爱你所做的,才能真正用心把它做好并得到大家的认可。这篇博文的名字叫做《漫谈毕业论文》,感觉有点扯远了,现在回归正题,扯一扯我这毕业论文的种种经过,写的比较随性,纯粹是个人闲扯。 说起这毕业论文,学校可是很重视的,开题报告封面上的14年9月,赫然在目,到现在时间也差不多过去1年了,每每回忆过去的一年,都好像是什么也没做,但却能真真切切的感受到自己的成长,不单单是知识上的,我想更多的是在对事物认识上的,去年九月份用一个月时间吭出了一份开题报告,说是一个月,其实真正在思考的时间也不过几天,或者说是答辩前一天晚上,重要的工作总是在deadline的前...
《Effective Objective-C 2.0》笔记(更新中)
尽管这本书的作者Matt Galloway完成这本书只用了6个月时间,但是酝酿过程长达数年。这本书不是讲基本的语法,而是发挥Objective-C语言的优势,编写出好代码所必须的,全书分为7个大的章节。 熟悉Objective-C 对象、消息、运行时 接口和API设计 协议和分类 内存管理 块与大中枢派发(block和GCD) 系统框架下面开始本书的阅读。 熟悉Objective-C了解Objective-C语言的起源Objective-C语言使用“消息结构”而非“函数调用”,由Smalltalk演化而来。两中调用方式的区别在于: 消息结构的语言,运行时所需执行的代码由运行环境来决定。 使用函数调用的语言,由编译器决定。如果调用的函数是多态的,那么在运行时就要按照“虚方法表”来查出到底应该执行哪个函数实现。采用消息结构的语言,无论是否多态,总是在运行时才会去查找所要执行的方法。所有Objective-C语言的对象所占内存总是分配在“堆空间”中,绝不会分配在“栈”上。举例: 1234NSString *string = @"example string"...
imac换固态硬盘
实验室的imac电脑坏掉好几天了,自己电脑装的是Linux,这下写OC代码就成了麻烦事,脑袋里就一个念头,得赶紧解决,08年款的mac,好重,抱到苹果维修点,简单的检查了一下说是硬盘坏掉了,而这个型号的硬盘已经没有生产了,当时就惊到了,其实心中窃喜,盼着老师购买新mac,被老师直接驳回,好伤心。。。 从维修点回来就想着去用PC机装一个黑苹果,安装过程就不详细说明了,总之是花费了不少时间,不稳定又尝试在windows上用VMWare安装虚拟机,windows一个死机就崩溃了,再也启动不了了,真心是伤到了,从实验室里翻出了压箱底的一台08年的小白,系统没办法升级到优胜美地,就不可能下载Xcode了,思考再三,狠下心自己换硬盘,拆机后发现,其实imac一体机的结构跟普通pc没什么太大区别,从工艺上就能很想明白,如果不采用统一的标准,生产自己的一套体系,成本和未来的维护都是很大的问题,所以直接从实验室的小仓库中翻出一块3.5英寸硬盘,插上之后果然有反应,于是断定是硬盘坏掉了,向老师申请购买固态硬盘,导师很爽快就答应了。 今天上午硬盘到手,心情还是有些小愉悦的,安装mac系统在我看来,那...
《pro Objective-C》笔记
可能这段时间的学习强度太大,现在整个人有点处于放空状态,每隔一段时间就会出现这种情况,相信你也与我有过相似的经历,现在难度大一些的学不进去,就先写点读书笔记,至少今天得写点文字。《pro Objective-C》这本书,对OC语言会有更为深入的剖析,这也算是进阶的一本书了,在引言部分看到,这本书有四个要点。 Objective-C的基本知识和重要的语言元素 Objective-C的运行时系统 Foundation框架API Objective-C语言的高级特性正是我现在需要了解和梳理的,下面就开始这本书的阅读。
《Objective-C高级编程》笔记(日更)
《Objective-C高级编程——iOS与OS X多线程和内存管理》这本书,是两位叫Kazuki Sakamoto和Tomohiko Furumoto的日本人写的,之前是有问师兄借过,那个时候只是走马观花似的看了第三章关于GCD的介绍,觉得很一般,不知为何大家推荐这本书,时隔近一年,再次翻开,细细研读,才发现干货确实不少,下面就把阅读此书的笔记分享给大家。 全书分三个大章节,分别为:1.自动引用计数2.Blocks3.Grand Central Dispatch下面就按这个顺序记录读书笔记。 自动引用计数章节开始是用办公室照明的例子来说明内存管理引用计数这一概念的,简单易懂,但这是每一个初学iOS都应该掌握的,直接略过。 内存管理的思考方式 自己生成的对象,自己持有。 非自己生成的对象,自己也能持有。 不再需要自己持有的对象时释放。 非自己持有的对象无法释放。具体的例子程序这里就不详细写了,因为在任何一本书上都能看到,此书真正引起我的注意,是从下面这段内容开始的。 alloc/retain/release/dealloc实现OS X、iOS中的...
iOS开发常用三方库及Xcode插件集锦(转载)
2015.7.27 补充:iOS开源库汇总iOS GitHub Top 100 简介其实在看唐巧写的《iOS开发进阶》这本书的时候,就像把iOS常用到的第三方库和Xcode插件总结一下,写一篇文章,恰巧在iOS开发微信公众号上看到了这篇文章,原文如下。 前言第三方库是现在的程序员离不开的东西 不光是APP开发 基本上所有的商业项目 都会或多或少的使用到第三方库Github上Star>100的开源库数量如下 可以看到JS以绝对的优势排名第一 一定程度上也说明了JS在这几年为什么发展得这么迅速 不会点JS都不好意思说自己是码农 不过现在JS圈的造轮子浪潮也是愈演愈烈了 自己不写个框架都不好意思打招呼 OC排名第四 相信这个排名还会上升 Swift暂时还挤不进前十 不过超过OC 也是指日可待(毕竟亲儿子) Xcode基本是Mac/iOS程序员的必备工具(AppCode我没用过 不知道有多少人用?) 但是能说有多好用..这就仁者见仁了(跟Visual Studio是没得比了) 不过在用了插件以后 倒也能让生产力提升一大截 接下来我会介绍一些我本人常用的第三方库和插件 也...
Objective-C基础学习笔记
本文是阅读Jesse Feiler的《Sams Teach Yourself Objective-C in 24 Hours》的笔记。 iOS层次划分 应用程序 Cocoa Touch 媒体 核心服务 OS核心 重点两个框架Mac OS X 应用程序框架中的AppKit 核心服务中的Core Foundation iOS Cocoa Touch中的UIKit 核心服务中的Foundation Objective-C继承 调用——基类声明init,当子类上调用init时,实际调用的是基类的init方法 覆写——覆盖改写,在子类中也同样声明了init方法,那么当在子类中调用init方法的时候实际上是调用的子类的init方法 覆写并调用——在子类中覆写基类的方法时总是可以调用[super init],这种方法其实在子类的的覆写当中经常见到 协议——这是一组可以被该类采纳的方法。采纳协议的类需要实线协议中的方法,一旦一个类采纳该协议定义的方法后就可以调用任何协议中的方法了(协议可以定义为Optional,这样调用时就可以确保只调用那些必须被实现的方法或者被实线的方法)。协议...
Linux常用命令(持续更新中)
做自然语言处理实验,Linux系统肯定是不二的选择,这片文档主要记录一下自己用到过的命令,会持续更新下去。<img style=”display:block;width:60%”, src=”/images/7.1_Linux_versions.png”/> ####查看文件夹下的文件数 ls -l | grep "^-" | wc -l ####查看文件夹下的文件数,包括子文件夹里的 ls -lR | grep "^-" | wc -l ####查看文件夹大小 du -sh ####将文件夹列表放入文件中 ls > filelist ####将多个文件合并到一个 cat file1 file2 file3 > mergeFile ####随机将某个文件中的N行复制到另外一个文件 shuf -n N input > output ####统计文件 wc - lcw file - c 统计字节数。 - l 统计行数。 - w 统计字数。 ####linux下Python默认版本的选择sudo ln -sf ...