今年年底一件“大事”无疑是
Hyrule Warrior - Age of
Clamity
的发布,拿到游戏的时候恰好是感恩节假期,然后基本上整个假期都用来打游戏了。原本我对无双系列的“切菜类”游戏有些偏见,但是这个支持双人配合的模式意外地好玩,并且虽然情节发展上算不上特别出彩,但是
The Legend of Zelda: Breath of the Wild (BotW)
本身也不是情节取胜的,而且这一作诚意满满地给 BotW
的粉丝投了各种福利,不仅重现了大灾厄之前的地图,而且 BotW
里简单带过的四大英杰也变成有血有肉的角色,连年轻 Impa
之类的众多角色也都可以操作了。下图是
来自网络
的
Impa 召唤蛤蟆的动作。
事实上,碰巧在七月独立日假期的时候偶然提起,我就开始和 N 一起玩 BotW
了,我这是二周目,N 是第一次玩,到后面刚好和 Hyrule Warrior
接起来。嗯……总之先回到本文的主题,做这么长的铺垫主要是要说明一下下半年的书单明显变短的原因。😅
The Language Instinct: How The Mind Creates
Language
, by Steven Pinker,五颗星。这是 Pinker
的一本比较早期(1994
年)的书,略微有点老,也比较厚,读了很久才读完。书名对想要讨论的话题是已经讲得很清楚了。Pinker
说他选用 Instinct
这个词,是因为他想表达人类知道如何说话就如同蜘蛛知道如何织网一样自然。当然这并不是指我们一生下来就能说话了(虽然书中消遣地引用了不少报纸上的类似报道【第8章】),而是说人类有一套共享的基本系统,让我们能够通过与父母和身边的人的对话来学到语言的内在语法结构,乔姆斯基学派把这一套内在系统叫做
Universal
Grammar。作者虽然并不是持和乔姆斯基学派完全一致的观点,但是在这个基本方向上是一致的。
The elephant’s trunk is six feet long and one foot thick and contains
sixty thousand muscles. Elephants can use their trunks to uproot trees,
stack timber, or carefully place huge logs in position when recruited to
build bridges. An elephant can curl its trunk around a pencil and draw
characters on letter sized paper. With the two muscular extensions at
the tip, it can remove a thorn, pick up a pin or a dime, uncork a
bottle, slide the bolt off a cage door and hide it on a ledge, or grip a
cup so firmly, without breaking it, that only another elephant can pull
it away. The tip is sensitive enough for a blindfolded elephant to
ascertain the shape and texture of objects. In the wild, elephants use
their trunks to pull up clumps of grass and tap them against their knees
to knock off the dirt, to shake coconuts out of palm trees, and to
powder their bodies with dust. They use their trunks to probe the ground
as they walk, avoiding pit traps, and to dig wells and siphon water from
them. Elephants can walk underwater on the beds of deep rivers or swim
like submarines for miles, using their trunks as snorkels. They
communicate through their trunks by trumpeting, humming, roaring,
piping, purring, rumbling, and making a crumpling-metal sound by tapping
the trunk against the ground. The trunk is lined with chemoreceptors
that allow the elephant to smell python hidden in the grass or food a
mile away.
Elephants are the only living animals that possess this extraordinary
organ. Their closet living terrestrial relative is the hyrax, a mammal
that you would probably not be able to tell from a large guinea pig.
Until now you have probably not given the uniqueness of the elephant’s
trunk a moment’s thought. Certainly no biologist has made a fuss about
it. But now imagine what might happen if some biologists were elephants.
Obsessed with the unique place of the trunk in nature, they might ask
how it could have evolved, given that no other organism has a trunk or
anything like it. One school might try to think up ways to narrow the
gap. They would first point out that the elephant and the hyrax share
about 90% of their DNA and thus could not be all that different. They
might say that the trunk must not be as complex as everyone thought;
perhaps the number of muscles had been miscounted. They might further
note that the hyrax really does have a trunk, but somehow it has been
overlooked; after all, the hyrax does have nostrils. Though their
attempts to train hyraxes to pick up objects with their nostrils have
failed, some might trumpet their success at training the hyraxes to push
toothpicks around with their tongues, noting that stacking tree trunks
or drawing on blackboards differ from it only in degree. The opposite
school, maintaining the uniqueness of the trunk, might insist that it
appeared all at once in the offspring of a particular trunkless elephant
ancestor, the product of a single dramatic mutation. Or they might say
that the trunk somehow arose as an automatic by-product of the
elephant’s having evolved a large head. They might add another paradox
for trunk evolution: the trunk is absurdly more intricate and well
coordinated than any ancestral elephant would have needed.
Serious Python: Black-Belt Advice on Deployment, Scalability,
Testing, and More
, by Julien
Danjou,五颗星。比较不错的偏practical 的 python
书,内容也没有很过时,讲具体项目中会需要用到的很多东西,比如如何组织你的项目文件,如何进行单元测试和做
profiling,如何写注释并自动生成文档,如何把项目打包成安装包(这大概是
Python 里最混乱的一部分了),还介绍了一些稍微高级一点的诸如
generator、decorator、多线程和异步编程之类的知识。
古今数学思想(第一册)
, by
莫里斯·克莱因,五颗星。第一册讲从数学起源到中世纪为止的数学发展,确实观念、符号这些东西经常能一叶障目不见泰山,现在想想很自然的东西在过去真是经历了好多的挣扎才搞清楚。在这样的背景下古希腊的数学以几何为基础真是达到了非常惊人的严谨程度,如果没有后来的罗马、阿拉伯人乃至欧洲的蛮族人对文化的各种摧残和中世纪的黑暗时代,也许现代的数学发展会提前几个世纪,不过书里的观点是这也不尽然,古希腊基于几何的思想虽然提供了严谨的基础,但是却极大地禁锢了人们的思想,限制了代数和分析的发展,并且脱离实际应用。直到文艺复兴时期各种新发现让人们开始打破成规和权威的限制,再加上各种工程上的需求,让代数能够脱离几何得到发展并且创造了微积分——这些发明创造在当时都是非常缺乏严谨基础的(无穷级数随便使用,极限概率尚未形成,微积分也还被归在代数的范围内),但是却是革命性的突破,其成就和影响远远超过古希腊时代的几何工作。
古今数学思想(第二册)
, by
莫里斯·克莱因,五颗星。这一册主要讲了 17 到 19
世纪之间的数学发展,微积分、无穷级数、微分方程、解析几何和微分几何、复变函数和抽象代数的开端等等,从成功和创新各方面来讲,这段时间的发展跟古希腊时代相比都是爆炸性的。到这里如果对涉及的各个子学科没有事先比较了解的话,感觉就只看这本书里的简短介绍并不足以对其有足够的了解,特别书本书还是偏向于从历史发展进程来描述而不是从后人整理提炼过的现代视角来描述。不过即便不深入研读提到的每一个课题,作为一本历史书来看也是有不少有趣的地方。
基督山伯爵(全三册)
, by
大仲马,五颗星。小时候特别喜欢看,对马赛留下了很深的印象,去法国的时候还特地去参观了那个监狱。从现在的视角来看,有种快意恩仇的武侠小说的感觉,有一些细节和场景(比如末尾吃鸡那段)二十年我去了竟然还在脑海里有深刻的印象。现在读起来虽然没有小时候那么兴趣盎然(大概主要是法国贵族的日常生活让我觉得有些无聊吧),但是整体还是非常吸引人的,特别是和最近看的一个改编日剧对比起来,就觉得即使是同样算法,不同人实现出来果然也会是千差万别啊。
Born a Crime - Stories from a South African
Childhood
, by Trevor
Noah,五颗星。作者在南非种族隔离下作为一个黑白混血长大的过程,简直是在困难模式下以最不合适的身份开始游戏,确实看下来就是一部血泪史,但是行文不卑不亢,甚至还有几分诙谐。作者只是给大家讲了这么一些故事,展示了一些不同的生活,没有悲天悯人也没有去诅咒社会、制度和历史,更没有试图通过这个来博取同情——当然作者好像已经是名人了,大概不需要博取谁的同情,但我想这样的态度更多地是来自他坚毅的内心而不是外部的需求与否。从另一方面来说作者在书里描写的那些贫困人群里的各种各样的问题,其实在世界各地不同的地方都以各自不同的形式存在着,诚然严酷的成长环境大部分时候对小孩的身心都会造成不可逆的打击,但是如果幸运地
survive
了那样的经历,必定会获得强大的内心,作者正是这样一个幸运的人,当然也跟他有一个伟大的母亲不无关系吧。
Discovery - Discover the world of microcontrollers through
Rust
,五颗星。这是来自
Rust Embedded 社区
的一本
在线书
。基于
STM32F3 DISCOVERY 板子的 Rust 嵌入式编程入门,需要有一点点 Rust
知识。作为入门书籍来说还是挺不错的,介绍了比较有用的诸如寄存器、LED
时钟、通过串口与 sensor
通讯等(中断、睡眠、多任务之类的主题没有讲),也介绍了基本的
workflow,例如通过 ST-Link 运行 GDB Server
实现远程调试之类的。代码的包装程度感觉还算合适:大部分细节提供了抽象包装,但是在每一章需要展开讲某部分内容的时候会忽略该部分的包装直接讲解最直接的实现方法。不过仅仅是看书里列出来的部分代码肯定是不太够的,要搞清楚细节和原理的话还是需要看代码仓库里的完整代码。
The Visual Display of Quantitative Information
, by
Edward R.
Tufte,四颗星。介绍图表制作和可视化表达的书,全书的插图、排版各方面都非常漂亮和舒服。书讲了很多早期的制图工作中的各种“bad
practice”,感觉和现代的用 matplotlib
之类的比较成熟的工具包进行电脑制图的过程有点脱节,当然也有一些原则是通用的,毕竟再好的工具包也没法阻止你画出复杂晦涩的图来。总体来说重要原则就是集中在数据本身,而不是花哨的修饰等等上面吧。非常好奇作者是怎么找到那些几百年前的制图的例子的高清大图来放到书里的。
Making Embedded Systems: Design Patterns for Great
Software
, by Elecia
White,四颗星。主题稍微有点奇怪:从软件设计和设计模式的角度来介绍嵌入式编程,所以虽然前面几章有一些基础介绍,但是整体来说并不是一本全面或者系统地介绍嵌入式编程的书,而是介绍一些常用的场景(例如处理时钟或者用户输入的中断,或者不同组件之间的通讯等)和常见的(软件架构和设计模式方面的)解决方案。总之如果是软件背景的话应该可以很快翻完,同时还是能了解到一些硬件和嵌入式编程相关的知识的;不过感觉硬件背景的人来看这个书了解软件设计的知识可能会有更多的收获。
雍正皇帝 第一册《九王夺嫡》
, by
二月河,四颗星。二月河写的清朝的皇帝的历史小说应该是很有名了,康熙和雍正都有被改编成很受好评的电视剧,前者小时候看过好几遍。这次把雍正的小说翻出来看,感觉还不错吧,可能历史小说框架在那里,不是很容易展开的缘故,基本上没有什么硬伤,也没有很无聊,但是也没有觉得特别精彩。全书三册,大概一时不会接着看剩下的两册了。
How Not to Be Wrong: The Power of Mathematical
Thinking
, by Jordan
Ellenberg,三颗星。作者把数学划分为简单-复杂两类,然后把数学解决的问题划分为浅显-深刻两类,然后把全书的内容集中在“用简单的数学原理来解决深刻的实际问题”这一个象限,具体来讲,主要是一些常见的统计学原理在各种各样的问题中的应用,包括琐碎生活中的问题(为什么你的约会对象的性格好坏和长相好坏成反比)、到彩票、经济金融、政治、到一些会用到统计学的科学研究等等。说得好听一点就是包罗万象,说得不好听就是把简单易懂的数学原理埋在一大堆文字和各种各样的例子中,让你要么看睡着,要么看到后面都已经忘记了一开始是要讨论啥。不过我觉得作者的观点也无可厚非,虽然是简单的数学原理,但是应用到情况复杂的具体问题中时会有各种各样的陷阱和漏洞,我想很多例子都是为了说明这样的问题,所以当然是有其价值的,只是这样的书实在不是我的菜啦。