Chars's Blog

Never stop living and learning

如何提交代码至 CocoaPods?这个问题在 Google 一搜索可以有很多文章出来,不过,其中遇到的坑却无人提及。笔者现在将实际操作工程记录如下,并总结踩坑注意事项:操作顺序、文件配置、命令使用。

Read more »

TensorFlow 社区创建了一系列用于多平台测试的图像分类模型参考点。在 方法 章节中会详细说明如何执行测试,并给出使用的脚本链接。

Read more »

在前文 《TensorFlow Liner Model Tutorial》 中,我们使用 人口收入普查数据集 训练了一个 logistic 线性回归模型去预测个人年收入超过 5 万美元的概率。TensorFlow 在训练深度神经网络方面效果也很好,那么你可能会考虑该如何取舍它的功能了 – 可是,为什么不选择两者兼得呢?那么,是否可以将两者的优势结合在一个模型中呢?

在这篇文章中,我们将会介绍如何使用 TF.Learn API 同时训练一个广度线性模型和一个深度前馈神经网络。这种方法结合了记忆和泛化的优势。它在一般的大规模回归和具有稀疏输入特性的分类问题(例如,分类特征存在一个很大的可能值域)上很有效。如果你有兴趣学习更多关于广度和深度学习如何工作的问题,请参考 研究论文

Wide & Deep Spectrum of Models

Read more »

文件系统中的文件、keychain中的项,都是加密存储的。当用户解锁设备后,系统通过UDID密钥和用户设定的密码生成一个用于解密的密码密钥,存放在内存中,直到设备再次被锁,开发者可以通过Data Protection API 来设定文件系统中的文件、keychain中的项应该何时被解密。这个就是数据保护的内容。

Read more »

TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。目前来说,Github上star最多的项目就是它了。

在这之前,笔者写过一篇简单的入门文章《初探 TensorFlow》。当时没能成功搭建环境,加上后期的工作原因,至此搁置了一段时间。今天,终于各种折腾,在自己的Mac上经过多种尝试之后,完美搭建成功。这里就把它分享出来,希望对大家有所帮助。

Read more »

应用启动时间,直接影响用户对一款应用的判断和使用体验。ZAKER新闻本身就包含非常多并且复杂度高的业务模块(如新闻、视频等),也接入了很多第三方的插件,这势必会拖慢应用的启动时间,本着精益求精的态度和对用户体验的追求,我们希望在业务扩张的同时最大程度的优化启动时间。

Read more »

为了能够将我们项目中的代码能够在后续开发者使用(重用代码),通常使用的方法是将代码按照功能模块编写成API。那么我们就很有必要了解Objective-C语言中常见的编程范式(paradigm),同时还需了解各种可能碰到的陷阱。

Read more »

圆角是一种很常见的视图效果,相比于直角,它更加柔和优美,易于接受。设置圆角会带来一定的性能损耗,如何提高性能是一个需要重点讨论的话题。

大家常见的圆角代码x.layer.cornerRadius = xx; x.clipsToBounds = YES;这两行确实实现了圆角视觉效果。其实使用x.layer.cornerRadius = xx;已经实现了圆角,只不过在某些控件是不生效的,因为某些图层在被切割圆角图层之上而被显示出来了。而x.clipsToBounds = YES;带来的后果就是产生离屏渲染。可以使用instruments中的CoreAnimation工具,打开Color Offscren-Rednered Yellow选项,可见黄色区域部分即是离屏渲染部分。

那么离屏渲染会带来什么?当然后资源损耗,可能产生卡顿。因为在iPhone设备的硬件资源有差异,当离屏渲染不多时,并不是很明显感觉到它的缺点。

Read more »

在计算机科学中,二叉树(英语:Binary tree)是每个节点最多只有两个分支(不存在分支度大于2的节点)的树结构。通常分支被称作“左子树”和“右子树”。二叉树的分支具有左右次序,不能颠倒。

二叉树的第i层至多拥有 2^(i-1) 个节点数;深度为k的二叉树至多总共有 2^(k+1) - 1 个节点数,而总计拥有节点数匹配的,称为“满二叉树”;深度为k有n个节点的二叉树,当且仅当其中的每一节点,都可以和同样深度k的满二叉树,序号为1到n的节点一对一对应时,称为“完全二叉树”。对任何一棵非空的二叉树T,如果其叶片(终端节点)数为n0,分支度为2的节点数为n2,则n0 = n2 + 1。

与普通树不同,普通树的节点个数至少为1,而二叉树的节点个数可以为0;普通树节点的最大分支度没有限制,而二叉树节点的最大分支度为2;普通树的节点无左、右次序之分,而二叉树的节点有左、右次序之分。

Read more »

二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有节点的值均小于它的根节点的值; 若它的右子树不空,则右子树上所有节点的值均大于它的根节点的值; 它的左、右子树也分别为二叉排序树。“中序遍历”可以让节点有序。

binary search tree

Read more »

TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。

tensors_flowing

Read more »

结构化查询语言(英语:Structured Query Language,缩写:SQL),是一种特殊目的之编程语言,用于数据库中的标准数据查询语言,IBM公司最早使用在其开发的数据库系统中。

不过各种通行的数据库系统在其实践过程中都对SQL规范作了某些编改和扩充。所以,实际上不同数据库系统之间的SQL不能完全相互通用。

文章以MySQL数据库为演示环境,主要分享MySQL中的SQL使用。

Read more »

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

MySQL是一个开源的关系型数据库管理系统,分为社区版和企业版。

Read more »

Objective-C 语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。

对于 Objective-C 来说,这个运行时系统就像一个操作系统一样:它让所有的工作可以正常的运行。Runtime 基本上是用 C 和汇编写的,这个库使得C语言有了面向对象的能力。

在 Runtime 中,对象可以用 C 语言中的结构体表示,而方法可以用 C 函数来实现,另外再加上了一些额外的特性。这些结构体和函数被 runtime 函数封装后,让 Objective-C 的面向对象编程变为可能。

找出方法的最终执行代码:当程序执行[object doSomething]时,会向消息接收者(object)发送一条消息(doSomething),runtime 会根据消息接收者是否能响应该消息而做出不同的反应。

Read more »

在口语里,日语的谓语形式根据说话人之间的上下级关系、亲疏关系的不同而不同。“~ます”、“~です”是对长辈或关系不太亲密的人使用的形式。这种形式我们称为“敬体形”。与此相反,如对方是自己的同辈或晚辈,或者关系比较密切时则使用“简体形”。“简体形”是不使用“ます”、“です”的形式。

动词本身即具有“敬体形”和“简体形”,“~ます”、“~ません”、“~ました”、“~ませんでした”等四种礼貌的表达形式即是“敬体形”,而动词的“基本形”、“ない形”、“た形”都属于简体形。但一类形容词、二类形容词和名词本身没有“敬体形”和“简体形”之分,只有在做谓语时,其谓语形式才具有“敬体形”和“简体形”。

Read more »

全世界大概有几百种编程语言,而其中著名的只有十几种。Python就是著名编程语言之一。它起源于“龟叔”(Guido van Rossum,荷兰人)在1989年圣诞节间的无聊,而为了打发时间所创造。

可见业余时间比工作时间创造出来的东西更容易出名哈,当然,这是开玩笑的。“龟叔”赋予Python“优雅、明确、简单”的特点。

那么,Python适合做什么呢?它主要适用领域:Web网站和各种网络服务(YouTube、Instagram、douban、openstack);系统工具和脚本;作为“胶水”语言把其它语言开发的模块包装起来方便使用。

优点是显著的,但是也少不了缺点。Python不适用的领域:贴近硬件的代码(首选C);移动开发(iOS/Android都有各自的开发语言);因为不能做到告诉渲染,所以不适合游戏开发(首选C/C++)。

Read more »

作为iOS开发,作品App肯定需要提交到App Store审核。平心而论,App Store确实成功地将许多恶意软件拒之门外。但是,对开发者而言,应用程序的审核流程是令人沮丧的黑箱操作。

当然,什么是恶意程序是由Apple来定义。因为App Store的存在,所以,如果想要实现某些特定的功能,唯一的手段就是将设备越狱或者骗过App Store的审查。

官方的App审查永远无法抓到那些钻空子的恶意程序,所以需要另外一套高效的机制,来阻止恶意程序破坏整个操作系统的安全。

Read more »

iOS应用程序的生命周期,还有程序是运行在前台还是后台,应用程序各个状态的变换,这些对于开发者来说都是很重要的。iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的。在后台时,程序会受到系统的很多限制,这样可以提高电池的使用和用户体验。

本文所要说到的生命周期,也不仅仅只是应用生命周期;还包括,视图生命周期。

Read more »
0%