好好的爱自己

微信朋友群里一位好友H突然发消息过来:J猝死了。


(图源 :pexels)

啊,我们听到这个消息都万分震惊。严格上讲,J和我并不熟,我本人和他从未见过面,但是因为H是他的好友,时不时的在群里聊些J相关话题,所以我们对J也算是十分了解了。

我们知道J是80后的小伙,知道J有一个温柔体贴的老婆,知道J前两年喜得贵子,知道J踏实肯干肯吃苦。从H时不时的在群里聊天信息中,仿佛一个鲜活的、家庭和睦、事业有成的J就在我们眼前,然而,却突然得到J猝死的消息,让人难以接受。

其实身边的人猝死的不止J一个,当初我刚参加工作时,部门里有一个产品经理Z,为人和蔼、处事公正,我们都把他当作老大哥。当时公司和日本的索尼爱立信合作,一部分业务放到沈阳一部分业务放到大连,而Z就是公司在大连这边的负责人。

沈阳这边每次开会的时候,都要表扬大连的团队如何如何努力,比如说每天晚上都加班到十一二点;又比如说我一个女同事去卫生间之后一个多小时没声音,大家吓得砸门大喊,之后总算没什么问题,原来她太累了,在卫生间睡着了;诸如此类事情比比皆是,公司范围大肆宣扬,甚至上升到所谓的公司文化的范畴。

我曾经因为要和日方交接一些任务去大连公司出差两周,虽然我很敬佩他们这种拼搏精神,但是我依旧我行我素,按时上班下班,为此我的另外一个上司对此非常不满,让我和大家学着晚上加班,甚至和我说哪怕装装样子,顾及一下影响。我当时回复是我当天的工作完成的很好不需要加班,还有为什么要装?

总之除了我的另类,大家都很拼搏,有些真的是拼搏,有些则是随波逐流,有些晚上就是泡在办公室打游戏,打发时间。大家一起维护着这份繁荣,至少看起来很美。而Z,作为外派到大连这边的负责人,则是真的很拼搏。

我这个另类用两周时间把和日方该交接的工作交接完成,公司的意思让我常驻大连,既然常驻,那么住宾馆成本太高,于是再未经我同意常驻的情况下,帮我租好了民宅,我看苗头不对,找了个借口跑回沈阳总部。在我回去之后,领导对我一通批评,当然免不了拿大连团队的拼搏说事,比如说A如何,B咋样,还有就是要我多像Z学习,肯努力、负责任、有担当。

然而没过两天,噩耗传来,Z在加班时突发疾病猝死。全公司上下一片哀痛,谁能想到这个和蔼可亲的老大哥突然就与我们天人永隔了呢?

在那之后,公司强制要求晚上加班不允许超过8点,也不在倡导什么加班拼搏等所谓的公司文化了。不过,对Z而言,这些对他毫无意义了,挽救不回他的生命,也遏止不了亲人的哀思。


(图源 :pexels)

其实除了朋友的朋友J,还有公司的老大哥Z,每天从新闻上或者朋友口中,听到过太多太多猝死的例子。生活在当下的社会里,房子、车子、孩子每样都是一座大山般压在我们身上,还有父母的养老,还有时刻可能发生的疾病的威胁,让我们不得不去拼搏,负重前行,喘一口气,或者是很奢侈的事情。

然而,一旦猝死这个魔鬼降临,那么我们之前无论如何拼搏如何负重都将成为泡影。所以,保重自己真的很重要,好好的爱自己,我们才能有能力长久地更好地爱他人

但愿身边的朋友都活得好好的,不要再发生类似的悲剧。


This page is synchronized from the post: 好好的爱自己

帮朋友想想上了年纪玩点啥好呢?

我的朋友和我说,他的飞行器(四轴)玩腻了,我还记得十个月以前,他拿一堆四轴飞行器套件,让我帮忙焊接呢。并且在我这进行了光荣的首飞,并且光荣的挂树上了。详情可见玩四轴飞行器(无人机/穿越机)/ Play with Quadcopter,这也没多久啊,这么快就腻了呢。

我说要么你换一个大疆的,带航拍功能的四轴吧,估计会有点新鲜感吧?说实话从大疆精灵三的时候我就开始长草,长到精灵四、御、晓等各种新型号出来,我的草或许是长得太长太久了,竟然逐渐枯萎了。有时候想想人家常出去玩的带个四轴航拍啥的是挺酷,我整天在家拿个四轴往哪飞啊?

我另外一个朋友有段时间特别迷航拍,精灵三和大疆那个很贵的悟都入手了。有段时间经常在朋友圈秀航拍的图片啥的,换一种视角看周边一些常去的地方,是挺有意思。可是没多久,这哥们不秀航拍图了,我问咋不出去开飞机了呢?他回答炸鸡一个,卖掉一个,不玩了。

我这个四轴玩腻的朋友也表示了同样的担忧,他说只要想象一下,就会觉得,久了一定会腻歪。哎,看来没法和他蹭航拍玩了。我又想起来,他有一堆或电动或油动的小赛车呢,咋都不玩了呢,虽然在我眼里这些玩意就是小孩子玩具。

他回答,赛车也腻歪了。可是想当初,他让我帮忙组装赛车的时候可是兴奋不已呢,哎,果然小孩子心性,这么快又匿了。赛车详情可以参考我的朋友又来了,这次不是四轴,是赛车

那能玩点啥呢?要么玩摄影,弄点长枪大炮的出去拍鸟拍鱼拍树叶拍美女,我看有的朋友玩得很HIGH呢,一会去拍东北虎、一会去拍兵马俑、要么去塞外拍马、去龙岩拍民俗、去新西兰拍美景… 我那哥们说得了吧,哪有时间满哪跑,在家门口天天拍有啥意思?咦,咋感觉是在说我呢?

那要不做HIFI发烧友吧?也买个几万几十万的器材,然后磨杯咖啡或者泡杯茶,躺沙发上听歌,然后感慨这生活多么美好啊。结果又被否了,他说他这耳朵分辨率太低,听所有的喇叭都这一样的效果,几十万和几块钱的器材就没区别,咋发烧啊?

那要不玩户外做驴友?弄一身冲锋衣,弄个登山靴,再整个大背包,然后哪偏僻哪危险往哪去。回头朋友圈再贴的路线图和几张照片,满头大汗加剪刀手一定要有一张,然后配文:“我又征服了XXX,成功挑战了自己!” 多酷多帅多带感啊,还捎带锻炼身体了。哥们说别闹了,我去做驴友,估计就得出动救援队然后上新闻了。还别说,想想这概率还真挺大的。

哎,这可咋办呢?想想还是我好,电脑就是我我的玩具啊,百玩不厌。我和哥们说,要不和我一起学编程吧,老好玩了,结果这家伙果断地不理我了。早知是这结果,我就早这么建议他了,浪费了我这么多宝贵的时间,有这时间我能多写好几行垃圾代码呢😵


This page is synchronized from the post: 帮朋友想想上了年纪玩点啥好呢?

介绍一个JSON C++ 库 / JSON for Modern C++

我们都知道,在Python或者PHP等语言使用JSON是非常方便的,因为两种语言本身就带强大的JSON库,在Python脚本里只需调用json.dumps()json.loads()即可;在PHP脚本中,只需调用json_encode()或者json_decode()就都能搞定。那么在C++中,是否可以一样方便呢?


(图源 :pixabay)

我学习了几个JSON库,感觉用起来都怪怪的,直到后来看到nlohmann/json,宣称是JSON for Modern C++ ,看起来舒服多了。

项目地址 & 使用

这个项目托管在Github上,地址如下:
https://github.com/nlohmann/json

有别于其它复杂的项目,这个项目可以通过直接包含一个.h文件来在我们自己的程序中加入JSON的支持,简直是简单的不得了,尤其是对我这种脑容量小的,特别适合。(单个.h提供使用上的便利,但是我不推荐)

只需下列包含语句就可以在程序中使用JSON功能了

#include <nlohmann/json.hpp>
using json = nlohmann::json;

因为所有内容/功能都在文件中了,所以编译的时候,我们无需链接额外的库。(但是这样考虑电脑的性能,老一点的机器可能需要编译一会呢)

需要说明的是,因为这个JSON库中大量地使用了C++11的一些功能和特性,所以需要设置编译器使其支持C++11,对G++而言,添加 -std=c++11即可。

简单示例

项目页面nlohmann/json的下边有很多例子演示如何使用这个库,我没必要做些重复的工作,这里我只给大家简单演示一下即可。

创建JSON

假设我们需要下列JSON代码:

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

很熟悉,是不是,就是STEEM区块链上读取创世块的代码。那么如何从头构造这个JSON结构呢?其实很简单,代码如下:

json j;
j["jsonrpc"] = "2.0";
j["method"]="call";
j["params"] = {"databae_api","get_block",{1}};
j["id"] = 1;

好吧,这看起来还是有些费劲,那么有没有更简单的方法呢,答案有的,还记得我们讲过的C++11 中的原生字符串/ raw strings吗?

上边代码可以这样写:

json j_02 = R"({"jsonrpc":"2.0","method":"call","params":["databae_api","get_block",[1]],"id":1})"_json;

没错,就是字符串后边加个_json,就自动将字符串转成json类型了。

继续,还觉得不直观,那有更直观的方式:

json j_02 = json::parse(R"({"jsonrpc":"2.0","method":"call","params":["databae_api","get_block",[1]],"id":1})");

有没有一种很熟悉的感觉?没错,这不就是Python中的json.loads()嘛。

修改JSON

其实修改的方式我们已经讲过了

json j;
j["jsonrpc"] = "2.0";
j["method"]="call";
j["params"] = {"databae_api","get_block",{1}};
j["id"] = 1;

这样操作即可,是不是太简单了

序列化 / Serialize

既然能实现类似json.loads()的反序列化,那么如何实现json.dumps()呢?答案更是简单,比如针对我们上边创建好的JSON数据只需使用如下方法即可:

std::string s = j.dump();

另外对于复杂的Json数据,有时候我们需要它显示的美观一些,那么我们可以用下列语句实现:

std::string s = j.dump(4);


是不是挺好看滴?

总结

nlohmann/json是一个很简单易用的JSON C++ 库。本文只对其进行了简单的介绍,想发掘它强大的功能的朋友,自己来玩吧。

相关链接


This page is synchronized from the post: 介绍一个JSON C++ 库 / JSON for Modern C++

祈愿树

20180424_122806.jpg

在公园看到一棵祈愿树。它应该是一个老榆树,因为上边结满榆树钱,榆树钱又叫榆树巧儿,是榆树的果实。

小时候榆树结榆钱的时候,我和小伙伴们经常找一两棵榆树爬到树上,将大把大把的榆钱塞到嘴里,那叫一个香甜。长大后,不知何时起空气当中多了雾霾,榆钱这种大自然的厚赐上边布满了尘土,再也没法直接吃啦。

1.png

这颗老榆树长满黄绿色的嫩嫩的榆钱,挂满的红色的祈愿布条,相映成趣,特别有意境。

可是这颗树已经垂垂老矣,斑驳树干,要看铁架子支起来的枝条,让人不禁担心,如果园林的维护人员不去照顾它,那么它还能存活多久呢?

而那些祈愿的人们,将这样一棵老树奉若神明,寄希望于它,希望它给自己或者亲人带来好运,心情或者可以理解,但是又有几人会如愿以偿呢?

其实几乎每个景点都有类似这样的祈愿之处,要么是一棵老树,要么是一段木桥,挂满红色的布条为亲人祈福,或者挂满一些小铜锁寓意永结同心等。

2.png

其实福也好感情也罢,都是要我们努力要我们付出才会拥有,否则岂不是来得太轻易了?不过说了这么多,我依然很喜欢这棵祈愿树,因为它很漂亮,也因为它勾起我一些童年的美好回忆。


This page is synchronized from the post: 祈愿树

O哥闲扯淡:钱包私信SPAM,其实很好解决

想必大家都被钱包私信SPAM所困扰,一些乱七八糟的转发机器人还有一些发ICO的还有一些发钓鱼链接的还有一些宣传自己文章求赞的还有求关注的等各种垃圾信息充斥满整个钱包页面。

偏偏STEEMIT的钱包功能做的一直不太完善,显示的内容有限还有些卡,这样在这些垃圾信息的轰炸下,我们想看一些有价值内容太难太难。

那么,这种情况有没有办法解决呢?我觉得其实应该很简单,且听我闲扯。


(图源 :pixabay)

提示:O哥闲扯淡系列本就是闲扯淡,诸位千万别当真!

设置最小转账限额

STEEM的钱包(转账功能)之所以被滥用,就是因为STEEM区块链,转账不需要手续费。不需要手续费,是给我们操作带来诸多方便,但是也给了SPAMER可趁之机。只需转账0.001 SBD或者0.001 STEEM就可以在MEMO里附加大量的垃圾信息,这买卖怎么看都不亏本。

当然了,如果STEEM和SBD都涨到1W美元一个,那么0.001SBD或STEEM就变成巨款了。但是这个暂时没有指望。如果把STEEM/SBD改成转账收费呢?这又与STEEM设计的初衷不符。那么有没有什么方案即不改变初衷,又能遏制钱包SPAM呢?

我想到一个方法就是设置最小转账金额,比如说0.1或者0.2 STEEM/SBD。如果低于这个限额,操作将被拒绝。这样的话,对于SPAMER而言,成本增加了,自然会考虑少发垃圾信息。对于用户而言,不介意多收一些垃圾信息,毕竟一条0.2SBD的话,一天收几十上百条就发家了。

至于正常用户的正常转账,没谁会0.001的来回转吧。正常用户正常发消息,也不会介意多花一点SBD的。所以正常用户的正常操作,我认为完全不受影响。

设置钱包最小显示金额

上边设置最小转账限额的操作,需要修改STEEM的程序,尽管我认为加上这个功能修改的工作量不会很大,但是毕竟要改嘛,所以能不能换一种方式解决呢?

答案也是有的,就是再钱包中加上一些过滤和筛选设置(可以用户自己设置)。

举例说,我可以设置只显示超过0.1SBD或STEEM转账信息,这样垃圾信息就都看不到了。

这种方法实现起来,简单便捷,无需对区块链程序进行修改。除了限制金额,还可以实现操作类型的过滤,比如只显示转账信息、或者只显示交易信息等等。各个第三方网站以及APP可以根据类似机制做出自己特色的钱包,让用户用起来更加舒服,让自身更有竞争力。

总结

针对钱包私信SPAM,我们其实有N多手段可以对付。比如上边列举的两种方法,第一种方法直接修改区块链的设置,从根源上杜绝钱包SPAM。第二种方法在应用端设置,尽管无法根治,但是如果这些垃圾信息都不显示,也是不错的。

当然,这两种方法只是随便开开脑洞,还不够完善。比如第一种方法,限制金额设置多少合理?是否应该和STEEM喂价等关联起来,实现自动调整(价格高的时候调低,价格低的时候调高),或者将对应参数增加到见证人设置中,由见证人提供并决定?

本文抛砖引玉,希望将来能有一种有效的机制,杜绝钱包私信SPAM,还我们一个洁净的钱包。


This page is synchronized from the post: O哥闲扯淡:钱包私信SPAM,其实很好解决

邮件 / Email

每次打开电脑,我都会同时开启ThunderBird,我用的一款邮件客户端。然后看着N个邮箱里的N封未读邮件,一种叫做焦虑的感觉油然而生。

每封未读邮件都代表着一件事情需要我去处理,作为一名重度强迫症患者,以往的我每次看到邮箱Inbox旁边的数字,都会无法忍受,每天都要将未读邮件归零,才会放心的睡觉,否则便会寝食不安。

而现在,粗略数数,未读邮件竟然多达几万封,什么时候我竟然欠下如此多的债务?看来这不是强迫症不强迫症的问题了,而是我真的已经病入膏肓了。


(图源 :pixabay)

曾几何时,邮件和事情、任务等通通无关,是人与人之间交流沟通的工具。还记得很早很早之前,我的第一个邮件账户应该是yahoo.com.cn的,账户也是oflyhigh,那时候应该还没有OICQ,ICQ倒是很流行。

于是我和朋友之间都是用Yahoo邮箱沟通,偶尔用用ICQ。再后来有了雅虎通和AOL,用Yahoo邮件越来越少了,用雅虎通的时间相对要多一些。

但是即时聊天工具有个缺陷,大家都在线的时候千言万语可以聊,但是如果对方不在线,自己在那一直讲是不是会很傻很傻?所以有时候邮件还是要派上用场的。

再后来新浪网银等免费信箱流行,界面清爽、访问速度快、使用体验好,我就慢慢放弃了Yahoo的信箱,但是偶尔登陆一下看看有没有朋友来信,或者读读老的往来邮件,回味一下往事。

再之后,聊天工具越来越发达,OICQ差一点就一统江湖,不过当时工作的时候大家用MSN Messenger多一些。当时注册MSN Messenger 应该还需要Hotmail的邮件,不过Hotmail邮件久不登陆就会帮你禁用账户,所有我早年的几个Hotmail账户都不见鸟,同时不见的还有MSN Messenger上的N多美女同事。


(图源 :pixabay)

在之后,沟通交流就是QQ的天下了,虽然MSN和SKYPE等在市场夹隙里努力挣扎,但是这改变不了什么,gtalk也因为清爽高效流行过一阵,但是很快就被墙阻挡了。

大致这时候,邮件几乎就再没有沟通交流的作用了,都是一些通知、一些任务、一些文档,再也找不回以前那种收到朋友来信的感觉了。

再后来,查看和处理邮件就变成的例行公事,每封未读邮件都会代表有一件事情需要去了解,或者是有一件事情需要去处理,而不是有一个朋友关心你想念你,给你发来一个问候。

五年前,雅虎中国宣布停止后缀为:@yahoo.com.cn 和 @yahoo.cn 的邮箱,除了默默备份好信箱内的邮件内容,对此我一点也不意外。至于新浪、网易、搜狐等信箱,我更是好多年没登陆过,我不知道他们是否还存在,即便存在,也是垃圾场了吧。


(图源 :pixabay)

ThunderBird里上数万封邮件,我都不知道何年何月能处理好。至于其它乱七八糟信箱的,由它去吧。


This page is synchronized from the post: 邮件 / Email

Your browser is out-of-date!

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

×