home
首页
login
登录
person_add
注册
home
首页
我
login
Sign in
person_add
Sign up
search
Posts
Comments
Accounts
Sort by: relevance
arrow_drop_down
Relevant
Newest
Oldest
xfyuan
2023年04月25日 01:19
领域驱动,必有勇夫
本文已获得原作者( Jorge Manrubia )和 37signals 授权许可进行翻译。原文描述了在领域驱动设计中,对于如何选择代码“遣词造句”的思考。 原文链接:Domain driven boldness 作者:Jorge Manrubia(Github、Twitter),居住于西班牙瓦伦西亚,目前工作于 37signals,诸多 Ruby、Rails 的 Gem/Library 的作者,比如:Active Record Encryption(已被纳入 Rails 7 成为默认特性)、mass_encryption、console1984、audits1984、ib_ruby_proxy、impersonator、turbolinks_render 等 站点:37signals 以创建了 Basecamp 和 HEY 而举世闻名,也撰写了很多商业和软件相关的书籍(Getting…
计算机天才
2023年04月07日 15:07
windows 系统DLL imagehlp.dll研究
主要是在用procmon研究一个软件的时候发现它加载了这个dll。 https://learn.microsoft.com/en-us/windows/win32/debug/image-help-library 这个dll大致的功能应该是方便快速操作pe文件的。 https://learn.microsoft.com/en-us/windows/win32/debug/imagehlp-functions dll函数表 https://github.com/search?q=imagehlp.dll+language%3AC%2B%2B&type=code&l=C%2B%2B 学习一下别人的代码,看看有啥用
duron600
2023年04月08日 02:48
TypeScript 笔记
TypeScript 项目文件结构 tsconfig.json { "compilerOptions": { "lib": ["es2015"], "module": "commonjs", "outDir": "dist", "sourceMap": true, "strict": true, "target": "es2015" }, "include": [ "src" ] } 放于项目根目录下。 include: TSC 在哪些文件夹中寻找 TypeScript 文件 lib: TSC 假定运行代码的环境中有哪些 API?(es2015, es2020, esnext 等等)编写在浏览器中运行的 TypeScript 需要加入 "dom" module: TSC 把代码编译成哪个模块系统(commonjs, amd 等等) outDir: 生成的 JavaScript 放置的目录 strict: TypeScript 严格模式(true, false) target: TSC 把代码编译成哪个 JavaScript 版本(es2015, es2020, esnext 等等) tsling.json { "defaultSeverity": "error…
写 bug 的大耳朵图图
2023年04月10日 09:28
IDEA高效使用指南
设置全局 JDK File -> New Projects Setup -> Structure... Maven 配置 Perferences -> Build,Execution,Deployment -> Build Tools -> Maven 自动导包/删除无用包 Perferences -> Editor -> General -> Auto Import 注释模板 Perferences -> Editor -> File and Code Templates class 注释模板示例 #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #parse("File Header.java") /** * @author: ${USER} * @date: ${DATE} ${TIME} * @description: */ public class ${NAME} { } 显示方法分割线 Perferences -> Editor -> General -> Appearance 代码自动补全 Perferences -> Editor -> General…
计算机天才
2023年04月10日 09:46
关于Hyper-V和Vmware配置网络的问题
// 不要加-b 127.0.0.1参数 python -m http.server 8000 https://www.jianshu.com/p/4f8efbd91292
沉冰浮水
2023年04月12日 08:09
所以就不是很懂 SEO
「SEO」 这个 TAG 下以前有没有发过文章甚至都不记得了,至少现在本篇是第一篇…… 我的 web 工具箱里有这个: LMSTFY - 让我帮你搜索一下 - 水水的演示站: https://demo.wdssmq.com/tools/LMSTFY/ 但是有时的有时,一些问题是没有明确答案的,比如: 「browser-sync的命令行参数能否排除多个路径?」 「在导入 json 文件时 eslint 报错:Parsing error: Unexpected token assert」 前者我实际看过源码发现并不支持,自己魔改了下用,哪天试下给官方…
steve lee
2023年04月13日 16:07
Azure App Service notes
Prerequisite: On the Azure dashboard, we must create a new app service and resource group that the app service belongs to. For simplicity, suppose our app is named beego-way and the resource group is named jedi-service_group. Firstly, we must set deployment user: az webapp deployment user set --user-name <username> --password <password> Get git clone url (or deployment url): az webapp deployment source config-local-git --name beego-way --resource-group jedi-service_group Add remote git url and deploy: git remote add azure <deployment_url> git push azure master Get…
计算机天才
2023年04月15日 10:31
存储器之Cache相关设计原理
缓存就是存储在芯片中的内存,只不过这部分区域成本高,速度快,因此和廉价的主存区别开了。 缓存中的数据结构决定了这部分缓存起什么作用。 下面图来自Wiki,我觉得不错(很多CPU内部图没有tlb缓存的位置) 主存(内存)有些书以内存块表示,有些书就以(虚拟)地址表示,当内存块为1字节的时候,两者就差不多了。 地址是64位的数(建立在现代CPU情况上),如何利用这个数索引缓存块是最关键的…
计算机天才
2023年04月18日 15:26
binary ninja如何安装和编写插件
binary ninja也是逆向的一员大将。 安装 第一种方式 一般这种情况下插件的存放地点都是github, git clone 仓库地址 第二种方式 第二种不知道咋用,没研究过 2023.4.19 第二种方法相当于包管理器,替你git clone一下,不过会因为网络问题出现错误。 https://docs.binary.ninja/guide/plugins.html 编写 建议直接改现成的项目中(如obfuscation_detection)的代码完成一些代码编写工作,之后在考虑单独搞成一个项目。 看上图,将test文件夹视为一个包。 binary ninja启动的…
razeos
2023年04月22日 05:54
如何启动一个 HTTP 服务器
如何在计算机上启动一个 HTTP 服务器? Python python -m SimpleHTTPServer 3323 python3 -m http.server 3323 Ruby ruby -rwebrick -e "WEBrick::HTTPServer.new(Port: 3323, DocumentRoot: Dir.pwd).start" PHP php -S localhost:3323 Node.js npm install -g serve serve -l 3323 npx serve -l 3323
razeos
2023年04月22日 05:56
创建可配置的 RubyGems
在 Ruby 开发中,有以下常见的配置模式: Papago.configure do |config| config.api_key = ENV['PAPAGO_API_KEY'] end papago 是一个简单的命令行翻译器。 从语法可以看出,Papago 的 #configure 方法接收一个代码块。 module Papago def self.configure yield configuration end def self.configuration end end 代码中 #configuration 需要返回一个可以用作数据容器的对象。 module Papago + class Configuration + end def self.configuration + @configuration ||= Configuration.new end end 其中,@configuration 作为模块的实例变量,#configuration 始终持有同一个 Configuration 实例。 最后,@configuration 需要…
razeos
2023年04月25日 08:39
整理一些有关自制编程语言的书籍/资料
最近想学习 Dart 语言,想用 Dart 实现一个简单的玩具语言。目前还没完成,也不知道能不能完成。之前买过许多「自制 XYZ」的书,也收藏了一些网络资料,在这里分享给一样对自制编程语言感兴趣的朋友。 一些书籍 两周自制脚本语言 自制编程语言 自制编译器 《自制编译器》作者「青木峰郎」也是《Ruby程序设计268技》作者之一。 这 3 本书我都买了,除了「两周」那本,另外两本都挺厚的,而且代码比较难懂。 入门首选 用Go语言自制解释器…
计算机天才
2023年04月27日 10:33
visual studio编译汇编源文件
以前那个方法太麻烦了。 今天学会一个新的 不勾选是没有masm这个选项的
计算机天才
2023年04月28日 13:33
C++ 模板参数推导相关问题
写项目的时候遇到相关问题, 上面注释的代码是编译不了的。 函数原型 WINBASEAPI HANDLE WINAPI CreateFileA( _In_ LPCSTR lpFileName, _In_ DWORD dwDesiredAccess, _In_ DWORD dwShareMode, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _In_ DWORD dwCreationDisposition, _In_ DWORD dwFlagsAndAttributes, _In_opt_ HANDLE hTemplateFile ); 如果不加类型强制转换的话,也就是注释的代码 自动推导的类型如下 void * __ptr64 char [9] unsigned long int int int int int 很显然与函数原型不匹配。 下面是正确的推导。 void * __ptr64 char [9] unsigned long unsigned long struct _SECURITY_ATTRIBUTES * __ptr64 unsigned long unsigned…
电子芥末
2023年04月29日 01:27
在 Windows 中配置 nvim 的 Go 语言环境
去年我试用了 Helix 编辑器, 感觉很好, 写了一篇介绍文章 https://geeknote.net/SuperMild/posts/976 但 Helix 没有 GUI 程序, 必须在终端里使用, 我主要是在 Windows 里使用, 遇到了快捷键冲突, 显示不正常等一些问题, 不得不弃用了. 因此, 我重新看向 vim, 抽空试用了 neovim, 这个有 GUI 程序, 试用起来感觉还不错. 我暂时只配置了 Go 语言环境, 下面详细讲解配置方法, 本文注重可操作性, 每一个细节都讲到了, 确保你可以必然一定绝对安装…
Rei
2023年05月04日 15:15
用 CSS 控制页面内容对部分用户可见
问题 写 Web 应用的时候,经常需要写这样的 HTML 片段: <div class="post"> ... <% if current_user == post.author || current_user.admin? %> <a href="/posts/1/edit">edit</a> <% end %> </div> 其中 edit 这个链接只显示给作者或者管理员。但如果加入用户相关的逻辑,这个片段就无法缓存了。 除了写客户端 js 修改内容外,有没有简单的方法控制内容对部分内容可见呢? 解决方法 我在分析 hey.com 页面的时候发现一种…
Renny
2023年05月05日 10:04
在 Rails 中使用 SSE 来实现一个 ChatGPT 应用
英文原文:https://renny.ren/ch/articles/40 前言 在使用 ChatGPT 的时候,你会注意到这个回复不是一次性生成完的,而是边生成边返回,像打字一样的效果: 那么这是如何实现的呢,这篇来研究一下相关的技术细节。 其实这种效果叫 streaming response (流式传输的回复),很形象。 提到 streaming response 就不得不提到 SSE 关于 SSE 如果你看一下 OenAI API 文档,就会发现有一个参数叫 stream If set, partial message deltas will be sent, like in ChatGPT. Tokens will be…
写 bug 的大耳朵图图
2023年05月05日 15:26
Centos使用Tomcat安装Jenkins
安装步骤 安装JDK1.8 yum makecache yum install -y java-1.8.0-openjdk.x86_64 安装tomcat # 下载tomcat9.0 wget https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-9/v9.0.36/bin/apache-tomcat-9.0.36.tar.gz && tar -xvf apache-tomcat-9.0.36.tar.gz # 删除webapps下面的项目 cd apache-tomcat-9.0.36/webapps/ && rm -rf * # 下载jenkins.war并重命名为ROOT.war wget https://mirrors.huaweicloud.com/jenkins/war/2.240/jenkins.war -O ROOT.war 修改Tomcat启动脚本,支持Jenkins跨域…
计算机天才
2023年05月16日 09:05
RetDec框架之bin2llvmir工具的使用
python .\retdec-decompiler.py <binary_path> 测试代码 #include<iostream> #include<windows.h> #include<intrin.h> using namespace std; int dummy_1 = 1; int dummy_2 = 2; int res = 0; int cpuid[4]; int main() { res = IsDebuggerPresent(); printf("%d\n", res); res = dummy_1 + dummy_2; printf("%d\n", res); res = dummy_1 - dummy_2; printf("%d\n", res); res = dummy_1 * dummy_2; printf("%d\n", res); res = dummy_1 / dummy_2; printf("%d\n", res); res = dummy_1 << 1…
steve lee
2023年05月15日 15:09
Rails helpers tips for writing better view
1. DOM id convention with dom_id The dom_id helper takes a string or any object as an argument that can be converted to a dom_id. And it helps us convert an object into a unique id like this: post = Post.find(10) dom_id(post) # => "post_10" dom_id(post, new_comment) # => "new_comment_post_10" dom_id helper is introduced a long time and is become more valuable when working with Hotwire concept like Turbo Frame or Turbo Stream. Turbo Frames and the dom_id helper Because turbo_frame_tag uses…
查看更多