首页 文章 精选 留言 我的

精选列表

搜索[布隆过滤器],共6716篇文章
优秀的个人博客,低调大师

MongoDB统一分布式数据源,云数据库支持数据湖和搜索功能

即将开播:6月19日,互联网银行架构师魏生谈互联网开放银行实施路径的探索与思考 即将开播:4月29日,民生银行郭庆谈商业银行金融科技赋能的探索与实践--> 分布式文件存储数据库MongoDB发布了新版本,包括大量产品组合更新。并且为云数据库MongoDB Atlas(数据库的特定于云的版本)添加了更多功能,为开发人员推出了全新的产品数据库同步平台。 众所周知MongoDB是一个开源的分布式的文件存储数据库,用于驱动大数据应用和其他数据密集型工作负载。MongoDB之所以广受好评,是因为其可以处理各种应用的多模式数据库。 这使开发者受益,他们只需要学习一种查询语言和一个一致的应用程序编程接口即可构建。MongoDB数据库常用于金融,医疗保健,保险和电信行业的分析和交易应用程序。 MongoDB 4.4新版本现已提供Beta版本,它提供了如Union之类的新功能,该功能使用户可以将多个数据集中的数据混合到一个集合中,从而可以对数据进行更深入的探索和分析。 该版本还增加了定义和优化分片主键(shard keys)的功能,这意味着用户现在可以调整数据在集群中的分配方式,帮助他们的应用在需要时进行扩展。 同时,云数据库MongoDB Atlas已经提供了几个有用的新功能,包括Atlas数据湖和Atlas搜索。 Atlas数据湖功能为用户提供了从MongoDB Atlas控制台访问其现有Amazon S3的简便方法,这使得使用MongDB查询语言运行查询或浏览其数据变得更加容易。如,现在可以在一个地方运行联合查询,一起分析Amazon S3上的实时MongoDB Atlas数据和历史数据,并返回单个查询响应。尤其重要的是,Atlas数据湖是一项完全无服务器的服务,这意味着无需担心设置或维护任何基础架构。 对于Atlas搜索,它使执行Atlas数据集的搜索变得更加容易。MongoDB表示,使用Atlas用户界面或其应用程序编程界面创建了索引,开发者就可以使用MQL运行复杂的搜索查询。 MongoDB还宣布了其新的无服务器移动数据库和同步平台MongoDB Realm的第一个Beta版本。新平台来自MongoDB收购的Realm公司与其自己最初的无服务器平台MongoDB Stitch集成而来。 MongoDB Realm是专门为移动应用提供动力的,来确保这些应用程序不会耗尽电池寿命或占用正在运行的设备的网络数据。主要功能之一是Realm Sync,它可以实现Realm移动客户端和MongoDB Atlas之间的数据双向同步,从而可以在设备之间无缝共享数据。 有分析指出,新版本的发布,能够大大提升开发者的生产力。同时,数据湖和Realm这些新功能,无疑让MongoDB构建下一代应用程序提供了基础。

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

阿里成立独立芯片公司“平头哥”;城市大脑2.0发布;马云谈新制造 | 云栖大会集锦

9月19日,一年一度的杭州云栖大会又开幕了。2016年,马云宣布了新零售、新制造、新金融、新技术、新能源这5新;2017年,最劲爆的事件,还属阿里宣布投资1000亿建立“达摩院”。而2018年呢?记者在现场为你带来新鲜报道。 在上午进行的主会场,随着开场歌舞表演结束,正式进入演讲环节。首先是政府领导致欢迎词。 杭州市领导:“数字让杭州越来越年轻” 开场致辞环节,杭州市委书记和市长均对来自全球的科技爱好者表达了欢迎。他们指出,当前杭州正着力打造“数字经济第一城”,成为互联网+创新创业中心,而政府层面,他们将继续推进“数字经济1号工程”,让龙头企业和高端人才集聚在此。当前的杭州诞生了阿里巴巴、海康威视、网易等巨头,每天602个市场主体出现,杭州也孕育了云栖小镇等特色小镇,同时也新生了一批国内外知名的科研机构,“数字让杭州越来越年轻”,随着移

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

2017年度互联网转型企业TOP5发布 | 2017极客大奖年度评选

经过三个多月紧张有序的评选,2017极客大奖(Geek Awards 2017)年度互联网转型企业TOP5榜单于今日重磅揭晓。结果显示,万达、苏宁、海尔、美的、TCL五家企业榜上有名,成为2017年中国互联网转型的典型代表。 越来越多的人相信,互联网已经不再是一种独立的新经济模式,而是作为一种无处不在的基础设施,浸润到企业经营的方方面面。随着移动互联网飞速普及,未来没有一家企业可以和互联网撇清关系。以综合利用互联网、物联网(IoT)、ABC(人工智能、大数据、云计算)等技术为代表的互联网转型,每一年都会呈现出不一样的发展态势和精彩案例。 在2017极客大奖(Geek Awards)“年度创客先锋”评选活动中,集20万专业读者、500名自明星(自媒体)作家、专家评委及极客网编辑团队之力,最终评选出了2017互联网转型企业TOP5,它们一定程度代表了2017年中国互联网转型的主要势力。 这其中,万达可谓是近年来最知名的“实体+互联网”新商业模式探索者,从单一的飞凡平台到成立覆盖多元的万达网络科技集团,昭示着这家传统巨头正行走在深化线上线下融合、以科技赋能实体的战略转型之路上。 入选榜单的苏宁近年来已经成长为一家线上线下兼备的均衡型企业,但该公司并没有停下互联网转型的脚步,而是同时推动其传统家电渠道角色及电商渠道角色向更高阶的O2O智慧零售平台转型,以给消费者提供更多元、无缝的智慧化体验。 海尔、美的和TCL则是中国拥抱互联网最快的三大家电企业,在“制造+互联网”的道路上均迈出坚定步伐,且成果显著。以TCL为例,该公司早在2014年启动了“产品+服务”、“智能+互联网” 的“双+”战略,成立面向互联网业务的豪客互联等子公司,在海内外均实现了销量增长和用户满意度提升,大大增强了品牌竞争力。 在2017极客大奖年度互联网转型企业评选过程中,最让人意外的是参与角逐此奖项的企业并不多,累计不到10家。这或许从一个侧面反映出,拥抱互联网已成为各传统行业企业自然而然的选择,成为一种深入到骨髓里的东西,因此反而不太爱提互联网转型这个概念了。 放眼未来,这一趋势必定会得到延续。至少在to C层面,或许可以大胆语言:绝大部分互联网企业都将不再是纯互联网企业,而所有的传统企业都将是互联网企业。届时,极客大奖年度互联网转型企业榜单上的名字预计将会越来越少,而各行各业与互联网的耦合将越来越多。 本文出处:畅享网 本文来自云栖社区合作伙伴畅享网,了解相关信息可以关注vsharing.com网站。

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

聚焦全球移动互联网大会(GMIC)2015发布会:"移"生万物

【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 2月10日,全球移动互联网大会(GMIC)在北京召开发布会。其主办方长城会(GWC)——***影响力的移动互联网合作平台,邀请行业***共聚京城,就GMIC 2015的全球八站计划,做了详细的介绍。 据了解,2015年GMIC全球移动互联网大会将于中国北京(4月28-30日)、日本东京(7月10日)、印度班加罗尔(9月24-25日)和美国硅谷(9月)等8个城市举办。主题为“Mobile Everything( ‘移’生万物)”,旨在通过GMIC 这个全球知名且具有影响力的品牌,让移动互联网的思想与思维传递到各行各业。 2015年主题:Mobile Everything “移”生万物 老子言:“一生二、二生三、三生万物”。长城会将2015年全球移动互联网大会的主题定义为“Mobile Everything”,即“移”生万物,正是对当前移动互联网的概述——如今的“Mobile”已不仅仅只是手机、iPad、超级本,还可以是智能手表、谷歌眼镜、特斯拉、机器人等等,这些都是“移动互联网”的载体,而这些智能硬件的摄像头、麦克风、传感器、定位功能,也都已经成了人类“触觉”的延伸,越来越多的人在购物、用餐、出行、工作时,都习惯性地使用移动设备……万物皆移动,移动生万物,移动互联网成为当前推动产业乃至经济社会发展***有力的技术力量。 2015年GMIC将呈现跨界、体验、智能、碰撞、开放五大亮点 跨界,让百花齐放。跨界(Crossover)思维让虚拟现实技术、机器人技术、生物科学、信息技术与汽车、医疗、教育、文化、交通等各个领域交叉融合,2015年GMIC除邀请移动互联网***企业级专家之外,还将力邀医疗、教育、汽车、房地产业等行业知名企业,促进各行业之间跨界交流与合作,进而推动传统行业的移动化转型。 体验,让可能无限。GMIC 北京2015采用了“会+展”结合的方式,22000平米展馆面积是2014年的三倍,有***品牌展区、机器人及可穿戴设备、移动游戏、移动生活、移动医疗、移动教育、去创业、海外国家馆等主题展区等8大主题展区与14大会场相结合为与会者提供从听觉、视觉、触觉到思维全方位移动互联网体验。 智能,让心跳加速。最酷炫的智能机器人、无人机,各种***的智能可穿戴产品、智能汽车等都将出现在GMIC 北京 2015的现场。GMIC大会的智能化管理运营也会给参会者带来良好的观展体验,通过官方App客户端可以便捷的查询会议及展商的信息,定位引导,即时交流。展商的专用客户端可实时统计来展台参观的观众信息,观众可通过门口的观众人气榜了解最该参观的展台。 碰撞,让智慧催生。GMIC 北京2015汇聚来自全球移动互联网***公司的创新***,包括但不仅限于腾讯、小米、猎豹、InMobi、触控科技、CMGE中国手游、QUALCOMM、Google、Facebook等更多全球行业巨头、创业新锐分享经营管理之道,让思维碰撞,让智慧催生。 开放,让互联共享。公平、开放的平台才是创新的真正舞台。开放的平台能让世界上每个人都能连接彼此,让每个人都能够发表自己的见解。2015年长城会致力于将GMIC北京站打造成一个开放合作的平台,任何行业、任何机构、任何人都可以参与到GMIC前期策划、中期组织、后期传播等各个环节中,同时GMIC 北京 2015将邀请来自数十个国家的三万行业人士参与GMIC 北京2015,为与会者提供广阔的交流平台。 GMIC 北京 2015十四大会场一览 ● G20 峰会:移动互联网******参与的闭门会议(邀请制)。 ● ***峰会:为期两天的***峰会将共邀业界精英, 共同探讨移动互联网的发展和未来! ● 全球智能机器人大会:看机器人产业如何发展 ● 移动营销峰会:移动营销破茧未来 ● 移动医疗峰会:在移动的平台做健康的医疗 ● 未来家庭娱乐峰会:更多的娱乐,更多的欢乐带给您的家庭 ● 创新大赛及投资峰会:汇聚全球***潜质的创业团队、***创新精神的产品以及***眼光的投资人 ● 全球移动游戏峰会:全球***移动游戏公司CEO共同分享成功故事,汇聚全球移动游戏生态系统,包括开发商、发行商、渠道商及投资商; ● 全球移动教育峰会:聚集在线教育平台、金融行业***、BAT公司高层、传统教育机构、投行基金等,共同探讨如何打造更具创新与行业价值的移动化产品并服务于全球用户。 ● 智能汽车峰会:智能汽车***未来 ● 全球O2O峰会:看全球O2O行业风云变幻; ● 移动金融峰会:聚集全球***互联网金融企业***、学者,充分交流、共同激荡,未来10年移动互联网与金融行业“跨界颠覆融合”的机遇与挑战。 ● 移动互联网人才峰会:“重磅大咖深度剖析移动互联网人才动向及行业发展趋势,发布2015年《移动互联网职场报告》,和业内资深人事聊聊关于移动互联网人才的那些事儿。” ● 全球新媒体峰会:改变还是再见?主要介绍新媒体与新媒体,新媒体与企业,海外与本土传媒思维的碰撞为主要内容并发布2014年成功转型媒体排行榜单。 4月28日-30日,GMIC 北京2015将以全新的姿态,搭建一个跨界、体验、智能、碰撞、开放的合作平台开放给全球与会者,从平台嵌入灵活、嘉宾合作邀请到峰会内容策划等等多样的参与方式能够为更多有需要的人士提供能为广阔的合作空间。 关于长城会 长城会(GWC)成立于2008年3月27日,致力于打造全球最有影响力的移动互联网合作平台。 我们的使命是:连接世界,诚信天下,让移动互联网的生意更简单,创新让世界更美好! 长城会网站:www.gwc.net 长城会微信公众账号:gwcglobal 长城会微博:www.weibo.com/migwc 【责任编辑: 闫佳明 TEL:(010)68476606】

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

F5发布“2020应用便捷与安全曲线”报告,七成用户愿为体验忽视数据安全

2020年8月12日,F5(NASDAQ:FFIV)在亚太地区发布了一项最新的研究报告,即《2020应用便捷与安全曲线报告:隐私与便利间的悖论》(以下简称“报告”)。结果显示,亚太地区的用户在使用应用时更注重体验,因此常会忽略安全风险;七成以上的用户会在应用程序上共享或存储个人数据,以此获得个性化的服务与更好体验。 这份研究作为2018调查的后续行动,在2020年3月25日至4月13日期间进行,来自中国、澳大利亚、日本、印度、印度尼西亚、新加坡、中国香港和台湾地区等八个市场的4,100多名受访者接受了采访。值得注意的是,这项研究发生在“新冠肺炎”疫情期间。虽然这是一个特殊时期,但互联网和应用的加速普及揭示了人们依旧会在疫情大流行后持续下去的态度和行为。 亚太地区用于更偏向于便利性体验 · 平均69%的亚太地区用户选择以数据隐私为代价以换取更好的体验。比如,来自中国(82%)、印度(79%)和印度尼西亚(79%)的受访者最愿意分享他们的数据。日本(43%)、澳大利亚(50%)和新加坡(58%)的受访者在保护隐私与便捷性体验之间选择了前者。在亚太地区,27%的受访者甚至表示,他们根本没有意识到政府机构网站或那些高频使用的应用被黑客攻击了。 · 数据泄露短期内不会影响消费者的行为,但会导致他们对品牌的信任度降低。调研结果显示,只有4%的受访者表示在发生数据泄露等问题后会停止使用相关的应用。另一方面,用户对应用提供者的信任度平均下降了11.5%。例如,对社交应用的信任度降低19%,对银行/支付应用和电商平台的信任度则降低了16%。 · 大多数的亚太地区消费者将应用安全的责任归至企业和政府身上。其中,43%的受访者认为保护应用安全的责任在企业,32%的受访者认为政府有责任保护用户数据,只有25%的受访者认为自己也有确保安全的责任。 中国四点特色 在报告中,中国有四点特色是与亚太区其他国家不同的: 第一,中国的社交和电商渗透率高达100%,远远领先于亚太区,领先于全球。 第二,中国二维码与生物识别成为特色,扫码支付成为普遍现象,全球其他地方比较少见。 第三,66%的中国用户愿意为保护个人数据而支付费用。 第四,中国银行和支付类应用深受中国消费者信任,信任度从2018年的63%在2020年提升到80%。 F5洞察提示:用户体验决定品牌价值,但安全仍然不可或缺 新加波PSB学院工程技术系助理讲师Ankit Saurabh表示:“新冠肺炎疫情改变了人们日常生活与工作的状态,比如,越来越多的人逐渐适应了远程办公模式,网上银行、线上娱乐、电子商务等线上服务成为主流。这种情况下,企业需要更大力度的安全举措,以保护用户和企业的数据安全。” 在当下这个充满挑战与不确定性的环境中,尤其受“新冠肺炎”疫情全球大流行的影响,用户数字使用习惯的改变加重了用户信息暴露在外的风险。一方面,为保持自身的竞争力,企业需要持续地为用户提供高性能、便捷与安全的数字体验。另一方面,严峻的安全形势迫使企业和政府加大在安全方面的投入,进一步出台法规和合规性政策。为实现这一目标,企业应该将关注点转向那些尚未被开发的资源:客户。 根据F5提供的洞察,企业与客户携手,共同构建一个顺畅且安全的数字体验的目标比以往任何时候都重要。一旦用户掌握正确的信息,便会提高对数据泄露问题的警惕,甚至会对数据使用的透明度提出更高的要求。Saurabh表示,“企业不仅要培训员工提升安全方面的技能,还应让消费者参与到这一安全与便利的权衡中,以减小网络安全的危害。” F5亚太区高级副总裁亚当·贾德(Adam Judd)认为,“新冠肺炎疫情的爆发极大地改变了人们的生活方式,也迫使企业增加数字化转型的力度。同时,消费者对应用的要求也越来越高。“ 他强调,“想要完美平衡便利性和安全性,企业应该在应用的开发阶段便引入用户参与,而不是只供他们使用。 当下,应用的规模和安全漏洞都在成倍增加。唯有与消费者携手共进才能促进行业的蓬勃发展。主动行动、未雨绸缪,也更有利于企业和他们的数字合作伙伴创造更好的解决方案,在满足卓越用户体验的同时实现安全性。” 最后,报告提示,尽管消费者已将保护应用安全的职责归于组织和政府,但持续性的用户教育仍然非常重要,要让用户理解,当他们以安全和隐私为代价去换取便利性时可能带来的后果。唯有达成共识,各方才能从中受益。 点击链接可下载F5 《2020应用便捷与安全曲线报告》 【责任编辑: 周雪 TEL:(010)68476606】

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

gtk-zlang v0.8.0.0发布,基于zlang编程语言的GTK封装的跨平台图形窗口应用开发库

0.8.0.0 2026-09-24 calvin 依赖v0.12.8.0<=zlang<=0.12.*.0 * 随着zlang v0.12.8.0重新构建,所有控件的设置类函数的返回值从控件对象改为bool,配合zlang的连续调用函数操作符".."表达代码,创建临时对象减半,提升性能 一、gtk-zlang介绍 gtk-zlang是基于zlang编程语言的GTK封装包装库,打造跨平台的开源GUI技术栈,让开发者快速开发跨平台的桌面应用软件。 二、底层优势 zlang编程语言是一门原创自研、支持中文编程、融合和创新语法设计并保持简洁高效、开箱即用、跨平台+高性能的编程语言; GTK是一个免费、开源、跨平台的图形用户界面(GUI)开发工具包,它提供了一套丰富的控件(如按钮、对话框、菜单、滑块等)用于创建GUI图形界面应用程序,它支持Linux 、Windows和MacOS; 三、核心亮点 1. **完整GTK控件绑定 深度封装GTK标准控件,用zlang代码可直接调用窗口、对话框、文本框、表格、树视图、弹窗、等全套控件,支持CSS样式、事件回调函数等; 2. **原生跨平台桌面支持 依托GTK跨平台特性,zlang源代码编写一次即可在Linux 、Windows和MacOS上运行; 平台画风适配性,gtk-zlang在Linux 、Windows和MacOS按平台本地风格显示标题栏等风格; 3. **轻量化GUI快速开发 使用简洁的类C/C++/Java风格zlang代码快速构建GUI窗体和控件、以及事件回调处理逻辑,易上手,学习曲线平缓,一站式完成“静态界面、动态交互”桌面应用软件开发; 还能使用XML描述性配置来声明式构建窗体和控件,工作量再缩减一半以上,也更方便理解和修改; gtk-zlang包装了GTK,同时还做了一定的封装,使得开发更加方便、集成、高效; 4. **无缝联动zlang生态 可直接复用zlang标准库文件读写、网络、数据库等处理能力,以及第三方封装好的zlang对象库; 5. **低资源占用 不同于Electron的臃肿和占内存,zlang和gtk-zlang技术栈走的是另一条技术路线,解释语言zlang可以让开发者快速开发应用软件,应用逻辑细节处理都用C封装成zlang对象在zlang代码中直接调用,既可以快速开发原型和调试,又保证了运行性能、商业机密/算法专利和防篡改,同时还极大的缩小了安装包大小和内存占用; 6. **开源驱动、持续迭代 gtk-zlang是开源的,这意味着它是社区驱动而不是商业公司控制,学习者可以访问完整源代码,开源开发者可以提交补丁和贡献特性;使用gtk-zlang完全免费,不像QT 需要支付高昂的授权费用; 四、功能和能力 gtk-zlang包装了丰富的窗体对象、布局对象、控件对象和工具对象,也封装了一些原生繁琐的常用操作,供zlang开发者调用,快速构建桌面应用软件。 以下是目前已经包装封装好的对象清单: 对象类型 对象清单 窗体对象 窗口、消息对话框、文件对话框、颜色对话框、字体对话框 布局对象 固定位置布局、盒子布局、对齐盒子布局、流式盒子布局、网格布局、滚动条布局、外框布局、标签页布局、分隔栏布局、弹出浮动窗体布局、折叠布局 | 控件对象 | 菜单栏类: 菜单栏、菜单、菜单项 工具栏类:工具栏、工具栏分隔条 普通控件类:标签控件、行编辑控件、块编辑控件、高级块编辑控件 按钮和选择框类:按钮控件、切换按钮控件、数值调整按钮控件、链接按钮控件、单选框控件、多选框控件 列表和表格类:列表框控件、下拉列表框控件、表格控件、树型表格控件 杂类:容量控件、进度条控件、切换开关控件、滑块控件、日历控件、图像控件、图片控件、视频播放器控件、分割线控件 | | 工具对象 | 鼠标、键、方向、控件对齐、文本对齐、监视器、剪贴板、许可协议 | 五、安装说明 安装说明 六、代码示例 hello world 国际惯例,学习一门新语言或新技术首先写一个简单完整的示例案例感受一下,表示我上手了。 import stdtypes stdio gtk ; function int main( array args ) { guiwindow win ; try { win.SetTitle( "hello gtk-zlang" ); win.SetSize( 400 , 300 ); win.SetChild( <object> guilabel.Create(win,"Hello world").SetExpand(true).SetAlign(guialign.CENTER) ); win.OpenWindow(); catch { guimessagedialog.ModalOpenDialog( win , guimessagedialog.ERROR_TYPE , zexception.GetExceptionName() , zexception.GetExceptionDesc() , guibutton.BUTTONS_OK ) ; } } return 0; } 也可以用XML来构造窗口,效果同上: import stdtypes stdio gtk ; function int main( array args ) { guiwindow win ; try { win.BuildFromXml( " <window title='hello gtk-zlang' size='400*300'> <label expand='true' align='CENTER'>Hello world</label> </window> " ); win.OpenWindow(); catch { guimessagedialog.ModalOpenDialog( win , guimessagedialog.ERROR_TYPE , zexception.GetExceptionName() , zexception.GetExceptionDesc() , guibutton.BUTTONS_OK ) ; } } return 0; } 复杂对话框 ... function int main( array args ) { guiwindow win ; try { win.BuildFromXml( " <window window-type='DIALOG_WINDOW_TYPE' title='win-zcrypto' control-default-margin='5'> <notebooklayout> <vboxlayout notebooklayout-title='Digest'> <hboxlayout> <label>Artimetic :</label> <combobox name='digest_artimetic_COMBOBOX'> <comboboxitem>MD4</comboboxitem> <comboboxitem>MD5</comboboxitem> <comboboxitem selected>SHA1</comboboxitem> <comboboxitem>SHA224</comboboxitem> <comboboxitem>SHA256</comboboxitem> <comboboxitem>SHA384</comboboxitem> <comboboxitem>SHA512</comboboxitem> </combobox> </hboxlayout> <hseparator /> <gridlayout> <r> <c r-span='4' align='START'><label vertical-align='START'>Input :</label></c> <c><radiobutton group='digest_input_FORMAT' label='TEXT' checked='true' /></c> <c r-span='3'><scrollwindowlayout><editarea name='digest_input_EDITAREA' size='700*100' horizontal-expand='true' /></scrollwindowlayout></c> </r> <r> <c /> <c><radiobutton group='digest_input_FORMAT' label='HEXSTR' /></c> <c /> </r> <r> <c /> <c><radiobutton group='digest_input_FORMAT' label='BASE64' /></c> <c /> </r> <r> <c /> <c><radiobutton group='digest_input_FORMAT' label='FILE' toggle-event-callback='radiobtn_digest_input_FORMAT_FILE_OnToggled' /></c> <c><edit name='digest_input_filename_EDIT' horizontal-expand='true' /></c> </r> </gridlayout> <hseparator /> <gridlayout> <r> <c r-span='3' align='START'><label vertical-align='START'>Salt :</label></c> <c><radiobutton group='digest_salt_FORMAT' label='TEXT' checked='true' /></c> <c r-span='3'><scrollwindowlayout><editarea name='digest_salt_EDIT' size='700*100' horizontal-expand='true' /></scrollwindowlayout></c> </r> <r> <c /> <c><radiobutton group='digest_salt_FORMAT' label='HEXSTR' /></c> <c /> </r> <r> <c /> <c><radiobutton group='digest_salt_FORMAT' label='BASE64' /></c> <c /> </r> </gridlayout> <hseparator /> <button label='>>> Hash <<<' click-event-callback='btn_digest_calc_OnClick' name='digest_hash_BUTTON' horizontal-expand='true' horizontal-align='FILL' /> <hseparator /> <gridlayout> <r> <c r-span='2' align='START'><label vertical-align='START'>Output :</label></c> <c><radiobutton group='digest_output_FORMAT' label='HEXSTR' checked='true' /></c> <c r-span='2'><editarea name='digest_output_EDITAREA' size='600*100' horizontal-expand='true' /></c> </r> <r> <c /> <c><radiobutton group='digest_output_FORMAT' label='BASE64' /></c> <c /> </r> </gridlayout> </vboxlayout> ... </notebooklayout> </window> " ); win.OpenWindow(); catch { stdout.Println( zexception.GetExceptionDesc() ); } } return 0; } ... 多文档窗体(含菜单栏、工具栏、多标签布局、状态栏) ... function int CreateWindow() { try { main_win.BuildFromXml( " <window window-type='MULTIPLE_DOCUMENT_WINDOW_TYPE' title='ZEUX' maximize close-window-event-callback='CloseWindow'> <menubar> <menubaritem label='File'> <menu> <menusection> <menuitem label='New' activate-event-callback='File_New_menuitem_OnClicked' accelerator-key='<ctrl>n' /> <menuitem label='Open' activate-event-callback='File_Open_menuitem_OnClicked' accelerator-key='<ctrl>o' /> <menuitem label='Save' activate-event-callback='File_Save_menuitem_OnClicked' accelerator-key='<ctrl>s' /> <menuitem label='Close' activate-event-callback='File_Close_menuitem_OnClicked' /> </menusection> </menu> </menubaritem> <menubaritem label='Edit'> <menu> <menusection> <menuitem label='Undo' activate-event-callback='Edit_Undo_menuitem_OnClicked' accelerator-key='<ctrl>z' /> <menuitem label='Redo' activate-event-callback='Edit_Redo_menuitem_OnClicked' accelerator-key='<ctrl>y' /> </menusection> <menusection> <menuitem label='Cut' activate-event-callback='Edit_Cut_menuitem_OnClicked' accelerator-key='<ctrl>x' /> <menuitem label='Copy' activate-event-callback='Edit_Copy_menuitem_OnClicked' accelerator-key='<ctrl>c' /> <menuitem label='Paste' activate-event-callback='Edit_Paste_menuitem_OnClicked' accelerator-key='<ctrl>v' /> <menuitem label='Delete' activate-event-callback='Edit_Delete_menuitem_OnClicked' accelerator-key='<ctrl>DEL' /> </menusection> </menu> </menubaritem> <menubaritem label='Search'> <menu> <menusection> <menuitem label='Find ...' activate-event-callback='Search_Find_menuitem_OnClicked' accelerator-key='<ctrl>f' /> <menuitem label='Find prev' activate-event-callback='Search_FindPrev_menuitem_OnClicked' accelerator-key='<ctrl>F3' /> <menuitem label='Find next' activate-event-callback='Search_FindNext_menuitem_OnClicked' accelerator-key='F3' /> <menuitem label='Replace ...' activate-event-callback='Search_Replace_menuitem_OnClicked' accelerator-key='<ctrl>r' /> </menusection> </menu> <menu> <menusection> <menuitem label='Advance move cursor'> <menu> <menusection> <menuitem label='Move left word' activate-event-callback='Search_Advance_MoveLeftWord_menuitem_OnClicked' accelerator-key='<ctrl>LEFT' /> <menuitem label='Move right word' activate-event-callback='Search_Advance_MoveRightWord_menuitem_OnClicked' accelerator-key='<ctrl>RIGHT' /> </menusection> </menu> </menuitem> <menuitem label='Basic select text'> <menu> <menusection> <menuitem label='Select all' activate-event-callback='Search_BasicSelectText_SelectAll_menuitem_OnClicked' accelerator-key='<ctrl>a' /> <menuitem label='Select word' activate-event-callback='Search_BasicSelectText_SelectWord_menuitem_OnClicked' accelerator-key='<ctrl>w' /> <menuitem label='Select line' activate-event-callback='Search_BasicSelectText_SelectLine_menuitem_OnClicked' accelerator-key='<ctrl>l' /> </menusection> </menu> </menuitem> <menuitem label='Advance select text'> <menu> <menusection> <menuitem label='Append select left word' activate-event-callback='Search_AdvanceSelectText_AppendSelectLeftWord_menuitem_OnClicked' accelerator-key='<ctrl><shift>LEFT' /> <menuitem label='Append select right word' activate-event-callback='Search_AdvanceSelectText_AppendSelectRightWord_menuitem_OnClicked' accelerator-key='<ctrl><shift>RIGHT' /> </menusection> </menu> </menuitem> <menuitem label='Goto'> <menu> <menusection> <menuitem label='Goto line' activate-event-callback='Search_Goto_GotoLine_menuitem_OnClicked' accelerator-key='<ctrl>g' /> <menuitem label='Goto file offset' activate-event-callback='Search_Goto_GotoFileOffset_menuitem_OnClicked' /> <menuitem label='Goto line offset' activate-event-callback='Search_Goto_GotoLineOffset_menuitem_OnClicked' /> </menusection> </menu> </menuitem> </menusection> </menu> </menubaritem> <menubaritem label='View'> <menu> <menusection> <menuitem label='Font ...' activate-event-callback='View_Font_menuitem_OnClicked' /> </menusection> </menu> </menubaritem> <menubaritem label='Environment'> <menu> <menusection> <menuitem label='Window popup menu' checked='false' activate-event-callback='Environment_WindowPopupMenu_menuitem_OnClicked' name='menubar_Environment_Window-popup-menu_menuitem' /> </menusection> </menu> </menubaritem> <menubaritem label='Help'> <menu> <menusection> <menuitem label='About' activate-event-callback='Help_About_menuitem_OnClicked' /> </menusection> </menu> </menubaritem> </menubar> <toolbar> <button icon='document-new' click-event-callback='File_New_toolbuttonitem_OnClicked' tooltip='New File' /> <button icon='document-open' click-event-callback='File_Open_toolbuttonitem_OnClicked' tooltip='Open File' /> <button icon='document-save' click-event-callback='File_Save_toolbuttonitem_OnClicked' tooltip='Save File' /> <toolseparatoritem /> <button icon='edit-undo' click-event-callback='Edit_Undo_toolbuttonitem_OnClicked' tooltip='Undo' /> <button icon='edit-redo' click-event-callback='Edit_Redo_toolbuttonitem_OnClicked' tooltip='Redo' /> <toolseparatoritem /> <button icon='edit-cut' click-event-callback='Edit_Cut_toolbuttonitem_OnClicked' tooltip='Cut' /> <button icon='edit-copy' click-event-callback='Edit_Copy_toolbuttonitem_OnClicked' tooltip='Copy' /> <button icon='edit-paste' click-event-callback='Edit_Paste_toolbuttonitem_OnClicked' tooltip='Paste' /> <button icon='edit-delete' click-event-callback='Edit_Delete_toolbuttonitem_OnClicked' tooltip='Delete' /> <toolseparatoritem /> <button icon='application-exit' click-event-callback='File_Exit_toolbuttonitem_OnClicked' tooltip='Exit' /> </toolbar> <statusbar> <label name='Processing_Info' horizontal-expand='true' horizontal-align='CENTER' /> <label name='RowNo_ColNo_FileOffset' horizontal-expand='true' horizontal-align='CENTER' /> <label name='Newline_Mode' horizontal-expand='true' horizontal-align='CENTER' /> <label name='File_Encoding' horizontal-expand='true' horizontal-align='CENTER' /> </statusbar> </window> " ); main_win.ShowWindow(); keys_val = regedit.QueryKeys( regedit.HKEY_CLASSES_ROOT , '''*\shell\ZEUX''' ) ; if( keys_val ) main_win.GetControlByName("menubar_Environment_Window-popup-menu_menuitem").SetChecked( true ); else main_win.GetControlByName("menubar_Environment_Window-popup-menu_menuitem").SetChecked( false ); catch { message = string.FormatString( "exception name : %s\nexception desc : %s\nsource filename : %s:%d\nobject name : %s\nfunction name : %s\n" , zexception.GetExceptionName() , zexception.GetExceptionDesc() , zexception.GetExceptionSourceFilename() , zexception.GetExceptionSourceRow() , zexception.GetExceptionObjectName() , zexception.GetExceptionFunctionName() ) ; guimessagedialog.ModalOpenDialog( main_win , guimessagedialog.ERROR_TYPE , "Main_Window" , message , guibutton.BUTTONS_OK ) ; return zexception.SetException(); } } return 0; } ... 七、官方提供的控件使用代码示例目录 ​ 源代码包路径: \gtk\test\*.z。 八、官方开发的桌面应用软件 msgdialog——用zlang语言开发的模拟Windows消息对话框,可在应用中引用使用; zcrypto —— 用zlang语言+gtk-zlang开发的桌面安全算法工具(包含命令行模式和图形模式); ZEUX —— 用zlang语言+gtk-zlang开发的桌面文本/源代码编辑器; ZephPlayer —— 用zlang语言+gtk-zlang开发的桌面多媒体播放器; 九、快速开始 1. 源码仓库地址:https://gitee.com/calvinwilliams/gtk-zlang (仓库内含整套源代码、测试用例与详细介绍)

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

DRS 2.23.07.263 ORACLE 19C至GAUSSDB 8.3.1分布式链路全量+增量任务启动失败案例分析

在近期的一次数据迁移项目实施中,项目组计划通过华为云数据复制服务(DRS)将源端Oracle数据库的数据全量+增量同步至目标端GaussDB分布式数据库。然而,在任务配置完成后,启动“全量+增量”模式的迁移任务时,任务状态未能进入正常的同步阶段,而是迅速报错并进入失败(Failed)状态。

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

agno v2.7.2发布:OAuth 接入、AG-UI Client Tools 上线、远程运行与文件安全双修复全解析

2026 年 7 月 12 日,agno 发布了 v2.7.2 Latest。 从本次更新内容来看,v2.7.2 并不是一次单纯的小修小补,而是围绕 AgentOS MCP 能力、AG-UI 前端工具支持、连接体验优化、A2A 范围映射调整、远程运行媒体序列化、安全修复、工具注入修复,以及 Google Calendar 时间处理一致性 做了一次非常完整的更新。

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

国产一站式数据库访问工具 CloudDM v2.1.0发布,新增 4 个数据源

CloudDM 是 ClouGence 公司推出的一款一站式多数据源开发管理工具,使用它可以方便地访问和管理 MySQL、Oracle、PostgreSQL、阿里云RDS、Greenplum、TiDB、Redis、StarRocks、Doris、SelectDB、SQL SERVER、ClickHouse、OceanBase 、PolarDB-X 、IBM Db2 等多种不同类型的数据库。通过 CloudDM 丰富的数据源支持可以避免在多个专业工具之间切换,从而提高工作效率。 它是本地化的应用程序,没有后台进程。和 DataGrip、Navicat 一样在安装完成后,只需要双击应用程序图标,便可以方便的管理位于本地计算机或远程计算机上的数据库。已经支持 Windows 和 MacOS 两个操作系统。 更新内容 本次版本发布带来了 4 个新的数据源支持和大量 Redis 指令的支持,更新内容如下: [新增] SQL SERVER、OceanBase、SelectDB、PolarDB-X、IBM Db2 数据源支持 [新增] Redis 新增 cluster、info 命令组的完整支持 [新增] Redis 新增 账号/密码 方式链接 [修复] MacOS(含M1/M2) 安装问题 [修复] 补充 Oracle 驱动包文件,该驱动包缺失可能导致查询报错 [修复] 修复系统语言非中文的环境下,字体显示错误问题 下载与反馈 产品官网:https://www.clougence.com/clouddm-personal 问题反馈:https://gitee.com/clougence/clouddm-issue/issues 微信交流群:访问产品首页,扫描入群二维码即可加入

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

OneFlow v0.7.0发布,LiBai代码库、Serving、MLIR一应俱全

今天是 OneFlow 开源的 610 天,OneFlow v0.7.0 正式发布。点击“阅读原文”,欢迎下载体验最新版本。 本次更新包含以下重点: 完善地提供了一种可以帮助用户轻松使用多机多卡执行的机制:Global Tensor是 OneFlow 为社区带来的分布式执行的易用方案,用它可以方便地实现各种分布式并行策略,极大提高分布式实现的灵活性和易用性。基于 Global Tensor,OneFlow已支持 ResNet50、Wide and Deep、GPT、Bert、Swin-Transformer、InsightFace 等模型的并行化。 持续完善 nn.Graph 功能,支持包括 ZeRO 、GradAcc、Checkpointing、Pipeline 相关的高级功能,丰富了 graph.debug 模式。新增支持任意 2D SBP 转换、支持 2D SBP 的半自动推导、支持断点续训等。新增 OneFlow Feature Stages 标识,并给 nn.Graph 所提供的每一个功能都增加该标识。就 nn.Graph 整体而言, 基础功能进入 Beta Stage,可以支持对该功能的大部分需求;高级功能进入 Alpha Stage,可支持对该功能的标准需求。 深度优化 Eager 性能, 在 V100 显卡上测试 Swin-Transformer 模型的单卡性能相比 v0.6.0 提升 3 倍。 算子相关进展:在单机单卡场景下,OneFlow 对 PyTorch 的兼容性进一步完善,OneFlow 已经支持的算子都保证和 PyTorch 的接口、语义、结果一致;另外设计了一套自动测试框架来验证一致性,常见网络可以做到import oneflow as torch 来完成迁移。相较于 v0.6.0, OneFlow 新增 16 个算子,优化 6 个算子的性能,修复 16 个算子存在的 bug。 支持 Einsum 算子和 View 机制。 OneFlow 正式接入 MLIR 编译器生态。 发布 OneFlow-Serving v0.1.0,提供了开箱即用的 Triton OneFlow backend 镜像(https://github.com/Oneflow-Inc/serving)。 发布 LiBai(李白) v0.1.0:这是一个针对 Transformer 的大规模分布式并行训练代码库,相比Megatron-LM 等定制化代码库,基于模块化设计的 LiBai 为分布式训练提供了一系列模型和训练组件,让分布式下的模型训练像单卡一样方便(https://github.com/Oneflow-Inc/libai)。 发布 Flow-Vision v0.1.0:新增 DeiT、ConvNeXt、ReXNet 等模型,完善了使用教程和文档(https://github.com/Oneflow-Inc/vision) 以下为版本更新详情。 1 分布式 Global Tensor Global Tensor 是OneFlow发布的一套全新的分布式计算接口,可以很方便地支持包括数据并行、模型并行和流水并行在内的任意并行方式。不同于普通 Tensor(下文叫 Local Tensor),Global Tensor 是一种全局视角下的 Tensor, 它的数据以特定方式分布在集群中的一组计算节点上,每个节点存储了该 Tensor 的部分或全部数据。placement 和 SBP 是每个 Global Tensor 的基本属性,描述了其数据在集群中的分布方式。 Global Tensor 的数据分布方式 Global Tensor 支持三种不同的数据分布方式,我们将其统称为 SBP。 Split (dim):数据以dim 维度平均切分并分布到每一个计算节点上。 Broadcast:数据在每一个计算节点间进行复制。 PartialSum:数据为每一个计算节点的 element-wise 加和。 统一的计算接口 Global Tensor 具有和 Local Tensor 基本一致的计算接口,支持以很少的改动就可以将一个单卡的代码转换成分布式方式执行。 支持 Local Tensor 与 Global Tensor 的转换 Local Tensor 可以使用 Tensor.to_global 接口创建一个 Global Tensor,并将该 Local Tensor 作为它在当前节点的本地分量。 Global Tensor 可以使用 Tensor.to_local 接口返回它在当前节点的本地分量。 支持 Global Tensor 在集群中重新分布 Global Tensor 使用 Tensor.to_global 接口支持在集群中进行数据的重新分布,既可以选择分布到另外一组节点上,也可以改变它在这组节点上的分布方式(即改变 SBP )。重新分布通常会发生跨进程的数据通信,Tensor.to_global 这个接口很好地屏蔽了复杂的底层通信逻辑。 >>> import oneflow as flow>>> x = flow.tensor([1.0, 2.0], placement=flow.placement("cuda", ranks=[0, 1]), sbp=flow.sbp.split(0))>>> y = x.to_global(placement=flow.placement("cuda", ranks=[2, 3]), sbp=flow.sbp.broadcast) OneFlow 中每一种计算接口都定义了一套其所能支持的输入和输出的 SBP 组合,Global Tensor 支持自动重新分布,以满足执行某个计算接口对其 SBP 的要求。比如下面的代码: >>> import oneflow as flow>>> x = flow.randn(4, 4, placement=flow.placement("cuda", ranks=[0, 1]), sbp=flow.sbp.split(0))>>> y = flow.randn(4, 4, placement=flow.placement("cuda", ranks=[0, 1]), sbp=flow.sbp.split(1))>>> z = x + y 当执行 x +y 时由于 x 是按第 0 维切分,y 是按第 1 维切分,它们在每个节点上的分量无法直接完成相加,那么它就会自动将 x 的 SBP 转换成flow.sbp.split(1) 或者将 y 自动转换成flow.sbp.split(0) ,计算得到的结果 z 的 SBP 为 flow.sbp.split(1) 或 flow.sbp.split(0) 。 注意 Global Tensor 目前不支持和 DDP 接口混合使用; Global Tensor 的代码要求所有节点一起执行,有分支的代码可能会因为执行路径分散而导致进程死锁,我们会持续改进这里的用户体验。 2 持续完善 nn.Graph 的功能 新增 OneFlow Feature Stages 标识 OneFlow Feature Stages 标识 OneFlow 功能的成熟度等级依次为 Pre-alpha Stage、Alpah Stage、BetaStage、Release candidate (RC) Stage、 Stable Stage 。它给用户提供功能的状态说明,以了解该功能下所提供的保证,如功能完备性、API 稳定性、文档等;它还为开发者提供完善功能的标准,并据此推进对应功能走向成熟。 nn.Graph v0.7.0 进展概述 基础功能进入 Beta Stage,可以支持对该功能的大部分需求; 高级功能进入 Alpha Stage,可支持对该功能的标准需求; 已经支持了 ResNet50、Wide and Deep、GPT、Bert、Swin-Transformer、InsightFace 等模型。 nn.Graph 静态图下 Feature Static Graph下的 Op 动静转换功能,从 Alpha Stage 到 Beta Stage 新增所有合法 Op 在 nn.Graph 做静态执行的单测,自动化单测功能完备; 新增支持更为灵活的输入输出,包括 List/Tuple/Dict 以及它们的嵌套,修复返回大小为 1 的 Tuple 问题; 新增后向的自动测试。 Static Graph 下的 Optimizer 和 LR Scheduler, 从 Alpha Stage 进步到 Beta Stage 添加更多的内置 LR scheduler,例如 WarmupLR, CosineAnnealingWarmRestarts 等常见的 scheduler ,同时提供 SequentialLR 和 ChainedScheduler 来为 scheduler 提供不同的组合能力; 重构了 scheduler 的 get_lr 函数,将其改造成纯函数的实现,目的是为了把 lr 的计算由迭代解切换到解析解,为 scheduler 的组合使用提供支撑; add_optimizer 接口新增参数 is_sparse。用以支持 graph 模式下的稀疏更新,支持稀疏更新的 optimizer 有 Adam 和 SGD。Eager 模式下的 optimizer 还未支持稀疏更新策略,后续版本会同稀疏张量一起支持。功能状态为 Pre-alpha Stage; 新增 LR 和 Step 的 Debug 打印功能,打开 LR Scheduler 的verbose 开关即可。 Static Graph 下新增state_dict 和load_state_dict ,支持断点续训,功能状态为 Beta Stage Static Graph 下的 Debug,从 Alpha Stage 进入 Beta Stage 新增debug(2) 、 debug(3) ,可以分 nn.Module 去定位问题,可定位 C++ 层 Op 对应的 Python 代码,可定位 Op 的前向图创建和推理; 新增显示内存开销。 Static Graph 下新增 ZeRO-DP 的支持,在数据并行下缩减和 Optimizer 关联的显存开销,功能状态为 Alpha Stage Static Graph 下的 Global Tensor,多种并行执行,整体状态为 Alpha 和 Beta 之间 已在 LiBai 等多个模型库中使用; 已经在 OneFlow 模型库中广泛使用,单测的覆盖在进行中; 1D Global Tensor支持只定义 Source Tensor 的 SBP,下游可以自动推导,而且效果良好,Beta Stage; 新增 2D Global Tensor 支持只定义 Source Tensor 的 SBP ,下游可以自动推导,而且效果良好,Alpha Stage; 新增支持 1D to ND 与 ND to 1D 的转换, Alpha Stage; 新增支持任意 2D SBP 的转换, Alpha Stage; 1D&2D 单 Op 的测试在覆盖中,Pre-alpha Stage; 支持选择半自动推导 SBP的挑选策略,Pre-alpha Stage。 Static Graph 下的梯度累积(Gradient Accumulation),重构和修复 Reshape 的支持,新增 API 文档,当前接口为mini-batch 的输入,下个版本将更新为体验更好的micro-batch 的输入,功能状态从 Pre-Alpha 到 Alpha; Static Graph 下的流水并行,完善了教程,在 Libai 等多个模型库进入使用,功能状态为 Beta; Static Graph 下的自动混合精度 AMP,新增 API 文档,功能状态 Pre-Alpha 到 Alpha; Static Graph 下的 Activation Checkpointing,新增 API 文档,功能状态从 Pre-Alpha 到 Alpha; Static Graph 下的多种 Op Fuse 优化,新增 API 文档,功能状态 Pre-Alpha 到 Alpha; Static Graph 下的 XLA/TensorRT/OpenVINO 执行,新增 API 文档,功能状态 Pre-Alpha 到 Alpha。 教程 En https://docs.oneflow.org/en/master/basics/08_nn_graph.html 中 https://docs.oneflow.org/master/basics/08_nn_graph.html API文档 En https://oneflow.readthedocs.io/en/master/graph.html 中 https://start.oneflow.org/oneflow-api-cn/graph.html 流水并行的教程 En https://docs.oneflow.org/en/master/parallelism/06_pipeline.html 中 https://docs.oneflow.org/master/parallelism/06_pipeline.html nn.Graph 静态图下的模型支持 支持ResNet50单机单卡和单机多卡( https://github.com/Oneflow-Inc/models/tree/main/Vision/classification/image/resnet50) 支持了Wide and Deep模型( https://github.com/Oneflow-Inc/models/tree/main/RecommenderSystems/wide_and_deep) 支持了Libai中的GPT、Bert、Swin Transformer( https://github.com/Oneflow-Inc/libai) 修复了以上多种模型的支持中遇到的功能问题 3 深度优化 Eager 性能 深度优化 Eager 性能,OneFlow 在 V100 显卡上测试 Swin-Transformer 模型性能,单卡比 PyTorch 快25%, 8卡 DDP 比 PyTorch 快10% 优化 DDP 中的 NCCL 通信调度逻辑 DDP 支持 AllReduce fuse 优化,减少碎片化的 AllReduce 引起的额外开销,在 ResNet50 上测试有约 5% 的性能提升 VM 支持指令融合优化,大幅节省零碎小 Kernel 的调度开销 优化了 CPU 负载较高时的额外内存开销 Eager DataLoader 支持进程间内存共享优化 深度优化 Clip Grad 性能 4 算子相关进展 OneFlow 成功适配 oneDNN 用于 CPU 算子加速,unary 和 binary element-wise 等 CPU 算子的性能提升 4 倍,Swin-Transformer 的 dataloader 速度提升 2.5 倍。 DataLoader 新增进程间内存共享功能,大幅提升 DataLoader 在 DDP 情况下的性能。 新增 Bool 类型 Tensor。 新增 To_contiguous 算子服务于 view 机制。 新增 Scalar div 算子。 新增 Lamb 优化器。 新增 Polynomial Learning Rate Scheduler。 新增 Tensor_split,As_strided 算子。 新增 Cumprod 算子。 新增 Tensor.T() 和 oneflow.t() 算子。 新增 Normalize 算子。 新增 div 和 sub 算子的 inplace 版本。 新增 Module.zero_grad 功能。 新增 Scalar Tensor 作为索引来做 list indexing 的功能。 新增 Leaky ReLU 算子的 half 类型支持。 新增 Mask Select 算子支持。 新增 Bool 类型的 Broadcast 及 Allgather 等非 reduce 通信操作。 基于自动测试框架开发支持 eager global 的自动测试。 优化 ReduceSum CUDA Kernel 的性能。 优化 Gather 算子的 CUDA Kernel 的性能。 优化 NCHW 情况下的 MaxPool 和 AvgPool 算子的 CUDA Kernel性能。 优化 PReLU 算子的后向计算部分,一般情况下可以节省较多显存。 优化 LayerNorm 后向 Kernel,进一步节省显存。 Conv1D/2D/3D 和 DeConv1D/2D/3D Kernel,stride 和 dilation 参数支持单个 int 传参,新增 Tensor.zero_() 接口,对齐 PyTorch tensor.norm,torch.max,torch.min 用法,flow.nn.functional.dropout 支持 inplace。 修复 BatchNorm 模块在 affine 参数为 False 运行报错的 bug。 修复 Maximum,Mimimum 反向的 bug。 修复 Var 算子 在某些情况下结果不符合预期的 bug。 修复 Tensor deepcopy 时行为不正确的 bug。 修复 Slice 算子输入 index 是 scalar tensor 时的 bug。 修复 BinaryCrossEntropy 在 half 情况下可能产生 nan 的 bug。 修复 Pow 算子底数和指数分别为实数和 Tensor 类型时报错的 bug。 修复 Stack 算子后向的 bug。 修复 Clip grad 在默认配置下并在 CUDA 上执行时 CPU 同步导致的效率过低问题。 修复 Batch Gather 和 Unsorted Batch Segment Sum 算子的 sbp 推导,global 单测通过。 修复 Affine Grid 算子的 Physical Shape 推导,并修复某些 SBP 情况下计算结果不符合预期的 bug ,global 单测通过。 修复 Arange 算子 不支持产生 0 size tensor 的问题,global 单测通过。 修复 Flip 算子 SBP 推导不正确的问题,global 单测通过。 修复 Advanced Indexing 和 ZerosLike 算子 SBP 的 bug。 修复 Eager global inplace 可能不成功的 bug。 5 支持 Einsum & View 机制 新增einsum算子,einsum提供了一套既简洁又优雅的规则,可实现包括但不限于内积、外积、张量乘法、张量转置和张量收缩(tensor contraction)等张量操作,熟练运用einsum可以很方便实现各种复杂的张量操作且不容易出错。 新增view机制 。通过 view 机制,一些常用算子可以实现 Tensor 的内存复用/共享,这样就能省去 Kernel Launch/Compute 的过程,并达到节省显存的效果。目前,新增了 reshape, view, squeeze, unsqueeze 等不会改变 tensor.is_contiguous() 属性的 view 算子,后续会增加更多 view 算子(如 transpose, permute, narrow, expand, unfold 等)。 6 编译器相关进展 OneFlow 正式接入 MLIR 生态,OneFlow Dialect 组件已经完备。成功完成了 OneFlow Job(OneFlow nn.Graph 的计算图)和 MLIR 的 RoundTrip,并对 OneFlow 所有的算子在 CI 流程中进行 RoundTrip 测试。 基于 MLIR DRR 实现了一系列自动 Fused 算子的静态图优化,加速 OneFlow 模型训练和推理。 7 OneFlow Serving OneFlow Serving 发布 v0.1.0 版本,特性如下: 提供用于推理的 OneFlow C++ API,支持加载模型和静态图推理。 模型训练者可以在 Python 中执行flow.save(graph) 来同时保存模型权重和 MLIR 格式的计算图,用于在 C++ API 中加载并推理(暂不支持在 Python API 中加载计算图)。 支持自动使用 TensorRT 和 OpenVINO 推理 OneFlow 模型,无需模型转换(基于 OneFlow XRT 模块),在 NVIDIA GPU 和 Intel CPU 上可以取得更好的加速效果。 实现 Triton OneFlow backend 提供开箱即用的 Docker 镜像 支持 auto configuration,部署时只需要给出模型路径,不需要写 Triton 配置文件 在 OF 智能云上线了一个使用 Triton OneFlow backend 进行部署的项目( https://oneflow.cloud/drill/#/project/public/code?id=7fc904d8dbe0069820da5d6d32a764fe ),欢迎试玩。 8 LiBai(李白) LiBai是一个针对 Transformer 的大规模分布式并行训练代码库,相比于 Megatron-LM 等定制化代码库,基于模块化设计的LiBai为分布式训练提供了一系列模型和训练组件,旨在让分布式下的模型训练像单卡一样方便,v0.1.0 版本主要支持下面的特性和模型: 特性: 数据并行 (Data Parallelism) 1维张量并行 (1D Tensor Parallelism) 流水线并行 (Pipeline Parallelism) 单卡和多卡统一的分布式网络层 (Unified Distributed Layers) 可扩展新的并行方式 (Extensible for new parallelism) 混合精度训练 (Mixed Precision Training) 后向重计算 (Activation Checkpointing) 梯度累加 (Gradient Accumulation) 梯度裁剪 (Gradient Clip) 零冗余优化器 (ZeRO) 更灵活的 "LazyConfig" 配置系统 易于使用的Trainer和Evaluator 支持图像和文本的数据预处理 模型: Bert(3D 并行) GPT-2(3D 并行) ViT(3D 并行) Swin-Transformer(数据并行) 在projects/中支持微调任务 在projects/中支持文本分类任务 9 flow-vison flowvision 发布 v0.1.0 稳定版本,在之前的版本基础上作了以下改进: 新增 trunc_normal_ 初始化方法 新增 DeiT 模型,重构 VisionTransformer 模型 新增 ConvNeXt 模型 新增 ReXNet 模型 支持 PolyLRScheduler 和 TanhLRScheduler 学习率调整策略 修复在 SSD 模型中 F.normalize 的使用 修复 EfficientNet 和 Res2Net 中的 Bug 修复 vit_small_patch32_384 模型与 res2net50_48w_2s 模型的权重问题 重构 model zoo 并对已有模型进行了更全面完整的测试 重构 load_state_dict_from_url 方法,自动保存下载的权重至 cache 文件夹 完善 Getting Started 和 flowvision.models 的相关文档 flowvision 的 v0.2.0 版本已经在推进, 将在 v0.1.0 版本上新增大量模型并完善文档,敬请期待。 其他人都在看 颠覆式编程:软件2.0 “远见者”特斯拉AI主管Karpathy TVM:成为深度学习领域的“Linux” 深度学习崛起十年:“开挂”的OpenAI革新者 计算机架构新黄金时代,GPU能否继续保持辉煌 芯片设计“花招”已耍完?无指令集架构颠覆旧套路 点击“阅读原文”,欢迎下载体验OneFlow新一代开源深度学习框架 本文分享自微信公众号 - OneFlow(OneFlowTechnology)。如有侵权,请联系 support@oschina.cn 删除。本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

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

agno v2.7.4发布:Superserve沙箱、Plivo通信、可观测性接入、工作流升级与多项关键修复全解析

agno v2.7.4 已正式发布,这是一次内容非常密集的版本更新。整体来看,这个版本的重点非常明确:一方面继续扩展工具生态,新增了可执行代码与管理文件的沙箱能力、短信与语音通信能力,以及运行链路观测能力;另一方面则围绕创建项目、消息渠道集成、搜索能力、工作流上下文、分页处理、内容抓取结果格式等方面进行了系统增强;同时,团队运行、会话管理、流式输出、数据库建表、抓取结果限制、文档切分、读取器默认配置等多个关键细节也得到了修复。

资源下载

更多资源
Mario

Mario

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

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

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

用户登录
用户注册