历经 5 年, 一次业余网页游戏项目惨痛的失败经历

翻译自:http://yoannsculo.developpez.com/tutoriels/jeux/retour-experience-sur-developpement-jeu-amateur/
最近在看像素游戏开发相关的资料, 偶然发现了这篇 8 年前写的文章
也正是我上篇文章想表达的内容, 行文也比我写的流畅, 故转载过来, 作为对上篇文章的补充

Read More

iOS 诡异横屏 BUG 解决思路全记录 以及一些对软件开发的思考

“如果代码执行结果和预期不一致, 那么不用质疑肯定是你那里写错了”, 前辈当前如是说到
软件行业经过这么多年的变革, 感觉软件质量反而不如当年了(这里我说的软件质量不过说的是应用软件, 还包含操作系统层面), 不过这只是一个前言而已, 抛砖引玉而已, 暂时放下不表, 我留到最后再来谈谈我的看法

Read More

Gitnoter 项目弃就一个坑

做一件事中是得要有始有终对不, 虽然我的标题是弃就一个坑, 单这不妨碍我对这个项目做一个称重的总结, 对就是挺沉重的

Read More

Jenkins iOS 打包并上传至蒲公英

CI/CD with Jenkins 折腾良久用于还是给我搞掂了, 下面就来说说我到底是怎么淌过这些坑的(真心就是不停的淌坑, 简直毫无乐趣可言, 不过淌完后还是很畅快的:-D)

Read More

更改 android apk 包名 达到双开甚至多开的目的

起因是那狗日的乐视电视有些app没法安装, 至于为什么不能安装我就懒得说了, 总之就是一个话 Fuck
当然这个难不倒我们程序员们, 用脚指头都能想到是通过包名进行的判断, 那么我们改掉包名不就搞定了, 对吧

Read More

TypeScript 基本语法

TypeScript 是微软开发的 JavaScript 的超集,TypeScript 兼容 JavaScript,可以载入 JavaScript 代码然后运行。TypeScript 与 JavaScript 相比进步的地方 包括:加入注释,让编译器理解所支持的对象和函数,编译器会移除注释,不会增加开销;增加一个完整的类结构,使之更新是传统的面向对象语言。

TypeScript 微软官方网站 http://www.typescriptlang.org/
TypeScript 源码 http://typescript.codeplex.com

Read More

C++ 中的 STD 指的是什么

std 的由来

在标准 C++ 以前,都是用 #include<iostream.h> 这样的写法的,因为要包含进来的头文件名就是 iostream.h
标准 C++ 引入了名字空间的概念,并把 iostream 等标准库中的东东封装到了 std 名字空间中,
同时为了不与原来的头文件混淆,规定标准 C++ 使用一套新的头文件,这套头文件的文件名后不加. h 扩展名,如 iostreamstring 等等,
并且把原来 C 标准库的头文件也重新命名,如原来的 string.h 就改成 cstring(就是把.h 去掉,前面加上字母 c),所以头文件包含的写法也就变成了 #include <iostream>
并不是写了 #include<iostream> 就必须用 using namespace std; 我们通常这样的写的原因是为了一下子把 std 名字空间的东东全部暴露到全局域中(就像是直接包含了 iostream.h 这种没有名字空间的头文件一样),使标准 C++ 库用起来与传统的 iostream.h 一样方便。
如果不用 using namespace std, 使用标准库时就得时时带上名字空间的全名,如 std::cout << "hello" << std::endl;

#include "iostream"#include<iostream> 的区别

前者先在当前目录找 iostream 文件,找不到再去系统头文件路径找,后者反之。
因此,做为一个良好的习惯,在包含系统头文件时尽量用 <>,而在包含自己的工程中的头文件时用 ""
<iostream><iostream.h> 文件是不一样(前者没有后缀),实际上,在编译器 #include 文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。
后缀为.h 的头文件 C++ 标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带 .h 后缀的头文件里,c++ 标准为了和 C 区别开,也为了正确使用命名空间,规定头文件不使用后缀 .h
因此,当使用 <iostream.h> 时,相当于在 C 中调用库函数,使用的是全局命名空间,也就是早期的 C++ 实现;
当使用 <iostream> 的时候,该头文件没有定义全局命名空间,必须使用 namespace std;这样才能正确使用 cout

Read More

Sqlite3 单表级联删除数据

最近在写一个网络相关的 iOS 库, 遇到一个需要级联删除数据的地方, 本来想用外键约束的级联删除来解决
后来发现, 在外键约束时 插入数据是有条件限制的, 在某些情况下插入数据会失败, 不过蛋疼之余还是给我想到解决方案了, 嘻嘻

Read More

iOS Storyboard 和 UIColor 创建出来的颜色显示效果不同

路漫漫其修远兮,吾将上下而求索。
真是绝了,这个问题从我开始搞 iOS 开发时就一直困扰这我了,虽然那时候我也尝试这找解决方案,但是一直都没能找到怎么解决,只是大概知道是配色文件到诊的,但是要如果更改正确却无从下手了。
现在看来,我找不到解决方案也是理所应当的了,至于原因接着往下看。(提示:我搞 iOS 开发那会还是 iOS8 时代)。

Read More

如何计算算法的空间复杂度

类似于时间复杂度的讨论,一个算法的空间复杂度 (Space Complexity)S(n) 定义为该算法所耗费的存储空间,它也是问题规模 n 的函数。渐近空间复杂度也常常简称为空间复杂度。

Read More