• C++ 程序员的 Java 指南

    这是一个 C++ 程序员自己总结的 Java 学习中应该注意的点。 缘起因工作原因从 Windows 客户端开发转为 Android 客户端开发,所以主要的开发语言也由 C++ 变为了 Java,在学习 Java 的过程中,即享受到 Java 的自带...
  • 在 Vim 里为 Markdown 文档展示导航窗格

    假设我们正在 Vim 里编辑一个很长的 Markdown 文档,这时想跳转到另一个章节去查看或编辑内容,可以怎么做? 查找章节标题。 上下翻页。 记得行号,精确跳转(请收下我的膝盖)。 … 不知你此时感受如何,反正我是无比想念 Word 的导航窗...
  • 一道在知乎很火的 Java 题——如何输出 ab

    这是一个源自知乎的话题,原贴链接:一道百度的面试题,有大神会嘛? 虽然我不是大神,但我也点进去看了一下,思考了一会之后有了一些思路,然后去看其它人的答案的时候果然全都已经被各路大神们先想到并贴出来了,所以我就不去凑热闹写重复答案了,整理一下网友们的智...
  • Fisher–Yates shuffle 洗牌算法

    content{:toc} 简单来说 Fisher–Yates shuffle 算法是一个用来将一个有限集合生成一个随机排列的算法(数组随机排序)。这个算法生成的随机排列是等概率的。同时这个算法非常高效。 本文主要介绍这个算法的来源、演变、原理。...
  • vim-markdown-toc 发布 v1.0 版

    前几天,第一款由我独立开发的 Vim 插件 vim-markdown-toc 升级了功能,发布了 v1.0 版本。 它的主要功能是为 Markdown 文件生成 toc(Table of Contents)、更新已经存在的 toc 和在保存时自动更新...
  • 前端如何写一个精确的倒计时

    content{:toc} 关于写倒计时大家可能都都比较熟悉,使用 setTimeout 或 setInterval 就可以搞定。几秒钟或者几分钟的倒计时这样写没有问题,但是如果是长时间的倒计时,这样写就会不准确。如果用户修改了他的设备时间,这样...
  • 使用 JavaScript 创建并下载文件

    content{:toc} 本文将介绍如何使用 JavaScript 创建文件,并自动/手动将文件下载。这在导出原始数据时会比较方便。 先上代码12345678910111213/** * 创建并下载文件 * @param {...
  • Objective-C Runtime 详解

    前言 最近在学习Runtime的知识,恰巧发现了这篇博客《Objective-C Runtime》,在此基础上,进行了些许补充说明,如有错误或其他想法,欢迎提出交流。 基础知识 引言 简介 与Runtime交互 RunTime术语 消息 动态方法解...
  • 搭建大型源码阅读环境——使用 OpenGrok

    RTFSC 是程序员打怪升级路上避不开的功课,那营造一个舒适的环境来提升上课的体验就很有必要了。 比如阅读 AOSP 这种大型源码,用什么姿势来阅读才能丝般顺滑,让 F**king Source Code 也变得不那么可恶呢? 工具的选择阅读源码的工...
  • 我的 2016 盘点

    总结是为了更好地再上路。 在我人生的前二十几年是没有做年度计划和总结的习惯的,但在 2015-12-31 时和饭团团员们心血来潮一起做了个 2016 PLAN,现在 2016 已经被完整地甩在身后,是时候回顾以明得失,展望以知进退了。 如果用一句话来...