青鱼 发布的文章

微博春晚流排序算法榜单

需求说明

原始需求说明

首页

实时流
白名单用户所发博文 + 关键词
阅读量+互动量排序,权重各占50%
发博时间降权

精彩段子

段子实时流
白名单用户所发博文 + 关键词
阅读量 + 互动量排序, 权重各占50%
发博时间降权
段子排行榜
白名单用户所发博文 + 关键词
阅读量 + 互动量排序, 权重各占50%
uid 去重,每个uid显示排名最高的博文

视频流

历年节目回顾
白名单用户所发博文+关键词
播放量+互动量排序,权重各占50%

明星实时流

白名单用户所发博文 + 关键词
阅读量 + 互动量排序,权重各占50%
发博时间降权

排序规则的抽象

是否区分视频微博

博文类:排序计数按 阅读量 + 转评赞
视频类:排序计数按 播放量 + 转评赞
视频的播放量从微博信息中获取,不同于 阅读、转评赞是同一个接口

是否时间降权

实时流: 计数按发布时间因子衰减

是否uid去重

段子手排行榜

抽象后的流排序

流分类

春晚实时博文 (阅读+转评赞+时间降权; 春晚主场、精彩段子、明星拜年)
春晚段子排行 (阅读+转评赞+uid去重,精彩段子)
春晚视频排行 (播放量+转评赞,历年回顾、视频排行)

算法抽象

//根据后台设置的计数权重计算 单体微博的原始得分
//如对于视频微博, $weight['read'] = 0 
//对于普通博文, $weight['play'] = 0
$raw_score = $weight['read'] * $read_count + $weight['interacts'] * $interacts_ccount  + $weight['play'] * $play_counts;
//根据时间衰减因子,计算衰减系数,
//$decay_hour_config 衰减到e^(-1) 约为0.3678需要的小时数
//如果需要实时性比较强,$decay_hour_config 可以设置的比较下,如0.01
$decay_weight = exp(-1 * ($count_time_in_seconds - $mid_create_time_in_seconds) /(3600 * $decay_hour_config));
$score = $score * $decay_weight;

流收录&&排序总体流程

使用redis的zset 实时收录feed流
区分视频微博和普通微博(redis_key_feed, redis_key_video, redis_key_spring2018)
每十分钟排序
前台展示使用redis_key_spring2018, 初始微博的score 为0

读《高性能MySQL》摘记

第三章 性能剖析
性能:更好的解释可以是,完成某任务所需的时间度量 秒/任务
优化:减少所需时间
吞吐量:每秒完成查询量 任务数/秒

正确步骤:测量时间花在哪(这是重点和前提),为什么花在那儿,优化那儿。
3.3 剖析MySQL查询
捕获MySQL查询
方法1 配置long_query_time=0 注意 由于全量查询,以免磁盘使用过大,最好部署log ratation工具
方法2 抓取TCP网络包,tcpdump保存到磁盘,用Percona Toolkit中的pt-query-degist分析
附加:MySQL还有“通用日志”,但只记录查询发生时间;MySQL Proxy代理层也可以记录所有查询
3.5.2 使用strace
strace -cfp $(pidof mysqld)
Percona Toolkit中的pt-ioprofile也是使用的strace来生成I/O活动的剖析报告

产品想法-出门提醒器

出门提醒器

考虑这几种场景:
天气重度污染,出门忘记戴口罩
答应给同事带东西,想着想着,第二天忘记了 等等

在门口安装 出门提醒器,你就可以这样:

  1. 想带一本书来公司,通过手机向其发送条出门提醒,明天带《思维导图》,次日出门时,出门提醒器通过红外监测要出门了,说一声“带上您的书了吗?”。
  2. 上午出门,出门提醒器知道外面污染,说一声,“雾霾严重,带口罩哦”

技术实现:
红外线传感
网络模块
机器学习-声音合成
...

啊呀,好像小米 都做出产品了
https://item.mi.com/1171600028.html

职业生涯再思考

毕业至今,已近两年。学业不精,80水平。
学写代码,工作至今。论及优秀,还差得远。

先后两雇主,绩效B和C
遂反思适不适合此行业,无望、惆怅
查查伟大的互联网,看看别人的文章
做做测试,了解职业

发现,依旧觉得努力做个优秀的程序员,能解决困难的问题,还是酷酷的。

为什么就成了程序员,是骨子里的傲气,觉得自己不该做价值不大的劳神事
这股骨气一过度,成了不想解决各种事儿的毒瘤
加之不自信,就没办法去解决问题了

此一时,不能找到更好的答案。我在的行业,没有阻止我的学习和思考,就是好的
矫枉,是肯定要矫枉的;是否要过正,我还是不确定。
怎么做呢?
学习,潜心打下扎实的软件编程基础;
思考,看透软件互联网行业的发展;
实践,做有价值并且能做的实践。

学习思考提升之余,不排除挣钱打杂养家的事情
做人嘛,谁又能少了那口饭呢

取悦的是谁?为了谁?

从一个孩童,到长大成人。不论“好孩子”还是“坏孩子”,成长与生活,都伴随着亲人朋友老师同学的说道、评价,也深受其影响。我们努力的成为别人眼中的好孩子、好人,却很少思考为什么一直这样做。

我们似乎渐渐地活成了别人认为的样子吗?活在了别人的眼中吗?有的文章说过这样的观点,我觉得需要解释一下。

我们之所以这样做,让别人觉得舒服,从来不是终极目的,我们想要的其实是别人对自己认同、对自己好。

世间没有绝对真理,也就没有绝对错误。绝大多数人认为对的,往往就是符合人们认识和期望的,相对来说就是对的。
我们只要学着践行那些大多数人觉得正确的为人处世之道,就足够了,不必尝试每一个人都认同,让自己失去独特性。

我们取悦了别人,也是为了最终取悦自己。为的也是自己。

爱,却是另外一回事。我相信,多数人深爱着自己的父母,当找到那个真正的另一半,一定也深爱着ta。
爱,不需要解释,也不要有任何假设,更不是为了自己。没有谁是一座孤岛,我们是我们所爱的人和事物。

如果读罢此文,能有些同感或者认同,我就会收到鼓舞。
有何想法,欢迎留言交流~