0%

PHP数组是PHP最复杂的数据结构,没有之一,如果能把数据彻底搞透,那么其他的数据结构也能理解的差不多了。

Read more »

背景

最近遇到一个线上问题,服务A,调用服务B的接口,发现服务B报“xxx参数不存在”,但是通过服务A的请求日志发现,是有参数”xxx”。然后翻了一下服务B的日志,发现没有参数”xxx”,而且以外发现,接收的数据,比传输的数据少一部分!

Read more »

Redis相对于memcache的优势之一就是支持丰富的数据结构,比如Hash、List、Set、Zset等。除了这些以外,redis还支持HyperLogLog

Read more »

从源码手动编译 PHP 时出现如下错误:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Undefined symbols for architecture x86_64:
"_libiconv", referenced from:
_php_iconv_string in iconv.o
__php_iconv_strlen in iconv.o
__php_iconv_substr in iconv.o
__php_iconv_strpos in iconv.o
__php_iconv_mime_encode in iconv.o
__php_iconv_appendl in iconv.o
_php_iconv_stream_filter_append_bucket in iconv.o
...
"_libiconv_close", referenced from:
_php_iconv_string in iconv.o
__php_iconv_strlen in iconv.o
__php_iconv_substr in iconv.o
__php_iconv_strpos in iconv.o
__php_iconv_mime_encode in iconv.o
__php_iconv_mime_decode in iconv.o
_php_iconv_stream_filter_dtor in iconv.o
...
"_libiconv_open", referenced from:
_php_iconv_string in iconv.o
__php_iconv_strlen in iconv.o
__php_iconv_substr in iconv.o
__php_iconv_strpos in iconv.o
__php_iconv_mime_encode in iconv.o
__php_iconv_mime_decode in iconv.o
_php_iconv_stream_filter_ctor in iconv.o
...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [sapi/cli/php] Error 1
Read more »

对于我来说,字符集的相关知识,一直都是噩梦。Unicode、utf-8、ASCII….搞得头都大了。我也特意梳理了下,字符集之间的关系。而且,之前在贝壳面试,面试官也问了我关于unicode编码的事情。

ASCII

由来

ASCII的字符集算是出来最早的了,最初是来源于美国。ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符。除了我们常见的英文字母,还包含了各种英文的标点符号等等。在英语中,用128个符号编码便可以表示所有,但是用来表示其他语言,128个符号是不够的。

存在的问题

但是这样是有问题的。举个例子,法语的字母上方是有音标的,它就无法使用ASCII的编码表示。于是,一些欧洲的国家决定,利用字节中闲置的最高位编入新的符号,这样一来,这些欧洲国家使用的编码体系,可以表示最多256个符号。由最开始的 0xxx xxxx (2^7=128) 变成了 1xxx xxxx (2^8=256)

Read more »

我们在后台运行命令的时候,除了会借助一些后台进程守护工具,也会用到Linux的nohup,比如:nohup command > /dev/null 2>&1 &。对于命令的含义,其实大家都知道,无外乎就是不输出任何的错误信息。但是对于技术,我更希望自己能够知其然而知其所以然

Read more »

从开始减肥到现在,已经是2-3个年头了,在大学的时候,基本上每天除了睡就是吃,再加上自己时不时晚上出去通宵,所以体重从大一的160斤,毕业后接近200斤。毕业之后,由于没有注意体重的问题,没过多久就超过了200斤。

这两张是大一入学和大学刚毕业的对比照片。不得不说,大学真的算是“养猪场”了。

减肥的原因

我最开始是在海淀工作,后来公司搬到了昌平。上班的时候会路过一个天桥,但是有一次我发现,上天桥的时候,自己呼哧呼哧的喘着粗气,我才意识到:我应该开始减肥了,再这样下去我就不行了。

Read more »

背景

自己在每次登录服务器的时候,都会出现 -bash: ulimit: open files: 无法修改 limit 值: 不允许的操作 的提示信息,根据猜测,应该是登录的时候,执行了什么特殊的命令。通过百度查询了下,应该是登录的时候,执行了 ulimit 的命令。

Read more »

描述

所谓的贪心算法,是在对问题求解的时候,总是做出在当前看来是最好的选择。也就是说,不从整体最优上进行考虑,所做的仅仅是在某种意义上的局部最优解。

贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。贪心算法不是对所有问题都能得到最优解,选择的贪心策略必须具备无后效性,即其他过程,不会影响以前的状态,完全是局部的。

Read more »

在日常工作中,我们时常会碰到这样的情况,有的人讲事情逻辑非常混乱,罗列了很多事项,却把握不到重点,无法把一件事情说清楚。

这种思维混乱是典型的缺少结构化思维的表现。结构化思维非常重要,不仅仅体现在表达上,也体现在在我们分析问题的过程中。具备结构化思维,才能将问题分析地更全面、更深刻。

Read more »