https://github.com/yihong0618/gitblogRSS feed of yihong0618's gitblog2024-04-27T09:39:12.238636+00:00python-feedgenhttps://github.com/yihong0618/gitblog/issues/287抉择2024-04-27T09:39:12.509751+00:00每个月写一篇博客我这个从来没向外公布过的目标不知不觉已经坚持了一年零四个月。期间不好说自己收获了什么,但是写点东西也确实成了习惯,纸笔的日记有写,大多数都是寥寥几笔,记录那些不想对除了我之外别人能看到的。周记也有写,不知不觉流水账的周记也写了三年有余,有时候是逼自己去记录点什么,有时候是单纯的想记录分享,当然也有时候是需要写点什么整理自己的心情,今天就是。

但今天的主题不是这个。

是抉择。

我最怕面临的就是抉择,自以为大多数时候都是命运拖着我走,除了高考的失利让我懊悔不已,别的情况下自己都是在命运的交叉点选择被命运被自己的兴趣拖着选择一条道路,后面的道路走的稍微有些难,好像都在还高考的债。如果相信命运的话,当时的抉择导致了此刻的我打这行字。也就没什么必要谈当时的自己多傻逼,后面的路走的顺利与否。

如今又面临抉择,工作上的,城市上的,人生上的。我不知道选择对与错,也许成年人的世界里一步走错也就步步走错,但是普通如我,怎么能知道哪条路是对的啊。

最近脑海里总时不时浮现爷爷要离开这个世界躺在床上的场景,他活了 90 岁,90 岁大概会经历无数的人生抉择,闯关东到东北,生儿育女,经历了几个大时代,等等等等,他弥留之际会回忆这些么?会后悔自己的人生么,会感概这一辈子不到百年的沧海桑田么?我不知道,我也不敢去想我有那一天的话会怎么做。

说说需要的抉择,要不要选择一个新的机会。

工作上我们被收购影响很大,总之大部分是负面的变化,这个新的工作机会,对方非常有诚意,薪水也会高上许多,但需要离开大连,不知道是短暂的还是长时间的。但现在的工作也许不久也必须要离开大连,不久之后可能面临下一波裁员,但我很喜欢现在的团队和领导,对现状也很满意。

我最怕的是主动去改变。我挺享受现在的状态的,我要去改变么?

最近被帮一个用 running_page 认识的朋友搭建他的个人主页,他也在面临抉择,北大的博士,将来的高校老师也在面临抉择,从北京到美国,从美国再到香港,强如他,面临抉择的时候会纠结么?我也不知道。

突然就觉得人生还真跟浮萍没太多区别,自己能掌控的部分太少了,前面说我大多数时候都是被命运推着走,但在时代的浪潮面前谁又不是呢?弄潮的人永远是那么几个,但他们后悔自己的抉择么?他们会面临抉择时候的困境么?我也不知道。

就好像刘震云小说中的小人物一样。

敲下这篇,敲到这行字的时候对我接下来的抉择没有任何帮助,但心情平复了不少,这就是写作的好处吧。

写到这儿。

]]>
2024-04-17T13:20:47+00:00
https://github.com/yihong0618/gitblog/issues/283三月2024-04-27T09:39:12.611875+00:00宫崎英高与村上春树

这个月打了《只狼》准确说我好久没这么认真的去打一款非 rogue like 游戏了,游戏非常对胃口,在一遍一遍死的时候学习系统,感受自己变强,弹刀打铁也越来越刺激,尤其是战胜壮年义夫的时候,我打了两天,杀掉他的一刹那,高兴的从椅子上站了起来,真的爽也真的开心。

为什么说到村上春树了呢?玩这个游戏的时候不断在想《挪威的森林》里那句:死并非生的对立面,而作为生的一部分永存(林少华翻译版),日本的制作人,作家,非常喜欢讨论生死的问题,宫崎英高也是,几乎每一部游戏都在探讨生死,而《只狼》的核心也是要斩断不死,死亡还是永生,似乎永远是值得探讨的问题。可惜我们无法永生,只能在游戏中,在书里去体验这种感觉。

开通了爱发电

突然就想开通个爱发电试试了,没想到真的不少人表示感谢,还有个哥们用爱发电提了个付费的需求,我马上给做了。还挺有趣的。爱发电起的名字还挺有意思的,用爱发电,不只是用爱发电。

35岁了

媳妇送了我 iPhone 15 plus 终于手机不卡了。 到了程序员该死的年纪,不过我还想再干几年,如果真干不下去了,那就再说,至少现在还能开心的写着代码。

更感动的是在推特收到了几百条生日快乐,我看见的都一一回复了,感觉真好,这个世界是充满这些陌生人的祝福的。

讲课与回忆过往

受朋友邀请去他们公司去讲了 AIGC 的东西,讲了一个多小时,效果也不错,还有一定的补贴,拿到钱我直接转给媳妇了哈哈。不过讲完的时候我想到了我当时在西山居做的第一次 share 2016 年初,做的 VR 也是新兴的东西,讲的时候全程在发抖,到现在我已经能谈笑风生的讲技术的东西了,台底下不少人,我甚至还能讲几个段子,真的是成长了啊。开心。

读书与电影

这个月看的几本书都非常推荐(有的还没看完)

  • 《这就是 ChatGPT》这绝对是一本被豆瓣评分和书名低估的好书
  • 《我叫刘跃进》文字太好了,喜欢,小人物写的鲜活
  • 《癌症密码》还没读完,但写的很好
  • 看了两遍《周处除三害》我个人很喜欢

项目

]]>
2024-03-31T13:34:54+00:00
https://github.com/yihong0618/gitblog/issues/282About Me2024-04-27T09:39:12.706589+00:00似乎每个博客都应该有个 About Me 那么 5 年后就来介绍一下我自己。

  • yihong0618
  • 喜欢游戏,读书,电影,跑步,编程,开源,和奇怪的东西
  • 性格还算温和,偶尔气急了也骂人
  • 写了 20 多年日记,但大部分都丢了
  • 我不用 RSS
  • 不太喜欢加微信群
  • 现在还能背下来将近一百位圆周率
  • 能背下来《琵琶行》和大部分学过没学过的诗
  • 哦对忘了我喜欢诗歌
  • 读过王小波的所有书
  • 读完过《浮士德》
  • 读完过还不止一遍村上春树的所有书
  • 读了不少历史书
  • 看过几百部电影,喜欢的电影是《搏击俱乐部》
  • 最喜欢的游戏是《Dream Quest》《血源》
  • 喜欢的编程语言是 Python
  • 有同好交朋友特别欢迎,但现在不怎么主动加微信了,邮件 tg 都欢迎
  • 防疫时候失去了曾经非常要好的朋友,但也不算后悔
  • 媳妇是初恋
  • 跑过马拉松,PB 4 小时 1 分钟,半马 PB 1 小时 40 分钟
  • 生活在大连
  • 心情不太好时候会跑到海边看海
  • 遇到过贵人,几个帮助我的领导老师都让我成长学到了不少,包括现在的领导,同事。
  • 不想去谈顿悟,但是有时候突然间会针对自己的境遇想明白一些东西
  • 在 2024 年初依然喜欢用 Google 搜索大于 ChatGPT, 因为能发现有趣的人
  • 喜欢读有趣的人的博客
  • 需要聊缺点么?
  • 不聊了就写到这儿先,想到再补充
  • 补充,经常激励自己和说给朋友的话是 The best is yet to come.
  • 迷茫的时候会听 Bad day
  • 0618 是 0.618 的意思,不是我生日,我也不是刘强东粉丝
  • 喜欢喝酒,酒量一般,但是家人不咋让喝了,痛风。
]]>
2024-02-27T14:14:19+00:00
https://github.com/yihong0618/gitblog/issues/281用小爱加手指机器人实现传统开关语音关灯2024-04-27T09:39:12.812412+00:00最近做了一些折腾,花了点精力终于实现了晚上趟床上看书不用下地,直接跟小爱说一声关灯,手指机器人就能控制开关了。

效果

https://github.com/yihong0618/gitblog/assets/15976103/bb8ec3ab-5229-4e3b-a305-b20b1b8a69f7

手指机器人选购

  • 开始选用了一款射频开关的,控制不灵敏放弃
  • 之后找了款配合米家的,但是逆向蓝牙略麻烦,米家这块安全性做的不错
  • 最后选定了一款涂鸦的,可以无痛申请开发者,拿到 local token, 就它了(大家如果选用任意平台搜索涂鸦手指机器人就行)

如何操作

By the way

我还给 miservice 加了循环播放和列表播放,下面是一些技术细节。

效果:

https://github.com/yihong0618/gitblog/assets/15976103/3ceb34fc-6a02-404b-b0da-63caf1f340c3

]]>
2024-01-29T13:15:38+00:00
https://github.com/yihong0618/gitblog/issues/280记忆碎片2024-04-27T09:39:12.952982+00:00不知道为什么,回忆起一些事情总有些片段记忆的特别深刻,甚至片段里的人的名字都已经忘记了,但这片段还在。 一些记忆的片段: 1. 和爸爸某一年回家看爷爷,看到街边有个老人在走,我爸说,这不你爷么?一看还真是,爷爷对着我们笑,说伊洪回来了。那是个冬天,阳光洒在雪上反射到爷爷的脸上,80 多岁的老人显得格外的精神,开心。 这次还是和爸爸一起回来看爷爷,爷爷不在能动弹,瘦的皮包骨躺在床上,不太能说话了,胃癌晚期,90多岁没办法做手术。日薄西山,等待最后的日子。这场景也会深深的刻在脑海里。

]]>
2023-12-24T12:38:16+00:00
https://github.com/yihong0618/gitblog/issues/279开源值得么?2024-04-27T09:39:13.046330+00:00这篇是我写的 telegram channel 的一则 post 做了些补充放在这里:

开源和分享值得么?在我看来至少目前是值得的,虽然很多时候会遇到不是一个物种的来要求你做这做那,但大多数的时候还算好的。 冒着自己安全的风险做开源值得么?我不知道,但至少应该对这样的人保持敬仰是我这样没这种勇气的人应该做的。 今天在一个群里看到一个 title 是技术负责人的说,能赚钱么?不赚钱我不做,傻逼才做。冷笑一声,就当我们是傻逼吧。当然,他是没错的,只是不是一路人而已。 我不知道未来怎样,能活到现在好像已经超过了古代战乱时期的平均年龄了,虽然有太多的遗憾,也没怎么为自己当时比较傻逼的抉择后悔。 回到正题,我好像没怎么为过利,名倒是机缘巧合认识了大家有几个关注,开源值得么? 认识了这些虽然未曾谋面但在代码里交流了很久的人当然值得了,frostming, saka, kc(jay), cyanide, friendA, Ben_29, xuanwo, fallen, zu1k, laike9m, TJ, machiel, xintao, Epliar, higuoxing, 盐粒等等等 当然值得的,否则我一辈子也不可能认识这么多牛逼的人。 哦对,忘了说,还有那些真心的谢谢。 所以,还会做下去的,虽然环境已经如此差了,做到做不下去那天吧。

The best is yet to come.


这篇 post 缘起是 clash 事件,过去挺久了,但我在路由上的突然不好用,源码也没了,找到了开源认识的朋友帮忙才回复,又想起了这个 post. 现在回想当然是值得的,今天坐在星巴克,喝着同事朋友请我喝的咖啡,其实在成为同事前我们在 GitHub 上已经交流过了,开源的世界真的不大,这么想当然是值得的。

如果想赚钱,当然有 1w 种比开源分享更值得的东西,但很多事情不全是为了赚钱,对吧。

感谢看到这的你,是你们让它变得更值得了。

]]>
2023-11-23T08:48:38+00:00
https://github.com/yihong0618/gitblog/issues/275聊聊读书2024-04-27T09:39:13.142846+00:00缘起

读书究竟为了什么?这些年虽然不上墙内的社交网站了,也很少有人跳出来告诉我要多读书,并顺手推荐了一本《毛泽东选集》,但推上也越来越多的人谈起读书,虽然晒出来的书外面的玻璃纸还没撕开,也要去聊聊读书,当然这里包括我自己,书架上也有很多书封还没打开过躺在那儿看着我的书。 也许有一天会打开,也许不会。

那么究竟为了什么呢?

没有实际统计过,但是那些年精力旺盛的时候每年大约读 80 本书左右,应该加起来读的书超过 500 本了,当然,大部分都是小说。倒是没觉得自己有多了不起,但做过一段时间的数据分析的岗位,自己在人群中的阅读量处在什么位置心里还是有数的。

TO BE DONE

困了,改天接着写

]]>
2023-10-18T14:02:35+00:00
https://github.com/yihong0618/gitblog/issues/274旧文,移动端最好的游戏,《Dream Quest》以及其它2024-04-27T09:39:13.235945+00:00写在前面

这是一篇 2017 年 9 月给机核的投稿,当时老白的评价是写的比较简单,希望我再补充一些,就没通过。我也懒得补充就一直放那了,当然后面有了《杀戮尖塔》,《怪物火车》,《月圆之夜》等一系列被这个游戏影响或者借鉴的游戏,但《Dream Quest》依然是我最喜欢的,也是其中数值做的最好的。

image

如果你是个 rogue like游戏的爱好者 如果你是个炉石传说或是地下城的爱好者 如果你在找移动端不错的 rogue like 游戏 当然,如果你不是一个画面党 我向你推荐这款游戏 ->《Dream Quest》 相信我,这是你在移动端能玩到的最棒的 rogue like 游戏,没有之一

首先说说作者

熟悉炉石的朋友可能多少听过这个人——《炉石传说》卡拉赞之夜的主设计师之一。而作者加入这个团队也完全是因为这款《Dream Quest》。故事的发展很简单,整个炉石团队沉迷了这款游戏,惊叹其中的卡牌数值设计,本来低调的作者顺理成章的加入了炉石这个“小”团队。

从领英上能查到的信息 Peter Whalen 是毕业于乔治亚理工学院的博士,又在亚马逊当了一年算法工程师(游戏的数值设计如此精妙也不奇怪了)。在这期间他用 Unity 引擎加上 Windows 画图版做出了这款“特别”的游戏,之后加入了炉石团队。(2023 年补充,他现在创业去了) image image

在本来就不多的《Dream Quest》玩家中有因为他加入炉石而惋惜的,也有感觉他会给炉石带来一些不一样东西的(如下图),现在看来确实他给炉石带了很多有趣的东西。

image

这是一款怎样的游

2023 年的补充,这是一款《杀戮尖塔》的始祖

记得某个人说过,永远不要因为一本书的封面而判断一本书的价值。而这个游戏每从icon,到主界面,到选人画面,再到进入地图都在考验你这个认知。

游戏的icon是这样的: image

游戏的主界面是这样的: image

选人画面中四个初始职业是这样的: image image image image

地图是这样的: image

甚至游戏的战斗画面是这样的: image

如果说机核《安利之王》中介绍的《末日拾荒者》画面被称为“屎”的话,那这款游戏的画面只能用“圣屎”来形容了。 当然如果你成功接受了这种设定之后:

  • 你会发现,我靠,这 RL 设计的好巧妙,卡牌设计和数值成长似乎非常合理,每次死亡都是一次成长
  • 你学会了游戏中 5 种牌如何搭配如何使用,攻击,行动,魔法,被动,装备
  • 又死了几次之后你还明白了如何放弃你的卡牌(放弃需要花钱),如何根据职业不同Build你的卡组,根据随机的不同如何选择本局游戏的方向
  • 单从法师来说,最开始你会认为应该多去拿魔法牌,死了很多次之后,你会发现学会选择修炼一个属性为主(毒,火,电,冰),还得想办法处理属性免疫的怪物
  • 慢慢的你熟练了,你会发现每个职业都有每个职业的乐趣,而每个职业又有好几种不同的 Build 方法,最后的你懂得了围绕着一张牌或几张牌打,让其他牌为它服务的通关之道
  • 但这仅仅是开始,在困难难度下还有 1000 血的 Lord 等着你。等你慢慢收集齐成就后,解锁了博士,解锁了龙,解锁了德鲁伊,你会感叹我擦,游戏还可以这样玩?游戏这样玩还能保持游戏的原有平衡性?这么牛逼那!
  • 几百小时过去了,游戏还有能开发的地方,你不得不感叹作者的厉害。也不得不遗憾这么牛逼的一个游戏就被这魔性的画面埋没了。
  • 作者怪物图鉴,成就系统,包括开头的故事都做的非常用心(开头的故事甚至还蕴含着通关之道)

怪物图鉴: image

image

最终 Boss, 相信最终 Boss 的美术会是你再一次视觉享受: image

2023 年的后记

  • 这竟然已经是 6 年前的文章了
  • 6 年间这个游戏的故事还在继续
  • 我把这个游戏推荐给了阿楠,阿楠同样沉迷,结合黑魂做了个小游戏,和阿楠成为了朋友,我转行了程序员,阿楠在最开始给了我不少的帮助,阿楠去做独立游戏了叫《斩妖》
  • 我一直推荐这个游戏,在某个 tg 频道发现他也是这个游戏爱好者,和他聊了很多,发现世界真小,我决定自己也开个频道
  • 我打了 200 个小时的杀戮尖塔,但更怀念的是当时无数次打《Dream Quest》做过站的自己
  • 最简单的画面,最纯粹的快乐
  • 这种快乐在 2022 年《吸血鬼幸存者》也带给我了
  • 对了,我和没给我通过这篇文章的老白,也成了朋友
]]>
2023-09-28T14:55:45+00:00
https://github.com/yihong0618/gitblog/issues/272微信好友2024-04-27T09:39:13.343286+00:00微信大概是中国大陆人最重要的工具了吧。这一年我花了很久,把微信好友从 500+ 删到了 260, 写篇东西记录一下。当然,还要感谢微信的炸号,避免了将来可能的很多的尴尬,毕竟我这种人炸号了他们不会奇怪。

why

  • 最开始是因为愤怒:愤怒那些对任何事情都毫无共情的人,在想为什么他们会在我的微信好友里。当然主要的原因是因为去年防疫过的太苦了,那些给防疫政策唱赞歌,从任何角度我都无法和他们成为朋友。
  • 然后是因为害怕:害怕有一天因为自己朋友圈转发的一些东西或者发表的看法被这些人当成间谍举报,也许我值 50w. 尤其是在某些时候朋友圈一片红和我朋友微信炸号的时候。
  • 最后是因为界限,在好不熟悉的人善意的提醒我要小心说话的时候,我也不知道为什么会那么愤怒,大概是因为表达空间被进一步压缩的无力感吧。

how

  1. 最先删除的是完全想不起来是谁的人
  2. 接下来是把微信拉到最后倒着往上拉,加过之后就再也没说过话或者几年没再说过话的符合上面三点的人
  3. 再之后就是个很艰难的筛选过程,删掉了很多这辈子可能不会再有交集或者不想跟他再有交集的人

next

  1. 自己也减少了很多微信的使用,甚至在想主动把号炸掉,重新去加真正好友
  2. 继续尽量不加任何的微信群,除了逼不得已那些
  3. 该表达就表达,去他妈的小心说话

hope

  1. 希望留下的都是值得的朋友
  2. 希望觉得我同样讨厌的人也直接删除我
  3. 希望有一天可以不用微信
]]>
2023-08-23T06:35:07+00:00
https://github.com/yihong0618/gitblog/issues/270如何写一个 PostgreSQL Extension2024-04-27T09:39:13.439942+00:00什么是 PostgreSQL Extension

PostgreSQL Extension 是一个可插拔的功能扩展,用于在 PostgreSQL 数据库系统中添加额外的功能和能力。这些扩展可以由第三方开发者开发并加入到 PostgreSQL 中,以满足特定的需求。扩展可以增强数据库功能。 有些非常不错的 Extensions 甚至成了一些公司选型 Postgres 的理由比如:TimescaleDB, PostGIS 等等。

今年开始异常火爆的向量数据库,因为有 pgvector 也让 pg 有了向量计算和存储的能力。

本文会介绍如何编写 extensions 和推荐一些编写 Extensions 的资源。

如何写一个 Extensions

传统的 Extensions 开发一般情况下我们会 c 语言,引入 Postgers.h 写好 Makefile 和 SQL 开发,现在也有了用 Rust 编写 Extensions 的能力 -> pgrx 借助 pgrx 我们能更好的专注 extensions 中算法本身,也可以借助 Rust 强大的生态更容易的编写 extensions 需要的逻辑,进行更快速,更安全的开发。

以下分别介绍 C 和 Rust 两种开发方式。

C 语言开发 Extensions

以 hello_world 为例,需要在 hello_world 文件夹中建下面 4 个文件

hello.control         # 插件名.control
hello.c                   # 插件名.c
hello--1.0.sql        # 插件名--1.0.sql
Makefile                # 用于编译

cat hello.control

comment = 'hello:'
default_version = '1.0'
module_pathname = '$libdir/hello'
relocatable = false
superuser = true

剩下的可以参考这个 pg 的 hello_world 项目 https://github.com/magnusp/pg_hello

cat pg_hello.c

#include "postgres.h"

#include "fmgr.h"

#ifdef PG_MODULE_MAGIC
PG_MODULE_MAGIC;
#endif

Datum hello( PG_FUNCTION_ARGS );

PG_FUNCTION_INFO_V1( hello );
Datum
hello( PG_FUNCTION_ARGS )
{
   // variable declarations
   char greet[] = "Hello, ";
   text *towhom;
   int greetlen;
   int towhomlen;
   text *greeting;

   // Get arguments.  If we declare our function as STRICT, then
   // this check is superfluous.
   if( PG_ARGISNULL(0) ) {
      PG_RETURN_NULL();
   }
   towhom = PG_GETARG_TEXT_P(0);

   // Calculate string sizes.
   greetlen = strlen(greet);
   towhomlen = VARSIZE(towhom) - VARHDRSZ;

   // Allocate memory and set data structure size.
   greeting = (text *)palloc( greetlen + towhomlen );
   SET_VARSIZE(greeting, greetlen + towhomlen  + VARHDRSZ);

   // Construct greeting string.
   strncpy( VARDATA(greeting), greet, greetlen );
   strncpy( VARDATA(greeting) + greetlen,
            VARDATA(towhom),
            towhomlen );

   PG_RETURN_TEXT_P( greeting );
}

代码的一些解释:

  1. #include "postgres.h" 包含了大部分编写 postgres 相关程序需要的东西,每个 extensions 必须包含这个
  2. #include "fmgr.h" 则包含了PG_GETARG_XXX、PG_RETURN_XXX和PG_ARGISNULL 等编写 extensions 必要的宏
  3. Datum 是 data 的单数是在 pg 中最重要的数据类型之一,它肩负着在PG 内核与用户代码之间传递数据的责任
  4. PG_MODULE_MAGIC 这个宏是编写 extensions 的一个必要的宏为了后面编译生成的库才可以被 postgresql 加载

在这之后就可以编写好 Makefile 把 pg 的 PATH 加入到环境变量中之后 make && make install

在这之后进入到 psql, create extension hello; select hello('hello'); 就可以了

当然后续可以写一些测试,需要建一个文件夹名为 sql 把相关的测试写在里面,再建一个文件夹名为 expected 把测试跑出的结果写在里面,在 Makefile 加上这句 REGRESS = hello, 就可以利用 pg 的 installcheck 了

cat sql/hello.sql


CREATE EXTENSION hello;
select hello_hello();

**如果不知道如何写插件可以参考 pg 核心开发者这个项目,里面有各种各样的 extensions **

Rust 语言开发 Extensions

当然现在是 2023 年我们完全可以借助 Rust 来开发 Extensions, 这特别得益于 pgrx 这个项目它的前身也是一个非常棒的 pg 插件 zombodb

来看看借助 pgrx 开发的优秀的 pg 插件

  • pgvecto.rs -> pgvector 的 Rust 版
  • postgresml -> postgres ml 第二版用 Rust 重写,速度大幅提升
  • plrust -> 在 pg 中使用 Rust 作为 Procedural Language

编写起来就比 C 简单多了,只需要

  1. 安装 pgrx
  2. cargo pgrx init
  3. cargo pgrx new hello
  4. cargo pgrx install or cargo prgx run

一个简单的 hello 程序就做好了,其中 cargo pgrx new hello 帮助我们生成了所有需要的文件,其中 pgrx-examples 文件夹中包含了很多如何使用 pgrx 编写的例子。

当然大家可以参考这个项目 pg_slugify,利用了 Rust 的生态,几行代码做了一个非常有用 extension, 大家的很多简单的脚本完全可以利用 Rust 编写成插件方便自己开发。

推荐一些资源

]]>
2023-07-08T12:13:57+00:00
https://github.com/yihong0618/gitblog/issues/268五月病2024-04-27T09:39:13.534528+00:00好久没写流水账了,记录下刚过去的五月。

北京

五一假期去北京玩了,故宫,颐和园,天安门,长城都去了,以前去了好多次北京也没去这些地方,这次去倒是没有更多的兴奋,就很平淡的去看这过了几百年的一切。总感觉这皇宫,这皇城,一切都没怎么改变。

被查了 3 次身份证,无数次安检,这也许就是北京吧。儿子去天安门时候安检被没收了彩笔,儿子不理解嗷嗷大哭半小时,五岁的他不明白为什么彩笔会被人夺走,其实我们也不明白,嗯,这是规矩。

当然最开心的是,和老婆一起吃了顿很贵的火锅,见了友人A 还和 hi@guoxing, 陈总喝了酒(还有其他同事),两顿。这些天还总能回想起陈总骑着他的小摩托驮我回酒店,他讲述的每周会骑着这个摩托,买本《三联周刊》来这家酒吧喝两杯酒,正好看完,回去。真美好。

还他妈吃了全宇宙最难吃的炸酱面。

死亡

又经历了一个认识的前辈死亡,我不太知道有没有死后的世界,也不知道未来因为 AI 他们会不会永远存在,又想起那些死去的朋友,他们看不到现在这一切了,不知道是不是一种幸运。

也许吧。

一切如旧。

幸福和插曲

  • 收到了不少的咨询邮件所有的我都尽自己最大的能力回复了,希望能帮到他们
  • 还帮助了一个北大的博士导出了所有跑步数据,作为一个不怎么学习的人真的是荣幸
  • 听《天书广播》印象最深的一句话是,“善意无法报答,只能传递”,那么让我把这些传递下去,自己也挺开心的。
  • 认识了几个新朋友,一个人还要给我推荐工作
  • 被一个人挂着污蔑,我本来想挂着反驳回去,后来想想算了。“恶意当然能传递,但在我这终止吧”

五月病

  • 大概也许到了这个时候。
  • 不太知道我的性格,我的运气会把我带到哪里,把我的家庭带到哪里,有时候还是挺迷茫的,尤其在这种大环境下。
  • 对我也就想想过去了,迷茫对我来说不如一瓶酒。
  • 可惜要尽量戒酒了,以后用跑两圈代替吧

讨厌的人

  • 去年新冠的发展对我最大的帮助是认清了一些朋友,在今年,很少在轻易的交朋友了,尤其是看到曾经当成很好的朋友的人,在嘲笑隔离大巴车死去的那些人,嘲笑“感叹人人都在大巴上”的人。
  • 瞎了眼了,希望以后不会了

希望

  • 明年就 35 岁了
  • 希望变成一个更好的自己
]]>
2023-06-02T11:30:47+00:00
https://github.com/yihong0618/gitblog/issues/262杂感2024-04-27T09:39:13.635466+00:00近况及其它

死去的朋友

最近时常想起,时常梦见,清醒时有些自责,喝醉后怅然若失。那时我们相约等上映去看《灌篮高手》,如今只好多买一张票,酒边多放一个杯子,有时候想想有另一个世界就好了,如果有也不知道你过的怎么样。希望,它,真的作为生的对立面永存吧。也不知道当时你为什么这么选择,我们几个如果多给你打些电话情况会不会不一样,往往想到这里就感觉人生和世界的虚幻,究竟哪一个才是真实的?

灌篮高手

我很喜欢,无论其它人的评价怎样,在我看来不同年龄段对这个电影的看法是完全不同的,青春的遗憾也好,怀念曾经的自己也罢,仿佛一个跳投,空中划过一道弧线,球进了,是空心的。 而喜悦过去回过头看,一切如闪回一般,转过头,球场变成了屏幕前敲击着键盘的我。操他妈的,一个球花了二十年。

AI

这段时间围绕着 OpenAI 的API 做了几个项目,也和朋友有不少的交流,其中 stars 最多的那个双语书翻译项目也是我唯一失控的项目,不但失控,也失去了给它添加新功能的热情,一个是市面上大量同类的项目比我做的好的多的多,而我既没有精力也没有那么大的能力超过他们,而且合了很多代码不是我风格或者是质量没那么高的 PR, 导致项目彻底的失控。 其实更多的是我自己的原因。当然其它运行良好,xiaogpt @frostming 帮了我非常多,我也更愿意去把它变得更好。 给自己做个总结就是,项目的维护其实没想象的那么简单,也要懂得放弃。

技术含量

又遇到了别人说,我写的项目毫无技术含量,为什么有这么多人 star 关注。心里还是有些沮丧的。 虽然我知道和那些厉害的人项目我写的东西确实没什么特别的,想辩论几句,我做的都是曾经没人做过的,或者做的方式不是这样的,但这种辩论毫无价值,沮丧过了也就过去了。That's it. 也不知道自己能做什么更多的评价。

要去北京旅游

后天早上就出发了,本来想着是避免出行高峰,没想到的是每天都是出行高峰。抢票,抢票,弄了好几天,依然是我媳妇负责计划,出行当天我负责拎包和当个听从一切指挥的傻逼,上次去北京还是 19 年去跑马拉松,没想到这感觉像是没过去多久的事情,但因为新冠竟然过去了 3 年了。

朋友

新冠三年最大的庆幸和遗憾是失去了一些朋友,也告诉自己别去轻易交新的朋友。

]]>
2023-05-01T15:31:30+00:00
https://github.com/yihong0618/gitblog/issues/261vm.overcommit_memory 学习笔记2024-04-27T09:39:13.734171+00:00关于 overcommit_memory 学习的一些记录,其中一些为网上前辈文章的整理记录

什么是 vm.overcommit

但在实际情况下,进程请求的内存可能比实际需要的内存少很多,而且很多进程请求的内存并不会全部使用。在这种情况下,如果系统采用严格的内存申请机制,将会导致系统的内存利用率低下,一些能够使用的内存被浪费。 因此,为了提高系统的内存利用率和灵活性,Linux 提供了 vm.overcommit_memory 机制。当这个参数的值为 0 或 1 时,内核允许进程请求超过系统实际可用内存的内存量。这种行为被称为 "overcommit"。

vm.overcommit 的三个值

#define OVERCOMMIT_GUESS        0 // default
#define OVERCOMMIT_ALWAYS       1  // redis
#define OVERCOMMIT_NEVER        2 // postgres
The Linux kernel supports the following overcommit handling modes

0	-	Heuristic overcommit handling. Obvious overcommits of
		address space are refused. Used for a typical system. It
		ensures a seriously wild allocation fails while allowing
		overcommit to reduce swap usage.  root is allowed to 
		allocate slightly more memory in this mode. This is the 
		default.

1	-	Always overcommit. Appropriate for some scientific
		applications. Classic example is code using sparse arrays
		and just relying on the virtual memory consisting almost
		entirely of zero pages.

2	-	Don't overcommit. The total address space commit
		for the system is not permitted to exceed swap + a
		configurable amount (default is 50%) of physical RAM.
		Depending on the amount you use, in most situations
		this means a process will not be killed while accessing
		pages but will receive errors on memory allocation as
		appropriate.

		Useful for applications that want to guarantee their
		memory allocations will be available in the future
		without having to initialize every page.

https://github.com/torvalds/linux/blob/v4.6/mm/util.c#L481

当 vm.overcommit_memory = 2 时

grep -i commit /proc/meminfo

image

/proc/meminfo 中的 Committed_AS 表示所有进程已经申请的内存总大小,(注意是已经申请的,不是已经分配的),如果 Committed_AS 超过 CommitLimit 就表示发生了 overcommit,超出越多表示 overcommit 越严重 -> 触发 OOM

那么这个 CommitLimit 是怎么算出来的呢?

int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin)
{
	long free, allowed, reserve;

	VM_WARN_ONCE(percpu_counter_read(&vm_committed_as) <
			-(s64)vm_committed_as_batch * num_online_cpus(),
			"memory commitment underflow");

	vm_acct_memory(pages);

	/*
	 * Sometimes we want to use more memory than we have
	 */
	if (sysctl_overcommit_memory == OVERCOMMIT_ALWAYS)
		return 0;

	if (sysctl_overcommit_memory == OVERCOMMIT_GUESS) {
		free = global_page_state(NR_FREE_PAGES);
		free += global_page_state(NR_FILE_PAGES);

		/*
		 * shmem pages shouldn't be counted as free in this
		 * case, they can't be purged, only swapped out, and
		 * that won't affect the overall amount of available
		 * memory in the system.
		 */
		free -= global_page_state(NR_SHMEM);

		free += get_nr_swap_pages();

		/*
		 * Any slabs which are created with the
		 * SLAB_RECLAIM_ACCOUNT flag claim to have contents
		 * which are reclaimable, under pressure.  The dentry
		 * cache and most inode caches should fall into this
		 */
		free += global_page_state(NR_SLAB_RECLAIMABLE);

		/*
		 * Leave reserved pages. The pages are not for anonymous pages.
		 */
		if (free <= totalreserve_pages)
			goto error;
		else
			free -= totalreserve_pages;

		/*
		 * Reserve some for root
		 */
		if (!cap_sys_admin)
			free -= sysctl_admin_reserve_kbytes >> (PAGE_SHIFT - 10);

		if (free > pages)
			return 0;

		goto error;
	}

	allowed = vm_commit_limit();
	/*
	 * Reserve some for root
	 */
	if (!cap_sys_admin)
		allowed -= sysctl_admin_reserve_kbytes >> (PAGE_SHIFT - 10);

	/*
	 * Don't let a single process grow so big a user can't recover
	 */
	if (mm) {
		reserve = sysctl_user_reserve_kbytes >> (PAGE_SHIFT - 10);
		allowed -= min_t(long, mm->total_vm / 32, reserve);
	}

	if (percpu_counter_read_positive(&vm_committed_as) < allowed)
		return 0;
error:
	vm_unacct_memory(pages);

	return -ENOMEM;
}

红帽犯过这个错误 :https://access.redhat.com/solutions/665023

image

OOM-killer

OMM killer 机制:linux 会为每个进程算一个 score,当内存不足时候它会根据 score kill score 越大表示越容易杀死

#!/bin/bash

while read -r pid comm
do
    printf '%d\t%d\t%s\n' "$pid" "$(cat /proc/$pid/oom_score)" "$comm"
done < <(ps -e -o pid= -o comm=) | sort -k2 -n

/proc/${pid}/oom_score_adj, 取值范围为-1000到1000, 如果将该值设置为-1000,则进程永远不会被杀死 --> pg /proc/${pid}/oom_adj, 取值是-17到+15,取值越高,越容易被干掉。如果是-17,则表示不能被kill /proc/${pid}/oom_score, 是系统综合进程的内存消耗量、CPU 时间(utime + stime)、存活时间(uptime - start time)和 oom_adj 计算出的,消耗内存越多分越高。

https://elixir.bootlin.com/linux/v5.4.58/source/mm/oom_kill.c

数据库如何设置,如何避免被 oom-killer

  • short answer for redis -> echo 1 > /proc/sys/vm/overcommit_memory :)
  • for PostgresSQL or Greenplum -> echo 2 > /proc/sys/vm/overcommit_memory :)

why

redis:

The Redis background saving schema relies on the copy-on-write semantic of the fork system call in modern operating systems: Redis forks (creates a child process) that is an exact copy of the parent. The child process dumps the DB on disk and finally exits. In theory the child should use as much memory as the parent being a copy, but actually thanks to the copy-on-write semantic implemented by most modern operating systems the parent and child process will share the common memory pages. A page will be duplicated only when it changes in the child or in the parent. Since in theory all the pages may change while the child process is saving, Linux can't tell in advance how much memory the child will take, so if the overcommit_memory setting is set to zero the fork will fail unless there is as much free RAM as required to really duplicate all the parent memory pages. If you have a Redis dataset of 3 GB and just 2 GB of free memory it will fail. image

Setting overcommit_memory to 1 tells Linux to relax and perform the fork in a more optimistic allocation fashion, and this is indeed what you want for Redis.

PostgresSQL or Greenplum:

Why Use Strategy 2? The issue with the default overcommits strategy, or using strategy 1 is the unpredictable nature of the failure. In either case we are not guaranteed that the memory is available at time of allocation and that results in unpredictable termination of processes. In particular, the nature of the failure with strategy 1 can result in corruption of either datafiles or transaction logs as a memory failure can occur mid-transaction resulting in the immediate shutdown of the database process without any cleanup.

那如果 redis 和 pg 跑在一台机器上有什么好的建议么?

  • 采用策略 1 保证 redis 在内存不足时候可用,设置 pg master 的 oom_score 让它避免被 oom-kill
  • 采用策略 2 尽量避免造成 redis 会 oom 的情况
  • 分两台机器

当设置 overcommit = 2 时有什么需要注意的

  1. 如前文说的如果服务器有 redis 要保证内存充足
  2. JVM 启动时 Xms Xmx 设置成相同的值,避免向系统申请内存
]]>
2023-04-12T04:13:02+00:00
https://github.com/yihong0618/gitblog/issues/259开源四年的一些记录2024-04-27T09:39:13.845192+00:00写在前面
  • 很多已经在 #186 中记录了而距离这篇又两年半过去了,经历了不少成长与感动,在这里记录一下。

一些感动

  • 我的第一个项目是命令行听机核最开始写完顺便写了一篇文章发在了机核上,那时候我还不太明白怎么弄 PR, 怎么在开源世界里合作,项目的第一个贡献者后来我们在推特互相发现(他给 gaycore 添加了快进功能),有种世界真小的感觉(发现时候我还没几个 fo)。后来他去了美国,我们偶尔还在 tg 聊聊各自的生活,感觉像认识了好多年的朋友。
  • 之后 kindle 离开中国,我恰好有一些 kindle 方面的接口调研经验,写了个帮助大家下载自己书的小项目,被一个网站转载,但读文章之后发现他把所有我项目的链接都换成了自己的,想着有些别扭但还能接受的时候,看到评论区 Ray 和 siwei 在下面的留言,心里暖暖的。 image
  • 熟悉我项目的朋友大概都知道,我所有项目的最后一句话都是谢谢就够了,后来在 issue 里在邮件中真的收到了好多感谢,有的还特意发邮件谢谢我,说我帮到了他好多。下面截图是我在 running_page issue 中收到的感谢 image
  • 因为后面给很多跑步的项目提了一些 issue 和代码,其中最感动的就是我给 strava-datasource 提的一个 issue 并附上了解决方案,那个我特别敬佩的作者直接回复,Hi! Could you open a PR with these changes? 让我直接有机会给了 grafana 相关的项目提代码。我也把这个传承了下去,在自己项目中,issue 并附上相关解决方案的同学,我都会问一下是否愿意提个 PR.
  • 收到了图灵编辑的邮件,感谢我做的翻译项目,还要送我一些书。
  • 妈妈和老婆跟我说过,虽然看不懂我做的东西,但是感觉我非常厉害,能帮到其它人就更厉害了。老婆也支持我在业余时间写代码。
  • 面试官(后来成了我的领导),在面试前认真看了我所有的项目
  • 和很多人因为开源成了现实中的朋友

一点成长

  • 掌控感,这个月第一次经历了两个同时增长的项目,几乎所有业余时间都在这上,在这个阶段懂了,如何在自己能力范围内更新项目,判断需求,处理 issue 和如何决定是否合 PR, 当然在累的什么都不想干的时候,忽然想明白了休息才是最重要的
  • Make it work then make it better. 在最开始的时候我总是想把项目尽可能做的好,加足够多帮到大家的功能再发布,后来明白了,这个是开源项目,我需要做的是,尽可能的让项目 work 起来,pull the trigger, 如果这个项目 work 的足够好,会吸引更多厉害的人来一起 make it better
  • 别炫技,如果这个不是需要炫技的项目,那么,尽可能用最简单的实现,项目就会帮到更多的人,让更多的人参与进来。
  • 记录,比如现在我正在做的

一些遗憾

  • 有些 PR 处理的不好,让一个非常热心的台湾朋友有些累,关掉了 PR. 我自责了好一段时间。他代码写的很漂亮,我应该在那时候尽快处理,而不是想着先添加功能
  • running_page 因为有地图展示,有一个让我非常难受的 PR.
  • 因为 running_page 的置顶 issue 我想纪念那些逝去的跑步的朋友,被人说滥用 GitHub.

一点分享

  • Always be nice
  • 别轻易直接关掉 Issue, 有的时候很伤人
  • 如果项目有我之外的贡献者,即使贡献者是修个 typo, 在 issue 回复里尽量用“我们”, 因为已经不是我一个人的项目了
  • 除非没办法,别停止更新每一个项目 let it work, 因为开源,不一定在什么时候帮到别人

一些数据

下面是我在这 4 年里写的开源项目的数据(截止 2023.3.21)而这个表格是用我的一个项目 -> github-readme-stats 自动生成的。这 4 年从第一个项目 gaycore 开始,我一共用 5 种语言写了 35 个开源项目得到了 14000 多个 stars. 还挺值得自豪一下的。最值得自豪的是,它们大部分还在更新。我还给一共 55 个项目提了 160 个 PR.

The repos I created

ID REPO START UPDATE LAUGUAGE STARS
1 bilingual_book_maker 2023-03-02 2023-03-20 Python 4413
2 running_page 2020-09-17 2023-03-20 Python 2336
3 xiaogpt 2023-02-16 2023-03-20 Python 1943
4 Kindle_download_helper 2022-06-06 2023-03-20 Python 1498
5 GitHubPoster 2021-04-21 2023-03-20 Python 1364
6 gitblog 2019-07-18 2023-03-20 Python 878
7 2022 2022-01-01 2023-03-11 Python 274
8 2021 2020-12-21 2023-03-05 Python 273
9 blue 2022-10-20 2023-03-20 Python 260
10 iBeats 2021-06-11 2023-03-19 Python 200
11 iWhat 2023-03-08 2023-03-19 Python 172
12 2020 2020-01-10 2023-03-05 C 139
13 vscode-gcores 2020-01-04 2023-03-06 TypeScript 110
14 github-readme-stats 2020-12-24 2023-03-19 Go 101
15 gaycore 2019-02-18 2023-03-06 Python 99
16 dalian-IT 2021-04-07 2023-03-19 md 99
17 2023 2023-01-01 2023-03-19 Python 51
18 duolingo_remember 2021-01-18 2023-01-30 Python 50
19 shanbay_remember 2020-12-02 2023-03-13 JavaScript 47
20 nbnhhsh-cli 2021-07-09 2022-07-16 Python 32
21 gcores_calendar 2020-08-24 2023-03-04 JavaScript 27
22 pengdu_helper 2021-09-09 2023-01-27 Go 27
23 yihong0618 2020-07-16 2023-03-15 md 26
24 my_kindle_stats 2021-11-18 2023-03-17 Python 25
25 running_skyline 2021-03-02 2022-05-10 Python 20
26 kai_xin_ci_chang 2022-06-15 2023-03-11 Python 17
27 blog 2020-06-22 2023-01-28 JavaScript 14
28 Runtastic 2020-07-24 2023-02-03 Python 14
29 github-readme-stats-server 2021-12-08 2023-01-19 HTML 9
30 Python365 2019-09-05 2022-10-30 Python 7
31 run 2021-08-16 2023-03-17 Python 7
32 github_upstream_script 2021-05-08 2022-03-08 Python 2
33 edocteel001 2019-11-12 2022-06-24 JavaScript 1
34 gaycore-server 2019-02-18 2020-11-02 Go 0
35 test_svg 2021-03-18 2022-06-16 md 0
sum 14535
ID REPO FIRSTDATE LASTEDATE LANGUAGE PRCOUNT
1 GreenplumPython 2022-03-30 2023-02-21 Python 23
2 plcontainer 2022-03-24 2023-02-17 C 19
3 GpxTrackPoster 2019-08-06 2021-03-20 Python 12
4 leetcode-cli 2019-11-29 2020-08-21 JavaScript 9
5 gpdb 2021-12-13 2023-02-28 C 8
6 autocut 2022-11-17 2022-11-21 Python 7
7 vscode-leetcode 2019-12-03 2020-07-22 TypeScript 6
8 taichi 2021-09-23 2021-10-23 C++ 5
9 nrc-exporter 2020-07-05 2020-10-07 Python 5
10 kb 2020-09-21 2020-09-23 Python 3
11 awesome-cn-cafe 2020-08-04 2020-08-10 JavaScript 3
12 ecapture 2022-03-29 2022-05-02 C 3
13 stravalib 2021-08-18 2022-11-24 Python 3
14 pg-lock-tracer 2023-01-28 2023-01-28 Python 2
15 activities 2020-07-09 2020-07-14 JavaScript 2
16 databend 2021-12-29 2021-12-30 Rust 2
17 incubator-opendal 2023-01-12 2023-02-03 Rust 2
18 python-garminconnect 2021-02-26 2021-05-25 Python 2
19 hub-mirror-action 2021-04-09 2021-04-19 Python 2
20 py-staticmaps 2020-09-20 2021-03-24 Python 2
21 strava-datasource 2021-04-13 2021-05-13 TypeScript 2
22 nebula-python 2021-05-19 2021-05-20 Python 2
23 iredis 2019-12-30 2020-09-16 Python 2
24 Tweet2Telegram 2021-05-21 2021-05-21 JavaScript 2
25 helang 2022-08-19 2022-08-19 Python 2
26 DingdangD1-PoC 2022-08-17 2022-08-17 Python 1
27 book-searcher 2022-11-30 2022-11-30 TypeScript 1
28 Striker 2019-06-20 2019-06-20 Python 1
29 GadioVideo 2019-09-25 2019-09-25 Python 1
30 MangaLineExtraction_PyTorch 2021-09-22 2021-09-22 Python 1
31 LearnJapan 2020-03-31 2020-03-31 TypeScript 1
32 MiService 2022-11-04 2022-11-04 Python 1
33 pdbattach 2022-03-07 2022-03-07 Python 1
34 notion-avatar 2021-09-28 2021-09-28 TypeScript 1
35 highlight 2020-09-08 2020-09-08 JavaScript 1
36 tzfpy 2023-01-25 2023-01-25 Python 1
37 TopList 2019-08-19 2019-08-19 Go 1
38 tokei-pie 2021-11-19 2021-11-19 Python 1
39 nebula 2021-05-17 2021-05-17 C++ 1
40 pgtracer 2022-11-01 2022-11-01 Python 1
41 juicesync 2021-12-29 2021-12-29 Go 1
42 diskquota 2022-03-18 2022-03-18 C 1
43 tzf-rs 2023-01-25 2023-01-25 Rust 1
44 olo 2021-04-12 2021-04-12 Python 1
45 UsePythonProcessDataFaster 2021-09-01 2021-09-01 md 1
46 pyWhat 2021-06-18 2021-06-18 Python 1
47 help-to-be-helped 2020-02-04 2020-02-04 md 1
48 xrkffgg 2021-03-18 2021-03-18 JavaScript 1
49 github-repos-stats 2022-04-06 2022-04-06 Go 1
50 incubator-devlake 2021-11-23 2021-11-23 Go 1
51 derive 2019-09-28 2019-09-28 JavaScript 1
52 gitlab-skyline 2021-03-02 2021-03-02 Python 1
53 awesome-cn-cafe-web 2020-08-18 2020-08-18 TypeScript 1
54 awesome-database-learning 2021-05-11 2021-05-11 md 1
55 build-your-own-vue 2020-01-16 2020-01-16 JavaScript 1
sum 160
]]>
2023-03-21T03:11:53+00:00
https://github.com/yihong0618/gitblog/issues/258不用 root 使用小爱同学和 ChatGPT 交互折腾记2024-04-27T09:39:13.989417+00:00写在前面

项目链接 -> https://github.com/yihong0618/xiaogpt 大多数事儿很简单的一个结论是:这么做有什么用? 但是,没用就不做了么?好玩也是有用之一呀。

下文中 revChatGPT 方案废弃了,全部改用 API, 请参考 repo.

想法

  • 从 ChatGPT 刚上第二周开始,我弄了个账号,后来发现一个很好玩的项目 ChineseAiDungeonChatGPT --> 用 ChatGPT 玩 DND, 我突然想我能语音就更有带入感了。
  • 因为之前折腾 blue 时候了解了一些小米 IOT 设备的交互 tts, 我觉得我用一些方式是可以实现的
  • 不过从想法到可用确实经历了不少

开始折腾

  1. 最早的 idea 是把小爱同学破解了,破解之后拦截我的对话,如果对话包含 GPT 就用破解的小爱发送请求到 ChatGPT, 再把 ChatGPT 的回复截包,读出来。
  • 遇到最大的困难是小爱怎么破解,搜了一圈发现,小爱是有办法通过串口来 hook 再刷固件的。
  • 但串口是啥?我学习了串口通信,用自己树莓派做实验,去淘宝买 usb2ttl 学会了。但是需要焊接,我又去 B 站刷视频学习,问同事硬件大神如何焊接,学会了焊接。但,他妈的,新的小爱同学把串口通信给封了。
  • 翻到了一个国外破解小爱同学的,能用拆机后的 USB 来烧固件,但我没有 windows,-> 学习老的 macbookpro 2015 刷双系统,尝试给小爱刷机 -> 小米把这个也封了
  • 有趣的是每天用发现确实还挺好用的,让他放歌,给我儿子放小猪佩奇。于是又给丈母娘买了一个,给她配置好,可以放歌。
  1. 第一个方式不太行,尝试去用路由 openwrt 截包再发送,依然失败,我折腾了一下发现 https 获取 payload 还是有些困难的
  2. 转向了 Siri 那么我能不能用 Siri 实现呢?是能的,可以用 Siri -> 捷径 -> 获取你说的话 -> 发送 ChatGPT -> 小爱 or 直接 Siri 自己来
  3. 网友象牙山刘能有一天发他儿子小爱同学的聊天记录,突然灵感来了,我可以用最蠢的轮询,来不断获取最新的聊天记录,如果有新的符合要求我就发送给 ChatGPT --> 再用 tts 让小爱同学朗读,但因为朗读需要时间,所以轮询也没那么笨了。

实现

  • 先实现不断拿对话历史
  • 测试 revChatGPT 可行
  • 利用 MiService call tts 可行
  • 剩下就是写代码了

准备

  1. ChatGPT id
  2. 小爱音响
  3. 能正常联网的环境或 proxy
  4. python3.8+

使用

  1. pip install -r requirements.txt
  2. 参考 MiService 项目 README 并在本地 terminal 跑 micli list 拿到你音响的 DID 成功 别忘了设置 export MI_DID=xxx 这个 MI_DID 用
  3. 参考 revChatGPT 项目 README 配置 chatGPT 的 config
  4. run python xiaogpt.py --hardware ${your_hardware} hardware 你看小爱屁股上有型号,输入进来
  5. 跑起来之后就可以问小爱同学问题了,“帮我回答开头的问题” 会发送一份给 ChatGPT 然后小爱同学用 tts 回答

总结

  • 完成那一刻确实挺开心,但过程中发现了几个好玩的博客,惊讶了做 revChatGPT 的学生真牛逼,学会了焊接,开始发现硬件也挺有意思的,不断折腾的过程沮丧有一些,但更多的是学习新东西带来的兴奋感。
  • 拆机发现,小爱同学内部做工确实不错
  • 折腾过程中的感受,将来肯定有一天这些智能音箱厂商也会训练大模型,将彻底改变智能家居,仿佛看到了未来

彩蛋

image

]]>
2023-02-16T05:09:45+00:00
https://github.com/yihong0618/gitblog/issues/257用 eBPF trace PostgreSQL 的几种姿势2024-04-27T09:39:14.094258+00:00image

用 eBPF 来观测用户空间应用程序这几年越来越火了,诞生了不少开源的应用,但在数据库这个领域相关的应用还不算太多,特别是 PostgreSQL. 在这个领域之前没那么多人研究可能的原因:

  1. 数据库开发在前些年还没像今天这么热门
  2. PostgreSQL 自带 dtrace 只需要在编译时 --enable-dtrace 就可以进行一些观测
  3. pg10 之前应用 uprobe 并不容易

发展

bcc

bcc 是自带 mysql 和 postgres 的例子的, 可以观测慢查询和 latency 但针对 pg 必须开启 dtrace 才能使用

  • tools/dbslower: Trace MySQL/PostgreSQL queries slower than a threshold. Examples.
  • tools/dbstat: Summarize MySQL/PostgreSQL query latency as a histogram. Examples.

postgres-bcc

能不能不用 dtrace 而只使用 eBPF 的 uprobe 来观测 pg 的查询呢?答案是能的:

就像 mysql 的查询入口是 dispatch_command 一样,要使用 uprobe 来 trace 的函数入口是 exec_simple_query 之前在 GitHub 上查询一下,最早把 trace postgres 写成应用的是 postgres-bcc 作者应用 bcc 且不用开启 pg 自带的 dtrace 写了一系列 trace pg 的小工具,工具包括:

  • Lock tracing(包括 lwLock)
  • Network usage
  • WAL
  • Filesystem(io)

这个项目相比 bcc examples 可以说是非常成熟,作者把 kprobe 和 uprobe 结合起来,来从用户态和内核态来一起观测 pg, 更厉害的是,作者还写了一篇的文章:

PGTracer

PGTracer 是 2022 年诞生的第一个 eBPF 来观测 pg 的企业项目,来自 aiven 这个公司,这个项目的定位也很有意思从最开始的 perf 工具到现在的工具集,它会把一个查询的整体信息打印出来,帮助大家观察查询,更有意思的是,它还包括了查询计划,如图:

  • query: image
  • tracing result: image

pg-lock-tracer

pg-lock-tracer 是 2023 年诞生的新项目,作者是这个项目专注于 trace pg 中的各种锁,作者还把 lock 和 lwlock 区分开来 trace, 还可以直接生成 dot 图,方便学习,观测以及 debug.

如果想学习 pg 中的 lock 这个项目也是很好的切入点

image

  • Lock statistics: image

  • dot 图: image

作者 @jnidzwetzki 还写了两篇介绍文章

我也想写一个工具

如果大家也想写一个类似的工具如何入手呢?

我在去年给 ecapture 提了一个支持 pg 的 PR 大家可以参考:

  1. 学习一点前置的 eBPF 的知识,知道 uprobe 怎么用
  2. 把上面的任何一个项目运行起来
  3. 针对 pg 找到你想 trace 的点,然后找到相关的函数,利用 uprobe hook 这个函数,用 eBPF 拿到函数的参数值,时间,pid 等信息,利用这些信息整理出 trace 的结果
  4. 如果需要配合 kprobe 可以把这些结合在一起
  5. 学习一点 bcc, 可以直接参考我上面列出项目的代码,来 hook 自己想要的函数和想要 trace 的点
  6. 如果用 go 的同学可以把 bcc 换成 cilium

image

未来展望

  1. 不止是 pg, 现在很多数据库可以直接使用 eBPF 来进行观测,像 greenplum 是默认开启 debug 的,观测会更方便些
  2. 云上数据库结合 eBPF 观测感觉未来也会有一些很棒的项目
  3. Enjoy it
]]>
2023-01-28T07:05:11+00:00
https://github.com/yihong0618/gitblog/issues/2552022 失落的一年2024-04-27T09:39:14.208802+00:00突然想写年终总结,30 几年的第一次,以前是从来不想写这个东西的,但今年过的实在是太差了,就当是对自己过去的一年的整理,这个整理痛苦在,好的地方可能只有聊聊几笔,大多是不那么愉快的回忆吧?

新冠

  • 今年有大半年大连在要么封着要么在封着的路上,自己的心情也随着这些起伏,在家不能出去实在是难受,由此自己对防疫爱好者有了新的偏见,甚至因此失去了 20 几年的朋友。
  • 心态呢,也发生巨大的改变。突然意识到自己不需要那么多朋友的,有些留给回忆好像更美好一些,这种放弃来的突然,就好像不认识了这个自己。删掉好友无论是在微信上还是内心上都毫无波澜,冷静的可怕
  • 年底的突然转向我也骂不动了,每天都出门,孩子去幼儿园和其他地方也从来没耽误过,结果倒是那些怕的不行的人先阳了,我们一家早就做好准备却一点事儿没有,来的讽刺。

工作

  • 为数不多今年比较开心的了,换了一份工作,有非常牛逼的同事和对我很好也特别厉害的领导,领导跟我爱好有很多相似的地方,真的开心。
  • 我自己倒是很少在社交平台谈论自己的工作,自己有了一些成长,更多的是认识到了自己的不足,需要做的很多,明年需要更多的成长,如果明年顺利的话。
  • 工作是:https://github.com/yihong0618/gitblog/issues/228

家庭

  • 懂了一些怎么经营一份感情,尤其是到了很多朋友开始离婚的年龄
  • 但自己其实做的远远不够,我需要做的更好,好在自己的进步空间还算大
  • 缺少了用心和儿子建立感情

游戏

  • 感谢《杀戮尖塔》治好了我游戏 ED, 打了大半年,目前进阶 20, 两周前还买了 xbox

个人

  • 跑步这几年最差的一年,大概只跑了 750km 配速也从 5mins 到了7mins
  • 身体也是最差的一年
  • 当然我可以把这些归咎于防疫,但显然是自己太懈怠了
  • 酒喝了好多,和老朋友,和推上认识新朋友,这点还是值得开心的
  • 书没读几本,电影剧没刷几部
  • 没离开过大连,妈的
  • 新冠中说的,微信删了几百个好友,其实删完了没那么开心
  • 没有好好看看海
  • 年初设定的目标一个也没完成

GitHub

  • 写了几个新项目,最重要的要算是 Kindle_download_helper 了,帮到了不少人
  • 通过代码和很多人相识了起来,特别是 frostming 还有 jo 有好玩的我们总会分享
  • 还有感谢 siwei, 送了我好多东西,我欠他好多次干杯。

推特

  • 慢慢的 fo 多了起来,但这不是我应得的,拿到自己能力之外的东西难免出问题,保持自己,错了就是错了,别觉得自己有什么,只是幸运而已
  • 认识了几个好朋友,这个推特最大的意义
  • 我最敬仰的几个人关注我了,今年为数不多值得拿来吹的
  • 但我就像个雨后爬出的蚯蚓,墙外的东西不属于我,随时可能失去,尽量去享受能看到墙外世界的每一天

朋友

  • 今年时不时想起自己死去的朋友,为此还去重读了几本村上春树的书,他们永远停在那了

白纸

  • 看到了这片土地的希望

没有展望

  • 明年不写目标了,写了大概率不会完成,不如不写。努力去实现一个

我的 2022

https://github.com/yihong0618/2022

]]>
2022-12-19T13:39:19+00:00
https://github.com/yihong0618/gitblog/issues/254写诗吧2024-04-27T09:39:14.308053+00:00把写的短句更新再这里
《新冠》
头痛
捂嘴
脚痛
捂嘴
四月张开了口
四月断了喉咙
我们低下头
看见了枷锁
还好
有京城的人在嘶喊
有山城的人在唱歌
他们再也没机会说
无一人是男儿
]]>
2022-11-25T11:38:14+00:00
https://github.com/yihong0618/gitblog/issues/252利用 GitHubPoster 和 GitHub Actions 备份任意用户推特2024-04-27T09:39:14.403109+00:002023-4-21 推特把这个封了,2023-5-2 复活了部分功能,但只能备份 3200 条

完全不用登陆,不用申请开发者,备份任意非锁推推特用户的所有推特

为什么用 Github Actions

  1. 不用全局梯子
  2. 不需要考虑翻墙软件的 ssl 问题
  3. 方便且不用考虑本地环境配置问题

注意

How to? 只需要几个步骤,具体可以参考图片

  1. fork or clone GitHubPoster
  2. enable GitHub Actions
  3. 找到如下图的的 Twitter Back Up
  4. 点击 Run workflow
  5. 输入推友的 twitter name 点击绿色的 Run workflow
  6. 等待 Actions 跑完
  7. 所有推特备份记录在 OUT_FOLDER/${twitter_user_name}.txt 中,大家可以自己备份分享,还有个展示的 svg
  8. 如果遇到 permission deny 情况可以参考这个 issue https://github.com/ad-m/github-push-action/issues/96 打开写的权限

image

例 Action workflow

https://github.com/yihong0618/GitHubPoster/actions/runs/3503844462/jobs/5869157102

注意

  1. 鉴于推特这些天的情况,这个可能随时不好用,我不会持续更新
  2. 锁推用户无法备份,如果你锁推并且想备份自己的可以先开锁,等备份完成后再锁
  3. 如果你想备份自己的又不想给别人看,可以把项目设成私有的,一样可以跑 Actions
  4. 不会回答太多问题

下图为 @frostming 的推特演示

image

image

Enjoy it

]]>
2022-11-19T14:27:48+00:00
https://github.com/yihong0618/gitblog/issues/251一杯敬月光2024-04-27T09:39:14.501374+00:00image

又在喝一瓶一升的啤酒,一大罐,拿起来有些重,自己一边对着电脑看代码一边喝,从重量看这瓶要喝完了。 成年人的世界,说起来可笑,是一个不断抛弃爱好的过程,终于这个过程在肉眼可见的 35 岁迎来了抛弃朋友这一步。

一杯敬月光

我有很多朋友,很多都很要好,现在举起酒杯却不知道联系谁,甚至想的更多的是跟一些推特上, GitHub 上素未谋面的人喝上几杯,而不是曾经的朋友。

这种抛弃来的突然,某天被朋友教育,教育我不要总看不好的一面,嘴上答应的好依然欢声笑语。 可这次之后,半年过去了,一次也没联系过这十几年的朋友,微信默默的对其不可见,也不会说其它的,几次不回答之后,朋友也就不再理我了。挺好的。

一杯敬过往

我有一个爹了,我也是一个五岁孩子的爹,越发的不想再要一个朋友当爹了,当然,我会反思自己,但无趣了就是无趣了,年龄增长以后的世界抛弃了就是抛弃了。有精力多珍惜自己该珍惜的。

离开这欢乐场

看到很敬仰的推友的一句话:

这世界配不上这么善良的人儿

确实。忽然又想起自己那些死去的朋友,某种程度上他们永远活在那里,定格在那里,他们不会改变了,永远是我的朋友,我也会在某一天去找他们吧。

祈祷

大多数时候我是乐观的,毕竟,没有人能万岁的。

希望

接下来活的更洒脱一点,该抛弃就抛弃,同时担起应该有的责任。

干了这杯

写完这句把最后剩的这些一饮而尽,读到这的朋友,有机会,我们喝一杯。 没机会也无所谓。

写到这儿

]]>
2022-11-18T14:59:29+00:00
https://github.com/yihong0618/gitblog/issues/248如何判断一个数字帐号来自中国大陆2024-04-27T09:39:14.596615+00:00今天把微信迁移到 WeChat 了,想到数据分离已经不是将来时而是进行时甚至过去时,记录一下。

Duolingo

做的最绝的是多邻国

  • 如果是微信 +86 手机号注册,多邻国判断你来自中国大陆
  • 如果手机时区是 +8 手机语言是中文,多邻国大概率判断你是大陆用户
  • 它还会判断你之前打开的时区

如果多邻国判断你是中国大陆用户

  • 你无法使用多邻国的排行功能
  • 你无法添加好友
  • 你将被审核
  • 你必须登入才能获取到一些记录

LeetCode

目前最简单的是 LeetCode

  • 如果你浏览器的语言是简体中文,LeetCode 会推荐你去 LeetCode-cn

如果 LeetCode 判断你是中国大陆用户,并且你决定使用 LeetCode-cn

  • 你可以迁移 LeetCode 到 LeetCode-cn
  • 你可以使用 LeetCode 的 app
  • 你会体验到一个符合大陆用户审美的界面

微信

微信会用绑定的手机判断你是否来自中国大陆

  • 绑定 +86 你就是大陆用户

如果你是微信的大陆用户

  • 你无法使用 WeChat out
  • 你将收获更多的广告
  • 你可以体验到更多的审核
  • 你更容易被炸号
  • 你可以体验到游戏中心

NRC(Nike Run Club)

NRC 会用地点判断你是否为中国大陆用户

  • 你的手机及 NRC 内的地点设置均为大陆以外,你就不是大陆用户

如果你现在是 NRC 的大陆用户

  • 你将收到一封信 NRC 离开大陆的信
  • 你用不了了

TikTok

也挺绝的是 TikTok

  • 会判断你的 sim 卡
  • 会判断你的 vpn

如果你是中国大陆用户

  • 你可以使用抖音!

2022.11.08 更新,多邻国恢复了中国大陆的排行榜

欢迎补充


2023.05.12 补充

  • bing 会判断语言,dns
  • bard 会判断语言及地区
  • ChatGPT 还会判断是否为梯子运营商
  • Slack 的 Claude 会判断 VPN
  • 所有的这些都会判断是否为 +86 手机号。

推友的补充以及我不对的地方 image

]]>
2022-10-25T08:38:30+00:00
https://github.com/yihong0618/gitblog/issues/242Random Thoughts2024-04-27T09:39:14.698677+00:00一些随想,不想在社交网站朋友圈写的更新在这里
  1. 楼下大喇叭喊非必要不出门,去你妈的。
  2. 早就跟病毒疫情无关了,无非是服从性测试。想到这些心态好了很多。但该骂还是骂吧,这点发泄的权力都没有的时候,一切也就完了。
  3. 环境是越来越差,但是在人只有一辈子的前提下,很多事儿是运气。年纪越大也就越信命,尽量去改变自己能改变的部分
  4. 以前的一个朋友渐行渐远,反而觉得庆幸,人生经历的很多必然
  5. 推上我很自然的看到我关注的朋友找工作都会帮忙转发,不知道我有这一天需要帮忙的时候会不会有人帮我
  6. 躲进小楼成一统
  7. 尽量不去评价别人的生活,在任何时候
  8. 他怎么死了?他怎么还活着?他怎么还不死?
  9. 别油腻
  10. 日拱一卒
  11. 读了 justinyan 这篇文章 也挺有感触的,这种无力感真的难受。
  12. 父母家人告诉我接受不能改变的,瑞·达利欧耶告诉我们认清现实。。。可谈何容易。每天不知道吐槽多少次各种傻逼,当然在他们的眼里我是更大的傻逼。
  13. 唯一能做的是不去插手儿子的思考,别像我一样变成大家眼里的异类
  14. 地震响了,核酸不能停
  15. 如果诅咒有用就好了
  16. 感受着时代的滚动,但不知道会滚向何方
  17. 连世界和我是不是真实的我都分不清,我思考这些,打这些字的意义是什么?
  18. 去他妈的意义,很多事情不需要意义
  19. 机核会员该买了
  20. 知易行难,永恒的概念
  21. 走有一万个理由,但不走一个就够了,家在这。
  22. 有些困惑,在外企工作好多年了,最不在意的就是口音,为什么这么多人学英语在意发音?英语不是用来用的么?又不是播音员
  23. 在推上关注很多人,不想评价,但深深的感觉到了,很多痛苦是自己造成的,警示我别变成那样
  24. 但很多事儿我是改变不了的,比如活在这个时代需要的运气。
  25. 写到这儿
]]>
2022-08-31T01:47:33+00:00
https://github.com/yihong0618/gitblog/issues/241反思2024-04-27T09:39:14.798972+00:00记录一下

  • 好像是第一次和网上一个大 V 吵架,我也懒得吵,其实自己还是有做的不对的地方的。
  • 但重要的是我平白无故浪费了好多时间精力,时间还好,大部分时间本来就是用来浪费的,但精力不是,以后尽量不这样了
  • 道歉其实不难的
  • 我错的地方在于,其实早上这条我完全可以无视的,像之前一样,忘了自己告诉自己的要控制表达欲了。
  • 但控制表达欲真难啊,fo 多了以后,抖个机灵就知道大概会有多少人喜欢多少转发,但其实这些都是无所谓的。
  • 写到这儿吧
]]>
2022-08-10T06:08:48+00:00
https://github.com/yihong0618/gitblog/issues/239今天的跑步电台2024-04-27T09:39:14.890757+00:00今天的跑步电台

image

从 2020 年开始,我用今天的跑步电台这个 tag 记录自己一边跑步一边听电台也算是快两年了。也不断在下面评论中收到一些相同的问题和想让我推荐一些不错的电台,这篇文章就用 Q&A 的形式来写,也算是给自己做个记录,同时还能方便大家找喜欢的播客听。btw, 如果大家有不错的电台也可以推荐在这个 issue 的评论区。

Q: 为什么一边跑步一边听电台? A: 我跑步有些年头了,也喜欢一边跑步时候一边听些东西。最开始的时候还买了苹果的 shuffle 夹在衣服上听很方便。后来慢慢接触到了不错的播客,也是跑步时候听。最重要的是,我为数不多几个可以一心二用的时候,跑步听电台便是其中之一。他让有时候显得枯燥的跑步变得有意思多了。另外一个可以一心二用的时刻是:刷 Rogue Like 游戏时候听电台。

Q: 一边跑步一边听电台不会影响速度么? A: 会的,我想锻炼速度时候会改成音乐。

Q: 你用的是什么软件? A: 我一般直接用 iOS 自带的 podcast, 中文叫播客,偶尔自带的订阅的一些电台都听完了或者没感兴趣的会去小宇宙翻一翻每天的推荐,看到感兴趣的就拿来听,如果真的特别不错就会订阅。哦对,有些墙内听不到的我用 google podcase

Q: 用的什么耳机? A: AirPods

Q: 平时都听的什么电台? A: 我几乎每期都听的参考下图的订阅列表。请自行搜索 image image image image

还有重轻的《不在场》

Q: 还有其它的么? A: 我偶尔听的电台:

  • 《商业就是这样》
  • 《杯弓蛇瘾》
  • 《创业内幕》
  • 《跳岛FM》
  • 《东亚观察局》
  • 《机核》
  • 《Anyway.FM 设计杂谈》
  • 《开源面对面》

Q: 推荐哪些单期节目? A: 放到了附件中,参考 recommand.txt 选出推荐的 10 期如下:

ID 节目名 来自电台
1 《那些被喜悦暴击的时刻 2.0》 故事FM
2 《Full-Time Open Source》 CORECURSIVE
3 《有一种马赛克人人都喜欢》 Anyway.FM 设计杂谈
4 《跨性别者的医疗照护》 一席
5 《与飞书小伙伴聊聊程序员那些事》 ByteTalk
6 《在流水线上画梵高》 故事FM
7 《路人 2021 还可以,没问题》 路人抓马
8 《冷战中的宣传战》 忽左忽右
9 《美国》 不在场
10 《和 Gray 聊聊那些年遇到的神奇 Bug》 捕蛇者说

Q: 一边跑步一边听电台得到了什么? A: 啥也没得到。

Q: 有啥要注意的么? A: 冬天注意防滑,在路上跑的时候尽量不用降噪耳机,需要听周围的声音

Q: 推荐电台会持续更新么? A: 会的,特别推荐的我会继续放到表格里。

导出的所有今天的跑步电台的推。

radio.txt recommand.txt

]]>
2022-07-18T04:33:36+00:00
https://github.com/yihong0618/gitblog/issues/237LeetCode 是如何运行的--测试篇2024-04-27T09:39:14.996251+00:00

有段日子没写博客了。 一般情况,四张图加上 140 字能表达的内容我就直接发推了,想到这个可能会超过这个长度,就写在这里吧。 当然有个前情提要,感恩 GitHub Issues 的双向链接,

  • 我只需要 #205 大家就可以直接看到上一篇的相关文章了 --《力扣的程序是如何运行的》,我昨天自己也看了一遍哈哈。所以这篇的格式也会跟上一篇一样。

起因

最近心血来潮决定去刷几道题,上一次也是第一次刷题还是 3 年前了。 image

刷题的过程中感觉到了自己的不足。写完代码就直接提交了,结果很多时候是错的。也发现了 LeetCode 有先测试功能,需要自己写测试用例。 编了几个之后突然想,为什么我不能用官方的测试用例呢?那样不是更方便。搜了一下发现是没有的,并且这个需求还是有人提过的

  1. https://leetcode.com/discuss/general-discussion/635684/option-to-view-all-the-testcases
  2. https://www.quora.com/How-do-I-get-all-the-test-cases-of-problems-posted-on-LeetCode/answer/Vipin-Sharma-83

那么我能不能用我之前那篇文章的方法拿到 test case 呢?

探索

  • 把上一篇流程跑了一遍,发现 LeetCode 改了一些东西,增加了一点安全措施,但上文的方法依然可用
  • 观察 /mnt dir 下面的文件,data.in 最奇怪了,那么我们能不能打开呢? image
  • 完全没问题,里面的内容呢就是 test case...得到的好容易,在接口里也能看到,我们可以直接 print 那样就可以在 stdout 里看到了 image image image

继续探索

  • 那么我能不能写个脚本把这些测试都拿下来直接生成所有测试用例呢?看起来很简单,但其实栽了
  • 因为 LeetCode 的测试非常严谨,到后面的测试,比如字符串,它会用一个非常长的字符串,len(s) > 500000 print 根本是打不下的,LeetCode 也只会截取前面的,后面用 ... 代替
  • 如果整个测试太长,最后面的也会被截掉,用还剩多少个字符代替,如图 image
  • 尝试用 zlib compress + base64 给字符串压缩,同样失败,有一点点效果
  • 继续尝试用 urllib.request.urlopen 能不能把 data.in 发出去?不行,这个 docker 内部网是不通的
  • 有其它方法么?有的,把长的字符串收集到 --> 分 n 次拿到 --> 最后保存。但是对普通刷题的朋友太麻烦了没有意义,感兴趣的同学可以自己尝试

意义呢

  1. 不想多次提交,我可以建一个小号,第一次去拿测试,然后复制粘贴到测试用例里,这样能保证大部分测试是可以的。
  2. 本地测试通过了再提交就 OK 了,也不用自己写符合 LeetCode 的测试了
  3. 今天我就用这个方式搞定了每日一题哈哈哈 image
  4. 周赛貌似会很有用

启示呢

  • 做类似业务的朋友大多数也是 docker 起一个的方案,一定要小心,如果用户好奇会拿到你们许多信息的,连逆向都不用的。还有一定要小心 docker 逃逸的问题,LeetCode 能做到安全不代表所有公司能做到
  • 以后自己也要多写测试
  • 写代码,研究背后的原理,探索未知可比刷题有意思多了,我每次刷题最后都走偏。。。
  • LeetCode 不去公布所有测试也是有原因的,通过这次我明白了
  • 其实通过这个方式还能拿到一些 LeetCode setting 的限制,大家自己探索~
  • 其它语言其实同理,我跑通了 go 的,大家可以用自己习惯的编程语言测试
]]>
2022-07-01T02:54:12+00:00
https://github.com/yihong0618/gitblog/issues/235新冠纪元2024-04-27T09:39:15.129459+00:00标题和内容无关,想到哪里写到哪里。

第三年了,四月要过去了,声音一浪接过一浪,清零派,共存派。不知道何时收场,不知道怎么收场,突然想了一个可能性,会不会他们,就没打算收场。

战争即和平 自由即奴役 无知即力量 清零即共存

身处这片漩涡中,巨大的双手压在空中,那种无力感,挣扎,呐喊,404. 每个人都在其中,有时候会突然惊讶,身边的朋友怎么变成这样了?

最近的心情不太好,翻看自己的周记似乎一直在骂,骂战争,骂动态清零,当然只是在自己的地盘,在其他地方,家里,很少去表达自己真正的观点。

很多日常都搁置了,总是告诉自己等儿子幼儿园恢复了,家庭生活也正常了再去恢复自己,但 2 个月了,甚至没一个确切的日期。当然我比深处漩涡最深处的上海朋友好多了,也没太多值得抱怨的,他们太苦了。

我有一个 todo list, 列出了新冠过去了我想干什么,带儿子去日本玩等等,这个 list 越来越长,但慢慢的意识到了,我们可能再也回不去之前的生活了。

很多悲哀的事情来自于本可以,本可以不这样的,本可以不封城的,甚至,我们本可以没这 3 年的操蛋事儿的。

也许,我该接受这一切,平复自己的心情

  • 该学习学习,该跑步跑步,该读书读书
  • 重新把自己整理起来
  • 冥想
  • 减少信息的摄入
  • 多玩游戏,多爬爬山

实在不行,就去爱上老大哥,接受这一切,变成个傻逼

写到这儿。

]]>
2022-04-26T05:05:51+00:00
https://github.com/yihong0618/gitblog/issues/234Postgres 需要学的东西2024-04-27T09:39:15.226676+00:00
  • GUC
  • WAL
  • Locks
  • Shared memory
  • Page
  • LWLocks
  • IO
  • 协议
  • Diskquota
  • Tuple
  • FSM
  • Join
  • MVCC
  • BufferPool
  • 分布式
  • Btree & B+Tree
  • Hash
  • MmeoryContext
  • SPI
  • ]]>
    2022-04-25T04:27:15+00:00
    https://github.com/yihong0618/gitblog/issues/233Postgres 中 GUC 的一些记录2024-04-27T09:39:15.324573+00:00什么是 GUC

    在数据库中运行需要的各种参数 --> GUC: Grand Unified Configuration. 当我们需要写 postgres 中相关的插件时,离不开 GUC 的处理,这篇文章对 GUC 做一些简单的记录。

    Postgres 中的不同 GUC

    而这些参数的可以有各种各样的来源,postgres 对每种来源的处理也不完全相同, 这些来源中有 pg 默认的,系统环境的,来自 user 的,来自 session 的等等等。。。一些基于 pg 的分布式数据库还会额外的增加 GUC 来源。

    postgres 9.4 guc file src/backend/utils/misc/guc.c

    const char *const GucSource_Names[] =
    {
    	 /* PGC_S_DEFAULT */ "default",
    	 /* PGC_S_DYNAMIC_DEFAULT */ "default",
    	 /* PGC_S_ENV_VAR */ "environment variable",
    	 /* PGC_S_FILE */ "configuration file",
    	 /* PGC_S_ARGV */ "command line",
    	 /* PGC_S_GLOBAL */ "global",
    	 /* PGC_S_DATABASE */ "database",
    	 /* PGC_S_USER */ "user",
    	 /* PGC_S_DATABASE_USER */ "database user",
    	 /* PGC_S_CLIENT */ "client",
    	 /* PGC_S_OVERRIDE */ "override",
    	 /* PGC_S_INTERACTIVE */ "interactive",
    	 /* PGC_S_TEST */ "test",
    	 /* PGC_S_SESSION */ "session"
    };
    

    我们可以用命令查这些相关的 GUC 和来源

    select name, setting, source from pg_settings;
    

    image

    不同的 GUC 也会有不同的权限。

    /*
     * Displayable names for context types (enum GucContext)
     *
     * Note: these strings are deliberately not localized.
     */
    const char *const GucContext_Names[] =
    {
    	 /* PGC_INTERNAL */ "internal",
    	 /* PGC_POSTMASTER */ "postmaster",
    	 /* PGC_SIGHUP */ "sighup",
    	 /* PGC_BACKEND */ "backend",
    	 /* PGC_SUSET */ "superuser",
    	 /* PGC_USERSET */ "user"
    };
    

    GUC 的类型

    const char *const config_type_names[] =
    {
    	 /* PGC_BOOL */ "bool",
    	 /* PGC_INT */ "integer",
    	 /* PGC_REAL */ "real",
    	 /* PGC_STRING */ "string",
    	 /* PGC_ENUM */ "enum"
    };
    

    不同类型的 GUC 有对应相对的 GUC 函数,都用 DefineCustomXXXVariable 命名 srting 类型为例:

    void
    DefineCustomStringVariable(const char *name,
    						   const char *short_desc,
    						   const char *long_desc,
    						   char **valueAddr,
    						   const char *bootValue,
    						   GucContext context,
    						   int flags,
    						   GucStringCheckHook check_hook,
    						   GucStringAssignHook assign_hook,
    						   GucShowHook show_hook)
    {
    	struct config_string *var;
    
    	var = (struct config_string *)
    		init_custom_variable(name, short_desc, long_desc, context, flags,
    							 PGC_STRING, sizeof(struct config_string));
    	var->variable = valueAddr;
    	var->boot_val = bootValue;
    	var->check_hook = check_hook;
    	var->assign_hook = assign_hook;
    	var->show_hook = show_hook;
    	define_custom_variable(&var->gen);
    }
    

    GUC 中的 hook

    如上 DefineCustomStringVariable 可以容易看出,每种类型的 GUC 可以添加 3 个不同的 hook, 这 3 个 hook 在 set 时候触发,分别是

    • bool check_hook: 验证数据有效性,返回 false or true, 如果 true 则设置成功, 此函数可以提供额外信息,比如弹出错误消息
    • void assign_hook: 设置值时触发
    • const char *show_hook: 设置完 guc 后 show 命令时候展示用

    如果要写一个 pg 插件,怎么添加一个 GUC 呢?

    1. 确认 GUC 类型,权限,触发条件。用 guc 中的 DefineCustomXXXVariable 设置新的 guc。
    2. 将新的 GUC 添加到插件的 _PG_init
    3. 设置好 hook 函数
    4. 测试

    GUC 中有趣的细节

    1. 在第一次初始化时也会调用 3 个 hook
    2. guc-file.c 是有 guc-file.l 生成的是 flex, 大家如果关注有趣的细节可以参考这篇文章
    3. 在基于 pg 的分布式数据库中如 gpdb 还需要考虑 guc 的主从同步问题,有额外的参数控制
    ]]>
    2022-04-21T03:18:25+00:00
    https://github.com/yihong0618/gitblog/issues/231运交华盖欲何求2024-04-27T09:39:15.423989+00:00
  • 最近工作有了些变化,但以后这里尽量不谈工作的事情
  • 这两周发生了太多的事儿,大脑和内心都有点应付不过来,所以想记录下此刻的心情
  • 又在不断想鲁迅这首《自嘲》
  • 需要学的东西很多,我也无暇顾及这些乱七八糟的
  • 也许是活明白了,也许是活糊涂了,但在漫长的生命面前,都无所谓
  • 就像放在宇宙的尺度来看,现在发生的这些又算什么呢?
  • 如果我的生命还剩下 30 天,我还会关注这些么?剩下 3 个月呢? 3 年呢?大概率都不会吧。因为不确定所以才对未来担忧。
  • 想到了曾经读的《自私的基因》生命的意义是什么呢?
  • 昨天朋友来大连出差,我门认识 20 多年了,也许都当了父亲,聊起来感觉我门都变了好多。
  • 对坚持跑步的人来说,俄国跑者大概率还是能继续跑的。但战火中的国家呢?
  • 如果战争算是入侵的话,那么制裁不算入侵么?普通的人有什么错呢?
  • 如果 1966 年互联网如今天一样发达,还会有今天我在这里打这段话么?
  • 写到这儿
  • ]]>
    2022-03-03T11:14:34+00:00
    https://github.com/yihong0618/gitblog/issues/230年终岁尾2024-04-27T09:39:15.654311+00:00中国人似乎都要过两个年,而这个春节更重要一些。

    岁尾,上班的最后一天,办公室非常冷清,我呢,在这敲下这行话。

    似乎很久没有随意记录一下心情了,项目关注的人多了,乱写一通难免畏首畏尾,所以正式的内容多了些,而我这个博客的初衷本身就是记录自己的流水账啊,所以想写就写吧。

    这两年心态发生了很多变化,好的方面坏的方面,尤其是去年最好的朋友之一选择自己结束生命,总觉得有些不真实,像是有些东西从我的生命中抽走了,再也回不来,想回沈阳看看的时候,少了件事儿,而我们共同的朋友也仿佛约好了一样,不去提起这件事,不去提起他。

    新冠两年,科比也走了两年,仿佛这两年很多东西都被抽走,在儿子出生前,和媳妇约好带他出国到日本去玩,结果现在儿子连辽宁都没出过,更可怕的是,我们不知道新冠会持续多久,但大家内心可能都知道,我们再也回不去曾经的生活了吧?

    去年做了不少事儿,但总觉得还不够,飞逝的时光,新年到了,这种新年的感觉体现在,超市一排一排的大礼包,酒,坚果。新年到了,虎年来了。

    去享受最好的,也准备着随时承受最坏的

    • 想跑马拉松,上一次跑是 19 年的北马了吧,那是我第一次真正意义跑完的马拉松,冲过终点的时候略有遗憾,差一点点进 4 小时,希望下一年有所突破,一下子到了今天。
    • 想把自己曾经的想法都去实现了,想再给自己 10 年,看看未来如何,希望自己别变得油腻,别当爹,跟推上那些闪着光的少年多学习,多玩好玩的东西,让自己的心态变得平和。
    • 想回到从前的身材
    • 想把曾经想读的原版书都读了
    • 想变成一个靠谱的丈夫,一个靠谱的父亲
    • 想多分享,多帮助别人
    • 想多写些文章,特别是技术方面的
    • 想多爬几座山,多跑几个城市
    • 想祝大家虎年愉快,都去乘风破浪

    写到这儿吧

    ]]>
    2022-01-28T07:23:20+00:00
    https://github.com/yihong0618/gitblog/issues/229二零二二的三个小目标2024-04-27T09:39:15.748004+00:00虽然很爱看大家的年终总结,但今年自己还是不写了吧,因为或多或少每天都在总结。


    翻看自己去年年初的 #202 (2021 的 3 个小目标) 发现很多都没完成,去年的目标不知不觉又变成了今年的目标,但我还是相信这一点,无论怎样,烂计划都是强于无计划的。

    前些时候看到了一篇文章,触动到谈不上,但真的从中获益了很多,这种获益体现在,此刻我在打这篇文章 -- 我的个人 OKR 实践 01, 是的,一直随心所欲的我今年也开始定 OKR 了,对于 OKR 我更多的是关注自身,希望自己不会因为年龄的增长变得油腻,变得世故,变成了曾经眼里的傻逼

    关于奖励

    • 完成这三个的 KR1 就奖励自己个 AirPods Pro 吧
    • 完成这三个的 KR2 就奖励自己个 HHKB 吧
    • 完成这三个的 KR3 就奖励自己个 XBOX 吧

    OKR1 学日语

    自己想学好日语太久了,也放弃太多次了,最多的一次学到初级下第 3 课,从小时候玩游戏,读村上春树开始就一直想学好,不用受汉化的束缚,回忆起来,大一时候第一次背 50 音图,10 多年过去了,还是没学成,不想说什么最好的时候就是 10 年前和今天 ,但真的想学学,嗯。现在水平是初级上,希望今年能多进步些,作为 OKR1 也代表自己的决心吧。

    • KR1 每天背单词,总结语法,过三级,7月份考
    • KR2 过三级后坚持每天学习,看 1-2 集动漫,额外学习 1 小时
    • KR3 考 2级

    OKR2 身体

    虽然天天跑步,天天做俯卧撑,但自己也天天喝酒,搞的自己成了个健壮的胖子,体检报告也开始不理想,虽然一年也没生病,但看到好的身材快的速度还是羡慕,哎,又减肥了

    • KR1 瘦到 140 并保持 --> 具体的跑步和饮食计划(评论)
    • KR2 瘦到 125
    • KR3 回到自己 ins 头像的身材,或者更好 ins --> https://www.instagram.com/yihonghaha/

    OKR3 编程

    不多解释,吃饭和兴趣

    • KR1 学习 Rust, 自己项目保持更新,多贡献好玩的项目,写日语命令行的新项目
    • KR2 学 database 学常见算法,学分布式
    • KR3 500 lines 常见的完成
    ]]>
    2022-01-07T06:54:02+00:00
    https://github.com/yihong0618/gitblog/issues/228经历了人生体验最棒的一次面试2024-04-27T09:39:15.839043+00:00上周经历了人生体验最棒的一次面试,这样的体验,棒到过与不过反而不那么重要了,棒到我想记录下分享给大家:

    • 一面是项目的负责人
    • 面试之前面试官完整的看了我的简历,GitHub 和一些博客(几乎不用自我介绍)
    • 面试的内容先是随便聊一聊
    • 没有问之前的薪资
    • 没有问为什么跳槽
    • 没有问有什么缺点,工作中遇到困难怎么办
    • 因为看了我的一些项目,笔试内容是(直播写),选一个我的开源项目,他提个小需求,我去写。
    • 需求的内容不算难,但有些挑战,写的过程中面试官会结合我写的提一点小问题
    • 没有写完,但是停下来会聊为什么不用多线程,聊到 python 的协程,这块如果用协程怎么写
    • 面试官吐槽了,考 dp 考红黑树大多时候能证明什么?大多时候证明的不过是刷过和没刷过
    • 面试完直接告诉我会有下面两次面试
    • 说了这次面试哪些不足,如果想通过下两次面试,需要这两天看些什么
    • 说了我哪些地方很好

    • 二面三面为了不耽误时间是连着的
    • 二面是对 Python 和程序的了解,会把需要设计的代码前提准备好
    • 我没答对的或是需要讨论的面试官直接告诉我
    • 最后阶段说我简历做的不是很好,如果怎样做会更好
    • 三面是实现个 b+tree,但会给出完整的定义,和演示网站
    • 会告诉你不追求我写出来什么主要看思路
    • 过程中卡住了,面试官会画图给提示。

    如果有兴趣真的值得大家试一试:

    image

    是这家公司:https://twitter.com/adam8157/status/1407994800708587529


    @adam8157 的回复

    FYI,那条推是我,但文中的面试官是我旁边组的同事。向他学习,我所在组的面试风格相比之下可能稍显老派,但我们整个产品部门都是看重技术思维、工程思维和解决技术问题的能力。

    ]]>
    2021-12-06T08:50:43+00:00
    https://github.com/yihong0618/gitblog/issues/223参加了《开源面对面》《ByteTalk》《枫言枫语》播客的一些记录2024-04-27T09:39:15.995330+00:00前一段时间一口气一周之内参加了两个播客的录制,做了曾经都没想过的事儿,也算是一个挑战吧,记录一下。

    链接:


    总结写在前面:

    1. 两个播客做的都不错,主持人非常棒
    2. 腾讯会议的录制效果要远远的好于飞书
    3. 其实更重要的是克服内心的恐惧,和我播客里说的 -- 原谅自己
    4. 以前不觉得,听自己声音口音确实太重了,先不求改正,更需要的是直面自己
    5. 以后有机会觉得自己可以参加个好多人一起录那种
    6. 播客放出去之后大家基本都是鼓励的,有评价我口音难听的哈哈,还收到了私信帮我推荐工作,真的谢谢大家了
    7. 虽然克服了录的恐惧,但目前还没鼓起勇气听自己录的

    起始

    1. 其实第一个找我录的是《捕蛇者说》说来大连玩顺便录一期,但目前还没来
    2. 思为他们一起做的《开源面对面》先找了我,但我内心非常恐惧,虽然答应了,但是往后拖了拖
    3. 收到 limboy 的私信的时候真的是非常兴奋,关注他博客好多年了,当年的《再见,第 381 个质数》 读完思考了很久,想着真是个有趣的人,没想到自己有幸能和他一起录一期节目,真的是太棒的经历了

    过程

    1. 先录的是《ByteTalk》, 其实录的过程非常不顺利,开头的 10 多分钟因为网络问题录了两次,因为公司的网自带 vpn, 而 vpn 连上飞书时不时就掉,用手机做热点录之后,还时不时有杂音,不过好在我们三个最后用微信通话 + 录音的方式完成了,每个人录的是自己的声音,最后 limboy 再合成剪辑,非常辛苦
    2. 隔了一天就去和思为录《开源面对面》了,虽然之前就写过《我转行程序员的经历》 但这样在仔细回顾自己的过程真的是第一次,回顾过往的经历其实自己也看到了自己的成长和不足,回顾与反思,真的是不错的一件事儿
    3. 之后就是《开源面对面》先放出来,取得的反响还不错,甚至让节目上了小宇宙新人榜,喜马拉雅的播放量也不错,希望他们接下来更棒,录更更棒的节目
    4. 再之后就是《ByteTalk》放出来,而我自己一点儿没听,而是去听了《ByteTalk》的 Randy 的那一期,很喜欢,也是我一直关注的博主,感叹下世界真的很小。
    5. 再之后还看图拉鼎写了个上完节目的总结,想着接下来也要写个总结。

    尾声

    1. 自己在 GitHub 和 twitter 上都或多或少取得了些关注,要是以前我肯定说我 “何德何能”,现在我更想说,我多分享,多创造,多帮忙,去配的上大家的这些关注
    2. 录播客和写博客一样,都是对自己的一些审视,但不一样的是,和别人一起审视自己,会更多的思考一些
    3. 播客越来越火了,我觉得挺好的,希望有一天声音也变得可搜索,能流传的更久一些
    4. 大家对我很宽容,我的口音就当一个特点吧,其实我说英语更难听
    5. 继续前行,保持自己好奇心,保持自己不断在学习的状态,努力去配得上大家的关注
    6. 有人说,他知识巅峰时候是“高考结束”,希望我,永远是“现在“”

    写到这

    1. 有什么问题可以都可以 ping 我,我尽最大努力帮忙
    2. 开始期待下一个挑战了
    3. 希望我离去那一刻,走马灯回忆一生的时候,有录制这两个播客的时刻

    更新于 2022.08.22 《枫言枫语》的一些回忆

    1. 至于为什么突然想起更新一下,因为最近一阵子收到了几个私信,关于听了这期播客想回大连,还付诸于行动了,突然我好像参加这个节目做了一些有意义的事情
    2. 和别人一起录节目感觉完全不一样,可以说是互相补充,也有意思许多
    3. 我因为怕吵到家人孩子,在外面录的,跑回家的
    4. 这期节目印象最深的是,节目开始,大家打开摄像头,我看到 justin 举着一个对着冰块的洋酒杯,一边喝一边打招呼,活脱脱村上春树书里的主人公,一下子就感觉亲切了起来
    5. Kenshin 说开始工作时候住的不错,推开门就是大海,后来我偶尔也去找这样的地方写代码坐上一会儿
    6. 在这之后因为这期节目收到了一些私信,有感谢的,有询问的,有的还加了好友
    7. 还认识了前几期**成都**的朋友
    8. 距离这篇文章刚写的时候也过去了 9 个月了,时间真快,这九个月也发生了不少的事儿,命运推着我们走,回到前文,希望我走的时候,能想起这三个时刻
    9. 一个思考是,播客好像和时效 没有那么强的相关,很多老节目也能被大家看到喜欢
    10. 至于自己的口音和紧张,好像一下子不畏惧了,接受了这样的自己,也可能是我参加这三期播客对自己最大的意义。

    The best is yet to come

    ]]>
    2021-11-26T07:43:25+00:00
    https://github.com/yihong0618/gitblog/issues/221有趣与无趣2024-04-27T09:39:16.095647+00:00好久没胡乱写些心情了,今天记录一下。

    Day One 上的照片,记录着我两年前跑的马拉松,那时候真是又快又瘦啊。 今天还被同事说胖了,确实,这半年喝了不少酒。

    也不知道什么是对错。昨天推上收到了个私信,问我怎么鸡娃,我有点生气,可能这就是无趣吧?

    当然,我一直认为,一个一边引用着了不起盖茨比,一边每天嘲笑别人的人也无趣。 挂着自己是个有趣的人 title 的大概也没那么有趣吧? 我是个有趣的人么?大概不是吧?不过倒是也无所谓是与不是,做个地道的人。 最近换工作的想法日益强烈但也不知道该怎么走下一步,倒是收到了一些邀请,但我,配的上这些邀请么?


    今年的时间也剩的不多。想做的东西很多,时间精力,和动力好像都不太够。也只能慢慢来了。 刚去看了一眼现在跑了1064km 今年跑 2000km 的计划大概不可能完成了,希望自己努力超过去年吧。

    应该比去年好,但我更想说的是,很多想法,不如从今天开始。

    • 想表达的时候尽量不说话,在任何群里

    也快到 5 点了,今天早点下班吧。


    其它还有些计划,先不写在这儿了。

    ]]>
    2021-10-13T08:57:19+00:00
    https://github.com/yihong0618/gitblog/issues/220running_page 开源一周年的总结2024-04-27T09:39:16.223642+00:00前言

    running_page 开源一周年了,虽然后面逐渐把精力放到了其他项目上,但还在维护着,无论是 issue 还是新需求也都第一时间去回复,感觉一个项目诞生但发展,像是看自己的孩子一样,喜怒哀乐。 当然,在程序上有一些进步的同时,带给我更大的收获是认识了好多好多跑步的朋友,程序上的朋友,能在帮到大家的同时还能交到一些志同道合的朋友,再把自己的东西回馈给社区,这也是我理解的开源的意义吧。

    目前的一些数字

    截止今天 2021-09-27

    image

    Stars Fork Issues Contributors
    1391 278 99 30

    诞生

    • 我用 Runtastic 记录自己跑步 8 年多,后来 Runtastic 被大陆商店下架,我认识到了个人数据的重要性,把数据尝试导出,后来发现了 nike 也是通过一些手段能导出的,就想着自动化导出,备份自己的数据
    • 发现了有人把自己的跑步数据 share 到自己博客上,发现非常漂亮,我参考着他的代码和设计,一边做一边学习 React, 最后把自己的数据也可视化上去了
    • 最开始这只是个个人的网页,分享之后不断有人也想搭一个,我又基本都会回答,慢慢的觉得为了效率需要把他变成一个通用些的程序了,在 @geekplux 的鼓励下,就把他从中抽出来了,做的易用和通用了一些,就开源了
    • 开源后在 twitter 上宣传,在 twitter 上认识了一些朋友的同时也有更多人加入进来
    • 后来看到了 @laike9m 在 v2ex 上宣传他的项目,我也决定试试,没想到取得了大家的认可,项目的 stars 数慢慢增多,也越来越多的人用这个项目,当然后来一边做的同时一边学习逆向,搞定了其他的一些跑步软件,还写了一些心得。-- https://github.com/yihong0618/gitblog/issues/191 https://github.com/yihong0618/gitblog/issues/197 等等
    • 再后来就是被阮一峰老师宣传,项目更多的 stars forks, 认识更多朋友,更多人参与进来,形成了良性的循环,也知道了因为这个项目一些人爱上了跑步,真的开心

    循环

    • 因为自己是被鼓励到参与到开源的,我想更多人加入这个项目,无论是初学者还是大牛,后来就想到,只要做出跑步主页的人都可以 share 自己的主页,我就鼓励大家提 pr, 其中有不少人是人生第一个 pr, 也慢慢懂了怎么加入开源。就像跑步的接力棒一样传下去。开心的是现在 share 的人一个屏幕已经放不下了。
    • 前阵子看到 @antfu 的 关于 Yak Shaving 的文章,深以为然。因为想把跑步部分抽出来做了 running_page, 因为 running_page 里的热力图比较受欢迎我又把其中的逻辑抽出来做的通用做了 GitHubPoster 回馈机核又做了 gcores_calendar,想到了可以减少 crontab 的消耗去研究配合捷径自动化, 因此做了 iBeats 等项目。。。也算是 yak shaving 了。

    Runner's Page Show

    Runner page App
    shaonianche https://run.duangfei.org Nike
    yihong0618 https://yihong.run/running Nike
    superleeyom https://running.leeyom.top Nike
    geekplux https://activities.geekplux.com Nike
    guanlan https://grun.vercel.app Strava
    tuzimoe https://run.tuzi.moe Nike
    ben_29 https://running.ben29.xyz Strava
    kcllf https://running-tau.vercel.app Garmin-cn
    mq https://running-iota.vercel.app Keep
    zhaohongxuan https://running-page-psi.vercel.app Keep
    yvetterowe https://run.haoluo.io Strava
    love-exercise https://run.kai666666.top Keep
    zstone12 https://running-page.zstone12.vercel.app Keep
    Lax https://lax.github.io/running Keep
    lusuzi https://running.lusuzi.vercel.app Nike
    wh1994 https://run4life.fun Garmin
    liuyihui https://run.foolishfox.cn Keep
    FrankSun https://hi-franksun.github.io/running_page Nike
    AhianZhang https://running.ahianzhang.com Keep
    L1cardo https://run.licardo.cn Nike
    luckylele666 https://0000928.xyz Strava
    MFYDev https://mfydev.run Garmin-cn
    Jim Gao https://run.yidajiabei.xyz/ Keep
    Eished https://run.iknow.fun Keep

    回忆

    当然这一年经历了不少有意思的事儿。

    • 因为做这个项目认识了一些自己曾经想都不敢想能有交集的牛人,看到财务自由的人的朋友圈感觉很有趣
    • 收到了阿迪达斯的 DCMA....竟然还不是发给我的,是发给其中一个 fork, 我紧急下架了所有的 runtastic 相关的代码,有些遗憾,但没办法
    • 其实我是很怕给国人丢人的,特别重视协议,即使很多是 mit 协议因为一些原因我也都会发邮件去询问下,认识了几个朋友的同时,也感叹好多欧洲人好 nice, 很多回复都是 free to do anything, 并且还有说其实是没协议的因为 mit 自由才选的 mit.
    • 收到了一些感谢邮件,其中还成了一个同学的毕设项目
    • 当然也有一些奇怪的人。。。相信每个开源作者都会遇到吧
    • 有几个个朋友想捐款或者打赏捐赠项目,我拒绝了,还在后来加上了句--谢谢就够了。真不是我清高,而是这个项目和帮助我那些人比,和我 sponsor 那些人比真的不值一提,能帮到大家一句感谢我已经非常开心啦
    • 因为这个项目回馈了很多项目 python-garmin strava-lib 等等等。

    image

    感谢

    • 感谢 @laike9m 的鼓励,@geekplux 的帮助和代码优化
    • 感谢 @shaonianche 你帮忙的文档帮助到了我和大家
    • Thank you very much for @flopp Without your encouragement and such a great project I would not be able to continue to participate in open source

    特别感谢

    所有贡献者和使用这个项目的人,希望大家一直跑下去,这个项目也一直 running 下去,也是 running_page 的意义

    image

    ]]>
    2021-09-27T06:21:34+00:00
    https://github.com/yihong0618/gitblog/issues/219接下来要写的东西2024-04-27T09:39:16.326892+00:00
  • running_page 一周年总结
  • 机核文章
  • django shell 的运行原理
  • 推荐两个 YouTube 程序员
  • 我跑步听的播客
  • 该离开了
  • 选择
  • 游戏行业科普
  • ]]>
    2021-09-27T00:45:11+00:00
    https://github.com/yihong0618/gitblog/issues/218一点思考2024-04-27T09:39:16.421182+00:00有点不想干活,就写点什么吧,在这个时间。

    不知不觉网上的粉丝多了起来,这一年,以前作为一个透明我从来没想过自己有一天也会有几千个 followers, 有 2 千多个 stars, 在推特上,在 GitHub 上。

    而越是这样,越要控制自己表达欲,否则,不知不觉间也就迷失了自己,忘了自己是谁,忘了自己该做的事儿。 因为: 在概率模型下,无论我说什么,无论我对什么热点事件发表些评论,就永远有人赞同,而沉默的大多数,要么一笑而过,要么默默取消关注,而我,怎么可能一直是对的?

    所以,无论外面啥热点事件,我都只是看着 timeline 刷屏,自己最多是对一些有趣的评论一下,希望以后我也能做到。


    当然,也是写这个的原因,工作越来越无趣了,一直想换一个工作,希望年底能下决心动手吧。


    不知道我们会走向何方,这种无力感,尤其是看多了很多历史后的无力感。


    跑步,慢慢认真了起来。


    ]]>
    2021-08-19T06:21:41+00:00
    https://github.com/yihong0618/gitblog/issues/217友情链接2024-04-27T09:39:16.514838+00:00这个 Issue 是友情链接的 Issue, 如果你想加到友情链接里,请在这条 Issue 上评论,我打心后会自动加到友情链接里。感谢大家。


    格式如下(请参考我下面的 comment): 冒号为中文冒号 :

    名字:xxxxxx 链接:xxxxxx 描述:xxxxxx

    • added all
    ]]>
    2021-08-16T06:31:20+00:00
    https://github.com/yihong0618/gitblog/issues/216朋友圈2024-04-27T09:39:16.608086+00:00在熟人或墙内的圈子,越来越沉默了,有些事儿不想说,有些事儿不敢说。 加上前一阵子,注销了微博,几乎退掉了所有群。

    偶尔打开朋友圈,看到朋友在骂日本奥运作弊,骂日本乒乓球选手,会摇摇头,除了无奈什么也做不了。这种无奈体现在,他是你最好的朋友,不会因为观点不同有改变那种好朋友。

    更无奈的是,也就在几年前,还在和他一起碰杯,谈谈 -- 中国没有历史,只有轮回。不过,现在不会和任何人谈这些了。

    昨天和朋友聊,现在我能做的只能是 -- 带上面具,去找内心的自由,我也确实是这么做的。

    打了几行话,又删了。

    写到这儿。

    ]]>
    2021-08-03T02:05:37+00:00
    https://github.com/yihong0618/gitblog/issues/215张小龙的饭否2024-04-27T09:39:16.701083+00:00在最开始用 issues 写博客的时候,我记录了下我印象很深的一些王兴的饭否

    今天,王兴也不再更新了。 太多东西不会永远持续下去了,曾经饭否关停那么久,他也没停止更新,但今天。。。

    说正文

    即使不针对人的话,回过头看看十年前的言论也很有意思,有一种时间的错位感,10 年过去,有些变了,有些没变。而这十年,互联网变了好多,也有一些留住的东西。嗯,10 年过去了,墙还在,更高了一点儿。而当时,有趣就有趣在,这些现在看起来的名人不用在平台受舆论监控,一般都是想说什么就说什么,也是唯一我们能看到真实的他们的几年了。

    一些有意思的

    
    新账号上路! 2010-11-26 13:59  # 第一条饭否
    
    中国人比美国人有精力的体现是,中国人每天要看好几份国内的微博,还要出墙去留意美国的推特。 2010-11-26 17:36
    
    一个产品,要加多少的功能,才能成为一个垃圾产品啊! 2010-11-27 23:24
    
    产品往往是做着做着,就主旋律了,因为跟着用户走,用户爱听主旋律的歌。 2010-11-29 00:04
    
    自从有了微博,我看书就少了。自我检讨。 2010-11-29 23:47
    
    微博还真是个把事情越搞越复杂的地方,尤其是女人多的时候。 2010-12-01 01:59
    
    微博也是个很危险的地方,因为你说一句话,每个人都有不同的理解。只怕有心人啊。 2010-12-01 02:02
    
    平均每天收到一张iTunes Store的帐单。我要在apple上疯狂消费,来赎回以前在windows上狂用盗版的罪。 2010-12-12 14:01
    
    不是所有东西,都需要2.0的。 2010-12-22 16:47
    
    人无近忧,必有远虑。人有远虑,必有焦虑。 2010-12-27 22:58
    
    手机是人的最重要的人工器官。 2011-01-02 15:33
    
    转@憨豆主席 新闻联播证明了物理学上的一个重大课题——平行空间是真的存在的。 2011-01-07 18:23
    
    智能手机市场曾经被加拿大和芬兰人占领。当这个市场终于迎来大爆发的时候,苹果, Google 和 MS 恰到好处的把他夺了回来。看来,没有核心竞争力保障的产权并不靠谱。
     
    
    我在微博上说android的体验没有ip4好,很多人跟我急。我猜想,这大概和爱国的心理是类似的。我用的物品,如果被否定,那就否定了我的人格了。我出生的国家也是一样。这些人的人格退化为物格国格了。否则,我说android不好,他生什么气呢? 2011-05-15 22:35 
    
    一天看到三个不同的事情的描述,都是“内幕很可怕”。 2012-04-09 19:33  # 最后一条
    

    跨越 10 年的相同与不同

    
    一阵寒风袭后背啊。转@泡芙先生 2010年,中国社会科学院在京发布的《中国新媒体发展报告(2010)》指出,社交网站的病毒式营销手段、泄露个人隐私以及政治、军事、商业机密信息等问题也引发质疑,Facebook等社交网站被西方国家情报机构所利用,其特殊的政治功能则让人心生恐惧。 2010-12-27 23:57
    
    钟南山说,空气污染对肺的伤害远远超过吸烟了。搞得我都不好意思戒烟了。转@阳光不锈钢 RT @elaoda 中国疾病专家最近表示,中国空气污染与呼吸疾病的联系越来越紧密,广州、北京、上海等许多大城市都面临肺癌率明显上升的趋势,肺癌已经取代肝癌成为中国癌症死亡的第一杀手。 2010-12-29 17:09 
    
    windows的糟糕的字体表现让中国人的UI审美水准滞后了10年。 2010-12-30 03:29
    
    在鄙视了windows mobile多年之后,开始为windows phone7叫了一声好。微软这次能在iPhone之外找到了完全不同的另外一种交互模式,还是很牛逼闪闪的! 2010-12-30 15:32
    
    quora让我感叹的是,人家的知识底子确实必我们厚太多了。 2010-12-31 01:36
    
    现代通讯工具的要义是:我发出消息,你看,或者不看,都与我无关。人们在IM上花费的时间将越来越少。 2011-01-01 14:33
    
    手机上需要实时聊天吗?谁有耐心用手机输入来聊天呢? 2011-01-02 15:14
    
    胶卷,唱片,卡带,甚至固定电话,这些老物品在消逝,连同它们所代表的生活方式一道。 2011-01-04 18:51
    
    为什么Kindle,iTouch在国内销量如此的小?iTouch在美国的销量和iPhone持平。 2011-01-10 13:12
    
    互联网让80后90后产生了更严重的两级分化。 2011-01-10 15:07 # 00 后更不同了
    
    中国互联网的落后在于硬件的落后,别人都普及了iphone的时候我们还在面对最大量的S60用户。 2011-01-16 03:11
    
    千元android机应该今年会比较普及吧。转@bjshadow 大学校园基本都是诺基亚。其实我也感觉诺基亚如果仅用于上网电话与短信,用着还是不错的。 2011-01-16 03:17
    
    体验不好的电子产品,都会罗列一堆硬件参数来吸引买家。当然,买家也认这个,虽然他并不知道1千万像素到底有什么最终的效果。 2011-01-18 17:17 # 草草草
    
    腾讯微博注册量过亿。腾讯最不缺的就是注册量了。 2011-02-05 22:18
    
    会有另外一个Steve让Nokia起死回生吗?让一个庞然大物起死回生,比从零建立一个王国还困难。 2011-02-11 01:03
    
    知乎像个专业论坛。 2011-02-15 23:31
    
    新浪微博的手机访问量是否超过web?手机写微博的量呢? 2011-02-24 16:39
    
    从三分钟的体验来看,点点从形式上来说,比饭否和Instagram(拍拍)都复杂,不够优美,因此应该发展不过饭否和拍拍。但愿我是错的。 2011-02-25 00:05
    
    互联时代了,基于ip的短信,语音,视频,还被人为限制。所以技术最大的敌人是人。 2011-02-26 22:16
    
    如果扎克伯格在中国,他连在战略发展部旁听的资格都没有。 2011-03-07 17:08
    
    instagram也要被做烂了。 2011-03-15 14:59
    
    甲骨文的CEO对他的员工说,你们都是傻逼,所以甲骨文招揽了很多优秀员工。苹果的CEO对用户说,你们都是傻逼,所以苹果招揽了许多优秀用户。阿里巴巴的CEO对投资者说,你们都是傻逼,所以阿里巴巴招揽了许多股东。 2011-07-19 23:18
    
    知乎上人越来越多,回答也就越来越不靠谱了。话说回来,人少的时候也不靠谱。这该怎么办呢,还是要颁证。 2011-10-11 04:27
    
    talkbox在hk干不过whatsapp,可见那是个神奇的地方 2011-10-15 06:33
    
    中国的教育是扼杀好奇心的完美历程。 2011-11-03 01:23
    
    牛排的电池容量很大,如何让它可以给iphone充电? 2012-03-25 22:24
    
    

    竞品相关

    
    盛大出了一个叫“Kiki”的软件。我只能说,好歹,不要在名字上也这么山寨吧!取个名字有那么难么? 2010-12-30 15:53
    
    当我在嘲笑盛大kiki的时候,其实我比它也好不了多少。 2010-12-30 16:58
    
    当whatsapp,kik,米聊,速聊,kiki都狂推实时聊天概念时,老夫决定反其道而行。 2011-01-02 15:18
    
    你问我们和竞争对手比有什么区别,我说我们没有他们那些臃肿艳俗的部分。 2011-01-02 15:20
    
    短信的好处在于它是默认隐身的。 2011-01-02 15:31
    
    这么多天过去了,米聊竟然才3千个用户。 2011-01-03 18:58
    
    你为什么不用米聊? 2011-01-07 16:40
    
    将whatsapp,kik,miliao打下来,也算是个小小的刺激吧。 2011-01-10 01:19
    
    whatsapp kik,pingchat的兴起,将S,R,D这些术语灌输给用户,国内的后来者竟然也这样带入了。 2011-01-11 18:32 
    
    米聊竟然也做了好友动态,竟然尝试了我一直在想的东西。 2011-01-16 02:46
    
    从众多的kik模仿犯来看,国内基本没有从用户心理考虑产品的产品经理。除了模仿,他们的创新也是意淫。 2011-01-17 17:42
    
    做kik什么的都没意思,拟一个RFC协议,将kik,whatsapp,米聊什么的都互通起来,才算正经事。 2011-01-18 01:55
    
    这么多年了,我还在做通讯工具,这让我相信一个宿命,每一个不善沟通的孩子都有强大的帮助别人沟通的内在力量。 2011-01-23 01:54
    
    雷军还在用八一精神来工作,我比较难理解。http://is.gd/yEe5Rp 2011-02-07 02:12
    
    talkbox突然大热,大量vc急杀过去。须小心大热倒灶。 2011-04-14 02:11
    
    每次看到知乎上人在讨论为什么启动画面是一个人顶个球,我就很乐。 2011-09-20 18:08
    
    米聊hold不住了,做了lbs。新浪hold不住了,做了对讲。飞聊翼聊一看就是外包的。 2011-09-29 15:55
    
    line突然大火,可见萌很重要。 2011-10-15 06:29
    
    微聊从概念上来说就偏了。 2011-10-25 03:56
    
    

    乔布斯

    
    因为Steve Jobs生病,苹果股价下跌8%,损失百亿美元。由此可知,Jobs生的是全世界最昂贵的一种病,目前只有Jobs一人患此病。 2011-01-18 00:19
    
    Jobs是个被艺术化的商人,现在在跟android比销量。http://cnbeta.com/articles/... 2011-01-18 12:52 
    
     不谈Jobs,我们还能谈什么呢? 2011-10-09 22:14
    
     “假设把乔布斯从30年的历史中抽掉,我们今天的世界未必会变得更糟糕,或者更美好,但可以肯定的是,如果没有乔布斯,硅谷一定会比较无趣,我们的世界也会比较无趣。” 2011-10-24 00:52
    
    

    记录下: 来自 -- https://github.com/Allianzcortex/FF-Backup/blob/master/Allenzhang_fanfou_backup

    ]]>
    2021-07-08T06:31:32+00:00
    https://github.com/yihong0618/gitblog/issues/214一件小事2024-04-27T09:39:16.807499+00:00昨天去给媳妇买樱桃,去了一家店。 我问,让挑么? 对面是一个特别势力的女人,说我给你捡,有不好的你给捡出来。 她一下子装了好多,我捡出来了几个。 她有些生气,拿出了我捡出的几个,质问我,这些哪不好了? 我没说话,说不买了,就转身走了。 她在背后骂我傻逼。 我有些生气,想回骂几句,后来想想又算了,以后不去她家买任何东西就好了。

    回到家依然有些生气。 今天在这里反思,我一直算一个随和的人,在网上,在生活中。

    我真的有必要因为这种人心情沮丧么? 我骂她,骂赢了又如何了,浪费了时间,浪费了更多的心情。

    这种人在网上我会默默拉黑或者 mute, 在生活中也是吧,不值得浪费一点点时间。

    写到这儿。

    ]]>
    2021-07-05T04:26:11+00:00
    https://github.com/yihong0618/gitblog/issues/212从 Rich 作者的一个问题说起2024-04-27T09:39:16.903717+00:00前几天刷推,看到 Rich 的作者发了一条推特,这个问题相当的有趣,前几天在做 iBeats 的时候也遇到过类似的需求,手痒试试有没有好的解法。 image

    我的解法还不错,还得到了作者的称赞,开心了一下~

    推特的好处是能遇到各种有趣的解法和讨论,下面对每个解法的解释,其中不少 Python 的巧妙应用

    基础方式

    def merge(a, b):
        res = []
        for ab in zip(ab):
            res.extend(ab)
        return res
    

    这种的解法的好处是清晰易懂,坏处是因为会不断的 resize list 当列表很大的时候会有效率问题

    基础方式2

    from itertools import chain 
    chain.from_iterable(zip(a,b)) 
    

    这种是比较 Pythonic 的解法,用到了 Python 标准库中非常好用的 itertools, 且不用引入中间变量,没有特别的效率问题,清晰直观,也是工作中比较推荐的代码。

    我的解法

    以上的都有循环或需要不断 resize 的小问题,那么能不能不 resize 呢?如果列表的长度相同,是可以的,我们只需要建一个列表,然后把 a, b 的元素按规定放进去就行了,这就用到了 Python 非常强大的切片了。 image image

    有用同样方式的推友贴出了效率的比较 image

    可以看出,如果不去 resize 的话会有将近 10 倍的效率

    更好的解法

    def merge_gen(a, b):
        for thing1, thing2 in zip(a, b):
              yield thing1
              yield thing2
    
    list(merge_gen(a, b))
    

    用到了生成器,还不需要引入中间变量,效率同样很高

    有趣的解法

    sum(zip(a, b), ())
    

    这个解法的有趣的地方在于,sum 是有第二个参数的,作为起始,默认是 0, 如果我们把第二个参数放一个空的 tuple, 就相当于不断的迭代,求和。 image 但因为也是循环迭代,当大列表时候存在效率问题

    总结

    从这一个问题动手研究,看大家的思路,还是非常有趣的,有些解法很巧妙也很好玩,参与其中也体会到了写 Python 的乐趣,虽然这些大部分的方式不会让我们在工作中写出更好的代码。但,研究这些方式背后的知识非常有趣,至少让我快乐了一个小时,把我的快乐分享给大家哈哈。

    ]]>
    2021-06-21T01:16:29+00:00
    https://github.com/yihong0618/gitblog/issues/209如何用一个仓库记录自己的一年2024-04-27T09:39:17.000288+00:00写在前面

    从最开始的用 GitHub 的 Issues 写博客,到尝试用 GitHub 记录的年度数据已经二年有余了,从最开始有想法 2020, 到 2021 加了很多功能,把大部分的记录自动化,一点一点记录也算是有些心得了,这篇文章就介绍一下我是怎么做的,能帮助到同样感兴趣的大家就更好了。也算是践行这 2 年对我影响最大的文章之一

    People Die, but Long Live GitHub

    GitHub 的一个 repo 能做什么?

    1. 能记录 Issues
    2. Issues 可以评论
    3. 能给 Issue 打标签
    4. 能有一张展示的 README
    5. README 能引入 svg
    6. 有 Actions 可以辅助自动化
    7. Actions 可以放 secrets
    8. 可以用 cron 和各种事件触发 Actions
    9. API 公开,可以自己 DIY
    10. 有手机应用,不用开电脑能随时随地记录
    11. 有评论区
    12. 私有仓库这些以上的都有

    好,我们把这些结合起来,记录自己的一年~

    数字区

    image 上图这些数字区是怎么实现方式分为两部分:

    • API 获取 -- 扇贝,开心词场,多邻国
    • Issues 配合 labels 获取,俯卧撑,花费。。。

    每天早 8 点和晚 9 点,定时跑一次,计算数据进行整合,并配合 telegram 的 bot 提醒自己。 入口大家可以参考 Actions 的这个 workflow

    Issues 的代码思路为获取 label -> 通过 label 找 issues -> issues 的评论特定格式 -> 通过函数解析 -> 整合 -> 通过正则替换 README 中的原有数据(文字) (README 可以写注释,而注释是不显示的,利用这个完成显示和替换)

    def main(
        login_dict,
        github_token,
        repo_name,
    ):
        my_num_stat_str = MY_NUMBER_STAT_HEAD
        # API STAT STR
        for name, value_dict in MY_STATUS_DICT_FROM_API.items():
            try:
                url = value_dict.get("url")
                md_name = f"[{name}]({url})"
                # maybe a better way?
                total_data, streak, today_check = value_dict.get("daily_func")(
                    *login_dict.get(name, tuple())
                )
                total_data_str = str(total_data) + value_dict.get("unit_str", "")
                my_num_stat_str += make_stat_str(
                    md_name, total_data_str, streak, today_check
                )
            # just a tricky code for others for use
            except Exception as e:
                print(e)
                continue
    
        u = Github(github_token)
        # COMMENTS STAT STR
        for name, value_dict in MY_STATUS_DICT_FROM_COMMENTS.items():
            try:
                labels, map_func, reduce_func = LABEL_DAILY_DICT.get(name)
            except:
                # tricky for mine
                continue
            func = value_dict.get("daily_func")
            if not func:
                break
    
            issues = u.get_repo(repo_name).get_issues(labels=labels)
            total_data, streak, today_check, url, month_summary_dict = func(
                issues, map_func, reduce_func
            )
            # change the issue body for month summary
            unit = value_dict.get("unit_str", "")
            for i in issues:
                body = ""
                for b in i.body.splitlines():
                    # from the summary table
                    if b.startswith("|"):
                        break
                    body += b + "\r\n"
                body = body + "\r\n" + make_month_summary_str(month_summary_dict, unit)
                # edit this issue body
                i.edit(body=body)
            name = f"[{name}]({url})"
            total_data_str = str(total_data) + unit
            my_num_stat_str += make_stat_str(name, total_data_str, streak, today_check)
    
        replace_readme_comments("README.md", my_num_stat_str, "my_number")
    

    多说几句早起

    关于早起这个数据和 issue 因为自己喜欢诗歌,我找了一个获取一句诗的 API, 然后自动评论,评论是带时间戳的,正好记录自己的起床时间。 那么是怎么触发的呢? 我用的是 iOS 系统,而 iOS 有个重要的功能是“捷径“。利用捷径可以触发 Actions workflow 的 api, 触发 api 就有时间戳了,再判断是不是早起,给自己发送就好了。 捷径的触发条件是闹钟关闭,为了保险起见,我可能比闹钟起的早,再加一条关闭背单词软件,解决了用 GitHub 记录早起的问题。

    def make_get_up_message():
        sentence = get_one_sentence()
        now = pendulum.now(TIMEZONE)
        # 3 - 6 means early for me
        is_get_up_early = 3 <= now.hour <= 6
        get_up_time = now.to_datetime_string()
        body = GET_UP_MESSAGE_TEMPLATE.format(get_up_time=get_up_time, sentence=sentence)
        return body, is_get_up_early
    

    关于如何利用捷径配合 Actions 我写过一篇文章 -- 巧妙利用 iOS 的快捷指令配合 GitHub Actions 实现自动化 image 而早起这句诗,我期待好久的 -- 苟利国家生死以,岂因福祸避趋之。还没随机到,随到这一天我决定跑 19.26 km.

    GitHubPost 区

    利用了我写的 GitHubPoster 项目,自动生成 svg 引入,而自动跑的脚本也在那个项目上。 image

    GitHub Repos 区

    利用我写的 github-readme-stats 自动替换生成。 image image

    娱乐区

    全部利用 Issues 评论 -> 触发 Actions -> 自动替换 README 的注释区域生成 image

    def replace_readme_comments(file_name, comment_str, comments_name):
        with open(file_name, "r+") as f:
            text = f.read()
            # regrex sub from github readme comments
            text = re.sub(
                GITHUB_README_COMMENTS.format(name=comments_name),
                r"\1{}\n\3".format(comment_str),
                text,
                flags=re.DOTALL,
            )
            f.seek(0)
            f.write(text)
            f.truncate()
    

    做饭区

    和上面类似,因为做的太多,我生成了个表格 image

    def parse_cook_issue_table(me, issues):
        comments_str = MY_FOOD_STAT_HEAD
        food_dict = defaultdict(lambda: ["", "", 0])
        for issue in issues:
            comments = issue.get_comments()
            for c in comments:
                if not isMe(c, me):
                    continue
                date_str = format_time(c.created_at)
                food_list_str = c.body.splitlines()[0]
                food_list = food_list_str.split(" ")
                for food in food_list:
                    if food not in food_dict:
                        food_dict[food][0] = f"[{date_str}]({c.html_url})"
                        food_dict[food][1] = f"[{date_str}]({c.html_url})"
                    else:
                        food_dict[food][1] = f"[{date_str}]({c.html_url})"
                    food_dict[food][2] += 1
        for k, v in food_dict.items():
            comments_str += MY_FOOD_STAT_TEMPLATE.format(
                name=k, first_date=v[0], last_date=v[1], times=v[2]
            )
        return comments_str
    

    月度数据

    每次自动生成还会 edit issue 的内容生成月度数据整合 image

    博客区

    在 blog 的 repo 写 issue ->curl 2021 的 Actions workflow api -> 自动生成 image image

    收藏文章博客区

    这个完全手动添加,我想保留一些仪式感 image

    我也想做一个

    如果大家想同样做一个这样的年度数据可以 follow 以下步骤:

    1. fork or clone 这个项目
    2. 增加 issues 打 label
    3. 修改 config
    4. 修改一些 api 的 config 数据换成自己的
    5. 如果有问题可以邮件或私信我
    COOK_LABEL_LIST = [
        "Cook",
    ]
    MOVIE_LABEL_LIST = [
        "Movie",
    ]
    READ_LABEL_LIST = [
        "Read",
    ]
    DRAMA_LABEL_LIST = [
        "Drama",
    ]
    PUSHUP_LABEL_LIST = [
        "PushUps",
    ]
    BANGUMI_LABEL_LIST = [
        "Bangumi",
    ]
    GAME_LABEL_LIST = [
        "Game",
    ]
    MONEY_LABEL_LIST = [
        "Money",
    ]
    MEDITATION_LABEL_LIST = [
        "Meditation",
    ]
    MORNING_LABEL_LIST = [
        "Morning",
    ]
    GTD_LABEL_LIST = [
        "GTD",
    ]
    MY_BLOG_REPO = "yihong0618/gitblog"
    GITHUB_README_COMMENTS = (
        "(<!--START_SECTION:{name}-->\n)(.*)(<!--END_SECTION:{name}-->\n)"
    )
    
    # add new label here
    LABEL_DICT = {
        "Cook": {"label_list": COOK_LABEL_LIST, "comment_name": "my_cook"},
        "Movie": {"label_list": MOVIE_LABEL_LIST, "comment_name": "my_movie"},
        "Read": {"label_list": READ_LABEL_LIST, "comment_name": "my_read"},
        "Drama": {"label_list": DRAMA_LABEL_LIST, "comment_name": "my_drama"},
        "Bangumi": {"label_list": BANGUMI_LABEL_LIST, "comment_name": "my_bangumi"},
        "Game": {"label_list": GAME_LABEL_LIST, "comment_name": "my_game"},
    }
    
    
    ##### SHANBAY ######
    MY_SHANBAY_USER_NAME = "ufewz"
    SHANBAY_CALENDAR_API = "https://apiv3.shanbay.com/uc/checkin/calendar/dates/?user_id={user_name}&start_date={start_date}&end_date={end_date}"
    MY_SHANBAY_URL = f"https://web.shanbay.com/web/users/{MY_SHANBAY_USER_NAME}/zone"
    
    ##### DUO ######
    MY_DUOLINGO_URL = "https://www.duolingo.com/profile/yihong0618"
    
    ##### CICHANG ######
    MY_CICHANG_URL = "https://twitter.com/yihong06181/status/1359040099107897344?s=20"
    
    
    ##### FOOD ######
    MY_FOOD_STAT_HEAD = (
        "| Name | First_date | Last_date | Times | \n | ---- | ---- | ---- | ---- |\n"
    )
    MY_FOOD_STAT_TEMPLATE = "| {name} | {first_date} | {last_date} | {times} |\n"
    
    ##### Month Summary ######
    MONTH_SUMMARY_HEAD = "| Month | Number | \n | ---- | ---- | \n"
    
    MONTH_SUMMARY_STAT_TEMPLATE = "| {month} | {number} |\n"
    
    ]]>
    2021-05-28T02:29:32+00:00
    https://github.com/yihong0618/gitblog/issues/208逃离2024-04-27T09:39:17.112021+00:00我是热爱生活的。

    总是看一些人引用一句话:

    世上只有一种英雄主义,就是认清生活的真相之后依然热爱生活。

    但,对我来说这句话还有后面三个字 —— 要不呢? 这两天的新闻,注销了微博几乎不去看的我也感觉到了热度。当了父亲之后看了这样的新闻尤其的难受,因为见得多了,也大概能猜到是这样的收场。 早上送完儿子上幼儿园,车上,和媳妇讨论了几句,想着我们遇到了这样的事儿该怎么办?我们都不知道,也不敢再继续往下想。 是啊,要不呢?这种英雄主义,在很多时候只不过是无奈的选择罢了。

    逃离。 这几年,很少去和我以为的傻逼认真交流,甚至不去反对他们,反而是应和,网上遇到有些看起来智力不是很够的评论,我也是默默点个赞,几乎没有对喷的时候 —— ”嗯,你对“。 昨天和朋友聊了下,这样活得有些狂了,以前还能交流下,后来慢慢意识到,大部分人很难改变,很难承认自己的错误的时候,就放弃和他们说自己的想法了。嗯,在我眼里这帮人和一坨猪肉的区别不大。

    慢慢的 虽然有些事儿依然糟心,但学着更多地关注自身,关注自己的家庭了。

    还没到必须唱赞歌的时候,就别去。

    我是个懦夫,能力也不够,至少这辈子可能做不到为苍生说人话了。 只能在保护家人的前提下做到 Never forget, Never forgive.

    ]]>
    2021-05-12T00:55:00+00:00
    https://github.com/yihong0618/gitblog/issues/207近况2024-04-27T09:39:17.201033+00:00想起来 laixintao 在播客里说

    有段时间不写博客,就会浑身难受,实在没写的就更新下近况。

    嗯,我今天有些这样的感觉。

    起因是有个前公司的群(虽然我已经退了大部分群),群里有人呼吁抵制 nike, 我想骂上一句,还是算了,默默退掉了群。不知道为什么人能渐渐变得如此无趣,无论是同事还是生活中都是很不错的人,挺沮丧的。

    最近的生活:

    1. 似乎大部分都是按照今年的三个小目标进行着,进行得还不错
    2. 程序在写着,已经提了几个 PR 了,自己也开了几个新玩具
    3. 家庭生活也挺好,好到甚至都不想多去分享,虽然还是吵了一架,但我慢慢学着去处理一些分歧。希望接下来会变得更好,哦对,一直讨厌车的我似乎也要学车了
    4. 跑步,从今年开始就一直跑着,跑休的话也会跑个 1km, 貌似今年一天还没断,酒,年后也没再喝了
    5. 俯卧撑也在做着,昨天又破了纪录,现在一口气能做 65 个了,从 5 个开始。看着自己一点点恢复到以前的状态,欣慰
    6. 微博注销了,彻底注销了,10年,说注销也就注销了,除了有几个没有联系方式的朋友,一点也不怀念
    7. 新认识了不少朋友,都是因为 twitter 或者做开源认识的,往往这时候就感叹下生活的美好
    8. 很久没玩游戏了,甚至《哈迪斯》也是打一把就不想再玩了
    9. 书慢慢地看现在很难抽出整块时间一口气读完一本书了,现在在读《火星救援》,真有意思,感觉到了行文的幽默,读完想去读原版
    10. 还有些需要尝试改变的地方,工作有时候会沮丧,对同事态度不够友好。还会因为一些琐事生气。

    接下来:

    • 想慢慢地摆脱一些对手机的依赖,减少一些上推的时间
    • 日语还是想继续学着,让人生多一些可能性
    • 希望后半年能跑个马拉松,最近要开始跑长距离了

    吐槽完毕,总结畅想完毕,工作生活都要继续,让沮丧就是短暂的情绪吧。

    ]]>
    2021-03-25T01:41:48+00:00
    https://github.com/yihong0618/gitblog/issues/206年过完了2024-04-27T09:39:17.300390+00:00今天上班了,这个年算是过完了。明天儿子要上幼儿园,还算高兴一件事,但是搞的自己压力好大。

    没有什么样的生活是容易的,又有很多困难需要解决。当然焦虑是毫无用处的,沮丧呢,也许只是短暂的情绪,更多的是要面对,不是豁达,也不是活的明白,更多的是因为被锤过几次之后知道了,有些事儿沮丧也好,焦虑也罢,只会适得其反。

    这个年算是过完了,虽然谈不上开心,也谈不上难受,总归是过完了,还涨了几斤。

    丈母娘的腿出了一点问题,好多重担就压了过来,许多事儿要有 Plan B 了,比如我的职业规划,比如我的努力的方向,比如很可能我又要放弃一些东西。

    记得前些天播客听到一句话

    成长是一个不断放弃的过程。

    是啊,我不断的把自己的爱好抽出去,游戏,电影,读书,这些越来越少了。但也多了一些东西,看着自己孩子成长的快乐,和家人一起的快乐。拿起与放下,中间才是人生。好在,跑步还在继续,新的爱好编程成了工作。

    记得读大学的时候,媚俗的读了很多米兰昆德拉的书,大部分都忘了,甚至当时读的感觉都忘了,但有句话一直刻在脑子里,喝多了的时候总拿出来引用 --

    人永远都无法知道自己该要什么,因为人只能活一次,既不能拿它跟前世相比,也不能在来生加以修正。

    很多选择也就无所谓对错了。

    年过完了,时间点上来看,是一个新的开始。

    我也需要思考和多做一些事情。

    不如

    从今天开始。

    ]]>
    2021-02-22T03:56:22+00:00
    https://github.com/yihong0618/gitblog/issues/205力扣的程序是如何运行的2024-04-27T09:39:17.395080+00:00初:

    一般刚大家刷 LeetCode 难免好奇为什么会自动生成个 class Solution: 点击提交后台就能直接运行。虽然我们不能拿到 LeetCode 的源码,但是经过初步尝试,我发现,我们是能通过一定手段搞清楚 LeetCode 是如何提交运行的。

    image

    起因:

    某天一位群友发了个问题,他有个地方 typo 把小写的 l 写成大写的 L, LeetCode 竟然能编译通过,代码如下:

    class Solution:
        def threeSum(self, nums: List[int]) -> List[List[int]]:
            n = len(nums)
            res = []
            if (not nums or n <3):
                return []
            for i in range(n):
                if nums[i] > 0:
                    return res
                if i > 0 and nums[i] == [i-1]:
                    continue
                l = i + 1
                r = n - 1
                while l < r:
                    if (nums[i] + nums[l] + nums[r]) == 0:
                        res.append([nums[i], nums[l], nums[r]])
                        while L < r and nums[l] == nums[l+1]:  # 此处写成了大写的 L
                            l = l + 1
                        while L < r and nums[r] = nums[r-1]:
                            r = r-1
                        l = l + 1
                        r = r - 1
                    elif (nums[i] + nums[l] + nums[r]) > 0:
                        r = r - 1
                    else:
                        l = l + 1
            return res
    

    接下来有人回复,是因为 LeetCode 从 re 中 import * 导致了 L 是个全局变量,这个 L 的值是 4. 证明如下图: image

    可见,这个 L 是 re 里的 re.LOCALE image

    探索

    那么我们就可以好奇下,LeetCode 都导入了哪些默认的包呢。有哪些是 import * 呢 ?

    直接 print globals() 发现是 copyright, 至于为啥是这个 copyright, 好奇的同学可以查一下,挺有趣的。 image 于是尝试下 print globals().keys(), 嗯,LeetCode 默认导入了相当多的模块,很多是 import *, Python 解析速度慢,也不奇怪了。 image 再尝试下用 sys 模块打印 import image

    知道这个之后,大家刷题可以不用在 collections 里导入包了

    继续探索

    那么,既然他们好多模块是默认导入的,比如比较危险的 sys 和 os 模块,那么我们是否能做点什么呢?

    1. 尝试看源码,简单粗暴直接 listdir, 发现当前文件夹里有三个文件,而 / 中有 leetcodedockerenv 和猜想的一样,LeetCode 是用 docker 运行程序的 image
    2. 那么我们看看这个 precompiled 有什么呢,发现了一些 .pyc 文件,这个后续再用
    3. 继续 listdir 找我们需要的,最后在 /mnt 找到了 .py 文件,我们看看是啥。

    很好,破案了。 image

    具体代码如下: 原来 LeetCode 看似神秘的程序运行构造也并不复杂。

    # coding: utf-8
    from string import *
    from re import *
    from datetime import *
    from collections import *
    from heapq import *
    from bisect import *
    from copy import *
    from math import *
    from random import *
    from statistics import *
    from itertools import *
    from functools import *
    from operator import *
    from io import *
    from sys import *
    from json import *
    from builtins import *
    
    import string
    import re
    import datetime
    import collections
    import heapq
    import bisect
    import copy
    import math
    import random
    import statistics
    import itertools
    import functools
    import operator
    import io
    import sys
    import json
    
    import precompiled.__settings__
    from precompiled.__deserializer__ import __Deserializer__
    from precompiled.__deserializer__ import DeserializeError
    from precompiled.__serializer__ import __Serializer__
    from precompiled.__utils__ import __Utils__
    from precompiled.listnode import ListNode
    from precompiled.nestedinteger import NestedInteger
    from precompiled.treenode import TreeNode
    
    from typing import *
    
    sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
    
    # user submitted code insert below
    # Definition for singly-linked list.
    # class ListNode:
    #     def __init__(self, val=0, next=None):
    #         self.val = val
    #         self.next = next
    class Solution:
        def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
            print(os.listdir("/mnt"))
            with open("/mnt/prog_joined.py") as f:
                print(f.read())
    import sys
    import os
    import ujson as json
    
    def _driver():
    
        des = __Deserializer__()
        ser = __Serializer__()
        SEPARATOR = "\x1b\x09\x1d"
        f = open("user.out", "wb", 0)
        lines = __Utils__().read_lines()
    
        while True:
            line = next(lines, None)
            if line == None:
                break
            param_1 = des._deserialize(line, 'ListNode')
            
            line = next(lines, None)
            if line == None:
                raise Exception("Testcase does not have enough input arguments. Expected argument 'l2'")
            param_2 = des._deserialize(line, 'ListNode')
            
            ret = Solution().addTwoNumbers(param_1, param_2)
            try:
                out = ser._serialize(ret, 'ListNode')
            except:
                raise TypeError(str(ret) + " is not valid value for the expected return type ListNode");
            out = str.encode(out + '\n')
            f.write(out)
            sys.stdout.write(SEPARATOR)
    
    
    if __name__ == '__main__':
        _driver()
    

    至于下图中的这些是什么?LeetCode 其实在里面放的是 pyc 文件,但是大部分 pyc 是能转换回来的,通过一些手段,这个留给大家感兴趣自己研究哈哈。 image

    后续

    理论上其它语言可以用同样的思路。至于其它好玩的事情,大家可以自行发掘(笑)。

    ]]>
    2021-02-01T06:00:05+00:00
    https://github.com/yihong0618/gitblog/issues/204生存守则2024-04-27T09:39:17.495035+00:00今年的三个小目标的一些补充
    • 尽量不看微博,想看的时候集中看一下之前朋友的就好
    • 不加到任何群里,tg, 微信都是,除了必要的家庭群,记得开免打扰
    • 领导交给的工作早反馈,毕竟现在领导人真的很好
    • 不 judge, 不去 judge 别人,不去 judge 政府,尽量不去 judge 自己
    • 想到一件事,尽量马上去做,不如从这一刻开始,想坚持做俯卧撑,就去做两个,两个足够开始了
    • 记账,尽量的。知道自己钱花在哪里了
    • 这次瘦下来后要注意饮食,保持自己体重了该,不再年轻,好多事儿该注意了
    • 冥想
    • 尝试番茄工作法,不过不用刻意,不适合自己就算了
    • 有些极度想完成的事儿先不用公开说出来,但和这篇《生存守则》矛盾,其中的平衡自己把握吧
    • 少刷推,每天定一个时间看吧?比如从写这行开始,下班前不开推特
    • 少生气
    • 多整理
    • 多写测试代码
    • 学会列能完成的计划
    • 学会捡起放弃了的事情
    • 想到了之后再补充
    ]]>
    2021-01-27T04:24:38+00:00
    https://github.com/yihong0618/gitblog/issues/203沮丧2024-04-27T09:39:17.593533+00:00最近受了不少挫折。编程上,生活上。 好多东西花了好久都没搞定,每次尝试都失败。偏偏有些地方我又不服输。 现在在编译 grafana 我先后解决 wsl 的各种问题,再放弃,换到 powershell, 走一步遇到一个问题,node 版本的问题,npm 的问题,有些包还一直装不上。解决玩这个又出现其他问题,每每搞 node 的相关的环境就很沮丧。

    目前又卡在下图不知道啥情况,希望只是在下载吧。 image

    一下午就这样没了。还是希望用 mac 开发,不用遇到这样一堆一堆环境问题。


    生活上,还是不在这说了。


    想起那天为了格式的代码也是搞了一上午,感叹了一句,排版真的是太难了,也没解决,啊。 写到这编译还没通过。


    今天上了下微博,好像又被这帮弱智恶心到了,也不想去评价什么。不知道谁往粪坑里扔了个二踢脚。微博就这样了,民粹被点燃了,群魔乱舞。他们还会跳起来骂你,就很沮丧。我选择沉默图个清静也躲不开,因为这帮弱智好像传染病,会传染到你的亲人,朋友。


    写到这的时候编译好像过了。


    那就写到这儿吧。

    ]]>
    2021-01-25T10:18:28+00:00
    https://github.com/yihong0618/gitblog/issues/202今年的三个小目标2024-04-27T09:39:17.679265+00:00写下来,慢慢做,能做到更好,做不到也不用自责。

    关于个人成长

    • 编程方面, 今年是 Go 精进 Go, 继续深入底层,APUE,CSAPP 这两本,有额外的精力再来 SICP 和魔法
    • 把去年的剩的计划完成
    • 完成一个酝酿挺久的新玩具

    关于身体

    • 慢慢的少喝酒
    • 慢慢的保持体重
    • 俯卧撑仰卧起坐继续,不再年轻啦

    关于家庭

    • 少生气,生气前深呼吸,只是自己无能而已
    • 多收拾屋子
    • 厨艺练起来

    关于工作

    • 尽量少拖延
    • 更 nice 一点,没必要跟同事生气,多分享
    • 不考虑跳槽的事情,今年

    关于社交网络

    • 慢慢的不上 B 站了,微博也几乎不上了。今年需要减少刷推和水群的时间
    • 多输出自己的博客
    • 不要 judge 别人,错了就是错了,要 say sorry

    关于跑步

    • 争取进 400, 如果有机会的话
    • 争取到 2000km
    • 争取进 5min(不用刻意追求速度,有这个能力就好)

    关于其他

    • 多给父母打电话
    • 多让媳妇儿子开心
    • 多给以前的好友打电话或者微信交流,别再留遗憾

    关于这个关于

    • 没必要都完成,但有计划对我来说总别没计划强
    • 失败,坚持不下来都无所谓,捡起来就好
    • 认清自己的能力,和再怎么努力都是普通人的事实,享受普通人能达到的快乐
    ]]>
    2021-01-14T02:03:54+00:00
    https://github.com/yihong0618/gitblog/issues/201新年碎碎念2024-04-27T09:39:17.785441+00:00想到什么写什么。好久没这样了。

    • 这些天在家办公,焦虑感增加了不少,其实是没法干活的,因为娃的幼儿园停了,要和媳妇轮流带孩子,程序是写不了的,一被打断就不免心烦,导致效率极其低下。也不知道怎么办才好。
    • 日子慢慢的走着。
    • 大连下了几天的雪,今天终于停了,希望温度能有所回升,那样跑步就不冷了。
    • 把自己 2021 的项目更新了下,更自动化了一些,理论上这篇碎碎念写完,就自动同步到 2021 了。
    • 马上要到自己的 0x20 岁了,也没多少天了,这些年心态变好了些,也没变好太多,多少进步着,还不错。
    • 生活慢慢过着
    • 和媳妇感情,儿子成长,父母的慢慢的老去,世界也在变乱,技术还在发展
    • 今年想多跑一些,尽量别停下
    • 还有一个一直拖着的项目,在写这篇东西的时候突然领导找我了。
    • 就写到这儿吧。。。

    今天看到某人年终总结中的一句话: 恰好符合我今年的主题,记录一下。

    优秀的程序员和普通的程序员之间很多时候只隔了一层好奇心,对「有没有更好,更有效率,更聪明的做法」的好奇心。在这个时代,「代码」是一种生产资料的,而大量的程序员们却自己忽略了这一点,或者自愿放弃了这点。


    准备开坑个新的小玩具。


    如果说我最近一段时间学到了什么,就是,尽量不去评价别人( judge people), 成长,是一个不断把傻逼列表清空的过程,当然,彻底清空是不可能的,总会有些人是纯傻逼,比如菜小龙。但是,我慢慢去理解每个人成长环境的不同,心智的差异,选择方式的不一样,价值观什么的也是完全不一样的,求同存异,努力去理解他人,be nice, 找到其中有趣的地方,并去享受这些,日子,也会过得快乐许多。


    安全问题真重要。感动 image

    ]]>
    2021-01-08T02:20:51+00:00
    https://github.com/yihong0618/gitblog/issues/200二零二一开始2024-04-27T09:39:17.885844+00:00新的一年。打了一个新的 label.

    不知不觉已经快用 Issues 写博客两年了。倒是没什么心得,没什么观众,自言自语,留一些纪念。

    新的一年开始了,准确说,庚子年还有一些时间。不迷信的话,其实,今年和去年没有本质的不同,无非是日期上的变化,牛年,也不意味着牛气冲天。

    今天的新闻是 -- 拼多多女孩猝死,除了惋惜一下,在这里似乎也没什么办法破局, 在有限的资源里,有些根本的东西不改变,一切也都不会变好。

    朋友问我 2021 有什么计划,计划还是有一点的,但我看了看我去年写了好多 TODO List, 有一些实现了,但更多的是在那儿躺着,所以,还是不说了,去做就好了。

    哦,有两点还是想说一下的:

    1. 保持自己好奇心
    2. 变得更 nice 一点

    广义上的计划,说说也无所谓,因为这两点是发自内心想做的,其余的计划,即使不说出来也是围绕这两点的。

    新冠疫情还没结束,我和媳妇在家办公,幼儿园停了,身上的压力也大了一些,开年这样倒是也是对自己的一些磨炼。总是要成长啊。


    新的一年,不可能一帆风顺的,希望自己能乘风破浪。

    用一首很喜欢的友邻的签名作为结尾。这首诗我也是越读越喜欢。

    西风吹老洞庭波,一夜湘君白发多。 醉后不知天在水,满船清梦压星河。

    ]]>
    2021-01-04T06:52:18+00:00
    https://github.com/yihong0618/gitblog/issues/199记住这一刻2024-04-27T09:39:17.977709+00:00imageimage

    突然想记住这一刻 帮儿子去买面包,明早吃 午夜,罗森 还买了两个鸡翅 一边吃一边独自走在街上 无人 风吹着,雪花飘的不大 今年要结束了 享受这一刻的自己 告诉我说 回去 一定要记下来 记住此刻的心境 对今年的种种无奈和喜悦 对明年的期待和畅想 记住此刻的雪花 记住此时在熟睡的老婆孩子 记住跑过的路 记住写下的代码和文字 记住此刻在手机敲的这个issue 然后睡觉去。

    ]]>
    2020-12-29T16:43:33+00:00
    https://github.com/yihong0618/gitblog/issues/198巧妙利用 iOS 的快捷指令配合 GitHub Actions 实现自动化2024-04-27T09:39:18.070994+00:00之前一直在利用 Actions 的 crontab 每一个小时跑一次。但我一直在思考,能不能我只要跑完步就触发,那样可以节省很多资源,还可以跑完就能看到自己新生成的数据。

    于是想到了,可以利用捷径啊!我们一般利用 app 记录跑步,如果能用某种手段跑完步,触发 Actions 就可以同步数据,或是完成其它功能了。

    这样就不用 crontab 了,只要能利用手机触发就可以了。

    那么怎么触发呢?

    • 最开始我知道 Actions 能手动触发是来自 @laixintao 的一篇博客 -- 玩了一下 Github 个人首页的 Profile 中的一个回复,原来是可以给 actions 增加手动触发选项的。 image
    • 如果可以手动触发,那么有没有 api 呢?搜索了下 GitHub API 文档,并没有发现这个。尝试搜索了一下 GitHub 嗯,在某个项目下发现某个人做过类似的想法。好了,api 有了。试试能不能触发。
    • 首先在 yml 文件中增加 workflow_dispatch: 可以手动触发
    • 先拿到这个项目的 actions id (需要自行申请 token)
     curl https://api.github.com/repos/yihong0618/blog/actions/workflows -H "Authorization: token d8xxxxxxxxxx" # change to your config
    

    image

    • 拿到 action id 就可以利用 api post 触发 action 啦
     curl -H "Content-Type:application/json" -X POST -d '{"inputs": {}, "ref":"master"}' https://api.github.com/repos/yihong0618/blog/actions/workflows/: actionid/dispatches -H "Authorization: token d8e03d6xxxxxxxxxxxx"  # change to your config
    

    那么怎么结合捷径呢?

    1. 捷径打开或关闭 app 运行,那么,跑完步一般会关闭 app, 只要关闭 app 触发就可以 image
    2. 增加捷径中的网络请求条件 image
    3. 填写你之前获取到的 url 和 payload (触发捷径的api) image
    4. 你跑完步关闭跑步 app 时候就可以触发这个捷径了。之后就可以把原来 crontab 的一小时一次,改成一天一次了。 image

    还可以做什么呢?

    1. 利用 shanbay_remember 扇贝背完今日单词,关闭 app 时触发捷径自动发送今日的单词 mp3 和单词整理到 tg
    2. 利用地理位置或 wifi 触发,到公司自动发送每日 GitHub status
    3. 可以利用一个 action 触发另一个项目的 action,实现另一个 repo 的更新
    4. 利用关闭闹钟同步自己起床记录
    5. ..........欢迎大家想到好玩的补充
    6. 记录展示自己的心跳 -- iBeats image

    另外

    1. 目前主分支可能是 main 而不是 master
    2. 可能需要 inputs 请按下图配置
    3. yml 中的 inputs 也可以按下图配置

    image image

    ]]>
    2020-12-23T03:16:33+00:00
    https://github.com/yihong0618/gitblog/issues/197如何获取悦跑圈数据2024-04-27T09:39:18.172627+00:00这几天想给朋友分享如何把跑步数据同步到 NRC 发现自己当年一系列的操作几乎忘光了,他没有成功,有些遗憾。想着,如果当时写个博客就好了,以后跟人分享还方便,也能让更多的人转移成功。

    于是,这些天尝试如何获取悦跑圈数据的过程,记录一下。

    • 尝试给 running_page 加入悦跑圈已经很久了,我是先本着凡事先搜索的原则找到了有人分享过悦跑圈逆向的加密。但我不知道接口,尝试抓包,嗯,不出意外 SSL Pinning
    • 为了解决这个,我先后学会了,装夜神模拟器,怎么 trust,怎么模拟器配合 charles 抓包,但是,不知道为什么还是失败。不过倒是学了一点逆向安卓,发现了 Xserver 这个项目
    • 放弃之际,ben-29 给我发来一条私信,说他抓到了悦跑圈的包,说是用低版本的 apk 可以,我一下就兴奋了。于是去下了一个3.0的,果然能抓到,好兴奋。
    • 接下来就是一系列破解接口的过程,具体方式方式不便讲。但发现了一个隐藏的项目 PKURunningHelper 里面直接有加密需要的两个 key。我用了一些其中的代码,但实在是不喜欢代码的 taste,几乎都重写了。
    • 但是带来了一个新问题,joyrun 更改了它的登陆策略,目前,只支持单设备登陆并且,如果是新设备必须用验证码登陆,这下就麻烦了,一下子必须 runner 必须具备抓包和搞到低版本的能力,这样是没法通用的。
    • 于是我想了从验证码就行突破找找运气,我尝试了只用验证码校验的接口是否能登陆成功,-- 在手机获取验证码,然后把验证码传入 python 端校验验证码的接口上,看起来我运气不错,搞定了。
    • 并且,登陆之后会有 sid, uid, 悦跑圈的 cookie 也是用这两个拼的,加密也是,只需要保留这两个大家就可以再用这个登陆了,方便很多,我加了个简单的用 sid, uid 登陆的方法。
    • 之后导入数据,转换成 GPX 和其它的软件类似,不过 joyrun 的数据格式做的太差了甚至和 keep 比都差很多,心率和海拔是分开的没有时间戳。。。转换成 GPX 造成了非常的大困难。我暂时没加这两个。

    关于获取数据代码在这里

    ]]>
    2020-12-18T04:42:20+00:00
    https://github.com/yihong0618/gitblog/issues/196生的对立面2024-04-27T09:39:18.271057+00:00最近总想起一起长大,却已经不在这个世界的朋友。心里像是有什么东西堵着。

    喝了点酒,总是不自觉的想起死去的朋友。想起你说你开始读村上春树,想起你玩了好些年的地下城,现在手游也要上了。想起来年少时我们拿着两个棍子在后院的煤山上比划,仿佛两个英雄。想起你酒后谈起不知道未来在哪里,想起北岛的《波兰来客》,想起了我们渐渐的少了话题,最后收到的却是你死去的消息。

    image 昨天,读了一篇文章,新阡去岁留, 感觉难过极了,想起我和你见的最后一次是我们一起去参加朋友的婚礼,结束后来我家又喝了点儿,下午我回大连,分别的最后一句话是 -- “我再回来我们再喝酒”。

    不知道哪次分别就成了永远。

    这篇文章的英文标题其实更好 -- respect2dead, 我们最后几次见面经常聊到村上春树,你说你在读《挪威的森林》,也聊过几句死亡的话题,我还和你卖弄了下,“死并非生的对立面,而作为生的一部分永存”翻译的不是很好,有点后悔。

    现在再重读这本书的时候,也不自觉的想起我们拿着两瓶“老雪花”,聊这个,聊最近看的新番,聊《石头门》,你和我推荐《小圆》我最后也没看。

    离开最大的不幸可能就是不再经历了吧,好的坏的,都不会再经历了。

    2020的新冠比当时的非典还要严重,2020川普没连任,《EVA》的新剧场版还没完结,你当时就期待的《地下城》手游延期了。《刺杀骑士团长》写的还不错。

    讽刺的是,渐行渐远的我们,如果你还在的话很可能没有机会聊,现在想聊却只剩下了一些叹息。


    希望有另一个世界,真的。到时候,我们再喝一杯。

    ]]>
    2020-12-10T04:25:14+00:00
    https://github.com/yihong0618/gitblog/issues/195推荐一些我一直关注的觉得不错的和 Python 相关的独立博客2024-04-27T09:39:18.360315+00:00在推上发了一个 thread 在博客里记录保存一下。方便查找

    image

    1. laike9m: 捕蛇者说播主之一,除了写一些比较底层的 Python 还写了不少人文科技,动漫相关的博客,其中影响最大的是《People Die, but Long Live GitHub》
    2. 小明: 豆瓣(前)?工程师,《Python Web开发实战》的作者,最早学习的时候就关注他的一篇 Python 高级技巧的文章,文章内容放在今天依旧不错。 作者刚刚更新了文章《博客十年》
    3. mozillazg: python-pinyin 的作者,最早读到的是他翻译的《让我们一起来构建一个 Web 服务器》之后又读到了他写的系列《让我们一起来构建一个模板引擎》几年前作为初学者的我收获了非常多.获益良多。他的博客也从 python -> go -> k8s -> LeetCode...像极了好多大神的画风。
    4. 卡瓦邦噶: iredis 作者,捕蛇者说播主之一。写了不少 Django 和 vim 相关的内容,是我当时遇到 Django 搜索到的,坚持写博客好多年,相当佩服。
    5. linw1995: 爬虫工程师,最早发现他是我研究 shadowsocks 原理,发现了一篇文章《从零写个ss》, linw1995 贡献了 python 的版本,然后点进去发现代码非常漂亮,博客也写的很好。
    6. dreamfever: 无栈工程师, 最早读到这个博客是因为搜索 python 单文件的框架 bottle 的源码剖析,发现了这个宝藏博主,写了非常多高质量的源码分析。但好像某一天他的GitHub 签名改成了996 便不再更新了
    7. aoik: aoik系列作者,一个仰望的神人,将来有一天能彻底读懂他的博客是我努力的方向之一。博客的画风:
    IMG

    image

    1. hongweipeng: cpython 贡献者,搜索 Django 源码时候发现的博主,也是个宝藏博主,写了很多个系列,文章和代码质量非常不错,希望有一天我也能给 cpython 贡献代码
    IMG

    image

    1. keakon的涂鸦馆: 年更博主,但文章的质量非常非常高,每篇文章都能收获一些东西。特别是关于 async 那篇,让我真正理解了 python 的 async
    IMG

    image

    1. manjusaka: 捕蛇者说主播之一,写了不少 flask 的相关文章,但我比较喜欢的一篇是《去 async/await 之路》
    2. zhu327: 印象中是搜索 uwsgi 搜索到这个人的。比较喜欢《python后端架构演进》这篇文章。看他的文章系列,几年的经历已经从一个程序员成长成架构了,也是坚持写博客的魅力吧
    3. wklken:kvim 作者 同样的 vim 和 python. 最早试着看Python 源码时候找到的博客。但是最近更新不多了。他把《重构》的例子用 Python 写了一遍。对 Python 代码的重构很有帮助
    4. Frost: pipenv 维护者。最早是搜索 flask 前后端分离的时候发现这个博客的。作者越来越厉害了。。。
    IMG

    image

    1. Piglei 《Python工匠》作者。我在《流畅的Python》之外读过的最棒的系列。作者也是游戏爱好者。
    IMG

    image

    1. cizixs: 因为 flask 源码搜到的。写了非常棒的 flask 源码剖析系列。但慢慢也是从 Python -> go -> k8s (已经见了非常多的人这个路线了)
    IMG

    image

    1. laisky 记得是从刚开始学 Python 时候的 Python3.6 新特性关注的。写了不少 Python 的好文章,同样也是 python -> go -> k8s (这条线看起来是非常好),作者更厉害的是写了好多人文文章,一年看非常多的书,我有些书就是从他博客中收到的~
    IMG

    image

    1. 寒枫: 是我刷 LeetCode bit 时候发现的宝藏博主,搜了好多资料发现他这篇博客最清晰。虽然 Python 内容不多(大部分)是 c, 但是从不多的内容中收获了非常多,最近的一篇 《项目开发总结》让我学到了不少
    2. jiajunhuang 这个是偶然发现的,博客非常简洁,作者也很厉害。喜欢他写的《Web开发简介系列》 难得的路线是 python -> go 没继续到 k8s 的哈哈。
    3. 离别歌:安全圈的一个大神,我最近对这方面比较感兴趣。博客的主题超级超级漂亮,我已经看到不少安全圈用这个主题了的。我喜欢他写的 python 安全相关的博文。
    IMG

    image

    1. howie: 研究 sanic 发现的博主,慢慢转到了机器学习。记得第一次写 sanic 搜到了他写的 sanic 小册。最近写了一些关于机器学习相关的内容,不过我懂得不多
    IMG

    image

    ]]>
    2020-11-20T07:32:03+00:00
    https://github.com/yihong0618/gitblog/issues/1942020 年 10 月总结 11 月计划 2024-04-27T09:39:18.466723+00:00十月过去了,将来我可能会怀念它

    running_page

    • 十月 running page 得到了阮一峰老师的推荐,上了 trending, 加了一些功能
    • 十月把 gaycore 重新 work 了
    • 十月 twitter 的 followers 过了500, 上面玩的很开心,遇到了超级多有趣的人
    • 但第一次网络上被陌生人骚扰
    • 十月, 跑了 100km, 不多,但好在在跑着
    • 十一假期每天做饭,累,但是很充实
    • 又刷了一遍《毒枭》第一第二季
    • 家庭生活非常快乐

    十一月

    • 特朗普要连任了,操蛋------------2020.11.09 不要轻易下结论
    • 儿子三岁了
    • 儿子要上幼儿园了
    • 自己也要成长起来,就剩我和媳妇俩人带孩子了,要多干活了
    • 工作上要多承担点,还要带个实习生
    • 昨天没跑步,希望11月别停下奔跑的脚步吧,去年还在跑马,哎今年
    • 维护 Running page
    • 头脑中构思了个新项目,希望能开个头儿
    • 要打《哈迪斯》
    ]]>
    2020-11-04T08:56:40+00:00
    https://github.com/yihong0618/gitblog/issues/193写在 0x20 岁之前2024-04-27T09:39:18.556658+00:00好多好多年前我读过到云风的一篇文章--写在 0x20 岁之前

    如今还有不久我也到了这个年纪。 这些年里我经历了从学生到员工 从单身到父亲。 换了4个行业了。

    在这之前还有一些计划。 先写到这儿。

    有些计划先不说出来。

    终于还是到了这一天,32 岁了。 昨天还吵了一架,很大是自己的责任,还是需要修行啊。

    ]]>
    2020-10-26T08:57:56+00:00
    https://github.com/yihong0618/gitblog/issues/191如何获取 keep 跑步数据2024-04-27T09:39:18.833886+00:00这些天为了把自己的 running_page 支持keep,很大一部分精力都在和keep数据打交道,也有了一些心得,在这儿记录一下。没准过段儿时间我就成安全工程师了~ 具体代码见 https://github.com/yihong0618/running_page/blob/master/scripts/keep_sync.py

    如何获取到接口

    这也算是比较重要的一步。我一般采取以下步骤

    1. 去官网看看,有登陆的地方没,如果有获取到最原始的接口。比如 api.gotokeep.com
    2. 如果没有的话,我会在 GitHub 上进行搜索,但是 keep这个遇到了困难,叫 keep 的太多了。如果有人做过会节约非常多的时间,但不幸的是,keep 不像 garmin, strava 那样,几乎没人做过。 keep, 悦跑圈,咕咚那样的国内软件也鲜有人做过。幸运的是我发现了有人2年多以前做了 keepForMac, 那时候keep的接口好像还是开放的。虽然这个项目已经不能用了,但我找到了登陆接口。 image image
    3. 有登陆接口后我继续在 GitHub 搜索有没有人做过 keep 的模拟登陆,这次没有那么幸运了,做过登陆的只有这一个项目。
    4. 没办法,只好抓包,我用 Charles 抓出跑步 logs 的接口,再碰碰运气,贴到 GitHub 中,一无所获,贴到 google 中,发现了这篇文章 嗯,证明我拿 keep 数据的想法是可行的。挺好。

    搞定数据

    1. 想拿到跑步数据需要,速度,时间,距离,心率。。。等等,除了这些还有生成可视化地图比较重要的经纬度,如果要生成 gpx 还需要时间戳。
    2. 一般 经纬度 + 速度 + 时间 + 海拔的数据都是加密的,我之前搞过 Runtastic 是 base64加密,然后一个一个猜最后搞定,如下图: image
    3. 但同样的方式我去搞keep直接失败,甚至一个字节一个字节来碰运气发现还是不行。
    4. 搞不定之后我尝试用之前看到的一个项目 Ciphey 尝试破解,不过只告诉我是 base 加密但解不出内容
    5. 最后惊奇的发现好像好多内容(能访问的txt数据都是)都包括这个开头 H4sIAAAAAAAA, 本着我的凡事先搜索精神我把这段贴在了 GitHub 中,发现有好多代码出现了这个,肯定是某种加密。 image image
    6. 在根据别人写的代码反推加密,就搞定了(zip + base64) image
    7. 搞定了这个数据,就剩解析成我需要的格式,生成polyline了,存入数据库。这个我搞过好多,也就简单了。

    总结

    1. keep 的数据保护并不复杂,但是keep因为想把用户留住的原因省去了好多数据
    2. 对于破译保护一定要多观察, 冷静。站在前人的肩膀固然好,更要有自己的能力
    3. 这些数据里 keep 粒度是最不好的,导出 gpx 会缺失很多,但悲凉的是已经是国产里最好的了

    P.S. 本质是 base64 不算加密,做数据编码一定要记住。

    ]]>
    2020-10-22T07:38:49+00:00
    https://github.com/yihong0618/gitblog/issues/1902020 年 9 月总结 10 月计划2024-04-27T09:39:18.928291+00:009月又过去了,操蛋的2020年也剩的不多了。

    总结

    1. 跑步继续,但是目标没完成。速度也开始变慢了。跑了一个半马,倒是不错
    2. 生活继续,看了好多幼儿园,体会到了钱是好东西,太贵了!!!
    3. 代码继续,写了不少代码,提了不少pr,把running page做完了,程序上又进步了不少
    4. 日语没学多少,书没咋看,电影没咋看。

    展望

    1. 保持体重
    2. 跑步别停下
    3. TODO list 用起来
    ]]>
    2020-10-05T09:24:39+00:00
    https://github.com/yihong0618/gitblog/issues/189决定把gitblog和kb结合起来2024-04-27T09:39:19.023307+00:00最近trending上发现一个小知识管理系统,深得我心。还贡献了下代码想了一下方案,貌似可行。

    1. 增加kb标签(可以加上其它标签)
    2. 给issue打kb标签
    3. 写评论,利用GitHub Actions触发,自动同步到kb中
    4. 导出
    5. commit

    目前有的问题。

    1. 需要增加直接写的功能
    2. 本地的怎么合并
    3. 是否需要提pr
    4. 能否快速导出
    5. 每次评论都触发有必要么?是结合之前的action还是新写一个

    搞定了!! 开心,剩下的完善就可以了。

    ]]>
    2020-09-23T01:04:31+00:00
    https://github.com/yihong0618/gitblog/issues/188感冒了,真是难受2024-04-27T09:39:19.115567+00:00昨天跑了20km, 穿少了,走回家。 成功感冒了,今天一整天都超级难受。 嗓子疼,流鼻涕。


    终于找到了一个比较好的,知识管理系统 决定结合这个博客把技术部分导进去,并结合GitHub Actions 自动化。


    慢慢把running page抽出来了,但是目前没啥动力做完。慢慢来吧。

    ]]>
    2020-09-21T09:20:40+00:00
    https://github.com/yihong0618/gitblog/issues/187把running page 变得通用必须提上日程了2024-04-27T09:39:19.210911+00:00解答了几次了。发现没次都是回复同样的问题。 有编程基础的还好,没有会消耗我大量的时间,我还比较热心,都会耐心解答。。。


    计划:

    1. 支持nike, strava, runtastic, nike+strava
    2. 支持from strava, from gpx
    3. 不同的action吧
    4. 先实现gpx--> db
    5. 再实现strava->gpx poster
    6. 再把描述抽出来
    ]]>
    2020-09-17T15:19:39+00:00
    https://github.com/yihong0618/gitblog/issues/186我转行程序员的经历2024-04-27T09:39:19.314362+00:00今天发的一条推特。开个坑,把这几年转行的经历。和这两年做程序员的经历写一下。算作留念。 image

    继续写这个,关于怎么实践。说起来我挺有意思,整个实践过程其实跟机核有非常大的关系。或者说开始的时候,在机核发文章贯穿了我整个转行和实践过程。希望对也想转行的人有些帮助。按时间顺序倒过来正好是 -> 竞品 -> 数据分析 -> Python -> 全栈

    1. 开始做游戏竞品分析(运营策划),正好玩了一款特别有趣的游戏叫《Human Resource Machine》,那时候还不咋懂程序是什么,硬着头皮不看攻略的最后打通了,至今记得最后一关是用“汇编”写一个冒泡排序,足足花了我一个周末,至今如果有朋友问我怎么写程序,我都第一时间推荐这游戏
    2. 之后是数据分析师,在公司开始接手一些数据分析的工作,师傅教我如何写数据报告,但是每日重复的报告,和相对无趣的分析内容觉得有些无聊。就学了一点爬虫,爬了当时整个的机核网站,然后给机核写了一篇数据报告。好像还是那年最热的文章之一。
    3. 再之后非常平稳的过度,看了一些书,也帮我们数据部门写一些自动化的脚本。然后就是转行了。当时其实拿到了阿里的数据分析的 offer, 还有一些其他的,但还是因为家庭和一些其他原因选择留在大连,面试倒是没怎么碰壁,但薪水确实有些下降。
    4. 转行程序员之后其实频繁的换了一些工作。因为各种原因吧,当时看了一个命令行的网易云非常有趣。于是就参考了一些设计写了《命令行听机核》的程序,那也是我自己第一个完整的设计,技术选型,遇到各种困难解决困难,开始理解数据结构的重要,可以说是打通了一些东西。知道了如何解决困难。
    5. 再往下是开始认真的玩 GitHub 给 @floppgc 的 GpxTrackPoster 提交了人生第一个 pr 是翻译成中文, 但是 ci 没过,真的特别感谢后来他发现,鼓励我修改,我第一次知道了有 black 这种东西。
    6. 认识到数据结构和算法的重要性之后,看书之余我开始刷 leetcode, 刚巧用了 vscode-leetcode, 那个时候 leetcode 更改了登陆机制,我也遇到了这个问题。竟然尝试解决了,目前网上其他 leetcode 模拟登陆还是都用的我的方案,我自己也一直在首页的感谢名单里。
    7. 后来又给 vscode-leetcode 提了好多 pr 这也是我成长最快的时候,作者真的非常耐心给我 review,有的 pr 前前后后走了将近一个月。我也慢慢理解了一些 clean code 的重要性。也学会了 vscode 开发,写了《VSCode 玩转机核》
    8. 再之后就是给好多跑步相关的程序贡献代码。然后 runtastic 在大陆下架,我一怒之下决定自己做。搞定了好多跑步数据,学了 react 做了 running_page, 做的过程中认真玩了下推特,到今天。

    关于看书--之后再补充


    2022.04.17 补充 之前的邮件一条回复:

    很高兴你看我写的东西,真是特别开心。以下是我的一些回答,但都是我的个人经历或建议,非常非常大的概率不适合你,方向的话其实更需要自己找,如果我能帮上一点点忙就更好了~

    其实我不想用转码这个词,有些功利。因为我大多数时候是兴趣和运气推着自己走,当时也没怎么想着自己有一天能从事这份职业(我的薪水目前还没我转行前高)。 游戏到数据分析师这个转变,其实是机缘巧合吧,进入了数据部门,而我之前在米其林 Excel 用的还算可以,从编程门外汉走进去这个过程就是突然知道了编程是用来解决问题的,而问题是能分成一部分一部分的(其实大多数事情都是如此吧),因为一直喜欢看书也就找了一些书看,读了一本很受益的书《像计算机科学家一样思考Python》(现在有第二版)豆瓣地址是:https://book.douban.com/subject/26870407/ 之后就是写脚本写爬虫,自动化之类的了。 其实你学的数电模电,嵌入式对都是编程的一部分,且是非常非常重要的一部分,如果你之后有机会喜欢编程的话,慢慢你会发现,编程不一定是 CRUD,也不一定是高并发,微服务,云原生,甚至不一定要从事这份工作。而是找到自己的乐趣,把他当成魔法,because I can. 就像我 twitter 上关注了一个非常厉害的推友,他的职业是产品经理,但是写了非常多网络相关的东西,对很多人来说编程就是像开车,游泳,下棋一样是人生的一部分而已。 推荐一篇他的博客:https://blog.lishun.me/openwrt-mega-post 因此我的建议是,也不用局限于 Python, 找个日常的工作,把他自动化,或者找个好玩的项目,尝试把他跑起来,增加些小功能,慢慢书本和实践就结合起来了。慢慢你就知道为什么需要 dict list 这些数据结构了 可以先玩玩我推荐的游戏 其实我研究生时候也不知道自己想干什么,未来在哪里。但,编程对机械也很有帮助的,比如你一直在用的 CAD. ProE 这些都是程序做出来的,你可以上 GitHub 找一些开源的这些软件,看看他们是怎么运行的,是否可以把一些工作自动化,这样编程也就和你的工作结合起来啦 最后,祝好。


    2 年后的一些新的补充

    1. 又给很多开源项目贡献了代码
    2. 在这篇文章之后的两年我写了不少新的项目,认识了很多开源上的朋友,真的很开心。
    3. 对程序也越来越敬畏,知道自己和真正厉害的人那种难以逾越的鸿沟,不过好在,还是在不断的进步的。日拱一卒
    4. 看到越来越多的人在自学编程,2 年后回头看,我最大的建议是,尽量别功利的去学,当成生活的一部分,即使没转行,也不亏是吧?
    5. 如果不是功利的学习,年龄从来都不是问题。

    2022.07.01 补充给一个网友的邮件回复,希望我能帮一点点

    邮件内容(姓名隐去):

    首先,请容许我简单介绍一下自身的基本情况。我是男生,今年31岁,目前在体制内工作。由于个人性格原因,我认为自己十分不适合目前的体制内工作,没有在体制内长期发展的打算,目前正在找机会尽快离开。离开之后,就需要面对很现实的生存问题。因此,在这段时间,我一直想着要为离开体制后的个人就业发展做一些规划和准备。我有研究生学历,但是是一所国内并不知名的一般本科学校,专业背景属于理工科。虽然我还比较喜欢自己的专业,但由于领域比较窄、圈子小,想找一个比较满意的对口工作也比较难,所以考虑是否需要转行。更重要的是,如果有机会,我有意向今后去海外试一试。思来想去,目前好像只有转码可以尝试一下。之前在学校读研期间的工作内容比较偏向于数据处理和建模分析,有点像现在比较热门的Data Scientist方面的工作,但接触的可能更偏向于专业方面的数据,不如现在互联网公司中一般意义上Data Scientist所面对的数据种类那么广。虽然平时接触编程也比较多,如Python, C/C++, Fortran等,但可能更注重计算编程或科研编程,感觉与专业程序员所谓的编程还是有很大的不同。所以,觉得如果真到要转到程序员这个行业,可能还是需要有一些系统的学习。 下面是我考虑的几点问题,如您方便,恳请不吝赐教:1. 是无止境的,如果能在一段时间的密集学习后,能够获得一份类似于实习之类的工作,以工促学,或许会好一些。2. 如果请您推荐,不知您是否在合理可行的转换路径方面有一些建议?3. 由于我不是CS方面的专业背景,转码过程中,为达到一些工作面试的门槛,是否有哪些证书是需要考取的? 由于对于计算机相关行业的情况缺乏了解,有些想法肯定很不成熟甚至很幼稚,对此感到抱歉!如您能在方便的时候,提供些许建议,我将不甚感激~ 谢谢您提供联系方式,祝您心情愉快!

    我的回复:

    Hi xxxx

    很高兴收到你的邮件,我也没有太多的经验和能力,尽可能的按照我的经验回复你,如果有不妥的地方还请见谅:

    1. 我之前完整写过一篇博客介绍我转行程序的经历,https://github.com/yihong0618/gitblog/issues/186 其中一些,和我一个我给网友的回复,你可以参考
    2. 短时间内完成转码是有一些可能的,不过这个因人而异,程序是有门槛的,每个人夸过这个门槛付出的时间和精力都不同,但这个门槛无论如何都需要跨过,这个有些像当兵新兵训练那三个月,都要经历的
    3. 我不知道你在研究生期间是否跨过了这个坎,如果过去了,你现在需要做的无非是补基础,刷题,学习需要的语言和一些框架,对你来说不难的,我敬仰的云风写过一篇《程序的门槛》 十几年了仍然适用。https://blog.codingnow.com/2006/08/aiaea.html 推荐下
    4. 关于路径,我觉得与其说是转码,不如说是让自己会编程,如果发现不喜欢不合适就继续自己的工作,否则很可能从一个坑跳到另一个坑吧?
    5. 我不知道你现在的工作是否涉及编程,我理解的工科专业都需要一定的编程基础,比如建筑机械 CAD 之类的,你可以从你身边的工具看起,很可能 GitHub 上就有替代品,从中学习可能会快一些。当然现在 B 站很多培训班的课程,找一个看看,真正的工程比他们复杂些,但是能管中窥豹的。
    6. 你不去日本或者国企的话不需要考任何证,出国的话可能需要考雅思或托福,这些跟程序看似没关但其实关系非常大的证件

    最后,祝好。一个挺俗的话我觉得放在编程这里挺合适的

    如果想做,不如从今天开始写第一行代码。

    print("Good Luck")
    

    伊洪 best wish 2022.07.01

    ]]>
    2020-09-13T14:12:47+00:00
    https://github.com/yihong0618/gitblog/issues/185普通人和天才之间的巨大鸿沟2024-04-27T09:39:19.423186+00:00每次看这个人的 GitHub 都会感叹下。有些人或许是付出努力或者加上热爱是有可能能追上一点点的,而面对这样的人也只有感概叹息加上敬佩的份儿。


    不过也要感谢这个时代,让我有机会窥探到天才是什么样子,不用在书本里,电视剧里。通过代码就能看出来是真正的天才。 那么我又有什么用呢? 有些讨厌诸如,tql,内卷,太菜了这些词。更喜欢默默做事,把自己有限的能力做好一点点,也就罢了。


    倒是挺庆幸没生在那个时代,也没生在朝鲜。慢慢的也不再愤怒,也不想去跟大多数人表达自己的真实想法。


    不知所云,权当碎碎念。

    ]]>
    2020-09-08T12:42:22+00:00
    https://github.com/yihong0618/gitblog/issues/184月跑 250 km计划2024-04-27T09:39:19.519155+00:00今天是九月一号,理论上开学的第一天。一个月跑250km以上是我8,9年前开始的一个想法了。结果8年多过去了,还只是停留在想法阶段。努力在这个月达成吧。上个月胖回去了一些,和最近放纵每天晚上跑完步喝酒也有一些关系。今年感觉马拉松是够呛了,所以还是争取多在平时跑一些。把体重也降下来,希望这个月下来体重能到140斤(稳定)。还有个团建估计要喝很多酒,是我路上的一个绊脚石。

    计划如下:

    1. 跑30天
    2. 每天10km,放松日1km-2km
    3. 一个半马(这天来一大瓶乌苏)
    4. 2天左右5km放松跑
    5. 晚上不喝啤酒,不吃乱七八糟的零食
    6. 每天在评论记录一下

    目前阶段第一天10km完成。今天是147斤。

    ]]>
    2020-09-01T13:54:18+00:00
    https://github.com/yihong0618/gitblog/issues/1822020年八月总结九月月展望2024-04-27T09:39:19.625183+00:00八月这么快的过去了

    还是做了些事儿的

    • 把跑步个人网站彻底完善了
    • 开坑了个新项目(虽然才写了一点)
    • 不怎么玩微博了,完全转到了推
    • 把这个博客完全转成了GitHub Action 并且开源了,还收到了一些star
    • 家庭更和睦了些,虽然依然有些小矛盾
    • 跑了150km,跑了个20km,跑步心率下降了些
    • 编程进步了一些
    • 背了点儿日语单词
    • 在推上认识了几个新朋友

    还是有太多事儿没做的

    • 好久没认真看书了
    • 游戏依然没玩,每天都告诉自己多玩会儿游戏,结果要么编程,要么刷推或是B站
    • MIT的公开课
    • 日语
    • 没瘦下来

    希望9月这个开学的月份

    • 背日语单词(初级下)
    • 认真读一本编程书(暂定《DDIA》),看一本社科学的书,看些小说
    • 晚上多打打游戏
    • 250km
    • 尝试开坑健身吧,公司免费的卡还没用过
    ]]>
    2020-08-31T02:28:04+00:00
    https://github.com/yihong0618/gitblog/issues/181学习生活上的计划2024-04-27T09:39:19.735444+00:00今年学习生活上的计划

    • 背标日初级下的单词
    • 月跑量突破250 km
    • 瘦到130斤
    • 年底考个日语 3 级
    ]]>
    2020-08-29T11:34:52+00:00
    https://github.com/yihong0618/gitblog/issues/180程序上新的计划2024-04-27T09:39:19.831939+00:00需要列个list了

    • 完善 gitblog 的 action 让用户更少更改
    • 给 gitblog 这个增加todo list 功能(这个就是测试)
    • 给 running page 增加排序
    • 完善 runtastic 增加一个参数
    • 尝试搞定 vscode-leetcode 的cn第三方登陆
    • 研究自动截图发邮件功能(工作上)
    • 继续给大连咖啡做贡献
    • 把 running page 变得更通用(自动生成的js可以用gpx生成)
    • 搞定 gcores 日历
    • 学点底层
    ]]>
    2020-08-28T07:19:51+00:00
    https://github.com/yihong0618/gitblog/issues/179眼见何事,情系何处,身在何方,心思何人2024-04-27T09:39:19.916944+00:00突然想到了好多年以前推特的中文文案,写的真好。看的出是想在大陆有些作为的,可是好多事儿往往事与愿违。推特被封禁10年了吧,这十年也发生了太多的变化。 image

    也不知道10年以后会怎样,但好多事情真的没法预测。 就像10年前,我还在上着一所垃圾大学。我还不认识现在的老婆。未来还不知道会发生什么。

    10年后呢? 我41岁,应该站在人生的正中央(如果我能活过80的话) 到那个时候,这篇文章还在么?我还有打开这篇文章读一读的心境么?推特还在么?GitHub还在么?

    想起王兴那句话

    我不祝你一帆风顺,我祝你乘风破浪。

    也送个从今天起下一个10年的自己

    ]]>
    2020-08-26T01:18:55+00:00
    https://github.com/yihong0618/gitblog/issues/178程序员跑步指南2024-04-27T09:39:20.000172+00:002021.03.17 更新,距离写这篇半年过去了,running_page 也开源半年了,认识了不少跑步的朋友,推友,程序员,有些还成了现实中的朋友,今天决定把这篇文章完善一下,记录一下心得,能帮助到想跑步的朋友就更好了。

    程序员跑步的优势和劣势

    1. [优势] 能更好的知道数据的重要性,通过自己的代码,整理分析或展示自己的跑步数据
    2. [劣势] 相对较长的上班时间,因为 996 的原因,可能无法规律的跑步

    跑步能带来什么

    1. 对无聊的忍耐能力
    2. 在现在这个时代潮水般信息涌来,难得的独处时间。无论是跑步,游泳,爬山或是其它的方式,这30分钟到2个小时完全属于你自己,不用刷微博推特,只有耳机里传来的音乐(电台)或是呼吸声,和自己对话
    3. 相对健康的身体,程序员每天面对996和巨大的压力,一个相对好的心肺功能,是对自己,对家人的一个更好的期许
    4. 长距离后身心愉悦,突破自己的快感
    5. 慢慢关注自己的配速, PB, 之后心态会变好很多,长跑的人更多的都是和自己比,用流行的话说就是“不那么卷”

    跑步不能带来什么

    1. 减肥,跑起来并不能让我们很快瘦下来,更重要的是饮食。确实大体重跑步会带来一定程度的效果,但是对膝盖的伤害也相对大,一定要科学
    2. 就像去西藏并不能洗涤心灵一样,马拉松也不会让我们有脱胎换骨的变化。近些年马拉松热尤其是一些互联网上的大佬也开始跑,大家仿佛都焦虑起来,不跑个马拉松觉得少了点什么一样

    如何开始跑步

    1. 选择个 App 记录自己,也方便管理数据
    2. 跑起来,有条件的尽量选择户外不要选择跑步机
    3. 前期尽量每天坚持,让自己身体和心理适应跑步的习惯
    4. 等到能跑 5km,左右开始研究购买一双好的跑步鞋,学会做好准备运动和伸展运动保护自己的膝盖
    5. 尽量管理自己的数据,不光能给自己动力,还能防止软件停止运营或是下架数据丢失的风险

    如何坚持跑步

    1. 量力而行,别受伤,科学的训练加上一双好鞋,良好的热身习惯
    2. 循序渐进,我的经验是长距离开始时每次最多加 2km 比较好 如: 6km -> 8km ->10km -> 12km -> 15km -> 18km ->21km, 等到有半马水平的时候,就可以按照自身情况增加了
    3. 如果目标是马拉松的话,我的经验是(不一定适合所有人),能跑 10km 比较轻松的完成就可以挑战半马了,能跑 30km 之后就可以考虑报名马拉松了(如果基础不错 20km 也可以)
    4. 尽量原谅自己,对于爱好者来说,跑步只是生活的一部分,坚持不下来其实没什么。想跑的时候重新跑起来就好了

    关于跑步的书籍

    关于跑步的一些 repo

    • running_page -- Make your own running home page
    • GpxTrackPoster -- Create a visually appealing poster from your GPX tracks
    • strava-datasource -- Strava datasource for Grafana dashboard
    • derive -- Generate personal heatmap from GPX/TCX/FIT/IGC data
    • elevate -- Browser extension for strava

    跑步软件总结

    软件名称 优点 缺点
    strava 支持运动种类多,开放api, 数据粒度很细,用户群较大,中国区支持,数据导出相对容易 很多功能需要订阅会员,运动手表支持一般
    Nike Run Club 完全免费,手表支持很好,数据稳定,UI非常漂亮,中国区支持大部分功能 数据统计做的相对一般,数据导出相对麻烦
    Runtastic 社区数据做的都很好,界面漂亮,手表支持很好,运动总类多 国区下架,数据导出导入相对麻烦
    garmin 数据精准度高,支持数据导入导出 国区和其它用的两套账号管理会带来麻烦
    咕咚,悦跑圈,keep... 国内软件目前没下架风险 不支持数据导出,做了一大堆无用的社交功能

    我的选择: 我用了 8 年多的 Runtastic 后来国区下架,在其它区下载有gps偏移的问题,转到了Nike Run Club, 但我会备份一份数据上传到strava, 因为 strava 开放 api 比较方便 DIY 我个人页面用的也是 strava 的数据。在国区,我比较推荐Nike Run Club

    还需要知道一些小知识

    1. 数据格式:gpx(类似xml用于gps数据交换的格式),geojson(用于地图展示的数据格式)
    2. 配速,心率,步频
    3. 如何购买一双适合自己的跑鞋(知乎或是其它网站很容易搜到)
    4. 如何保护膝盖
    5. LSD, 间歇跑

    推荐个程序员推友跑步乱谈系列

    ]]>
    2020-08-23T14:23:52+00:00
    https://github.com/yihong0618/gitblog/issues/177这个博客开源了2024-04-27T09:39:20.102828+00:00因为一篇去年非常触动我的文章--People Die, but Long Live GitHub 我决定不再用纸笔写日记,进而全部转到 GitHub 上。如果你看到这个,这个其实不是那些大牛的技术博客,而是单纯的碎碎念偶尔认真的记录自己而已。


    虽然如此但也经历了几个阶段

    1. 纯粹的写issue
    2. 写完issue后添加目录到README
    3. 改成webhook用flask部署个callback 每次写完issue自动生成新的 README
    4. 最近算是学会了一些 GitHub Actions,现在只需要写 issue 打 label 就好了,其余完全不用管。核心代码在 main.py
    5. 支持了 RSS

    如果你也想自己写issue博客,并自动生成README,你可以参考如下步骤

    1. fork this repo (or just copy the file whatever)
    2. change GitHub secret
    3. write issue and add label
    4. please delete all files in BACKUP folder(2020.11.26 add)
    5. 别忘了在 settings 里打开 Actions 读写的权限

    关于如何生成 GitHub secret token

    image

    1. 这里 点击 generate new token把需要的点上
    2. 在你的repo 中更改 secret 中把刚生成的token设置进去 image
    3. 更改workflow中的token name 换成你自己的(不要忘了secrets 点) image

    需要把 env 中的 name 和 email 改成自己的 image

    ]]>
    2020-08-20T00:36:18+00:00
    https://github.com/yihong0618/gitblog/issues/176心情不是很好的。2024-04-27T09:39:20.199276+00:00总之,这的环境还是不错的,我也有充分的自由。 但是。。。 目前我的能力已经远大于现在的收入了。

    总之就是有些郁闷。 得准备跳槽的事儿了。

    日语也开始学了,但我为什么这么倒霉。

    ]]>
    2020-08-19T06:35:10+00:00
    https://github.com/yihong0618/gitblog/issues/175跑步网站做完了,昨天跑了20km, 下一个做什么呢?2024-04-27T09:39:20.292428+00:00花了2个多月,终于做完了。还是挺有自豪感的。真开心。


    仿佛一下子蓝调了,不知道接下要做什么。 哎。

    日语真的该提上日程了。

    不自律就永远不可能达到自由。

    ]]>
    2020-08-17T06:37:55+00:00
    https://github.com/yihong0618/gitblog/issues/174自律,悔恨,逝去的日子,成长2024-04-27T09:39:20.388285+00:00只有自律才能得到自由。

    ]]>
    2020-08-12T14:19:18+00:00
    https://github.com/yihong0618/gitblog/issues/173番茄工作法,焦虑,咖啡,喘不上气,生活2024-04-27T09:39:20.479713+00:00不知道为什么,今天如此焦虑。 什么都不想干,在星巴克里,一遍一遍刷着社交网络。也不知道究竟会得到什么。 时间来到了8月10日。2020年已经过去很久了。


    想着自己还有好多计划。想着自己的生活过的还挺乱,想着自己失去了好多东西,想着自己本来可能有的可能性。想着自己的工资还不足以支撑家庭。希望之后能涨一些。


    想摆脱社交网络。 想好好把日语学了。 想六块腹肌。 想继续把编程那个搞好。 想跑马拉松。


    今天看到句话,真正大牛不用番茄工作法,他们有天生的专注力,我突然想反过来理解这句话,我不是什么大牛,所以更需要啊。 不如就从今天的番茄工作法开始。 从今天开始, 从这一刻开始吧


    这些天都在星巴克办公,每天花了太长时间刷手机了。这个星巴克还没有厕所。。。不知道怎么办,一会儿很可能我憋不住了,算了憋不住就回家吧。


    忍住打开推特,微博的手。


    多列个计划。一个真理是,计划永远比不计划强。


    今天的计划是什么呢?

    1. 把docker加密写完。
    2. 把N5的语法总结下
    3. 重新部署docker

    说说生活

    • 前段时间又生气了。
    • 但我够幸福的了
    • 十一跟爸爸不怎么亲,倒是无所谓
    • 应该搞好和妈妈的关系
    • 《三十而已》虽然是个烂电视剧,但是应该怎么拥有一个幸福的家庭,是我现在应该思考的。
    • 怎么让自己不生气呢?学会吃亏,学会控制自己的情绪

    说说焦虑

    • 每天摄入太多无用的消息了。
    • 把这些时间利用起来,其实能学到好多东西的
    • 编程可以精进,日语也能刷起来
    • 电视剧看起来,书也读起来
    • 刷来刷去仿佛一个巨大的漩涡,把自己吸进去,就想打这篇文章的时候,无数次想打开推特。

    再说番茄工作法

    1. 自己真的好久之前就开始用了,算是帮助我考研
    2. 这次还要用起来
    3. 哪怕是用番茄工作法保证自己不刷社交网络也好啊
    4. 其实可以用来学日语
    ]]>
    2020-08-10T04:32:57+00:00
    https://github.com/yihong0618/gitblog/issues/172迷茫,又一次重新学日语2024-04-27T09:39:20.577097+00:00每一次对生活,对未来迷茫,都会选择学日语。 似乎每一次都会带来点好运气。 希望这次也一样,不同的是,这次希望自己坚持下去。


    1. 先不管什么计划,学起来,计划也就有了
    2. 还是新版标准日本语,从下册开始。
    3. 背课文吧
    ]]>
    2020-08-04T06:40:28+00:00
    https://github.com/yihong0618/gitblog/issues/1712020年七月总结八月展望2024-04-27T09:39:20.680363+00:00好久没写总结类的东西了,今天是八月一号,建军节。

    今年还剩下五个月了,而似乎,一切还没有开始。 想想过去的七月我做了些什么呢?

    1. 跑了200km
    2. 一斤没瘦反而胖了
    3. 终于把自己的个人网站搞定了,跑步数据展示搞定了,实现了好久以来的一个想法
    4. 终于把runtastic改成python版本搞定了
    5. 家庭和睦了些
    6. 心态上改变了一些
    7. 公司及疫情原因在家办公了一个月
    8. 英语进步了一些
    9. 开坑《血源》,开坑《SHENZHEN IO》

    想想这个7月我没做什么呢?

    1. 没继续做饭了
    2. 日语依然没学
    3. 没鼓起勇气提涨薪
    4. 没锻炼腹肌,没坚持减肥
    5. 没怎么读书
    6. 没看电影刷剧
    7. 还是沉迷社交网络
    8. 还是因为琐事生气

    八月的展望呢?

    1. 多总结
    2. 稳定到140
    3. 开坑日语
    4. 开坑一个编程的项目
    5. 开坑一个期待很久的编程书
    ]]>
    2020-08-01T07:27:10+00:00
    https://github.com/yihong0618/gitblog/issues/170心态发生了好多转变2024-04-27T09:39:20.768818+00:00未来的不确定

    日子在不停的流逝着。在家办公一段时间了。 也不知道这种日子什么时候是头儿。总之,有些东西永远回不去了。

    ]]>
    2020-07-22T01:27:54+00:00
    https://github.com/yihong0618/gitblog/issues/169既然注定孤独,就孤独吧2024-04-27T09:39:20.851126+00:00心态变化了好多,想了很多事情,既然无所谓的交流无所谓的分享没有必要,那么就没必要吧。 本身也不是一个层次的人, 把事情尽量做好就好了。 写到这儿

    ]]>
    2020-07-11T14:22:02+00:00
    https://github.com/yihong0618/gitblog/issues/168近期程序上的安排2024-04-27T09:39:20.935126+00:00好多东西有点像无头的苍蝇一样,是时候安排一个计划了。

    • 给nrc pr增加 坡度和心率,修改时区问题
    • 增加自动上传strava的action
    • 优化地图选项
    • 把activities的转成react,继续学习react
    • 给activities提pr
    • 把gitblog换成github action
    • 把博客彻底变成自己的
    • 继续给vscode-leetcode提交代码
    • 总结跑步的api,写一篇博客
    ]]>
    2020-07-06T03:02:17+00:00
    https://github.com/yihong0618/gitblog/issues/167把事情做完,做一件事,爬也要爬完2024-04-27T09:39:21.030633+00:00
  • 一件事
  • 坚持
  • 完成
  • ]]>
    2020-06-23T04:54:45+00:00
    https://github.com/yihong0618/gitblog/issues/166要怎样才能过好一生?2024-04-27T09:39:21.120894+00:00不知道。 放空自己。 少一些欲望,做一个幸福的人。

    ]]>
    2020-06-14T14:44:36+00:00
    https://github.com/yihong0618/gitblog/issues/165最近在家,状态很不好。2024-04-27T09:39:21.201702+00:00心情不好。

    ]]>
    2020-06-09T01:41:40+00:00
    https://github.com/yihong0618/gitblog/issues/164跑步数据找到同步方法了2024-04-27T09:39:21.286527+00:00真的好复杂 同时今天敲定,明天开始用nike+ fuck fuck fuck,傻逼gfw,傻逼愚民政策

    ]]>
    2020-06-06T14:30:59+00:00
    https://github.com/yihong0618/gitblog/issues/162振作起来,快乐生活2024-04-27T09:39:21.383142+00:00RT

    ]]>
    2020-06-03T05:04:30+00:00
    https://github.com/yihong0618/gitblog/issues/161认真工作2024-04-27T09:39:21.479062+00:00RT

    ]]>
    2020-05-29T05:49:08+00:00
    https://github.com/yihong0618/gitblog/issues/160新的计划,新的开始,戒掉社交网络2024-04-27T09:39:21.707588+00:00受够了这样什么事儿都拖着。 从这一刻开始,从下一刻放弃。


    上个月开始减肥开始了(又一次) 这个月开始严格限制自己社交网络时间吧。今年开始 哦对,今天开始学日语了。晚上有课。 也不多定计划了,一点一点来吧。


    计划如下:

    1. 一周上一次微博
    2. 一周开一次朋友圈
    3. 一周看一次推特
    ]]>
    2020-05-29T05:37:49+00:00
    https://github.com/yihong0618/gitblog/issues/159新的计划,新的开始,学日语2024-04-27T09:39:21.797062+00:00RT

    ]]>
    2020-05-29T05:34:40+00:00
    https://github.com/yihong0618/gitblog/issues/1572024-04-27T09:39:21.895114+00:00Sent from PPHub

    ]]>
    2020-05-16T12:27:23+00:00
    https://github.com/yihong0618/gitblog/issues/156过日子2024-04-27T09:39:21.982119+00:00这几天心情很差。 生活过得挺没意思的。 也不知道自己该怎么办。 不喜欢那样的感觉。 其实什么都无所谓了我现在。 什么结果也都能接受。 想得到心灵上的平静,不如把自己变好。 别的交给时间。

    ]]>
    2020-05-14T01:59:41+00:00
    https://github.com/yihong0618/gitblog/issues/154新的计划,新的开始,再一次减肥。2024-04-27T09:39:22.075771+00:00又开始列新的减肥计划了。

    今天上体重秤称了一下,165,还好,算是可以接受。没惨到上次那样。

    • 今天是5月9日,五月结束有可能能到157
    • 六月结束能到148---2.19.6.14达成。
    • 七月结束能到140(开始练腹肌)
    • 八月结束能到135
    • 九月结束能到130
    • 10月结束能到127
    • 保持在127(争取有腹肌)

    具体计划如下

    1. 戒掉任何碳酸饮料,里程碑阶段奖励自己一瓶啤酒
    2. 每天中午走半小时
    3. 每天晚上坚持跑步,风雨无阻。
    4. 每周一个长距离5km,6km,7km,8km,10km,12km,10km,13km,15km,10km,15km,20km
    5. 5月每天3km, 6月每天4-5km,之后看情况
    6. 晚饭绝对少吃。午饭也少吃,早饭多吃些
    7. 争取年底再跑个全马,一切顺利的前提下

    之后的想法

    1. 不想再被瞧不起了,一定要自律,要保持
    2. 每天坚持跑步,有第一次就有第二次
    3. 还是那句话,在这一刻开始,在下一刻放弃
    ]]>
    2020-05-09T13:27:54+00:00
    https://github.com/yihong0618/gitblog/issues/153终于上班了,开心2024-04-27T09:39:22.173605+00:00真的讨厌在家。 像个木偶一样。

    ]]>
    2020-05-06T00:21:10+00:00
    https://github.com/yihong0618/gitblog/issues/1522020四月总结五月计划2024-04-27T09:39:22.251809+00:00醒过来

    Sent from PPHub

    ]]>
    2020-05-03T11:52:35+00:00
    https://github.com/yihong0618/gitblog/issues/151四月过去了,五月来了2024-04-27T09:39:22.349662+00:00五月病 柏林来了

    Sent from PPHub

    ]]>
    2020-05-01T23:34:08+00:00
    https://github.com/yihong0618/gitblog/issues/150第一次团建2024-04-27T09:39:22.442602+00:00喝了不少,收获不多

    ]]>
    2020-04-25T09:55:56+00:00
    https://github.com/yihong0618/gitblog/issues/148做减法2024-04-27T09:39:22.529837+00:00想要的太多却总在原地徘徊。 像松鼠一样收集了好多东西,却不知道从何看起。 有些差距是永远无法弥补的 但不跑起来就会被甩的更大 我不快乐,至少现在,我不快乐 多做做减肥,减肥,减少要学的东西,减少刷社交网络的时间,减少无用的愤怒与叹息 一步一步走 一步一步来 一斤一斤的减 好多事情,对于我来说,有第一次就有第二次 好多事情,对于我来说,懈怠了就意味着回不来了 好多事情,对于我来说,只是缺少一个开始 失落的情绪 好久没打开的日记 有个计划 永远比没有计划要好的多 疫情还在,世界不知道会如何发展 有些不懂,好多人为什么如此愤怒,如此功利 是我什么都不想么? 还是什么 写到这,虽然迷茫还在,但总要有些目标 写到这,明天还会继续

    ]]>
    2020-04-16T01:34:42+00:00
    https://github.com/yihong0618/gitblog/issues/147人和人之家的差距太大了2024-04-27T09:39:22.625936+00:00看到了韩寒跑5km真的是触动。

    ]]>
    2020-04-13T01:53:52+00:00
    https://github.com/yihong0618/gitblog/issues/146一口气看完一本书的感觉好爽2024-04-27T09:39:22.718097+00:00Sent from PPHub

    ]]>
    2020-04-04T14:37:32+00:00
    https://github.com/yihong0618/gitblog/issues/1453月总结及4月展望2024-04-27T09:39:22.814241+00:003月总结
    1. 3月没怎么跑步,似乎彻底停了下来
    2. 体重在无休止的向上增长着,有些烦躁
    3. 日语多少开始学了,希望是每天,别停下
    4. 3月整个月都没怎么编程
    5. 3月份也没什么工作
    6. 3月份多少开始看书,刷美剧,看电影,打游戏了
    7. 发现,无论是否做到,有计划总比没计划强。
    8. 开始学习网络知识了,怎么的也得算是没白来思科一场
    9. 还做了3次饭,以后要多做饭

    四月展望

    1. 日语继续坚持
    2. 网络知识继续坚持
    3. 跑步重新开始
    4. 继续做饭
    5. 减点儿体重
    ]]>
    2020-04-01T01:17:08+00:00
    https://github.com/yihong0618/gitblog/issues/144新的一周,新的一个月2024-04-27T09:39:22.911341+00:00想到什么就写点什么? 最近没怎么写代码,工作貌似也没什么事儿。 下个月就能转正了, 想要变强。 日语还是得学。 一会儿好好看看 先写到这儿

    ]]>
    2020-03-30T00:40:55+00:00
    https://github.com/yihong0618/gitblog/issues/143减肥2024-04-27T09:39:23.001964+00:00开坑

    Sent from PPHub

    ]]>
    2020-03-28T13:31:23+00:00
    https://github.com/yihong0618/gitblog/issues/142删了微博2024-04-27T09:39:23.138760+00:00第一天

    Sent from PPHub

    ]]>
    2020-03-21T15:05:57+00:00
    https://github.com/yihong0618/gitblog/issues/141日语学习2024-04-27T09:39:23.221092+00:00发现了一个播客,日语

    ]]>
    2020-03-20T06:22:59+00:00
    https://github.com/yihong0618/gitblog/issues/140来了。2024-04-27T09:39:23.316270+00:0031岁的list
    • 程序上的list
    • ccna ccne ccnp
    • 日语二级
    • 英语精进

    如果只需要完成1个就给自己60分,全完成是100分 这就是2020

    ]]>
    2020-03-18T07:23:11+00:00
    https://github.com/yihong0618/gitblog/issues/139迁移测试2024-04-27T09:39:23.406084+00:00testttttttttt

    ]]>
    2020-03-17T04:07:20+00:00
    https://github.com/yihong0618/gitblog/issues/135美股熔断了2024-04-27T09:39:23.508408+00:00跟我貌似关系不大。 但好像又息息相关 感觉自己活的好悲哀啊 该静下心来学习了

    ]]>
    2020-03-16T14:25:11+00:00
    https://github.com/yihong0618/gitblog/issues/13431岁,加法与减法2024-04-27T09:39:23.609849+00:0031岁就这么来了,曾经还觉得好远好远。 31岁多做些减法,不必要的话,不必要的爱好,不必要的人 31岁少做些加法,爱好上。

    ]]>
    2020-03-15T12:11:39+00:00
    https://github.com/yihong0618/gitblog/issues/133还有一个小时31岁了2024-04-27T09:39:23.708922+00:00抑郁

    Sent from PPHub

    ]]>
    2020-03-14T14:30:42+00:00
    https://github.com/yihong0618/gitblog/issues/132不乐观的31岁2024-04-27T09:39:23.801686+00:00听着唐顿讲的《标准日本语》心里想着一些事情。 一些说了好多遍的事情。 每天看着一群不会独立思考又以为自己特别了不起的人。 关键是他们还是你的朋友亲人。 我错了?就那么难么。 我党洗脑真的成功。 我才是少数人。 本来以为疫情都快过去了,结果国外却爆发了, 一群傻逼还在叫好。 一群傻逼在庆祝胜利。 一群傻逼逢中必黑。 一群傻逼在逢美必黑。 中文语境真的是没法用了,学日语,学英语吧 先写到这儿

    ]]>
    2020-03-13T00:28:52+00:00
    https://github.com/yihong0618/gitblog/issues/131挺没劲的2024-04-27T09:39:23.894791+00:00这些天过的不开心 自己好多的习惯都停掉了 还得被别人指手画脚 讨厌


    多学习,多写代码,少关心那些有的没的的东西 像飞哥一样,少做有的没的交流

    少说话,管住自己的嘴。

    ]]>
    2020-03-10T03:27:16+00:00
    https://github.com/yihong0618/gitblog/issues/130快31岁了,又胖了2024-04-27T09:39:23.983060+00:00这周末31岁生日了。 一些事该提上日程了

    ]]>
    2020-03-09T01:36:56+00:00
    https://github.com/yihong0618/gitblog/issues/129一下午刷了一遍《恶意》2024-04-27T09:39:24.083961+00:00真是好书啊,10年前看的,剧情都忘光了,但感觉仍然在。

    Sent from PPHub

    ]]>
    2020-03-08T13:41:08+00:00
    https://github.com/yihong0618/gitblog/issues/128复工第一天2024-04-27T09:39:24.172820+00:00今天终于回办公室上班了,看起来现在只有我一个人。 最近真的好堕落,好多习惯停住了,每天不知道自己究竟在干什么? 浑浑噩噩过了一天又一天 虽然还有好多的活要做,可就是提不起精神来干。 总是告诉自己要努力工作,努力编程,努力学习日语,可是到真做的时候一下子就不知道该干嘛了。 哎。


    自己马上也31岁了。 过了太久了。

    ]]>
    2020-03-04T01:10:12+00:00
    https://github.com/yihong0618/gitblog/issues/127二月总结及三月展望2024-04-27T09:39:24.259480+00:00
  • 二月
    1. 二月过的太操蛋了
    2. 想着3月不能这样,可还是做不到
    3. 每天刷着乱七八糟的东西
    4. 静不下心来
    5. 深呼吸

    • 三月
    1. 学日语
    2. 番茄工作法
    3. 深呼吸
    4. 认真工作
    5. 恢复减肥跑步
    ]]>
    2020-03-02T02:25:35+00:00
    https://github.com/yihong0618/gitblog/issues/126从今天起2024-04-27T09:39:24.540483+00:00
  • 不在微博发表任何言论
  • 不在推特发表任何言论
  • 不在不信任的朋友面前发表任何言论
  • 不在大多数人面前发表任何言论
  • 不发表任何缩影方面的东西
  • 学日语
  • 精进英语
  • 重新减肥
  • 重新跑起来
  • 能不上微博推特就不上
  • ]]>
    2020-03-01T05:01:06+00:00
    https://github.com/yihong0618/gitblog/issues/125要怎么摆脱啊2024-04-27T09:39:24.634379+00:00rt

    Sent from PPHub

    ]]>
    2020-02-28T23:32:17+00:00
    https://github.com/yihong0618/gitblog/issues/124闭嘴2024-04-27T09:39:24.725066+00:00这些天思考了很多问题。

    尤其是跟某些傻逼完全无法交流,其实最好的方式只有闭嘴。 保护家人。

    ]]>
    2020-02-27T07:42:56+00:00
    https://github.com/yihong0618/gitblog/issues/123新的开始2024-04-27T09:39:24.819267+00:00
  • 又一次删掉了微博
  • 希望这次能坚持的久一点
  • 每天不断刷新着信息却有在不断焦虑
  • 工作的事情又没有头绪
  • 不知道自己该怎么做
  • 一边拉屎一边打这篇文章
  • 日语七月份就要考试,而现在二月份就快过去了
  • 你肯为你的梦想付出多少呢
  • 静下来想一想
  • 在大环境如此下我的愤怒伤心恐惧焦虑又能改变什么呢
  • 但我应该能改变自己
  • 不要和任何人表达自己的观点
  • 想到什么就写什么
  • 能马上做的事情就不要拖
  • 等待
  • 日语该怎么办
  • 新东方唐盾吧
  • ]]>
    2020-02-24T00:45:42+00:00
    https://github.com/yihong0618/gitblog/issues/122今天看了个电影《入侵脑细胞》2024-04-27T09:39:24.929829+00:00发现还不错啊

    ]]>
    2020-02-23T13:27:28+00:00
    https://github.com/yihong0618/gitblog/issues/121不能再这样下去了2024-04-27T09:39:25.027042+00:00
  • 刷微博
  • 刷一切
  • 暴食
  • 不自律
  • 不努力工作
  • 一堆计划在收藏夹
  • 不整洁
  • 拖延
  • 不陪儿子
  • 逃避
  • 想要的太多
  • 不学日语
  • ]]>
    2020-02-22T07:43:28+00:00
    https://github.com/yihong0618/gitblog/issues/118凡事有交代 件件有着落 事事有回音2024-04-27T09:39:25.128499+00:00用一些时间来理解这句话

    ]]>
    2020-02-20T00:35:12+00:00
    https://github.com/yihong0618/gitblog/issues/116是时候开一个新坑了,跑步数据展示?2024-04-27T09:39:25.227056+00:002020.2.19. 用go写? 全栈? 前后端分离?

    ]]>
    2020-02-19T01:11:03+00:00
    https://github.com/yihong0618/gitblog/issues/115vscode-gcores开发笔记32024-04-27T09:39:25.323669+00:00发布了。得了大概100个赞,但没有太多兴奋的感觉

    ]]>
    2020-02-18T00:25:19+00:00
    https://github.com/yihong0618/gitblog/issues/114不刷,冷静下来。2024-04-27T09:39:25.417637+00:00疫情影响下,心态也不断在发生变化。 许多习惯都没了。
    1. 疫情加上大风,有些日子没有好好认真的跑步了
    2. 胖了不少,真希望能快点上班
    3. 每天背日语单词的习惯还在但是也是断断续续的
    4. 想想自己能做什么

    从不刷微博开始

    ]]>
    2020-02-17T00:51:06+00:00
    https://github.com/yihong0618/gitblog/issues/113在家办公2024-04-27T09:39:25.498330+00:00题目与主题无关。

    1. 心情不好,今天又多睡了会儿
    2. 时间不够
    3. 不喜欢这样的生活,想逃离
    ]]>
    2020-02-14T01:09:41+00:00
    https://github.com/yihong0618/gitblog/issues/112少说,多做,2024-04-27T09:39:25.589651+00:00
  • 记住这句话
  • 理解这句话
  • 事件这句话
  • ]]>
    2020-02-13T15:02:59+00:00
    https://github.com/yihong0618/gitblog/issues/111vscode-gcores 开发笔记 22024-04-27T09:39:25.685353+00:00昨天终于把这个项目 public 并上线了。目前还没有自然流量。。。 一些心得:

    1. 想到就去做
    2. 大部分想法是可以实现的
    3. 把困难的放在后面,没准开发的过程中就想到怎么做了
    4. 打开项目就要想着优化
    5. 什么事儿拖一拖就没有了
    6. 今晚写文章吧
    ]]>
    2020-02-11T07:49:11+00:00
    https://github.com/yihong0618/gitblog/issues/110看到一张图,说点什么。2024-04-27T09:39:25.768770+00:00image

    不知道为什么,突然看到这张图心理挺不是滋味的。


    1. 这些天过的不好,总是忍不住不停的刷手机,不停的焦虑。工作也没状态,总是不停的刷疫情的消息,也不知道自己该怎么做。
    2. 又胖了,也不知道什么时候才会过去。
    3. 想从不刷手机开始,又管不住自己的手。
    4. 日语学习依然没有开始。
    5. 讨厌

    一会儿深呼吸,喝杯咖啡

    ]]>
    2020-02-08T05:41:28+00:00
    https://github.com/yihong0618/gitblog/issues/109焦虑2024-04-27T09:39:25.869433+00:00
  • 从这个过年开始,又陷入了无尽的焦虑之中
  • vscode-gcore写完了,也不准备更新再多的功能了,得疫情过去就更新吧
  • 学日语
  • 深呼吸
  • 这些我改变不了的
  • ]]>
    2020-02-03T07:00:38+00:00
    https://github.com/yihong0618/gitblog/issues/1082020 年 1 月总结 2 月展望就一个,这个操蛋的肺炎快点过去2024-04-27T09:39:25.955961+00:00
  • 这个月跑了100km
  • 胖了10多斤,草。
  • 继续给开源项目贡献代码
  • 写了一个vscode-gcores的项目,还差一点点完成
  • 过年,狂胖,不能再这样下去了
  • 操蛋的肺炎,本来正常的生活都被打断了
  • 又要减肥了,今年但愿能瘦到130斤吧
  • 反正至少不能再胖下去了
  • 希望一切都回归正轨
  • 看了《东京男子图鉴》
  • 想到什么说什么吧
  • 跑步回来刷《东京女子图鉴》
  • 明天得工作了
  • 写到这儿先
  • ]]>
    2020-02-01T12:14:56+00:00
    https://github.com/yihong0618/gitblog/issues/107刷完了《东京男子图鉴》2024-04-27T09:39:26.038754+00:00在不断的问自己到底追求的是什么呢

    ]]>
    2020-01-28T13:22:26+00:00
    https://github.com/yihong0618/gitblog/issues/106大家初二,今天不写代码2024-04-27T09:39:26.126009+00:00一会儿找个电影看,就杀人回忆吧? 今天休息下,不去写代码了。 今年这个年过的太神奇了, 真的想离开这个操蛋地方

    ]]>
    2020-01-26T11:32:16+00:00
    https://github.com/yihong0618/gitblog/issues/105过年好2024-04-27T09:39:26.213811+00:00大年三十写代码到0点。 算是一个好的开头。 大家都要顺利啊。 今年正式的开始了。 病毒没那么可怕,人才可怕

    ]]>
    2020-01-24T16:00:41+00:00
    https://github.com/yihong0618/gitblog/issues/104异步存档2024-04-27T09:39:26.313354+00:00今天算是理解了一点python的async

    ]]>
    2020-01-22T05:17:32+00:00
    https://github.com/yihong0618/gitblog/issues/103又是新的一天,一动没动写了4个小时代码2024-04-27T09:39:26.393974+00:00大部分时间在解决一个问题。 不过好在解决了,真的挺开心的。

    ]]>
    2020-01-19T16:09:55+00:00
    https://github.com/yihong0618/gitblog/issues/102vscode-gcores开发笔记12024-04-27T09:39:26.487195+00:00记录一下

    因为给 vscode-leetcode 的原因接触了一点如何写 vscode 插件,在想,为何不自己写一个,顺便锻炼一下自己JS(TS)的能力,说干就干,从第一个 vscode 的 hello world 写起,到第一个目录,到调通第一个接口,再到完成第一篇文章的 webview 渲染,优化代码,继续增加目录,完善目录,完善 markdown 解析,搞设计,再一边学习 ts 一边开发,每天都到后半夜,不知不觉 ,半个月过去了,也算有了些心得和成就,现在也算是第一个可用的版本。

    下面我在思考,是直接上线写文章还是继续开发,选择继续完善吧,其实还有好多想法,有一些技术难点,一点一点攻克吧。

    一些心得:

    • 对自己的每一行代码负责,每次打开vscode都要想着把烂代码优化一下,对未来反而是节省时间的
    • 写好文档,那是写给未来的自己的,现在有多怕麻烦未来就有多后悔,而现在写好文档和必要的注释,未来一定会感激现在的自己的。
    • 语言真的只是辅助(大部分),类型系统真香,虽然浪费了一些写代码的时间,但减少了更多 debug 的时间,是时候把 go 捡起来了
    • 合理安排好自己的开发时间,什么时候干什么?什么时候优化,哪些任务先开发,哪些可以放一放
    • 自己的项目真的非常必要,但要学会合理安排,不要和工作冲突
    ]]>
    2020-01-19T12:17:21+00:00
    https://github.com/yihong0618/gitblog/issues/101遇到棘手问题前,别慌!先google, 再仔细看2024-04-27T09:39:26.568195+00:00!!!!

    ]]>
    2020-01-14T07:39:20+00:00
    https://github.com/yihong0618/gitblog/issues/100第100篇,又到了0点2024-04-27T09:39:26.657236+00:00今天好像一直在写代码,给自己的需求不断的增加。 解决了一个小问题,一不小心又到了0点。 感觉还不错,似乎我做其它的事情也不会如此专注, 遗憾的是日语又搁浅了

    ]]>
    2020-01-12T16:07:22+00:00
    https://github.com/yihong0618/gitblog/issues/99鼠标坏了。2024-04-27T09:39:26.753945+00:00鼠标好像坏了
    • 有一点点烦躁
    • vscode-gcores缓慢的进行着
    • 日语还是没正式开始
    • 决定7月先考3级
    • 12月考2级 先这样
    ]]>
    2020-01-09T00:57:41+00:00
    https://github.com/yihong0618/gitblog/issues/982020就这么来了2024-04-27T09:39:26.845479+00:002020就这么来了。

    今天鼓起勇气称了下体重,麻痹,胖了10斤,不控制自己就白瞎努力了,这次。 目前的计划是过年前至少瘦到143。

    减重计划如下

    1. 不喝任何碳酸饮料了
    2. 晚上少吃
    3. 每天10km,周休一天
    4. 只喝黑咖啡
    5. 过完年制定新的计划再

    其余的

    1. 2020别定那么多目标,不段减少自己的追求
    2. 日语
    3. 程序上在底层精进自己

    生活上

    1. 控制情绪
    2. 少吵架

    工作上

    1. 少拖延
    2. 凡事有交代
    ]]>
    2020-01-01T12:38:06+00:00
    https://github.com/yihong0618/gitblog/issues/972019最后一天,不是总结的总结2024-04-27T09:39:26.943126+00:002019最后一天

    flat,550x550,075,f u1 突然间发现似乎应该添加2020的标签了。

    这一年的成绩

    • 这一年过的总体满意,家庭除了大吵一架还算和睦。
    • 十一健康快乐的成长着,老妈腰虽然伤了好在没出大事儿。
    • 换了新工作还算满意
    • 写了1个开源项目参与了几个开源项目,进步了不少
    • 会了JavaScript, Python得到精进,略懂golang, 这方面进步很大
    • 体重下来了,虽然现在是上升趋势,但是准备列一个计划把他降下来,总体瘦30斤吧
    • 重新跑起来了,今年跑了1300km,最好的成绩。哦,还跑了2个马拉松
    • 明年心底有两个重要的计划,不过现在还不准备说出来

    当然还有很多的不足

    • 依旧没摆脱社交网络的依赖
    • 日语,日语,日语
    • 没时间打游戏
    • 书读少了

    总之,大环境再差也要努力向上,给自己加油,2020的标签要来了。

    ]]>
    2019-12-31T00:55:10+00:00
    https://github.com/yihong0618/gitblog/issues/96累了,想休息一天2024-04-27T09:39:27.034985+00:00突然间累了, 今天好疲惫。 休息一天,不学习,看个电影,睡觉。

    ]]>
    2019-12-28T13:25:00+00:00
    https://github.com/yihong0618/gitblog/issues/95圣诞节2024-04-27T09:39:27.135731+00:00又一个圣诞节。 好像少了点什么 最近工作压力有点大 昨天又没跑步 好的习惯真的是说放弃就放弃了 昨天称了下体重,又上升了不少 距离新年还有一个月 该做些事情了。 写到这儿

    ]]>
    2019-12-25T02:37:33+00:00
    https://github.com/yihong0618/gitblog/issues/9412月差不多结束了。2024-04-27T09:39:27.237440+00:00
  • 昨天还是跑步了
  • 手表要没电了开始充电
  • 计划酝酿的差不多了,准备开始实行
  • 半年。
  • ]]>
    2019-12-22T11:44:26+00:00
    https://github.com/yihong0618/gitblog/issues/93一天天2024-04-27T09:39:27.468097+00:00两天没跑步了,闹心

    Sent from PPHub

    ]]>
    2019-12-22T11:44:23+00:00
    https://github.com/yihong0618/gitblog/issues/92郁闷2024-04-27T09:39:27.556861+00:00
  • 没搞定
  • 花了好长时间
  • 不想弄了,浪费时间
  • ]]>
    2019-12-21T15:14:31+00:00
    https://github.com/yihong0618/gitblog/issues/91最近开始忙起来了2024-04-27T09:39:27.645795+00:00
  • 想想今天先不刷题了
  • 我看看我能不能今天把任务都完成
  • 要请假么?
  • 怎么分拆代码
  • 日常学习耽误了一点,但还好
  • 无论如何,加油
  • ]]>
    2019-12-19T23:58:17+00:00
    https://github.com/yihong0618/gitblog/issues/90这几天的一些心得2024-04-27T09:39:27.734830+00:00
  • 别放弃,总有些方法和机会的,
  • 别盲目坚持,累了就出去走走,灵感不是在电脑前得到的
  • 该休息就休息
  • 别耽误家人
  • 写逻辑和debug时候先想好,这样是节省时间的方式
  • 一切的捷径最后都会浪费更多时间
  • ]]>
    2019-12-15T15:20:28+00:00
    https://github.com/yihong0618/gitblog/issues/89我他妈服了。。。2024-04-27T09:39:27.839620+00:00咋我也没想到302是成功,麻痹 node 的 request真是太难用了。

    ]]>
    2019-12-14T15:57:37+00:00
    https://github.com/yihong0618/gitblog/issues/88算法存档2024-04-27T09:39:27.936506+00:00深度优先用栈,广度优先用队列 图的广度优先和深度优先遍历(BFS和DFS)

    ]]>
    2019-12-11T01:07:02+00:00
    https://github.com/yihong0618/gitblog/issues/87媳妇生病了,心疼2024-04-27T09:39:28.025897+00:00RT. 感觉生活好难啊啊。

    ]]>
    2019-12-05T01:08:41+00:00
    https://github.com/yihong0618/gitblog/issues/86Git 存档2024-04-27T09:39:28.116139+00:00怎么修改git commit 信息

    1. git commit --amend 本地
    2. git commit --amend git push origin master --force 刚push
    3. git rebase -i HEAD~X X is the number of commits to go back Move to the line of your commit, change pick into edit, then change your commit message: git commit --amend Finish the rebase with: git rebase --continue 本地没push old
    ]]>
    2019-12-04T02:36:56+00:00
    https://github.com/yihong0618/gitblog/issues/852019年11月总结及12月计划2024-04-27T09:39:28.199462+00:002019今年剩下最后一个月了
    1. 跑步: 完成了一个梦想,北京全马完成,但之后懈怠了好多,最后都没跑到150km,应该是5月份重新跑起来以后最差的一个月了。
    2. 工作: 最大的进步应该是会了一些前端,还写了一些shell但是工作真的不忙,导致每天都会浪费一些时间成长还是有限。
    3. 日语: 单词继续背着,想起来一句话,种一颗树最好的时机应该是10年前,其次是现在。嗯,现在只差一个真正的冲动,然后从现在开始
    4. 体重: 每天晚上吃零食,喝啤酒涨了不少,有些自责
    5. 编程: 加入了每天刷题,暂且还坚持的不错,但Python365有些懈怠
    6. 赵亮来了几天,导致更懈怠了,12月计划基本没完成
    7. 生活: 每天跟媳妇上班,天很冷但依然很幸福
    8. 其它: 坚持的东西有的没的坚持着。
    9. 去了北京见了章鱼。
    10. 越来越不喜欢出去和朋友见面,不如在家看书刷微博刷题
    11. 十一: 小十一两岁了越来越可爱,越来越有自己想法了。

    12月计划

    1. 刷题继续
    2. 跑步200km
    3. 体重回到140以内(至少)
    4. 不喝可乐,吃零食
    5. 每天特定时间刷手机微博推特
    6. 为vscode贡献一点儿代码
    7. 每天1小时学习视频
    8. 日语背单词继续,开坑日语学习(从每天晚上1小时开始)
    9. 俯卧撑重新从等级2开始
    10. 学着合理安排时间
    11. 改掉在11面前玩手机的习惯
    12. 前端, 刷题,Python继续
    ]]>
    2019-12-02T00:32:03+00:00
    https://github.com/yihong0618/gitblog/issues/84还有10分钟下班2024-04-27T09:39:28.294696+00:00快下班了
    1. 亮仔来大连了。
    2. 10分钟下班后和媳妇去吃米线。
    3. 做事情应该有个优先级。
    4. 首先的优先级是利用下班前这些时间写点什么

    事情的计划--2019.11.29

    • 每天一点《现代js》
    • 1到2天完成一个利用Python写个解析器
    • 每天一课日语的默写,从哪一课开始
    • 每天完成日语单词背诵
    • 每天跑步
    • 每天刷至少一道题
    • 每天前端或者python的百日计划
    • 每天看一点视频
    ]]>
    2019-11-29T08:54:26+00:00
    https://github.com/yihong0618/gitblog/issues/83新的一周,不是新的开始。2024-04-27T09:39:28.391041+00:00电脑好卡,vscode都打不开,随便写点什么吧?

    1. 这周亮仔来,本来想买个苹果的鼠标只好改成小米的吧
    2. 早上删了微博,试试看看能节省点儿时间不
    3. vscode换了个主题
    4. 心中暗暗告诉自己要在明年七月考二级,而这次选择沉默,谁也不跟谁说
    5. 程序要一点点变强,深度和广度
    6. 游戏是彻底不玩了,有时间打打跟编程相关的游戏吧
    7. 每天晚上利用好8点到12点这3个小时
    8. 至少能学2个小时日语,不间断的。
    9. 至少能刷一道题或是写一小时的site project
    10. 能抽出半小时锻炼身体
    11. 能看看视频

    1. 把朋友圈也关了吧,看看自己这次怎么能坚持下去
    ]]>
    2019-11-25T00:33:12+00:00
    https://github.com/yihong0618/gitblog/issues/82最近的工作,生活,学习,以及其它2024-04-27T09:39:28.484892+00:00记录一下自己

    从这一刻开始,从下一刻放弃


    最近总是感叹我自己总结的这句话,深以为然。包括这个issues博客,都是突发奇想。不知不觉坚持了好久。而有些事儿真的是说放弃就放弃了。


    好的

    1. 读1万个技术博客不如好好读一本书
    2. 当然读博客是有用的,而只是是没有用的
    3. 最近看那个破解iPhone 的黑客的编程直播视频,学到了一件最重要的事儿。-- 怎么从头开始,把自己不会的东西落地
    4. 最近真的是这些年工作最努力的一段时间,每个交给我的任务都去努力完成
    5. 还多少会了些前端,还能完成一些交给我的前端任务
    6. 开始刷题了,能自己想出来的感觉真的很爽,并且开了一个仓库
    7. 专注力提升真的不少
    8. 多少会了一些shell,但还不够
    9. 生活上,很少吵架了,也慢慢学着不去在乎一些事情,让家庭和睦美满
    10. 更爱媳妇了,昨天做梦,竟然在梦中送上门的我都不会去动

    坏的

    • 还是有些东西不管坚持多久,说放弃了就放弃了,英语单词突然就没背了
    • 日语单词也是
    • 跑步也开始不用心了
    • 由于编程太累,总去吃东西,胖了一些
    • 脑中还有些想法,还是没去做
    • 日语冲动好久了,还缺少一个开始
    • 坚持的俯卧撑仰卧起坐也不是每天都做了
    • 怎么去平衡这些?
    • 游戏好久没玩了
    • 刷微博的习惯还是没改掉
    • 记账坚持了几天就放弃了

    怎么办

    • 一点一点从每天计划开始
    • 一个一个把坏的解决,从每天雷打不动的认真跑步开始

    每天需要的 routine(2019.11.22)

    • DayOne
    • Front100
    • Python365
    • 001edoceel
    • 周报
    • 月报
    • 跑步(Daily 5k)
    • 跑步中听故事FM
    • 俯卧撑 || 仰卧起坐 || 深蹲 (需要今天开始恢复)
    • 看一圈自己关注的博客

    写在最后

    • 需要根据自己能力增加一些routine,不过需要慢慢来
    • 要平衡这些和家庭
    • 需要自己每个月攒点儿钱
    • 开这个issues博客真的是明智之举
    ]]>
    2019-11-22T00:25:00+00:00
    https://github.com/yihong0618/gitblog/issues/81docker存档2024-04-27T09:39:28.617167+00:00docker 拷贝文件

    {host} docker run -v /path/to/hostdir:/mnt --name my_container my_image {host} docker exec -it my_container bash {container} cp /mnt/sourcefile /path/to/destfile

    docker cp foo.txt mycontainer:/foo.txt

    ]]>
    2019-11-20T08:04:20+00:00
    https://github.com/yihong0618/gitblog/issues/80前端存档2024-04-27T09:39:28.707598+00:00
  • 判断数组是否为空
  • if (array === undefined || array.length == 0) {
        // array empty or does not exist
    }
    
    ]]>
    2019-11-19T02:12:02+00:00
    https://github.com/yihong0618/gitblog/issues/79我不服输2024-04-27T09:39:28.796010+00:00我不服输。

    1. 今天真是爽。花了好久最后算是做出来了靠自己思路
    2. 大概花了3个多小时
    3. 不要服输
    ]]>
    2019-11-16T15:58:00+00:00
    https://github.com/yihong0618/gitblog/issues/78一定要摆脱撞大运编程2024-04-27T09:39:28.886605+00:00仔细思考,否则浪费的只有时间

    ]]>
    2019-11-15T07:09:53+00:00
    https://github.com/yihong0618/gitblog/issues/77轻松了几天,新需求要来了2024-04-27T09:39:28.995924+00:00
  • 不知道这次有没有难度
  • 今天看有人过了CCIE 不知道自己要不要考
  • 娘娘腔真的讨厌,个大傻逼,远离他吧
  • 啥时候启动自己的日语学习计划呢?来个一鸣惊人
  • 英语每天开会都要认真听
  • 继续熟悉代码吧
  • 我比他们强的原因是大多数人都在虚假的努力
  • 先写到这儿
  • ]]>
    2019-11-13T02:24:44+00:00
    https://github.com/yihong0618/gitblog/issues/76又要开始了2024-04-27T09:39:29.090146+00:00
  • 减肥--130
  • 学日语--明年7月考2级
  • 编程--一个详细的精进策略
  • 家庭--多帮妈妈分担
  • 工作--认真一点
  • 跑步--增加跑量,明年再来两个马拉松
  • ]]>
    2019-11-11T01:29:00+00:00
    https://github.com/yihong0618/gitblog/issues/75明天小十一就2岁了2024-04-27T09:39:29.180880+00:00这两年发生了好多事。 不想去总结太多 今天, 自己喝了不少酒 一边往家走, 一边背诗。 久违了。 30岁, 自己真的只是个普通人 除了高三愚蠢的自己 倒是没什么后悔的, 不知道未来如何 加油吧, 十一 身体快乐

    ]]>
    2019-11-09T14:40:42+00:00
    https://github.com/yihong0618/gitblog/issues/74《Vim实用技巧》读书笔记2024-04-27T09:39:29.263420+00:002019.11.5开坑

    ]]>
    2019-11-05T04:44:23+00:00
    https://github.com/yihong0618/gitblog/issues/73完成了北京马拉松2024-04-27T09:39:29.355504+00:00
  • 今年北京马拉松竟然抽签中了,没有不去的道理。
  • 成绩还算可以,跑了4小时1分钟。
  • 人真的很多啊,前20km根本没出去,
  • 最终没进4小时有点儿遗憾,
  • 算是第一次真正意义上“跑完”马拉松,泪流满面,
  • 还有很大的提升空间,别停下。
  • 下一次去哪里呢?
  • ]]>
    2019-11-04T03:34:55+00:00
    https://github.com/yihong0618/gitblog/issues/722019年10月总结11月计划2024-04-27T09:39:29.446112+00:00
  • 完成了一个半马
  • 换了工作
  • 改变了工作态度
  • 最后几天病了
  • 给媳妇买了Apple Watch
  • 重了几斤,sad
  • 背单词,俯卧撑都在坚持着
  • 认识了新同事
  • 努力去做新的尝试
  • 11月来了
  • ]]>
    2019-11-01T13:40:06+00:00
    https://github.com/yihong0618/gitblog/issues/71需要新的开始2024-04-27T09:39:29.532732+00:00
  • 越来越懈怠了
  • 需要一个一点一点来的计划
  • 加油
  • ]]>
    2019-10-29T02:35:53+00:00
    https://github.com/yihong0618/gitblog/issues/70懈怠了,可不是好事2024-04-27T09:39:29.625752+00:00
  • 也许是白天工作累吧,这几天晚上都没怎么学习
  • 这样不好
  • github也断了
  • 英语单词背的也不认真了
  • 别停下
  • ]]>
    2019-10-24T00:05:22+00:00
    https://github.com/yihong0618/gitblog/issues/69工作总结专用贴2024-04-27T09:39:29.716081+00:00相当于日报吧。每日打卡

    ]]>
    2019-10-21T09:50:53+00:00
    https://github.com/yihong0618/gitblog/issues/68总是在不知不觉间的2024-04-27T09:39:29.813098+00:00#38 从这一刻开始,从下一刻放弃

    1. 昨天跑了24km,操场上跑了60圈。
    2. 今天去了动物园
    3. 总是在不知不觉间的,坚持和放弃都是
    4. 这么多年,无论哪件事情,我做到了不去欺骗自己的坚持,今天都会不同吧
    5. 重新跑起来快半年了
    6. 半个月后要去北京跑马拉松
    7. 新工作就这样开始了
    8. 真的,放弃一件事儿太容易了,昨天没锻炼,没坚持github
    9. 还有很多想法,一点一点开始。一点一点的坚持吧
    10. 有些事真的没必要生气
    ]]>
    2019-10-20T07:27:55+00:00
    https://github.com/yihong0618/gitblog/issues/67这个Issue用来测试2024-04-27T09:39:29.902180+00:00哈哈哈哈哈哈哈哈

    ]]>
    2019-10-17T08:13:20+00:00
    https://github.com/yihong0618/gitblog/issues/66最近少了一些目标2024-04-27T09:39:29.995859+00:00
  • 新工作还算比较满意,主动承担,努力去闯,把英语好好练一练。
  • 但是最近晚上总是不知道学啥好,从哪本书看起
  • 是看前端还算学习底层
  • 是学习英语还算学习日语
  • 是得好好安排一下
  • 跑步要坚持下去,每天
  • 要变强
  • 每天8点半到11点的时间,好好利用的话还算很多的
  • 做完一件再干另一件,否则开了很多坑还是个傻逼
  • 不如从今天开始
  • 因为白天头脑很累,晚上也是需要跑跑出出汗的
  • ]]>
    2019-10-17T00:12:00+00:00
    https://github.com/yihong0618/gitblog/issues/65Anyway 加油干吧2024-04-27T09:39:30.082927+00:00调了好久的环境。 项目好多的坑。

    ]]>
    2019-10-15T09:42:05+00:00
    https://github.com/yihong0618/gitblog/issues/64去盘锦跑了个半马。2024-04-27T09:39:30.178884+00:00去盘锦跑了个半马
    1. 跑了1小时40分钟,算是突破了自己,还不错,就是好累
    2. 20天后的全马一定要慢下来
    3. 感觉全马得跑4个小时。。。
    4. 这几天放肆的吃喝体重到了最高点,妈的
    5. 放纵了两天,明天开始一切恢复正常
    6. 开始为了20天后的北马,加油了
    ]]>
    2019-10-13T08:40:06+00:00
    https://github.com/yihong0618/gitblog/issues/63psql 存档2024-04-27T09:39:30.406345+00:002019.10.11

    创建用户
    postgres=# CREATE USER dbuser WITH PASSWORD '*****'
    创建database
    could not flush dirty data: Function not implemented
    
    ]]>
    2019-10-11T03:29:08+00:00
    https://github.com/yihong0618/gitblog/issues/62新工作遇到的坑2024-04-27T09:39:30.486674+00:002019.10.10

    1. 虚拟环境 激活 source bin/activate 反激活 deactivate
    ]]>
    2019-10-10T08:59:46+00:00
    https://github.com/yihong0618/gitblog/issues/61工作第二天。2024-04-27T09:39:30.578433+00:00
  • 太逗了
  • 大公司有大公司的特点
  • 虽然好像是啥也没干,但好像是忙了一天
  • 加油吧,一会儿回家了
  • ]]>
    2019-10-09T09:31:05+00:00
    https://github.com/yihong0618/gitblog/issues/60今天新公司上班第一天,加油2024-04-27T09:39:30.659443+00:00新的一天
    • 早上跑了3km
    • 昨晚生的气大概还在
    • 30岁还剩5个月
    • 今天看到NBA事件,和一万个傻逼民众,不敢说话,也不能说话
    • 想办法清空自己微博吧
    • 努力学日语,英语了,让自己多一个可能性
    • 总之,一会儿去报道,加油吧

    ]]>
    2019-10-08T00:28:47+00:00
    https://github.com/yihong0618/gitblog/issues/5910月程序上的计划2024-04-27T09:39:30.755688+00:00
  • 熟悉工作内容
  • 读完Python cookbook
  • 学习工作上用的框架
  • 完成python web那两个程序
  • 完善自动化issue
  • ]]>
    2019-10-07T07:10:33+00:00
    https://github.com/yihong0618/gitblog/issues/58明天进入新的公司了2024-04-27T09:39:30.855679+00:00又一次坐在麦当劳里。 想起去年的4月30日也是坐在这儿。 又一次换工作了。

    希望这是2年内的最后一次吧。

    接下来是,认真工作,调整自己心态,爱上工作。 给自己加个油

    ]]>
    2019-10-07T05:13:12+00:00
    https://github.com/yihong0618/gitblog/issues/57流水账2024-04-27T09:39:30.961409+00:00
  • 今天去了邹邹奶奶家
  • 体重涨了五斤,不能再这样下去了
  • 今天跑了18km,应该是马拉松前最后一次了
  • 8号入职了,期待
  • 越来越不敢说话了,哎
  • ]]>
    2019-10-06T13:58:44+00:00
    https://github.com/yihong0618/gitblog/issues/56十一生病了2024-04-27T09:39:31.103244+00:00好像又犯错误了。 哎。 踢了一脚凳子,11又吐了

    ]]>
    2019-10-05T05:20:01+00:00
    https://github.com/yihong0618/gitblog/issues/55蛋疼2024-04-27T09:39:31.199141+00:00以后有蛋疼的事儿记录在这里吧 11不跟我好了 push不知道为什么push不上去 俯卧撑好累 好久没自己晚上看一个电影了 好久没玩游戏了 好久没看技术以外的书了

    ]]>
    2019-10-04T12:49:45+00:00
    https://github.com/yihong0618/gitblog/issues/54桌子好乱啊,床也好乱啊2024-04-27T09:39:31.292229+00:00今天因为要测试可能是这辈子写日记写的最多的一天 但还不知道为什么还是push不上去 桌子特别乱 床也好乱 想下楼买啤酒
    • 俯卧撑还没做
    • 今天的Python还没搞
    • 英语单词还没背
    • 这个push的计划还没完成
    ]]>
    2019-10-04T12:38:35+00:00
    https://github.com/yihong0618/gitblog/issues/53编程的一些心得2024-04-27T09:39:31.379628+00:002019.10.04 想法固然重要,读书固然重要,学习固然重要,但写出来才是最重要的,因为不一定什么时候踩到坑

    ]]>
    2019-10-04T12:29:09+00:00
    https://github.com/yihong0618/gitblog/issues/52计算机组成要素读书笔记2024-04-27T09:39:31.478881+00:002019.10.4开坑

    ]]>
    2019-10-04T12:19:48+00:00
    https://github.com/yihong0618/gitblog/issues/51点子合集2024-04-27T09:39:31.577680+00:00争取把自己一些好的点子放在这里
    1. 手表二维码集合
    ]]>
    2019-10-04T12:07:38+00:00
    https://github.com/yihong0618/gitblog/issues/50第五十篇,算是测试2024-04-27T09:39:31.661580+00:00好久以来的想法终于要实现了, 这是个测试文章, 如果成功了 非常开心

    ]]>
    2019-10-04T06:33:35+00:00
    https://github.com/yihong0618/gitblog/issues/492019年剩下的不多了2024-04-27T09:39:31.755500+00:00也快31岁了,时间不等人 再努力一点

    ]]>
    2019-10-04T06:25:11+00:00
    https://github.com/yihong0618/gitblog/issues/48端正工作态度好好写代码2024-04-27T09:39:31.843893+00:00
  • 10.8就要去新公司了
  • 这次跳槽最需要改进的就是工作方式
  • 好好完成任务
  • 不摸鱼,少玩手机
  • 把每天的任务排上优先级
  • ]]>
    2019-10-04T06:13:02+00:00
    https://github.com/yihong0618/gitblog/issues/47忘带电源了2024-04-27T09:39:31.934161+00:00太蠢了 竟然忘带电影了,略蠢啊 本来计划挺多东西的

    ]]>
    2019-10-04T05:48:46+00:00
    https://github.com/yihong0618/gitblog/issues/46休息日2024-04-27T09:39:32.027572+00:00
  • 今天是十一的假期,也是我换下一份工作的间歇
  • 应该这些年来第一次连着看俩电影《中国机长》,《我和我的祖国》总体来说俩电影还算值得看
  • 胖了3斤应该是,哎,最近这方面真的是懈怠啊
  • 今天不太想做本该做的仰卧起坐,咬牙算是做完了
  • 今天也不太想去完成今天的编程任务,但还是应该会继续吧,还是那句话,从下一刻再放弃
  • 和媳妇结婚3年了,不短了,未来的路也很长
  • 想想还是就写到这儿吧
  • ]]>
    2019-10-03T13:26:06+00:00
    https://github.com/yihong0618/gitblog/issues/45利用github issues加上github webhook写博客自动化2024-04-27T09:39:32.158624+00:00webhook搞明白了,部署在阿里云上

    剩下的工作

    • 添加label
    • 编写自动生成第一次readme的脚本
    • 编写更新的脚本
    • 编写创建的脚本

    将来可能要做的工作

    • 独立域名
    • 开源
    ]]>
    2019-10-02T06:26:12+00:00
    https://github.com/yihong0618/gitblog/issues/442019九月总结及十月计划2024-04-27T09:39:32.247701+00:00
  • 九月最大的改变就是换工作吧,虽然不知道未来怎么样,但是知道现在
  • 偶尔想起还是觉得自己有些吃亏,不过还好
  • 九月跑了200km,九月跑步挪到了早晨,九月完成了一次20km
  • 九月俯卧撑后和仰卧起坐坚持的不错
  • 九月停掉了日语学习,德语学习,开始重新背英语单词
  • 九月一直在喝酒多吃,体重没有变化,但是结实了不少
  • 九月Python365计划多少是开始了
  • 九月更爱媳妇了,好像没有吵架
  • 九月11更可爱,更爱说话了
  • 九月喝了很多咖啡,依然花了不少钱
  • ]]>
    2019-10-02T05:18:26+00:00
    https://github.com/yihong0618/gitblog/issues/43Python存档2024-04-27T09:39:32.347415+00:00竟然才加上Python--2019.9.30
    1. lstrip
    2. partition 返回元祖(3个成员)
    ]]>
    2019-09-30T02:57:37+00:00
    https://github.com/yihong0618/gitblog/issues/42终于从这家公司离职了,开心2024-04-27T09:39:32.434100+00:00走啦!

    除了领导人挺好,不加班似乎没有什么好处。 虽然我不知道下一家怎么样 但至少有些东西能学到。 要加油了,下一阶段要做的就是学会努力工作,认真工作,做漂亮的工作。 这也是我30岁剩下几个月需要做的最重要的事儿。 当然我靠自己争取还是学了不少东西的。 真的不少。 下一项就是要把这些学到的东西串起来,并用在工作中。

    加油。 今天感觉走路都能跳起来

    但是还是惹媳妇生气了,确实都是我的错

    ]]>
    2019-09-29T14:04:44+00:00
    https://github.com/yihong0618/gitblog/issues/41明天最后一天了,一些心得2024-04-27T09:39:32.528679+00:00在这工作了10个月整

    总结一些心得

    • 永远别承诺什么
    • 欠的债是一定会还的,一切早晚会找上你
    • 一次做好是最快的要认真
    • 人言可畏,这个年龄周围的坏人太多了
    • 清楚自己的定位
    • 发现苗头不对就要赶紧提
    • 专心,玩手机是在一切之后的事儿,不玩不现实
    • 有第一次就有第二次,别妥协
    • 认真对待每一行代码,放那儿了就永远不会再碰了
    • 不要怕学习,不要怕开始写的第一步,开始永远是通往结束的最重要一步

    下一阶段要做的事儿

    • 用番茄时间工作
    • 每天写工作记录
    • 工作是一切的第一位
    • 别拖延,马上开始
    • 逼着自己在这方面成长
    ]]>
    2019-09-28T09:29:59+00:00
    https://github.com/yihong0618/gitblog/issues/40尝试不玩手机2024-04-27T09:39:32.633853+00:00不想被奴役
    • 每天自觉的刷来刷去,究竟又能得到什么呢?
    • 做公交的时候观察,每个人都在刷手机,而我更不例外
    • 不如利用起来,自己想要用手机干什么
    • 结合 #38 ,不如从现在开始,删掉微博关掉朋友圈,发的时候再打开
    • 每天手机上有啥必须任务呢
      1. 多邻国
      2. 学习视频
      3. 被英语单词
      4. 跑步
      5. DayOne
      6. 俯卧撑或仰卧起坐
      7. 记账
      8. 买咖啡
      9. 回微信
      10. 照相
    • 刷朋友圈和微博早晚各一次吧
    • 日本上班是不让带手机的
    • 为了自己能努力工作开心写代码,不焦虑,当个日本人好了

    今天算是第一天

    ]]>
    2019-09-27T06:13:32+00:00
    https://github.com/yihong0618/gitblog/issues/39坐在星巴克里2024-04-27T09:39:32.734078+00:00上次离职好像也是坐在星巴克里 不过这次带了个笔记本,装逼加上写点什么。

    1. 音乐挺好听
    2. 和金阳聊了聊,感觉自己真的是不会要工资啊
    3. 算了不想这个了,反正已经超出预期不少了,人不能太贪心
    4. 最近坚持的还算挺不错,准备自己新开一个项目了
    5. 时刻记着,从这一刻开始,从下一刻放弃#38
    ]]>
    2019-09-25T03:26:01+00:00
    https://github.com/yihong0618/gitblog/issues/38从这一刻开始,从下一刻放弃2024-04-27T09:39:32.817632+00:00

    一些心得

    1. 大多事情,有想法,有时间就马上去做,因为不从这一刻开始,大概率就永远不会开始
    2. 大多数坚持的事情,比如跑步,心底一个声音说,不要跑了太累了。没有特别的原因,还是要跑下去,因为这一刻不去跑,大概率就很久都不会再跑了
    3. 大多数事情都是以上两点规则
    4. 别为了改变不了的事情一直懊悔
    5. 反而懊悔一次就要总结,下一次知道了就别再踩这个坑,比如要工资

    新坑

    1. 记账要坚持
    2. 要少喝酒了,为了腹肌
    3. 严格要求自己每一段代码
    4. 认真工作,白天少玩手机
    5. 心态不好的时候就冥想加深呼吸
    ]]>
    2019-09-24T00:47:31+00:00
    https://github.com/yihong0618/gitblog/issues/37一些心得2024-04-27T09:39:32.913047+00:00
  • 尽量有想法就马上开始,否则永远不会开始
  • 今天开始记账,花了八块买了个记账软件,嗯把这笔也记上
  • 认真,心无旁骛
  • 冥想,控制自己情绪,去改变能改变的
  • 坚持,100天只是开始
  • ]]>
    2019-09-22T09:02:55+00:00
    https://github.com/yihong0618/gitblog/issues/36工具小技巧2024-04-27T09:39:33.031359+00:00vscode

    代码块折叠

    mac下,command + k + 0,折叠所有代码块。command + k + j,展开所有代码块。 windows下,ctrl + k + 0,折叠所有代码块。ctrl + k + j,展开所有代码块。

    每一行都添加

    Press CTRL + A to select all of the text Press SHIFT + ALT + I to insert multiple cursors at the end of each line Press Home twice to jump to the start of every line

    ]]>
    2019-09-20T02:43:28+00:00
    https://github.com/yihong0618/gitblog/issues/35剩下的日子和要交接的工作2024-04-27T09:39:33.173013+00:00剩下的日子也不多了

    整理下自己需要做点什么吧,对这里倒是一点留恋没有,每天抽出时间学一学下一家公司要做的事儿吧。其余的是工作

    • 完成python那个项目的修改
    • 帮助东哥完成python的部署
    • 二维码项目改代码上传svn,交接金老师
    • node问题回复
    • 其它问题
    • 小范的自动化脚本
    ]]>
    2019-09-19T03:31:24+00:00
    https://github.com/yihong0618/gitblog/issues/34冒泡的声音2024-04-27T09:39:33.268711+00:00空调不知道为什么一直都有冒泡的声音

    很烦 我媳妇烦,我也烦。 我不知道为什么总是因为一点小事就心神不宁 想离开这儿 讨厌这样的生活 就像冒泡的声音伴随着外面的风声,滴答滴答想个不停

    至少我先做到不烦吧,哎

    ]]>
    2019-09-17T13:08:02+00:00
    https://github.com/yihong0618/gitblog/issues/33定日子了2024-04-27T09:39:33.513067+00:00

    9.30我就可以离开这儿了


    1. 希望这是我这3年跳的最后一次(个人原因)
    2. 下一家希望自己努力工作,建立良好的工作习惯
    3. 精进自己的技术
    4. 每天晚上学习
    5. 其他的不重要
    ]]>
    2019-09-16T02:44:13+00:00
    https://github.com/yihong0618/gitblog/issues/32自律2024-04-27T09:39:33.611958+00:00
  • 做什么不重要,一个开始一个坚持很重要
  • 阶段性的成功只能短暂的炫耀,坚持下去才是资本
  • 开坑要么早早放弃,要么坚持下去
  • 克服焦虑最好的办法是现在开始,深呼吸3分钟,做事,而不是写日记,那样更焦虑
  • 了解自己才能战胜自己
  • 下一个要克服的是工作态度
  • 加油
  • ]]>
    2019-09-11T09:30:24+00:00
    https://github.com/yihong0618/gitblog/issues/31关于成长2024-04-27T09:39:33.748335+00:00来聊聊我时间管理的一些小方法。

    1. 开始做事之前整理出一份to do list,按重要性排序,完成顺序是从紧急到宽松。在杂乱的事物里能看到尽头,心态会好很多。
    2. 做事的时候尽量认真,任何一次返工都是在浪费之前花在上面的心血与精力。
    3. 解决拖延症的方式是心里默念321然后立刻站起来去做。
    4. 最大化利用碎片时间。没有特殊需求请卸载容易消耗时间的app,用原先填补碎片时间的无效娱乐去填补优质爱好。
    5. 当代社会信息爆炸,没必要为了社交或迎合去了解自己不喜欢的信息,专注自身就好。
    6. 只要突然想到的一件事有实现的可能性,就立刻去做,在犹豫产生之前就去。无论成功与否,试过就没有后悔了。
    7. 可以去学习一些专业的时间管理法则。
    8. 每天一小时断网时间。可以留给看电影、写作、看书、练琴等等你当下正在坚持却有可能坚持不下去的事。只有断网才能真正的心无旁骛,相信我。
    9. 按时运动。不仅仅是为了身体健康,同时可以让身体习惯良好的生活作息,间接停止懈怠。
    10. 看到这里就去实现,马一下是永远不会再翻出来看的。
    ]]>
    2019-09-06T09:12:57+00:00
    https://github.com/yihong0618/gitblog/issues/30拿到offer了2024-04-27T09:39:33.844407+00:00就是不知道能不能走上,哎,加油跑

    ]]>
    2019-09-06T09:11:03+00:00
    https://github.com/yihong0618/gitblog/issues/29九月计划及八月总结2024-04-27T09:39:33.936849+00:00先写计划

    1. 九月最大的力度尝试摆脱社交网络计划
    2. 九月尝试每周1次间歇,1次休息,1次修仙10km,1次正经10km,1次5km,1次长距离
    3. 九月不撸
    4. 九月尝试跳槽,无论结果如何开始认真工作
    5. 九月加入英语
    6. 九月每天晚上要学习
    7. 其他同八月继续
    ]]>
    2019-09-01T13:19:58+00:00
    https://github.com/yihong0618/gitblog/issues/28总结很重要啊2024-04-27T09:39:34.033148+00:00今天发现总结真的很重要,对自己以后太有帮助了。 多多总结

    ]]>
    2019-08-29T02:09:59+00:00
    https://github.com/yihong0618/gitblog/issues/27懈怠2024-04-27T09:39:34.127601+00:00最近有点懈怠啊

    Sent from PPHub For GitHub

    ]]>
    2019-08-24T23:11:57+00:00
    https://github.com/yihong0618/gitblog/issues/26一篇文章,一首诗,以及自己2024-04-27T09:39:34.222949+00:00焦虑

    今天重读了一篇文章《迷茫与倒退》 不知道为什么,最近时常重读这篇文章,大概是在这里真的不开心吧。

    一首诗

    在这个人的博客简介里看到一首诗,真是喜欢,记录下来

    深情似海,问相逢初度,是何年纪?依约而今还记取,不是前生夙世。放学花前,题诗石上,春水园亭里。逢君一笑,人间无此欢喜。 无奈苍狗看云,红羊数劫,惘惘休提起。客气渐多真气少,汩没心灵何已。千古声名,百年担负,事事违初意。心头阁住,儿时那种情味。

    写给自己

    • 认真工作
    • 把手头的东西做好
    • 想每天刷10km
    • 想瘦到126
    • 想六块腹肌
    • 想摆脱看别人脸色的束缚
    • 想好好学学日语
    • 想自己写一个自己的博客
    • 想把英语口语练好
    • 想再牛逼一点
    ]]>
    2019-08-21T01:44:36+00:00
    https://github.com/yihong0618/gitblog/issues/25重来2024-04-27T09:39:34.357862+00:00重来

    回了趟沈阳好多习惯都被打破了,似乎一切都得重来。

    1. 下一阶段准备每天10km然后周休1-2天,周二跑间歇跑
    2. 编程方面继续保持每天写代码,每天github小绿星星
    3. 日语方面,争取每天晚上全身心的学习一小时,不多不少,另外需要一个完整的计划
    4. 加入跑步听书环节(现在听的是《猎魔人》)
    5. 英语方面,找个时间开始练口语(待定)
    6. 德语方面继续点点点
    7. 每天俯卧撑和仰卧起坐循环
    8. 其他一切继续
    ]]>
    2019-08-20T00:26:44+00:00
    https://github.com/yihong0618/gitblog/issues/24快点离开这个地方2024-04-27T09:39:34.455835+00:00这次回家心情超级差 好多每天的任务停滞了 真的难受。

    越发的想离开这里了 该去哪里呢? 哎

    ]]>
    2019-08-19T00:09:24+00:00
    https://github.com/yihong0618/gitblog/issues/23《快乐的Linux命令行》读书笔记2024-04-27T09:39:34.559302+00:00新坑 2019.08.12开始 地址:快乐的Linux命令行

    • 读完
    • 顺便记录一些英语单词
    • 编写一些脚本程序
    ]]>
    2019-08-12T08:05:09+00:00
    https://github.com/yihong0618/gitblog/issues/22雨中奔跑2024-04-27T09:39:34.652340+00:00今天犹豫了好几次 最终还是决定在雨中把今天的运动环完成 想起村上春树《当我谈跑步时我谈些什么》中的一句话

    一旦我找借口停下来,就永远不会再跑起来了

    希望这次能坚持下去

    ]]>
    2019-08-11T14:10:08+00:00
    https://github.com/yihong0618/gitblog/issues/21CSS存档2024-04-27T09:39:34.737543+00:00
  • .xxx>li。>是子代选择符,它表示的是选择.xxx的子代li
  • @media 如果文档宽度小于 300 像素则修改背景颜色(background-color):
  •  @media screen and (max-width: 300px) {
        body {
            background-color:lightblue;
        }
    }
    
    ]]>
    2019-08-09T07:15:26+00:00
    https://github.com/yihong0618/gitblog/issues/20MongoDB存档2024-04-27T09:39:34.836862+00:00为什么使用MongoDB
    1. 宽松的数据形式非常灵活,易于拓展
    2. MongoDB的数据是用JSON(Javascript Object Notation)存储的(就是上面的这种key-value的形式),而几乎所有的web应用都是基于Javascript的。因此,存储的数据和应用的数据的格式是高度一致的,不需经过转换。

    创建集合和删除集合(集合类似与table)

    1. use database 直接创建(如果没有)
    2. db.createCollection('author') 创建集合
    3. show collections
    4. db.author.drop()

    插入

    1. db.createCollection('movie')
    2. db.movie.insert(
     {
       title: 'Forrest Gump', 
       directed_by: 'Robert Zemeckis',
       stars: ['Tom Hanks', 'Robin Wright', 'Gary Sinise'],
       tags: ['drama', 'romance'],
       debut: new Date(1994,7,6,0,0),
       likes: 864367,
       dislikes: 30127,
       comments: [	
          {
             user:'user1',
             message: 'My first comment',
             dateCreated: new Date(2013,11,10,2,35),
             like: 0 
          },
          {
             user:'user2',
             message: 'My first comment too!',
             dateCreated: new Date(2013,11,11,6,20),
             like: 0 
          }
       ]
    }
    )
    
    1. 可以同时插入多个数据(list)

    查询

    1. db.movie.find({'directed_by':'David Fincher'}).pretty()
    2. db.movie.find({'directed_by':'David Fincher', 'stars':'Morgan Freeman'}).pretty()
    3. db.movie.find(
    {
      $or: 
         [  {'stars':'Robin Wright'}, 
            {'stars':'Morgan Freeman'}
         ]
    }).pretty()
    
    1. db.movie.find({'likes':{$gt:500000}}).pretty()
    2. db.movie.findOne({'title':'Forrest Gump'})(一个结果)
    3. db.movie.find().limit(2).skip(1).pretty()

    局部查询(find的第二个参数)

    1. db.movie.find({'tags':'drama'},{'debut':1,'title':1}).pretty()

    更新

    1. db.movie.update({title:'Seven'}, {$set:{likes:134371}})(第一个参数选择,第二个参数设置)
    2. db.movie.update({title:'Seven'}, {$inc:{likes:2}})
    3. db.movie.update({}, {$inc:{likes:10}},{multi:true})(默认只更新第一个,多个更新加个参数)
    4. db.movie.update({'title':'Seven'}, {$push:{'tags':'popular'}})(在原来的基础上增加值)

    删除

    1. db.movie.remove({'tags':'romance'})
    2. db.movie.remove({'tags':'romance'},1)(只想删除第一个)
    3. db.movie.remove({})
    4. db.movie.deleteOne() ,b.movie.deleteMany()(目前官方推荐)

    索引和排序

    1. db.movie.ensureIndex({directed_by:1})
    2. db.movie.find().sort({'title':1}).pretty()
    3. db.movie.dropIndex('index_name')

    聚合

    1. db.movie.aggregate([{$group:{_id:'$grade'}}])
    2. db.movie.aggregate([{$group:{_id:'$directed_by',num_movie:{$sum:1}}}])
    3. db.movie.aggregate([{$group:{_id:'$directed_by',num_likes:{$sum:'$likes'}}}])
    4. db.movie.aggregate([{$group:{_id:'$directed_by',num_movie:{$avg:'$likes'}}}])
    5. db.movie.aggregate([{$group:{_id:'$directed_by',num_movie:{$first:'$likes'}}}])

    原子话

    1. db.movie.findAndModify(
    			{
    			query:{'title':'Forrest Gump'},
    			update:{$inc:{likes:10}}
    			}
    		      )
    

    文本搜索

    1. db.movie.ensureIndex({title:'text'}) (创建)
    2. db.movie.find({$text:{$search:"Gump"}}).pretty() (搜索)

    正则表达式

    1. db.movie.find({title:{$regex:'.*b$'}}).pretty()
    ]]>
    2019-08-09T07:12:58+00:00
    https://github.com/yihong0618/gitblog/issues/19手机坏了2024-04-27T09:39:34.939643+00:00突然间哎屏幕不亮了

    1. 不知道明天跑步怎么办
    2. 不知道啥时候要买新手机
    3. 不知道明天背单词怎么办
    4. 每天的照片怎么办
    5. 浑身难受
    ]]>
    2019-08-08T14:31:17+00:00
    https://github.com/yihong0618/gitblog/issues/18JS存档2024-04-27T09:39:35.029493+00:00JavaScript是如何工作的:引擎,运行时和调用堆栈的概述!

    image image image

    ]]>
    2019-08-07T06:04:22+00:00
    https://github.com/yihong0618/gitblog/issues/17Do my best and fuck off2024-04-27T09:39:35.129378+00:00正式决定离开这里有几天了剩下的也就是时间问题了

    在这里还需要做几件事儿

    1. 把日语3级过了
    2. 把Java学了
    3. 锻炼自己解决问题和遇到困难的能力
    4. 锻炼自己的工作能力
    5. GTD

    最早12月最晚明年4月吧。要试试离开这里。 I mean it.

    ]]>
    2019-08-06T01:17:01+00:00
    https://github.com/yihong0618/gitblog/issues/16普通的一天,不普通的一天2024-04-27T09:39:35.212462+00:00
  • 今天和媳妇看了电影《哪吒》
  • 今天跑了15km,很爽。有日子没跑这么远了
  • 今天继续收拾了屋子
  • 今天只是普通的一天
  • 今天买了个本子
  • 我太菜了,一但有一天没坚持下去,就永远坚持不下去了

    ]]>
    2019-08-03T13:44:51+00:00
    https://github.com/yihong0618/gitblog/issues/15ES存档2024-04-27T09:39:35.296979+00:00l

    ]]>
    2019-08-02T05:08:22+00:00
    https://github.com/yihong0618/gitblog/issues/14七月总结和八月计划2024-04-27T09:39:35.393734+00:00从这个月开始记录自己吧

    今天读到了一段话:

    很多人做事,就像挖井一样。挖了很多井一样,挖了很多井,没有一口到底的,当你回顾过往的时候,你要反思一下,你到底打了几口井。很多井没有达成,其实缺的就是一点坚持。很多年前,我看过笛卡尔的《谈谈方法》,里面有一个结论,在一个迷失的森林里,无论你朝那哪个方向走,你都可以走出困境。

    加油要经常想起这段话

    七月

    好的方面

    1. 跑步减重做的不错,成功回到了140斤,已经累计瘦了40斤
    2. 单词开始继续背了,主要日语,次要德语
    3. 每天5km, 跑了200km, 速度提高了一些,现在能稳定在5分20秒1km
    4. 开始写博客了,这次用的是github issues 希望能坚持下去,有机会给开源了
    5. 开始收拾家务
    6. 定了一个很长的日语学习计划, 虽然在坚持。。。
    7. 英语阅读大致读完了《当我谈跑步是我在谈些什么》
    8. 坚持每天一张图片记录日记
    9. 后半月开始每天github坚持
    10. 后半月尝试摆脱社交网络

    坏的部分

    1. 摆脱社交网络坚持的并不好,虽然强制自己不上,但还是很焦虑
    2. 英语阅读没坚持下来
    3. 日语学习总是在骗自己,没法集中精力
    4. 工作上摸鱼过多,是下阶段最应该先改正的
    5. 阅读了过多内容沉淀下来的并不多
    6. 后半期开始懈怠,又喝酒了
    7. 有时候还是控制不好自己的情绪
    8. 跑步后拉伸不足
    9. 对待讨厌的人还是没法做到心态平和
    10. 总是搜招聘网站,忘了自己定的计划

    一些图片

    image image image image image image

    ]]>
    2019-08-01T02:09:06+00:00
    https://github.com/yihong0618/gitblog/issues/13MySQL是怎样跑起来的读书笔记2024-04-27T09:39:35.496466+00:00第一份读书笔记每天学到的写在评论里吧
    • 2019年8月1日开始
    • 准备每天看30分钟左右
    • 把自己的理解都总结在评论里
    • 开头标上日期

    ]]>
    2019-08-01T01:24:38+00:00
    https://github.com/yihong0618/gitblog/issues/12跳槽2024-04-27T09:39:35.590398+00:00在这儿工作真的不开心

    今天看微博读到一段话

    对领导负责,完成领导交给的任务。对公司负责,实现在这个公司的价值。对自己负责,不断的提升自己,我,究竟做到了哪一级呢。

    在这工作确实挺不开心的,主要是没有什么目标感。手头好多工作还不太想做,只是在这里摸鱼,真的挺难受的。 想写好多代码,想不断提升自己,发现距离真的好遥远。 想尽快离开这里吧。 不过怎么也得坚持过一年。 最好能拿到年终奖。 再精进下自己的能力 嗯,就写到这儿吧先

    ]]>
    2019-07-31T05:20:11+00:00
    https://github.com/yihong0618/gitblog/issues/11正则表达式2024-04-27T09:39:35.685140+00:00写在前面

    每次用正则都是现查,想把正则弄好真的好长时间了。今天又刷到了正则表达式的文章,准备记录一下,方便日后复习。

    之前收藏过的正则表达式的文章如下

    笔记

    1. 元字符

    元字符 描述
    . 句号匹配任意单个字符除了换行符.
    [ ] 字符种类. 匹配方括号内的任意字符.
    [^ ] 否定的字符种类. 匹配除了方括号里的任意字符
    * 匹配>=0个重复的在*号之前的字符.
    + 匹配>=1个重复的+号前的字符.
    ? 标记?之前的字符为可选.
    {n,m} 匹配num个大括号之前的字符 (n <= num <= m).
    (xyz) 字符集, 匹配与 xyz 完全相等的字符串.
    | 或运算符,匹配符号前或后的字符.
    \ 转义字符,用于匹配一些保留的字符 [ ] ( ) { } . * + ? ^ $ \ |
    ^ 从开始行开始匹配.
    $ 从末端开始匹配.
    1. 简写字符集

    简写 描述
    . 除换行符外的所有字符
    \w 匹配所有字母数字, 等同于 [a-zA-Z0-9_]
    \W 匹配所有非字母数字, 即符号, 等同于: [^\w]
    \d 匹配数字: [0-9]
    \D 匹配非数字: [^\d]
    \s 匹配所有空格字符, 等同于: [\t\n\f\r\p{Z}]
    \S 匹配所有非空格字符: [^\s]
    \f 匹配一个换页符
    \n 匹配一个换行符
    \r 匹配一个回车符
    \t 匹配一个制表符
    \v 匹配一个垂直制表符
    \p 匹配 CR/LF (等同于 \r\n),用来匹配 DOS 行终止符
    1. 横向模糊匹配与纵向模糊匹配

    横向(/g代表全文搜索):

    var regex = /ab{2,5}c/g;
    var string = "abc abbc abbbc abbbbc abbbbbc abbbbbbc";
    console.log( string.match(regex) ); 
    // => ["abbc", "abbbc", "abbbbc", "abbbbbc"]
    

    纵向

    var regex = /a[123]b/g;
    var string = "a0b a1b a2b a3b a4b";
    console.log( string.match(regex) ); 
    // => ["a1b", "a2b", "a3b"]
    
    1. 位置参数 \w+ 这个应该毫无疑问,匹配所有的words 匹配下面电话号码
    These are some phone numbers 915-134-3122. Also,
    you can call me at 643.123.1333 and of course,
    I'm always reachable at (212)867-5509
    \(?\d{3}[-.)]\d{3}[-.]\d{4}
    
    1. []的特殊语法
    • -连接符是第一个字符时 比如[-.]的含义是连字符-或者点符.。 但是,如果当连字符不是第一个字符时,比如[a-z],这就表示是从字母a到字符z。
    • []中的^ ^在之前介绍中,是表示一行开头,但是在[]中,有着不同的含义。 [ab] 表示a或者b [^ab] 啥都行,只要不是a或b(anythings except a and b),相当于取反
    1. 分组捕获(capturing groups)
    212-555-1234
    915-412-1333
    
    //我想要保留区号,把后面的电话号码变为通用性的
    👇👇👇👇👇👇👇👇👇👇👇👇
    
    212-xxx-xxxx
    915-xxx-xxxx按照之前的做法\d{3}-\d{3}-\d{4},这种匹配的方式,是将整个电话号码作为一个组(group)匹配起来。 我们把212-555-1234这样的叫Group0。
    这个时候,如果我们加了一个括号\d{3}-(\d{3})-\d{4},那么匹配到的555就叫Group1。
    以此类推,如果有两个小括号\d{3}-(\d{3})-(\d{4})那么分组就是下面的情况:
    
    212-555-1234   Group0
    555            Group1
    1234           Group2
    
    
    ]]>
    2019-07-31T02:01:31+00:00
    https://github.com/yihong0618/gitblog/issues/10踩坑小记2024-04-27T09:39:35.779014+00:002019.7.28
    1. Python requests post传data要传json而不是dict
    2. Go项目在github克隆下来的话可以直接clone在gopath里,甚至可以直接用go get这样会方便很多

    2019.7.29

    1. Windows, Linux, Mac会有路径问题,要多使用pathlib
    root = Path("../PycharmProject")
    config_dir = root/Path("config")
    # 等价于config_dir = os.path.join(root, 'config')
    print(str(config_dir))
    config.files = config_dir.rglob("*.json")
    
    1. 读取文件时要加上rb 避免文字格式问题
    with open(filename, encoding='utf-8', mode = ‘r') as f:
        for line in f:
            print(repr(line))
    
    ]]>
    2019-07-28T09:47:49+00:00
    https://github.com/yihong0618/gitblog/issues/9MySQL存档2024-04-27T09:39:35.859910+00:00
  • 更改字段类型
  • ALTER  TABLE 表名 MODIFY COLUMN 字段名 新数据类型 新类型长度  新默认值  新注释;
    
    1. 修改字段名
    ALTER  TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;
    
    1. 添加字段
    ALTER TABLE 表名 ADD 字段 类型 其他;
    
    ]]>
    2019-07-27T07:19:43+00:00
    https://github.com/yihong0618/gitblog/issues/8Linux存档2024-04-27T09:39:35.944592+00:00停止多个相同images的docker

    docker stop $(docker ps | grep python | awk 'NR > 1 {print $1}'|xargs)
    

    Find命令用法

    - 列出当前目录以及子目录下的所有文件
      find .
    - 找到当前目录下名字为11.png的文件
      find . -name "11.png"
    - 找到当前目录下所有的jpg文件
      find . -name "*.jpg"
    - 找到当前目录下的jpg文件和png文件
      find . -name "*.jpg" -o -name "*.png"
    - 找到当前目录下,文件名都是数字的png文件。
      find . -regex "\./*[0-9]+\.png" 
    - 举例,找出1天内被修改过的文件
      find . -type f -mtime -1
    - 看下实际例子。删除当前目录下所有的js文件。用-ok的效果如下,删除前有二次确认
      find . -type f -name "*.js" -ok rm {} "rm ./1.js"? 
    

    mv配合grep移动

    On OS X:
    ls file_* | xargs -J {} mv {} temp/
    On Linux:
    ls file_* | xargs -i {} mv {} temp/
    

    mkdir 同时创建子目录

    mkdir -p letter/important
    
    ]]>
    2019-07-26T05:16:11+00:00
    https://github.com/yihong0618/gitblog/issues/7说说工作2024-04-27T09:39:36.038704+00:00从2015年4月1日算起,我正式工作也算四年有余了。换了几家公司,除了在西山居其余的依旧不满意,不知道下一家会怎么样。 说起来有些时候还是自己的问题,所以这段时间没有参加任何面试,想把自己工作上的种种不足通过努力改掉再说。 昨天读了云风的一篇文章,虽然是初略的读,但还是很受益的,总结下接下来我的努力方向?

    1. 关注底层,编程知识
    2. 工作态度要认真一些,至少,做到事事有反馈,件件有着落
    3. 努力学习英语日语,为今后增加多一些可能性
    4. 把Python做到精通

    精通一门语言是最基本的要求。所谓精通,就是要了解这门语言的各种阴暗角落。用每一样语言特性的背后的代价。知道在面临各种问题时用这门语言解决该问题的惯用法。大部分通用语言都会有设计缺陷,表现在具体方面就是面对某些问题,写起来直接了当,而另一类问题时却要绕很多弯弯,这些绕弯弯的部分就需要用某种模式去弥补。我认为,所谓编程的设计模式,并不是跨语言而独立存在的,它们是强烈依附于编程语言的。《设计模式》这本书,我读过的版本是基于 C++ 的,设计模式被谈论的更多的是在 Java 社区。这类模式都有很深的语言烙印。我们学习设计模式其实学的就是一门语言的惯用法。

    1. 多写开源代码,努力做到GitHub全勤
    2. 今年12月开始试试面试,争取明年3-4月跳槽成功
    3. 今年12月要考日语3级,争取尝试下考托业(Depends)
    4. 今年9月份加人英语口语练习
    5. 做到去好好学习第二门语言(Go或者js)
    6. 争取每天一节公开课
    7. 做到注意力专注

    在这工作实在是太无趣了,我也不能总跳把自己跳废了。 希望到我下一家公司我能写一个总结 6757924587_480f99aee3_b

    ]]>
    2019-07-25T01:22:37+00:00
    https://github.com/yihong0618/gitblog/issues/6终不似,少年游2024-04-27T09:39:36.148389+00:00这段时间一直被这首词迷住了,记录一下

    唐多令 芦叶满汀洲,寒沙带浅流。二十年重到南楼。柳下系船犹未稳,能几日,又中秋。 黄鹤断矶头,故人今在否。旧江山浑是新愁。欲买桂花重载酒,终不似,少年游。


    哀叹之中又蕴含着无限的美。

    ]]>
    2019-07-24T01:12:44+00:00
    https://github.com/yihong0618/gitblog/issues/5搞定收藏夹2024-04-27T09:39:36.231407+00:00在技术学习上,发现自己收藏了太多的东西,买了太多的书没有读,是时候整理一下然后把事情一个一个的搞定。

    读书

    动手

    视频课程

    算法

    • 刷leetcode
    ]]>
    2019-07-22T03:05:46+00:00
    https://github.com/yihong0618/gitblog/issues/4每天留下点什么2024-04-27T09:39:36.333855+00:00从今天起 少生气 多干活 讨厌的人活的很好 我 好孤独 孤独的不想交流 孤独的只想一个人 今天好热 明天又上班了 新的一周 该好好安排自己 但 别太累了 绷紧的弦一但断了 后果不堪设想 在读《枪炮,病菌与钢铁》 好书 写的像个散文 但这样挺好,反正是写给自己的

    Sent from PPHub For GitHub

    ]]>
    2019-07-21T10:07:11+00:00
    https://github.com/yihong0618/gitblog/issues/3王兴的饭否2024-04-27T09:39:36.513499+00:00
  • 想起来全是问题,做起来才有答案
  • 每一刻都是你上半生和下半生的分界
  • 社交是一种技能,独处也是
  • 人人都是产品经理,产品就是自己的一生
  • 能努力到什么程度,是人才能的一部分
  • Sent from PPHub For GitHub

    ]]>
    2019-07-20T06:12:20+00:00
    https://github.com/yihong0618/gitblog/issues/2今天看到的一些话2024-04-27T09:39:36.630291+00:00

    去做你害怕的事儿,最后你会发现:其实不过如此。


    事情心中做。做前不声张,甚至做完后能不说也不说。


    求人不如求己。关键时刻,除了爸妈,最可靠的就是自己。


    过去的事情可以不忘记,但是一定要放下。为从前的事耽误当下的事,是不合算的。


    微信时代,成年人间微信信息不回复,一是看不起你,二是不想理你。不存在没看到或者没收到的情况。无论是哪种情况,都说明你的价值有待提升。当然,对这类人,删除是不错的选择。拉黑毕竟还是在你的列表里。

    深以为然。昨天我真的生气了。


    Done is better than perfect.


    不要去看什么网上所谓“导师”的进步指南、成长策略。


    想做的事,立刻行动。执行力是一个人最珍贵的品质。

    ]]>
    2019-07-19T01:15:25+00:00
    https://github.com/yihong0618/gitblog/issues/1Github更持久些2024-04-27T09:39:36.728707+00:00换了好几个博客了,基本上能尝试的都尝试了,这次决定用github issues写。

    今天没背书包,没带本子,还想写点什么。

    最近

    • 瘦了30多斤了
    • 开始学日语了
    • 每天一集动漫
    • 每天点点德语单词,背背日语单词
    • 每天用dayone写日记
    • 重新跑起来了,现在每天是5km
    • 长距离到了15km,5km也能进5min/1km了

    刚开始不久的

    • 每天特定时间刷社交网络(跑完步)
    • 每天用潮汐工作
    • 每周日刷朋友圈

    希望以后能增加

    1. 每天读20分钟英语小说
    2. 每天练练英语口语
    3. 每天至少保证高效工作四小时
    4. 每天刷一课视频课
    5. 每天github

    不管做什么一旦堕落就太难回去了,对于我这样意志薄弱的有一次就万劫不复了。 所以再以后不想跑步的时候就告诉自己, 一旦这次不跑,就又要重新来过

    八月十三日就是重新跑起来第一个里程碑

    ]]>
    2019-07-18T01:30:41+00:00