2022年春节历程

这已经在第二个在上海过的春节了 今天中午在和同事吃饭的时候在吐槽,今年过节没回去,出去吃个饭外面的小摊大部分都关门了。同事回了句,今年当然关门的多,很多人今年都赶着回去了。 仔细一想,还真是。去年在上海过年的时候,外面的小店还是有很多开着的。毕竟去年政府号召的是就地过年,连的这很多小商小贩都没回去。而他们算是没有五一,十一的,所以很多人算起来已经两年没回家了。今年政府没有再说就地过年,所以很多人都早早的回去了。 今年的春节假期第一天对我来说都是艰难的,公司额外多给了一天假期,但就这我在假期的第一天买菜时,菜还是不出意料的涨价了不少。老板一边买一边还说,下午就关门了,要买就赶快买了。虽然贵了不少,终究还是买到了菜。 本来打算是过年在家自己蒸点馒头和炸点油条的。但越临近假期,越是懒。开始想的是油条就不搞了,后面就单独弄点馒头吧。后面连馒头都不想搞了,还是买吧。可惜的是,等我放假,门口的几家包子店早关门了,其中一个还是连锁的那种。唉! 又不可能不吃馒头了,于是下午便开始满大街的找馒头店。多走了两个路口,看到旁边有人拎着大袋的馒头,我的心也就放了下来。没走多久,终于看到了开着的馒头店。 这个馒头店的味道还是不错了,买完的路上我们就消灭了2个。馒头透着一股清香,跟老家的馒头也没差多少,属实好吃。其实离我家也没多远,主要还是之前懒,没几次跑过这么远的地。 除夕的伙食是以一顿羊肉火锅开始的。今年过年是啥也没准备,懒省事当然还是火锅最好了。羊肉是在我工作日中午最常吃的牛肉面旁边买点,我包圆了他家最后的三块羊肉。配菜就是昨天在菜市场买的,其他的还有就是去年5.1回去拿来的还没有吃完的粉条 。羊肉旁边买来的准备炒菜用的小狮子头也被我用来涮火锅了。 火锅这玩意一吃就上瘾,后续春节期间又吃了3,4次。基本都是以羊肉打底,蔬菜涮之。粉条,狮子头偶尔点缀。今年吃火锅的时候也没有喝点啤酒什么的,想想去年,咱可是用白啤掺着黑啤灌的。 今年春节喝的主要是橙汁。最后一天去山姆本来是陪同事的,但是自己后面终究也是买了一大堆的。其中最主要的就是橙汁,本来是去拿青柠汁的,这玩意算是山姆的招牌饮品吧,几乎是人手一件。橙汁就放在它的旁边,看着颜色还不错,就顺手拿了一瓶。眼神瞄过,有促销活动,买二减十,这不就相当于5折码?最终扛回来了两瓶。 味道怎么样呢?感觉跟我小时候喝的汇源橙汁差不多,味道不错,但是后味太苦,也不清楚什么情况,大多数人估计还是喝不惯的。看了看配方表,也就只有橙汁和橙果肉,也是奇怪。自己鲜榨的橙汁也不是这个味道啊。 上海的大年初一实在有些冷清,去年的今天因为小区实在太冷清,我们特意跑去了热闹的豫园。不过豫园似乎太热闹了,今年我们家的怀着个大肚子,明显是不能去那么拥挤的地方。 总待在家里也是不可能的,待久了会闷的。于是下午稍微收拾了下便去了江对岸溜达了起来。看了看复兴岛一个下午也就过去了。这地也不是啥可能热闹的地,一路上冷冷清清的,都没见到啥人,也就岛上的海警部队的训练声音嘹亮。 后面几天基本也就这节奏了。一天逛,一天家里蹲。把杨浦区走了不少。原本我觉得我这个地已经算是人口稠密了,但是和它那里一比,还是差远了。现在总算是知道人家这为啥算市中心了。 中途还去了一趟医院,赶个大早去了。本打算在那边吃个早餐的,谁知道过去旁边的一排都关门了,真的是,这是都不挣钱了吗?跑了三公里,到一个地铁口旁边,以为那边吃的会多点,谁知道也是毛都没有。没办法,只好到全家去买我刚刚问过的还要20分钟才熟的包子。虽然很难吃,也只好将就了。 中午去了趟之前住过的蓝村路,那个地吃的多,打算在这里好好补一补早上没吃好的胃口。走了一条街,也是没找到好吃的开门 的店。生意好的都回家过年了。匆匆在旁边的老盛兴对付了一口就回去了。 下午饿了的时候,总算是好好的满足了自己一把。弄了两个老好吃的外卖,还是外卖靠谱了。牛肉板面实的我老家大新野的真传,汤,炸辣椒,和面都很正宗,味道好极了,就是老板的包装有点次,面都有点跎一起了,但就这样也是极满足了。胡子大厨也是一如既往的好。 假期后面我还去寻找这家板面店,去吃下没有跎的板面。找到这家店发现是个专门的外卖店,店里面几乎没有坐的地,没怎么考虑也就放弃了。下次想吃还是外卖了。 春节期间倒也干过两个和技术有关的事。一个是根据github的开源项目最终飞机的行踪的,这个就干了一半,还有点小问题,后面有空再看吧。另外一个就是把自己的blog从wordpress迁移到了hugo。 出发点呢就是wordpress太慢了,实在是太慢了。hugo用起来太省力,而且就blog而已功能足够,还加载快。中间最头痛的是迁移历史文章,虽然咱也没多少文章,但是wordpress的到处md的插件总是死掉,中间真的是让人很崩溃,搞得人心情都很不爽。 终究还是人肉迁移了,也就是文章不多,就这也搞了差不多8个小时。上班我也没有这么敬业。从晚上搞到凌晨4点多,就这还有点收尾是放到了中午干的。整个生物钟都弄颠倒了。假期的后面两天都在为怎么把这个作息调整好而难受。 过年期间也没啥好剧让人看,看了一部下线好久的我和我的父辈。真的也就第一段吴京的戏份让人惊艳,后面的几段都让人有点昏昏欲睡。再有就是又看了童年鬼畜剧,西游记后传。最近抖音总给我推荐,剪的也吸引人。爬了下种子,看了起来,还是老剧有滋味。 假期的收尾是以一顿海底捞结束的。以火锅始,以火锅终。最后一天还是在杨浦逛的,黄兴公园是足够大的,人工湖旁边大爷大妈们载歌载舞,好不乐哉。这里也是小朋友的乐园,旁边的人造沙滩,到处都是玩沙的。还有人在这里打沙滩羽毛球。 海底捞吃饭的时候是春节期间最难受的时候,里面可能是太暖和了,导致我困意十足,生物钟大概还没恢复的缘故,头也有点蒙,吃起来是完全没有胃口,也算是省了点钱。 最难受的时候都打算吃完打车回家了,但一出商场,冷空气一吹,还是地铁回去,毕竟省钱。18-6简直了,这换乘区间赶的上徐家汇了,我说怎么工作日没啥人在这里换乘呢。 晚上回去,一夜虚汗,倒也是睡了不少时间,睡眠完全恢复了,体力也正常了,也迎来了工作日。

2022-02-07 16:08 · 1 min · 江波·林沂

ES相关知识点

ES的基础概念 Near Realtime(NRT) 近实时,ES是一个近实时的搜索服务。数据提交索引之后可以立即搜索到。为什么近实时可参考下文中的ES索引文档过程。 Cluster 集群。一个集群由一个唯一的名字标识,默认为"elasticsearch".集群名称非常重要,具有相同集群名称的节点才能组成一个集群。集群名称在配置文件中指定。 Node 节点。存储集群的数据,参与集群的索引和搜索功能。节点有自己的名称,启动时会以一个随机的UUID的前七个字符作为节点的名字,也可以指定任意的名字。通过集群名在网络中发现同伴组成集群。一个节点也可是集群。 Index 索引。 一个索引是一个文档的集合。每个索引有唯一的名字,通过这个名字来操作它。一个集群中可以有任意多个索引。 Type 类型。指在一个索引中,可以索引不同类型的文档,如用户数据、博客数据。从6.0.0 版本起已废弃,一个索引中只存放一类数据 Document 文档。被索引的一条数据,索引的基本信息单元,以JSON格式来表示。 Shard 分片。在创建一个索引时可以指定分成多少个分片来存储。每个分片本身也是一个功能完善且独立的“索引”,可以被放置在集群的任意节点上。Shard本质上是一个Lucene Index。每个shard都存在至少一个副本,并且不会存放在同一个节点呢。这样不仅可以加快查询时的速度及提高吞吐量,同时也可以天然的支持分布式。 Segments. Shard中包含了很多的Segments。ES的底层数据结构就保存在Segments中。比如,倒排索引(Inverted Index), Stored Fields, Document Values, Cache。 Replication 备份: 一个分片可以有多个备份(副本) ES的底层实现Luence, 倒排索引(Inverted Index) 一个有序的数据字典Dictionary(包括单词Term和它出现的频率) 与单词Term对应的Postings(即存在这个单词的文件) es索引文档过程 es节点写入请求过程。write→refresh→flush→merge es节点接受新的请求(写入数据)时,会首先将数据写入内存缓存,同时定时(默认1s)写入到磁盘的缓存区。以上过程称之为refresh。refresh后数据已经进入segment, 此时可以被搜索到。准实时的误差其实就是refresh的刷新时间。 特殊情况下,refresh过程中可能会存在丢失数据,这时候就需要es的translog机制。也就是在收到请求的同时写入到translog中。当磁盘缓存的数据写入到磁盘中时,translog会清除,这个过程为flush。flush的触发时机为定时出发(默认30分钟)或者translog变得太大时(默认512M) refresh过程中,每次会产生一个小的segment。由于是每秒刷新一次,过多的小的segment会影响系统性能,因此 es会不断的通过定时任务去合并小的segment。此过程可称之为merge。 es的translog机制 flush过程中,内存中的缓存也会被清理,内容会被写入一个新段(segment), 段的fsync将创建一个新的提交点并将内容刷新到磁盘,旧的translog将被删除并重新开始一个新的translog。translog本质是一个日志文件,通过检查点来进行日志恢复。translog默认为每个请求时候进行一次fsync写入磁盘,这个可以强一致性的保证数据不丢失,但如此会影响性能. 如果对数据丢失有一定容忍,那么可以配置async,对其进行异步刷新。 es中的Replica(副本)机制 es包含一个主分片及多个副本分片,由此来保证分布式。索引文档时,写入主片及多个副本分片(副本分片为并发写入);读取时,只需其中一个返回即可返回结果。 ES常见的非常理情景 为什么添加文档时可能会导致存储空间的减少? 答:ES在添加文档时,可能会合并过多的小的segments,从而导致空间占用的减少。 ES常见的合理利用场景 根据日期建立索引。常见使用场景为交易数据,日志数据。尤其是在需求在于根据日期查询的场景下。这样做的好处在于可以很快的拉取数据及删除过去数据。 LogStash。LogStash在ES的生态中基本是必不可少的。ES的数据一般不会直接写入,都是有第三方系统推送过来的。推送大部分情况下都是由LogStash来进行的。LogStash由如下几个好处: Logstash具有基于磁盘的自适应缓冲系统,该系统将吸收传入的吞吐量,从而减轻背压 从其他数据源(例如数据库,S3或消息传递队列)中提取 将数据发送到多个目的地,例如S3,HDFS或写入文件 使用条件数据流逻辑组成更复杂的处理管道

2022-02-07 15:49 · 1 min · 江波·林沂

2022年2月12日第318期“临安第一峰窑头山”徒步活动召集

2022年2月12日 非凡足迹与您相约临安第一峰窑头山 让我们一起跟随非凡足迹 赴一场冬日里的浪漫徒步 活动报名链接 天目山脉向东延伸,在余杭与临安、安吉交界之处,坐落着余杭的第一高峰——窑头山。这里是天目山脉东端的主峰,也是太湖的重要源头之一。 窑头山海拔1095米,放眼杭州都是数一数二的高峰。上山之道沿途山涧高低曲折,绵延十余里,野趣横生。 窑头山顶平台空间较小,却有无限风光。若你是登山发烧友,一定要来试试。 走在布满青苔的山路,听着瀑布落水声,看山沟里的细水长流,走过小径,听看竹林里的落花、流水…站在青山瀑布前,犹如置身于故人的诗句里。 我们已为你提前探路,雪中徒步,体验下雪山飞狐的感觉。临安今天大雪,让雪来的更猛烈些吧

2022-02-07 13:28 · 1 min · 江波·林沂

追踪名人行程的一种尝试

近期在v2ex有用户说马斯克开价5k刀让美国一少年不在twitter上爆料他的行程,但是该少年没有接受,并试图让马斯克提高价格到5W刀,当时就大概看了两眼就过去了。这两天在github上看到了一个开源的工程(plane-notify),大概就是这个少年开源的,工程的作用就是追踪某个飞机的行程,并自动发布到twitter等公开媒体上。 开始的时候有点差异,这个只是追踪某个航班的信息,怎么能知道马斯克的个人行程的。能知道马斯克坐那个航班我还需要这个玩意?后面一想,奥,马斯克一般做的是私人飞机啊,这玩意又不长换,追踪它的私人飞机飞那里,可不就知道他行程了。 今天有空把代码拉下来看了下,按照README运行了下。反正一直就是在不断的刷着各种颜色条,跑了一会感觉不对,这玩意像是没有结果了。 异常运行结果 后续又看了下README,发现这个ICAO需要自己重新设定的,原来的那个是随便搞的,肯定是什么信息也查不出来,所以才一直这种绿红的色条一直不断出现,而没有什么实质性的信息出来。 google查了一下这个ICAO,结果倒是很明确,就是飞机的一个唯一应答码/标示码。但是找遍了半天也没找到一个有效的ICAO。主要是也没有现成的例子。在各种飞行网站中找了半天现在还在天上的飞机,也是没找到这玩意。又尝试了几次,终于是有点眉目了,就是过程有点搞。找ICAO的步骤如下: 到FlightAware网站上根据起飞地和目的地找对应的还在天上飞的航班。然后根据航班获取相应的航空公司和机型数据。 航空公司及其相应机型数据 到民航休闲小站中找各个航空公司目前所有的飞机型号及其对应的注册号。 吉祥航空所有飞机型号及其对应注册号 根据注册号到网站Aircraft查询其响应的ICAO。⚠️这个网站是要注册才能查询的。 根据注册号获取ICAO 上面的1,2两步其实都可以在FlightAware完成,直接获取注册号。不过这个需要充值FlightAware会员,为了省钱,我们还是麻烦点吧。 将第三步我们拿到的ICAO替换到原来的值后,重新运行。日志终于打出了相应的航班信息,并最终生成了一张行程图。但是有点奇怪的是,怎么起飞地是赫尔辛基。我搜索的航班明明是上海虹桥到三亚啊? 最终生成的奇怪的行程图

2022-02-04 23:47 · 1 min · 江波·林沂

闲逛杨浦市光 新江湾城

春节期间没回老家,呆在上海实在无聊。昨天已经在家闷坐了一天,今天想了想还是要出去晃一圈。旁边很多地方都已经去过很多次了,看了看地图,近处没去过的也就是杨浦的市光-新江湾城片区了,今天就在那片晃一晃了。 先去的是市光这个区域,这个地方是听说过,但从来没去过的地。城市节目比较老,旁边只有偶尔几个看起来比较漂亮的楼盘,矗立在一大帮的老破小旁边可以说是鹤立鸡群。这一块临街的商铺比较多,商业看起来比较发达,大概是旁边的租金比较友好。不过是过年期间,商铺大多数是不开业的,所以也就没那么热闹,只有几个商场之类的还开着,人气也就那样吧。 我走的这条路叫包头路,刚走的时候还在和我老婆说我们这是到了内蒙古啊。走着走着旁边出现了一个安答火锅的店,也算是呼应了包头路这个称呼。毕竟安答这个称呼咱也就知道郭靖和托雷用过,他俩可是妥妥的蒙古大草原长大的。 包头路快到殷行路的地方有一个工农公园,听着名字应该是建国后不久起的名字。公园门口有各种奇怪的动物骨骼制品,咱认识的也就一个牛角梳子,依稀看到的还有一个熊爪子,旁边还围了不少的人。公园里大妈们放着音乐,跳着老年迪斯科。格调还挺好的,我都有点想跳起来。 市光走完顺着殷行路向新江湾城走去,走到一半有点累了。骑辆小单车继续,中途大概在政悦路附近,旁边有个小公园,里面的景色实在吸引人,本想进去探索一番的,奈何太太今天已经走太多了,只能放弃,留待下次了。 新江湾城的城市界面相比于市光那简直高的不是一星半点,从市光出来,越靠近新江湾城,城市界面就越好。到了新江湾城的核心之后,城市街区感觉都有点想迪士尼小镇了。不过,童话的世界代价当然不会那么便宜,随便看了看旁边房子的价格,就没几个低于1000W的,大部分都是在1500W往上的。 这边的道路绿化及河道也是盛于上海其他地方,也不知道怎么形容,就是看起来就让人感觉舒服,这还是在冬天。要是春天来,河流及街道两边都盛开鲜花,那一定是更美了。 新江湾城的河道都比其他地方清澈了许多 新江湾城普通桥梁及其河道远方 城市界面是好了,但是显然人气差了好多,走了几条街道就没遇到几个人。旁边也没几个店铺,走到这里就差不多中午了。点评上找了几个馆子,线下一看全部都关门回家了。好不容易找到一家店铺,在里面草草解决了午饭,就回去了。

2022-02-03 21:39 · 1 min · 江波·林沂