Normal view

There are new articles available, click to refresh the page.
Today — 3 May 2025Curiosity

关于前端 pdf 渲染问题

2 May 2025 at 21:51
Leoking222:

最近打算写个项目,现在遇到一个小问题,就是前端在渲染 pdf 的时候,使用的是 vue3 ,pdf 库使用的是 vue-pdf-embed ,导致前端页面渲染出来的 pdf 很糊,调了很多,都没有效果,不知道是不是组件库的问题,有没有前端大佬有好的解决方案,本人 Java 载,对前端研究的不是特别深入。希望大佬解惑。

image-20250502215118183

菜*就不要打游戏好不好?

2 May 2025 at 21:36
adolphlanglang:

今天打瓦被虐成狗了,我把原因归到了网络波动上(就是不承认菜,不过网络质量确实不好,根本就是不能玩的程度),然后写了下面这个脚本简单测试下网络质量,大家看谁网络质量比较好测试一下。

下面是一组比较夸张的数据,但是游戏中也会出现。

21:32:18 样本数量: 60 | 平均: 111.24ms | 抖动: 55.75ms | 抖动率: 50.12%
21:32:20 样本数量: 60 | 平均: 112.78ms | 抖动: 55.60ms | 抖动率: 49.30%
21:32:22 样本数量: 60 | 平均: 115.65ms | 抖动: 55.04ms | 抖动率: 47.59%
21:32:23 样本数量: 60 | 平均: 117.59ms | 抖动: 60.08ms | 抖动率: 51.09%
21:32:25 样本数量: 60 | 平均: 115.69ms | 抖动: 56.60ms | 抖动率: 48.93%
21:32:26 样本数量: 60 | 平均: 119.04ms | 抖动: 57.91ms | 抖动率: 48.65%
21:32:27 样本数量: 60 | 平均: 118.50ms | 抖动: 58.77ms | 抖动率: 49.60%
21:32:28 样本数量: 60 | 平均: 115.43ms | 抖动: 58.23ms | 抖动率: 50.44%
21:32:29 样本数量: 60 | 平均: 111.57ms | 抖动: 54.64ms | 抖动率: 48.97%
import configparser
import subprocess
import time
import re
from collections import deque
import numpy as np
import os

CONFIG_FILE = 'config.ini'

def create_default_config(path):
    config = configparser.ConfigParser()
    config['monitor'] = {
        'host': 'baidu.com',
        'window_size': '60',
        'ping_interval': '1',
        'trim_percent': '0.05'
    }
    config['output'] = {
        'show_timestamp': 'true',
        'log_to_file': 'false',
        'log_file': 'jitter_log.txt'
    }
    with open(path, 'w') as configfile:
        config.write(configfile)
    print(f"[首次运行] 配置文件 '{path}' 已生成,使用默认配置。")

def load_config(file):
    if not os.path.exists(file):
        create_default_config(file)

    config = configparser.ConfigParser()
    config.read(file)
    return {
        'host': config.get('monitor', 'host'),
        'window_size': config.getint('monitor', 'window_size'),
        'ping_interval': config.getfloat('monitor', 'ping_interval'),
        'trim_percent': config.getfloat('monitor', 'trim_percent'),
        'show_timestamp': config.getboolean('output', 'show_timestamp'),
        'log_to_file': config.getboolean('output', 'log_to_file'),
        'log_file': config.get('output', 'log_file')
    }

def ping_once(host):
    try:
        output = subprocess.check_output(
            ["ping", host, "-n", "1"],
            stderr=subprocess.STDOUT,
            universal_newlines=True
        )
        match = re.search(r'(?:时间|time)[=<]?\s*(\d+)\s*ms', output, re.IGNORECASE)
        if match:
            return int(match.group(1))
    except subprocess.CalledProcessError:
        pass
    return None

def calculate_jitter_rate(delays, trim_percent=0.05):
    if len(delays) < 4:
        return None
    arr = np.array(delays)
    lower = np.percentile(arr, trim_percent * 100)
    upper = np.percentile(arr, (1 - trim_percent) * 100)
    trimmed = arr[(arr >= lower) & (arr <= upper)]
    if len(trimmed) < 2:
        return None
    avg_delay = np.mean(trimmed)
    diffs = np.abs(np.diff(trimmed))
    avg_jitter = np.mean(diffs)
    jitter_rate = (avg_jitter / avg_delay) * 100 if avg_delay != 0 else 0
    return avg_delay, avg_jitter, jitter_rate

def live_ping_jitter(config):
    delays = deque(maxlen=config['window_size'])
    while True:
        delay = ping_once(config['host'])
        timestamp = time.strftime('%H:%M:%S') if config['show_timestamp'] else ''
        if delay is not None:
            delays.append(delay)
            result = calculate_jitter_rate(list(delays), config['trim_percent'])
            if result:
                avg_delay, avg_jitter, jitter_rate = result
                line = f"{timestamp} 样本数量: {len(delays):2d} | 平均: {avg_delay:.2f}ms | 抖动: {avg_jitter:.2f}ms | 抖动率: {jitter_rate:.2f}%"
            else:
                line = f"{timestamp} 收集中... 样本数量: {len(delays)}"
        else:
            line = f"{timestamp} 丢包"

        print(line)
        if config['log_to_file']:
            with open(config['log_file'], 'a', encoding='utf-8') as f:
                f.write(line + '\n')

        time.sleep(config['ping_interval'])

if __name__ == "__main__":
    config = load_config('config.ini')
    live_ping_jitter(config)

7 年之后的新手机

2 May 2025 at 21:21
dreampython:

换手机了,京东的直营店购买了新手机,荣耀 magic 7 16G+512G 白色的手机,到手价 3999 元,国补减了 500 元,店补减了 200 元。

换之前使用的手机是 iphone7 128G,使用了 7 年 4 个月,电量焦虑是主要问题、第二和第三的问题是反应慢和信号问题。

  • 电量焦虑问题解决了。从 4 月 27 日早上 6 点起床开始到 4 月 28 日 22 点 18 分还有 18%的电量。从 22 点 21 分开始充电,从 18%开始,23:00 充满,用时 40 分钟,预估从 0%充电,充满需要 50 分钟左右。
  • 手机反应很快。比如:美团 app 扫码单车和还车,都是秒级响应; 微信操作也是秒级;使用了 8 年多的 iphone 7 的响应快达到 30s ,甚至接近 1 分钟了。
  • 有很多需要适应的地方。比如:播客 app ,找到一个替代品 “小宇宙”;浏览器尝试使用 Edge ,之前主要使用的 safari 。
  • 微信聊天记录的迁移: 微信自身提供了迁移能力,具体使用方法:豆包搜索“更换手机时如何转移微信记录”

有大佬知道这种网站的需求是什么?

By: kissyuer
2 May 2025 at 21:18
kissyuer:

最近朋友做了一个年龄计算器网站,丢给我,让我帮他用一下,看哪里有 bug ,bug 我倒是没给他找出来,我就好奇做这样的网站真的有需求吗?计算年龄还专门需要制作一个网站吗?自己心算不就算出来了?(没有冒犯的意思,纯属好奇,这到底有什么使用场景) https://agecalcuor.lat/

Hambook 新版上线,全新 UI 全新体验,本体免费,不需要购买,可自主配置 AI 服务

2 May 2025 at 21:07
superknight:

AppStore 传送门: https://apps.apple.com/cn/app/hambook/id6740775311?platform=iphone

###1.2 版本功能上线:

1 、全新 UI 版本上线; 2 、更丰富的 RSS 源; 3 、多种阅读主题; 4 、阅读量统计,阅读排行榜; 5 、提供 AI 服务

教程视频,小红书:

90 [五一节日快乐,Hambook 新版上线啦 - Hambook 开发者 | 小红书 - 你的生活指南] 😆 QlzHBA2eyAWMa2F 😆 https://www.xiaohongshu.com/discovery/item/681484d30000000021005011?source=webshare&xhsshare=pc_web&xsec_token=LBWTmNX1kpEdwbW5najQLEqIOS9wikmdUBSzQ86hG0dvU=&xsec_source=pc_share

分享一个 IOS 环境音乐定时关闭的快捷指令(防止半夜被吵醒)

2 May 2025 at 20:37
zhonghanwen:

前几天体验了一下 IOS18.4 的环境音乐功能,想说睡前放点睡前氛围环境音乐助眠,结果半夜被吵醒了……😂 找了下没有找到它定时关闭功能!

于是自己动手做了一个快捷指令,支持定时关闭环境音乐,简单实用,适合和我一样容易被吵醒的小伙伴~

👉 快捷指令下载地址( iCloud ): https://www.icloud.com/shortcuts/d2629612ead541ad9f3674f83d6a50ec

用法也很简单,运行后选择时间(比如 30 分钟 表示 30 分钟后关闭),就搞定了。

欢迎大家试用,有问题也可以一起讨论优化~

遇到了极端情况才知道备机的重要性,求推荐备机

By: CatCode
2 May 2025 at 20:29
CatCode:

首先不是故事会,想听故事的可以关了。
假期开始前突遇一个极端情况,因为涉及隐私不讲内容,如果当时情况继续恶化,我可能要过一个完全没有手机、与朋友家人同事领导快递小哥等完全失联、没有电子支付、登录不了电脑端小而美的完完整整的五一假期。

所以,现在决定要买一个备用手机,平常就放在屋里,不插卡,定期充电,保持可用状态。但是不知道该买啥手机好。所以来求各位 V 友推荐值得买的机器,谢谢大家。
目前主用的还是 iPhone 13 ,并且没有更新的打算。
预算 2K 以内,要求备用机安卓/iOS 不限,维护简单方便,保护隐私,且不能以下犯上、越级打怪。

M1-Max 的 E-Core 长期接近满载导致操作卡顿,该淘汰了吗?

By: MrLonely
1 May 2025 at 22:40
MrLonely: CPU 的整体负载并不高,内存压力也不高,但是两个 E-Core 单独的占用率长期超过 80%。其实因为 macOS 系统对于台前界面调度和优先级的设定,即使是 P-Core 满载,并不显得卡顿。

但最近时有敲键盘卡顿。要不就是敲了键盘字母没上去。要么就是一个字母重复出现好多次。而且这个情况是集中出现的。并不是均匀地分布在所有的使用时间下。而在发现卡顿的时候观察 CPU 占用总是会看到 E-Core 处于 100%负载。

推测是因为 macOS 把鼠标键盘的处理任务都分配到 E-Core ,而 E-Core 的负载分配有时并不合理。比如很久之前一次 Dropbox 短时间处理大量小文件的时候也出现了这种 E-Core 有难,P-Core 围观的情况。导致电脑几乎不可用持续了几十分钟。

平时电脑上后台应用很多,但每项任务负载压力都不大。在不想改变电脑使用习惯的情况下,理论上来说,是不是只能升级硬件了?

Yesterday — 2 May 2025Curiosity

[分享] 我开发的 API 中转站 - 稳定连接 GPT/Gemini/Grok 等 AI 模型服务

2 May 2025 at 19:12
jacquelinecordas:

大家好,我是 API 领域的开发者,最近完成了一个 API 中转站项目 zzzzapi.com ,想和 V 站的各位技术同好分享一下。 项目背景 随着 AI 大模型的普及,很多开发者在使用 OpenAI API 、Gemini AI API 等服务时遇到了各种问题: 访问不稳定,经常连接超时 API 密钥管理麻烦 计费问题复杂 多模型切换不方便 为解决这些痛点,我开发了这个专业的 API 中转站。 主要特性 多模型支持:包括 ChatGPT API 、Grok API 、Gemini AI API 等主流大模型 高速稳定:采用优化的节点和路由策略,确保 API 调用的稳定性 统一计费:简化计费模式,让开发者专注于产品开发 开发者友好:提供详尽的 API 文档和示例代码 安全保障:API 密钥加密存储,保障用户数据安全 用户反馈 目前已有多位开发者在使用我们的服务,反馈普遍良好,特别是稳定性方面得到了很多肯定。 寻求建议 作为 V 站的一员,我特别想听听大家对这类 API 中转站服务的意见和建议: 你在使用 AI API 时遇到过哪些技术难题? 对 API 中转服务的定价模式有什么看法? 还有哪些功能是你希望看到的? 欢迎大家访问 zzzzapi.com 了解更多,也欢迎通过站内私信与我交流技术问题。如果觉得有用,别忘了给这个帖子点个赞!

win10 睡眠状态下总是被自动唤醒,找不到原因

2 May 2025 at 18:48
gegeligegeligo: 使用 powercfg -lastwake 查看被唤醒的原因,输出为 未知(4),
使用 powercfg -waketimers 查看活动的唤醒定时器,输出为 系统中不存在活动的唤醒计时器
尝试使用 powercfg devicedisablewake 禁止所有设备唤醒电脑,但是结果还是没能解决问题,
想查看系统日志,看看有没有线索,但是没能找到什么有价值的信息,结果日志里也没有说明被唤醒的原因。

所以实在是没辙了,实在是找不到原因了。有人知道这是怎么一回事吗?
谢谢!

MBA M4 内存选 16 还是 24

By: vent123
2 May 2025 at 18:46
vent123:

老的 MBP-2019 风扇巨响无比,最近准备换笔记本。 主要工作 Azure 运维,主要使用 helm 和 terraform , 有时需要改后端的 bug ,主要是 spring boot ,需要能够本地运行及测试

不知道 MBA M4 ,16G 内存够用吗? 24G 内存体验会有明显提升吗? 还有,可以通过连接 docking station 连接两个显示器吗? 不知道要买哪一款了,求有经验的佬们推荐推荐

在微信 3.9 版通讯录里有学校通知,在微信 4.0 版里到处找不到的问题如何解决?

2 May 2025 at 18:31
Apol1oBelvedere:

在微信 3.9 版(版本信息 微信 3.9.12.51 )通讯录里有学校通知,位置在:通讯录 - 企业号 - 学校通知。 在微信 4.0 版(版本信息 微信 4.0.3.43 )里到处找不到,最终只能在虚拟机里再去装一个 3.9 版微信去做操作。

问题:

  1. 是不是我操作有问题?
  2. 如何在 4.0 版里弄出来学校通知?

vscode Windsurf Plugin 不工作什么情况?

By: wencan
2 May 2025 at 18:01
wencan: 之前叫 codeium ,大部分时间都能正常工作。偶尔罢工,我忍了
前一段时间,没写代码
再写,发现改叫 Windsurf Plugin 了。

Windsurf Plugin 就 Windsurf Plugin 吧
但是不干活了
每次我敲代码,右下角 Windsurf Plugin 的区域就在转圈,什么补全也不给
多等会儿,Windsurf Plugin 就亮红灯了
看 vscode ,也没输出什么错误
❌
❌