将多个 srt 文件拼接成一个,找了好多工具,都太重了,自己用 shell 手搓一个。一开始没觉得这个小工具有多么难,以为半天肯定能搞定,结果足足搞了三天。绊倒我的居然是时间字段的拆分和前导零的删除,看看 shell 里有多少种实现方案,以及我为何选择了当前的方案。
前言 Novel AI (简称NAI)是一个线上的深度学习小说续写平台,而 NAI Diffusion 是 NAI 在2022年10月3日推出的基于 Stable Diffusion 算法的自动生成二次元图片的服务 在线版 NovelAI官网:https://novelai.net/ 进入官网,在首
本文主要介绍使用shell实现一个简易的docker。
运营活动新玩法层出不穷,web 3D炙手可热,本文将一步步带大家了解如何利用Three.js和Blender来打造一个沉浸式web 3D展览馆。
最近github上发现了一个库(`plottable`),可以用简单的方式就设置出花哨的 `DataFrame` 样式。 github上的地址:[https://github.com/znstrider/plottable](https://github.com/znstrider/plottabl
声明在函数内的变量拥有一个local scope(局部作用域,即在函数内),我们将这类变量称为local(局部)变量。声明在函数之外的变量,也即它们都在gobal scope(全局作用域)中,我们将它们global(全局)变量。nonlocal变量常用在局部嵌套函数中将外层函数中的自由变量绑定到内层函数作用域。
在Linux系统中,执行一个程序或命令就可以触发一个进程,系统会给予这个进程一个ID,称为PID,同时根据触发这个进程的用户与相关属性关系,基于这个PID一组有效的权限设置。举个常见的例子,我们要操作系统的时候通常是利用ssh连接程序或直接在主机上登录,然后获取shell。默认的shell是bash,对应的路径为/bin/bash,那么同时间的每个人登录都是执行/bin/bash,不过每个人获取的
Boost 利用ASIO框架实现一个跨平台的反向远控程序,该远控支持保存套接字,当有套接字连入时,自动存储到map容器,当客户下线时自动从map容器中移除,当我们需要与特定客户端通信时,只需要指定客户端ID号即可。
注册表是Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息,注册表是一个巨大的树形结构,无论在应用层还是内核层操作注册表都有独立的API函数可以使用,而在内核中读写注册表则需要使用内核装用API函数,如下将依次介绍并封装一些案例,实现对注册表的创建,删除,更新,查询等操作。
PeFile模块是`Python`中一个强大的便携式第三方`PE`格式分析工具,用于解析和处理`Windows`可执行文件。该模块提供了一系列的API接口,使得用户可以通过`Python`脚本来读取和分析PE文件的结构,包括文件头、节表、导入表、导出表、资源表、重定位表等等。此外,PEfile模块还可以帮助用户进行一些恶意代码分析,比如提取样本中的字符串、获取函数列表、重构导入表、反混淆等等。PE
数据类型是编程语言中的一个重要概念,它定义了数据的类型和提供了特定的操作和方法。在 python 中,数据类型的作用是将不同类型的数据进行分类和定义,例如数字、字符串、列表、元组、集合、字典等。这些数据类型不仅定义了数据的类型,还为数据提供了一些特定的操作和方法,例如字符串支持连接和分割,列表支持排序和添加元素,字典支持查找和更新等。因此,选择合适的数据类型是 python 编程的重要组成部分。
Vector容器是C++ STL中的一个动态数组容器,可以在运行时动态地增加或减少其大小,存储相同数据类型的元素,提供了快速的随机访问和在末尾插入或删除元素的功能。该容器可以方便、灵活地代替数组,容器可以实现动态对数组扩容删除等各种复杂操作,其时间复杂度`O(l)常数阶`,其他元素的插入和删除为`O(n)线性阶`,其中n为容器的元素个数,vector具有自动的内存管理机制,对于元素的插入和删除可动
property_tree 是 Boost 库中的一个头文件库,用于处理和解析基于 XML、Json 或者 INFO 格式的数据。 property_tree 可以提供一个轻量级的、灵活的、基于二叉数的通用容器,可以处理包括简单值(如 int、float)和复杂数据结构(如结构体和嵌套容器)在内的各种数据类型。它可以解析数据文件到内存中,然后通过迭代器访问它们。在 Boost 库中,propert
Boost ASIO(Asynchronous I/O)是一个用于异步I/O操作的C++库,该框架提供了一种方便的方式来处理网络通信、多线程编程和异步操作。特别适用于网络应用程序的开发,从基本的网络通信到复杂的异步操作,如远程控制程序、高并发服务器等都可以使用该框架。该框架的优势在于其允许处理多个并发连接,而不必创建一个线程来管理每个连接。最重要的是ASIO是一个跨平台库,可以运行在任何支持C++
Session是`Windows`系统的一个安全特性,该特性引入了针对用户体验提高的安全机制,即拆分Session 0和用户会话,这种拆分`Session 0`和`Session 1`的机制对于提高安全性非常有用,这是因为将桌面服务进程,驱动程序以及其他系统级服务取消了与用户会话的关联,从而限制了攻击者可用的攻击面。由于`DLL`注入在`Session 0`中的注入机制不同于在用户会话中的注入机制
SetWindowHookEx 是`Windows`系统的一个函数,可用于让一个应用程序安装全局钩子,但读者需要格外注意该方法安装的钩子会由操作系统注入到所有可执行进程内,虽然该注入方式可以用于绕过游戏保护实现注入,但由于其属于全局注入所以所有的进程都会受到影响,而如果想要解决这个问题,则需要在`DllMain()`也就是动态链接库开头位置进行判断,如果是我们所需操作的进程则执行该DLL模块内的功
摘要:从整个行业应用层面来看,现在,数据库的国产化时代已经到来。 本文分享自华为云社区《聚焦技术,锐意创新,GaussDB给世界一个更优选择》,作者: GaussDB数据库。 今天,以“数据智能,价值创新”为主题的第13届中国数据库技术大会(DTCC2022)在线上顺利举行,会上集合了数百位行业专家
摘要:本文讲解如何实现一个任务调度系统的核心逻辑。 本文分享自华为云社区《实现一个任务调度系统,看这篇文章就够了》,作者:勇哥java实战分享 。 1 Quartz Quartz是一款Java开源任务调度框架,也是很多Java工程师接触任务调度的起点。 下图显示了任务调度的整体流程: Quartz的
摘要:神经网络的压缩算法是,旨在将一个庞大而复杂的预训练模型(pre-trained model)转化为一个精简的小模型。 本文分享自华为云社区《卷积神经网络压缩方法总结》,作者:嵌入式视觉 。 我们知道,在一定程度上,网络越深,参数越多,模型越复杂,其最终效果越好。神经网络的压缩算法是,旨在将一个
光圈 线性渐变 路径渐变 案例 一个圆 渐变 二个圆 渐变叠加 加阴影 阴影 金属字体