首页 文章 精选 留言 我的

精选列表

搜索[水平可扩展],共10000篇文章
优秀的个人博客,低调大师

Boost 1.81 发布,可移植的 C++ 库

Boost 是一套用于 C++ 编程语言的库,为线性代数、伪随机数生成、多线程、图像处理、正则表达式和单元测试等任务和结构提供支持。它包含了 164 个单独的库(截至 1.76 版)。 新的库: URL:一个仅使用 C++11 解析、修改和打印 URL 的库,来自 Vinnie Falco 和 Alan de Freitas。其特点包括快速编译、强大的不变性,以及严格遵守使用内存友好方法。 更新的库: Asio: 增加了consign,可以用来给补全处理程序附加额外的值 添加了 any_completion_handler<>,可用于 type-erase 补全处理程序。 添加了 experimental::co_composed,使用户定义的异步操作的轻量级实现能够使用 C++20 coroutines。 添加了基于范围的 experimental::make_parallel_group() 重载。 添加了 any_completion_executor 为 use_future 的执行器添加了缺失的 context 查询 Beast: 添加 buffers_generator 添加 beast::http::message_generator 增加了 buffer_ref,因此 beast 缓冲区可以与 asio 一起使用 websocket 超时选项 api 多个内容长度错误 支持默认补全和重新绑定 Core: empty_value 现在被标记为 constexpr 添加了 fclose_deleter,一个在指向 std::FILE 的指针上调用 std::fclose 的删除器 boost/core/bit.hpp 中的位操作工具现在明确要求输入无符号整数 bit_width 现在返回 int 而不是输入参数类型的值 DLL: 修正了 Windows 平台的 path_from_handle 实现 Filesystem: 已废弃:从字符容器(如 std::vector<char> 或 std::list<wchar_t>)进行 path 构建、赋值和追加,在 v3 中已废弃,并在 v4 中删除 已废弃: boost/filesystem/path_traits.hpp header 已废弃,将在未来的版本中移除 以前被废弃的 API 现在会在使用时产生编译警告 修正了在不支持 at API 的 POSIX 系统上由于缺少 include 而导致的编译 …… 更多详情可查看:https://github.com/boostorg/boost/releases/tag/boost-1.81.0

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

Boost 1.80 发布,可移植的 C++ 库

Boost 是一套用于 C++ 编程语言的库,为线性代数、伪随机数生成、多线程、图像处理、正则表达式和单元测试等任务和结构提供支持。它包含了 164 个单独的库(截至 1.76 版)。 已知问题 这些是库的作者提出的补丁,由于发现得太晚,所以在发行版中没有修复。 Boost.Filesystem 目录迭代器在 Windows 10 之前可能无法为网络共享构建 在 Windows 上的 Boost.Filesystem 中, weakly_canonical 无法处理以 "\\?\" 开头的路径 更新的库 Asio: 将 append、 predpend、 as_tuple 和 deferred 移至 boost::asio 命名空间,并使它们与 C++11 兼容。 使得 experimental::parallel_group 与 C++11 兼容 为连续的容器(如 std::span)增加了 buffer() 重载 …… Atomic: 改进了 ARM、AArch32 和 AArch64 目标上的字节数检查的可移植性 修正了 MSVC 14.0(Visual Studio 2015)在 C++17 模式下的编译 文件系统。 在 Windows 上,增加了一个回退实现,用于在文件因 ERROR_ACCESS_DENIED 错误而无法打开的情况下查询文件属性。 在 Windows 上,为 FAT/exFAT 文件系统增加了一个解决方法,在查询文件属性时产生 ERROR_INVALID_PARAMETER。 解决了 RTEMS 上的一个编译问题 在 Linux 上,如果 copy_file_range 在运行时与 ENOSYS 一起失败,纠正了切换到 sendfile copy_file 的实现。 在支持 openat 和 POSIX.1-2008 中定义的相关 API 的 POSIX 系统上,以及在 Windows Vista 和更高版本上,改进了针对 CVE-2022-21658 的 remove_all 保护 GIL:计划在 Boost 1.80 之后的一到两个版本中,将 C++17 作为最低要求的 C++ 语言版本 迭代器 对于 C++11 和更高版本,增加了对写给 function_output_iterator 的值的完美转发的支持 增加了对向 function_output_iterator 写入一个取消引用另一个 function_output_iterator 的结果的保护。 JSON 增加了 string::subview() 重载。 修正了 array::erase(it) 的 segfault。 修正了 libc++ 上序列化的低性能 修正了在 big-endian 平台上的解析问题 修正了对尾部逗号后的注释的处理。 Locale: 废弃了对 C++03 和更早版本的支持 修复了ICU整理器在转换空字符串时出现的UB/断言故障 修复一些与共享库中类的可见性有关的问题 修复与 C++20 模式的兼容性 修复与 BOOST_USE_WINDOWS_H 的兼容性问题 修复了由于缺失包含物而导致的构建失败问题 处理或压制许多警告,使构建日志更清晰 Boost 的主要测试编译器是 Linux: Clang: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0, 13.0.0, 14.0.0 Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0 Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0, 13.0.0, 14.0.0 Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0, 13.0.0, 14.0.0 Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0 GCC: 4.6.3, 11, 12 GCC, C++11: 4.7.3, 4.8.5, 11, 12 GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12 GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12 GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12 OS X: Apple Clang: 11.0.3 Apple Clang, C++11: 11.0.3 Apple Clang, C++14: 11.0.3 Apple Clang, C++17: 11.0.3 Apple Clang, C++20: 11.0.3 Windows: Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3 更多详情可查看:https://github.com/boostorg/boost/releases/tag/boost-1.80.0

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

Avidemux 2.8 发布,最高可处理 1000 帧视频

Avidemux 是一个免费开源的视频编辑器,可以进行剪切、过滤和编码等任务。它支持广泛的文件格式,包括 AVI 文件的编辑,DVD 的 MPEG 文件、MP4 和 ASF,并能将声音从文件中分解出来,支持强大的队列任务处理和脚本功能。 Avidemux 2.8 已经正式推出,更新内容如下: 捆绑的 FFmpeg 库已更新至 4.4.1 版本 “重新采样 FPS” 和 “更改 FPS” 过滤器可以处理最高 1000 帧 支持将 HDR 视频转换为带有色彩映射的 SDR 支持对 TrueHD 音轨进行解码 支持解码 WMA9 无损音频 恢复 FFV1 编码器(曾在 2.5.x 版本中可用) 改进了 PulseAudio 的集成,允许应用中的音量控制 PulseAudioSimple 已被完整的 PulseAudio 取代 修复视频播放过程中偶尔出现的用户界面无反应的问题 在导航滑块上的切割点之间更容易跳转 支持通过视频过滤器管理器暂时禁用过滤器 在视频播放期间,现在可以通过按键或拖动导航滑块进行导航 更多详情可查看:http://avidemux.sourceforge.net/news.html

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

恶意KMSPico安装器可窃取加密货币钱包

攻击者通过传播恶意KMSpico 安装器来感染Windows设备,并窃取加密货币钱包。 KMSpico安装器是一款非常流行的Windows和office产品激活工具,可以模拟Windows密钥管理服务(Key Management Services,KMS)来欺诈性地激活证书。许多IT公司都使用KMSPico激活Windows服务,而不购买合法的微软证书。 近期,Red Canary安全研究人员发现有攻击者通过传播修改的恶意KMSpico安装器来感染Windows设备。 修改的产品激活器 分发的KMSPico中包含广告恶意软件和恶意软件。下图中可以看出,攻击者创建了大量的网站来分发KMSPico,都声称是官方网站。 谷歌搜索KMSPico返回的结果都称是官方网站 RedCanary通过分析发现,恶意KMSPico安装器来自7-zip这样的自提取的可执行文件,其中既包含KMS服务器模拟器,还包括Cryptbot。 用户点击恶意链接,下载KMSPico或者Cryptbot或其他不含KMSPico的恶意软件,就会被感染。安装KMSPico的同时也会同时部署Cryptbot。 恶意软件还被CypherIT打包器封装,混淆安装器来预防被安全软件检测到。然后,安装器会启动一个严重混淆的脚本,该脚本可以检测沙箱和反病毒模拟环境,如果发现就不会执行。 混淆的Cryptbot代码 此外,Cryptobot会检查是否存在%APPDATA%\Ramson,如果文件夹存在就执行自删除过程来预防再次感染。攻击者通过process hollowing方法将Cryptbot字节注入到内存中,恶意软件的其他特征与之前发现的特征有重合。 总的来看, Cryptbot 可以从以下APP中收集敏感信息: Atomic加密货币钱包 Avast安全web浏览器 Brave浏览器 Ledger Live加密货币钱包 Opera Web浏览器 Waves Client and Exchange加密货币应用 Coinomi加密货币钱包 Google Chrome Web浏览器 Jaxx Liberty加密货币钱包 Electron Cash加密货币钱包 Electrum加密货币钱包 Exodus加密货币钱包 Monero加密货币钱包 MultiBitHD加密货币钱包 Mozilla Firefox Web浏览器 CCleaner Web浏览器 Vivaldi Web浏览器 因为Cryptbot的操作并不依赖硬盘上未加密的二进制文件的存在,只可以通过监控PowerShell命令执行或者外部网络通信等恶意行为监控来实现检测。 完整技术分析参见:https://redcanary.com/wp-content/uploads/2021/12/KMSPico-V5.pdf 本文翻译自:https://www.bleepingcomputer.com/news/security/malicious-kmspico-installers-steal-your-cryptocurrency-wallets/如若转载,请注明原文地址。

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

聊一聊泛型的可空性(kotlin)

什么?泛型本身也可以是nullable?上来就抛这么个问题实在是不够友好~ 首先回顾,什么是泛型?Oracle Java Tutorials Introduced in J2SE 5.0, this long-awaited enhancement to the type system allows a type or method to operate on objects of various types while providing compile-time type safety. It adds compile-time type safety to the Collections Framework and eliminates the drudgery of casting. 泛型的本质是参数化类型,也就是说操作的数据类

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

制作可独立分发的Android模拟器

如果我们编写了一个Android应用程序,想在一台没有Android SDK或者BUILD环境的机器显示给别人看,应该怎么办呢?通常,我们开发Android应用程序的时候,都是使用模拟器来运行程序,要么是SDK环境下,要么是在源代码BUILD环境下使用。在SDK环境下,结合Eclipse和ADT,使用模拟器很方便,而BUILD环境下,也是很简单地使用emulator命令就可以了,具体可以参考在Ubuntu上下载、编译和安装Android最新源代码一文。这篇文章介绍另外一种方法在Windows下环境下使用Android模拟器,它不依赖于SDK或者BUILD环境,可以独立分发和使用。 要运行Android模拟器emulator,只要具备4个系统镜像就可以了,分别是system.img、userdata.img、ramdisk.img和kernel-qemu,这4个文件均可以在从SDK环境中得到,此外,最好还要添加模拟器皮肤和adb工具,这样功能才算完整。以下介绍具体制方法。 一. 下载Android SDK。官方下载http://dl.google.com/android/android-sdk_rXX-windows.zip,XX是指你要下载的版本号,例如我下载的是08。此链接可能已经被和谐,,可以在网上搜索一下,用其它办法下载。下载好之后,运行SDK Manager工具,下载完整的SDK。假设SDK放在D:\android-sdk-windows目录下。 二. 新建一个目录,例如,在D盘下新建目录D:\AndroidEmulator。进入到D:\android-sdk-windows\tools目录下,将emulator.exe拷拷贝到D:\AndroidEmulator中,同时进入到D:\android-sdk-windows\platform-tools目录下,拷贝adb.exe和AdbWinApi.dll两个文件到D:\AndroidEmulator中。注意,有的SDK把adb.exe和AdbWinApi.dll放在D:\android-sdk-windows\tools目录下。 三. 在D:\AndroidEmulator新建目录images,用来存放上面提到的4个系统镜像。例如要制作Android2.1模拟器,则到D:\android-sdk-windows\platforms\android-7\images目录下,把里面的文件全部拷贝到D:\AndroidEmulator\images目录下,D:\android-sdk-windows\platforms\android-7\images目录包含了system.img、userdata.img、ramdisk.img和kernel-qemu这4个文件。 四.在D:\AndroidEmulator新建目录skins,用来存放模拟器皮肤文件。继续以制作Android2.1模拟器为例,到D:\android-sdk-windows\platforms\android-7\skins目录下,把里面所有的文件夹拷贝到D:\AndroidEmulator\skins目录下,D:\android-sdk-windows\platforms\android-7\skins目录包含了模拟器皮肤文件。 五. 启动命令行窗口,进入到D:\AndroidEmulator目录,执行以下命令: D:\AndroidEmulator>start /b emulator.exe -sysdir d:\AndroidEmulator -system images\system.img -data images\userdata.img -ramdisk images\ramdisk.img -kernel images\kernel-qemu -skindir d:\AndroidEmulator\skins -skin HVGA start /b表示在后台运行emulator,其它emulator命令选项请执行emulator -help查看。这样,模拟器就运起来了。 六. 如果要在模拟器上安装APK程序,则执行adb install XXX.apk命令,运行adb install命令时,如果遇到下面输出: D:\AndroidEmulator>adb install Renju.apk * daemon not running. starting it now on port 5037 * * daemon started successfully * error: device offline 不用理会,重新运行,直到提示成功为止。 这样,如果我们编写了一个Android应用程序,想拿到一台没有Android SDK和Android Build环境的机器上显示给别人看,就可以打包D:\AndroidEmulator这个文件夹,再带上你的Android应用程序,就可以显示了,是不是很方便呢。 附我自己制作的一个Android2.1模拟器,可以下载使用: 程序员联合开发网:http://www.pudn.com/downloads367/sourcecode/comm/android/detail1590288.html 新浪爱问:Part-1:http://ishare.iask.sina.com.cn/f/16902616.html Part-2:http://ishare.iask.sina.com.cn/f/16902614.html 本文转自 Luoshengyang 51CTO博客,原文链接:http://blog.51cto.com/shyluo/964510,如需转载请自行联系原作者

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

隐马尔可夫模型的Viterbi解码算法

前言 前面在做自然语言处理时涉及到一些词性标注的工作,一般会使用隐马尔科夫模型(HMM)来实现词性标注,而HMM模型的解码实现算法一般就会使用Viterbi算法。 关于穷举法 HMM模型有多种应用,这里说的是其中一个常见应用,即根据观察序列找到最可能的隐含状态序列。最朴素的想法就是直接穷举所有可能的隐含状态序列,并计算出每个组合成的状态序列的概率,概率最大的那个组合序列即是最可能的隐含状态序列。举个水藻和天气的例子,穷举出所有可能的隐含状态序列的概率,如下, P(dry,damp,soggy | sunny,sunny,sunny), P(dry,damp,soggy | sunny,sunny,cloudy), P(dry,damp,soggy | sunny,sunny,rainy), … . P(dry,damp,soggy | rainy,rainy,rainy),最大值对应的序列即为最可能的隐含状态序列。穷举的路径一共有3t条,可以看到随着序列还有状态数的增加,计算量是非常大的。 Viterbi算法 上面的穷举法需要的计算量很大,为减少复杂度引入Viterbi算法,Viterbi算法要解决的解码问题就是多步且每步多重选择的最优选择的问题。根据下图就能很清晰看到Viterbi的核心思想,随着时刻增加,每个节点都保存了前一时刻所有节点到该节点的最优值的子路径,如图中红色箭头,当前时刻的某一节点可能的路径为上一时刻所有节点到该节点的路径,但我们只保留其中一条最优路径。依次计算完所有步后,最后通过回溯的方法得到整个过程的最优路径。 下面用一个例子说明整个过程,假设有3中状态,序列为t个时刻,p(a1)表示a1节点的值,p(b1)表示b1节点的值,同理其他的节点也一样。对于不同时刻,状态之间的转换概率是不变的,所以p(aa)表示从a状态转移到a状态的概率,不管是从1时刻到2时刻,还是从2时刻到3时刻,都是相同的。同理还有p(ab)、p(ac)、p(ba)…。 t+1时刻节点值的计算公式为pt+1(y)=pt(x)p(xy)其中x,y都属于a,b,c一种状态。 我们计算t=2时刻的p(a)的值,它可能从a1到a2、b1到a2或c1到a2,假如a1到a2这条路径计算出来的p(a)最大,那么就保留该路径。同理分别计算p(b)和p(c)的最大值,保留b1到b2的路径,b1到c2的路径。接着计算t=3时刻的p(a)、p(b)和p(c),最后到达t时刻,计算该时刻最大的p(a)、p(b)和p(c),选择出它们最大的值的节点,再根据保留的上一时刻的路径依次往前回溯,就得到最优的序列。比如ct是最大的节点,那就是ct>ct−1>...>b3>c2>b1即最可能的序列为bcb…cc。 ========广告时间======== 鄙人的新书《Tomcat内核设计剖析》已经在京东销售了,有需要的朋友可以到 https://item.jd.com/12185360.html 进行预定。感谢各位朋友。 为什么写《Tomcat内核设计剖析》 ========================= 欢迎关注:

资源下载

更多资源
Mario

Mario

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

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应用均可从中受益。

Sublime Text

Sublime Text

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

用户登录
用户注册