稀有猿诉

十年磨一剑,历炼出锋芒,说话千百句,不如码二行。

Python 2升级到Python 3的指导建议

“Life is short, we must upgrade to Python 3”

Python是一个非常好用的工具语言,哪怕主业中用不到它,到处可见到一些非常实用的小的工具都是用Python来写的,即使再小的工具,也要做到小而美,这是工匠精神的体现。在社区里面Python 2已经停止开发新功能了,仅维护并修复一些bug,未来也将会停止维护,有些平台已经默认用python3了。除非有些无法替换的依赖必须强制使用Python 2以外,建议要升级到Python 3。本篇记录一些朕在升级到Python 3时遇到的一些问题,也即升级的时候的一些指导提示。

年轻人的第一篇OpenGL ES 2.0教程

Before we go

在高性能graphics领域,特别是3D graphics领域,OpenGL无疑是目前的最佳选择,虽然,现在有很多集成度高的三方的库或者SDK,但是学习一下OpenGL仍然是非常有好处的,你可以了解基本的computer graphics的概念,这会让你在使用它们的时候更加的从容。

OpenGL是一个跨平台的高性能3D渲染API,OpenGL ES是它的嵌入式平台版本。

我们即将踏上学习OpenGL ES 2.0之旅,主要针对于Android平台,会有一系列文章来分享学习OpenGL ES的总结。

主要编程语言将使用Kotlin,对于Kotlin还不熟悉的同学可以先看前面的介绍实例来快速的熟悉一下。

Kotlin实战学习:撸一个程序猿老黄历

Talk is cheap, let’s code

前面一篇文章介绍Kotlin的基础知识,但光有知识是不够的,最重要的是要能在实战中使用Kotlin,这才不枉我们学习一回。这里就用纯Kotlin来开发一个简单的Android应用,以展示如何在实际项目中使用Kotlin。

走上Kotlin开发之路

在前面文章的尾部,我们展示了如何创建一个基于Kotlin安卓应用,但是过于简单,因为仅是代码换成了Kotlin,布局还是在用XML,这并没有用到Kotlin的全部。为了更加方便的开发Android应用,发挥Kotlin语言的巨大优势,JetBrains在发布Kotlin的同时,也发布一个专门用于Android开发的配套的库Anko,它最大的优势就是以DSL的方式来创建UI,下面我们来介绍一下Anko。

学习Kotlin,看这一篇就够了

人生苦短,要用Kotlin

这是一种对程序猿更为友好的语言,可以减少开发者的工作量,原本由开发者干的事情,其实很多都可以由编译器实现了,这是一种更为高级的语言。Java虽然严谨,但却过于繁琐,太啰嗦了,一个小事情却要写大量的代码,而且有些代码又是非常机械式的,在实际编码过程中都是用IDE来自动生成。Java,C,C++,Object C这些都是上世纪的编程语言。

现在到了新时代了,编程也发展了很多,像lambda表达式,函数式编程,等等一些新的概念和范式在涌现。所以就有了新时代的编程语言,像水果的Swift,Groovy,Scala,以及Java阵营的Kotlin。Kotlin是新一代的编程语言,与Java完美融合,简洁,方便,可以大大提高程序可读性,特别是对于Android开发者来说。水果推出了Swift以解放水果平台的开发者,而Kotlin就是来解放Android开发者的。

初识微信小程序

微信小程序,可以说是最近比较火的一个话题了,到处都是小程序的新闻,于是孤也来凑一凑热闹,花了几个小时撸了一个程序员老黄历,来体验一下小程序。

为猿七年有余,痒否?痛否?

还未有感,已然岁末,犹叹时之箭逝去如斯也,稍纵命再减一。回首望,为猿七年有余已,虽不成气候,亦未全蹉跎。略做小结,以不惘逝去之时日,亦会大益于尔后路途。若博文能助足下之一二,孤将甚悦。

职业是无数个连接起来的马拉松

小学时,我们很清楚的知道5年后就毕业了(孤当年是五四制,现在貌似有的地方也是),无论多么讨厌老师或者 同学,或者学校,都知道最多忍5年就结束了;初中高中也一样,三四年样子,很快就过去了,多少欢乐悲喜都会很快的过去;大学更是如此,从入学进校园那天起你就开始倒计时,知道四年后的一天要离开,再怎么珍惜,再怎么蹉跎,时间仍然以它亘古不变的速度在向着一个方向跑着。

理解Android Gradle构建系统

Gradle是一个新型的强大的构建系统。Android很早就开始支持Gradle了,到现在已经完全切换到Gradle构建。它的优势也是比较明显的,更强大的配置,方便的依赖管理,简洁的语法(Groovy DSL),跟啰嗦的XML相对,这是很大的进步。

理解Java ThreadLocal

ThreadLocal是Java提供的为每个线程存储线程独立的数据的存储方式,也就是说用ThreadLocal来保存的数据,只能被当前线程所访问,其他线程无法访问,因为只有(一个线程)当前线程能够访问,所以它是线程安全的,可以用来存储一些不能被共享的数据。