- 博客(70)
- 收藏
- 关注
原创 人工智能与神经元的内容梳理(持续更新)
在过去的几年中,深度学习模型已应用于不同领域的各种任务/应用。随着深度学习在不同领域的成熟和数量的增加,我决定整理相关资料来进行学习。
2023-05-03 00:04:07
1921
1
原创 【用JS自制表格软件玩数据】10. 为表格脚本设计一个语法解析器
在EXCEL表格中,有个标配的VBA脚本语言,近年,也有人开始将 Python 也植入里面。在该自制的脚本语言中,目标是办公自动化。语法特性是尽量贴近 其他开发语言的使用习惯。但更倾向于简单易用为主。不排除后面进行简化。本章为脚本解析器,为下一章的虚拟机指令集与CPU,内存等虚拟硬件做铺垫。
2023-01-11 23:38:37
469
翻译 使用 HTML 5 Canvas 和 Raycasting 创建伪 3D 游戏
随着最近浏览器性能的提高,除了像 Tic-Tac-Toe 这样的简单游戏之外,用 JavaScript 实现游戏变得更加容易。我们不再需要使用 Flash 来制作炫酷的效果,而且随着 HTML5 Canvas 元素的出现,创建外观漂亮的网页游戏和动态图形比以往任何时候都更容易。一段时间以来,我想实现的一款游戏或游戏引擎是一种伪 3D 引擎,例如 iD Software 在旧的德军总部 3D 游戏中使用的引擎。
2022-11-14 14:17:03
1772
5
原创 爬虫与反爬虫系统的设计思路与策略
网站运维人员在对日志进行分析时有时会发现同一时间段内某一个或某几个IP访问量特别大,由于爬虫是通过程序来自动化爬取页面信息的,因此其单位时间的请求量较大,且相邻请求时间间隔较为固定,这时就基本可以判断此类行为系爬虫所为,此时即可在服务器上对异常IP进行封锁。Cookie反爬虫指的是服务器通过校验请求头中的Cookie值来区分正常用户和爬虫程序的手段,服务器对每一个访问网页的人都会给其一个Cookie,有的扫描爬虫单纯为了爬取链接,并不会对Cookie进行处理和响应。
2022-11-14 14:02:49
680
原创 数学科学的完整课程大纲(工科自学必看)
为了能够系统性学习数学理论打好更扎实的基础,我特地网上搜索,整理了一份数学科学大纲。按照这份材料去学习,基本上能够满足理论上的需求。
2022-11-14 13:29:45
4980
原创 MYSQL 数据库各类属性说明 (持续更新)
通俗来说,数据库是一个更大型的**EXCEL**表格,可以多人同时地进行访问、更改数据。在数据量很大(0~300G)的时候,**数据库**的性能将会非常地好。
2022-11-13 01:07:30
2421
原创 【用JS自制表格软件玩数据】9. 自制三维 K线图 蜡烛图
平时做Excel表格,都少不了要画图表之类的。所以,本作品的图表功能也必不可少。为了与时俱进,我就打算做个3D版的K线图,让股民能够360度全方位了解那些行情。
2022-02-13 16:45:29
2436
原创 【用JS自制表格软件玩数据】7. 设计常用的样式功能与单元格合并
目前,我们的表格软件的基础结构已经开发得差不多了。现在开始要设计一些字体修改,加粗,变斜,合并单元格等功能。具体功能就放在顶部的工具栏中。
2022-01-24 12:49:58
840
原创 【用JS自制表格软件玩数据】6. 单元格的多选
在Excel 表格中,一般我们会出一片区域来批量修改数据。现在要来实现这个过程。如图所示:框选从 B2 开始,至 E8 结束。
2022-01-23 23:58:03
1157
原创 【用JS自制表格软件玩数据】5. 渲染出整个Excel单元格
经过前面几节内容的准备工作之后,终于到了要渲染表格的环节。渲染表格的模块,继承自渲染器。
2022-01-22 13:11:11
1256
原创 【用JS自制表格软件玩数据】4. 行列计数器的实现
前面已经设计了一个底层渲染类,现在准备在这个底层类的基础上,构建一个渲染单元格的模块。通常在 Excel 表格中,我们会看到横向的标尺使用了:A,B,C,D之类的字母作为标记。
2022-01-20 16:40:32
1134
原创 【用JS自制表格软件玩数据】3. 从零构建实时渲染器
现在需要开始做一个核心功能就是把读取到的excel 文件里的内容渲染到页面中来。在渲染方面,我们已知的就有比较知名的 Angular, React, Vue 等等框架,但是由于这里将会有很多定制化的功能要做,加载第三方框架的话,就需要安装大量的第三方辅助包,会使得整个项目更加复杂和臃肿。还有一个更关键的原因是,第三方框架的版本更新迭代,会影响到项目的复杂度。综上考虑,促使我要自己实现这个渲染器
2022-01-18 23:28:53
725
原创 【用JS自制表格软件玩数据】2.读取 xls 文件
SpreadsheetML或.xlsx文件是一个zip文件(一个包(package)),其中包含许多“组件”(通常是UTF-8或UTF-16编码)或XML文件。这个包可能包含图片等其他媒体文件。这个结构根据OOXML标准ECMA-376第2部分中概述的开放包装约定(Open Packaging Conventions)进行组织。 你可以通过简单地解压缩.xlsx文件来查看文件结构和组成SpreadsheetML文件的文件。
2022-01-15 00:58:17
1618
1
原创 【用JS自制表格软件玩数据】1.页面布局
Grid 布局即网格布局,是一种新的 CSS 布局模型,比较擅长将一个页面划分为几个主要区域,以及定义这些区域的大小、位置、层次等关系。号称是最强大的的 CSS 布局方案,是目前唯一一种 CSS 二维布局。
2022-01-13 11:12:25
672
原创 SWIFT电文学习笔记
SWIFT电文学习笔记报文类型用户报文系统报文(System Message)服务报文(Service Message)错误码(Error Code)SWIFT电文结构(1)报头Header Block(2)正文Text Block(3)报尾Tail Block报文收发示例电文格式分类报文功能解释Swift MT707Swift MT760(信汇760)SWIFT MT799/RWASWIFT MT798SWIFT MT999SWIFT 编码格式SWIFT字符表示方式SWIFT BIC是否启用SWIFT M
2022-01-12 18:40:03
12002
2
转载 node 多进程学习
NodeJs是一个单进程的语言,不能像Java那样可以创建多线程来并发执行。当然在大部分情况下,NodeJs是不需要并发执行的,因为它是事件驱动性永不阻塞。但单进程也有个问题就是不能充分利用CPU的多核机制,根据前人的经验,可以通过创建多个进程来充分利用CPU多核,并且Node通过了child_process模块来创建完成多进程的操作。...
2022-01-12 00:29:49
685
原创 【数字人民币】DCEP接入参考文档1-运作模式介绍
所谓的双层运营体系,上层是央行对商业银行,下层是商业银行对公众。央行按照100%准备金制将央行数字货币兑换给商业银行,再由商业银行或商业机构将数字货币兑换给公众。
2022-01-11 23:36:00
13190
翻译 用于游戏开发和其他目的的光线投射教程
Rust 编译工具https://www.rust-lang.org/zh-CN/tools/installRust 的编译工具依赖 C 语言的编译工具,这意味着你的电脑上至少已经存在一个 C 语言的编译环境。如果你使用的是 Linux系统,往往已经具备了 GCC 或 clang。如果你使用的是 macOS,需要安装 Xcode。如果你是用的是 Windows操作系统,你需要安装 Visual Studio 2013 或以上的环境(需要 C/C++ 支持)以使用 MSVC 或安装 MinGW +
2021-09-05 02:16:46
1516
翻译 构建一个JPEG解码器(4):帧和比特流
帧和比特流霍夫曼算法JPEG DHT 段下一次:读取比特流在上一部分中,我提到大多数 JPEG 文件在图像压缩之上采用了一种编码技术,试图从图像中去除任何冗余信息的痕迹。最常见的 JPEG 编码使用的技术是对数据压缩世界中常见的一种技术的改编,称为霍夫曼编码,因此详细探索霍夫曼解码器的结构和实现很有用。因为霍夫曼编码是 JPEG 编码器在保存图像文件时执行的最后一件事,所以它需要我们的解码器做的第一件事。这可以通过两种方式实现:重构:将完整图像扫描从其 Huffman 编码状态解码为临时占位符,并对
2021-08-20 01:32:41
569
翻译 Game boy模拟器(10):计时器
计时器定时器结构实现定时器仿真源码Timer.js:时钟增量播种伪随机数生成器Tetris.asm:选择新块自从第一台计算机组装在一起以来,它们的一个基本功能就是计时:根据计时器协调动作。即使是最简单的游戏也有时间元素:例如,Pong 需要以特定的速度在屏幕上移动球。为了处理这些时间问题,每个游戏机都有某种形式的计时器,以允许事情在给定的时刻或以特定的速率发生。GameBoy 也不例外,它包含一组根据可编程计划自动递增的寄存器。在本系列的这一部分中,我将研究计时器的结构和操作,以及如何使用它来播种伪随机
2021-08-18 02:06:30
643
翻译 Game boy模拟器(9):内存池
内存池内存池与延展MBCs and the cartridge headerMBC1的实现接下来到目前为止,在本系列中,我们一直在处理GameBoy的简单内存映射的加载和仿真,整个游戏 ROM 都适合内存的下半部分。完全适合内存的游戏并不多(俄罗斯方块是少数游戏之一);大多数游戏都比这大,并且必须采用独立机制将游戏 ROM 的“银行”交换到 GameBoy CPU 的视图中。GameBoy 库中的一些第一批游戏是在卡带内使用内存库控制器构建的,它完成了将 ROM 库交换到视图中的工作;一直以来,各种版本
2021-08-18 01:29:13
406
翻译 Game boy模拟器(8):中断
中断中断和中断处理程序中断的硬件实现CPU中断处理流程图GameBoy 中的中断实现:中断标志实现:中断处理下一次:更大的游戏在上一部分中,通过引入精灵,为模拟游戏奠定了基础。但是,仿真器缺少一个方面:垂直消隐中断。这部分会从整体上介绍中断,特别是实现消隐中断;完成此操作后,模拟器将运行俄罗斯方块。想象一下,您有一台带有网卡的计算机,以及一些处理来自网络的数据的软件。从计算机的角度来看,数据只是每隔一段时间就会进来,因此您需要某种方式让软件知道新数据已经到达。有两种方法可以实现:轮询:软件每隔一段时间
2021-08-17 01:10:21
454
翻译 Game boy模拟器(7):精灵
精灵简介:GameBoy 精灵精灵优先级精灵渲染的伪代码精灵数据:对象属性内存精灵的 OAM 数据MMU.js:OAM访问GPU.js: 精灵结构精灵调色板GPU.js:精灵调色板处理渲染精灵GPU.js:使用精灵渲染扫描线接下来在本系列之前,模拟器已扩展为启用键盘输入,这意味着可以玩井字游戏。这样做留下的问题是游戏必须盲目进行:没有指示下一步将在何处进行,也没有按键将您移动到游戏中的哪个位置。传统上,二维游戏机通过使用精灵解决了这个问题:可移动对象块可以独立于背景放置,并且包含与背景分开的数据。Gam
2021-08-15 23:37:52
430
原创 代码调试工具GDB
代码调试工具GDB入门什么是调试?关于GDB配套的工具什么是调试?让代码一步一步慢慢执行,跟踪程序的运行过程。比如,可以让程序停在某个地方,查看当前所有变量的值,或者内存中的数据;也可以让程序一次只执行一条或者几条语句,看看程序到底执行了哪些代码。在调试的过程中,我们可以监控程序的每一个细节,包括变量的值、函数的调用过程、内存中数据、寄存器、线程的调度等,从而发现隐藏的错误或者低效的代码。关于GDBGDB 属于 Linux 下使用最多的一款调试工具,因为比较通用,所以我们来学习如何使用他。配
2021-08-14 14:43:27
230
3
翻译 Game boy模拟器(6):输入
这里写自定义目录标题键盘键盘的实现按键动作通过在前五个部分开发的工作仿真器和界面,仿真系统能够运行基本的测试 ROM,并生成图形输出。模拟器目前无法做的是将按键作为键盘输入,并将它们馈送到被测 ROM;为此,必须模拟键盘对 I/O 寄存器的影响。键盘GameBoy 有一个单一的输入方法,一个八键小键盘,可以按下任意数量的键。对于大多数键盘,按键排列在列和行的网格中:这些可以被视为导线,键之间可以形成连接。当其中一列被激活时,连接到该列的任何行也将被激活,并且硬件能够检测活动行以确定当前按下的键。在
2021-08-12 01:41:55
342
翻译 Game boy模拟器(5):集成
集成GPU寄存器实现:GPU 寄存器零页 I/O:GPU寄存器处理运行中的每帧index.html:模拟器界面jsGB.js:重置和调度测试在第 4 部分中,详细探讨了 GameBoy 的图形子系统,并将仿真放在一起。没有一套GPU的寄存器映射在软件中处理,图形子系统不能被仿真器使用;一旦这些寄存器可用,仿真器基本上就可以进行基本使用了。GPU寄存器GameBoy 的图形单元在内存映射的 I/O 空间中有一系列映射到内存中的寄存器。为了获得具有背景图像的工作仿真,GPU 将需要以下寄存器(其他寄存
2021-08-08 22:20:17
495
翻译 Game boy模拟器(4):图形
图形概述将 GameBoy 模拟器的形状放在一起,并在 CPU 和图形处理器之间建立了时序。画布已被初始化并准备好由模拟的 GameBoy 绘制图形;GPU 仿真现在具有结构,但仍无法将图形渲染到帧缓冲区。为了让仿真渲染图形,必须简要检查 GameBoy 图形背后的概念。概述就像那个时代的大多数游戏机一样,GameBoy 没有足够的内存来允许将直接帧缓冲区保存在内存中。...
2021-08-07 00:58:14
670
翻译 Game boy模拟器(3):GPU的时序
这里写自定义目录标题模拟屏幕光栅图形GPU 帧时序在本系列的前几部分中,已经布置了 GameBoy 模拟器的结构,并达到了可以加载游戏 ROM 的程度,并由模拟的 CPU 逐步完成。通过将仿真处理器连接到内存映射结构,现在可以将外围设备连接到系统。GameBoy 和任何游戏控制台使用的主要外围设备之一是图形处理器 (GPU):它是控制台的主要输出方法,处理器的大部分工作都在为 GPU 生成图形。模拟屏幕任天堂对 GameBoy 的内部名称是“点阵游戏”;它的显示器是尺寸为 160x144 的像素
2021-08-03 02:00:24
671
转载 Game boy模拟器(2):运行内存
内存记忆体详细地查看内存区域[0000-3FFF] 卡带程序[0000-00FF] BIOS[0100-014F] 卡带头部[4000-7FFF] 卡带程序(其他)[8000-9FFF] 显存[A000-BFFF] 卡带(拓展)RAM[C000-DFFF] 运行内存RAM[E000-FDFF] 运行内存RAM(映射)[FE00-FE9F] 图形:角色信息[FF00-FF7F] 内存 I/O 映射[FF80-FFFF] 零页 RAM与 CPU 的接口加载 ROM下一步在本系列的前一部分中,计算机被介绍为一
2021-08-03 01:31:17
978
翻译 Game boy模拟器(1):CPU
CPU模型内部状态值操作模拟内存接口调度和重置重置调度本文通过为模拟物理机的每个部分奠定基础,着手实现 GameBoy 模拟的基础。起点是CPU。模型计算机的传统模型是一个处理单元,由指令程序告诉它该做什么;程序可能会使用自己的特殊内存进行访问,也可能与普通内存位于同一区域,具体取决于计算机。每条指令都需要很短的时间来运行,并且它们都被一条一条地运行。从 CPU 的角度来看,计算机一打开就会启动一个循环,从内存中获取一条指令,计算出它所说的内容并执行它。为了跟踪 CPU 在程序中的位置,CPU
2021-07-31 01:38:35
963
转载 Game boy模拟器:完整的 Z80 内核CPU源码
/** * jsGB: Z80 core * Imran Nazar, May 2009 * Notes: This is a GameBoy Z80, not a Z80. There are differences. * Bugs: If PC wraps at the top of memory, this will not be caught until the end of an instruction */Z80 = { _r: { a:0, b:0, c:0, d:0
2021-07-31 00:52:38
1053
翻译 构建一个JPEG解码器(3):霍夫曼表
霍夫曼表简述重构即时霍夫曼算法JPEG DHT 段源代码jpeg.hjpeg.cppinttypes.hmain.cppMakefile接下来:读取比特流简述在上一部分中,我提到大多数 JPEG 文件在图像压缩之上采用了一种编码技术,试图从图像中去除任何冗余信息的痕迹。最常见的 JPEG 编码所使用的技术是对数据压缩世界中常见的一种技术的改编,称为霍夫曼编码,因此详细探索霍夫曼解码器的结构和实现是很有用的。因为霍夫曼编码是 JPEG 编码器在保存图像文件时执行的最后一件事,所以它需要我们的解码器做的第
2021-07-31 00:39:51
1633
翻译 构建一个JPEG解码器(2):文件结构
文件结构JPEG 图像的类型文件段实现:列出 JPEG 文件中的段源码:inttypes.h源码:jpeg.h源码:jpeg.cppJPEG 段列表的输出最后:检查扫描的编码在上一部分中,我们简要研究了 JPEG 用于压缩图像的技术。在检查这些技术的详细实现之前,查看 JPEG 文件的整体结构很有用,原因有二:编码器使用的一些过程使用值表,这些值表与图像信息本身一起存储,因此在需要它们之前将它们检索到内存中是明智的。我们还需要在某个地方放置图像解压缩算法的实现,并且有一个框架可以很好地处理这一点。
2021-07-27 00:24:35
367
原创 【网络安全】1.信息搜集
信息采集whois子域名获取方式搜索引擎网站源码文件DNS爆破法用平台工具查端口探测首先获得真实IP全球ping目标站查找全球的历史解析信息Nmap基本查询语句更多查询扫描后目录扫描指纹识别旁站查询c段查询内容敏感信息泄露whois查找域名的基础信息:https://www.whois.com/子域名获取方式搜索引擎通过搜索引擎搜索主域名,得到子域名的列表。网站源码文件通过资源引用的链接获取DNS爆破法可以使用工具:Layer子域名挖掘机用平台工具查搜索引擎输入:int
2021-07-08 16:13:38
568
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人