归档: 2016

读一首诗——纪伯伦《孩子》

今天在最喜欢的陈老师的《待字闺中》那里读到一首诗,纪伯伦(Kahlil Gibran)的《孩子》,很有感触。将冰心的译文和原文奉上。 1234567891011121314151617孩  子 你们的孩子,都不是你们的孩子。乃是生命为自己所渴望的儿女。他们是凭借你们而来,却不是从你们而来,他们虽和你们同在,却不属于你们。你们可以给他们以爱,却不可给他们以思想。因为他们有自己的思想。你们可以荫庇他们

SDK 开发最佳实践之一:为你的 SDK 增加 No-Op 版本

笔者在开发和维护 Bugtags SDK 的一年多时间里面,趟过了不少坑,走了不少弯路,也积累了不少经验。这个 SDK 开发最佳实践系列,就是分享经验教训,帮助读者打造一款跟 Bugtags 这样快速成长的 SDK。 SDK 的使用场景站在用户的角度来看,引入一个 SDK 可能会带来几方面的问题: 包增大 可能不稳定 安全性问题 对于一些 SDK,产品形态是允许在测试阶段开启,上线移除的,

Google Play 改变关于 location.gps feature 的设定

上个阶段忙一些个人事务,更新的少了。这段时间会集中发一些个人学习心得。 收到邮件21号收到一封 Google Play 发来的邮件,告知如下信息: 12345Hello Google Play Developer,We're writing to let you know that the apps listed at the end of this email may be af

Android Gradle 构建系统·初探

8月7号,应北京 GDG 邀请,我做了一个题为《Android Gradle 构建系统·初探》的分享。 主要内容是构建系统背景知识,源码库,代码亮点,写插件。 很明显这是一个很大的话题,有超过 2.5GB 的核心代码和超过50个子项目。 第一步,我进行了宏观的介绍。下一步,我会继续深入子项目,尝试发现更多有意思的点。 对这个话题感兴趣的,请加入技术交流 qq 群:583688711。 Slides

Bugtags 笔记:公关稿奇遇记

写手长久以来,我们团队都缺乏一位优秀的写手。目前,一些公关稿,都是我们的 CEO 和我勉强冒充写手顶着上。 我们之前也找过几位做技术的朋友写过稿子,出来之后,总是觉得事儿是写明白了,读着总像一个使用说明书,勾不起人的分享欲望。 上周,我们外部找了一位以前做市场的人来写手写一篇公关稿,谁想到,这个过程,最终成为公关稿奇遇记。 缘这位同志,下称成为写手 X,某次活动认识的,自己也运营了若干自媒体。这哥

Bugtags 创业一年总结

出发在经历过了多轮的 APP 开发/测试/上线/运营周期之后,我们觉得 APP Bug 反馈环节始终十分低效,我们要来改变一下这个状态。于是有了 bugtags.com。 一年从去年六月正式立项,八月中旬内测,九月中旬正式上线以来,bugtags 已经走过了快一年。 还记得去年八月中,我们忐忑的发给身边的朋友试用,没想到好评不断,一开始设置的邀请码申请机制,没几天就被迫取消了——因为太多人申请了,

Hexo 与 Nginx 实现沉浸式多语言博客

沉浸式多语言博客假期的时候,打算改造下现有的博客系统。目标之一是实现多语言(主要是中英)切换,要求:沉浸式阅读。 查找了一下,Hexo 有如下几种工具与国际化有关: Hexo 官方的国际化机制 Hexo 官方推荐的插件:hexo-generator-i18n 非官方推荐的插件:hexo-multilingual 逐一尝试官方国际化机制:failed更多是在解决模板翻译问题 hexo-gener

NDK SO 库开发与使用中的 ABI 构架选择

Bugtags V1.2.7 引入了 NDK SO 库,在集成的时候,遇到不同的 SO 库打包到 APK 时,安装在某些机器上,出现 java.lang.UnsatisfiedLinkError 加载失败。 为此,深究了一下原理,和给出了解决方案。 原理Android 系统本质是一个经过改造的 Linux 系统。最早,Android 系统只支持 ARMv5 的 CPU 构架,随着 Android

Android Gradle 技巧之二: 最爱命令行

如果你习惯了命令行,你会爱上它的,因为它简单、直接,深入。 命令行很多做 Android 开发不久的同学,习惯于使用图形界面,对命令行操作很陌生甚至恐惧。遇到 AS 运行错误,束手无策。 AS 为了确保易用性,也在 UI 界面上屏蔽了很多命令行运行的细节,导致很多人觉得 AS 难用。 这种情况,我在解决用户集成使用 Bugtags SDK 的问题的时候,经常能遇到。其实 GUI 界面的操作,绝大部

Android Gradle 技巧之一: Build Variant 相关

Build Variantandroid gradle 插件,允许对最终的包以多个维度进行组合。 1BuildVariant = ProductFlavor x BuildType 两个维度最常见的就是这样: 1234567891011121314151617productFlavors { pro { } fre { }&

体验移动直播

节前我在朋友圈发了一个问题:有的人说文字是1维,图片是2维,视频是3维,那移动直播是几维? 其实这是一个严肃的问题,但是相当一部分的朋友,都是回答了,三围。 这个回答很逗,但基本反映了现状和大部分的看法。除了三围,其实我在映客里面看到了更多。 移动直播具有成熟的盈利模式,也有着一部分共享经济的特质,是一个很好的生意,甚至可能会成为一个好的媒体。 风潮来袭移动直播风潮在2016年疯狂来袭,仅 bug

拥抱 Android Studio 之五:Gradle 插件开发

官方文档给出了比较详细的实现步骤,本文的脉络会跟官方文档差不了太多,额外增补实际例子和一些实践经验。文中的代码已经托管到了 github 项目中。 需求默认的 Android 打包插件会把 apk 命名成 module-productFlavor-buildType.apk,例如 app-official-debug.apk,并且会把包文件发布到固定的位置: module/build/output

如何更好的提出技术问题

下面咱们就来聊聊技术人的素养:如何更好的提出技术问题。笔者从事 Bugtags.com 开发运营以来,除了开发任务以外,最重要的工作就是在 qq 群里面回答用户的问题。 这半年来,少说也接待了上千个用户了。笔者发现,有相当一部分的用户,提问方式和技巧都有问题,这样导致了我们额外的客服量,也使得自己的问题得不到及时满意的回答。 下面咱们就来聊聊技术人的素养:如何更好的提出技术问题。 直接了当有的用

拥抱 Android Studio 之四:Maven 仓库使用与私有仓库搭建

使用、创造和分享笔者曾经不思量力的思考过『是什么推动了互联网技术的快速发展?』这种伟大的命题。结论是,除了摩尔定律之外,技术经验的快速积累和广泛分享,也是重要的原因。 有人戏称,『写 Java,首先要学会选包』,在这里不好评论对错。不过这句话里面,至少包含两层意思:首先 Java 有大量的现成的依赖包,不必要自己造轮子;其次,Java 的包存放较为集中,集成方式也方便。 笔者从事 Android

拥抱 Android Studio 之三:溯源,Groovy 与 Gradle 基础

关于学习方式续回忆起大学那个白衣飘飘的年代,开始金工实习却发现基础学的不牢靠,越来越胆小,越来越糊涂。所幸得到一位高年级学姐指导,赶紧找当时的书或者笔记,快速把基础知识温习一遍,再结合实践中思考,终于豁然开朗。 相信看过前一篇 《Android Studio 与 Gradle 深入》的同学,有一部分就会遇到我初识 Gradle 时的困惑:代码我也依稀看得懂,但就是不知道还能这样写,为什么这样写。

时隔十年,再度看高考——最终选择

数据整理经过前面的诸多准备和信息收集,我得到了类似这样数据表: 因素都如下考虑: 大学排名不一定客观,但是能够反应一个学校的综合实力,可做参考。 一个具有活力的城市,会让你的大学生活更加丰富。 一个清晰明快的大学官网,能够反映掌管学校门面的人的格局和审美。 过去两年的录取信息,可以让你清晰知道这所学校的难度和档次。 填报志愿给出一张平行志愿录取原理图。 因为今年可以填报第一志愿组7个志愿,第

时隔十年,再度看高考——衡量分数水平

时隔十年,再度看高考今年大侄子参加高考,成绩出来了,协助报志愿。 主要的问题,是怎么衡量分数水平,选择什么学校。 今年的广东高考,使用了全国卷,可能是题目较难,分数线比以往低了很多,同时今年取消了二本和三本的说法,统一叫做二本。这些新变化,对于填报志愿造成一定的困扰。 以理科控制分数线为例: 年份 一本 二本 A 二本 B 2016 508 N/A 402 2015 577 51

时隔十年,再度看高考——信息与规则

信息决定成败记得有人曾经对我讲过,信息决定成败。一开始我很质疑这句话。近年来的经历和观察,让我明白到,掌握尽量多的一手信息,将会帮助决策,甚至决定成败。 作为考生或者家长,应该注意什么呢? 我认为应该应该掌握官方排位信息,理解平行志愿的规则,志愿填报和录取政策。 排位信息我在上一篇博客中,给出了准确估算成绩的方法,也援引了所依据的公开排位信息。 2016分数段统计-理科 2016分数段统计-文科

时隔十年,再度看高考——工具与初选

善用工具之前我们已经介绍了分数水平查询工具,例如将2016年的 474 分,转换成如下的分数: 122015:5322014:512 经过微调之后,大概是这一个样子: 122015:5352014:514 接下来,问题就变成:这两个分数,在对应的年份都能上什么学校。 要回答这个问题,先介绍一下所使用的工具。 工具选择一般情况下,学校都会推荐学生购买一本《报考指南》,这本书是最权威的书籍,售价也不菲