为什么互联网行业总要加班 ?
最近在做一个领导比较重视的项目,由我和另外一个同事一起完成。期间发生了一些事情,让我想要聊聊互联网加班的一些事情。
工作三年,我发现身边90%以上的同事每天都要加班到很晚才回去,我也不例外。其实仔细思考来,加班主要是因为三点。
- 需求太多、代码不熟,开发者评估时间不合理。
- 缺乏对需求的深入理[……]
最近在做一个领导比较重视的项目,由我和另外一个同事一起完成。期间发生了一些事情,让我想要聊聊互联网加班的一些事情。
工作三年,我发现身边90%以上的同事每天都要加班到很晚才回去,我也不例外。其实仔细思考来,加班主要是因为三点。
网络质量指标重要性
在实时音视频领域,VoIP通话对于网络质量要求很高,系统必须能实时感知到网络质量变化,供上层应用及时调整码率,降低网络质量进一步恶化的风险。衡量用户的网络质量可以通过丢包、延时、抖动、带宽、吞吐量这些指标。本文重点介绍丢包、延时、和抖动的统计方法。
丢包率的含义与计算[……]
在实时音视频领域,我们经常需要评估音频质量。而语音质量评价是一个与语音学、语言学、信号处理、心理学、生理学等学科有密切联系的领域,因此语音质量评价是一个极其复杂的问题。语音质量评价方法从评价主体上可分为两大类:主观评价和客观评价。
主观评价:人评价(一般40人以上)。目前国内外使用较多的主观评[……]
表驱动是一种编程模式,核心在于将输入变量作为直接或者间接索引到表里面查找直接的结果或者处理函数,索引表可以是一个数组、map、或者其它数据结构。
现在的视频网站为了提升视频加载速度的同时节省带宽资源都采用HLS技术,网站后台把视频做成小的视频切片,这些切片记录在m3u8文件里面。每个切片都是一个ts文件,每个ts文件可以几百KB直接播放大概10s左右,浏览器播放的同时请求每个ts文件。视频网站小广告特别多,[……]
作为一名后台开发工程师需要频繁与linux系统“打交道”,掌握一些的Linux命令可以让这个交互过程更加流畅。本篇文章重点介绍grep和find两个查找命令,对工作中查找日志和文件有很大帮助。
grep 命令
grep [OPTIONS] PATTERN [FILE…]
文本搜索工具,根据用户指定的“模式(过滤条件)”对目标文件逐行进行匹配检查,打印匹配的行。
PATTERN:正则表达式主要分为基本正则表达式、扩展正则表达式,grep都支持。
查找文件中字符串
[root@VM_5_28_centos ~]# grep bash passwd
root:x:0:0:root:/root:/bin/bash
忽略大小写查找某个字符串并显示行号
[root@VM_5_28_centos ~]# cat test.txt
oewjaiofewfoieawjfioeawjfoi
1
2
AAAA
aa
[root@VM_5_28_centos ~]# grep -n -i aa test.txt
4:AAAA
5:aa
查找不能被匹配到的数据
[root@VM_5_28_centos ~]# grep -v a test.txt
1
2
AAAA
查找被匹配到数据的前2行 (A 表示后几行、B表示前几行、C表示前后几行)
[root@VM_5_28_centos ~]# grep -B 2 aa test.txt
2
AAAA
aa
多条件查找被匹配到的数据(egrep支持多条件查找)
[root@VM_5_28_centos ~]# egrep "1|2" test.txt
1
2
利用grep进行递归多个文件查找某个字符串
[root@VM_5_28_centos ~]# grep -R aa ./*
Binary file ./go/hello matches
Binary file ./go/pkg/linux_amd64/github.com/dutchcoders/goftp.a matches
./go/test/test.txt:aa
Binary file ./test.mp4 matches
./test.txt:aa
find 命令
find [OPTIONS] [查找起始路径] [查找条件] [处理动作]
[查找起始路径] :制定具体搜索目标起始路径;默认为当前目录。
[查找条件]:指定的查找标准,可以根据文件名,大小,类型,从属关系,时间戳,权限等标准进行;默认为找出指定目录下的所有文件。
[处理动作]:对符合查找条件的文件做出的操作,例如删除等操作;默认为输出至标准输出。
查找某个文件
[root@VM_5_28_centos ~]# find ./ -name test*
./test.mp4
-name 区分大小 -iname 不区分大小写 ./ 表示当前路径下
查找空文件
[root@VM_5_28_centos ~/go]# ll
total 1892
-rwxr-xr-x 1 root root 1919238 Aug 16 19:45 hello
-rw-r--r-- 1 root root 70 Aug 16 19:45 hello.go
drwxr-xr-x 3 root root 4096 Aug 16 20:17 pkg
drwxr-xr-x 3 root root 4096 Aug 16 20:17 src
drwxr-xr-x 2 root root 4096 Feb 5 16:54 test
-rw-r--r-- 1 root root 0 Feb 5 16:54 test.txt
[root@VM_5_28_centos ~/go]# find ./ -type f -empty
./test.txt
查找空文件夹
[root@VM_5_28_centos ~/go]# find ./ -type d -empty
./src/github.com/dutchcoders/goftp/.git/objects/info
./src/github.com/dutchcoders/goftp/.git/refs/tags
./src/github.com/dutchcoders/goftp/.git/branches
./test
[root@VM_5_28_centos ~/go]# ls -ltr test
total 0
查找空文件并执行删除
# find ./ -type f -empty -exec rm -f {} \;
# ll
total 1892
-rwxr-xr-x 1 root root 1919238 Aug 16 19:45 hello
-rw-r--r-- 1 root root 70 Aug 16 19:45 hello.go
drwxr-xr-x 3 root root 4096 Aug 16 20:17 pkg
drwxr-xr-x 3 root root 4096 Aug 16 20:17 src
drwxr-xr-x 2 root root 4096 Feb 5 16:54 test
find是一个实时查找命令,可以根据名字、权限、文件大小实时查找文件、文件夹,支持模糊和递归查找。最后一个参数“处理动作”可以用来对查找到的结果进行处理,例如删除文件、查看文件大小等。
vim 巧应用
vim查看日志一行特别长,一行内显示不下,怎么办?
直接在vi的命令模式中输入:set wrap
利用gk、gj进行上下查看,防止直接跳到下一行不方便查看。
如果想取消,就输入:set nowrap
想要替换文中的某个字符,怎么办?
直接在vim的命令模式中输入:s/原始字符/新字符/g 替换单行内字符
直接在vim的命令模式中输入:%s/原始字符/新字符/g 替换文中所有原始字符
[……]