#13 程序员字体

2018-11-01

纯英文:

  • Apple Monaco
  • Courier New
  • Consolas
  • DejaVu Sans Mono <>
  • JetBrains Mono
  • Source Code Pro
  • Ubuntu Mono
  • Inconsolata
  • Fira Code

中文:

  • 思源黑体(Source Han Sans)
  • YaHei Consolas Hybrid
  • Google Noto Mono

#12 常用开发工具

2018-06-26

我本来就想记录一下请求搜集服务的,结果扩大化,发现完全兜不住,好吧,就这样吧!

#11 常见的时间格式

2017-07-24

日常使用

中国人习惯年月日时分秒,这可能也是一般符合国际通行规范的时间格式。

yymmdd
yyyymmdd
yyyy-mm-dd hh:mm:ss
yyyy/mm/dd hh:mm:ss

如果加上毫秒/微秒,在秒后面接上 ,SSS.SSS 就行。

但是由于英美的国际地位,以及由于历史原因而导致的英语的强势地位,英文国家的表述习惯也不能不考虑,

  • May 4, 1919 美式英语,读 may forth nineteen nineteen
  • 4 May, 1919 英式英语

用阿拉伯数字表示的话,可以用小数点、横杠、斜杠连接,数字可以用前导 0,
不过有一点很悲剧了,5/4/1919,如果不清楚上下文语境中的文化背景,谁 TM 知道应该算五四,还是四五。

Unix 时间戳

Unix Timestamp

又叫 Unix 时间(Unix Time),又叫 POSIX 时间(POSIX Time),又叫 Epoch Time。

以 UTC+0:00 1970/01/01 00:00:00 为起点,至今的秒数就是时间戳的值。

实际上我在很多项目中用到的时间戳都没有考虑时区,直接用当前系统默认时区的 1970/01/01 00:00:00 为起点,或者说是把当前时区时间当作零时区时间。

RFC2822

Internet Message Format, 邮件格式

date-time       =       [ day-of-week "," ] date FWS time [CFWS]
day-of-week     =       ([FWS] day-name) / obs-day-of-week
day-name        =       "Mon" / "Tue" / "Wed" / "Thu" /
                        "Fri" / "Sat" / "Sun"
date            =       day month year
year            =       4*DIGIT / obs-year
month           =       (FWS month-name FWS) / obs-month
month-name      =       "Jan" / "Feb" / "Mar" / "Apr" /
                        "May" / "Jun" / "Jul" / "Aug" /
                        "Sep" / "Oct" / "Nov" / "Dec"
day             =       ([FWS] 1*2DIGIT) / obs-day
time            =       time-of-day FWS zone
time-of-day     =       hour ":" minute [ ":" second ]
hour            =       2DIGIT / obs-hour
minute          =       2DIGIT / obs-minute
second          =       2DIGIT / obs-second
zone            =       (( "+" / "-" ) 4DIGIT) / obs-zone

1992/02/12 12:23:22+0800

Wed, 21 Jul 2017 10:35:00 +0000 (UTC)
Wed, 21 Jul 2017 18:35:19 +0800 (CST)
Wed, 21 Jul 2017 03:35:02 -0700 (PDT)
import time
import datetime

time.strftime('%a, %d %b %Y %H:%M:%S %z')  # local timezone
time.strftime('%a, %d %b %Y %H:%M:%S %z', time.gmtime())  # UTC

tz_e8 = datetime.timezone(datetime.timedelta(hours=8)) # +08:00
dt_e8 = datetime.datetime.now(tz_e8)
print(dt_e8)
print(dt_e8.strftime('%a, %d %b %Y %H:%M:%S %z'))

tz_w8 = datetime.timezone(datetime.timedelta(hours=-8)) # -08:00
dt_w8 = datetime.datetime.now(tz_w8)
print(dt_w8.strftime('%a, %d %b %Y %H:%M:%S %z'))

# dt_e8.strftime('%Y-%m-%d %H:%M:%S.%f')

ISO8601

约定了时间中各个部分的格式,比如年份应该采用四位数字,日期应该怎么表示,时间范围(比如一个月),循环时间,时间区间应该如何表示之类,是一份完整的时间相关规范。

对应的中国国家标准是 GB/T 7408-2005

比如我们要说的完整时间格式化就有几种允许的格式,下面就是常见的一种符合规范的表述:

YYYY-MM-DDThh:mm:ss+offset

例如:

2004-05-03T17:30:08Z
2004-05-03T17:30:08+08:00

其他

JavaScript 日期输出:

Sat Jul 24 2017 15:42:49 GMT+0800 (中国标准时间)

Python datatime 类型转字符串:

2017-07-25 12:09:39.123173+08:00

#10 高效的代码部署 [编辑中]

2016-07-08

对于一个服务来讲,代码部署的速度和便捷性并不是一件很要紧的事情。但是对于开发者来说,能够高效部署代码,还是能够在一定程度上提升自己开发和测试的效率。

#7 时区

2016-01-01

时间是客观存在的,但我们对时间的认识却是主观的。
我们的计时方法深受我们的语言和文化的影响。

#5 如果再来一次,大学我会怎么读(计算机专业)?

2015-10-01

计算机专业课程 比较多,学校教的太杂,往往还没得选,总不能挂科毕不了业吧。

关键是在校期间,对于外面的就业环境完全不知道怎么回事,不知道以后会做什么工作。所以学习也没有重点。

如果我在大学期间就有现在的视野,那我会怎么学习。

确定方向

  1. 我从来没有准备考研,再来一次我还是不考研,早点出来工作赚钱对我和我的家庭来说,是非常务实的选择。
  2. 除了重点科目之外,一律混得过去就行,不用花时间研究。
  3. 选择一个门槛不要太高,好找工作的方向,比如 Java 程序员,PHP 程序员,Linux C,先能在社会上立足,再思考下一步的发展。

基础科目

这几门课程都要认真实验,在课程基础之上要自己去专研。

  • 计算机组成原理
  • 操作系统
  • 结合 Linux
  • 计算机网络
  • Linux 网络管理
  • 数据结构与算法
  • 数据库系统原理
  • 结合 MySQL

编程语言

学校安排得语言都认真学习,不要用来考试,花太多时间研究 i++++i 这样没有实际意义的问题上,要用来写项目。每学一门语言都要写一个真正的项目。

  • C / C++
  • Java
  • PHP Web 开发(PHP + MySQL)
  • Python

PS:每一门语言都要实践一遍数据结构与算法课程的知识,还有设计模式。

工具

  1. 学习 Linux 基础,然后后续所有实验都在 Linux 上操作。
  2. 代码用 Git 管理(GitHub,Gitee)。
  3. 学习笔记采用 Markdown 记录,通过网盘同步。

自学前端

不管什么方向,能弄个 Web 系统都是必要的。

  • HTML, CSS, JS 入门
  • React / Vue 入门(如果是现在)
  • 能在开源项目基础上改改

其他

  1. 了解互联网架构设计,及常用的服务和组件。
  2. 不求多么深入,只要在心里有个基本概念。