【重磅】《Steem Engine 手册》来了!! --  Steem Engine Handbook --《Steem指南》子项目

【重磅】《Steem Engine 手册》来了!! -- Steem Engine Handbook --《Steem指南》子项目

史话

基督纪年公元2247年10月的一日清晨,米歇尔·张 正坐在她的可携带智能飞行器中,驶向当地最大的数据档案馆。

作为一位在火星南华省墨子大学工作的年轻助理教授,原本她的个人能量(Resource Allocation)足以保证她可以在办公室中使用数据服务,但不幸的是,由于过去2个月周围地区的地热部队武装冲突增加,导致几根重要的底下缆线受到严重破坏,她的数据传输费用因此增加。为了尽快完成她关于上世纪中叶“元数据滥觞与集体智力衰退”现象的研究,她不得不冒险前往档案馆。

此项研究的子课题与一种被西文叫做STEEM的系统有关。由于历史文献在上世纪的一场全地球范围的网络战争中损坏严重,人们对于STEEM的起源有着截然不同的看法。尤其是,STEEM究竟是一开始就被设计为一种高度自由的网络文明制度,还是只是作为一种虚拟写作俱乐部而存在,存在极大争议,这被认为与它的建立者丹(也被称为“数字大侠”[1])和耐得及其追随者的数字档案由于政治原因而被摧毁有关。

5个月前,在地球上西太平洋一个残破的数据备份服务器中,人们曾经找到一份被称作《Steem Eng Handbook》的PDF档案,并尽可能修复了它的63%的内容,但对于它的可信息度,至今存疑。米歇尔·张 的此行的目的之一,正是为了获得更完整的档案,并向几位数据史专家请教与它相关的几份资料的来源。

[1] 关于丹本人的别名,实际上也存在疑问。

以上节选自24世纪30年畅销历史小说《虚拟帝国衰亡史》第2章,作者冯破虏,黄石出版社

计划

最近,随着Steem Engine的逐步发布与成熟,关于它的讨论也陆续增加起来,更多人也对Steem有了新的期盼。

《Steem Engine 手册》应运而生,它是《Steem指南》的继承与延续。

为了帮助CN社区更加系统深入的了解和研究 Steem Engine,我们决定发起《Steem Engine 手册》计划,整理和收录关于 Steem Engine生态中各个问题的研究和思考,以方便当前和未来的读者。

你可以在这里:https://steem-guides.github.io/steem-engine 获取它的第一个残本。

我们接下来的计划,便是收录和丰富它的内容;欢迎CN社区的成员积极投稿。

由于最近 SCT的火热,其实大家已经写了很多相关的文章,所以我们的任务是以收录社区的自主创作为主、引导和约稿为辅。

image from https://github.com/steem-engine-exchange

大纲

《Steem Engine手册》的1.0版大纲涵盖了关于 Steem Engine的主要内容。

具体如下:

  1. 入门:初步了解并开始使用 Steem Engine;
  2. 原理:介绍 Steem Engine 的基本工作原理;
  3. 应用:介绍基于 Steem Engine 构建的各类应用,如SCT、AAA、PAL等;
  4. 货币:介绍基于 Steem Engine 发布的各类货币;
  5. 工具:为 Steem Engine 开发的各类有用的工具;
  6. 开发:如何基于 Steem Engine 的基础框架,开发新的服务和应用;
  7. 杂谈:对于 Steem Engine 和其生态的评论、思考与研究;
  8. 附录:投稿的方式、引用的资料等。

由于本书刚开始设计,许多内容都是待定的,对于超出了第一版大纲以外的内容,也欢迎投稿和提供建议。

本大纲可以在《Steem Engine 手册》草稿中预览:

image from https://steem-guides.github.io/steem-engine/index.html

参与

《Steem指南》一样,本书需要也期待所有中文区小伙伴的参与。

参与方式 很简单:

  1. 我们会主动搜寻已经完成的相关内容,合并到书中,并给与创作者相应奖励;
  2. 如果希望向《Steem Engine手册》投稿,请添加 #steem-guides 标签,并用markdown书写;
  3. 如果已经有相关的稿件,也可以直接在本文下面回复帖子链接。

奖励方式 还不错:

  1. 收录的文章将 获得 NBC 奖励 和 @steem-guides点赞(@teamcn, @teamcn-sct 跟赞);
  2. 奖励虽然没有那么高,但如果你原来就在给SCT投稿,也不妨同时向《Steem Engine手册》投稿。

召集编辑小组 We Want You:

  1. 为了完成《Steem Engine手册》,我们将召集一个特别的编辑小组,参与审核稿件;
  2. 编辑们将获得 NBC 奖励、@steem-guides 帖子收益、以及@steem-guides点赞(@teamcn, @teamcn-sct 跟赞)
  3. 欢迎有兴趣参与编辑的朋友,在本文之后留言。

这仅是一些初步的想法,欢迎大家留言提供建议和转发!

希望通过《Steem Engine手册》,帮助CN区在Steem Engine的基础设施之上,能够更健康快乐地发展,沉淀更多的智慧与友情。

另外,也欢迎大家持续向《Steem指南》修订计划投稿,例如“摄影、绘画、美食、旅游”等活动的介绍,以及各类dApp的介绍。

致谢

最后,感谢《Steem指南》在过去、现在和未来的所有参与者。它将与CN社区同在,与Steem同在,与每一点通过写作此书帮助他人的善意同在。

本图由 @maiyude 设计


This page is synchronized from the post: 【重磅】《Steem Engine 手册》来了!! – Steem Engine Handbook –《Steem指南》子项目

真·花名册 | Update of Steem Roster

真·花名册 | Update of Steem Roster

本文是【花名册】项目的简要更新:‌

‌screenshot from: https://steem-guides.github.io/roster/

回顾

昨天我们分享了【花名册】(Steem Roster),用于帮助大家认识和分享CN区的朋友的诨名/花名/村民/绰号。‌

昨天分享的花名册中,总共包含了63位朋友的花名,但我审阅了一会发现了两个问题:‌

  1. 有很多重要的社区名人们都不在花名中,这显然不是一个有权威性的名册,恐贻笑大方。比如 阿廖 @htliao,O神 @oflyhigh,大伟哥 @rivalhw,坛子 @tumutanzi
  2. 有的花名则不够全面:比如 @julian2013 居然只叫小机机,而没有 机大爷的尊号;@shenchensucc 居然只有铁柱的村名,连Buddy爸爸都不在列表中。

‌为了修复这些问题,我们增加了【花名册】找花名的数据源,此修改将在下一节介绍。‌

改进

‌前文中,我们提到使用的数据源主要是:@teamcn-shop 新手村小卖部日报 的报告,但只有这个显然还是不够的。为了扩充数据源,我们想起小卖部送外卖时也会使用很多“村名”,例如

‌screenshots from busy.org: 来自这条留言

刚才,村长在本文的留言中,又提供了新手村毕业典礼的数据源(https://steemblog.github.io/@team-cn/egxwc0ewsi/),我们把这个名单也加到了要检索的数据中。

所以我们将现在的数据源扩展到了下面三类:‌

  1. @teamcn-shop 新手村小卖部日报: https://steemit.com/@teamcn-shop
  2. @teamcn-shop 新手村小卖部 送外卖给客户时的留言;
  3. @teamcn 新手村毕业典礼的名单;

经过修改后,我们现在总共包含了118位朋友的花名。下面是他们的花名,也可以在 https://steem-guides.github.io/roster/ 查看。

用户别名
@aaronli阿柔 ~~我叫伦舞~~ / 阿柔
@abcallen阿兰 / Allen / 鸭伦
@aellly瓜叔笑容满面,还自备西瓜汁 / 瓜叔 / 西瓜 / 瓜子
@also.einstein亦亦
@alvin0617Alvin / 小红
@amanda8250阿曼
@angelina6688朱师傅 / 朱莉
@annepink萍萍
@artsymelanie美丽姐 / 美丽 / 王美丽 / MW / 分子量
@auleo榴莲王子 阿奥 / 阿奥
@bichen芒果
@biorabbit思想家
@cairou包子
@ceci99斤斤
@cecilian粥粥
@changxiu北北
@cherryzz阿紫 / Cherry
@chineseman大饼
@circlepoint圈点
@coder-btsBTS / 码农
@crowflew维参
@crypto.talk大灰灰
@cryptocurrencyhk小编
@dapeng大鹏哥
@darrenych86华仔
@davidchen勇敢
@davidke20拉仔 / 金鱼佬
@deanliu刘美女
@elizachengEliza
@ericet村长 / 村Long / 村龙 / 村村
@fishlucy露西 / 鱼露
@gerer晨歌
@hansheng鸭子
@honeyday罗罗
@honoru米高哥 / 米高 / Michael / 村书记 / 村高
@htliao阿廖 / HT
@huiguannova元元
@iguazi123瓜子
@ishenyaya曲曲
@itchyfeetdonica阿朵
@janicechua佩芯
@jianan嘉南
@jiangchen姜臣 / 姜辰
@joythewandererJoy
@julian2013小机机 / 机大爷
@justyy行长 / 富根
@kadishakho卡姐
@kelvinzhang老K / kelvin
@kidsreturn小兔子一蹦一跳 / 小兔子 / Mandy / 兔兔 / 兔子
@kristylkho卡宝 / 小佩
@laoma老马
@lifelikeline金樽上 / 板凳作家 / Robert
@littlexiannv小仙女
@liubao阿宝
@liumei阿美 / 阿花
@liuzg老刘头 / 刘老头
@loongxiew隆哥
@lucindagoLulu
@lulucy小鹿
@maggieliew1704Maggie / 美琪
@mfxqaq小孟
@mia-cc斤斤
@miniu阿敏
@minloulou迷路
@minminlou小迷路
@morningshine小K
@nostalgic1212小冰
@odillegoghOdille
@oflyhighO哥
@olymim阿胖
@peanut77花生阿姨
@pgr小P / 老艺术家 / 老shi艺术家 / 鸡贼老艺术家 / 小R / 屁股热
@pizzapai批萨姐 / 披萨姐
@raynopssgold小昇
@rivalhw大伟哥
@robertyan阿盐
@robin.hanRobin
@sasaadrian一灯大师
@sharonqian虾仁 / Sharon
@shenchensucc铁柱 / Buddy爸爸 / buddy爸爸 / buddy粑粑
@sherry.gongSherry
@shine.wong金闪闪
@simpleslife阿安
@slientstorm阿杰 / 小杰
@snailsong小松
@softmetal软哥 / 软扣扣 / 软校长 / 铁蛋 / 村宽
@stabilowl笔哥
@starrouge阿星
@stepbie曾老公 / Stephen
@sunai三妞
@tanlikming阿力
@team-cn新手村
@thedreamsun66小刘
@tiffany4everITC9 / 师太
@tumutanzi坛爷
@tvb一姐
@tydebbie小迪 / Debbie / 小娣
@valleybkk腿 / Ham
@wanggang钢哥 / 钢天使
@weisheng167388金老师 / 金兽
@weitz大柱
@wilhb81小智&小白条 / 小智 & 小白条 / 小智
@windowglass糖糖
@winnie1998负婆
@wongshiying老王
@wuer吾儿
@xiaoguai小乖
@xiaoliu六子
@xiaoshancun三哥
@xiaoxiangyun阿云
@xiaoyuanwmm村长夫人 / 村凤
@yanhan小萍萍
@yanyanbebe茵茵
@yellowbird黄鸟
@ygrj阿洁
@zerofive欧爷
@zilin蔚阿姨
@zy-sb二姐

table from: https://steem-guides.github.io/roster/

但需要注意,这个名册依然是不够完整的,一些CN区的热心用户并不在其中,我们在之后也将进一步扩展数据源,完善名册。‌

另外,除了从花名册的网页访问,如果需要原始数据,可以通过下面这个链接下载最新的CSV文件,进行使用或处理。‌

扬名

对于新人而言,有一个靠谱的绰号,还是很有必要的,至少证明你一定程度上融入了社区。当然一方面也是因为我们这个圈子还没有那么大,所以很多人还是能叫得上“村名”的。如果人口达到了几百万,要管理你的社交圈可能就又得采用不同的方式了。‌

那么作为新人应该如何获得一个“别名”呢?当然,你可以在自己的自我介绍(#introduceyourself)文章中直接告知你愿意被如何称呼,但其实未必有效。‌

如果你是新手,目前可行的做法大概如下:‌

  1. 加入 新手村 @team-cn 的微信群,那么几乎你加入新手村的同时,会被赐予一个“村名”(嘿嘿嘿!!!);
  2. 或者至少在 Steem 上有一定的活跃度,发表有意义的内容、积极参与互动,引起他人的关注;
  3. 有可能的话,你可能会收到《新手村访谈》的邀请,对你进行访谈,那么你的村名可能会有更多人知道;
  4. 随着你的“作品”(不光是写作)的增加,可能会有越来越多的人认识你,这时你的花名,可能就已经有一定影响力了。“花名册”也可能会以你为荣。

当然,这只是新人踏足 Steem 世界的第一步。但在武侠世界里,不论什么角色,取个合适的名字还有一定意义的,但也不尽然:‌

  • 取名“郭靖”,一看就是要誓雪“靖康之耻”的“岳武穆”式人物(“靖康耻,犹未雪;臣子恨,何时灭”);
  • 取名“杨过”(字改之),一出生就背负了“原罪”,成长的过程也难免艰辛;
  • 但取名“张无忌”,办事却不一定无忌,反而处处优柔寡断;

最后,祝愿新人们在Steem,不仅有个不错的花名,也度过一段快乐的旅行。‌

参考文献



Posted from my blog with SteemPress : https://robertyan.000webhostapp.com/2019/06/%e7%9c%9f%c2%b7%e8%8a%b1%e5%90%8d%e5%86%8c-update-of-steem-roster


This page is synchronized from the post: 真·花名册 | Update of Steem Roster

Steem 花名册:《Steem指北》子项目 | Steem Roster: A Sub-Project of Steem-People

Steem 花名册:《Steem指北》子项目 | Steem Roster: A Sub-Project of Steem-People

本文介绍【花名册】项目:‌

缘由

昨天我们介绍了《Steem指南》的子项目 Steem Links,虽然是简单的一页纸,但是我觉得还是挺实用的。对我来说,有个地方可以存常用的链接还挺方便的。‌

今天要说的这个新项目 ”花名册“,相比之下,要更水一点。。。‌

类似的项目以前也出现过一些,比如各种榜单,但这个项目的目的更单纯,只是为了帮助新人学会如何称呼社区里的成员的诨名/花名/村民/绰号等等。只有学会称呼社区里的朋友了,才好连线、才好合作、才好交流。‌

“称呼”是语言中极为重要的一个环节,各种公司、组织内部的各种简称、代号、别名流行,并不是偶然的,这是一种文化建设的过程。毕竟通过称呼别名,可以促进更多元的交流,比只称呼“前辈”、“大佬”、”您好“要有趣的多,但融入和适应的过程也是一直存在的。‌

今天要说这个项目,因为我在回复 @also.einstein 消息的时候,一时头脑短路想不起他的村名了,去翻文章和聊天记录查找又成本太高,所以出现了下面的对话:

‌screenshot from https://steemit.com/@also.einstein/also-einstein-re-robertyan-robertyan-re-ericet-steem-62ocxecwqs-20190601t021732313z

其实我原来也计划把 “花名册” 用脚本收集起来,正好今天又遇到这个问题,所以就快速建了这个项目。希望可以帮助到“记忆力差”的社区“老人”,以及刚进入社区的“新人”们。‌

介绍

这个项目比昨天介绍的 Steem Linkshttps://steem-guides.github.io/links/zh)更简单。‌

无他,只有一份花名册而已。

screenshots from https://steem-guides.github.io/roster/

为了实现花名册,我们可以从文章和留言讨论的对话中进行文本分析,得出对某人的常见称呼有哪些。但目前只做了最简单的一步,通过获取 @teamcn-shop 新手村小卖部日报 发布的文章,进行字符匹配,获取了部分村名(共63名)。‌

由于数据局限于小卖部,所以没有涵盖很多 CN区的 用户,有很大的缺失。另外,有些人的别名有过变化,也可以看出来。

目前的名单如下:

用户别名
@aaronli阿柔 ~~我叫伦舞~~
@abcallen阿兰
@aellly瓜叔笑容满面,还自备西瓜汁 / 瓜叔
@also.einstein亦亦
@alvin0617Alvin / 小红
@angelina6688朱师傅
@annepink萍萍
@artsymelanie美丽姐 / 美丽
@auleo榴莲王子 阿奥 / 阿奥
@cecilian粥粥
@changxiu北北
@cherryzz阿紫
@coder-btsBTS
@crypto.talk大灰灰
@davidke20拉仔
@elizachengEliza
@ericet村长
@honeyday罗罗
@honoru米高哥 / 米高
@itchyfeetdonica阿朵
@julian2013小机机
@justyy行长
@kadishakho卡姐
@kelvinzhang老K
@kidsreturn小兔子一蹦一跳 / 小兔子
@kristylkho卡宝 / 小佩
@liubao阿宝
@liumei阿美 / 阿花
@liuzg老刘头
@loongxiew隆哥
@mfxqaq小孟
@mia-cc斤斤
@miniu阿敏
@minloulou迷路
@nostalgic1212小冰
@olymim阿胖
@pgr小P
@pizzapai批萨姐
@robertyan阿盐
@sasaadrian一灯大师
@shenchensucc铁柱
@shine.wong金闪闪
@simpleslife阿安
@slientstorm阿杰
@softmetal软哥
@stabilowl笔哥
@starrouge阿星
@sunai三妞
@tanlikming阿力
@team-cn新手村
@tydebbie小迪
@weisheng167388金老师
@wilhb81小智&小白条 / 小智 & 小白条
@windowglass糖糖
@winnie1998负婆
@wongshiying老王
@xiaoguai小乖
@xiaoyuanwmm村长夫人
@yanyanbebe茵茵
@yellowbird黄鸟
@ygrj阿洁
@zerofive欧爷
@zy-sb二姐

相信不是所有人都需要这份花名册,花名册里的名称与实际使用情况也不完全一致,有了名册也不一定会正确使用。但有了这份名单,新人在群里聊天时、或者请教问题时,更容易分清谁是谁了。。。‌

是记住 Steem的ID 容易,还是记住花名容易呢?这个确实因人而异,像 @m18207319997 兄(别名:大猛/平健/小m)的ID,就比较难记忆。。。

所以 Steem Roster 究竟如何使用,大家可以自行思考和挖掘,因人而异。有任何建议或反对意见,可以随时提供~‌

实现

‌本项目的源代码可以在这里找到:https://github.com/steem-guides/roster (MIT License)‌

实现很简单就不详述了。仅说两点:‌

  1. 数据源:在上文已经提到过是从 @teamcn-shop 的每日报告中获取的,未来可能也会参考更多数据源;其实也可以直接向 @ericet 要 @teamcn-shop 的原始数据,但这也并不够灵活,目前的做法也还算有效。
  2. 更新频率:目前是每天更新一次;但新人一旦了解以后,可能通常不会反复阅读,所以这一点的意义仅在于保证数据最新。

‌之后,根据大家的反馈和建议,我们会不断完善花名册这个小项目 :)‌

八卦

‌八卦故事,是人类文明中重要的故事的一部分,从神话传说到稗官野史到民间轶事,都是如此。‌

《Steem指北》 的创作目的是”人物和八卦“,相比起《Steem指南》理性的规则与策略介绍,充满情感、不确定性、猜测和争议的“八卦”和“评传”更容易引起普通读者的兴趣。‌

千古之下,一时之人物皆有评传,帝王亦有谥号,只不过不同人来评价时,观点也常迥异,所以谁来做“史”,历来都是重要的。‌

当前,我们还没有立即恢复《Steem指北》的强烈动机,或许因为缺乏一位胆识超绝、情感充沛的史家有关,也或许时事还不够壮烈与跌宕,虽有人记载,但未能引起共鸣。

‌本图由 @maiyude 设计‌

相比《Steem指北》, 新手村访谈 则更务实一些,以自我介绍为开端,向社区广播新人的信息,也是一种重要的帮助新人拓展社会关系的手段。‌

知人、识人,在任何社会、组织和社区都是有意义的功课,对于想在社区开心玩耍或者有所施展的新人而言,找到你的导师、你的合作者、你的同路人,或多或少都有些意义。‌

而这,可以从你先正确的发现和称呼他们开始,就此一点,希望“花名册”《Steem指北》新手村访谈 对你有用。:)‌

参考文献



Posted from my blog with SteemPress : https://robertyan.000webhostapp.com/2019/06/steem-%e8%8a%b1%e5%90%8d%e5%86%8c%ef%bc%9a%e3%80%8asteem%e6%8c%87%e5%8c%97%e3%80%8b%e5%ad%90%e9%a1%b9%e7%9b%ae-steem-roster-a-sub-project-of-steem-people


This page is synchronized from the post: Steem 花名册:《Steem指北》子项目 | Steem Roster: A Sub-Project of Steem-People

Steem Links:《Steem指南》子项目 | Subproject of Steem Guides

Steem Links:《Steem指南》子项目 | Subproject of Steem Guides

缘由

‌在微信群里经常看到大家在询问各种链接:‌

  1. 《Steem指南》的链接(我经常被召唤。。。);
  2. 各种移动客户端的APK文件的链接(Partiko, Wherein, eSteem);
  3. steem-engine 的链接;
  4. 查看各种数据的链接;
  5. 各种工具的链接;
  6. 最新活动的链接;

为了方便大家找这些链接,《Steem指南》创建了一个子项目:steem links,用于整理和分享各种最常用的链接。‌

好了,就是这样一个很简单的项目。‌

介绍

‌steem link 收录了最常用的平台、客户端、工具、数据统计、dApp、教程、人物介绍、活动等最常用的一些链接,如下图所示。

‌screenshots from https://steem-guides.github.io/links/zh

如果要找某些常用的链接,记住上面这个链接收集的帖子就好了,再也不用到处找了。欢迎收藏这个链接页面,以及转发分享、帮助其他人!!

当然,现在内容还很不完善,欢迎大家一起来提供建议和补充最常用的链接。‌

参与

‌如果希望分享一个或几个新的链接,加入到 steem links里,有三种基本的方式:‌

  1. 如果你会用GitHub可以点击页面上的编辑链接,通过commit、pull request的方式来提交改动;
  2. 如果你不太了解GitHub的pull request的话,可以点击提交建议链接,通过填写 issue 的方式来提交;
  3. 如果以上两种都不会,可以直接在本帖下面留言提供你的建议。

提交建议的示例:

‌screenshot from GitHub: https://github.com/steem-guides/links/issues/new

对于有价值的贡献,@steem-guides 将提供一定的 NBC 和 点赞奖励(Steem和SCT),期待大家的建议~ 也希望这个页面对你有用。‌

参考文献



Posted from my blog with SteemPress : https://robertyan.000webhostapp.com/2019/05/steem-links%ef%bc%9a%e3%80%8asteem%e6%8c%87%e5%8d%97%e3%80%8b%e5%ad%90%e9%a1%b9%e7%9b%ae-subproject-of-steem-guides


This page is synchronized from the post: Steem Links:《Steem指南》子项目 | Subproject of Steem Guides

用GitHub创建Steem文章镜像 | Mirroring Your Steem Blogs on GitHub | 免费博客备份服务: steemblog

用GitHub创建Steem文章镜像 | Mirroring Your Steem Blogs on GitHub | 免费博客备份服务: steemblog

本文介绍将Steem文章同步到GitHub pages的开源工具和免费服务:‌

  1. 开源工具 “blog”:https://think-in-universe.github.io/blog/
  2. 免费服务 “steemblog”:https://steemblog.github.io/

Image Source: Pixabay

缘由

最近在用steem的时候,觉得不管是用busy, steempeak还是steemit等,它们的界面设计对于看自己以前的文章并不太方便(当然想看其他人的旧文章也比较麻烦),并且由于国内的网络访问这些站点的速度都不太快,所以以博客服务来看,用户体验是挺差的;至于要方便地搜索、归类自己的文章就更麻烦了。‌

之前曾经有过一些浏览历史文章较方便的服务(如chinabb和steemitfriends),似乎也或者关闭或者收费了,因此暂时没有找到好用的服务。‌

于是想到可以把Steem上的文章备份成镜像,每日自动同步,便于自己梳理和分析;虽然我文章写的不多,但如同在《标签的本质 | The Nature of Tags(一)》里提到的,组织信息是人类的本能,于是便实现了这里的工具和服务。‌

GitHub镜像博客

关于为什么需要自己写文章同步工具,其实是值得询问的:‌

  1. 首先,博客镜像的工作相信之前有人也已经做过了,这并非什么新想法(但我简单搜了一下也没有找到可以立即复用的工具)。但是搭建博客镜像是一项需要适应自身需求的工作,所以自己动手的话可以有更高的灵活性和掌控度。
  2. 其次,即便之前有类似工作的话,可能也并不是同步到GitHub,或者也未必会做到近实时的更新,所以这项工作也可以作为一种服务,也并非完全没有价值。

为了完成这项工作,我们基于steem API、GitHub pagesHexo[1]框架创建了博客镜像搭建工具,效果如下(示例:https://think-in-universe.github.io/blog/):‌

1. 博客首页

左侧是用户的profile,右侧是近期的文章,中间为最近文章。

‌screenshot from https://think-in-universe.github.io/blog/

2. 侧边栏:类别和标签

Steem上的标签和类别,会同步到hexo框架下面,并能够正常显示。遗憾的地方在于由于steem上没有类别层级的概念,所以要分类文章,相对来说没有那么灵活。

‌screenshots from https://think-in-universe.github.io/blog/

3. 侧边栏:近期文章和归档

‌显示最近5篇文章,以及每个月的文章数量。可以看出,作为写作者而言,我是比较懒惰的 :) 和大家比还有很大差距。

‌screenshots from https://think-in-universe.github.io/blog/

4. 文章展示:右侧目录、代码高亮和原文链接

‌在右侧添加了一个目录控件,对于阅读长文是有帮助的。‌

代码高亮对类似本文的有代码的文章有一定帮助,steemit对代码高亮的处理是比较初级的。‌

原文链接其实是为了方便我自己有时候引用文章需要,在steem上找文章比较低效。

‌screenshots from https://think-in-universe.github.io/blog/

5. 搜索

‌搜索功能对于想要快速查阅或引用自己的文章,较有帮助。点击右上角的搜索按钮,可以进行快速搜索。

‌screenshot from https://think-in-universe.github.io/blog/

6. 独立的归档、类别、标签页等

‌如果要单独查看这些信息,可以到分别的独立页面下查看,如有需要,也可以建立其他的标签页。例如,归档页面的时间线,比steem看起来简洁一点:https://think-in-universe.github.io/blog/archives/

‌screenshots from https://think-in-universe.github.io/blog/

页面展示大体如此,主要的价值在于从文章的角度,信息的组织更为清晰。如果想要获得一个类似的博客镜像,大抵有两种方法:‌

  1. 如果你了解GitHub和GitHub pages如何使用,可以使用本文发布的开源代码(https://github.com/think-in-universe/blog),根据其中的README,搭建一个类似的镜像就行了。
  2. 如果你希望可以使用一个免费的博客镜像服务,可以参考文章最后一章提到的 steemblog 博客镜像服务,或者直接联系我。

如何实现博客镜像工具?

‌为了实现以上功能,我们可以基于博客框架Hexo[1],搭建从Steem同步数据、并发布到GitHub pages的博客镜像工具,可以支持基于用户名、标签、日期等查询方式的数据同步。下面简要介绍如何实现这一博客镜像工具。‌

工具的代码在GitHub开源:https://github.com/think-in-universe/blog

关于具体如何使用此工具,可以参考上面项目中的README的介绍:可以在本地安装后使用,也可以通过travis-ci部署。‌

本项目的代码里重用了 @cn-hello 小门童实现时的一些基本框架,所以需要增加的功能较少。工具的工作流程如下,也比较简单:‌

  1. 下载你的Steem文章;
  2. 用Hexo编译成静态文件;
  3. 用GitHub pages部署博客;

(1)下载你的Steem文章

‌由于重用了之前的SteemReader的方法,我们可以指定通过账户或者标签以及时间(天数)来获取文章。‌

blog/builder.py

1
2
3
4
5
6
7
8
9
10
11
class BlogBuilder(SteemReader):

def __init__(self, account=None, tag=None, days=None):
SteemReader.__init__(self, account=account, tag=tag, days=days)

def download(self):
if len(self.posts) == 0:
self.get_latest_posts()
if len(self.posts) > 0:
for post in self.posts:
self._write_content(post)

‌code from https://github.com/think-in-universe/blog | MIT License

为了将文章下载为hexo可识别的markdown格式,需要在markdown中加入相关ymal或json的元数据。以下为markdown模板,包含了标题、类别、日期、标签等信息,并指定显示文章的目录。‌

blog/message.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
MESSAGES["blog"] = """
---
title: "{title}"
catalog: true
toc_nav_num: true
toc: true
date: {date}
categories:
- {category}
tags:
{tags}
thumbnail: {thumbnail}
---


{body}
"""

code from https://github.com/think-in-universe/blog | MIT License

使用Steem API,获取steem文章的元数据和markdown文本。‌

blog/builder.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def _write_content(self, post):
folder = self._get_content_folder()
c = SteemComment(comment=post)

# retrieve necessary data from steem
title = post.title.replace('"', '')
body = post.body
date_str = post.json()["created"]
date = date_str.replace('T', ' ')
tags = "\n".join(["- {}".format(tag) for tag in c.get_tags()])
category = c.get_tags()[0]
thumbnail = c.get_pic_url() or ''
url = c.get_url()

# build content with template
template = get_message("blog")
content = template.format(title=title, date=date, tags=tags, category=category, thumbnail=thumbnail, body=body, url=url)

# write into MD files
filename = os.path.join(folder, "{}_{}.md".format(date_str.split('T')[0], post["permlink"]))
with open(filename, "w", encoding="utf-8") as f:
f.write(content)

logger.info("Download post [{}] into file {}".format(title, filename))

code from https://github.com/think-in-universe/blog | MIT License

(2)用Hexo编译成静态文件

‌我们需要为建立的博客设置一个美观的主题。‌

我们这里使用了 https://github.com/ppoffice/hexo-theme-icarus 主题,需要将其作为一个git submodule加入到git repository中。‌

.gitmodules

1
2
3
[submodule "theme"]
path = themes/icarus
url = https://github.com/ppoffice/hexo-theme-icarus.git

‌code from https://github.com/think-in-universe/blog | MIT License

随后使用hexo命令来将markdown转换成生成静态的文档。‌

blog/command.py

1
2
3
4
5
6
7
@task(help={
})
def build(ctx):
""" build the static pages from steem posts """

os.system("cp -f _config.theme.yml themes/icarus/_config.yml")
os.system("hexo generate")

‌code from https://github.com/think-in-universe/blog | MIT License

(3)用GitHub pages部署博客

‌正式部署时,我们有两种方式,一是在本地使用hexo命令部署,或者在travis-ci 中定期每日进行同步。‌

hexo命令部署:blog/command.py

1
2
3
4
5
6
7
@task(help={
})
def deploy(ctx):
""" deploy the static blog to the GitHub pages """

build(ctx)
os.system("hexo deploy")

‌code from https://github.com/think-in-universe/blog | MIT License

travis-ci部署:.travis/deploy.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[ -z "${GITHUB_PAT}" ] && exit 0
[ "${TRAVIS_BRANCH}" != "master" ] && exit 0

git config --global user.email "${GIT_EMAIL}"
git config --global user.name "${GIT_USERNAME}"

git clone --depth 1 --branch gh-pages --single-branch https://${GITHUB_PAT}@github.com/${TRAVIS_REPO_SLUG}.git site
cd site
cp -r ../public/* ./

NOW=$(date +"%Y-%m-%d %H:%M:%S %z")
git add --all *
git commit -m "Site updated: ${NOW}" || true
git push -q origin gh-pages

‌code from https://github.com/think-in-universe/blog | MIT License

另外,需要注意,由于用travis-ci 部署时需要用户提供Git用户信息(用于commit到gh-pages)以及GitHub的token,所以需要以环境变量的方式进行配置。‌

博客镜像服务 http://steemblog.github.io/

‌今天在微信群中 岩哥 @andrewma 提到想要一个分析文章标签的服务,我想起搭建的这个博客镜像也有标签云和标签统计,所以帮助建一个类似的镜像服务就能解决该问题。‌

但由于岩哥对GitHub并不熟悉,使用上面提到的博客镜像工具可能较为困难,所以在此基于https://github.com/think-in-universe/blog 项目,建一个organization account用户管理博客,帮助有需要的人建博客镜像的子目录,这就是steemblog。‌

1. 如何使用博客镜像服务

‌目前,这个博客镜像服务可以在 https://steemblog.github.io 找到。‌

如果要添加一个新的用户到镜像同步中,只需添加账户到用户列表中即可(目前是手动添加的)。例如,我们添加了 @robertyan 和 @andrewma 到列表中。我们可以在以下链接访问他们的博客镜像:‌

  1. https://steemblog.github.io/@robertyan/
  2. https://steemblog.github.io/@andrewma/

与之前的工具需要手动配置用户信息不同,这里自动从steem同步了用户的profile。(不过跟我手动配置的差不多)

‌screenshot from https://steemblog.github.io/@robertyan/

@andrewma的博客镜像也创建成功了,不过头像和缩略图的处理可能需要做一些改进。

‌screenshot from https://steemblog.github.io/@andrewma/

比如岩哥关心的标签信息,可以在https://steemblog.github.io/@andrewma/ 中找到:

‌screenshots from https://steemblog.github.io/@andrewma/

同样的,我们可以继续添加新的用户,他们的镜像可以在 https://steemblog.github.io/@{账户名} 中找到。‌

对于这样的博客镜像,如有需要或建议,可以在文章后面留言讨论。‌

2. 如何建立博客镜像服务

https://github.com/steemblog/blog 是在 https://github.com/think-in-universe/blog 的基础上构建的,为了适应多用户的子目录的需要,需要对原来的项目的目录结构和部署方式做一些调整。‌

(1)从steem下载文章的同时,自动同步用户信息

通过steem获取的账户信息,自动更新_config.yml_config.theme.yml

相对应的模板在 blog/message.py 中,由于内容太长,这里不贴出。‌

blog/builder.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
def update_config(self):
if not self.account:
return

organization = BLOG_ORGANIZATION
logo = BLOG_AVATAR
favicon = BLOG_FAVICON

language = settings.get_env_var("LANGUAGE") or "en"

a = SteemAccount(self.account)
author = self.account
name = a.get_profile("name") or ""
# about = a.get_profile("about") or ""
location = a.get_profile("location") or ""
avatar = a.get_profile("profile_image") or ""
website = a.get_profile("website") or ""

# build config file with template
template = get_message("config")
config = template.format(organization=organization, language=language,
name=name, author=author)
filename = CONFIG_FILE
with open(filename, "w", encoding="utf-8") as f:
f.write(config)
logger.info("{} file has been updated for the account @{}".format(filename, author))

# build config theme file with template
template = get_message("config.theme")
config = template.format(organization=organization,
favicon=favicon, logo=logo,
author=author, name=name, location=location,
avatar=avatar, website=website)
filename = CONFIG_THEME_FILE
with open(filename, "w", encoding="utf-8") as f:
f.write(config)
logger.info("{} file has been updated for the account @{}".format(filename, author))

‌code from https://github.com/steemblog/blog | MIT License

(2)在生成静态网页时,相互隔离不同用户的路径

将不同账户的页面放置到@account子目录下。‌

blog/message.py

1
2
3
4
5
6
7
8
9
10
# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: http://{organization}.github.io
root: /@{author}/
permalink: :category/:post_title/
permalink_defaults:

# Directory
source_dir: source
public_dir: public/@{author}

‌code from https://github.com/steemblog/blog | MIT License

编译指定的steem用户的文章为静态页面,隔离放置在发布目录下。‌

blog/command.py

1
2
3
4
5
6
7
8
9
10
11
@task(help={
})
def build_all(ctx):
""" download the posts of all the accounts, and generate pages """

accounts = settings.get_env_var("STEEM_ACCOUNTS") or []
if accounts and len(accounts) > 0:
for account in accounts.split(","):
clean(ctx)
download(ctx, account)
build(ctx)

‌code from https://github.com/steemblog/blog | MIT License

(3)部署时,将页面推送到 steemblog.github.io‌

只需修改 .travis/deploy.sh 中的目标代码仓库的参数即可。‌

最后

‌究其本质,本文是对steem上的数据进行处理的一种尝试,在开放的区块链数据的基础上,我们可以根据场景,采取多种灵活的数据展现方式,这里的镜像博客无疑又是其中的一种。‌

希望本文提供的工具或服务对你有帮助,如果需要帮助你开启博客镜像服务,可以在本文留言,我会尽量提供支持。由于travis的使用也有一些限制,优先帮助前5位留言的朋友提供服务 :)‌

参考文献

  1. https://hexo.io
  2. Hexo icarus主题:https://github.com/ppoffice/hexo-theme-icarus
  3. 博客镜像工具:https://think-in-universe.github.io/blog/
  4. 博客镜像服务:https://steemblog.github.io/


Posted from my blog with SteemPress : https://robertyan.000webhostapp.com/2019/05/%e7%94%a8github%e5%88%9b%e5%bb%basteem%e6%96%87%e7%ab%a0%e9%95%9c%e5%83%8f-mirroring-your-steem-blogs-on-github-%e5%85%8d%e8%b4%b9%e5%8d%9a%e5%ae%a2%e5%a4%87%e4%bb%bd%e6%9c%8d%e5%8a%a1%ef%bc%9a-st


This page is synchronized from the post: 用GitHub创建Steem文章镜像 | Mirroring Your Steem Blogs on GitHub | 免费博客备份服务: steemblog

【Steem指南】用eSteem Surfer发帖

【Steem指南】用eSteem Surfer发帖

问题

由于尚不明确的原因,*.steemit.com域名在部分地区的访问受限,对某些用户的使用产生了一定影响。(【2019/02/13】)

针对这一情况,有一系列解决方案,大致可以归类如下:

【用户】:用户可以采取的方案 1. 使用其他客户端,如手机端的Partiko, Wherein和eSteem,PC端的Web界面如steemkr.com、steempress,桌面应用eSteem Surfer 2. 使用其他dApp发布,如dtube, Artifit 3. 采用V·-·P·-·N、S·~·S·~·R等方式浏览steemit.com / busy.org / steempeak.com等

【开发者】:需要开发者支持的方案 1. 创建和部署新的不涉及 “.steemit.com” 的客户端,如partiko.app的PC版,翻译steemkr.com,修改并部署busy.org等 2. 现有的App如Busy, Steempeak等,支持steemconnect v2以外的登录方式,尝试绕过.steemit.com被封杀的问题,如steem keychain或steemconnect v3等登录方式,并且更新steemjs的API URL 3. 创建浏览器插件,重定向api.steemit.com到别的api server,如api.steem.house

本文仅介绍【用户】(1)中,使用eSteem Surfer这一客户端访问的方法,可以初步替代steemit.com的发帖功能。

Image Source: esteem.app


用eSteem Surfer发帖

  1. 到 https://esteem.app/#downloads 下载对应的eSteem Surfer桌面客户端(Desktop)。链接会跳转到GitHub页面 https://github.com/eSteemApp/esteem-surfer/releases,选择Windiows版本(exe)或Mac版本(dmg),Linux版本(deb, rpm)。
  2. 下载完毕,按照步骤安装。启动eSteem Surfer。
  3. eSteem启动需要设置PIN码,即一个在本地启动使用的密码,与Steem无关。需牢记PIN码,下次启动eSteem时需要使用。
  4. Steem账户和post key登录eSteem Surfer。
  5. 点击顶部的设置(Settings)按钮,将Server改成https://anyx.io,即可正常使用eSteem Surfer。经测试https://anyx.io访问速度还比较快。

图:选择Server Image Source: eSteem Surfer截图


对eSteem Surfer的一些说明

  1. eSteem Surfer的图片服务器在部分地区访问存在问题(已报告官方进行修复),可以先通过 https://imgbb.com/ 上传图片,获得图片链接,再用Markdown格式发布图片,如本文所做的
  2. eSteem Surfer可以使用的根本原因在于其可以自由配置 API Server,而不受steemit.com域名影响,其余的解决方案可以借鉴这一思路以保持灵活性。
  3. 使用eSteem发帖会给esteem 10%的受益人费用,但同时会获得eSteem的点赞,点赞金额与使用者所有粉丝的SP总和成正比。
  4. 如CN区使用eSteem Surfer遇到其他问题,可以请教eSteem中文区审查员 @davidk20 提供支持。感谢拉仔!

希望本文对大家有帮助。如果在使用eSteem Surfer时遇到问题,或对于其他解决方案有兴趣,请留言讨论。


This page is synchronized from the post: 【Steem指南】用eSteem Surfer发帖

Your browser is out-of-date!

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

×