调了大半宿的程序,惹祸的竟然是......

我做了个查询自己文章的程序,可以通过标题或者文章关键字查找对应的文章,并通过STEEMIT打开,以前用着一直好好的,给我提供了不少便捷。


(图源 :pexels.com)

可是前段时间迁移电脑的时候,发现更新功能不好用了,所谓的更新功能就是把自己(或对应账户)的新文章(相比数据库中已经存在的)抓取到库里。

每次一运行更新功能程序就崩溃退出,好吧,我比较懒,所以对程序的要求是能用就行,所以几乎没做什么输出输出检查。因为新电脑上用了新版本的OFFICE,新版本的VS,所以我一直怀疑是新电脑导致的问题。

因为一直没法更新,所以我程序的文章库还停留在2018年11月以前的内容,每次需要翻最近的文章,我就在STEEMIT上使劲的拉啊拉啊,尤其现在STEEMIT被封,这事就更难操作了。

昨晚下定决心要修复这个更新存在的问题,可是打开VS开始调试程序,我的程序逻辑其实挺简单的,核心代码就是调用get_discussions_by_author_before_dateAPI:

{"jsonrpc": "2.0", "method": "call", "params": ["database_api", "get_discussions_by_author_before_date", ["oflyhigh", "", "2019-0320T00:44:18", 2]], "id": 1}

然后根据返回的内容重组API的JSON参数部分,再继续调用,直到读出所有的新文章。以前这样做一直没问题,可是我跟踪下来之后,发现每次运行到这里时,JSON解析就抛出异常了。

JSON解析我用的是nlohmann/json JSON for Modern C++,以前我在Linux下和Windows都分别做过简单测试,还是很好用的,可是这次为啥崩溃了呢?

看了一下崩溃时报的信息,是遇到了额外的异常数据,也就是说返回的数据不是标准的JSON格式,可是返回的数据太长了,不方便看,咋调?于是我想到执行一个简单的调用,看看是否异常,比如说get_block

{"jsonrpc": "2.0", "method": "call", "params": ["condenser_api", "get_block", [1]], "id": 1}

结果用block 1,解析一切正常,可能是创世块数据太少了?那就换个稍晚点的块,换成2000000块后发现JSON异常了,这两者有什么差异呢?

我在Linux下用简单的命令行调用,再输出返回内容,我发现get_block调用2000000块的时候,返回的后边多了字符的\n

这个图里演示了正常的返回,和异常的返回。

Python3带的JSON解析器可以正常解析,没有任何问题,而nlohmann/json就失败了,当然可能和我没用明白有关。

一般遇到这个问题,有两个思路

  • 更新JSON库或者找个能正确处理末尾\n等无效字符的JSON库。
  • 自己代码中对输入做一些过滤,去掉末尾无效字符。

但是我觉得我程序不健壮是另外一个问题,而主要问题是节点返回的数据不对,我何不试试换个节点呢?

换了个新节点,发现程序一起正常,哎折腾我大半宿的问题原来就这么简单😔。

相关链接


Vote For Me As Witness
https://steemit.com/~witnesses type in oflyhigh and click VOTE

Vote @oflyhigh via Steemconnect
Thank you!

This page is synchronized from the post: 调了大半宿的程序,惹祸的竟然是……

拆除厨宝 / Remove the small water heater

当年为了方便快捷的供热水,除了房地产商的热水水路之外,在厨房水槽下边以及卫生间脸盆下边分别加装了史密斯(A.O.SMITH)6升2000W的小厨宝。


(图源:京东商城)

小厨宝虽然容量不大,但是用了几年一直挺给力的,需要热水的时候拧开水龙头就来,不像用热水器供水要等半天(排空管路里的冷水)

可是最近我发现小厨宝老了,不中用了,时不时地自己加热,家里的电表走字飞快,然后放热水的时候,放了一小会,水就不热了。

我探究了一下导致费电以及热水减少的原因,应该是水垢太多了,据说勤换镁棒可以见少结垢,可是我根本不知道镁棒是啥,也没找到咋换。

看着小厨宝一直在那没啥用,还帮我费电,我就想怎么能让它焕发新生呢?要不清洗一下?想来想去突然发现,我没必要非得用它啊,当时是两组热水水路,我完全可以关掉厨宝的水路,直接用热水器的嘛。

研究半天,并关掉厨宝水路后,试了一下,热水器水路一切正常(我用的燃气热水器,到厨房还好,到卫生间有点慢)。既然热水器水路没问题,我又想我还把厨宝放这干嘛呢?干脆拆掉吧。

观察水路走向,被确认无误后,我用扳手把厨宝拆了下来,期间弄了一地水就不多细表了。拆下之后,我往脸盆里倒厨宝里的积水,好家伙,足足半盆多都是水垢,难怪它费电又低效。

现在一切正常,我又开始犯愁了,是把厨宝清洗一下装回去,还是直接丢垃圾箱呢?哎!


Vote For Me As Witness
https://steemit.com/~witnesses type in oflyhigh and click VOTE

Vote @oflyhigh via Steemconnect
Thank you!

This page is synchronized from the post: 拆除厨宝 / Remove the small water heater

梦碎格律检查软件

昨晚浏览STEEMIT上的帖子,看到贺老师 @hqy 的一篇帖子《江南春 早春》,贺老师填词一首《江南春》,并去公园拍了很多照片,照片拍得漂亮,词填的美!

然后看贺老师贴的词牌的格律:

平仄仄,仄平平(韵)。
平平平仄仄,平仄仄平平(韵)。
平平平仄平平仄,平仄平平平仄平(韵)。

忍不住就想对照一下,可是一对照,就发现我这个被垃圾代码填满的脑袋根本分不清平仄,甚至我都有点分不清汉字的阴平、阳平、上声、去声

思路 1.0

于是就想,如果我写一段代码,把一首词贴进去,然后它自动给我打印出对应的格律,这岂不是省却的绞尽脑汁检查之苦呢?对于诗词作者应该有一点用吧。

考察了一下,实现这个功能应该并不难,以Python为例,就有python-pinyin,这个看起来很强大的工具:

那么我用上述库,将输入的对应汉字转换为带数字声调的拼音,然后在根据数字简单判断平仄,并按相同的格式输出平仄就好了。

思路 2.0

不过按照上述思路还得我一个一个去对照,低级!

应该弄个更高级的办法,比如我输入对应的词牌的平仄结构,然后再输入对应的诗词内容,然后程序去自动对照,并给出结论,比如说完全通过,或者标记出平仄不一样的地方。

嗯,这个实现起来应该并不难。

思路 3.0

上述思路应该满足我的需求了,不过想象如果我想填很多词或者检查很多词,一个一个去输入,去检查岂不是很累?

如果我再添加一个数据库,保存一些常见的词牌,并且允许用户添加新词牌,这样用起来应该更方便吧。

嗯,这个实现起来也不困难,难的是收集和整理一大堆词牌的格律。

思路 4.0

一想到数据库,就想到网站,那么为何不做一个在线版本呢?这样大家都可以很方便的使用了,简直是造福全人类(全人类都写诗填词嘛?)的天才想法啊。

有了上述三个版本的基础,弄个在线版的应该没啥困难。

梦碎

不过等等,我突然想到,难道就我一个人想到了这么天才的想法吗?搞诗词的人应该很多很多,免不了有程序员,难道就不会想到这一点?

让我百度一下:

随便打开一个网站并选择一个词牌:http://www.52shici.com/pu.php?name=蝶恋花

人家做到的都比我想的完善多了,哎,我说不出是该高兴呢还是该高兴呢?😂 哎,我的格律检查软件就这样破产了!

相关链接


Vote For Me As Witness
https://steemit.com/~witnesses type in oflyhigh and click VOTE

Vote @oflyhigh via Steemconnect
Thank you!

This page is synchronized from the post: 梦碎格律检查软件

IPad Mini 5来了

好多年前去朋友家玩,他拿出一个很大的平板电脑像我炫耀,说电脑还可以这么玩。我一看,哇,好新奇啊,那么大点的东西,能上网能打游戏能看新闻能聊QQ,确切地说,简直无所不能嘛。

后来我知道这个东西叫Ipad2,然后回家后,我就忍不住剁手了,当时花了近4000大洋,好心疼

更傻的是,我花了288元买了一个傻傻的套子,买来以后用过几次就被我丢一边了,太傻了。

再后来,又出来一个IPad Mini,朋友圈上火了一段时间,在IPad Mini 2发行时,我忍不住又剁手了。

MINI2真的很好用,于是看京东促销时,忍不住又入手了一个。(MINI4刚出,性价比不高)

之后,IPad一代又一代的升级,可惜MINI升级到4之后,再也没有更新了,17年末,又忍痛买了个MINI4,看起来是比MINI2要轻薄一些。

我觉得MINI到4可能就终结了,毕竟苹果一代又一代新产品出来,也没见MINI升级,MINI4的处理器还是A8呢,而新的产品早就A9\A10\A11\A12了。

直到今天,看到新闻里说Apple出新版MINI5啦,去官网一看,果然有了,并且使用了A12处理器

价格也并不高,才2999起(又是定价心理学,让我觉得才2000多,而不是3000元😡),哎,心里又长草了,等STEEM回到10元一枚,我一定狠心买它一个。

相关链接


Vote For Me As Witness
https://steemit.com/~witnesses type in oflyhigh and click VOTE

Vote @oflyhigh via Steemconnect
Thank you!

This page is synchronized from the post: IPad Mini 5来了

升级本地EOS节点至v1.6.3

好久没有升级EOS节点啦,去Github上看一下,EOS v1.7.0版本都已经发出来五天了。不过v1.7.0还是让他们别人先去试水吧🤭

倒是v1.6.3据说是修复了net_plugin中的小小内存泄漏问题,所以应该升级一下。

This release contains security bug fixes and miscellaneous fixes.

编译依旧是超级顺利的,按惯例确认一下版本号

nodeos –version

返回如下,看来一切顺利哦

EOS价格走势最近不是很让人满意,不过比起前段时间十几元的价格还算好啦。当然了,如果再想想自己曾在138元的价位上还追加了不少,这心啊,真的是拔凉拔凉的。

不过凉啊凉啊就习惯了,要不然又能咋样呢?话说我当时囤的EOS至今一枚没卖呢,合计要不回头卖一些换成大米?

相关链接


Vote For Me As Witness
https://steemit.com/~witnesses type in oflyhigh and click VOTE

Vote @oflyhigh via Steemconnect
Thank you!

This page is synchronized from the post: 升级本地EOS节点至v1.6.3

续费了QQ超级会员 / Super Member of QQ

今天登录手机QQ,突然弹出一条提示信息,大意如下:

你的QQ超级会员还有XX天到期,到期后你的2000人群会自动降级为200人群,并不允许新人加入。赶快续费超级会员吧。


(图源 :Pixabay)

以前玩Arduino的时候,和朋友们建了一个QQ群,后来人越来越多,就升级到500人群、1000人群,再后来为了升级2000人群,我将一个QQ号升级为超级会员。

超级会员每月20元,一转眼好几年过去了,给马化腾交了好多钱。虽然我现在几乎很少玩Arduino啥的啦,但是还是继续交费吧,给大家一个玩的地方。

因为我的QQ会员以前续费到2023年6月,所以我只需升级补差价即可,先升级12个月的吧。

虽然现在QQ用的越来少了,但是技术群还是QQ群方便,也便于管理。另外QQ也一直整一些花样,吸引大家交钱,比如说什么成长值排行之类的。

又想起那个比较经典的冷笑话:

女友:
我们分手吧。
我:为什么?
女友:因为你是尊贵的QQ会员,我觉得配不上你。

好激动呀,现在我不但是尊贵的QQ会员,而且是超级尊贵的超级会员啊!😂


Vote For Me As Witness
https://steemit.com/~witnesses type in oflyhigh and click VOTE

Vote @oflyhigh via Steemconnect
Thank you!

This page is synchronized from the post: 续费了QQ超级会员 / Super Member of QQ

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×