首页 文章 精选 留言 我的

精选列表

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

苹果 macOS Sudo 现重大漏洞:可授予任意本地用户 root 权限

2月4日消息Sudo 工具中存在十年之久的漏洞,可能会授予任意本地用户对基于 Unix 的系统(包括 macOS Big Sur 和早期版本)进行根访问。 今年 1 月份,安全研究人员披露了一个新漏洞,该漏洞可能会影响基于 Unix 的操作系统。该漏洞被标识为 CVE-2021-3156,这是 Sudo 中基于堆的缓冲区溢出,该漏洞类似于以前修补的名为 CVE-2019-18634 的漏洞,可通过非法操作为任意本地用户授予 root 权限。用户要触发它,只需要重写 argv[0]或者创建一个符号链接。 IT之家了解到,Qualys 的研究人员在 Ubuntu 20.04(Sudo 1.8.31)、Debian 10(Sudo 1.8.27)和 Fedora 33(Sudo 1.9.2)中都发现了该漏洞。他们表示,从 1.8.2 到 1.8.31p2 的所有旧版以及从 1.9.0 到 1.9.5p1 的所有稳定版均会受到该漏洞影响。 研究人员指出,该漏洞只能通过本地访问来利用,不过它已经存在了至少 10 年,但这是该漏洞的第一个已知文档。 最初,研究人员尚不清楚 macOS 中是否存在该漏洞,但安全研究人员 Matthew Hickey 在周三透露,该漏洞也可以出现在了 Mac 电脑上。 该漏洞目前还没有被修补,苹果在收到研究人员反馈后表示正在调查,但拒绝发表评论。

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

微软盘点12月OneDrive更新:网页端可创建共享库等

在近日更新的博文中,微软盘点了去年 12 月为 OneDrive 添加的新功能和优化。其中包括在网页端 OneDrive 创建共享库、全保真(Full fidelity)共享库,同步时排除特定文件等等。 在网页端 OneDrive 创建共享库 无论是你的个人工作文件还是共享团队文件,OneDrive 都能将你所有的文件连接起来。微软正在更新现有的从网络上的OneDrive创建新的共享库的体验,使创建协作空间变得更加简单和容易。新的精简体验由Office365群组支持,允许你指定要共享的人员--新的共享库会立即出现,成为你的团队文件的新内容协作空间。 在网页端 OneDrive 全保真共享库 除了能够从OneDrive内部创建共享库之外,微软还让你更容易访问这些共享库中的内容。你不仅可以使用OneDrive将这些共享库从SharePoint和Microsoft Teams同步到你的PC或Mac上,而且现在你还可以从网络上的OneDrive内全真查看共享库。这意味着你可以创建新的文档,将重要的文档钉在顶部,将快捷方式添加到你的OneDrive中,创建视图,管理元数据,共享等。 同步时排除特定文件 管理员现在可以指定您希望在设备级别排除同步的文件名或文件扩展名。此设置可让您防止 OneDrive 同步应用程序 (OneDrive.exe) 将特定文件上传到 OneDrive 或 SharePoint。 跳过的文件不会出现任何错误,文件仍保留在本地OneDrive文件夹中。 【责任编辑: 未丽燕 TEL:(010)68476606】

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

整天都在讨论使用SpringBoot,可你居然连缓存都不清楚

缓存技术是一个让所有开发人员又爱又恨的技术,我们爱缓存是因为缓存能给我们带来数量级的响应和流量,但是最迷人的反而最危险,如果缓存用不好也是灾难级别的,特别是一些涉及到公司主要现金流的业务,如果因为我们使用缓存不当,而带给公司一定的损失,不亚于删库跑路的那个大兄弟,那今天我们就来看一下springboot的缓存都有那些东西,学习嘛,一点点的来,慢慢积累自己的经验,才能厚积薄发 个人公众号:Java架构师联盟,每日更新技术好文 一、JSR107缓存规范 为了缓存开发规范的统一,以及提升系统的扩展性,J2EE发布了JSR107缓存规范。 主要是Java Caching定义了5个接口,分别是CachingProvider、CacheManager、Cache、Entry、Expiry。 下面我们分开详细的展开看一下 CachingProvider: 可以创建、配置、获取、管理和控制多个CacheManager,一个Application在运行期间可以访问多个CachingProvider。 CacheManager: 可以创建、配置、获取、管理和控制多个唯一命名的Cache,这些Cache存在于CacheManager的上下文中。一个CacheManager仅被一个CachingProvider所拥有。 Cache: 是一个类似于Map的数据结构并临时存储以Key为索引的值。一个Cache仅被一个CacheManager所拥有。 Entry: 是存储在Cache中的Key-Value对。 Expiry: 每一个缓存在Cache中的条目有一个定义的有效期,一旦超过这个时间,该条目就为过期状态,一旦过期,条目将不可访问、更新和删除。其中缓存的有效期可以通过ExpiryPolicy设置。 如果说这样讲解让你有点蒙圈的话,那没关系,我们看下面这张图 简单总结一下就是:一个应用里面可以有多个缓存提供者(CachingProvider),一个缓存提供者可以获取到多个缓存管理器(CacheManager),一个缓存管理器管理着不同的缓存(Cache),缓存中是一个个的缓存键值对(Entry),每个entry都有一个有效期(Expiry)。缓存管理器和缓存之间的关系有点类似于数据库中连接池和连接的关系。 二、SpringBoot缓存抽象 在我自己看来,没有源码所有的理论讲解,都是空谈,或者说就是扯淡,所以我们来看一下,缓存的源码级操作 Spring从3.1版本开始定义了org.springframework.cache.CacheManager和org.springframework.cache.Cache接口来统一不同的缓存技术,并支持使用JSR-107注解简化开发。 在IDEA中,使用Spring Initializr快速创建Spring Boot项目时,勾选中Cache后,在配置文件中配置debug=true,可以查看Spring Boot的自动配置项。 其中关于缓存的配置类如下: org.springframework.boot.autoconfigure.cache.GenericCacheConfiguration org.springframework.boot.autoconfigure.cache.JCacheCacheConfiguration org.springframework.boot.autoconfigure.cache.EhCacheCacheConfiguration org.springframework.boot.autoconfigure.cache.HazelcastCacheConfiguration org.springframework.boot.autoconfigure.cache.InfinispanCacheConfiguration org.springframework.boot.autoconfigure.cache.CouchbaseCacheConfiguration org.springframework.boot.autoconfigure.cache.RedisCacheConfiguration org.springframework.boot.autoconfigure.cache.CaffeineCacheConfiguration org.springframework.boot.autoconfigure.cache.GuavaCacheConfiguration org.springframework.boot.autoconfigure.cache.SimpleCacheConfiguration org.springframework.boot.autoconfigure.cache.NoOpCacheConfiguration 启动项目后,可以在控制台看到匹配到的只有SimpleCacheConfiguration这个自动配置类,而在SimpleCacheConfiguration类中,使用@Bean注解给容器中注册了一个CacheManager,由此可看Spring Boot默认的CacheManager是ConcurrentMapCacheManager。 SimpleCacheConfiguration matched: - Cache org.springframework.boot.autoconfigure.cache.SimpleCacheConfiguration automatic cache type (CacheCondition) - @ConditionalOnMissingBean (types: org.springframework.cache.CacheManager; SearchStrategy: all) did not find any beans (OnBeanCondition) 同样的,我们通过一张图形象的展示一下看看 几个重要概念和缓存注解: 进入@Caching的源码可以看到,在组合注解内可以使用cacheable、put、evict public @interface Caching { Cacheable[] cacheable() default {}; ​ CachePut[] put() default {}; ​ CacheEvict[] evict() default {}; } @Caching的使用 @Caching( cacheable = { @Cacheable(key = "#name") }, put = { @CachePut(key = "#result.id"), @CachePut(key = "#result.cNo") } ) @Cacheable、@CachePut、@CacheEvict中的主要参数 key #缓存的key,可以为空,也可以使用SpEL表达式编写 例:@Cacheable(value=“stu”,key=“userName”) condition #缓存的条件,可以为空,也可以使用SpEL表达式编写,只有为true才缓存/清除缓存, #不管方法执行前后都可以判断 例:@Cacheable(value=“stu”,condition=“userName.length()>2”) unless #用于否定缓存,只在方法执行之后判断,也可以使用SpEL表达式编写 #true不缓存,false才缓存 例:@Cacheable(value=“stu”,unless=“userName == null”) @Cacheable 标注的方法执行之前,先查看缓存中有没有这个数据,默认按照参数的值作为key去缓存中查找。如果没有就运行这个方法并将方法的执行结果放入缓存中,之后再调用该方法时,直接使用缓存中的数据即可。 @CachePut 标注的方法必须要执行,它的运行时机是,先调用目标方法,然后将目标方法的结果放入缓存中,但是更新缓存中的数据时,要注意key值,否则缓存中的数据无法更新。 @CacheEvict 这个注解中allEntries = true代表要清除某个缓存中的所有数据。beforeInvocation = false代表缓存的清除在方法执行之后执行,如果出现异常等情况,则不会清除缓存中的数据。这是@CacheEvict 注解默认的。beforeInvocation = true代表缓存的清除在方法执行之前执行,出现异常等情况,也会清除缓存中的数据。 key的生成策略 key的生成默认使用SimpleKeyGenerator生成的,而SimpleKeyGenerator的生成策略有:如果没有参数:key=new SimpleKey();如果有一个参数:key=参数的值如果有多个参数:key=new SimpleKey(params);

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

Pleroma 2.1 发布,可联合微博客社交网络服务器

Pleroma 2.1 发布了。Pleroma 是一个微博客服务器软件,可以与支持相同的标准(OStatus 与 ActivityPub)的其它服务器通信,Pleroma 可以与实现 OStatus 或 ActivityPub 标准的所有服务器联合,如 Friendica、GNU Social、Hubzilla、Mastodon、Misskey、Peertube 与 Pixelfed。因此可以私有化托管服务器并控制在线身份,同时与较大服务器上的人通信。 Pleroma 使用 Elixir 编写而成,性能卓越,可以在 Raspberry Pi 等小型设备上运行。 此版本最大亮点是全新的聊天功能,现在可以直接在 Pleroma 内部进行一对一聊天。此功能与现有的直接消息传递系统完全不同,没有那么麻烦且容易出错。目前还不支持群组聊天与端到端加密。 Pleroma 2.1 为管理员带来了更多的配置选项,例如对注册用户和访客时间线的限制,现在有“通过批准”注册模式以及安装和管理不同前端的简便方法。 现在还添加了默认的 MRF 策略,该策略将防止非常老的帖子在新到达时出现在时间轴中。 同时再次重写了 HTML 解析库,以使其变得更好。 前端方面,左侧的导航面板缩小了一些,现在只有一个“时间轴”链接,可以在时间轴本身的下拉菜单中选择不同类型的时间轴。 详情可以查看发布公告: https://pleroma.social/blog/2020/08/28/releasing-pleroma-2-1-0

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

code-gen 1.1.0 发布,可自定义模板的代码生成工具

code-gen 1.1.0 发布,本次更新内容如下: 结果页面可下载代码 优化Connection连接数 修复测试连接问题 结果页面可下载全部代码,也可下载一个文件。 关于code-gen 只需要一个Java8环境,下载后即可运行使用。 步骤简单,只需配置一个数据源,然后勾选模板即可生成代码。 默认提供了通用的实体类、mybatis接口、mybatis配置文件模板,可以快速开发mybatis应用。

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

code-gen 1.0.0 发布,可自定义模板的代码生成工具

code-gen 1.0.0发布,本次更新内容如下: 重构前端页面,采用elementUI 优化了生成步骤 优化了模板编辑页面 code-gen介绍 只需要一个Java8环境,下载后即可运行使用。 步骤简单,只需配置一个数据源,然后勾选模板即可生成代码。 默认提供了通用的实体类、mybatis接口、mybatis配置文件模板,可以快速开发mybatis应用。 教程:快速搭建SpringBoot+Mybatis应用 效果图

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

Windows 任务管理器作者:任务管理器可杀死任意进程

Windows 任务管理器(Windows Task Manager)的原始作者Dave Plummer 近日在 Reddit 开帖分享关于任务管理器的冷知识和设计理念,并解答了网友的部分疑问。 在微软工作了十几年的 Dave 是从头开始构建任务管理器的开发者,大约1994年,他在家中的书房里编写出了任务管理器(TaskMgr),尽管当时他还只是一名新手,NT 内核的开发者看到后依旧让Dave 将任务管理器加入到内核的主分支中。这就意味着开发任务管理器将成为他的工作,并且需要继续打磨以使它成为 Windows 系统的官方部分。 按照 Dave 最初的设想,任务管理器会以共享软件的形式提供,他计划将其出售给有需要的使用者,不过由于 NT 内核开发者的建议,任务管理器最后成为了一款免费应用并与Windows捆绑在一起。任务管理器于1996年首次随 Windows NT 4.0 一起提供,此后Windows 的用户都能通过该应用检查 CPU 负载或杀死进程。 除了任务管理器,Dave 还参与了三维弹球(Space Cadet pinball)的开发和移植工作,编写了Zip Folder 的 UI 和文件管理部分,以及参与开始菜单、shell、计算器、ole32 和产品激活等产品的开发工作。 Dave 表示任务管理器是自己最引以为豪的应用程序之一,因为它可能是有史以来第一个最复杂,至少在视觉效果上是最复杂的应用程序,并且在任意尺寸下完全调整任务管理器的窗口大小都不会出现任何抖动情况。当时的应用对内存要求十分苛刻,所以任务管理器的大小保持在 100K 以下。GDI32 和 User32 的同事也提供了不少帮助。 Dave 分享的关于任务管理器的一些使用技巧: 如果任务管理器挂起或崩溃,可通过按下 Ctrl-Shift-Esc组合键启动另一个。Winlogon 会寻找一个现有的实例,并尝试在10秒内重新启动它。如果旧的任务管理器没有在这段时间内以秘密代码进行回应,那么另一个任务管理器将被启动。如此一来,只要有可使用的资源,就可启动任务管理器。 如果资源不足,任务管理器会在简化模式(reduced mode)下加载,例如只加载进程页面(如果确实有这样的需求)。它是为数不多的不会在出现问题时直接“失败并退出”的应用程序之一。 如果任务管理器内部出现损坏,先关闭或杀掉进程。然后在重启的同时按下Ctrl-ALT-Shift 组合键,任务管理器在启动时发现此组合键,会将所有的内部设置重置为出厂设置。 使用 Ctrl-Shift-Esc组合键可在没有 Shell 的帮助下启动任务管理器,所以如果 Shell/Explorer 处于挂起状态,可通过此组合键调出任务管理器,然后重置或重启 Shell。即使托盘消失,也可以通过此组合键启动任务管理器。 如果 Shell 无法启动或处于挂起状态,可以尝试使用任务管理器,它有一个模式,在此模式下,任务管理器会在没有任何引用 shell32.dll 的情况下加载,并允许在没有开始菜单的情况下启动 CMD.EXE 等程序。 任何在进程表中正在执行的进程,右键点击"显示文件位置"即可查看进程的二进制文件。 理论上可通过任务管理器杀死任何进程,如果用户拥有权限,它甚至可以升级权限以启用调试权限来杀死应用程序。如果有连任务管理器都不能杀死的进程,说明内核出现了问题。 可在进程页上添加额外的列或删除其他列,并拖动它们进行重新排序。 任务管理器比大部分人认识到的更为复杂,因为它诞生之初就旨在解决用户在需要该应用程序时可能遇到的大多数情况。这些年来,微软没有对任务管理器的底层进行改动。因此,上面介绍的所有使用技巧不仅适用于旧版本 Windows,同样也适用于 Windows 10。 最后,为了致敬任务管理器,建议使用任务管理器关闭此页面 : )

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

Firefox 推出 Private Relay 插件,可一键生成电子邮件别名

Mozilla 正在为 Firefox 开发一项名为Private Relay 的新服务,它能够用来一键随机生成电子邮件别名,以隐藏真实邮箱地址,使用户免受广告商和垃圾邮件侵害。 Private Relay 将作为 Firefox 插件提供。它于上个月开始测试,目前仍处于封闭测试阶段,计划于今年晚些时候公开发布。 根据 Mozilla 的介绍,Private Relay 能够生成唯一的、随机且匿名的电子邮件地址,发送到这些地址的邮件都会转发到真实的收件箱。用户可以随时禁用或销毁电子邮件别名地址,这样就永远不会再从使用该别名订阅的服务中收到任何电子邮件了。 电子邮件别名的概念其实已经存在了很多年,但它们管理起来较为麻烦,而且很多电子邮件提供商不提供这样的功能。 Mozilla 希望通过 Firefox Private Relay 提供一种易于使用的解决方案,用户只需单击几下鼠标,即可创建和销毁电子邮件别名。

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

JetBrains 推出编程字体 Mono:开源免费可商用、提供更好的阅读体验

JetBrains推出了一款名为 "Mono" 的字体。按照官方的说法,Mono 是专为开发者打造的编程字体,希望借此提升他们在查阅代码时的体验。 JetBrains 还解释了他们打造 Mono 的缘由。因为开发者大部分时间都在查阅代码,并且他们也会花时间寻找一款适合自己的“最佳”字体来获得最好的阅读体验。但 JetBrains 认为这些“网红”编程字体大多数没有充分考虑到通读代码和普通阅读之间的区别,从而导致开发者很容易眼干眼涩眼疲劳……为此他们决定打造一种能让每个人都可以更轻松使用代码的字体。 查阅代码时,开发者的目光在屏幕上随处地快速扫过(眼睛需要随时沿垂直和水平方向移动),所以眼睛十分容易疲劳,而普通阅读时,眼睛通常是沿着同一方向移动,相对来说就更轻松。因此,在设计 Mono 字体之初,团队充分考虑了长时间查阅代码可能导致的眼睛疲劳问题,以及受影响的因素,比如字母的大小和形状、空间量、自然等宽平衡、不必要的细节、连字、以及难以区分的符号或字母(l 和 I)和连字等。 首先来看一下 Mono 字体长什么样,它在不同编程语言中的显示效果如下: Kotlin Java Go Python 事实上,刚看到 Mono 字体时,由于本人对字体不太敏感,一时竟分不清它和Consolas 字体的区别。 ▲ JetBrains Mono 和Consolas 字体的对比 乍一看两者的区别不大,但字体考验的就是对细节的把控,虽然 Mono 粗看平平无奇,其实里面却暗含许多门道。 Mono 字体在保证字符采用标准宽度的前提下,增加了小写字母的高度,如此一来,每个字母将会使用更多的像素,有助于改进渲染效果。 另外,Mono 字体舍弃了许多不必要的细节,这样做的目的是当字体较小时,仍可保证文本的清晰显示。更重要的是,字体的形式越简单,眼睛感知的速度就越快,也就更容易辨识。 下图是几个容易给使用者造成混(成)淆(功)的案例,对于这种情况,Mono 字体也进行了优化,相信开发者会更容易分辨。 虽然 Mono 字体有许多优点,但它支持的143 门语言中没有中文,因此对于中文的显示支持可能不会太好、对了,Mono 字体还是一款开源且免费的字体,使用者可免费用作任何商业或非商业用途。 使用方式 如果使用的是最新版本 JetBrains IDE,可以直接在里面设置 Mono 字体;如果使用的是旧版本或其他的 IDE,需要手动下载字体安装。>>>戳这里获取下载地址 P.S. 本人尚未进行使用,因此不能提供任何反馈,各位如果有兴趣不妨下载体验一下。我们常说“JetBrains 出品,必属精品”,希望这次不会翻车 : )

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

华为 HMS 上线公测,可部署在老机型上并与谷歌 GMS 共存

日前,华为在国内开启了HMS(Huawei Mobile Service,包含了电话、短信、邮件等一系列手机基础 APP 的华为移动服务)的众测,本次众测任务发布 2 个待测应用,一个是华为移动服务,另一个就是HMS Core Test。 HMS Core Test 是一款集合了 6 个 HMS 基础服务的应用安装下载小型应用市场模型。该应用市场包括 Game、Fido&Safety、Purchase、Identity、Scan、Nearby、ML 等应用。 有测试用户投递线索称,除了 Mate 30、nova 6、荣耀V30等受“实体清单”禁令影响无法预装 GMS 的手机,其它更早型号的华为手机同样可以成功部署 HMS 服务。甚至,HMS 和谷歌 GMS 可以在系统内共存。 12月24日,华为公司印度消费者业务负责人 Charles Peng 对印度《经济时报》透露,华为已建立 HMS(华为移动服务),导航、支付等关键功能马上就能上线。而就在华为高管接受印度媒体采访前一日,即12月23日,华为 HMS 已经在国内开启公测。 华为 HMS 服务是华为提供的基础服务合集,为无法使用谷歌 GMS 的智能手机提供支持,并为其提供类似谷歌 GMS 的功能,目前包括华为账号、云空间服务、游戏服务、定位服务、钱包服务、应用内消息、消息通知、身份验证、统一扫码服务等基础服务。 今年5月特朗普政府把华为公司列入“实体名单”后颁布了限制措施,Alphabet 旗下的子公司谷歌被停止与华为公司进行商业往来。这些商业往来包括需要转移硬件、软件和技术服务的业务(因开源许可而公开可用的服务除外)。其中对华为影响最大的就是谷歌被禁止向华为手机提供GMS服务。也就是说,华为在海外市场出售的手机,在原厂设置下不能使用 Google Play Store、Gmail 和 YouTube 等应用、谷歌支付、谷歌云以及谷歌导航等服务。这对华为的海外手机市场无疑是一大重创。 为此,华为推出了自己的生态服务 HMS。根据华为方面公布的数据,截止到2019年8月,HMS 生态增长迅速,全球注册开发者数量超过 101 万,接入 HMS Core 的应用程序超过 45 万。

资源下载

更多资源
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部分的功能。

用户登录
用户注册