优秀的代码 vs. 糟糕的代码

Java JavaScript Linux Windows 字符串 模块化 正则表达式

可持续开发不仅在于项目架构设计,还与代码质量密切相关,代码的整洁度和质量成正比。—— Robert C. Martin, “Clean Code”

如果你还没有发现代码质量的区别,如果你从未见过优秀的代码,或者从未见过糟糕的代码,那么本文将以直观地对比,告诉你代码质量究竟会有多大的区别。

聊天服务器:Ejabberd 安装与离线转发模块的实现

CentOS HTTP Node.js XMPP

如果你在给一个IOS应用添加聊天功能,如果你打算自己搭建它,并且进行离线消息的推送的话,你首先需要一个XMPP服务器。而ejabberd就是很优秀的一款,且很容易扩展其功能。

本文中,首先用ejabberd启动XMPP聊天服务,再编写一个ejabberd扩展模块将离线消息转发到我们的web服务器。之后你就可以将离线消息从web服务器传输到APN服务器,让Apple推送给用户客户端。

开发环境:CentOS6.5,ejabberd2.1.13,nodejs0.10.26

记一次 RedHat 网络配置,回顾 KISS 原则

RedHat CentOS DHCP IP SSH TCP 网络 路由

最近搭建实验室网络和服务器,初试 RedHat EL 发行版。 感受企业级发行版和 Geek 级发行版的差异,重新体会 ArchLinux 的 KISS 原则。

先介绍下实验室的网络环境,一共两间房:楼下的机房和楼上的实验室。 机房有一台 H3C ER 路由器和一台交换机,实验室有一个路由器、一个交换机,加两个 WiFi 热点。 机房有两根线接上来到实验室。 我的任务是把机房的两台 RedHat 接入实验室网络并提供代理和 VPN 服务。 麻烦在于我只知道这两台机器是 RedHat,其他一无所知。

用 Console-COM 接口重置路由和重新接通实验室和机房网络之后,终于可以 ping 到我要去配置的服务器了。 本文的故事从登录到服务器开始。

Linux 路由表配置

ArchLinux DHCP DNS IP MAC TCP 网络 路由 systemd

局域网基本都是通过路由器来接入Internet,其中的路由器提供了众多的功能与服务。不妨用linux做局域网的路由,开启DHCP服务、IP转发、HTTP代理。这样不仅可以高度定制局域网的网络结构,而且可以实时监测局域网流量。

现在来让linux主机转发局域网流量,并设置代理对http数据进行有趣的修改。

以下以我使用的linux发行版ArchLinux为例,并忽略了发行版相关的软件安装过程。我的linux有两块网卡,无线网卡wlp13s0用于开通子网,有线网卡enp14s0作为出口。

读 HTTP 协议 RFC-2616

HTML HTTP TCP 网络 缓存

超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP) 是互联网上应用最为广泛的一种网络协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由 统一资源标识符(Uniform Resource Identifiers,URI) 来标识。

HTTP协议标准是由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)制定的,其中最著名的是RFC-2616,定义了HTTP协议中现今广泛使用的一个版本—HTTP 1.1。

第一个版本的HTTP(HTTP/0.9)用于Internet上的传输原始数据;HTTP/1.0加入了MIME支持、元数据、请求/应答限定符。

对web开发者而言HTTP协议的用法已耳熟能详,本文只记录与web开发相关的HTTP重要细节。

HTTP是一种通用的、无状态的应用层协议,适用于分布式、协同的、超媒体信息系统。通过一些扩展(如请求方法、错误码、头信息),HTTP可用于超文本外的其他用途,例如命名服务器、分布式对象管理。HTTP的特点在于数据表示的类型与协商,允许建立系统时不必考虑数据是如何传输的。

上一页 下一页