这里记录过去一周,我看到的值得分享的东西,每周五发布。

今年5月5日是马克思诞生200周年的纪念日,中新社的记者来到伦敦的马克思墓地,写了一篇《墓地见闻》

马克思墓地位于伦敦北部的海格特公墓内。该公墓是伦敦最大公墓之一,安葬着16万名已故人士,其中不乏英国历史上有名的人物;公墓内5万多座墓碑,马克思墓碑最为高大和醒目。

马克思墓碑高近3米,被各种花束和花篮簇拥着。墓碑顶端矗立着的马克思青铜头像,须发浓密,目光深邃,远眺前方。碑座上铭刻着几行镏金英文,为《共产党宣言》中的:"全世界无产者联合起来"。马克思、马克思夫人及亲人共6位安葬于墓室内。

照片上可以看到,墓碑刻着一行字" Workers of all lands unite"(全世界无产者联合起来)。

马克思研究的是,无产者怎样才能在一个有产者主导的社会里面获得解放。可是我们看到,200年过去了,这个世界依然存在无产者和有产者的对立。互联网技术甚至加剧了这种趋势,有钱的人变得更有钱了,没钱的人更难获得翻身的机会。

让我坚持下来的一个动力,就是我想看看,技术到底会带给这个社会怎样的变革?如果技术没有办法解决社会阶层的分化(甚至带来固化),那么我可以做些什么?

新闻

1、世界上最长寿的人去世,享年117岁

4月21日晚上,目前世界上最长寿的人,日本九州鹿儿岛县的田岛锅(Nabi Tajima)女士去世,享年117岁又260天。她出生于1900年8月4日。

她去世后,现在还活着的最长寿的人是日本的都千代,她生于1901年5月2日。

历史上,能够证实的最长寿的人是法国的珍妮·露意丝·卡尔芒(Jeanne Louise Calment,1875年2月21日-1997年8月4日)活了122岁又164天。

2、LED 电影院

4月20日,美国第一家 LED 电影院在洛杉矶开幕,电影屏幕变成了液晶屏,而不是电影放映机的投影幕布。此前的2月4日,上海的 LED 电影院已经开张了。

三星生产的 LED 屏幕宽10.3米,高5.49米,可以播放4K视频。这块屏幕的售价最便宜也要300多万人民币,比目前最高级的激光投影机,还贵上三四倍,更不要提普通的电影放映机了。它的优点:(1)可以自动化控制,以后可能会出现无人值守的电影院;(2)放电影的时候,可以开灯;(3)LED 屏幕的使用寿命可能比投影机更长久。

3、盲人程序员

亚马逊公司的官方博客,介绍了一位盲人程序员,出门靠导盲犬,阅读代码就靠屏幕阅读器。第一次觉得,代码适合朗读,也很重要啊……

如果换成中国,即使他的编程技能没问题,恐怕也很难在互联网公司就业。因为他的编程速度肯定不如正常人,别人一天可以写完,他要写两天或更多,项目经理就一定会赶走他。

4、QT 支持浏览器了

图形界面框架 Qt 宣布可以在浏览器中使用,方法是通过 WebAssembly。那就是说,C++ 可以编写网页 UI 组件了,不必一定要通过 JS 了。

以后出现前端 C++ 工程师真不是不可能了……

5、JavaScript 的新数据类型:大整数 BigInt

经过很长一段时间的测试以后,V8 引擎正式宣布支持 JS 的第8种数据类型:大整数 BigInt。从此,JS 可以精确表示任意位数的整数,再也不受64位双精度浮点数格式的限制了。

6、1000架无人机编队表演失灵视频

5月1日晚《红五月西安城墙国际文化节》无人机表演出现事故。1374架无人机并没有成功组成完整图案。演出一开始就有一部分无人机没有飞到预定位置,导致局部不成图案。

亿航无人机官方微博称,表演结束后,公司立即召集行业专家对496架受影响的无人机进行数据分析,后台数据表明:5月1日演出当晚,无人机设备、通讯系统和飞行系统正常,但部分无人机的定位及辅助定位系统在起飞后受到定向干扰,造成其位置和高度的数据异常。

另有报道称,这样一场表演的收费是 1050 万元人民币。

7、吴恩达的 Drive.ai 无人出租车正式运营

吴恩达任职董事的自动驾驶公司 Drive.ai,要在德克萨斯州弗里斯克(Frisco)市,提供无人驾驶出租车服务了。从今年7月开始,Drive.ai将会和当地交管协会合作部署,为期6个月,为特定区域内的1万多人提供无人驾驶(免费)打车服务,只要通过Drive.ai的App,就能约到一辆无人驾驶出租车。

此次Drive.ai投入试运营的车,不仅车变了—-从林肯MKZ变成了日产NV200,传感器方案也有所更新:搭载4个激光雷达、10个摄像头,以及2个毫米波雷达。

无人驾驶投入实用的那一天越来越近了。

8、谷歌的人工智能客服 Google Duplex

谷歌宣布了人工智能客服系统 Google Duplex。以后,你打电话订餐、投诉、咨询,跟你交谈的都不是真人,而是一个软件。客服这个行业从此要被消灭了。

另一方面,如果你意识不到对方是软件,就意味着它通过了图灵测试。这是不是意味着,以后软件冒充人已经没问题了?

教程

1、[文章]Node.js 最佳托管商

现在,各大云服务商都支持 Node.js 主机,本文对比了最大的 6 家服务商各自的优缺点。

2、[文章]软件测试的误区

本文讨论了13种软件测试的错误做法,比如:(1)单元测试与集成测试的比例不正确;(2)太相信 TDD(即写代码之前就写测试);(3)写了大量很慢的测试;(4)手动运行测试;(5)没有把生产环境的错误写成测试等等。

3、[电子书]《React in patterns》

React 如何使用各种编程模式?

4、[文章] Rust 的内存安全革命(中译原文

Rust 语言不需要手动管理内容,却也没有垃圾回收机制,这是怎么实现的?

本文集中介绍 Rust 最重要的核心特性:内存管理。这是 Rust 的主要创新之一,它的许多独特的特点是基于此的。本文写给不知道 Rust 或刚刚开始学习它的程序员的。对于熟悉 C、C++ 或其他使用手动管理内存以及使用垃圾回收器语言的读者来说会更容易理解 Rust 的特点。

5、[文章]SHA256 的实现

SHA256 是目前常用哈希算法里面最可靠的,Git 和比特币都依赖这种算法。本文解释了它的实现。

6、[文章]Python 列表的用法

列表(list)是最基本的数据结构,这篇文章通过实例讲解 Python 如何操作列表。很容易读,就是内容比较浅,只适合刚刚开始学 Python 的初学者。

7、[代码仓库]Cosmos

收集各种算法的代码实现的仓库。

工具

1、GitHub Desktop

GitHub 官方的桌面 App。

2、ReLaXed

一个将 HTML 文件转为 PDF 文件的命令行工具。

3、goproxy

Go 语言实现的高性能 http、https、websocket、tcp、udp、socks5 代理服务器。

4、Dojo 2.0

前端框架 Dojo 发布了2.0版,它跟 jQuery 是一个年代的,至今不放弃也算值得尊敬了。我看了一下 API,核心概念也是虚拟 DOM,没看到任何令人眼前一亮的创意,我不觉得它有机会赢得大量用户。

5、css-protips

一个收集 CSS 使用技巧的库。

6、github-contributions-chartDemo

GitHub 的用户主页有一张图,每一天就是一个小格子。你只要在这一天提交了代码,这个格子就是绿色。但是,这张图只显示过去的一年,即365个格子。

这个工具可以生成从你加入 GitHub 那天起的所有格子。

7、bat

命令行的 cat 命令用来显示文件的内容,bat 命令完全跟 cat 一致,只有一个地方不一样,就是现在的内容会带有行号和代码高亮。

文摘

1、《为什么程序员不喜欢开会?》,by Paul Graham

世界上有两种日程表。

一种是管理者的日程表。他们是面向老板的,日程表都是以小时为单位,所以开会对他们来说,只是在日程表上找出一个小时。

另一种是工匠的日程表,也就是程序员的日程表。他们需要做出实际的东西,日程表都是至少以半天为单位。所以,他们不喜欢开会,因为一小时的会议,会将半天分成两半,每个部分都时间太短,导致无法做成任何事情。

2、大多数分布式系统工程师不相信区块链

作者说,他问了许多分布式系统工程师。他们普遍觉得,区块链不具有媒体所称的那种重大意义,适用场景非常有限:(1)成员之间缺乏信任;(2)所有记录都要汇总到一个全局日志。

目前,区块链通过共识机制,达到记录的不可抵赖性,这种做法的代价很大。一旦有一个值得信赖的中立方,那个受信任的中立方就可以通过强制认证/授权以及内容签名来建立不可抵赖性,并且只允许对日志追加内容。这意味着,中立方维护的任何常规旧数据库,都可以达到区块链的作用,而且还不存在区块链共识机制的缺陷。

加密记录链是加强总账不变性的一个好主意,但是签名链可以在任何现有的数据库上完成。

3、SQL 命名约定

数据库的表和字段怎么起名?这也是一门学问。下面是数据库的一些命名原则。

  • 小写
    。标识符应该全部用小写字母来书写,使用first_name,不是"First_Name"或者"FirstName"。
  • 数据类型不是名称
    。避免使用仅为数据类型的名字(如text或timestamp)。
  • 强调单独的单词
    。由多个单词组成的对象名称应该用下划线分隔,例如使用word_count或team_member_id,而不是wordcount或wordCount。
  • 完整的单词,而不是缩写
    。例如使用middle_name,不是mid_nm。
  • 使用常用缩写
    。对于几个长词而言,缩写词比词本身更为常见,比如i18n和l10n,这时使用缩写。

4、Lars Bak 的故事

V8 引擎是 JS 语法事实上的标准实现,Chrome 浏览器和 Node 的底层都用了它。它名字里面的 V 代表虚拟机(virtual machine),8 表示这是作者 Lars Bak 写的第8个虚拟机。

Lars Bak 是一个传奇的丹麦程序员,在 V8 之前,他还写过 Java虚拟机、Smalltalk虚拟机、Dart虚拟机。下面是2009年,英国《金融时报》的报道。

奥尔胡斯(Aarhus)是丹麦第二大城市,在该市郊外5英里的地方,有一座改造过的农舍。房子的主人叫 Lars Bak,是一个年轻的编程天才,他之所以把家安在这里是因为他非常不愿意让别人找到自己。他最近的作品 V8 是 Chrome 浏览器的一部分。

1991年,他在 Sun 公司工作,后来成为业界最佳程序员之一,开发了 Java HotSpot。2000年初,他离开了硅谷,回到了丹麦。搬家是为了他的女儿们(他想让她们上丹麦语学校),也为了自己的身心健康。美国的工作很紧张,生活方式不健康。

他并不特别想找新项目:他有足够的钱养家糊口,也有各种打发时间的方式,包括粉刷农舍的计划。他估计得要一年时间。这时,Google 的电话就来了。对于 Google,他是编写 JavaScript 引擎的最佳人选。巴克接受了这份工作,但不会回到加州。事实上他从没打算再次回加州,虽然谷歌的人性化办公室闻名远近,餐厅里的美食,还可以免费理发,巴克却宁可在家工作离总部5000英里,相差9个时区。

5、雷军:如不是富贵人家 你的唯一机会是忠诚和勤奋

1991年11月4日,在一个计算机展览会上,雷军见到了WPS之父求伯君,雷军作为一名程序员,求伯君是他的偶像。次年,求伯君邀请雷军加入金山,他二话没说,毅然砸掉了当时的铁饭碗,追随求伯君离开北京去了珠海,成为金山第六名员工。这一追随就是16年,这16年里无论金山遭遇了什么困境雷军都不离不弃。

雷军先后在金山担任金山公司北京开发部经理、珠海公司副总经理、北京金山软件公司总经理等职务。

1998年,29岁的雷军出任金山公司总经理,那一年中国"BAT"的创始人们还都是屌丝一枚。马化腾刚从学校毕业进入到一家电讯公司,李彦宏还在美国念书,马云在一年后才成立阿里巴巴。

雷军在金山总经理这个位置上一干就是十年,这十年里,雷军眼见着马化腾、马云、李彦宏的事业高歌猛进,公司不但上市,三人还轮流做首富。

本周图片

1、Douglas Crockford 的名片

2001年,Douglas Crockford 发明了 JSON 格式。他声称这种格式极其简单,全部语法可以印在一张名片上,而且所有应该有的语法都有了,以后也不需要再增订,因此 JSON 格式没有版本号。上面就是他的名片的背面图案。

但是,我们现在知道,JSON 格式的解析器很难写,因为它没有规定如何处理各种边界情况。

2、1961年的科幻小说

使用 Kindle 阅读波兰科幻小说家斯坦尼斯拉夫•莱姆(Stanislaw Lem)1961年的作品《外星归来》(Return From The Stars)。

"那些书籍就像水晶体,里面保存着内容。这些书可以使用一个叫做 Opton 的装置阅读,那个装置很像书,但是封面里只有一页。只要轻轻触摸,后面的页就会出现在上面。"

3、游戏卡

当年 Gameboy 游戏卡(容量几十MB)的盒子,现在可以放15块Switch游戏卡(容量几十GB)。(图片来自推特@BalrogGameRoom

新奇

1、摄像头挂钟

这是一款深圳出产的挂钟。表面上平淡无奇,但是实际上里面藏了一个摄像头,可以监控屋里的情况。

这样的摄像头是很难发现的。可以想象,以后无论何时何地,我们的一举一动一定都处在监控之下。

2、魔法少女

日本漫画风格的网站,很炫的开场动画。

本周金句

1、

十八年前刚刚接触网络,常常有世界触手可及的奇妙感觉。如今技术越来越先进,那种感觉却越来越少。(网友)

2、

现在的开发者需要具备的,不仅仅是技能树,而是技能森林。(推特@qing_wang)

3、

硬件、软件、计算机工程师的半衰期都只有几年。(Craig Barrett,Intel 公司创始人之一)

欢迎订阅

这个专栏每周五发布,同步更新在我的个人网站微信公众号语雀

微信搜索"阮一峰的网络日志
"或者扫描二维码,即可订阅。

(完)

文档信息

转自http://www.udpwork.com

95 对 “每周分享第 4 期”的想法;

  1. I simply want to tell you that I am just beginner to blogging and site-building and truly enjoyed you’re blog site. Probably I’m likely to bookmark your blog . You really have fantastic writings. Appreciate it for sharing your website page.

  2. You could certainly see your enthusiasm within the work
    you write. The sector hopes for even more passionate writers like you who are
    not afraid to say how they believe. All the time follow your heart.

  3. I am really impressed with your writing skills and also with the layout on your weblog. Is this a paid theme or did you modify it yourself? Anyway keep up the excellent quality writing, it’s rare to see a great blog like this one these days..

  4. I precisely needed to thank you so much yet again. I’m not certain what I would’ve sorted out without the actual solutions discussed by you concerning such situation. It seemed to be a frightening problem for me personally, nevertheless looking at a new professional mode you processed the issue took me to leap with fulfillment. Now i am happier for the assistance and in addition trust you realize what an amazing job your are putting in teaching the mediocre ones all through a web site. I know that you haven’t come across any of us.

  5. I just wanted to jot down a quick comment so as to say thanks to you for these fabulous instructions you are giving at this website. My considerable internet research has now been compensated with professional knowledge to talk about with my partners. I ‘d point out that we visitors are truly lucky to exist in a superb place with very many marvellous individuals with helpful plans. I feel somewhat lucky to have come across your entire site and look forward to some more amazing minutes reading here. Thank you once more for a lot of things.

  6. Whats up very nice website!! Guy .. Excellent .. Amazing .. I’ll bookmark your web site and take the feeds additionally¡KI’m happy to find a lot of useful information here within the submit, we’d like develop more strategies on this regard, thank you for sharing. . . . . .

  7. You really make it appear so easy together with your presentation however I to find this topic to be really one thing that I think I would never understand. It seems too complex and extremely large for me. I am having a look ahead to your subsequent post, I will try to get the cling of it!

  8. It’s perfect time to make some plans for the future and it’s time to be happy. I’ve read this post and if I could I want to suggest you some interesting things or advice. Maybe you can write next articles referring to this article. I desire to read even more things about it!

  9. Hello, Neat post. There’s an issue along with your site in web explorer, would test this¡K IE still is the market leader and a huge portion of people will miss your great writing due to this problem.

  10. I’ve been browsing online more than three hours lately, yet I by no means discovered any interesting article like yours. It¡¦s beautiful worth enough for me. In my view, if all site owners and bloggers made good content material as you probably did, the web will likely be much more useful than ever before.

  11. hello there and thank you for your information – I’ve certainly picked up anything new from right here. I did however expertise several technical issues using this site, as I experienced to reload the web site lots of times previous to I could get it to load properly. I had been wondering if your hosting is OK? Not that I’m complaining, but slow loading instances times will very frequently affect your placement in google and could damage your high quality score if ads and marketing with Adwords. Anyway I’m adding this RSS to my email and could look out for much more of your respective exciting content. Make sure you update this again very soon..

  12. I am not sure where you’re getting your information, but good topic. I needs to spend some time learning much more or understanding more. Thanks for excellent information I was looking for this info for my mission.

  13. We are a group of volunteers and starting a new scheme in our community. Your website offered us with valuable info to work on. You’ve done a formidable job and our whole community will be thankful to you.

  14. Needed to compose you this bit of observation in order to thank you again for your wonderful advice you’ve shown here. It has been really particularly generous with people like you to offer extensively all a lot of people could possibly have supplied as an ebook to make some cash on their own, primarily considering that you could have tried it in the event you wanted. Those suggestions also acted to be a good way to be aware that other people online have a similar zeal the same as mine to see a little more on the topic of this problem. Certainly there are lots of more fun situations ahead for people who read your site.

  15. I simply couldn’t leave your site before suggesting that I really enjoyed the usual information a person supply for your guests? Is going to be back often in order to investigate cross-check new posts

  16. Fantastic goods from you, man. I’ve understand your stuff previous to and you are just too fantastic. I really like what you’ve acquired here, certainly like what you are stating and the way in which you say it. You make it enjoyable and you still care for to keep it smart. I cant wait to read much more from you. This is really a great website.

  17. Usually I don’t learn post on blogs, however I wish to say that this write-up very forced me to check out and do it! Your writing style has been surprised me. Thanks, quite great article.

  18. We’re a group of volunteers and starting a new scheme in our community. Your site provided us with valuable information to work on. You’ve done a formidable job and our entire community will be thankful to you.

  19. My wife and i got so happy that John could complete his preliminary research with the precious recommendations he got out of the web page. It’s not at all simplistic just to continually be releasing guidelines that other folks have been making money from. And we keep in mind we have got you to be grateful to because of that. All the illustrations you’ve made, the easy blog navigation, the friendships you can make it possible to foster – it is most astounding, and it is helping our son in addition to our family do think this subject is excellent, which is certainly exceptionally serious. Many thanks for the whole lot!

  20. Its like you read my mind! You appear to know a lot about this, like you wrote the book in it or something. I think that you could do with some pics to drive the message home a little bit, but other than that, this is excellent blog. A great read. I will definitely be back.

  21. Nice read, I just passed this onto a colleague who was doing some research on that. And he actually bought me lunch because I found it for him smile Therefore let me rephrase that: Thanks for lunch!

  22. Thanks for sharing excellent informations. Your web site is very cool. I’m impressed by the details that you¡¦ve on this site. It reveals how nicely you understand this subject. Bookmarked this web page, will come back for more articles. You, my friend, ROCK! I found just the information I already searched everywhere and simply couldn’t come across. What a perfect website.

  23. of course like your website however you have to check the spelling on quite a few of your posts. Several of them are rife with spelling issues and I to find it very bothersome to inform the truth on the other hand I will certainly come again again.

  24. My spouse and i felt so thankful that Michael managed to carry out his web research from your ideas he acquired out of the web site. It is now and again perplexing to simply choose to be making a gift of procedures which often the others might have been making money from. And now we remember we have got the writer to give thanks to because of that. The entire explanations you’ve made, the straightforward site navigation, the friendships you will make it easier to instill – it’s got all terrific, and it’s really facilitating our son in addition to us do think the content is awesome, and that is truly essential. Thanks for everything!

  25. Simply want to say your article is as amazing. The clearness in your post is simply excellent and i can assume you’re an expert on this subject. Well with your permission allow me to grab your RSS feed to keep updated with forthcoming post. Thanks a million and please continue the gratifying work.

  26. you are really a excellent webmaster. The site loading pace is incredible. It sort of feels that you are doing any unique trick. Furthermore, The contents are masterwork. you’ve performed a fantastic process in this topic!

  27. I want to show my appreciation for your kindness supporting persons that require assistance with this important subject. Your real commitment to getting the solution across has been surprisingly practical and has specifically permitted men and women like me to attain their dreams. Your own important information denotes a whole lot a person like me and far more to my office workers. Many thanks; from all of us.

  28. Undeniably believe that which you said. Your favorite reason seemed to be on the web the easiest thing to be aware of. I say to you, I certainly get irked while people consider worries that they just don’t know about. You managed to hit the nail upon the top as well as defined out the whole thing without having side-effects , people could take a signal. Will probably be back to get more. Thanks

  29. Write more, thats all I have to say. Literally, it seems
    as though you relied on the video to make your point.

    Youu obviously know what youre talking about, why waste ykur intelligence on just
    posting videos to your site when youu could be
    givin us something enpightening tto read?

  30. Wonderful beat ! I would like to apprentice while you amend your site, how can i subscribe for a blog site? The account helped me a acceptable deal. I had been tiny bit acquainted of this your broadcast offered bright clear idea

  31. Great goods from you, man. I have understand your stuff previous to and you’re just extremely fantastic. I really like what you have acquired here, certainly like what you are stating and the way in which you say it. You make it entertaining and you still take care of to keep it smart. I cant wait to read far more from you. This is really a great website.

  32. Thank you a bunch for sharing this with all people you really recognize what you’re talking about! Bookmarked. Please additionally discuss with my web site =). We could have a hyperlink alternate contract among us!

  33. Thanks for some other wonderful article. Where else may anybody get that type of info in such an ideal way of writing? I’ve a presentation next week, and I’m at the search for such info.

  34. Thank you so much for providing individuals with an extraordinarily terrific chance to read from this site. It is always very pleasant plus packed with amusement for me personally and my office co-workers to visit your website more than three times a week to read the newest stuff you have. Of course, we are at all times fulfilled concerning the magnificent suggestions you give. Selected 3 areas in this article are surely the most beneficial we’ve had.

  35. I was just looking for this information for some time. After 6 hours of continuous Googleing, finally I got it in your website. I wonder what’s the lack of Google strategy that do not rank this type of informative sites in top of the list. Normally the top sites are full of garbage.

  36. I would like to point out my respect for your generosity giving support to individuals who must have help with this important area. Your special dedication to getting the message across came to be rather helpful and have usually permitted people much like me to achieve their targets. Your interesting report implies this much a person like me and much more to my colleagues. Thanks a lot; from each one of us.

  37. Thank you for sharing superb informations. Your web site is so cool. I’m impressed by the details that you¡¦ve on this site. It reveals how nicely you perceive this subject. Bookmarked this website page, will come back for more articles. You, my friend, ROCK! I found just the info I already searched all over the place and just could not come across. What a perfect website.

  38. I happen to be writing to make you be aware of of the magnificent experience our daughter encountered going through your blog. She noticed lots of details, including what it’s like to possess a very effective helping style to have other folks clearly know precisely several complicated matters. You undoubtedly exceeded people’s expectations. Many thanks for presenting these practical, healthy, explanatory not to mention unique tips about the topic to Lizeth.

  39. What your declaring is completely real. I know that everybody have to say the exact same point, but I just assume that you set it in a way that everyone can fully grasp. I also really like the images you set in here. They fit so effectively with what youre hoping to say. Im guaranteed youll attain so numerous folks with what youve obtained to say.

  40. Thank you, I have recently been looking for information approximately this subject for a long time and yours is the greatest I’ve came upon so far. But, what concerning the conclusion? Are you certain in regards to the source?

  41. Thank you for sharing excellent informations. Your website is so cool. I am impressed by the details that you¡¦ve on this web site. It reveals how nicely you understand this subject. Bookmarked this web page, will come back for extra articles. You, my pal, ROCK! I found simply the information I already searched all over the place and just couldn’t come across. What a perfect website.

  42. I am so happy to read this. This is the kind of manual that needs to be given and not the random misinformation that is at the other blogs. Appreciate your sharing this best doc.

  43. Just want to say your article is as surprising. The clarity in your post is simply nice and i could assume you’re an expert on this subject. Fine with your permission let me to grab your RSS feed to keep up to date with forthcoming post. Thanks a million and please keep up the enjoyable work.

  44. It¡¦s really a great and helpful piece of information. I¡¦m satisfied that you simply shared this useful info with us. Please keep us informed like this. Thank you for sharing.

发表评论

电子邮件地址不会被公开。 必填项已用*标注