草庐IT

中文输入法中光标跟随能力触发的浏览器事件探究

:::tip最近在着手腾讯文档的输入体验优化,在其中有一个不起眼的小需求引起了我的注意,并顺便研究了一些事件监听机制相结合的特点,特此记录一下填坑过程。:::模拟光标跟随大部分的主流输入法都有这样一个特性,在输入中文时,可以通过左右方向键控制光标,移动至输入区中任意两个字符之间的位置,用户接下来的字符输入将在光标处直接插入。由于腾讯文档的渲染的画布是完全自主实现的,为了在体验上与普通可编辑画布保持一致,我们需要自己来模拟这一光标的移动行为。首先,我们需要确定的是输入法中的模拟光标进行更新的时机。经试验,用户在进行中文输入时,若使用了方向键移动光标,将会触发光标的移动行为。因此,首先要解决的是使

探究SMC局部代码加密技术以及在CTF中的运用

前言近些日子在很多线上比赛中都遇到了smc文件加密技术,比较出名的有Hgame杭电的比赛,于是我准备实现一下这项技术,但是在网上看了很多文章,发现没有讲的特别详细的,或者是无法根据他们的方法进行实现这项技术,因此本篇文章就是分享我在学习以及尝试smc文件加密技术时所遇到的麻烦以及心得。该篇文章将会从我学习这项技术的视角,讲述我屡次失败的经历,一点点深入。SMC局部代码加密技术简介:SMC(Software-BasedMemoryEncryption)是一种局部代码加密技术,它可以将一个可执行文件的指定区段进行加密,使得黑客无法直接分析区段内的代码,从而增加恶意代码分析难度和降低恶意攻击成功的可

探究SMC局部代码加密技术以及在CTF中的运用

前言近些日子在很多线上比赛中都遇到了smc文件加密技术,比较出名的有Hgame杭电的比赛,于是我准备实现一下这项技术,但是在网上看了很多文章,发现没有讲的特别详细的,或者是无法根据他们的方法进行实现这项技术,因此本篇文章就是分享我在学习以及尝试smc文件加密技术时所遇到的麻烦以及心得。该篇文章将会从我学习这项技术的视角,讲述我屡次失败的经历,一点点深入。SMC局部代码加密技术简介:SMC(Software-BasedMemoryEncryption)是一种局部代码加密技术,它可以将一个可执行文件的指定区段进行加密,使得黑客无法直接分析区段内的代码,从而增加恶意代码分析难度和降低恶意攻击成功的可

Clickhouse表引擎探究-ReplacingMergeTree

作者:耿宏宇1表引擎简述1.1官方描述MergeTree系列的引擎被设计用于插入极大量的数据到一张表当中。数据可以以数据片段的形式一个接着一个的快速写入,数据片段在后台按照一定的规则进行合并。相比在插入时不断修改(重写)已存储的数据,这种策略会高效很多。ReplacingMergeTree引擎和MergeTree的不同之处在于它会删除排序键值相同的重复项。数据的去重只会在数据合并期间进行。合并会在后台一个不确定的时间进行,因此你无法预先作出计划。有一些数据可能仍未被处理。尽管你可以调用OPTIMIZE语句发起计划外的合并,但请不要依靠它,因为OPTIMIZE语句会引发对数据的大量读写。1.2本

Clickhouse表引擎探究-ReplacingMergeTree

作者:耿宏宇1表引擎简述1.1官方描述MergeTree系列的引擎被设计用于插入极大量的数据到一张表当中。数据可以以数据片段的形式一个接着一个的快速写入,数据片段在后台按照一定的规则进行合并。相比在插入时不断修改(重写)已存储的数据,这种策略会高效很多。ReplacingMergeTree引擎和MergeTree的不同之处在于它会删除排序键值相同的重复项。数据的去重只会在数据合并期间进行。合并会在后台一个不确定的时间进行,因此你无法预先作出计划。有一些数据可能仍未被处理。尽管你可以调用OPTIMIZE语句发起计划外的合并,但请不要依靠它,因为OPTIMIZE语句会引发对数据的大量读写。1.2本

[20230220]探究v$session.SQL_EXEC_ID在共享池.txt

[20230220]探究v$session.SQL_EXEC_ID在共享池.txt--//http://blog.tanelpoder.com/2011/10/24/what-the-heck-is-the-sql-execution-id-sql_exec_id/1.环境:SCOTT@book>@ver1PORT_STRING                   VERSION       BANNER------------------------------------------------------------------------------------------------

[20230220]探究v$session.SQL_EXEC_ID在共享池.txt

[20230220]探究v$session.SQL_EXEC_ID在共享池.txt--//http://blog.tanelpoder.com/2011/10/24/what-the-heck-is-the-sql-execution-id-sql_exec_id/1.环境:SCOTT@book>@ver1PORT_STRING                   VERSION       BANNER------------------------------------------------------------------------------------------------

Squirrel状态机-从原理探究到最佳实践

作者:京东物流郑朋辉1简介Squirrel状态机是一种用来进行对象行为建模的工具,主要描述对象在它的生命周期内所经历的状态,以及如何响应来自外界的各种事件。比如订单的创建、已支付、发货、收获、取消等等状态、状态之间的控制、触发事件的监听,可以用该框架进行清晰的管理实现。使用状态机来管理对象生命流的好处更多体现在代码的可维护性、可测试性上,明确的状态条件、原子的响应动作、事件驱动迁移目标状态,对于流程复杂易变的业务场景能大大减轻维护和测试的难度。2基本概念2.1Squirrel状态机定义Squirrel状态机是一种有限状态机,有限状态机是指对象有一个明确并且复杂的生命流(一般而言三个以上状态),

Squirrel状态机-从原理探究到最佳实践

作者:京东物流郑朋辉1简介Squirrel状态机是一种用来进行对象行为建模的工具,主要描述对象在它的生命周期内所经历的状态,以及如何响应来自外界的各种事件。比如订单的创建、已支付、发货、收获、取消等等状态、状态之间的控制、触发事件的监听,可以用该框架进行清晰的管理实现。使用状态机来管理对象生命流的好处更多体现在代码的可维护性、可测试性上,明确的状态条件、原子的响应动作、事件驱动迁移目标状态,对于流程复杂易变的业务场景能大大减轻维护和测试的难度。2基本概念2.1Squirrel状态机定义Squirrel状态机是一种有限状态机,有限状态机是指对象有一个明确并且复杂的生命流(一般而言三个以上状态),

Angular SSR 探究

一般来说,普通的Angular应用是在浏览器中运行,在DOM中对页面进行渲染,并与用户进行交互。而AngularUniversal是在服务端进行渲染(Server-SideRendering,SSR),生成静态的应用程序网页,然后在客户端展示,好处是可以更快地进行渲染,在提供完整的交互之前就可以为用户提供内容展示。本文是在Angular14环境中完成,有些内容对于新的Angular版本可能并不适用,请参考Angular官方文档。使用SSR的好处对SEO更加友好虽然现在包括Google在内的某些搜索引擎和社交媒体声称已经能支持对由JavaScript(JS)驱动的SPA(Single-PageA