周刊内容: 对一周内阅读的资讯或技术内容精品(个人向)进行总结,分类大致包含“业界资讯”、“技术博客”、“开源项目”和“工具分享”等。为减少阅读负担提高记忆留存率,每类下内容数一般不超过3条。
更新时间: 星期天
历史收录: shawn-weekly
订阅方式: 微信公众号“肖恩聊技术”,除周刊外还有更多原创技术博文~
开篇图
周末见了两年未见的同期入职同事,两年前他离职时在北京吃的火锅,这次相见又吃了火锅,我们是真的爱吃肉🤤。虽说见面还是熟悉的感觉,聊的也是熟悉的话题,但时间已经悄悄咪咪的过去了两年,相聚的机会越来越要按年来计次了。
业界资讯
- IBM中国回应“关闭研发部门”:根据需要调整运营,变化不影响支持客户的能力
IBM中国近期对外界关于其关闭研发部门的传闻作出回应,表示公司会根据业务需求调整运营策略,以确保为客户提供最佳服务,且这些调整不会影响其支持客户的能力。此前有消息称IBM将关闭中国研发部门,涉及员工超过1000人,且有员工在社交平台上透露,公司关闭了研发和测试岗位员工的访问权限,并在线上会议中宣布裁员。据悉,裁员赔偿金为“N+3”。IBM强调,其在中国的本地战略重点是利用技术和咨询经验,组建具备相应技能的团队,以帮助中国客户共创解决方案。IBM是全球领先的混合云、人工智能及企业服务提供商,服务于175个国家和地区的客户。今年是IBM进入中国的40周年,公司表示将继续深耕中国市场,构建开放、充满活力的AI生态系统。2024年第二季度,IBM营收总额为158亿美元,净利润18.3亿美元,同比增长15.82%。
- 小鹏 MONA M03 发布上市:11.98~15.58 万元,面向年轻人的 15 万级 AI 汽车
小鹏汽车在2024年8月27日的发布会上推出了全新车型MONA M03,定位为20万元内的A级智能纯电掀背轿跑,面向年轻消费者。该车型提供三种续航版本,价格区间在11.98万元至15.58万元。515km续航版本售价11.98万元,620km续航版12.98万元,而580km续航Max版为15.58万元。MONA M03计划从2024年9月起交付,其中M03 Max版本将在2025年春节后交付。
车辆设计采用“AI量化美学”,提供五种车漆和三种内饰配色选择,包括限定的“黑武士版”。车辆尺寸为4780mm1896mm1445mm,轴距2815mm,风阻系数为0.194,是全球风阻最低的量产纯电掀背轿车之一。车内配备了15.6英寸中控大屏,搭载高通骁龙8155芯片和16GB内存,支持360度全景影像和3D感知渲染地图。
智能座舱支持4音区语音交互,配备18颗扬声器,支持7.1.4全景声场。车内还标配了大尺寸全景天幕和无线充电功能。智驾方面,MONA M03提供标准版和Max两个版本,标配20+智能感知硬件,具备L2级智驾能力,包括智能巡航辅助、自动泊车辅助等功能。小鹏汽车还计划通过四个步骤实现L3+级别的智驾体验。
动力方面,新车提供两种电机选择,最大功率分别为140kW和160kW,电池有51.8/62.2kWh两种容量,续航在515~620km之间。小鹏汽车表示,MONA M03是其四年研发和40亿投入的成果,目标是成为同级别的经典车型。
- 颠覆霍金猜想!数学家证明极端黑洞可能存在
数学家克里斯托夫·凯勒和瑞安·昂格尔通过数学方法证明,极端黑洞可能存在,这颠覆了霍金等人在1973年提出的黑洞热力学第三定律。极端黑洞是一种特殊黑洞,其表面或事件视界的引力为零,表面不吸引任何物质,但内部仍无法逃逸。这种黑洞的存在意味着它们没有温度,无法发射热辐射,这与霍金辐射理论相矛盾。霍金辐射理论认为黑洞可以缓慢向外辐射能量,逐渐失去质量并最终消失。然而,数学家们还证明,极端黑洞的存在不会导致裸奇点存在,这与彭罗斯的观点一致,即自然界不允许裸奇点存在,因为它们会破坏宇宙的因果性。尽管数学上证明了极端黑洞的可能性,但目前还没有观测到明显带有电荷的黑洞。这项研究为广义相对论、量子力学、弦理论等前沿领域提供了新的见解。
技术博客
- 浅析 JVM invokedynamic 指令和 Java Lambda 语法|得物技术
这篇文章主要探讨了JVM中的invokedynamic指令以及Java中的Lambda表达式。文章首先指出,尽管JDK版本更新迅速,但JDK8因其兼容性、稳定性和语言特性,尤其是Lambda表达式,仍然在开发者中占据主导地位。Lambda表达式简化了Java的函数式编程,使得代码更加简洁。
文章接着讨论了Java与JVM的关系,解释了JVM如何通过字节码指令集解耦高级语言和底层架构,实现“一次编译,处处运行”。Java语言的任何新特性,如果不是纯粹的语法糖,都需要JVM特性的支持。因此,支持Lambda表达式的JVM特性就是invokedynamic指令。
invokedynamic是Java 7引入的新型指令,它允许在运行时动态解析方法调用,与之前的invoke系列指令相比,它不要求在编译期确定目标方法。这种设计使得JVM可以更好地支持动态类型的高级语言,如JavaScript和Python。
文章详细介绍了invokedynamic的工作原理,包括引导方法(Bootstrap Method)和方法句柄(MethodHandle)。invokedynamic通过引导方法来动态决定调用哪个方法,而方法句柄则允许Java方法像C语言中的方法指针或JavaScript/Python中的方法变量一样工作。
在Lambda表达式的实现部分,文章解释了Lambda表达式如何通过invokedynamic指令和引导方法来实现。Lambda表达式在编译时会被转换成静态方法,并通过invokedynamic调用。文章还讨论了Lambda表达式的性能,指出无状态的Lambda表达式性能开销很小,而有状态的Lambda表达式(捕获外部变量)的性能与匿名内部类类似。
最后,文章总结了invokedynamic指令的重要性,它不仅支持Lambda表达式,还对JVM语言开发者(如Kotlin、Groovy等)至关重要。文章还强调了Lambda表达式捕获的局部变量必须是final或effectively final,这是Java语言层面的限制,以避免潜在的错误。
整体而言,文章深入分析了invokedynamic指令和Lambda表达式的技术细节,为读者提供了对Java函数式编程和JVM动态特性的深刻理解。
- Java字符串拼接技术演进及阿里巴巴的贡献
本文主要介绍了Java字符串拼接技术的演进历程,以及阿里巴巴在该领域的贡献。在JDK 8中,使用"+“进行字符串拼接与使用StringBuilder性能相当,因此推荐使用更简洁的”+“。JDK 9引入了JEP 280,使得”+"拼接字符串的性能优于StringBuilder,因为它通过StringConcatFactory.makeConcatWithConstants方法动态生成代码,减少了对象创建和数组拷贝。
阿里巴巴的工程师温绍锦在2024年7月提交了PR 20273,提出了一种新的字符串拼接实现方案,使用动态字节码生成隐藏类,代替了基于MethodHandle表达式的实现。这种方法在保持相似运行性能的同时,显著提升了启动性能,减少了JVM优化器的开销。
除了PR 20273,阿里巴巴还对字符串拼接进行了其他贡献,包括优化StringConcatHelper.simpleConcat的PR 20253,减少float/double类型转换为字符串的内存分配的PR 19730,以及提升Integer/Long.toString和相关StringBuilder.append性能的PR 14699。
总结来说,JDK 8中"+"的使用已经足够高效,JDK 11之后通过JEP 280进一步优化了字符串拼接的性能。阿里巴巴的贡献,特别是PR 20273,不仅提升了性能,还解决了启动速度慢和JIT优化资源消耗大的问题,预计该实现将在JDK 24中成为默认的字符串拼接方式。此外,阿里巴巴在OpenJDK社区的其他贡献也涵盖了GC、JIT、Runtime、RAS等多个方面,推动了Java技术的进步。
开源项目
- AppFlowy
AppFlowy是一个开源的Notion替代品,旨在提供数据安全、跨平台的原生体验和社区驱动的可扩展性。它使用Flutter和Rust构建,支持Windows、Mac、Linux和Docker。
- AFFiNE
AFFiNE是一个隐私优先、本地优先、开源的一体化工作空间和操作系统,旨在整合构建知识库所需的所有构建块,如维基、知识管理、演示和数字资产。它提供了一个无边界的画布,支持多种编辑应用,并且是Notion和Miro的更好替代品。AFFiNE支持本地数据所有权、实时协作、自托管,并即将推出插件社区和第三方模块。项目由多个开源项目支持,如Blocksuite、OctoBase、yjs等。
- coolify
Coolify是一个开源且可自托管的平台,旨在替代Heroku、Netlify和Vercel等服务。它允许用户在自己的硬件上管理服务器、应用程序和数据库,仅需SSH连接即可。Coolify提供了云服务的便利性,同时避免了供应商锁定,因为所有配置都保存在用户服务器上。项目还提供了付费的云版本,提供高可用性、免费邮件通知、更好的支持和较少的维护需求。
- openobserve
OpenObserve是一个云原生的可观测性平台,专为日志、指标、追踪、分析和真实用户监控(RUM)设计,支持PB级数据规模。它易于操作,与Elasticsearch相比,减少了设置和调整的复杂性。OpenObserve提供了一个用户界面,无需单独安装,并且可以显著降低存储成本。它支持多种数据类型和查询语言,包括SQL和PromQL,并提供高可用性和集群功能。
学习资源
- 70本经典程序员书单
这份书单汇集了编程领域的经典书籍,涵盖了从算法、编程语言、设计模式到软件开发等多个方面。书籍作者包括Donald E. Knuth、Martin Fowler、Robert C. Martin等知名专家,出版年份从1968年至2023年,涉及多种编程语言和主题。
- books
Free-Educa/books 是一个GitHub仓库,提供与开发和编程相关的精选书籍资源。该仓库旨在帮助程序员和开发者获取最新趋势、工具和最佳实践的知识。书籍内容覆盖编程语言、Web开发、移动应用开发、软件工程、数据科学、机器学习、DevOps、基础设施、软件架构和网络安全等多个领域。所有书籍均免费提供,且鼓励社区贡献和反馈。
其他周刊
- 科技爱好者周刊(第 315 期):一份谷歌离职报告
本期分享了一位谷歌SRE工程师的离职报告。该工程师在谷歌工作了九年,从L3晋升至L6级别,期间获得了丰富的经济回报、技术技能、领导力以及公司福利。然而,她指出谷歌发生了变化,不再像以前那样有趣,技术优势减弱,内部预算削减,商务旅行减少,招聘名额转移,安全规章增多,使得工作环境变得复杂。她感到自己的能力没有得到充分发挥,缺乏成长机会,且公司高管缺乏支持。
该工程师还提到,自己对谷歌技术的迷恋减少,兴趣转向其他方面,SRE岗位与她的性格不符,长期夜班影响了她的睡眠。她考虑过换岗位,但爱尔兰缺乏其他选择,且作为非美国总部的员工,感到被边缘化。她认为自己在谷歌的晋升机会有限,对L7级别的政治角色不感兴趣。她对自己的财务状况感到满意,但后悔没有早点寻求变化。
周刊还提到了微软工程师的薪资情况,显示微软工程师的年薪较高,收入差异主要由奖金和股票决定。此外,周刊还包含了科技动态,如中国的载人飞艇AS700的飞行、新形状意大利面的设计、折叠屏笔记本的创新等。同时,周刊还提供了一些编程工具、AI相关资源和活动通知,如豆包MarsCode的AI编程活动。最后,周刊以一些言论和往年回顾作为结尾。
- AIGC Weekly #86
Ideogram发布了2.0图像生成模型,提升了图像生成质量并改进了产品易用性,新增了图像风格控制和调色板控制功能,同时推出了移动端APP和API。Jamba 1.5系列模型作为非Transformer架构,性能首次追上市场上的先进模型,具备256K的有效上下文窗口和快速长文本处理能力。
在产品推荐方面,Zed AI作为一个AI代码编辑器,通过集成Anthropic的Claude 3.5 Sonnet模型,提供了在线服务以提高开发者的生产力。Vercel V0新增了对话式UI界面,集成了最新的Web开发技术。Ugic作为一个Figma AI UI生成插件,支持调用设计组件库生成界面,降低了UI设计的门槛。
精选文章部分,a16z发布了AI应用Top 100排名,展示了AI应用领域的最新趋势。文章还探讨了如何评估大语言模型的有效性,介绍了新的LLM训练前和训练后范式,以及深度学习中非线性的新视角。此外,还介绍了如何将Llama-3.1 8B模型修剪和蒸馏为更小的Llama-3.1-Minitron 4B模型,以及如何构建能够生成全栈应用的Townie应用程序。
重点研究部分,微软发布了Phi 3.5系列模型,包括Phi 3.5 Mini、Phi 3.5 MoE和Phi 3.5 Vision,这些模型在性能上超过了多个现有模型。HALVA项目旨在减少语言模型中的物体幻觉问题,通过数据增强的对比微调方法来提高模型的准确性。Transfusion模型通过结合语言建模和扩散模型的训练目标,实现了对文本和图像的同时理解和生成。Sapiens模型组专注于四项基本以人为中心的视觉任务,支持高分辨率推理。MegaFusion项目则推动了扩展扩散模型向更高分辨率图像生成的发展。