Kerwen Blog

Stay Hungry Stay Foolish

c++里int和long的区别

在C语言和C++中,int 和 long 的大小是由编译器和操作系统的组合决定的,而不是直接取决于操作系统的位数。 在通常的情况下,int 表示整数,而 long 表示较大的整数。在32位系统上,int 通常是32位,而 long 通常也是32位。在64位系统上,int 通常是32位,而 long 通常是64位。 不同编译编译模型所占的位数 Datetyp...

读书笔记-被讨厌的勇气

如果一味地关注过去的原因,企图仅仅靠原因去解释事物,那就会陷入“决定论”。也就是说,最终会得出这样的结论:我们的现在甚至末来全部都由过去的事情所决定,而且根本无法改变 决定我们自身的不是过去的经历,而是我们自己赋予经历的意义 无论过去发生了什么样的事情,现在的状态取决于你赋予既有事件的意义 我们既不能乘坐时光机器回到过去,也不能让时针倒转。但是,赋...

node-gyp 指定C++ standard

最近给产品升级Nodejs版本,从Node 18升级到Node22,升级完之后发现Addon project编译不过去了,编译的时候会报很多语法错误,很多是跟C++的隐式转换有关。比如以下代码 1 const LPSTR testStr = "Server-Group"; 在老版本Node18的时候不会报错,但Node环境切到22,就会有error报出来,而且是静态error。...

怎么检查exe是否enable了SAFESEH

克隆这个repo PESecurity 开一个powershell窗口,导入该模块 1 Import-Module .\Get-PESecurity.psm1 在Powershell里调用该模块检查文件PE属性 1 2 Get-PESecurity -file C:\Windows\System32\kernel32....

JavaScript socket编程

Socket编程是一种网络通信的编程范式,它允许程序通过网络发送和接收数据。在Web开发中,尤其是在JavaScript中,Socket编程通常指的是使用WebSocket协议进行实时通信。WebSocket提供了一种在单个TCP连接上进行全双工通信的方式,使得客户端和服务器之间可以实时交换数据。 在JavaScript中,通过HTML5引入的WebSocket API,开发者可以轻松地...

JavaScript 大数值的比较

最近使用JavaScript的时候遇到一个奇怪的现象。UI上一个输入数值的控件给定了一个超大的范围,从0 到3.40282347E+38即340282000000000000000000000000000000000。测试在最大最小值时,输入了340282000000000000000000000000000000001,即最大值+1,结果没有报错。 调查发现这跟JavaScript本身的...

pnpm 关掉 syslink

相比于npm,pnpm 能显著提高包的下载速度。但如果查看node module文件夹,会发现很多module文件夹都带了link图标。这是因为pnpm使用了syslink,不管你有多少个project使用了这个module,pnpm只下载一份,然后用syslink将其连接到所需要的project中。 可以使用命令pnpm store path来查看pnpm的缓存文件夹。 使用以下命令来...

Node SEA

官方文档 官方的文档直接机翻成汉语不像人话,尝试以自己理解的方式翻译了一下。 生成单执行程序 Node.js 支持创建单个可执行应用程序,方法是注入由 Node.js 准备的 blob,其中可以包含捆绑脚本, 将js文件转为二进制文件。在启动过程中,程序会检查是否有任何内容注入。如果找到 blob,它将执行 blob 中的脚本。否则 Node.js 像往常一样运行。 blob 关于什么是...

Restify

REST REST是REpresentational State Transfer(表述性状态转移)的缩写。 Restify restify 是一个 NodeJS 模块,可以让你创建正确的 REST Web Services。它借鉴了很多 express 的设计,restify比起express更专注于REST服务,去掉了express中的template, render等功能,同时强化了...

Fitness

健身计划 无分化 第一次 第二次 第三次 深蹲 2组10次 剪蹲 4组20次 深蹲 2组10次 罗马尼亚硬拉 2组10次 俯卧撑 2组10次 罗马尼亚硬拉 2组10次 杠铃卧推 2...