首页 文章 精选 留言 我的

精选列表

搜索[聚类],共10000篇文章
优秀的个人博客,低调大师

英伟达宣布 Project Digits:类 Mac Mini 大小的个人 AI 超算、售价 3000 美元起

英伟达宣布将于 5 月推出一款名为Project Digits的个人 AI 超级计算机。 DIGITS 主要功能: 单台能运行高达 200B 参数的 AI 模型 连接两个单元就能处理 405B 参数模型 使用标准家用电源就能供电 基于 Linux 的 NVIDIA DGX 操作系统 预装完整的 NVIDIA AI 软件栈 Project Digits 的核心是新的GB10 Grace Blackwell Superchip,它具有足够的处理能力来运行复杂的 AI 模型,同时又足够紧凑,可以放在桌子上并使用标准电源插座供电。 这个产品本身尺寸类似Mac Mini,号称可以处理多达 2000 亿个参数的 AI 模型,起价为 3000 美元(约 21999 元人民币)。 英伟达 CEO 黄仁勋表示: “人工智能将成为每个行业每个应用的主流。通过 Project Digits,Grace Blackwell 超级芯片将惠及数百万开发者,将 AI 超级计算机放在每个数据科学家、AI 研究人员和学生的办公桌上,使他们能够参与和塑造 AI 时代。” 每个 Project Digits 都配备了 128GB 的统一内存和高达 4TB 的 NVMe 存储。对于要求更高的 AI 应用,两个 Project Digits 可以连接在一起,处理多达 4050 亿个参数的模型(Meta 的最佳模型 Llama 3.1 具有 4050 亿个参数)。 用户可以在 Project Digits 上本地开发和测试 AI 模型,然后使用相同的 Grace Blackwell 架构和 Nvidia AI Enterprise 软件平台将其部署到云服务或数据中心基础设施。

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

公安提醒:三类共享充电宝可能被植入木马程序,盗取个人信息

12月6日消息 公安部网安局官方微信号今日发布了一则重要提醒:你常使用的共享充电宝可能被植入木马程序,一旦插入手机,可能就会盗取你的个人信息。 哪些充电宝可能存在安全隐患呢?一是商场里的可租赁移动电源,二是火车站里叫卖的满电充电宝,三是扫码免费送的充电宝。 警方在文中表示,人流密集场所有的充电宝或免费试用,或免费赠送,但里面却隐藏着木马程序,一旦插入手机,就会盗取你的个人信息。 警方提示,不要随意领取和购买来历不明的移动电源,如有需要,请选择正规产品。连接移动电源时,如弹出是否“信任”提示,请保持警惕。

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

《2018年云上挖矿态势分析报告》发布,非Web类应用安全风险需重点关注

近日,阿里云安全团队发布了《2018年云上挖矿分析报告》。该报告以阿里云2018年的攻防数据为基础,对恶意挖矿态势进行了分析,并为个人和企业提出了合理的安全防护建议。 报告指出,尽管加密货币的价格在2018年经历了暴跌,但挖矿仍是网络黑产团伙在入侵服务器之后最直接的变现手段,越来越多的0-Day/N-Day漏洞在公布后的极短时间内就被用于入侵挖矿,黑产团伙利用漏洞发起攻击进行挖矿的趋势仍将持续。 以下是报告部分内容,下载报告完整版:https://yq.aliyun.com/download/3312 攻击态势分析 【热点0-Day/N-Day漏洞利用成为挖矿团伙的"武器库",0-Day漏洞留给用户进行修复的窗口期变短】 2018年,多个应用广泛的web应用爆出高危漏洞,对互联网安全造成严重威胁。事后安全社区对漏洞信息的分析和漏洞细节的分享

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

高并发架构系列:如何从0到1设计一个类Dubbo的RPC框架

在过去持续分享的几十期阿里Java面试题中,几乎每次都会问到Dubbo相关问题,比如:“如何从0到1设计一个Dubbo的RPC框架”,这个问题主要考察以下几个方面: 你对RPC框架的底层原理掌握程度。考验你的整体RPC框架系统设计能力。 具体,mike来为大家详解。 RPC和RPC框架 1.RPC(Remote Procedure Call) 即远程过程调用, 主要解决远程通信间的问题,不需要了解底层网络的通信机制。 2.RPC框架 RPC框架负责屏蔽底层的传输方式(TCP或者UDP)、序列化方式、以及通信细节。 实际使用中,并不需要关心底层通信细节和调用过程,让业务端专注于业务代码的实现。 国内大家熟知的PRC框架,阿里的HSF和Dubbo(开源) Dubbo的发展由来 1. 业务规模小 比如早期一个应用Java War包,将所有功能都打包,部署在一个单机服务器,调用接口也比较方便,不涉及到任何分布式场景。 2.业务规模变大 随着业务的快速发展,业务越来越多、子系统也越来越多时。比如:淘宝的交易系统、商品系统、用户系统、评价系统...上百个系统的出现。系统变得越来越复杂,业务代码依然耦合在一起。比如最早期的淘宝denali工程,包含所有业务系统的代码,就仅打包部署都需要很长的时间。并且,随着每个业务线的快速发展,业务代码耦合在一起,上线后出现问题急需要回滚代码,拉分支、大量的代码merge工作,这个过程极其痛苦。这个时候,你会发现技术已经成了业务的瓶颈,急需把业务单独抽离出来,各自单独部署。 3.Dubbo和HSF的出现 应用系统一旦涉及到拆分部署,问题就来了,急需一种高效的应用程序间的通讯手段来完成这种需求,这就会涉及到分布式远程调用。 于是,淘宝就把denali按照业务为单位拆分成了类似这样的系统:UM(UserManger)、SM(ShopManager)..等等几十个工程代码。 再按照业务为单位,把所有调用相关的接口以业务为单元进行拆分;- UIC(用户中心服务)、SIC(店铺中心服务)...等等以业务为单位集群部署,按照业务提供服务。 所以,RPC的框架来了,阿里内部使用HSF,以及开源的RPC框架:Dubbo。 RPC框架的核心设计 前面mike提到了RPC的核心目标:主要是解决分布式系统中服务之间的调用问题。 其实,走到这一步涉及的知识体系非常的多:要求对通信、远程调用、消息机制等有深入的理解和掌握,要求的都是从理论、硬件级、操作系统级以及所采用的语言的实现都有清楚的理解。 1.RPC框架三个核心角色 1)服务提供者(Server)对外提供后台服务,将自己的服务信息,注册到注册中心 2)注册中心(Registry)用于服务端注册远程服务以及客户端发现服务。目前主要的注册中心可以借由 zookeeper,eureka,consul,etcd 等开源框架实现。比如:阿里的Dubbo就是采用zookeeper实现注册中心。 3)服务消费者(Client)从注册中心获取远程服务的注册信息,然后进行远程过程调用。 2.RPC远程调用过程 1)服务调用方(client)调用以本地调用方式调用服务;2)client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体;在Java里就是序列化的过程3)client stub找到服务地址,并将消息通过网络发送到服务端;4)server stub收到消息后进行解码,在Java里就是反序列化的过程;5)server stub根据解码结果调用本地的服务;6)本地服务执行处理逻辑;7)本地服务将结果返回给server stub;8)server stub将返回结果打包成消息,Java里的序列化;9)server stub将打包后的消息通过网络并发送至消费方10)client stub接收到消息,并进行解码, Java里的反序列化;11)服务调用方(client)得到最终结果。 RPC框架的目标就是要2~10这些步骤都封装起来。 RPC框架涉及技术 1.建立通信首先,要解决通讯的问题,主要是通过在客户端和服务器之间建立TCP连接,远程过程调用的所有交换的数据都在这个连接里传输。 2.服务寻址 1)服务注册首先需要把服务注册到服务中心。其实就是在注册中心进行一个登记,注册中心存储了该服务的IP、端口、调用方式(协议、序列化方式)等。在zookeeper中,进行服务注册,实际上就是在zookeeper中创建了一个znode节点,该节点存储了上面所说的服务信息。 2)服务发现服务消费者在第一次调用服务时,会通过注册中心找到相应的服务的IP地址列表,并缓存到本地,以供后续使用。当消费者调用服务时,不会再去请求注册中心,而是直接通过负载均衡算法从IP列表中取一个服务提供者的服务器调用服务。 3)注册服务可靠的寻址方式(主要是提供服务的发现)是RPC的实现基石,比如可以zookeeper来实现注册服务等等。 服务提供者启动后主动向服务(注册)中心注册机器ip、端口以及提供的服务列表。 服务消费者启动时向服务(注册)中心获取服务提供方地址列表,可实现软负载均衡和Failover。 提供者需要定时向注册中心发送心跳,一段时间未收到来自提供者的心跳后,认为提供者已经停止服务,从注册中心上摘取掉对应的服务等等。 3.网络传输 数据传输采用什么协议,数据该如何序列化和反序列化。 4.NIO通信 当前很多RPC框架都直接基于netty这一IO通信框架,比如阿里巴巴的HSF、dubbo,Hadoop Avro,推荐使用Netty 作为底层通信框架。 5.服务调用 比如:B机器进行本地调用(通过代理Proxy)之后得到了返回值,此时还需要再把返回值发送回A机器,同样也需要经过序列化操作,然后再经过网络传输将二进制数据发送回A机器,而当A机器接收到这些返回值之后,则再次进行反序列化操作。 总之,要实现一个RPC不算难,难的是实现一个高性能高可靠的RPC框架,后续将结合Dubbo的实现一起再探讨。 以上就是RPC的介绍,更多Redis、Spring Cloud、MySQL数据库分库分表等高并发架构设计,具体请参考高并发架构系列专题: 觉得不错请点赞支持,欢迎留言或进我的个人群179961551领取【架构资料专题目合集90期】、【BATJTMD大厂JAVA面试真题1000+】,本群专用于学习交流技术、分享面试机会,拒绝广告,我也会在群内不定期答题、探讨。 往期博文: 最新拼多多技术部面试题:幻影读+分段锁+死锁+Spring Cloud+秒杀 阿里P8架构师谈:Zookeeper的原理和架构设计,以及应用场景 ---------------end---------------------

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

Java的日期类的时间从为什么是从1970年1月1日开始?

-----------------------------------------------------------------------------I suspect that Java was born and raised on a UNIX system.UNIX considers the epoch (when did time begin) to be midnight, January 1, 1970.是说java起源于UNIX系统,而UNIX认为1970年1月1日0点是时间纪元。-----------------------------------------------------------------------------但这依然没很好的解释"为什么",出于好奇,继续Google,总算找到了答案,在维基百科:http://en.wikipedia.org/wiki/Unix_time-----------------------------------------------------------------------------这里的解释是: 最初计算机操作系统是32位,而时间也是用32位表示。System.out.println(Integer.MAX_VALUE); // 2147483647Integer在JAVA内用32位表示,因此32位能表示的最大值是2147483647秒。 另外1年365天的总秒数是31536000秒,2147483647/31536000 = 68.1年也就是说32位能表示的最长时间是68年,而实际上到2038年01月19日03时14分07秒,便会到达最大时间,过了这个时间点,所有32位操作系统时间便会变为:10000000 00000000 00000000 00000000也就是1901年12月13日20时45分52秒,这样便会出现时间回归的现象,很多软件便会运行异常了。-----------------------------------------------------------------------------到这里,我想问题的答案已经出来了: 因为用32位来表示时间的最大间隔是68年,而最早出现的UNIX操作系统考虑到计算机产生的年代和应用的时限综合取了1970年1月1日作为UNIX TIME的纪元时间(开始时间),而java自然也遵循了这一约束。至于时间回归的现象相信随着64为操作系统的产生逐渐得到解决,因为用64位操作系统可以表示到292,277,026,596年12月4日15时30分08秒,相信我们的N代子孙,哪怕地球毁灭那天都不用愁不够用了,因为这个时间已经是千亿年以后了。-----------------------------------------------------------------------------最后一个问题: System.out.println(new Date(0)); 打印出来的时间是8点而非0点,原因是存在系统时间和本地时间的问题,其实系统时间依然是0点,只不过我的电脑时区设置为东8区,故打印的结果是8点。-----------------------------------------------------------------------------我的GitHub地址: https://github.com/heizemingjun 我的博客园地址: http://www.cnblogs.com/chenmingjun 我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun Copyright ©2018 黑泽明军 【转载文章务必保留出处和署名,谢谢!】

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

.NET平台开源项目速览(16)C#写PDF文件类库PDF File Writer介绍

阅读目录 1.PDF File Writer基本介绍 2.一个简单的使用案例 3.资源 1年前,我在文章:这些.NET开源项目你知道吗?.NET平台开源文档与报表处理组件集合(三)中(第9个项目),给大家推荐了一个开源免费的PDF读写组件PDFSharp,PDFSharp我2年前就看过,用过简单的例子,不过代码没有写成专门的文章。最近在查找资料的时候,又发现一款小巧的写PDF文件的C#组件:PDF File Writer。该开源组件是在codeproject,还没有托管到其他地方,所以花了点时间了解了一下,分享给大家。 .NET开源目录:【目录】本博客其他.NET开源项目文章目录 本文原文地址:http://www.cnblogs.com/asxinyu/p/dotnet_Opensource_project_PdfFileWriter.html 回到目录 1.PDF File Writer基本介绍 1.1 支持的常用功能 PDF File Writer组件可以在.NET应用程序中直接创建PDF格式的文件。最低的开发环境是.NET 4.0 + VS 2013。我们来看看该组件支持的PDF的一些功能: 图形:支持画线、矩形、多边形、贝塞尔曲线,前景和背景颜色,模式和阴影。 图片:支持位图图像和矢量图像 文本:支持行文本和列文本 条形码:支持条形码:Barcode 128, Barcode 39, Barcode interleaved 2 of 5等 二维码:支持二维条码 加密:支持AES-128加密算法 Web链接:支持Web超链接 书签:支持文档大纲 图表:支持微软的图表,支持数据表格,支持声音,视频播放; 1.2 使用PDF File Writer创建PDF的步骤 使用PDF File Writer在程序中创建一个PDF文件的主要步骤如下: Step 1: 创建PdfDocument文件对象 Step 2: 创建资源对象,如文字(PdfFont),图像(PdfImage)等 Step 3: 创建文件页对象PdfPage Step 4: 创建内容对象PdfContents Step 5: 在内容对象上添加文字,或者图像等内容 重复3, 4 ,5 创建其他页 Step 6: 使用PdfDocument对象的CreateFile方法创建PDF文 1.3PDF File Writer创建的PDF文件效果预览 看看使用PDF File Writer创建的PDF的效果,非常不错。这也是我偶尔碰到非常震撼,拿过来分享的重要原因。 回到目录 2.一个简单的使用案例 我们根据官方提供的例子,可以快速入门,一起来看看基本代码。 2.1 先创建基本对象 1 2 3 4 5 6 7 8 9 10 private PdfFont ArialNormal; private PdfFont ArialBold; private PdfFont ArialItalic; private PdfFont ArialBoldItalic; private PdfFont TimesNormal; private PdfFont Comic; private PdfTilingPatternWaterMark; private PdfDocument Document; private PdfPage Page; private PdfContents Contents; 然后创建空白文档 1 2 3 4 5 6 7 8 9 10 //Step1:创建空文档,文档参数有类型,可以使用枚举进行选择,和返回的文件名称 Document= new PdfDocument(PaperType.Letter, false ,UnitOfMeasure.Inch,FileName); //加密测试例子 //Document.SetEncryption(null,null,Permission.All&~Permission.Print,EncryptionType.Aes128); //创建PDF文件信息目录 PdfInfoInfo=PdfInfo.CreatePdfInfo(Document); Info.Title( "ArticleExample" ); Info.Author( "UziGranotGranotechLimited" ); Info.Keywords( "PDF,.NET,C#,Library,DocumentCreator" ); Info.Subject( "PDFFileWriterC#ClassLibrary(Version1.14.1)" ); 2.2 创建字体等资源 1 2 3 4 5 6 7 8 9 10 //定义不同的字体类型,如下所示 StringFontName1= "Arial" ; StringFontName2= "TimesNewRoman" ; ArialNormal=PdfFont.CreatePdfFont(Document,FontName1,FontStyle.Regular, true ); ArialBold=PdfFont.CreatePdfFont(Document,FontName1,FontStyle.Bold, true ); ArialItalic=PdfFont.CreatePdfFont(Document,FontName1,FontStyle.Italic, true ); ArialBoldItalic=PdfFont.CreatePdfFont(Document,FontName1,FontStyle.Bold|FontStyle.Italic, true ); TimesNormal=PdfFont.CreatePdfFont(Document,FontName2,FontStyle.Regular, true ); Comic=PdfFont.CreatePdfFont(Document, "ComicSansMS" ,FontStyle.Bold, true ); 2.3 创建文字示例 1 2 3 4 5 6 7 8 9 Contents.DrawText(Comic,40.0,4.25,9.25,TextJustify.Center,0.02,Color.FromArgb(128,0,255),Color.FromArgb(255,0,128), "PDFFILEWRITER" ); Contents.SaveGraphicsState(); Contents.SetColorNonStroking(Color.Purple); Contents.DrawText(Comic,30.0,4.25,8.75,TextJustify.Center, "Example" ); Contents.RestoreGraphicsState(); //Step3:添加新页面 Page= new PdfPage(Document); //Step4:添加内容到页面 Contents= new PdfContents(Page); 2.4 绘制条形码 1 2 3 4 5 6 7 8 9 Contents.SaveGraphicsState(); BarcodeEAN13Barcode1= new BarcodeEAN13( "1234567890128" ); Contents.DrawBarcode(1.3,7.05,0.012,0.75,Barcode1,ArialNormal,8.0); PdfQRCodeQRCode= new PdfQRCode(Document, "http://www.codeproject.com/Articles/570682/PDF-File-Writer-Csharp-Class-Library-Version" ,ErrorCorrection.M); Contents.DrawQRCode(QRCode,6.0,6.8,1.2); //添加链接 Page.AddWebLink(6.0,6.8,7.2,8.0, "http://www.codeproject.com/Articles/570682/PDF-File-Writer-Csharp-Class-Library-Version" ); //保存 Contents.RestoreGraphicsState(); 2.5 绘制图表 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 Contents.SaveGraphicsState(); //创建MSChart图表 ChartPieChart=PdfChart.CreateChart(Document,1.8,1.5,300.0); PdfImageControlImageControl= new PdfImageControl(); ImageControl.SaveAs=SaveImageAs.IndexedImage; PdfChartPiePdfChart= new PdfChart(Document,PieChart,ImageControl); PieChart.AntiAliasing=AntiAliasingStyles.None; //设置颜色 PieChart.BackColor=Color.FromArgb(220,220,255); PieChart.Palette=ChartColorPalette.BrightPastel; //默认字体 FontDefaultFont=PiePdfChart.CreateFont( "Verdana" ,FontStyle.Regular,0.05,FontSizeUnit.UserUnit); FontTitleFont=PiePdfChart.CreateFont( "Verdana" ,FontStyle.Bold,0.07,FontSizeUnit.UserUnit); //设置标题 TitleTitle1= new Title( "PieChartExample" ,Docking.Top,TitleFont,Color.Purple); PieChart.Titles.Add(Title1); //图例 LegendLegend1= new Legend(); PieChart.Legends.Add(Legend1); Legend1.BackColor=Color.FromArgb(230,230,255); Legend1.Docking=Docking.Bottom; Legend1.Font=DefaultFont; //图表区域 ChartAreaChartArea1= new ChartArea(); PieChart.ChartAreas.Add(ChartArea1); ChartArea1.BackColor=Color.FromArgb(255,200,255); SeriesSeries1= new Series(); PieChart.Series.Add(Series1); Series1.ChartType=SeriesChartType.Pie; Series1.Font=DefaultFont; Series1.IsValueShownAsLabel= true ; Series1.LabelFormat= "{0}%" ; Series1.Points.Add(22.0); Series1.Points[0].LegendText= "Apple" ; Series1.Points.Add(27.0); Series1.Points[1].LegendText= "Banana" ; Series1.Points.Add(33.0); Series1.Points[2].LegendText= "Orange" ; Series1.Points.Add(18.0); Series1.Points[3].LegendText= "Grape" ; Contents.DrawChart(PiePdfChart,5.6,5.0); //保存 Contents.RestoreGraphicsState(); 2.6 生成PDF 1 2 3 4 5 6 //Step6:创建PDF Document.CreateFile(); //打开PDF文件 ProcessProc= new Process(); Proc.StartInfo= new ProcessStartInfo(FileName); Proc.Start(); 回到目录 3.资源 1.Codeproject文章连接:http://www.codeproject.com/Articles/570682/PDF-File-Writer-Csharp-Class-Library-Version 2.PDF File Writer DLL下载:PdfFileWriter_dll.zip 3.PDF File Writer帮助文档:PdfFileWriterCHM.rar 4.PDF File Writer源代码与Demo:PdfFileWriter-Code.rar 注意:源代码中的相关素材进行了精简,否则文件比较大,长传比较大。如果有需求可以去文章链接原文下载,或者单独留下邮箱,我有空发送一下。 本文转自叶小钗 h数据之巅博客园博客,原文链接:http://www.cnblogs.com/asxinyu/p/dotnet_Opensource_project_PdfFileWriter.html,如需转载请自行联系原作者

资源下载

更多资源
Nacos

Nacos

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

Spring

Spring

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

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

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

用户登录
用户注册