SICP:元循环求值器(Python实现)

元语言抽象就是建立新的语言。它在工程设计的所有分支中都扮演着重要的角色,在计算机程序设计领域更是特别重要。因为这个领域中,我们不仅可以设计新的语言,还可以通过构造求值器的方式实现这些语言。对某个程序设计语言的求值器(或者解释器)也是一个过程,在应用于这个语言的一个表达式时,它能够执行求值这个表达式所要求的动作。接下来我们将要讨论如何关于在一些语言的基础上构造新的语言。在这篇博客里,我们将用Pyth

驱动开发:内核监控进程与线程回调

在前面的文章中`LyShark`一直在重复的实现对系统底层模块的枚举,今天我们将展开一个新的话题,内核监控,我们以`监控进程线程`创建为例,在`Win10`系统中监控进程与线程可以使用微软提供给我们的两个新函数来实现,此类函数的原理是创建一个回调事件,当有进程或线程被创建或者注销时,系统会通过回调机制将该进程相关信息优先返回给我们自己的函数待处理结束后再转向系统层。

驱动开发:基于事件同步的反向通信

在之前的文章中`LyShark`一直都在教大家如何让驱动程序与应用层进行`正向通信`,而在某些时候我们不仅仅只需要正向通信,也需要反向通信,例如杀毒软件如果驱动程序拦截到恶意操作则必须将这个请求动态的转发到应用层以此来通知用户,而这种通信方式的实现有多种,通常可以使用创建Socket套接字的方式实现,亦或者使用本章所介绍的通过`事件同步`的方法实现反向通信。

2.0 熟悉CheatEngine修改器

Cheat Engine 一般简称为CE,它是一款功能强大的开源内存修改工具,其主要功能包括、内存扫描、十六进制编辑器、动态调试功能于一体,且该工具自身附带了脚本工具,可以用它很方便的生成自己的脚本窗体,CE工具可以帮助用户修改游戏或者软件中的内存数据,以获得一些其他的功能,CE可以说是目前最优秀的进程内存修改器,但需要注意的是,它的使用可能会涉及到非法或者违反游戏规则的行为,建议读者在使用 `C

5.0 Python 定义并使用函数

函数是python程序中的基本模块化单位,它是一段可重用的代码,可以被多次调用执行。函数接受一些输入参数,并且在执行时可能会产生一些输出结果。函数定义了一个功能的封装,使得代码能够模块化和组织结构化,更容易理解和维护。在python中,函数可以返回一个值或者不返回任何值,而且函数的参数可以是任何python对象,包括数字、字符串、列表、元组等。python内置了许多函数,同时也支持用户自定义函数。

5.14 汇编语言:仿写Switch选择结构

选择结构,也称为switch语句,是计算机编程中的一种控制结构,用于根据表达式的值选择不同的执行路径。它允许程序根据表达式的值来决定执行哪个代码块,从而实现多分支选择逻辑。switch语句由一个表达式、多个case标签以及对应的代码块组成。程序会将表达式的值与每个case标签进行匹配,一旦找到匹配的case标签,程序将执行对应的代码块,并继续执行该代码块之后的代码,直到遇到break语句或者swi

携程Java三面面经,已拿 offer!!

分享一位读者投稿的携程校招 Java 岗位的面经。 下面是正文。 个人背景:双非本,机械专业转码。 携程在正式面试之前,会有一个性格测试(40分钟)。性格测试之后,大概过一周进行笔试。笔试之后,会邮件通知是否通过并预约第一轮面试时间。 普通 offer 一般只有两面,如果是 sp 或者 ssp 的话

24个写出漂亮代码的小技巧

这篇文章我会总结一些实用的有助于提高代码质量的建议,内容较多,建议收藏! 内容概览: 提取通用处理逻辑 注解、反射和动态代理是 Java 语言中的利器,使用得当的话,可以大大简化代码编写,并提高代码的可读性、可维护性和可扩展性。 我们可以利用 注解 + 反射 和 注解+动态代理 来提取类、类属性或者

文盘Rust -- 把程序作为守护进程启动

当我们写完一个服务端程序,需要上线部署的时候,或多或少都会和操作系统的守护进程打交道,毕竟谁也不希望shell关闭既停服。今天我们就来聊聊这个事儿。 最早大家部署应用的通常操作是 “nohup xxxx &”,别说像weblogic 或者其他java 容器有启动脚本,里面其实也差不多;很喜欢 ngi

前端精准测试实践

作者:京东云质量部 背景 随着前端技术发展,已经转变为数据绑定为主流的框架方式,与后端服务一样,前端代码实现也会涉及相互依赖,引用这些场景,那么应该如何准确的评估前端代码改动的影响范围?依赖开发评估?依靠经验评估?或者直接前端自动化全回归?手工测试全回归?显然以上的策略都不是最优策略,本文叙述了通过

基于ClickHouse解决活动海量数据问题

魔笛活动平台要记录每个活动的用户行为数据,帮助客服、运营、产品、研发等快速处理客诉、解决线上问题并进行相关数据分析和报警。可以预见到需要存储和分析海量数据,预估至少几十亿甚至上百亿的数据量,所以需要选择一款能存储海量数据的数据库。由于是通过接收MQ存储或者API方式存储,所以对实时写入性能也有一定要求

《最新出炉》系列初窥篇-Python+Playwright自动化测试-20-处理鼠标拖拽-下篇

1.简介 上一篇中,宏哥说的宏哥在最后提到网站的反爬虫机制,那么宏哥在自己本地做一个网页,没有那个反爬虫的机制,谷歌浏览器是不是就可以验证成功了,宏哥就想验证一下自己想法,其次有人私信宏哥说是有那种类似拼图的验证码如何处理。于是写了这一篇文章,另外也是相对前边做一个简单的总结分享给小伙伴们或者童鞋们

【开源】给ChatGLM写个,Java对接的SDK

作者:小傅哥 - 百度搜 小傅哥bugstack 博客:bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获!😄 大家好,我是技术UP主小傅哥。 清华大学计算机系的超大规模训练模型 ChatGLM-130B 使用效果非常牛,所以我也想把这样的Ai能力接入到自己的应用中或者做一些 In

《最新出炉》系列初窥篇-Python+Playwright自动化测试-19-处理鼠标拖拽-中篇

1.简介 上一篇中,主要是介绍了拖拽的各种方法的理论知识以及实践,今天宏哥讲解和分享一下划取字段操作。例如:需要在一堆log字符中随机划取一段文字,然后右键选择摘取功能。 2.划取字段操作 划取字段操作就是在一段文字中随机选中一段文字,或者在标记文字。当然了,这个在一些网站的登录也需要滑块验证等。

Linux 中如何安全地抹去磁盘数据?

哈喽大家好,我是咸鱼 离过职的小伙伴都知道,离职的时候需要上交公司电脑,但是电脑里面有许多我们的个人信息(聊天记录、浏览记录等等) 所以我们就需要先把这些信息都删除,确保无法恢复之后才上交 即有些情况下我们不得不以一种确保无法恢复的方式从磁盘上擦除所有信息 许多小伙伴可能认为使用文件管理器或者 rm

服务链路追踪 —— SpringCloud Sleuth

Sleuth 简介 随着业务的发展,系统规模变得越来越大,微服务拆分越来越细,各微服务间的调用关系也越来越复杂。客户端请求在后端系统中会经过多个不同的微服务调用来协同产生最后的请求结果,几平每一个请求都会形成一个复杂的分布式服务调用链路,在每条链路中任何一个依赖服务出现延迟超时或者错误都有可能引起整

会员权益-新功能发布:定时发布博文

园子的会员权益以产品增值功能为主,由于开发人手太少,目前会员权益很少,我们正在努力开发。 今天发布的新功能是定时发布博文,可以在预先指定的时间自动发布博文。 以下是这个功能的简单介绍: 1)当在博客后台新建随笔或者编辑草稿时,会在保存/发布按钮栏显示“定时发布”按钮: 2)点击按钮会显示设置定时发布

我如何使用工具学习网络技术?

在学习中使用哪些工具 “工欲善其事必先利其器。”在网络技术的学习过程中,往往需要使用一些工具,来辅助我们学习,以此将抽象的技术通过具体的方式来表现出来,便于加深网络理论的印象。 今天,我将列举我在学习过程中使用过的工具。以网络仿真工具为例,建议初学者选择一个厂商的软件作为主用软件(如eNSP或者HC

聊聊 QianKun JS 沙箱的那些事

我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。 本文作者:空山 什么是沙箱 沙箱即 SandBox,它是一种安全机制,用于严格控制访问资源。通过在程序中创建一个独立的运行环境,把一些来源不可信、具有破坏力或者又是无法

在基于vue-next-admin的Vue3+TypeScript前端项目中,为了使用方便全局挂载对象接口

在基于vue-next-admin 的 Vue3+TypeScript 前端项目中,可以整合自己的 .NET 后端,前端操作一些功能的时候,为了使用方便全局挂载的对象接口,以便能够快速处理一些特殊的操作,如消息提示、辅助函数、正则测试等等。本篇随笔介绍在Vue3+TypeScript 前端项目中全局挂载对象$u,获得相关 $u_interface 的统一入口的接口信息。这样在组件或者页面中就可以方