zoukankan      html  css  js  c++  java
  • ARTS-WEEK-005

    目标明确的一周。

    Algorithm:

    451:Sort Characters By Frequency (Medium)

    比较平淡的一道题,就是扫描一遍统计频率,再按频率拍序,最后按频率输出。有几个方面的小技巧,1统计频率时除了用 map 外,还可以用数组,因为内容只有字母,2 排序时可以用桶排序思想,将次数作为桶下标,每个桶内放字母,这样可以做到 O(n) 性能排序,但是在本题中与 nlog(n) 排序在执行耗时方面差别不大。

    452:Minimum Number of Arrows to Burst Balloons (Medium)

    类似435的 Intervals,先排序,再考察关系,同样以区间终点排序前提的规律更精简。

    Review:

    MartinFowler-AnemicDomainModel

    这是马丁福勒在2003年发表的批评贫血模型的文章。文章指出这是一种越来越流行反模式,与 DDD 提倡的领域模型不同,这种模式下 Domain Model 对象中只有数据(以及对应的 getter 和 setter),没有任何行为(业务逻辑),因此称之为贫血(贫瘠)领域模型 Anemic Dmomain Model,而所有行为(业务逻辑)统统放到 Service 层。文章批评这种模式违反了面向对象设计,表面上设计了各种对象,但实际上以面向过程的方式在设计(即做了对象设计工作却没有面向对象的优势,不利于 ORM、抽象、复用等)。

    此外文章指出 DDD 也并不是完成反对 Service 层(也叫应用层),而是认为这一层应该尽量薄,只包含组织、沟通其他分层、协调、委托等工作(面向过程方式);而 Domain 层(Model 层)包括核心业务逻辑、规则、状态,即数据和行为的集合,可以把存储等技术细节委派给别的分层,总体上领域对象(Rich Model)是业务软件的核心(heart of business software)。

    最后,直到近20年后的今天,贫血模型依然是最流行的模式,几乎所有业务系统都能看到其身影,而 DDD 简直像新概念、新尝试一样不断被拿出来分享、宣传,正说明了它的高要求和苛刻性。

    The Log: What every software engineer should know about real-time data's unifying abstraction

    翻译 - 日志:每个软件工程师都应该知道的有关实时数据的统一概念

    这是 Kafka 作者之一 Kreps 在 2003 年发表的著名博文(后来是 Confluent 公司的 co-founder 和 CEO),以日志为核心,介绍了数据集成、实时数据处理、分布式系统设计方面的理解和观点。

    文章一个观点是以统一规范的日志系统为中心,形成所有系统的数据集成入口(并且有接入业务负责将自己的数据转换到规范格式),最终加载到中心数据仓库(或其他数据消费者),这里统一规范的日志系统,就是指以 Kafka 为中心的带有元数据管理的系统,这也是一种批流统一的数据处理思想。

    Tip:

    Understanding Confusion Matrix

    总是记不清假阳性 FP、假阴性 FN、召回公式这些,不愧是混淆矩阵,不过看了这一篇,感觉这次能记住了~

    首先混淆矩阵横轴记录实际值、纵轴记录预测值,以 Positive 和 Negative 表示 1 和 0 值,这时可以得到每一格预测和实际值,之后再对每一个预测和实际值是否相符得到预测正确或失败的描述即 True 和 False,将该预测性质描述预测值组合起来就得到 True Postive、False Postive、False Negative、True Negative 这些结果。

    Recall是混淆矩阵中 x = 1 范围的比率,TP / (TP + FN),即全部实际 Positive 中 TP 的比率,也就是本该预测到的范围中捞出了几个。

    Precision是混淆矩阵中 y = 1 范围的比率,TP /(TP + FP),即全部预测 Positive 中 TP 的比率。

    其他辅助描述:

    True Positive: You predicted positive and it’s true.

    True Negative: You predicted negative and it’s true.

    False Positive: (Type 1 Error) You predicted positive and it’s false.

    False Negative: (Type 2 Error) You predicted negative and it’s false.

    Share:

    分享《日本世像系列:饱食穷民》的读后感。

    这本书描述了日本80年代到90年代繁荣时期的一些社会人物故事。一开始不明白“饱食穷民”是什么意思,看完书中一个个走向极端绝境的人物故事,再结合文中提到的石油危机 - 全民奋斗 - 经济再次腾飞背景(当时世界人均 GDP 第一)。突然明白是指在饱食时代,因为社会、文化、资本主义、科技、现代化、过度竞争、反人性等因素影响下个体的精神和自我极度缺失的异化状况。

    一种异化是人们会因为极度的工作压力和社会竞争导致失去自我。书中的证券销售员、保险支部部长,为了业绩不仅牺牲家庭,每天从早到到不停工作,直至深夜下班后必须和战友(同事)喝酒才能缓解压力,甚至因为不忍业绩损失(影响团队业绩),自掏腰包直至最后借助小额贷款完成销售指标。到最后竟然随着职位越高负债越高,直至破产和离开公司。正是那些未来不是梦、业绩猛于虎、一条船上的战友、背负贫困家庭的期待、公司业务的顶梁柱、弱肉强食的漩涡等一个个叠加因素导致了这样的结局。

    还有一种异化是因为计算机等科技因素,导致反人性的异化。书中关于计算机工程师的描述也非常超前,当时(80年代)日本已经进入工业无人机和办公自动化时代,有大量的计算机工程师建设各种大型系统,书中描写了第一个全日本网络连通的项目。而这些工程师开始表现出了极度的反人性,即极度理性、隔离、封闭、命令式和被时代抛弃的不安。“虽然技术会有所提高,但作为一个人是没有成长的”,“最关键的因素还是在于其人格的形成阶段,从小到大的成长的过程是否充分地体验了真实的情感、培养出充实的人格,这才是一个人是否会因受到计算机的影响变成自我封闭者的分歧点所在”。

    突然发现30年前的日本就像我们今天的社会,成长焦虑、小额贷款、奋斗、996、共克时艰、抓住机会、买房上车、消费、家庭问题等等,或许中国人普遍的一个特点就是变通 flexible,不像日本人那么容易走向极端,但我认为很多问题需要用极端的方式思考和探索,才能找到边界和本质。所谓资本市场、社会竞争、自我成长、24小时化、理性思考等并不是一切,不应该成为人类进入饱食时代后唯一的选择,健康的身体和精神、家庭陪伴、个人需求的发展和满足也都同样甚至更为重要,写到这里突然发现日本90年代出生的平成一代、以及当前的低欲望时代,可能也是这种重新选择的结果。

  • 相关阅读:
    检测一个对象方法是否存在
    非堵塞 延迟脚本 高性能
    移动开发 相关 备忘
    元素透明 渐变函数
    cookie
    media query 单位
    前端入门可参考《如何教会非计算机专业的女友写代码》
    JQ判断复选框是否选中
    聊天记录
    JS获取文本值
  • 原文地址:https://www.cnblogs.com/pyx0/p/13200700.html
Copyright © 2011-2022 走看看