Howto

共 127 篇文章。

关系代数中的除

Development

简单记一笔,感谢 Stanford 的 数据库入门 课程课后作业 (有人在 StackOverflow提问)。复习一下。

应用场景:找出一家能制作全部30岁以上人士需要的Pizza种类的Pizza店。

在示范数据库中给出的四个关系:

阅读全文… ( 本文约 401 字,阅读大致需要 1 分钟 )

旧金山总领事馆换护照攻略

Life

📜 本文内容可能已经过时,如有需求请自行 Google。

今天去 中国驻旧金山总领事馆 换了护照,这里记下过程,希望对别人有用。

需要准备的材料:

  1. 原护照原件。如果是正常换发,原护照所剩有效期应少于一年。
  2. 填妥的 护照申请表
  3. 原护照复印件。主要是护照第一页、来美签证页、包含最后一次出中国入美国境记录戳页,以及 I-94。
  4. 除了上述材料之外我还附了 I-797 复印件以及原件。I-797的复印件和护照复印件钉在了一起。我的理解是如果有 I-20、EAD或绿卡,和I-797应该是类似的。领事馆的说明上要求携带这些材料的原件,但实际办理时并没有向我索要。
  5. 照片:中国签证处进门左手边可以拍照,会给4张照片(所交材料中需要两张),收费为 $10 现金。注意:咨询了 Mountain View, Redwood City 和 Sunnyvale 的 Costco 1 hour photo,由于规格和美国及印度护照所需的照片不一样(中国护照需要小二寸照片),他们都 不能 拍摄中国护照所需规格的照片。
  6. 所需费用:护照本身 $55,回邮手续费 $5,这两部分费用需要在邮局或银行先购买现金支票(Money Order),收款人title为"Chinese Consulate"。此外,如果不希望回去取的话,需要提前到邮局买好 Express Mail 或 Priority Mail 的信封并付邮资、写好地址。根据表格,UPS和FedEx的预付邮资信封也可以使用,我个人这次选的是 Express Mail。

具体过程如下:

阅读全文… ( 本文约 1054 字,阅读大致需要 3 分钟 )

如何:申请用于服务器SSL/TLS的X.509证书

Security

📓 2015-03-05更新:本文中部分干货已过时,本文本身也不再更新。请参阅 这张作弊条。由于 ACME 协议的普及,现时通常只需生成密钥对即可。

SSL/TLS协议中,服务器证书是用于向客户端证明服务器身份的凭据,同时它还向用户提供了服务器的公钥,而服务器公钥则可以用来建立客户端到服务器的安全通讯(具体的通讯流程要比这个复杂,纯从技术而言,服务器的公钥主要用于与客户端进行会话密钥的协商)。

服务器的公钥只能确保拥有私钥的服务器(或人)能够解密信息,但它本身并不能确认服务器的身份。在实践中有很多种不同的方法来确保公钥确实来自受信任的服务器,在通常的SSL/TLS协商过程中,采用的方法是根据证书链来逐层验证公钥是否是有效的及其身份。简单地说,就是以安全的方法(例如安装光盘,或互相认证的签名等)事先将证书链上的某一个或某几个证书发给客户端,以便其验证最终用于服务器的安全证书。关于这一流程的具体细节,已经有很多文章进行了介绍,在此不再赘述。

如此,我们在实现采用SSL/TLS的服务器的时候,需要为证书准备的事项包括:

  • 找到一家被客户端信任的、具备签发证书资质的发证机构。发证机构可以是根CA(对于浏览器来说,通常可以在安全选项中找到类似"查看证书"之类的选项),也可以是这些根CA认可的二级发证机构。
  • 收集用于验证服务器身份的信息,例如服务器的FQDN,等
  • 生成一对用于SSL/TLS的公钥/私钥。

有了这些信息,就可以制作证书申请(CSR)供发证机构去签名了。一般来说,发证机构需要首先验证申请人的身份信息,然后对CSR提交的信息进行核对和签名,并将签名之后的证书发给申请者,或供其下载。下面以 FreeBSD、OpenSSL 为例介绍从生成公钥/私钥对到签发、安装证书的全过程。

阅读全文… ( 本文约 1664 字,阅读大致需要 4 分钟 )

如何:为小于 /24 的 IPv4 网段实现反解析

Networking

以前一直以为这事必须由ISP以个案的方式去做,最近跟北美一家ISP接触加上查阅资料以后发现其实早就有办法,原理和普通的域名解析类似,也是可以使用delegate和glue去把解析权移交给持有IP的客户,从而减少ISP自己的负担,在这里记一笔。

阅读全文… ( 本文约 785 字,阅读大致需要 2 分钟 )

网址缩短服务

Development

前一段时间帮一个朋友做了一个非常简单的网址缩短服务,已经上线运行了一段时间,这里把当时设计的一些想法分享出来,等有时间我会把代码也发布出来,程序很简单,用 web.py 做的。

阅读全文… ( 本文约 866 字,阅读大致需要 2 分钟 )

PlanetPlanet vs Python 2.6

Development

On Python 2.6 we have a new ‘hashlib’ module, which superseded older ‘md5’ ‘sha1’ modules.

Therefore, importing ‘md5’ would give the following warnings:

DeprecationWarning: the md5 module is deprecated; use hashlib instead

This is quite annoying if you run PlanetPlanet in a cron(8) job and receive e-mail reports. In order to solve that, we can do some simple sed(1) replace over PlanetPlanet’s __init__.py:

s/import md5/import hashlib/g

s/md5\.new/hashlib.md5/g

That’s it! And PlanetPlanet will now happily work with Python 2.6.

参与评论

使用DSR模式实现单IP服务冗余

Networking

FreeBSD支持以DSR(Direct Server Return,即服务器直接将流量通过路由器返回,而不经过负载平衡设备;俗称"单臂模式")模式提供服务。为了改善服务的可用性,可以使用这种方法来配置服务器。这种方法非常适合于大并发、大流量的环境。

阅读全文… ( 本文约 1278 字,阅读大致需要 3 分钟 )