#4 几种常见的命名风格

2014-02-18

  1. 匈牙利命名法 = 数据类型标识 + 大驼峰
  2. 这个数据类型标识和所采用的语言和技术栈关系非常密切。
  3. 在早期计算机编程实践中,由于缺少 IDE 支持,这样做的好处十分明显。
  4. 如果接触 Windows C 开发,会见到这种风格。
  5. 驼峰命名法
  6. 小驼峰:camelCase
    PS:如果没有特别声明,驼峰 = 小驼峰。
  7. 大驼峰:CamelCase,又叫帕斯卡命名法 PascalCase
  8. 下划线命名法
  9. Python 官方推荐的风格。

#3 使用 Gravatar(全球认证头像)

2013-12-09

如何获取 Gravatar 头像地址?

PHP

$email_address = 'abc@xyz.com';
$default = '';
$size = '';
$url = 'https://www.gravatar.com/avatar/' + md5(strtolower(trim($email_address)))

Python

email_address = 'abc@xyz.com';
default = '';
size = '';
"https://www.gravatar.com/avatar/" + hashlib.md5(email.lower()).hexdigest() + "?" + urllib.urlencode({'d':default, 's':str(size)})

其他语言类似。

支持的GET 参数:

  • s/size:用户头像的尺寸,单位为像素,可选值:1 - 512,默认为 80,即 80 * 80。
  • d/default:默认头像,在 email 关联的头像无法获取到的时候作为返回值,格式为 urlencode($default_avatar_url)

除了制定一个 URL 之外,还可以使用以下值:

  • 404:不加载图片,直接返回 404 响应。
  • mm:表示神秘的家伙,返回一个固定的简单卡通人物轮廓。
    b032cbf256037fbfbb6b9aa8b29acd70 (1).png
  • identicon:一个基于电子邮件哈希值的抽象图案
    b032cbf256037fbfbb6b9aa8b29acd70 (3).png
  • monsterid:产生一个不同颜色和面部的怪物
    b032cbf256037fbfbb6b9aa8b29acd70 (2).png
  • wavatar:产生不同的特征和杯具的脸。。。
    b032cbf256037fbfbb6b9aa8b29acd70.png

  • r/rating:类似于电影评级,头像也有级别的管理,避免将将某些头像显示在了不合时宜的场所,可选值:g | pg | r | x

更多详情参见:https://en.gravatar.com/site/implement/

#2 转载:如何掌握程序语言

2013-10-22

学习程序语言是每个程序员的必经之路。可是这个世界上有太多的程序语言,每一种都号称具有最新的“特性”。所以程序员的苦恼就在于总是需要学习各种稀奇古怪的语言,而且必须紧跟“潮流”,否则就怕被时代所淘汰。
作为一个程序语言的研究者,我深深的知道这种心理产生的根源。程序语言里面其实有着非常简单,永恒不变的原理。看到了它们,就可以在很短的时间之内就能学会并且开始使用任何新的语言,而不是花费很多功夫去学习一个又一个的语言。

#1 计算机专业课程

2013-04-13

计算机的本科教育主要是不变的政治、英语、数学,加上计算机专业课。

  • 政治
  • 英语、专业英语
  • 数学
  • 高等数学(微积分)
  • 离散数学
  • 线性代数
  • 概率论与数理统计
  • 计算机专业课
  • 电气方面
    • 大学物理
    • 模拟电路
    • 数字逻辑(数字电路与逻辑设计)
    • 信号处理原理
    • 系统分析与控制
  • 硬件方面
    • 计算机组成原理
    • 计算机体系结构
    • 微机原理与接口技术
    • 汇编语言
  • 理论课程
    • 操作系统
    • 计算机网络
    • 数据结构与算法
    • 数据库系统原理
    • 编译原理 / 形式语言 / 自动机 / 程序语言理论
    • 软件工程
  • 编程语言
    • C
    • C++
    • Java
    • Python
    • PHP
    • C#
  • 一些杂七杂八的课程(更细致的发展方向)
    • 多媒体技术
    • 相关法律法规
    • Linux 驱动开发
    • 人工智能 / 机器学习 / 自然语言处理
    • 云计算
    • 分布式系统
    • 图形学
    • 机器人工程
    • SQL Server
    • 计算机安全
    • 计算机视觉(CV)
    • 软件测试

PS:我觉得比较重要的五门理论课程加粗了。

参考资料与拓展阅读