英雄与时势

最近恒大的暴雷,许家印的败落,一时间甚嚣尘上、沸沸扬扬。之前的时间,许家印还是一个英雄,而现在已经成为了狗熊。看了一些介绍许家印的视频,让我对时势和英雄的关系有了一些思考。 许家印借着国家发展的东风扶摇直上,凭借敢闯敢干,成为中国首富,又凭借敢闯和敢干,盘子闹得太大,一时无法调头,而致惨淡收场,真是成也萧何,败也萧何。 时势造英雄还是英雄造时势,这个问题一直争论不休。但是在我心里,有了初步的答案。 时势和英雄,脱离英雄谈时势与脱离时势谈英雄,都不太妥当。英雄不能超出其所处时代的局限,这就好比,诸葛亮不能想到计算机、曹操不能想到土地革命一样。英雄的思想和观念很大程度上受到当时的教育、观点的传播方式以及科学生产力的影响,他不可能 发明或者创造超越该时代生产力的东西。英雄诞生之后,在很大程度上可以改变一些历史的走向,反而又影响时势,比如没有希特勒这样的人物,二战的进程,可能会推迟很多,没有海森堡这样的科学家推波助澜,原子弹的产生,可能又要往后推迟好多年。 一句话:时势决定了英雄的上限,英雄决定了自己的下限。 三国演义开篇词就谈到了英雄。 浪花淘尽英雄 英雄只是大江中的几朵大浪而已。 在我看来,有些人,趁势而起而已,不能算作英雄,只能算作在时代的浪潮中的幸运儿而已。比如我们改革开放时期,借助双轨制的东风,趁势而起的一批人;有些人是随势而起,凭借一己之力,改变了一些东西的,这才可称之为英雄。 突发奇想,可以对三国期间的人杰按此分类,看看哪些人到底是乘势而起的幸运儿,哪些人乘势而起的英雄。我想一定会非常有趣。 PS: 年纪越大,就越对三国演义感兴趣。目光所及,唯有曹老板与刘备二人,曹老板真的是有人格魅力的人,刘老板的矢志不渝,亦颇为动人。在职场中,无论选中的是哪位老板,亦无所憾矣。

毛选与AI与风水学

我们离AI越近,就离自己的判断越远。AI 到底会成为人类历史前进的助力还是阻力?这越来越成为在我脑中盘旋的问题。 AI 的发展,得益于世界上的少数精英对于算法的精进。然而,剩下的大多数,就沦为算法黑盒之外的芸芸众生了。 当下,开谈不说 AI,读尽诗书也枉然。资本鼓吹大行其道,什么代码会被 AI 代替,艺术会被 AI 代替,一时间,仿佛就差造物主会被 AI 代替了,然而,我们了解自己的痛点么? 我们以为 AI 可以代替我们做任何事情,实际上,却只能干一小部分事情,剩下的很多事情,AI 并不能替我们做出选择。一句话,因为算法并不是万能的。我们生活中有很多决策,并非是一个公式一个概率所能决定的。比如,婆媳关系,比如,中年危机。 我们总是倾向于用最省力的办法,解决最复杂的事情。 先问一下 AI。 AI 的回答不使我们满意,于是我们请教传统的 AI:风水与命理。 我们就是不愿意,自己去分析一下当下的处境,调查一下当下所面临的环境,搞清楚当下要解决的事情。 而这些分析问题的方法、模板以及结论,就在《毛选》中。 只是,我们从《毛选》中获取到的只是“渔”而非“鱼”。 在这个快节奏的时代,谁还需要“渔”?即使懂得了“渔”,又有多少时间去实践“渔”? 思考,是这个时代,最缺乏的东西。 系统思考,更是稀缺物品。

乔布斯传

2023-09-24 0 words 0 min

关于技术知识点的战术和战略问题

最近有计划做一个系列的技术分享,当然前提是自己需要了解很多东西,去查很多资料。 平时也看了很多技术分享视频,坦白说,能带给我收获和启发的寥寥。所以,国内的工程师(对,我希望大家都能称为工程师,而不是码农或者程序员)查资料,能看国外的就不会看国内的。 国内的技术,并不是一定落后于国外很多,但是为什么我们很难有高质量的技术文章出来呢?这可能和我们从小的教育模式有关。 国内的技术人做的分享,干货最多的,我推左耳朵耗子。前段时间听说他走了的消息,我还一度很悲伤。我的很多技术观念的转变,对于技术人的看法,都是从他的文章受到的启发。他的文章总能带给你不一样的启发,总是能够做到 干货满满。可惜,这么一位我认为纯粹的技术人,就这么走了。健康果然永远是第一位的。不知怎么,我总感觉从这几年开始,一切精致的、理想主义的好的东西,都逐渐在远离我们。 对于在探探的三年,我学到的技术方面比较硬核的东西不算多,但是,在这段经历中,我受到的一个最大的启发就是,如何去思考技术(这是一位96年的同事带给我的启发)。当今的技术新名词、概念、框架、编程语言等等,层出不穷, 大家都在感叹,要学的东西太多了,自己学不动了。 出现这种情况的原因,就在于我们永远是被动的接受知识。 出现一个新的东西,我们总在亦步亦趋地跟学,而很少去主动思考,为什么出现这个东西,这个东西的出现能够解决什么问题?比如最近 Java 21 版本发布,有一个史诗级的更新就是 Java 协程。我们如果不去想,Java 到底出现什么瓶颈 为什么要引入协程的概念,当时设计语言的时候为什么不考虑协程,或者为什么现在才引入,引入后对原来的语言架构有什么破坏性影响等等问题。这些问题没有考虑清楚,就一头扎到协程的实现细节中,我们必然会疲于奔命。 个人以为学一个新技术需要从以下步骤入手: 一、搞清楚解决的问题。 先把这个技术点的前世今生搞清楚,如果这个技术点的引入,只是为了炫技,只是为了蹭热点,那我宁可不学,吾生也有涯,要学的东西实在太多,我才没有必要为此浪费时间呢!而这一层分析,是好多技术文章或者技术视频里面 缺乏的。 二、如何解决 搞清楚要解决的现实痛点之后,接着就是要想如果是我们遇到了这个问题,我们该怎么办,它又是怎么做得?这一点可能比第一点更重要。思考这一点的好处多多。 首先,它能够帮你对这个技术点有个宏观的把握,之后研究这个技术点的时候,你永远有一个明确地导向,你不再会被里面天花乱坠的细节所误导和迷惑。 这就跟交朋友一样,你知道这个人所处的立场后,无论这个人怎么对你施加糖衣炮弹,你都不会为其所展现的表象所迷惑。你永远能够认清楚这个人的本质。用老毛的话来说,就是抓住事务的主要矛盾,透过现象看本质。 其次,如果我们冥思苦想也想不出更好的方案,然后看人家的实现,觉得既优雅,又简单,这个时候,你就会被它的设计所吸引。你的技术水平便会在无形中有所提高。下次你遇到类似的问题,或者别的问题时,你就会将此想法从此处迁移到彼处。 这就好比写文章一样,给到一个命题,我们自己写一篇,然后再看人家是怎么写的。二者一对比,高下立判。他和你实现的肯定有不同的地方,那么这些不同的地方,不外乎三种情形: 它不如你 这个时候一定不能傲慢,认为它这样做,就一定不如你。需要慎重考虑为什么这里出现一个表面看起来很明显的不太好的设计(这种情况,往往是因为一些历史原因或者有其特殊的需求背景)。 如果反复考虑之后,确实没有想出来更好的理由,那么你就可以理解你的设计比他的要高明(它的设计,并不一定都是最优方案,所谓战略上藐视,战术上重视),可以小小地得意一下。 你不如它 这个时候,你要暗自欣喜,因为你挖到矿了。这个技术点,没有白花时间研究。这就好比,你跟高手过招后,学到了几招新的武功,这是能够提升你的战力的。 殊途同归 你们的实现方案,各有利弊,各有其明显的缺点或者优点。 情形 2 和情形 3,都能在很大程度上拓宽你的视野,让你的技术品味升级。 最后,当前的技术点可能和你的工作没有太直接的关系(比如研究操作系统内核和写业务CRUD),但是里面的一些精髓的设计理念,其实完全可以迁移到业务中去(比如缓存、异步)。操作系统在有些时候,是追求极致的准确和性能的,这一点要求是比 99% 的业务高的。 三、总结和梳理 在前两步完成之后,基本上你对这个技术点,算是完全吃透了。这个时候别忘记及时梳理和总结,梳理过后的才会有条理的放在你的技能仓库中,不至遗忘或者记忆错乱。

[译] 细谈依赖和配置

依赖项的详细配置 正如前面所提到的那样,你可以定义 bean 的属性和构造函数参数,去引用其他已经设置好的 bean 或者内联定义的值。 为了达到这个目的,Spring 的基于 XML 配置元数据支持在 和 元素内增加子元素。 直接值(基本类型,字符串等等) 元素的 value 值,把一个属性值或者构造函数参数定义为一个可读字符串。Spring 的转换服务被用来将这些值从字符串转换为属性或者参数的实际类型。下面的例子展示了可以被设置的多种值: <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <!-- results in a setDriverClassName(String) call --> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mydb"/> <property name="username" value="root"/> <property name="password" value="misterkaoli"/> </bean> 下面的例子使用 p-namespace 来让 XML 配置更加简明: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" p:driverClassName="com.mysql.jdbc.Driver" p:url="jdbc:mysql://localhost:3306/mydb" p:username="root" p:password="misterkaoli"/> </beans> 上面的 XML 更加的简明。然而,类型是在运行时而不是设计时发现的,除非你在创建 bean 定义的时候,用支持自动属性完成的 IDE(例如 Intellij IDEA 或者 Eclipse 的 Spring 工具)。这些辅助都是高度推荐的。 你同样可以配置 java....

2023-09-11 653 words 4 min