浏览 2.3k
按点赞数排序
按时间排序
秋天的第一行代码
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-o-filter: grayscale(100%);
filter: grayscale(100%);
filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
时间:2021年9月18日,中午
坐标:上海,某高校
原因:将网站样式变成灰色,纪念918事变
代码故事: 今年刚读研一,来到陌生的学校,中午下课听到了学校的警报声,心里很感慨,回到宿舍就和室友讨论起本科的时候将网站变成灰色来悼念革命先烈的做法,就有了以上的代码。
一代人有一代人的使命,一代人有一代人的担当。很庆幸自己能生活在一个和平、和谐、开放的年代。希望自己能够为世界创造更多的价值!
3
发表于2021-09-23 13:00
3
发表于2021-09-17 19:49
我这个秋天的第一行代码:
// RequestVote RPC handler
func (rf *Raft) RequestVote(args RequestVoteArgs, reply *RequestVoteReply) {
rf.mu.Lock()
defer rf.mu.Unlock()
//fmt.Printf("server [%d] term %d handling RequestVote from server %d term %d \n", rf.me, rf.currentTerm, args.CandidateId, args.Term)
if args.Term > rf.currentTerm {
rf.becomeFollower(args.Term)
}
reply.Term = rf.currentTerm
if args.Term < rf.currentTerm {
reply.VoteGranted = false
//fmt.Printf("server [%d] denied RequestVote from candidate %d in term %d\n", rf.me, args.CandidateId, args.Term)
return
}
myLastLogIndex := rf.log.lastIndex()
myLastLogTerm := rf.log.lastTerm()
// grant vote if server hasn't voted for anyone else and the candidate log is at least up-to-date as server's
if (rf.votedFor == -1 || rf.votedFor == args.CandidateId) &&
(args.LastLogTerm > myLastLogTerm ||
args.LastLogTerm == myLastLogTerm && args.LastLogIndex >= myLastLogIndex) {
reply.VoteGranted = true
rf.votedFor = args.CandidateId // once the server vote for the candidate, votedFor should be updated
rf.mu.Unlock() // release the lock before sending resetTimeout channel
rf.resetTimeout()
rf.mu.Lock()
//fmt.Printf("server [%d] granted vote to candidate %d in term %d\n", rf.me, args.CandidateId, args.Term)
} else {
//fmt.Printf("server [%d] denied RequestVote from candidate %d in term %d\n", rf.me, args.CandidateId, args.Term)
reply.VoteGranted = false
}
}
时间:2021年9月4日,晚上8:00
坐标:上海-普陀区
原因:学习raft代码
代码故事:我正在学习raft分布式共识算法,于是fork了MIT6.824课程的代码框架,开始根据每个函数的功能来实现算法流程。
2
发表于2021-09-23 12:58
我这个秋天的第一行代码:
use std::collections::BTreeMap;
impl Solution {
pub fn find_number_of_lis(nums: Vec<i32>) -> i32 {
let mut dp: Vec<i32> = Vec::with_capacity(nums.len());
let mut cnt: Vec<BTreeMap<i32, i32>> = Vec::with_capacity(nums.len());
for &ai in nums.iter() {
let j;
match dp.iter().position(|&x| x >= ai) {
Some(idx) => {
j = idx;
dp[j] = ai;
}
None => {
dp.push(ai);
cnt.push(BTreeMap::new());
j = dp.len() - 1;
}
}
if j == 0 {
cnt[j].entry(ai).and_modify(|e| *e += 1).or_insert(1);
} else {
let prev = cnt[j - 1].clone();
for (&k, &v) in prev.iter() {
if k < ai {
cnt[j].entry(ai).and_modify(|e| *e += v).or_insert(v);
}
}
}
}
cnt.last().unwrap().iter().fold(0, |acc, (_, v)| acc + v)
}
}
时间:2021年9月21日,夜里
坐标:上海市,普陀区,中山北路
原因:用rust随手写了一份很快的算法,感叹了一晚上,rust是真的牛。
2
发表于2021-09-23 12:53
2
发表于2021-09-17 19:55
2
发表于2021-09-17 19:33
代码:for(i = 0; i<n; j++)
{
……
}
时间:2021年9月15日
坐标:大连-大连理工大学
原因:学习数据结构
代码故事:在这个朴实无华的下午,我用我的双手创造了一个神奇的bug。困扰了我一下午,我秃了,秃了。
2
发表于2021-09-17 18:07
我这个秋天的第一行代码:
if(dataList.empty()){
return;
}
时间:2021年8月7日,下午16:30左右
坐标:广东省-深圳市
原因:离职前最后一个bug
代码故事:这天是last day,和hr约定了需要在下午五点之前办理离职手续,但是下午两点多突然测出来一个bug,定位了两个小时最后排查出来,四点半测试通过后,一路飞奔去hr行政处,最后赶在了hr下班前办理了离职手续。
2
发表于2021-09-17 17:43
代码:if [ ! -n "$host" ]; then
时间:2021年9月25日,傍晚19:18
坐标:福建-厦门
原因:测试
代码故事:
两个星期前厦门发现了新冠病例,自那之后出现了更多的确诊人员。
为防控疫情,公司鼓励员工在家办公。
然而远程办公实在是十分低效的工作方式。
但仔细想想,这只是借口,
没有重点,以及时不时地开小差行为,才是我工作低效的原因。
最近感觉有点累,
不止工作找不到重点,好像连自己的生活都找不到重心,
明明前路还漫长,却开始有点提不起劲了,
在即将而立的年纪,这样迷茫的状态显得有些可笑,
希望其他人不要像我这么愚蠢。
祝好。
1
发表于2021-09-25 19:45
我这个秋天的第一行代码:
<properties>
<maven.deploy.skip>true</maven.deploy.skip>
</properties>
时间:2021年9月23日,下午14:30左右
坐标:杭州-余杭区
原因:公司内卷,TL被迫要求每周必须有代码产出
代码故事:最近公司有点卷,没什么事情还要求打卡工时在10h以上,作为TL被迫要求每周需要有代码产出,不关心是否有其他事情在忙。唉,现在的公司大部分都是同样的逻辑,期望时时刻刻管控这员工。这个行业不易,但愿秋天依旧在,春暖花开。
1
发表于2021-09-23 20:25
1
发表于2021-09-23 20:25
坐标:北京-
1
发表于2021-09-23 14:06
秋天的第一行代码:mkdir mywork
时间:2021年9月14日,入职第二天,上午10:00
坐标:山东-烟台
原因:紧急修补bug
代码故事:16年的9月份,距离我入职第一家公司已经很久了,才好不容易完成第一个新的需求,所幸领导非常耐心,并没有对我这一段时间的愚钝表达出不满,把我从一个小白带入到这个行业-感恩。
从公司走出来,给老妈打了个电话,“这是我人生中做的第一个需求”,说到一般就有点哽咽,从小到大要强,可我真的开窍好慢,感谢父母的理解,相比那时候,我拿着第一份工作微薄的薪水,公司给我交深圳市最低工资标准的五险一金,父母仍然没有多说什么,让我自己去拼,也是很宽容-感恩。
。。。
5年过去了,我已经是个工作6年的程序员了,在自己的专业领域也算是个熟练的老手了,最终随着家庭的组建回到了老家,新的公司很不错,待遇虽然不如那些年入几十、几百万的大神,可是已经知足了。公司领导对我的到来表示欢迎,我建下这个工作目录,未来很久,都会和这个目录打交道。
希望在各自的人生路上,大家都能前进得顺心。
1
发表于2021-09-23 14:01
我这个秋天的第一行代码:vim nginx.conf
时间:2021年9月22日
坐标:大连云数据中心
原因: 验证88和89端口
代码故事:我们为客户提供互联网链路资源,由于备案还未受理,未开通80和443端口。与客户协商使用88和89端口将业务发布出来。客户的网络工程师配置完后,客户告知通过IP端口也无法访问。
我们验证方式,在服务器上5分钟部署1套nginx, yum install nginx。vim nginx.conf,service { listen 88 /89}。systemcel restart nginx。 将外网线路直接链接到服务器上,配置公网IP。远端访问http://公网IP:88,http://公网IP:89。
welcome to nginx!
验证88和89端口可以正常访问,链路资源ok。截图发给客户确认,让客户网络工程师更改防火墙策略。
前后用时大概15分钟左右,通过直接在服务器部署nginx,配置88/89端口,跳过防火墙配置,验证链路资源的端口是🆗的,快速排除自身故障。将皮球推给了客户网络工程师,哈哈。
1
发表于2021-09-23 13:00
我这个秋天的第一行代码:
// 定义定时器时常,clicktime,运维人员可外部配置
public static int clocktime { get; set; } = -30;
时间:2021年9月7日,白露,上午9:00左右
坐标:天津-河西区-天津市电子计算机研究所内
原因:健康监控系统,对各单位服务器的扫描频率过高。需要将扫描的时间周期可外部进行配置
代码故事:这天蒹葭苍苍,白露为霜。同志们日常通过指令(tail -n 1000 /var/log/nginx/access.log)查看nginx的log日志进行巡检。
❗️突然一位现场的小伙伴打电话过来反馈说,用户提出访问系统变慢了,正如所谓伊人,在水一方💐 我们正好查看日志,以及应用的健康情况平台,平台功能倒是正常,监听的应用指标也再正常不过了,看了看日志,发现大量get请求,想了想最近监控里加入的新功能,顿时大家心里五味杂陈🍋
溯洄从之,道阻且长。反过来安慰现场的小伙伴说,可能服务器以及应用运行时间过长,内存过高了,我们午间做一次垃圾回收♻️ 咱下午再看看~
溯游从之,宛在水中央。果断的先把监控里的新功能关闭了,再次查看nginx的access.log发现打印的内容也变少了,请求响应时长恢复了正常~
蒹葭萋萋,白露未晞。好在有查看日志,同志们放松了一口气,但领导就此组织了Code Review,才发现,监控的定时采样时长是在代码里写的,一个固定值,顿时...于是我提出咱们抽成变量让同事们可调吧。
蒹葭采采,白露未已。伴着午休时光,我们对应用做了升级,再次查看access.log日志,和预期的一致。给现场同事回复称我们调优了服务器,咱们日常坚持查看nginx的日志是有效果的,对我们开发也很有帮助~ 小同志回了一就说,幸好白露不是寒露,没把你们脑瓜子冻僵就好,抓紧多敲打敲打,对你们有好处!
溯游从之,宛在水中沚。上岸后,我们意犹未尽,畅辽阔,茫茫日志,标准和方便定位一直是程序开发的追求,可亲爱的,聪明的你,咋每次都只能从代理服务器的日志去查看呢,也就是你一心向往,要去追求以及实现的目标吧!
1
发表于2021-09-22 09:56
1
发表于2021-09-20 09:39
我这个秋天的第一行代码:
时间:2021年8月26日,星期四,晚上10:00左右
坐标:深圳-南山区
原因:为Skywalking修复一个存储插件的bug
代码故事:读研前的暑假也没闲着,参与了中科软举办的开源软件供应链点亮计划。这是我为开源社区贡献的第一行代码,虽然只是修复了一个边缘的小bug,但看到自己提交的PR合到主库中,心情还是非常开心激动。为开源社区做贡献总是会有一种莫名的成就感,用了那么多开源软件,如今自己也成长到能为开源社区出一份微薄之力了。
1
发表于2021-09-20 09:16
1
发表于2021-09-19 09:47
坐标:湖北-武汉
原因:NGINX-PLUS APP-Protect功能调试
代码故事:F5北京当地有个大客户上线了一套N+APP-Protect的安全WAF防护,客户反映有部分业务收到安全攻击,需要紧急对WAF的攻击代码库进行升级并增加对爬虫功能进行的防护,由于N+APP-Protect的部署环境是基于容器K8S平台;F5希望我们有人能帮客户解决这个问题。
通过沟通获取有效的证书后,导入N+APP-Protect容器内进行app-protect-attack-signatures升级只最新版本,然后更新容器deploy控制器完成升级,然后添加如下代码:
{
"policy": {
"name": "bot_defense_policy",
"template": {
"name": "POLICY_TEMPLATE_NGINX_BASE"
},
"applicationLanguage": "utf-8",
"enforcementMode": "blocking",
"bot-defense": {
"settings": {
"isEnabled": true
}
}
}
}
更新到N+APP-Protect容器的策略配置等操作,最终完成客户需求。
1
发表于2021-09-18 15:08
1
发表于2021-09-18 09:50
我这个秋天的第一行代码:keepalive
...
keepalive 2000;
...
proxy_http_version 1.1;
proxy_set_header Connection "";
代码故事: API 服务不可用,服务器配置了超时时间,连接数超出了。
几行代码,减少服务告警和降低资源使用。
1
发表于2021-09-17 17:49
我这个秋天的第一行代码:
List<SofaScore> list = this.selectList(this.condition().eq(SofaScore.RECORD_ID, recordId));
LinkedHashMap<String, SofaScore> linkedHashMap = list.stream().collect(
Collectors.toMap(SofaScore::getScoringDate,
Function.identity(), (c1, c2) -> c1.getTotalScore() > c2.getTotalScore() ? c1 : c2, LinkedHashMap::new)
);
时间:2021年9月17日,下午两点左右
坐标:上海
原因:新需求
代码故事:需求:一张分数表,需要获取到每天的最高分,且最新的那条数据信息,
本来写sql很长,还需要join实现,后来改成两个小sql进行查询,
最后改成下面的实现,使用了java8,不得不说,java8确实很方便,
减少了代码量,原来我写了30多行的代码,现在3行就搞定了。
1
发表于2021-09-17 17:27
我这个秋天的第一行代码:
时间:2021年9月16日,早上10:00左右
坐标:广州-天河区
原因:紧急修补高危漏洞
代码故事:这天刚上班不久,就收到了来自项目经理的信息,直接甩了一份,源伞扫描的代码审计报告,一看报告又是一个忙碌的工作日了,报告里面有很多中高危的漏洞,看来今天又是一个加班日了,加油吧,打工人!。
1
发表于2021-09-17 17:23
我这个秋天的第一行代码:vim nginx.conf
时间:2021年9月22日
坐标:大连云数据中心
原因: 验证88和89端口
代码故事:我们为客户提供互联网链路资源,由于备案还未受理,未开通80和443端口。与客户协商使用88和89端口将业务发布出来。客户的网络工程师配置完后,客户告知通过IP端口也无法访问。验证方式,在服务器上5分钟部署1套nginx, yum install nginx。vim nginx.conf,service { listen 88 /89}。将外网线路直接链接到服务器上,配置公网IP。远端访问http://公网IP:88,http://公网IP:89。
welcome to nginx!
验证88和89端口可以正常访问,链路资源ok。截图发给客户确认,让客户网络工程师更改防火墙策略。
0
发表于2021-09-23 12:51
我这个秋天的第一行代码:
when HTTP_REQUEST {
if { [HTTP::uri] starts_with"/jfzw/charging/freeSourceUpdate
" } {
pool pool_Update
} elseif { [HTTP::uri] ./jfzw/charging/freeSourcePauseResume
} {
pool pool_Resume
}
}
} elseif { [HTTP::uri] ./jfzw/notice/creditNoticelssue
} {
pool pool_Noticelssue
}
}
} elseif { [HTTP::uri] ./jfzw/credit/interproFreeResRemind
} {
pool pool_ResRemind
} elseif { [HTTP::uri] ./jfzw/charging/queryFreeSource
} {
pool pool_FreeSoure
时间:2021年9月17日,凌晨2:00左右
坐标:广东-珠海-斗门区
原因:实现客户新业务需求
代码故事: 9月份的珠海,依然是炎炎夏日,朝气蓬勃。这天我在珠海出差,傍晚的海岸线倒映着火红的晚霞,看着窗外的海鸥时而腾飞时而落在沙滩,惬意极了。突然接到另一个客户电话说要上业务,一丝愁意涌上心头,说实话,对于30多岁的我来说,一直害怕“35魔咒”的那天到来,不知道何去何从。不过很快就调整了心态,一般我是21点左右下班,但是这天客户说要晚上上业务,对于老鸟的我来说,轻车熟路,于是白天准备好脚本,在虚拟机上做好测试,确定没问题后。晚上业务割接很顺利,对我来说就是运筹帷幄。结束后差不多凌晨两点,骤雨初歇,一如广东的天气。凌晨的珠海,路上空旷无人,独自驾驶奥迪走在西部沿海高速上,繁星点点,音响里放着“blowing in the wind”,渐渐陷入沉思,是啊,一个男人走过多少路,才能被称为男子汉?答案飘荡在风中。 (上次排版有问题,用电脑重新发)
0
发表于2021-09-22 16:41
0
发表于2021-09-19 09:46
需求:一张分数表,需要获取到每天的最高分,且最新的那条数据信息,本来写sql很长,还需要join实现,后来改成两个小sql进行查询,最后改成下面的实现,使用了java8,不得不说,java8确实很方便,减少了代码量,原来我写了30多行的代码,现在3行就搞定了。
List<SofaScore> list = this.selectList(this.condition().eq(SofaScore.RECORD_ID, recordId));
LinkedHashMap<String, SofaScore> linkedHashMap = list.stream().collect(
Collectors.toMap(SofaScore::getScoringDate,
Function.identity(), (c1, c2) -> c1.getTotalScore() > c2.getTotalScore() ? c1 : c2, LinkedHashMap::new)
);
0
发表于2021-09-17 17:25