Oh!Coder

Coding Life

杂货铺

| Comments

diary20160612

图片来源:Page One书店(三里屯店)

啊,这个星期干了很多看起来很杂的事情。在一开始,还是要唠叨一下北京的天气。这周北京的空气有些糟糕,很明显的一点,那就是最近跑步减少了,每次看到天气的空气质量为轻度污染的时候,为了健康,就不太想跑步了,最多是晚上的时候,去操场放风,散散步啥的。印象中这周好像就跑了个五公里。这周北京局部地区下了冰雹,雨过天晴之后,空气有片刻清新。紧接着,很快就恢复了轻度污染,北京果然名不虚传。

话接上文,这周粗略看了一本关于PostgreSQL的书,名叫《PosgreSQL修炼之道》。纯粹是想扫盲PostgreSQL数据库,现在看完,总体感觉,基本达到目的了。整本书讲解的大部分内容都是基础知识,没有讲太多特别深奥的内容,坦白说有点像是简化版的手册,不过正好符合我的预期,我就是想先入个门,先有个宏观的了解,以后再看手册的时候,就比较容易产生一个系统性的知识结构。

这本书看的过程中,一些实践性很强,同时也特别细节的内容,没有特别的去深究,在能够理解的基础上,先有一个大概的印象,以后实践中遇到了,知道去哪里查资料就可以了。因为实践性很强的技巧,即便当时记住了,时间久了不用,很容易就会忘。书中有些地方,作者会和其他数据库做类比,比如MySQL和Oracle。读的过程中,果然有一点和我预想的一样,那就是很多基础概念在不同数据库有不同的命名,这一点是学习很多新技术的一个坑。例如同样的一项技术,在A里叫x,在B里就称为y。这一点这本书里有提到,可以预先填一部分坑。总的来说,这本书给我印象最深的是最后一篇,讲解第三方开源软件和架构。以前总觉得数据库做集群是一件很神秘的事情,看完这部分,通过了解这些工具,发现其实也没什么可神秘的,很多工具现在已经很成熟。当然,要想使用好这些工具,需要具备两方面的知识,一方面是对系统级的基本概念有很好的理解和掌握,另一部分应该就是对业务有很好的理解。所以,虽然表面上看是配置一些参数,但要想做好,还是有很多功课要做的。

因为想重新做自己的blog,所以这个星期也在想一些UI设计方面的事情,我发现这个事情还是挺费时间的,比如设计风格啊,字体风格啊,版式设计啊,以后框架的扩展啊什么的。真是不做不知道,一做问题就都出来了。为此,我还特意跑到三里屯的Page One书店,翻看了一些外文设计方面的书籍。其中还翻了两本设计logo的书,同时也提醒了我,是不是也应该设计一个酷酷的logo呢。翻来覆去,时间就这样流逝掉了。同时也感受到,设计可真是一个有创造性的技术,既要风格鲜明,不落入俗套,还不能过于抽象,避免无法准确的传达寓意。不过,临近周末这几天,我大概有了一些想法,倒是可以先做起来,边做边调整。因为,我突然想明白了,一遍是不可能做到位的。

这周配置了自己的VPN,使用的是shadowsocks。果然好用,网速杠杠的,截止到目前为止,看YouTube,基本都是自动超清播放,除非是本地网速慢。这也导致最近两天在YouTube上看了好多视频。嗯,畅通无阻的超清视频就是爽啊。现在都是24小时挂着,基本感觉不到墙的存在了。

具体忘记是在看哪个视频的过程中,鬼使神差的就突然联想到一个叫Rust的编程语言。然后就跑到官网上看了一下,又鬼使神差的安装了,通过了解,又安装了包管理工具Cargo。然后小试了一把,一切顺利,第一印象不错。然后连续在YouTube上看了好几个关于Rust的近期视频(刚配置的VPN,网速快也是一大主要原因哈),发现很多Ruby社区的人跑去学Rust了。这让我也想多了解一点Rust。而且,从演讲者所举列的例子中,在语法层面,发现Rust有几分动态语言的风格,还不失系统语言的运行效率。作为初步了解,跑到官网上去看了一下文档。从开始了解Rust,到目前为止,前后一共花了一天多的时间,文档读到4.11小结。手动输入了一遍第三章的代码,做了初步体验。总体,感觉不错。还去Rust的社区注册了账号,想看看大家都在提什么问题,顺便了解一下现在的发展状况。

Rust的文档读到现在,并没有感到太大的不适,偶尔有一些概念讲的比较跳跃,Google一下基本上就能够理解个大概了。4.8小节的文档中讲了Rust的Ownership系统。文档中说,很多学习者需要在这里挣扎很久。但是,如果能够理解内存布局,理解这部分就不会有太大的难度。从语法层面讲,初学这部分,感觉确实有很多tricky的地方需要注意。为了避免data race,我预感这部分的实现机制借鉴了锁的概念,导致在语法层面增加了一些书写的复杂度。讲真,当我看到Rust使用标准库的语法时,我马上就想到了C++的标准库语法,更有甚者,当我看到Rust调用Vec<T>的时候,我马上就想到了C++的STL,哈哈!当我看到Rust的语法可以级连的时候,我又马上就想到了Ruby,哈哈。好有意思!YouTube上有一演讲视频,讲者是一位Ruby社区的朋友,他已经实现了Ruby和Rust之间互通。实现原理不难想到,Ruby背后其实是C语言,Rust是可以倒入C语言的。关于文档的生成,Rust自身提供了相关命令,只要规范编写程序的注释,一行命令即可生成文档,相应的包管理工具Cargo,也提供了相应的命令,一行搞定。关于调试,Rust也提供了相应的命令,甚至有命令可以根据错误信息,查找问题的文档解释,有的返回结果中还附带了几行简短的代码小例子,so sweet。目前总体感觉,Rust还可以吧。感觉有C/C++基础的话,学起来会好一些,毕竟是系统级语言,学习起来一定会有一些难度的。据说社区氛围很好,这一点我还没体会到,毕竟还没有在社区里问过问题,还没有切身的感受。Rust向上可以写Web framework,向下可以嵌入ASM,做系统级开发。昨天我搜了一下Rust在智能硬件方面的状况,在Reddit上,一位LLVM的后端开发者做了回答,说当前对一些指令集的支持还不够。不过,至少已经提到日程上了,哈。对于这门语言,以后有时间,我觉得可以较深入的学习一下。

话说,Ruby语言还是要学的。坦白说,我不喜欢C++,太难了,学不会啊!:( 。但还是想掌握一门系统级的语言,C语言很好,想了想,感觉似乎已经有点古老了,特别是当前的多核时代,编程语言天生具有并发的特点,似乎是一种现代语言的标配。Go语言感觉被定格在了服务器端开发,而且语法风格有点太过于工程化,少了很多动态语言的味道。

啊,好吧。这次好像说了不少技术上的东西,还说了一大堆术语,对于不太喜欢技术的朋友只能说声抱歉啦。毕竟这是生活日记,写很多技术内容是不合适的,但是这次有点没把持住,就担待一次吧!以后注意!

这个周末跟家里人通电话,话说,爹妈逼婚逼得紧啊!每次谈到这个话题,都是不欢而散。话说结婚当然可以啦,但也得先有个女票吧……上哪找呢?总不能满大街去撩妹吧……求上天赐给我一个女票吧!

Orz,跪求。

Comments