首页 文章 精选 留言 我的

精选列表

搜索[UTF-8编码],共10000篇文章
优秀的个人博客,低调大师

苹果将在 Xcode 中原生集成 AI 编码助手——类似 GitHub Copilot

彭博社近日的报道透露了苹果公司内部对生成式 AI 技术的反应。 这篇报道引用了苹果首席执行官 Tim Cook 的原话:“苹果多年来一直致力于生成式 AI 技术。但我可以明确地告诉你,苹果高管对行业突如其来的人工智能热潮感到措手不及,自去年底以来一直在忙着弥补失去的时间。”另外有知情人士称,苹果公司内部对此感到非常焦虑,认为这是一个相当大的失误。 今年 7 月,苹果公司构建了自己的大型语言模型,称为 Ajax,并推出了一个名为“Apple GPT”的内部聊天机器人来测试其功能。下一步的关键是确定该技术是否能够应对竞争对手,以及苹果如何将其实际应用到产品中。 分别负责人工智能和软件工程的高级副总裁 John Giannandrea 以及 Craig Federighi 正在带头开展这项工作,服务主管 Eddy Cue 也参与其中。目前,3 人计划每年在该项目上花费约 10 亿美元。 据介绍,John Giannandrea 主要负责全新 AI 系统的底层技术,他的团队目前正在改进 Siri,这个更智能的 Siri 最早可能会在明年准备就绪。但这项技术仍然让人感到担忧,而且苹果的 AI 功能可能需要更长的时间才能在其产品线中普及。 与此同时,Craig Federighi 的软件工程团队正在将 AI 添加到 iOS 的下一个版本,以及将生成式 AI 技术整合到 Xcode 等开发工具中——与微软的 GitHub Copilot 等服务类似。此举可以帮助应用程序开发者更快地编写应用程序,帮助他们在编写代码时提供自动补全建议。 报道还提到,苹果公司内部正在进行的一场争论是如何部署生成式 AI::完全在设备上运行、基于云运行或介于两者之间。 部署在设备上会运行得更快,并有助于保护隐私,但通过云部署大模型将允许更高级的操作。部署在设备端的策略也会让苹果更难更新其技术并适应快速变化的行业。考虑到这一点,该公司很可能采用组合方法:使用设备上的部署处理某些功能,使用云来处理更高级的任务。 延伸阅读 苹果悄悄开发 Apple GPT

优秀的个人博客,低调大师

Sqlbean1.5.6 发布,减少 Sql 语句,让你编码更高效

Sqlbean 介绍 Sqlbean是一款使用Java面向对象思想来编写并生成Sql语句的工具,在此基础上对Mybatis和Spring Jdbc实现了类似于JPA的轻量级插件支持。其中内置大量常用SQL执行的方法,可以非常方便的达到你想要的目的,相对复杂的SQL语句也得以支持,在常规的项目开发几乎做到不写DAO层,可以有效的提高项目开发的效率,让开发者更专注于业务代码的编写。 🚀特点: 零入侵, 多数据源, 动态Schema, 读写分离, 自动建表, 连表查询, 乐观锁, 分页, 支持Mybatis和Spring Jdbc 💻环境: JDK8+, Mybatis3.2.4+, (Spring MVC 4.1.2+, Spring Boot 1.x, Spring Boot 2.x) 💿数据库: Mysql, MariaDB, Oracle, Sqlserver2008+, PostgreSQL, DB2, Derby, Sqlite, HSQL, H2 Sqlbean For Android请移步这里👉gitee,github 简单上手 1.引入Maven依赖 <dependency> <groupId>cn.vonce</groupId> <artifactId>vonce-sqlbean-spring</artifactId> <version>1.5.6</version> </dependency> 2.标注实体类 //标识表名 //标识表名 @SqlTable("d_essay") public class Essay { @SqlId(type = IdType.SNOWFLAKE_ID_16) private Long id; private String userId; private String content; private Date creationTime; @SqlVersion private Date updateTime; /**省略get set方法*/ } 3.无需Dao层,Service层接口只需继承SqlBeanService<实体类, ID> public interface EssayService extends SqlBeanService<Essay, Long> { //已内置大量常用查询、更新、删除、插入方法,这里可以写自己封装的方法 } 4.Service实现类只需继承MybatisSqlBeanServiceImpl<实体类, ID>和实现你的Service接口 //使用Spring Jdbc的话将继承的父类改成SpringJdbcSqlBeanServiceImpl即可 @Service public class EssayServiceImpl extends MybatisSqlBeanServiceImpl<Essay, Long> implements EssayService { } 5.Controller层 @RequestMapping("essay") @RestController public class EssayController { @Autowired private EssayService essayService; //查询 @GetMapping("select") public RS select() { //查询列表 List<Essay> list = essayService.selectAll(); list = essayService.selectByCondition(Wrapper.where(gt(Essay$.id, 10)).and(lt(Essay$.id, 20))); //查询一条 Essay essay = essayService.selectById(1L); essay = essayService.selectOneByCondition(Wrapper.where(eq(Essay$.id, 333))); //复杂查询 Select select = new Select(); select.column(Essay$.id).column(Essay$.content); select.where().gt(Essay$.id, 1).and().eq(Essay$.content, "222"); select.orderBy(Essay$.id, SqlSort.DESC); list = essayService.select(select); //用于查询Map Map<String, Object> map = essayService.selectMap(select); List<Map<String, Object>> mapList = essayService.selectMapList(select); return super.successHint("获取成功", list); } //分页 @GetMapping("getList") public Map getList(HttpServletRequest request) { // 查询对象 Select select = new Select(); ReqPageHelper<Essay> pageHelper = new ReqPageHelper<>(request); pageHelper.paging(select, essayService); return pageHelper.toResult("获取列表成功"); } //更新 @PostMapping("update") public RS update(Essay essay) { //根据bean内部id更新 long i = essayService.updateByBeanId(essay); //根据条件更新 //i = essayService.updateByCondition(Wrapper.where(gt(Essay$.id, 1)).and(eq(Essay$.content, "222"))); if (i > 0) { return super.successHint("更新成功"); } return super.othersHint("更新失败"); } //删除 @PostMapping("deleteById") public RS deleteById(Integer[] id) { //根据id删除 long i = essayService.deleteById(id); //根据条件删除 //i = essayService.deleteByCondition(Wrapper.where(gt(Essay$.id, 1)).and(eq(Essay$.content, "222"))); if (i > 0) { return super.successHint("删除成功"); } return super.othersHint("删除失败"); } //插入 @PostMapping("add") public RS add() { List<Essay> essayList = new ArrayList<>(); for (int i = 0; i < 100; i++) { Essay essay = new Essay(i, "name" + i); essayList.add(essay); } essayService.insert(essayList); return successHint("成功"); } } 本次更新内容: 1:如果使用逻辑删除时Delete对象自动转Update对象进行逻辑删除; 2:如果使用逻辑删除但该字段为null则自动填充; 3:优化字段生成,非数据库字段过滤; 4:重载排序方法; 5:修复条件处理器; 6:其他优化

优秀的个人博客,低调大师

ASTC Encoder 3.0 发布,ARM 推出的 ASTC 格式编码器

ASTC(Adaptive Scalable Texture Compression)是由 Arm 和 AMD 联合开发的一种先进的纹理压缩技术。它已被采纳为 OpenGL 和 OpenGL ES API 的官方 Khronos 扩展,并作为 Vulkan API 的一个标准可选功能。 ASTC Encoder(Adaptive Scalable Texture Compression Encoder), 则是 Arm 推出的一款使用 ASTC 纹理压缩标准进行压缩和解压图像的命令行工具。与 2.5 版本相比,3.x 系列的主要目标是要保持图像质量不变或更好的前提下,进一步提高性能。 ASTC Encoder 3.0 正式发布,该版本更新内容如下: 通用: 特点:代码已被大幅清理,注释、API 文档、函数命名和变量命名都有改进; 核心 API: API 变化:astcenc_compress_image()和astcenc_decompress_image()的核心 API 现在通过const指针接受 swizzle 结构,而不是逐值传递; API 变化:在图像之间调用astcenc_compress_reset()和astcenc_decompress_reset()函数不再需要,因为 context 是为单线程使用而创建; 特性:增加了新的启发式方法,用于控制何时搜索超过 2 个分区和 1 个平面,以及何时搜索超过 3 个分区和 1 个平面。先前的tune_partition_early_out_limit配置选项已被删除,取而代之的是两个新选项tune_2_partition_early_out_limit_factor和tune_3_partition_early_out_limit_factor; 特性:增加了新的启发式方法来控制何时使用双重平面。以前的tune_two_plane_early_out_limit被改名为totune_2_plane_early_out_limit_correlation; 特性:对使用双重平面的支持已被限制在单分区区块上;它很少能帮助有 2 个或更多分区的区块,并且需要相当多的压缩搜索时间; 性能: 这个版本包括进一步的性能优化,与 2.5 版本相比,性能提高了 25% 到 75%,这取决于使用的图像和搜索质量预设。较小的区块大小和较高的搜索质量受益最大; 图像质量: -medium和-fast预设已被调整,以提供可衡量的更好的图像质量。 更多详情可查看:https://github.com/ARM-software/astc-encoder/releases/tag/3.0

优秀的个人博客,低调大师

KISS、DRY和需要遵守的编码原则

开始编程时遇到的第一个挑战是编写功能代码。但成为开发者后,编程技能也会随之增长。你的代码应该从普通的功能代码发展为简洁、高效、可理解且可维护的代码。 这才是开发人员面临的真正挑战。 本文将会介绍助你实现超级代码状态的5个原则。 1. 代码一目了然 程序的大小增加时,代码的复杂性也会随之增加。代码也会变得很难调试,因为调试复杂的代码是一项可怕的任务。没有人喜欢维护复杂的代码。这个原则指出应该始终保持代码的简单性。如果代码复杂,请努力将其分解成更小、更易维护的代码。 编写简洁的代码比编写复杂的BS代码更困难。作为开发人员,随着技能不断成熟,你的代码就应该越干净、越有意义。 2. 你并不需要它 有时应当未雨绸缪,但不是在编程方面。人们倾向于编写将来可能需要但现在还不需要的代码。这些代码不必要地增加了程序的大小,因为编写的代码从来没有实现过。更重要的是,大多数程序员将来都不会使用这些代码。程序员的这种习惯会使代码不必要地膨胀。 这一原则规定在必要时才实施。这是每个开发人员都应该遵循的一条建议。 3. 不要重复 这一原则对于编写简单且易于修改的代码至关重要。重复的代码是程序员常犯的错误。这个原则指出,一段代码应该在源代码中的一个地方实现。如果注意到同样的代码块重复出现,说明违背了这个原则。 这一概念的反义词为WET代码:所有内容都重复一遍 可以创建一个公共函数或将代码抽象化,以避免代码中的任何重复。 4.关注点分离(SoC) 关注点分离原则:管好自己的事——就是字面意思。这个原则建议将复杂的代码划分为不同的部分或域。每个部分相互独立,因此每个部分可以独立处理。而且,维护、更新和重用代码也更加容易。 SoC一个很好的例子就是MVC架构。该架构将程序分成三个区域:数据(模型)、逻辑(控制器)和最终用户看到的内容(视图)。MVC在现代框架中大量运用。 图片来源:Wikimedia 5. 避免过早优化 我们都希望优化自己的代码。但是该原则指出不应该在开发的早期阶段优化算法。 此原理与YAGNI原理非常相似。不同之处在于,YAGNI原则谈到了实现不必要函数的趋势,而该原则谈到了在必要之前加快算法速度的趋势。 过早优化的问题在于,直至出现问题之前,你永远无法真正知道程序的瓶颈在哪里。当然可以猜测,有时猜测甚至可能是对的。但是更常见的情况是,你会浪费宝贵的时间来尝试加速一个并不比预期慢的或者不像期望的那样经常被调用的函数。 结语 “编写代码的时候,永远要把维护代码的人当成一个知道你住在哪里的暴力精神病患者。” ——马丁·戈尔丁 成为开发人员后,你会意识到项目的成功在很大程度上取决于你的团队。上面的原则可以帮助你编写可维护的代码——不仅是你自己,将来任何人都可以维护这些代码。毕竟,团结就是力量。 编程快乐!

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册