wuhuaji | blog

wuhuaji | blog

写一点有用的代码

我如何备份数据
最近在给公司开发一套数据备份系统。这里分享一下我的如何备份我的数据。 首先我想说为什么要备份?要说这不是废话么,但确实非常多的人并没有意识到。朋友圈里经常看到有人丢了手机,通信录和相册也就一并丢失了。 要知道,只要是数据,就存在丢失的风险,我曾亲历同事因为线上操作失误,丢失了几个月积累的数据;也见过同事因为没有及时推送代码,因为电脑故障一两周的工作差点白费了(还好后面通过硬盘恢复找回)。 以下是我在在备份个人数据的一些措施 Time MachineTime Machine 是我买 Mac 的理由之一,我买了个 1T 的硬盘专门备份 Mac,现在每周备份一次(因为每天备份还是挺麻烦的)。虽...
我在听的播客(podcast)
最近一两年,我听了不少播客。播客这种形式非常适合在琐碎时间听,我在上下班通勤、做饭洗衣服、洗澡的时候都会听一下。现在中文世界里播客也越来越多了,这里分享我常听的播客。 另外,我使用过好几个泛用型播客客户端,目前使用Google推出的Google Podcasts,体验不错,推荐使用 播客列表以下都是我认为的优质的播客,有的是每期必听,有的随便听听, 老本行,软件开发类 《内核恐慌》 年更老年程序员闲聊节目,非常有意思,每期必听 《Teahour》,程序员相关话题,很有干货,也不太更新了 《Fork it》区块链相关的,经常采访到不少大牛,虽然我不太懂区块链,有时也听一下 《捕蛇者说》偏向...
Migrate to Hexo
This is my first blog post written by English. It is may not fluent as a native speaker, or contain a few grammar mistakes. Feel free to correct me! Last week, I migrated my blog from a laravel app which developed by myself to hexo. I’d like to share my thought below. My previous blog was develo...
深入挖掘 C 语言 static 关键字
C 语言的 static 关键字与其他面向对象语言中的 static 并不一样 。做个笔记,以防忘记。 搜索一下就知道了,C 语言中的 static 有两个作用,修饰变量 和 修饰函数 ,以下具体来分析。 修饰变量被 static 修饰的变量成为 静态变量 ,那么什么是静态变量 呢? 我们知道,函数内的变量,其生命周期随函数存在,也就是函数调用过后,变量也就销毁了。所谓静态变量,就是不随函数销毁而销毁的变量。 代码示例就很清晰: #include <stdio.h> void foo() { int normal_var = 0; static int sta...
【译】Ruby 在 Basecamp 运营中的开销
翻译自 DHH 的文章 《Only 15% of the Basecamp operations budget is spent on Ruby》。主要表达,相比于开发效率和程序员的开发体验,语言和Web框架性能几乎不值一提。很有意思,试着翻译一下。由于我本人水平有限,本文不免存在遗漏或错误之处。如有疑问,请查阅原文。原文链接 以下为译文:我们每年花费3百万刀来运营所有版本的 Basecamp 和 一些老应用。这3百万包括本地数据中心(on-premise data centers)和云服务。不包含我们超强的7人运维团队,只是网络(connectivity)、机器、电费 等等。 这包含很...
【译】现代PHP
这是一篇翻译文章,介绍了现代PHP开发的诸多,作者Brent,原文名《PHP in 2019》,原文链接:https://stitcher.io/blog/php-in-2019 相信国内很多开发者都还停留在”老式“PHP代码中(我也不例外),从这篇文章中了解了不少新东西,征得作者同意后,试着翻译成中文。由于第一次翻译文章,如果发现表达不清或者有误,请指出:) 以下是原文还记得那篇流行的文章:“PHP: a fractal of bad design” 么,第一次读到的时候这篇文章,那是我正在一堆PHP老项目上写着蹩脚的代码,我很困惑是否该转行从事别的行业。 幸运的是,之后不久我就换了新...
Web 服务器演化之路
本文试图简洁扼要地总结 Web 服务器发展之路,如有错误请指正。 单进程我们从最基本的单进程考虑。一个 Web 服务器的最基本功能:接受请求并处理响应。 那么自然可以得出处理逻辑:服务器建立 socket 监听,随后一直循环检测是否 有客户端请求,如果有客户端请求,那么则处理请求。 伪代码如下: //服务器端处理程序 socket.listen(8080) while(client = socket.accept()){ client.read(client); //从客户端读出请求信息 // do something client.write(response...
MySql bing log 简单笔记
上周工作上发生了一次”不可思议”的数据丢失问题,应该存在的数据却不见了,最后通过MySQL bin log 日志成功找了回来。之前只是听闻但没机会接触这块内容,趁着周末看了一些 bin log 日志的资料 , 包括如何将 bin log 如何用于 主从同步,记录一下。 什么是 bin logbin log 也就是二进制日志(binary),记录了数据库的所有变化。就是 insert、update、delete 这类可能会更改数据的语句,会记录其中。而Select语句则不会记录。 由此可以看出,bin log 可以用于: 审查看数据库曾发生了什么事情 像我这次”数据丢失”状态,我曾怀疑...
我配置的一些有用的 shell alias
善于给Shell配置alias,可以把日常中一些繁琐的命令简化,从而提高效率。这里记录一下我积累的一些alias。 更新:后面我把这篇博文分享到v2ex , 不少人指出 ssh 快捷登录应配置在~/.ssh/config 中。确实如此,配在~/.ssh/config 中不仅更方便集中管理,而且有更多可自定义的配置项,还有一点好处可以简化scp这样通过ssh协议传输的命令 :) 原文: 善于给Shell配置alias,可以把日常中一些繁琐的命令简化,从而提高效率。这里记录一下我积累的一些alias。 首先查看一下我的alias个数 12cat ~/.zshrc | grep a...
http服务器是如何判断一个请求报文发送结束
继挖坑 tinyshell 之后,又挖新坑tinyserver, 主要是想深入研究一下网络编程的一些细节,多进程/多线程/select/poll/epoll 这些。这里记录一下我的思考,可能有误,请谨慎参考: 问题:服务器如何判断请求报文发送结束?要想清楚这个问题,就要从http报文结构入手,一个http请求报文是长这样: 123456请求行\r\n若干头部字段\r\n若干头部字段\r\n若干头部字段\r\n\r\n请求体(下图中的请求数据) 找张网上流传图片,看得更清晰 所以这里可以分为两种情况: 没有请求体 有请求体 对于没有请求体的请求,在报文最后就是:最后一个头字段后面的...
avatar
吴化吉