《The Math Book》

看了一本书《数学之书》,英文名叫《The Math Book》,翻译得惨不忍睹,不过里面还是有一些有趣的之前没听过的东西,记在这里了。

CoffeeScript Note

CoffeeScript就是JavaScript的语法糖,写起来效率更高,也去掉了一些晦涩的语法,这里记录其简单用法。

正则表达式要点

有些正则表达式的不经常用到就会忘记,整理一下,再用到的时候也好便于查询。

《认知与设计》

花了一下午的时间看了这本《认知与设计》,一本从认知角度去讲解设计理论和设计原则的书,隔行如隔山,虽然程序员和设计师打交道不少,但真要去了解其中的内容,发现「设计」还真是另有玄机。

《小狗钱钱》

本来对这种书名的书向来是不感冒的,但是在V站书单推荐里看到了几次这本书之后查了一下,豆瓣评分9.0,趁着囤书的机会就买了看了一遍,说实话,读完之后感觉7.5-8.0还是可以的,9.0感觉有些夸张了,可能是大家考虑到是面向小孩子理财的,才打了高分?

《IT简史》速读

凑单买了一本叫《IT简史》的书,一下午的时间翻了一遍,书本身没什么亮点,非常浅,也没有编著者的个人观点,感觉就是一本简版的Wiki百科的集合,不过翻一下也还好,有些事件和概念还是以前不知道了,就当补充计算机历史知识了。

五读《Expert C Programming》

闲着没事儿在书架上找书看,又看到了翻得有些旧的《C专家编程》拿起来又翻了一遍,大二买的书,前后看了四遍,这是第五遍,每次看看都能有一点儿新的收获。

关于URL编码

在写上一篇博客之前,我一直对URL编码没什么概念,看到网页链接上一串百分号加数字的字符串时会短暂的想想,因为工作中也不涉及到具体的URL编码的部分,一直也没深入过,而促使我写下来记录就是上一篇博客中markdown解析的时候出了一点小问题(markdown链接是放在小括号里面的,然后放在小括号的链接本身也包含小括号,这时markdown解析出了问题),然后查问题的时候就查到了URL编码的相关知识,这几天又查阅了资料,简要写在这里,深化一下记忆。

闭包 == 匿名函数?

和同事讨论Java 8的lambda表达式,然后就说起了闭包,然后发现在不在少数的人对闭包的理解就是闭包就是个匿名函数,甚至就认为这二个是互通的。

那些童年通关几十遍的游戏们

岁数越来越大,回老家过年也感觉越来越没意思,今天闲得没事儿,在旧柜子里面翻腾,找到了这二个东西 – 当年超级奢侈带电池可以保存进度的FC游戏卡带:

Git小记(基础命令)

之前用Git都是直接使用SourceTree这个开源的Git图形界面的客户端,输入log,提交,从远程pull更新,都是点几下按钮,从来没有在命令行里面操作过Git,开始bugcodeCalendar这个项目之后,开始尝试完全用命令行进行Git的操作,四月份开始的这个小项目,一直到现在,断断续续的业余时间也有几个月了,现在命令行里操作Git算是『行动自如』了,这里对这几个月的使用总结一下,也算备忘吧。

几个用到不多却很有用的C语言特性和小Tricky

几个C语言的特性和tricky,平时不常用到,却很有用,这里记录一下。

Xcode-8使用XVim的问题

做为一个Vim党,几乎是有Vim插件的IDE都会安装上,然后各种跳转爽得飞起,Xcode上就是成名已久的了XVim,它还有一个官方网站,但是一般的下载安装,直接去github就行了。最近使用最新Xcode安装XVim插件遇到了几个问题,发现在XVim的github上已经有老外提了issue,并且有了解决方式,总结记录一下。

CR/LF小坑

CR、LF、CR/LF

不同系统对“换行”的表示,详情可以看这里

空闲的八月

每个月都会写些流水帐,也不知道文字能力还能不能借此挽救一下。前几个月是没时间写,而现在是太闲了,惰性说来就来。迷糊着突然发现地铁上的人突然多了起来,恍然,九月都来了,学生都开学了,学生时代,恍惚间感觉离自己好久远一样。好吧,就迷糊着在九月记录一下八月吧~

Bash-simple-quick-tutorial

Bash 简单入门

Bash的简单入门,不介绍复杂的语法,只有基本的语法构成,看完可以写出简单的shell脚本,根据learnxinyminutes的入门画的脑图,不常写会经常忘记,画下来做为备忘,条理清晰些。

使用Markdown画流程图

最新一版的Typora支持画流程图了,用的flowchart.js,直接可以用代码的形式来描述流程图,然后直接就会通过flowchart.js渲染出实时的流程图,之前对这些没了解过,记录在此。

Swift3已完成的变动提案列表

Swift 3已经实现的变动提案,粗略翻译一下,自己顺便也了解记录,原文地址:https://apple.github.io/swift-evolution/

Swift3迁移指南-2

使用Carthage/CocoaPods工程

如果你使用了第三方的二进制形式的Swift模块工程,这个工程并不是在你自己Xcode的工作空间中由你自己生成出来的,你可以选择下面的其中一种方法进行迁移。

6/7月杂记

每次写这种记录就是胡言乱语的流水帐,之后再回去看一眼时候,感觉当时心情是千军万马,火急火燎的。至少有半个月没有碰这个小(ji)博(shi)客(ben)了,趁端午节的调休假记录一下这二个月。

Swift3迁移指南-1

前记

Swift3开发者预览版已经开放了,3.0release估计很多就来了,Swift 3相对于Swift2.x变动非常大,看官方有一个Swift 3的官方迁移指南,这里粗略翻译了一下,也算是自己熟悉一下。分成二部分翻译,第一部分就是迁移程序的各种注意事项,第二部分是各种细节问题解决方案。后续把swift-evolution的语法/特性变动列表翻译一下。

端午节后碎念
  • 一个月内一直在各种忙,项目马上上线,各种问题都来了,虽然不是身居要职但是问题也特别多,说焦头烂额也不为过,每天处于各种加班状态中感觉时间过得特别快。端午节没休息,国内游戏行业好像都是这个状态,一言不合就疯狂加班😂。

Function Currying

函数柯里化

前几天Swift发布3.0预览版,改动的还不小,不兼容Swift2.2,加了诸多特性,也去掉了不少语法,看到的第一个就是在Swift3.0里去掉了Function Currying(函数柯里化)的语法声明形式,具体可以看这里。之前从来没有了解过这个术语,只知道大致的意思,这里记录一下。

好用的shell命令和常用的SVN命令记录

常用的命令行SVN命令

现在的版本管理工具都有相当人性化的GUI版本,无论是免费的收费的,都做得相当好,点几个按钮,选几个文件,提交,回退,更新,一步就完成了,但是最近在公司的Mac下(低配Mac mini,你懂的…),很多GUI版本的工具都非常慢,卡顿非常严重,而且对SVN的外链(external)支持不好(像CornerStone这个SVN的GUI工具),也就是在版本管理工具的内部的文件视图里,看不到external属性下的文件,只能看到最上级的目录,而实际的目录中却有对应的文件,只是不能在GUI的版本工具中进行操作,这个情况下就只能在对应的外链目录下通过终端进行提交了。一段时间下来,发现一堆命令都忘了,只会在GUI工具上点来点去,一旦遇到上面那种情况,就得傻眼半天,这里记录一下常用的SVN命令行命令。

ADB命令使用记录

经常在Mac在安装操作Android真机,但是Mac对于Android的设备支持,没有Windows那么方便,经常把文件copy来copy去就为了把文件放到Android手机里,特别不方便,现在知道了Android sdk的adb(Android Debug Bridge),这里面的adb push 和adb pull命令特别好用,直接可以用Android真机连Mac把文件从电脑push到Android,或者使用pull命令把Android机拉到Mac机上。这里记录一下其他的adb命令,在调试真机的时候还真是特别有用,可以在电脑上全面操作Android真机。安装不需多说,直接把对应的adb所在目录加到环境变量里就行。

Pyinstaller使用记录

Pyinstaller是用于对Python脚本打包成可执行文件的工具。

Android加载动态库规则笔记

Android菜鸟,距离上次长时间调试Android平台下的游戏是一年前了,最近几乎都没调试过Android上的东西,特别还是这种需要跨平台的游戏,各种JNI调用,各种动态库齐上,各种渠道各种接。尤其是类似那种AnySDK的一站式的接入SDK的,不出问题皆大欢喜,只要出了一个问题就够排查上半天,因为游戏和渠道SDK的中间又多了一层中间层代码,这样问题排查起来更麻烦。非常菜的问题,长时间不用就会忘记,这里记录一下,都是零碎的小知识。

六一碎念
  • 又一个六一儿童节

    真就像段子里说得,是不是只有我们这个年代的人才天天嚷嚷着过六一,来北京的第三个儿童节,早晨起来就听到旁边的小学已经在诗朗诵了。晚上算是给我们这些”大孩子”过个儿童节,早下班了一会儿☹️,这就是福利了么?(手动哭脸)

Alfred-Python-Tutorial

Alfred不再多说,试用一次之后,直接32欧上了Mega授权,杀器其实是Alfred Workflow,配置action,filter,可以有无限可能的操作。这里把deanishe上的Python写Afred Workflow的入门翻译一下放在这里,但是国内pinboard用的不多,这里用V2ex提供的最新主题列表的API,通过Alfred获取V2ex上的最新主题列表,来“本土化”翻译一下deanishe网站上的Python写workflow的入门。Alfred Workflow支持多种脚本语言编写,完全可以使用自己擅长的脚本来写。

SwiftNote-11

扩展

Swift允许对一个已存在类型进行功能的扩展(包括基础类型,如Int),扩展可以做到:

  • 添加计算型属性,包括计算型静态属性
  • 添加实例方法和类型方法
  • 添加新的构造方法
  • 定义下标
  • 添加新嵌套类型并使用
  • 还可以在扩展一个类型的同时,适配一个或者多个协议
SwiftNote-10

构造方法

与其他编程语言类似,Swift的构造方法也是在实例初始化的时候为其存储属性赋初值的操作。使用init关键字,可以自定义参数,但是不指定返回值。形式如下:

Lua正则相关小记

Lua正则表达式

Lua的正则表达式不是标准的Posix的标准实现,有自己的一些标准,由于长时间不使用,最近用到一个相关的业务逻辑,在一个标签中提取价格,但是这个标签是不规则的,可能前后有很多其他字符(¥XXX priceNum XXX),用固定长度截取显然不成,想到了用正则,最后google了一下,才搞定,但是发现很多都忘记了,这里记录一下。

Python三元运算小记

好久没有用Python的,昨天写一个简单的Alred workflow的时候,突然用到了三元运算符,只记得刚学的时候,是用的类似于Lua的那种三元运算的实现方式(Lua没有原生的三元运算符,使用了二个逻辑运算来实现),然后在google上找了一下,这里做一下记录。

Docker-for-Mac简要入门记录

依据官方的Get Started的简要入门(简略翻译修改官方的Docker文档,很多信息来自官方Doc),基于Beta版的Docker for mac(目前正在邀请测试,测试邀请链接)。

SwiftNote-9

方法

同其他面向对象语言的成员方法,细节略有不同

SwiftNote-8

类的属性

相当于其他编程语言中的类成员变量,在Swift中叫做属性。

SwiftNote-7

枚举

  • 枚举语法

    enum关键字接大括号,内部case分隔不同的枚举值,也可以多个枚举值在同一个case后,用逗号分隔,在Swift里枚举是一种自定义类型,Swift对其功能进行了增强

Hexo多说评论踩坑记录

Fexo的主题的评论数量显示的Hexo默认的评论系统disqus,国内还是用多说的多一些,Fexo主题集成了多说插件(其实就是内嵌的一段js代码),但是并不是用的这个路径下的themes/fexo/layout/_partial/duoshuo.ejs而包含的component中的duoshuo.ejs,对web前端不了解,尝试修改了一下,因为查看多说的官方文档的时候,说评论数依据的是data-thread-key(标识文章的唯一ID),一个样式表中的class的名字,而Fexo真正包含的那个duoshuo.ejs并没有设置data-thread-key的值,所以手动改一下,我改成了page.path,文章的路径用来做唯一key(年月日加文章名,重复的机会不太大),这样重新hexo clean再hexo g,就能生成唯一data-thread-key值了。

zsh+iTerm2折腾记录

一直就感觉Mac自带的Terminal很好用,可以开多个Tab,功能也够,自从开始用Hexo倒腾博客之后突然感觉自带Terminal的窗口切换功能不够强大了,然后去Google了一下,然后就发现了iTerm2,之前也在一些其他博客中看到iTerm2的推荐,但是一直没在意,这次果断去官网下载了一个,开源免费。用了一会感觉特别不错,可设置的选项比自带的多好多,而且关联的文章看了下去还有oh-my-zsh这个zsh的配置的框架,还有好看的主题,一番折腾,终端大致变成了这个样子

SwiftNote-6

闭包

Swift支持闭包,相当于其他函数里面的匿名函数的意思。经常是在一些需要传递给其他函数的参数也是一个函数类型的时候,而这个需要被传递的函数又包含的代码是短小的。

杂记

5.1在家宅了三天,每天都会打二次羽毛球,好久没这么运动过了,出出汗的感觉真好,当了码农都快坐成一个胖子了-_-!,尤其是忙成狗的时期,一坐就是几个小时,总感觉自己像个佛爷!

SwiftNote-5

函数

函数做为抽象的最基本构成元素,几乎是编程语言里绝不可缺少的。Swift的函数足够灵活,可以有各种使用方式。

SwiftNote-4

for语句

Swift对for语句进行了增强,不但有C语言里那种普通形式的三段式的for循环,还增加了for in这种区间式for循环

SwiftNote-3

运算符

基本的运算符与C语言无二致,并且对很多地方做了增强。

SwiftNote-2

针对Note1进行细节补充

SwiftNote-1

Swift简要记录 - 值,类型

Mac常用的快捷操作方式

用Mac也有一段时间了,无论是开发还是日常总有一些快捷操作,写在这里算是备忘,备忘持续更新。

Markdown语法简要说明

最近Blog迁移到了Hexo ,开始全用Markdown这种标记语言进行记录,Markdown好处不再多说,自行参照Markdown Wiki,由于最近频繁使用,这里对Markdown语法进行简要记录。

C和C++与Java互相调用(续)

上一篇说的是java的本地调用,即使用jni完成java调用c/c++编写的代码,这回仍然是使用jni,不过是倒过来,使用c/c++调用java编写的代码。本次使用环境是:centos5.4gcc4.9.0jdk1.6_45

C和C++与Java的互相调用

因为adnroid项目中用到了获取mac地址做为唯一码的功能,c和c++在android却没有对应的api,还好有jni这个东西,用java写好获取mac地址的代码,用c/c++调用代码就可以直接获取mac字符串了。

Linux下的umask

​ 偶然看到一本书上写umask(掩码)的计算,说是用户的实际文件(夹)权限是通过默认文件(夹)权限与掩码相减得到的。感觉不太对。

使用SIGCHLD信号异步清理子进程

首先说为什么要清理子进程(由父进程),在Unix系统中经常会听到一个词“僵尸进程”(Zombie Process[可不是植物大战僵尸^_*]),而“僵尸进程”就是由子进程而来的。

Lua简要笔记-2

接上文,控制语句下来就是一门语言不可或缺的一部分—函数。

Lua简要笔记-1

Lua简要笔记。

归并排序图解

归并排序笔记,记录下来也希望可以帮助他人,尽可能说得明白。

快速排序图解

快速排序原理记录及实现,用了几张图示,虽然是篇笔记,但尽力让所有人明白。

Windows下编译Clang

网上最近一直在说Clang这个编译器,说FreeBSD已完全使用Clang为默认编译器,Mac下也是这个编译器,“据说”编译速度比Gcc快出很多,生成出来的可执行文件也比Gcc生成的要小那么几个KB,还有错误提示也要友好很多,更还有各方“大家”对此嗤之以鼻。但是不管如何,做为一个喜欢瞎折腾的码农,不管各个大家是怎么说,自己一定要上手试试的。因为在Windows下没有Clang的二进制包,本着自己动手丰衣足食的原则,决定自己构建一个尝尝鲜(虽然这个’鲜’已然过去很久了), 其实构建过程很简单,官网上的getting started说得很明确了,这里也只是再用中文重复一下:

C99标准笔记

c99标准也就是C语言在99年修订的最新标准,想一下99年我还在上小学-_!,虽然只是一个c99某些新特性的笔记,尽量写清楚,做笔记的同时,也可以对大家有帮助。

Makefile初步-3

如果想在一个makefile中引用其他的文件,也就是包含进其他的makefile文件到此Makefile文件,像C语言一样儿,使用include命令

Makefile初步-2

接上文,假如有如下一个Makefile其中一部分是这样的:

Makefile初步-1

在Windows下有诸如vs这样儿“强大”的工具来组织与管理工程,文件层次组织,代码编写,包括选项的设置,编译,链接,都可以在一个窗口中完成(其实背后也是有一个make工具)。Linux下,Unix的哲学,多个不同功能的小工具,组合到一起组成强大的功能,一些小小的文件,我们可以gcc –XXFlags XXOO.c –o XXOO,这样儿来做,但是要是几十个文件,几百个文件呢?还去挨个的输入命令编译?这就是是马上要介绍的make工具,使用make工具,只需要一个命令,就可以构建你的工程。当然,代价就是编写Makefile,make工具就是靠解释Makefile文件来对整个工程进行编译和链接。

C语言的隐式类型提升和java的类型兼容

在java里,x += 1与x = x + 1相同,但是是有一点区别,只不过容易被忽略。如下例:

写给某鸟的Vim初始配置

对于文本的编辑器,适合自己才是最好的。

说到烂的面试题-链表是否存在环以及环入口点

一个已经快出到烂的面试题,如何检测到链表中存在环,如果有环,找出环入口点。