avatar
busylog
Use as few drive letters as possible in Windows?
mountvol /N mountvol /R # diskpart: automount disable # diskpart: automount scrub # diskpart: SAN POLICY=OfflineAll Get-Partition|where-object {$_.DiskNumber -gt 0}|%{ write-host ('mkdir "c:\mount\Volume{0}"' -f $_.guid); write-host ('mountvol "c:\mount\Volume{0}" "\\?\Volume{1}"' -f $_.guid,$_.guid); }
avatar
helloreader
rails jsbundling-rails 报错 想问下
<%= javascript_importmap_tags 'application' %> <%= stylesheet_link_tag "application_tailwindcss", "data-turbo-track": "reload" %> <%= stylesheet_link_tag "application_sass", "data-turbo-track": "reload" %> <%= javascript_include_tag "application_esbuild", "data-turbo-track": "reload", type: "module" %> 我想importmap和jsbundling-rails同时工作,我思考下将jsbundling-rails生成的package.json进行修改,并在app/javascript/src下创建了一个application_esbuild.js "build": "esbuild app/javascript/src/*.* --bundle --sourcemap --format=esm --outdir=app/assets/builds --public-path=/assets" rails s 显示 不知道哪里路径出了…
avatar
写 bug 的大耳朵图图
Jacocoagent 改造-服务端覆盖率数据上报
背景 代码覆盖率服务已经上线一段时间了,用户也反馈了不少问题,大家反馈比较集中的问题就是: 测试忘记在服务器重启前生成覆盖率报告了,导致某段时间内覆盖率数据丢失。 解决这个问题的思路比较简单,就是改造 javaagent,在 jvm 停止时,上报覆盖率数据到我们的代码覆盖率服务,等待生成报告时,将上报的数据和实时的覆盖率数据做合并即可。 实现方案 具体实现方案涉及到两部分: jacoco 源码改造 代码覆盖率服务(以下简称 cov 服务)改造 jacoco改造 jacoco 改造…
avatar
werr
各位路过大佬我家移动宽带如何申请公网IP?
各位路过大佬我家移动宽带如何申请公网IP?我去线下营业厅告诉我不知道打电话10086说让片区经理打电话结果也没打!
avatar
写 bug 的大耳朵图图
基于Jmeter和Selenium的WebUI自动化测试服务实现思路
背景 快到年底了,没啥东西要做了,搞一把 WebUI 自动化测试作为 2023 年收官之战,以下仅介绍技术实现思路,也欢迎大家有更好的想法在评论区交流。 需求 实现一个面向普通用户的 WebUI 自动化测试服务,实现效果可以参考MeterSphere的 UI 自动化测试功能,当然这玩意儿是要收费才能用,可以申请个账号去体验下。注意:不是在给 MeterSPhere 打广告,只是懒得写需求而已。 技术选型 虽然现在也有一些开源的 WebUI 自动化测试平台,但是调研…
avatar
写 bug 的大耳朵图图
基于 Jacoco 的 java 代码覆盖率收集服务设计
背景 下半年开始搞精准测试了,先搞一波代码覆盖率,因为公司绝大多数项目都是基于 Java 开发的,所以就先搞 Java 的了,主流的代码覆盖率工具是 Jacoco(其实我也只知道这一个),所以就直接基于 springboot 搞一个吧。 代码覆盖率知识 什么是代码覆盖率 代码覆盖率(Code Coverage)是软件测试中一种衡量测试质量的指标,用于评估测试用例对源代码的覆盖程度。它衡量了在执行测试用例时源代码中有多少行、分支、类、方法等被执行到。 无论是…
avatar
Rei
Rails 构建时下载 importmap 资源的方法
问题 Importmap-rails 默认的加载来源是 CDN,但是公共 CDN 在国内访问不稳定。另一个方法是将 JavaScript 下载到 vender/javascript 目录,但是这个方法需要将外部 JavaScript 签入源码管理工具,导致源码体积变大。 有没有方法可以将下载 JavaScript 延后到构建时执行呢?我经过实践找到了一个方法。 解决 第一步,修改 .gitignore 在 .gitignore 加入以下内容: /vendor/javascript 这会使 git 忽略 importmap 下载的内容。 第二步,importmap pin {package} --download 在 importmap pin 的时候加上 --download 参数,例如: bin/importmap pin sortablejs…
avatar
steve lee
Lambda Calculus: Represent in Clojure and Elixir
Lambda calculus is the main idea behind functional programming, a complete model for computation. There are a lot of documents and courses about lambda calculus on the Internet, so in this post, I'll not focus on lambda calculus in theory. I'll take a more practical approach - use specific languages to represent lambda expressions. Clojure and Elixir have been chosen due to their coherence and elegance of design. Introduction The λ-calculus is a language with three expression forms: variable reference, e.g., v, foo; function application, e.g., (f x), (f (g x)); and function abstraction, e.g…
avatar
Muspi Merol
就msgpack压缩效率不如JSON的问题的讨论
在 GitHub 上的 msgpack/msgpack 库下面,很早之前我发起了这么一个话题,今天突然得到回复了 Issue 链接在此:https://github.com/msgpack/msgpack/issues/328 我个人得出的结论是: Length-Prefixed serialization languages is less friendly to compressors compared to Delimiter-Separated serialization languages indeed More fine-grained research can be done through taking equivalent structures in both JSON and MessagePack, compressing them both with the same algorithm, and then studying the resulting compressed encoding in detail to understand exactly what tradeoffs the compressor made Web developers should consider JSON fist…
avatar
steve lee
Clojure - a whirlwind tour
Clojure is a functional, dynamic language, a dialect of Lisp that runs on the JVM. Because it is a functional language, it has some aspects we can talk about: Immutable data Higher-order function Anonymous function Recursive Lazy evaluation My first impression is that Clojure exclusively uses prefix notation, instead of infix notation like other popular languages. For example, to evaluate expression 1 + 2 * 3, we must write: (+ 1 (* 2 3)) ; => 7 All operations in Clojure take the form opening parenthesis, operator, operands, closing parenthesis: (max 3 5) ; => 5 (println "result is:" (* 2 4…
avatar
Muspi Merol
如何让一个实例知晓自己的变量名
这段时间在写一个做提示工程的库,其中顺便实现了一套模板语言,其中一个模板实例的 repr 格式化时想了一种方式获得一个实例的变量名。如下所示: 我创建了一个 GitHub Gist 这段代码定义了一个名为 AutoNaming 的类,该类的作用是自动获取并绑定实例的名称。 __new__ 方法:在创建新实例时,首先调用 __new__ 方法,它创建了一个新的实例,并调用 _bind_frame 方法。 _bind_frame 方法:获取当前的堆栈帧,并将其存储在实例…
avatar
roogen
Todo/Task management Website using React
Todo/Task management_Website Todo website that keeps track of everything you need to do, allowing you to focus on what truly matters. empowers you to organize your life with precision and efficiency. Features Login/Signup (with jwt and bcrypt) Add task Update task Delete task screenshots Tech Stack Clint: React, React-router-dom, Chakra-UI Server: Node, Express, MongoDB, JWT Learn More To learn more about React Native, take a look at the following resources: React Native Website – learn more about React Native. Getting Started – an overview of React Native and how setup your environment…
avatar
写 bug 的大耳朵图图
Java 集成Maven Embedder 编译 Maven 项目
背景 最近在开发代码覆盖率的平台,涉及到对 java 项目编译后使用 jacococli 来生成报告,需要指定 java 项目 class 文件路径和源码路径。因此,需要对用户配置的 java 项目在服务器上进行编译,Java 项目构建工具有很多种,比如 Ant,Maven,Gradle 等,本文只针对 Maven 构建的项目如何编译进行讲解。以下用于演示编译的项目是 apolloconfig/apollo 编译方案 Maven 项目编译其实很简单,常用的命令就是 mvn clean package 但是我在上面说了,我是要在部署了…
avatar
写 bug 的大耳朵图图
线上问题分析案例:一个小括号引发的惨案
悲剧的开始 2023.8.17 早上 7:30 刚睡醒,都没来得及洗漱,手机上就收到了公司运维平台发的告警 有一台服务器 cpu 使用率超过 95%了,当时没在意,以为上面正在跑任务(这个服务器上面部署的是我们自己开发的自动化测试平台,用例执行引擎是 Jmeter,后端开发框架是 springboot)。等我收拾完准备出门上班的时候,发现手机上又双收到了 2 条告警,cpu 使用率没有下去,当时在想是不是自动化任务跑的时间…
avatar
写 bug 的大耳朵图图
JVM 命令/工具使用介绍
JDK 自带了非常多的工具用于管理和监控 Java 应用程序状态,对于 Java 开发者来说,了解这些工具如何使用是非常有必要的,尤其是在排查线上问题,或者使用内部网络的情况下,可能无法或不允许使用三方工具,如 arthas,jvm-tools 等,这个时候熟练使用 JDK 自带的 jvm 工具就非常有助于我们分析和解决 jvm 的问题。接下来我将对 JDK 中自带的比较常用的工具进行介绍,同时也会穿插部分其他 jvm 分析工具的讲解。 注意…
avatar
写 bug 的大耳朵图图
Java中的异常处理
1. Java 中的异常分类 Java中的异常类均以Throwable为父类,而Throwable又派生出 Error 和 Exception 两类,区别如下 1.1 Error类及其子类 代表了JVM自身的异常。这一类异常发生时,无法通过程序来修正。例如系统崩溃、内存溢出等。与异常不同,错误表示程序无法继续执行下去,一般不需要进行捕获或处理。错误通常是由底层系统或环境导致的,它们是不可控的,最可靠的方式就是尽快地停止JVM的运行。 1.2…
avatar
写 bug 的大耳朵图图
深入理解Java中的序列化和反序列化
1. 技术背景 ​ 互联网的迅猛发展受益于网络通信技术的成熟和稳定。网络通信协议是机器双方共同约定的协议。在应用层看到的是结构体、对象,但是在网络协议里,机器之间传输的都是二进制流。网络编程中,需要定义应用层协议。最原始的应用层协议是字节数组,在 Java 语言里以 byte[]体现,在C语言里以 char[]体现。不管是 Java 语言还是 C 语言,开发人员都需要知道字节数组里每个字节的含义才能保证数据写入和读取的正确性。这对…
avatar
Muspi Merol
改写了我用的一个翻译插件的 prompt 实测效果还行
Sider 是一个浏览器插件,有划词翻译/解释/概括等功能(基于 GPT)。我一直用它来翻译。它的默认的 prompt我觉得写得不太好,原因如下: 它只读取划选部分的纯文本,所以丢失了所有结构,在翻译代码和列表时基本上结果没法看 经常把专有名词也翻译 今天实在忍不了,想着磨刀不误砍柴工,与其每次都受气不如狠下心来花点时间把 prompt 重写一遍,效果如下: 上面是我用来翻译长段 html,可以看到专有名词和代码块没有出现不…
avatar
steve lee
Active Storage - some techniques
Requirements Install ImageMagick or libvips. Install image_processing gem 1. Get the dimension size of an image For example, we have a model MediaAsset like this: class MediaAsset < ApplicationRecord validates :media_file, presence: true end If the blob has been analyzed, you can access the image's dimension by: media_file = MediaAsset.find(2).media_file media_file.metadata # => {"identified"=>true, "analyzed"=>true, "width"=>1000, "height"=>1017} media_file.metadata["width"] # or height You must call analyze() method if the blob hasn't been analyzed. media_file.analyzed…
avatar
写 bug 的大耳朵图图
Jmeter源码系列(3) - Jmeter 类详解-start方法,Jmeter 真正的启动过程
在开始讲 start 方法前,大家先考虑一个问题,Jmeter 启动时带不带参数有什么影响?我们可以带着这个问题往下看。 Jmeter启动参数是如何传递的? 在前面两篇文章中,已经跟大家非常详细的介绍了 Jmeter 启动时会做什么,回顾一下就是: 调用 NewDriver.main(String[] args) 方法,此方法会反射调用 Jmeter.start(String[] args) 方法。 在执行 Jmeter.start(String[] args) 方法前,Jmeter 类现需要实例化,这个类中包含了非常多的静态常量,绝大多数都是跟…