• BLOG
  • ARCHIVE
  • X
  • GITHUB
  • ABOUT
  • RSS
  • 开发机安装配置golang和使用CGI

    Dec 13, 2016

    本博客采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本博客文章必须也遵循署名-非商业用途-保持一致的创作共用协议.

    安装golang

    • Golang download下载合适版本的golang二进制发布包.
    ...more
  • 传统软件公司/创业公司/大公司的工作机会如何选择?

    Nov 21, 2016

    本博客采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本博客文章必须也遵循署名-非商业用途-保持一致的创作共用协议.

    背景介绍: 第一家工作的公司是一家跨国外企安全公司, 骄傲的称自己不是互联网公司而是传统软件公司, 第二家公司是当下最热的知识分享社区, 创业公司. 第三家公司是挤走谷歌, 曾一度称霸中国的搜索引擎公司, 体量很大的著名三大互联网公司之一.

    每一家公司我都接触的不是很久, 没能用一生的时间来体验一个公司, 只能说一下我在短时间看到的优势和缺陷

    ...more
  • Linux内核设计与实现读书笔记

    Nov 15, 2016

    本博客采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本博客文章必须也遵循署名-非商业用途-保持一致的创作共用协议.

    Unix强大的根本原因:

    1. Unix简洁, 提供几百个系统调用, 设计目的明确
    2. Unix中所有东西都被当做文件对待
    3. Unix内核和相关系统工具是用C语言开发的, 移植能力强大
    4. Unix进程创建迅速, 有独特的fork机制
    5. Unix提供简单稳定的进程间通信元语

    Linux是类Unix系统, 借鉴了Unix设计并实现了Unix的API.
    应用程序通常调用库函数(如C库函数)再由库函数通过系统调用界面, 让内核代其完成各种任务.

    ...more
  • Google Protobuf源码剖析(一)

    Nov 7, 2016

    本博客采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本博客文章必须也遵循署名-非商业用途-保持一致的创作共用协议.

    很久之前写过一篇Google protobuf(C++) 学习笔记. google protobuf被大量用于公司的RPC通信中作为序列化和序列化工具, 高于JSON和XML的性能值得拥有. 刚好最近有时间, 准备强读一发google protobuf源码

    前提

    本文所有所有示例均基于官方示例addressbook.proto:

    ...more
  • 某度实习总结

    Oct 29, 2016

    本博客采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本博客文章必须也遵循署名-非商业用途-保持一致的创作共用协议.

    人呀,有时候也要考虑一下历史的行程,也要总结一下人生的经验。算算一个人来北京实习一年了,上半年在某乎,下半年在某度,而北京这个地方却没有给我留下太深的印象,喜欢的地方不多。马上要离开某度了,简单的总结一下自己吧,同时发泄一下最近消极的心情。过段时间可能会再写一篇,对传统互联网/创业公司/大体量公司的择业思考(又挖新坑)。

    文章大概几个部分吧,北京印象,人文关怀,工作感受,个人心得。文章中可能会出现一些某乎和某度的对比,仅个人见解。本文一切均个人视角请勿对号入座,想到哪里写到哪里。

    ...more
  • Linux进程创建和调度学习笔记

    Oct 8, 2016

    读书笔记

    进程管理

    进程是处于执行期的程序, 包含代码段, 打开描述符, 挂起信号, 内核内部数据, 处理器状态, 一个或多个具有内存映射的内存地址空间及一个或多个执行线程.
    线程是进程中活动对象, 包含独立的程序计数器, 栈和一组进程寄存器. 线程间可共享虚拟内存, 但每个都拥有各自的虚拟处理器

    • 内核将进程的列表放在一个双向循环链表中, 每项为task_struct
    • 进程执行系统调用或者异常处理才会陷入内核空间(内核态)
    • Linux所有进程都是PID为1的init进程的后代
    ...more
  • 深入探索C++对象模式读书笔记

    Sep 30, 2016

    什么是C++对象模型?

    1. 语言中直接支持面向对象程序设计的部分.
    2. 对于各种支持的底层实现机制.

    Object Lessons

    1. C++封装并未增加布局成本, 数据成员内含在class object中(像struct), 成员函数不会出现在object中, 非内敛函数只会诞生一个实例, 内联函数对每个使用者产生一个实例
    2. C++在布局及存取时间上主要的额外负担是由virtual引起的
      • virtual function支持动态绑定
      • virtual base class实现单一而被共享的基类实例, 多用于多继承中
    ...more
  • macOS Sierra 惊险升级

    Sep 24, 2016

    惊现问题

    2016年9月21 Apple开始推送 macOS Sierra(10.12).

    此处升级的亮点:

    • 亮点就是没有亮点!!!
    • 最大的升级是Mac OS X 改名为 macOS', 很大的改变有木有
    • Mac增加了Siri支持, 我知道我Mac多了个天气预报小助手
    • 可以使用Apple Watch自动近距离解锁Mac, 听说Near Lock已哭晕在厕所? 然而首先你要买一部 Apple Watch
    • 跨设备复制粘贴, 可以使用云端剪切板, iPhone上复制的东西可以在Mac上直接黏贴. 然而首先你要买一部 iPhone
    • Safari我就不喷了, 反正用了Chrome的我实在受不了龟速的Safari. 听说Safari很省电, 这个卖点不错!
    • 还有啥? 这次升级只有很少的App闪退阵亡.(呵呵

    然后开始作死升级之路… 怎么升级就不说了, 正常人都知道….

    ...more
  • Lua热更新

    Sep 17, 2016

    什么是热更新

    Hot swapping is ability to alter the running code of a program without needing to interrupt its execution.
    –Wikipedia

    热更新: lua虚拟机运行时, 修改出现bug或者想要增加新feature的代码, 不需要去重启整个服务.

    ...more
  • Lua编码规范

    Sep 4, 2016

    写代码是为了给别人读的, 所以总需要一些建议性的规范, 所以简单的翻译了一下国外的这篇Lua编码规范, 并做了一些适合自己的改动.

    Introduction

    代码写出来是给人读的, 保持一致性能够增加改善代码的可读性. 一致性(Consistency)在项目之间, 项目内部, 单个模块或单个函数中非常重要. 值得注意的是, 编码规范只是一种建议, 有时可能并不需要去遵守编码规范.

    ...more
PREVNEXT

© 2014 - 2026 Andrew Liu, powered by Hexo and hexo-theme-apollo.