首页 文章 精选 留言 我的

精选列表

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

Neovim 0.7 即将发布,基于 Vim 的可扩展文本编辑器

Neovim 0.7 目前正处于稳定化阶段,预计在 4 月 15 日发布。 主要变化 新增 lua 自动命令 新增 lua keymap API 新增 lua 命令 API 支持全局命名空间 lua 高亮(纯 lua 配色方案) 全局statusline 支持通过nvim_buf_set_extmark设置 signs 提供在映射中从<Tab>区分<C-I>的能力 filetype.lua(用于匹配filetype规则的单个自动命令的更快替代方案) :lua =expr, 尝试:lua ={test = true} 其他更新内容是常见的错误修复、移植 Vim 补丁和改进性能。 Neovim 是 Vim 的一个分支,旨在改进代码库,允许更轻松地实现 API,改善用户体验和插件实现。Neovim 的源代码比 Vim 少 30%。 其目标是: 重构代码以改善维护 实施新的高级功能 展示一个更好、更强大的插件系统 开放的开发模式,随时接受贡献,接受的标准也很明确。 特性: 现代图形用户界面 从任何语言访问API,包括C/C++, C#, Clojure, D, Elixir, Go, Haskell, Java, JavaScript/Node.js, Julia, Lisp, Lua, Perl, Python, Racket, Ruby, Rust 嵌入式、可编写脚本的终端仿真器 异步作业控制 多个编辑器实例之间的共享数据(shada)。 支持XDG基础目录 与大多数Vim插件兼容,包括Ruby和Python插件

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

苹果 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 提供一种易于使用的解决方案,用户只需单击几下鼠标,即可创建和销毁电子邮件别名。

资源下载

更多资源
Mario

Mario

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

腾讯云软件源

腾讯云软件源

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

Rocky Linux

Rocky Linux

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

Sublime Text

Sublime Text

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

用户登录
用户注册