HTML
2021-08-21
HTML5 的一个重要变化是彻底放弃 XML 化路线,也就是所谓的 “no logger based on SGML”,事实上 HTML5 就是因为浏览器厂商和 W3C 之间存在是否应该 XML 化这个分歧才诞生出来的。最终厂商联盟 WHATWG 获胜,取得了标准制定方面的绝对话语权(W3C 设计的 XHTML2 胎死腹中),其他的功能上的大跨度变化(除了本身的功能增加之外,对外设备连通性,性能)都只能算是副产品。
我们常说的 H5 实际上是 HTML5 + CSS3, JS 一般好像没有要求,应该还是默认 ES5, 不过现在 ES6 目前也已经在主流浏览器上得到了很好的支持。
黄色:废弃
绿色:新增
红色:非标准
标签
基础框架
<!DOCTYPE>
<!-- -->
html
head
body
title
meta
base
basefont
style
link
文档结构
p
h1
... h6
ul
, ol
, li
dl
, dt
, dd
dir
使用 ul 替代
span
div
table
, tr
, td
, th
, thead
, tbody
, tfoot
, col
, colgroup
, caption
a
样式/排版
abbr
, acronym
简写
bdo
文字书写方向
b
, strong
big
, small
center
font
i
斜体
s
, stike
中划线
u
下划线
del
, ins
删除、插入,默认就是加上中划线和下划线
em
强调
dfn
术语
q
, blockquote
, cite
引用
address
var
变量
samp
样本
kbd
br
hr
sub
, sup
ruby
, rt
, rp
pre
, code
图片/视频/音频
img
map
area
canvas
figcaption
figure
piture
svg
audio
video
source
track
表单
form
input
select
textarea
button
option
, optgroup
label
legend
datalist
配合 input 使用
output
Frame
frame
frameset
noframes
iframe
程序
script
noscript
embed
可能是 v4 没有纳入标准
object
param
applet
语义标签
main
header
footer
nav
article
aside
section
details
dialog
menu
menuitem
火狐
summary
Web Components
Custom Elements
H5 特性。
新的 API
- SVG
- Canvas
- 音频/视频
- WebRTC
- 本地存储
WebStorage
: LocalStorage
+ SessionStorage
IndexedDB
WebSQL
PS: WebSQL
相关规范已经冻结,所以现在不属于 HTML5 标准,只有 Safari 和 Chrome 系浏览器支持。
火狐全力支持 IndexedDB
,认为一项标准不应该依赖一个具体的实现(SQLite),而且对于在网页端执行 SQL 非常不看好。
- WebAssembly
这同样不属于 HTML5 的范畴,不过也是一项重要的标准,可能对 Web 开发产生很大的影响。
- WebSockets
- Server-Sent Event
- 2D/3D (WebGL)
- XMLHttpRequest Level 2
参考资料与拓展阅读
论坛 Discuz
2021-08-21
在看腾讯云服务器时,意外看到一个镜像的名称是 Discuz! Q,看这个名字,难道康盛发了新产品?
打开官网,从其介绍中了解到:
- 完全重写的版本
- 真开源:Apache 2.0 协议
从官网下载的包可以看到代码中的版权声明确实是 Apache 2.0 协议,不是之前那种语焉不详的中国特色 “开源” 协议
不过,官网号称即将上到 GitHub,但距离第一个版本发布已经一年半了,依然不能在 GitHub 上找到相关仓库
- 读写分离:后端 PHP7,前端 Vue.js
- H5 友好
其他:
- 更新记录
Discuz! Q alpha v0.1.200124 2020/1/24 第一个版本
Discuz! Q RC v1.0.200715 2020/7/15 第一个正式版本
Discuz! Q RC v3.0.210824 2020/8/24 最新版本
1. 官方演示站:https://discuz.chat/ 如果感兴趣可以打开看看。
既然腾讯有投入,那说明这个东西还是有一定价值啊,不知道阿里巴巴收购的 PHPWind (09 年就歇菜了) 会不会再起来蹦跶蹦跶?
Python PythonSourceCode
2021-08-19
cpython/Include/cpython/tupleobject.h
INIT_TYPE(&PyList_Type, "list");
SETBUILTIN("list", &PyList_Type);
PyTypeObject PyList_Type
的定义在 Objects/listobject.c
中。
成员方法
相关的方法在 #define LIST_.+_METHODDEF
的定义中,比如 extend
方法:
#define LIST_APPEND_METHODDEF \
{"append", (PyCFunction)list_append, METH_O, list_append__doc__},
static PyObject *
list_append(PyListObject *self, PyObject *object)
/*[clinic end generated code: output=7c096003a29c0eae input=43a3fe48a7066e91]*/
{
if (app1(self, object) == 0)
Py_RETURN_NONE;
return NULL;
}
static int
app1(PyListObject *self, PyObject *v)
{
Py_ssize_t n = PyList_GET_SIZE(self);
assert (v != NULL);
if (n == PY_SSIZE_T_MAX) {
PyErr_SetString(PyExc_OverflowError,
"cannot add more objects to list");
return -1;
}
if (list_resize(self, n+1) < 0)
return -1;
Py_INCREF(v);
PyList_SET_ITEM(self, n, v);
return 0;
}
Golang Gin
2021-08-17
:) 本文正在编辑中,暂时不提供浏览...
软件工程
2021-08-15
- 分析:产品需求文档 (Product Requirements Document, PRD)
- 设计:模型,模式,业务规则,软件架构
- 编码:开发,验证,集成
- 测试:测试
- 维护:安装部署 Deploy、升级 Upgrade、配置、迁移 Migration、集成 Integration、评估 Evaluation 、技术支持 Support
https://www.ruanyifeng.com/blog/2019/03/agile-development.html
敏捷开发入门教程
https://docs.microsoft.com/zh-cn/devops/plan/what-is-agile-development
什么是敏捷开发?
净室
CMMI
RUP
极限编程 XP
Scrum
Kanban
RAD
分析
设计
编码
测试
维护:运维,运营,售后工程师
技术写作:
- 用户手册 User Guide
- 开发手册 Developer Guide
- 管理员手册 Administrator Guide
- 故障排除 Troubleshooting
- 问答 FAQs (Frequently Asked Questions)
- 发布说明 Release Notes
- 白皮书 Whitepaper
- How To Guide
- 用户案例 User Cases / Success Stories
开发模型
CMM,能力成熟度模型 Capability Maturity Model
CMMI,能力成熟度模型集成 Capability Maturity Model Integration,还有要给中文商标:希迈
GJB5000
GJB 5000-2003 军用软件能力成熟度模型
GJB 5000A-2008 军用软件研制能力成熟度模型
GJB 5000B-2021 军用软件能力成熟度模型
项目管理
2021-08-15
在软件开发领域,最知名的项目管理证书应该就是 PMP 了。与之对应的有 IPMP, CPMP。
PS:此外还有 6Sigma 等。
PS:PMI 协会除了 PMP 认证之外,还有 ACP 敏捷项目管理认证,PgMP 项目集管理认证。
PMP
项目管理专业人士资格认证 Project Management Professional
组织单位:美国项目管理协会 Project Management Institute (简称PMI)
费用:大概 3800 人民币
要求:3 年以上担任项目经理经历
IPMP
国际项目经理资质认证 International Project Manager Professional
- A 级 (IPMA Level A) 证书:特级项目经理 Certified Projects Director
- B 级 (IPMA Level B) 证书:高级项目经理 Certified Senior Project Manager
- C 级 (IPMA Level C) 证书:项目经理 Certified Project Manager
- D 级 (IPMA Level D) 证书:助理项目经理 Certified Project Management Associate
其中 C 级对应 PMP 认证。
组织单位:国际项目管理协会 International Project Management Association (简称 IPMA)
费用:大概 1200 人民币
要求:3 年以上担任项目经理经历(C 级), D 级没有要求。
CPMP
中国项目管理师 China Project Management Division
组织单位:人社部
- 高级项目管理师(一级)
- 项目管理师(二级)
- 助理项目管理师(三级)
- 项目管理员(四级)
如果不是专门查这一块资料,我应该都不知道有这个东西。
参考资料与拓展阅读
软件 Thunderbird
2021-08-14
Thunderbird 91 发布了,我本地用的还是去年发布的 78,据说新版本改版挺好的,只是不能从老版本直接升级过来,我就手动下载下来看看。
- 界面布局没有怎么变,但似乎感觉风格确实有一点变化;
- 更新机制变得和 Chrome 一样了,自带更新管理,打开 “关于Thunderbird” 就开始检查更新;
- 新增了 OpenPGP 功能,之前需要通过插件来实现;
下载
wget -c --trust-server-names https://download.mozilla.org/?product=thunderbird-91.0-SSL&os=linux64&lang=zh-CN
tar -xjvf thunderbird-91.0.tar.bz2
mv thunderbird ~/Tools/
迁移
还是官网提供的老方法 (Moving Thunderbird Data to a New Computer):
- 打开旧的客户端:菜单 > 帮助 > 更多排障信息 > 配置文件夹,
拿到配置目录: ~/.thunderbird/jum510ej.default
- 新版本客户端同样操作,
拿到配置目录: ~/.thunderbird/ksml2udy.default-release-1
- 关闭两个客户端,如果像之前跨机器迁移的话,应该是删除新目录,把旧目录复制过来改成新目录名称。
但我这是一个电脑上,我直接删除新目录,然后创建软链就行了。# ~/.thunderbird/profiles.ini
rm -rf ~/.thunderbird/ksml2udy.default-release-1
rm -rf ~/.cache/thunderbird/ksml2udy.default-release-1
ln -s jum510ej.default ~/.thunderbird/ksml2udy.default-release-1
ln -s jum510ej.default ~/.cache/thunderbird/ksml2udy.default-release-1
替换旧版本
# type thunderbird # thunderbird is /usr/bin/thunderbird
# ll /usr/bin/thunderbird # ../lib/thunderbird/thunderbird.sh
sudo ln -sf ~/Tools/thunderbird/thunderbird /usr/bin/thunderbird
# sudo apt remove thunderbird
美食
2021-08-10
先把鸡蛋用清水煮熟,然后用钢勺子敲裂,加入佐料,继续煮两个小时。
- 茶叶,也不用太多
- 酱油: 生抽,几勺子(看着办)
- 酱油: 老抽,一点点
- 冰糖
- 八角
安全 权限管理 访问控制
2021-08-09
关于访问控制,我们接触最多的是操作系统,我们在设计应用的权限系统时多少可以借鉴借鉴。
TLS TLSCert X.509
2021-08-08
证书使用者拿到证书之后会对其进行完整性校验,可信性校验,有效期校验,适用范围校验。可是其中少了一环:如果证书使用者出于什么原因主动注销证书,如何通知已经在使用该证书的人呢?
PKI (公开密钥基础建设) 有 CRL ((Certificate Revocation List 证书撤销列表) 和 OCSP (Online Certificate Status Protocol 联机证书状态协议) 两套机制。