普通视图

发现新文章,点击刷新页面。
昨天以前首页

力扣刷题打卡2209天竟然断了, 哎


坚持6年的力扣刷题打卡作天断了。昨天开了一整天brainstorming 晚上陪媳妇过生日。然后就给忘了,还好的是力扣国服还没断。

2019年3月2日 我在美国通用电气午休的时候太无聊 拿起IPAD就刷了一题。

谁曾想:这一刷就是2209天。这六年时过境迁,很多事情物是人非。我也从美国通用电气GE(General Electric)到亚马逊 Amazon AWS 再到现在的微软剑桥研究院MSRC。

leetcode-2209-days-streak-ended 力扣刷题打卡2209天竟然断了, 哎 程序员 编程 计算机 计算机

力扣刷题打卡2209天 始于2019年3月2日,终止于2025年3月19日,可惜了。

力扣每日一题打卡是可以补签的,只需要花70点积分就可以 Time Travel 回到本月补上一签。只不过那个墙是补不了的,没刷就是空的。

leetcode-from-2013-to-2024-scaled 力扣刷题打卡2209天竟然断了, 哎 程序员 编程 计算机 计算机

从2013年到2024的力扣刷题之路。

力扣美服是可以同步到国服的,但是目前是没有办法反过来把国服的刷题记录复制一份到美服的。可能,这就是注定的吧,肯定会有不完美的。还好我不是处女座,这么一点不完美不会逼疯我的,哈哈。我还是会继续刷题的。刷题努力提升自己,好处多多。

刷题:程序员的基本技能

本文一共 410 个汉字, 你数一下对不对.
力扣刷题打卡2209天竟然断了, 哎. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 力扣刷题打卡2209天竟然断了, 哎 程序员 编程 计算机 计算机
The post 力扣刷题打卡2209天竟然断了, 哎 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  2. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  3. SteemIt 高级定制微信文章列表 RSS/API/阅读器 v2.0 The Advanced Wechat Group Posts Feed/API/Reader v2.0 Abstract: I have added five parameters to the...
  4. 同一台服务器上多个WORDPRESS站点的一些设置可以移出去 我自从把所有网站都挪到一处VPS服务器上 就发现很多事情省事很多 可以同时管理多个网站 包括 WORDPRESS博客. 比如我有四个WORDPRESS博客 然后我就把通用的一些资料给移出去 移到 HTTP或者HTTPS都不能直接访问的文件夹里这样就更安全许多. 文件 wp-conn.php 存储了 相同的数据库资料. 1 2...
  5. 编程: NodeJs/Javascript 函数检查Tron/波场区块链上的交易是否已确认(TronGrid API) 我们想知道给定的交易是否已经在 Tron/波场 区块链上确认,这可以通过 TronGrid API 轻松实现。 为了确保交易在Tron/波场区块链上被确认,验证逻辑应关注交易的状态,这表明交易是否已被 Tron 虚拟机(TVM)成功处理。以下是正确的验证方法: 检查 receipt.result 验证交易成功的主要标志是 receipt.result 字段。值为 “SUCCESS”...
  6. 比特币最近波动有点大: 一天牛市一天熊 比特币10万美金以内都是最后上车的机会! 比特币近期的价格波动可以归因于多个关键因素,包括地缘政治动态、监管变化以及加密行业内的重大安全事件。其中一个主要影响因素是美国前总统唐纳德·特朗普对乌克兰和加密货币监管的立场变化。据报道,特朗普再次当选,他可能会推动减少美国对乌克兰的支持,这可能会影响全球金融市场和风险偏好。同时,特朗普正在将自己塑造为亲加密货币的候选人,表示有意让美国成为一个更加友好的加密货币环境。这一立场引发了市场对监管政策可能发生变化的猜测,导致市场情绪在乐观和不确定性之间波动。 特朗普对俄乌战争的态度 美国第43届总统唐纳德·特朗普已经在2025年1月当选并正式上任(第二次),那么他的政策可能会对比特币价格的波动产生更加直接和显著的影响。他政府对乌克兰和加密货币监管的立场已经不再是猜测,而是正在实际塑造市场的关键力量。 特朗普(Donald Trump)减少美国对乌克兰的支持,全球投资者可能会预期地缘政治稳定性发生变化,从而增加对比特币作为避险资产的需求。同时,他的亲加密货币立场可能正在推动市场的乐观情绪。如果他的政府推出有利于加密行业的监管政策,例如明确的合规指南或减少监管审查,可能会吸引更多机构投资者进入市场,并促进更广泛的加密货币采用。然而,政策的快速变化也可能导致短期市场剧烈波动,因为市场需要时间来消化新的政策动向。 朝鲜黑客盗取Bybit交易所15亿美元的ETH 另一个显著影响比特币价格的事件是近期涉及朝鲜黑客组织“Lazarus”的15亿美元以太坊被盗案件。据报道,Bybit交易所(全球第二)这些被盗的ETH已经被清洗,此次大规模黑客攻击引发了人们对加密行业安全性的担忧。此类安全事件不仅会削弱投资者信心,还可能引发更严格的监管审查,导致短期市场动荡。此外,被盗资金的大规模流动和出售可能对市场流动性造成冲击,进一步加大价格波动。随着这些事件的持续发酵,比特币价格正受到政治决策、监管预期以及安全挑战等多重因素的影响。 与此同时,与朝鲜黑客组织 Lazarus 相关的 15 亿美元以太坊被盗事件仍在影响加密市场。由于这些被盗 ETH 已被清洗,人们对加密行业安全漏洞的担忧持续存在,同时也可能引发更严格的监管审查。政治、监管和安全等多重因素交织在一起,共同导致了比特币近期的剧烈价格波动。...
  7. 在英国带孩子去露营全攻略 之前就做了一些露营的准备工作, 因为大儿子Eric 很兴奋说是要去 Camping Holiday 估计是在 Papa Pig 里看到的. 英国有很多可以露营的地方, 最后面选了一个离家开车1个多小时. 看了评论还不错. 地址为: New Road,...
  8. 面向猫猫编程 Cat Oriented Programming (Chessly/Pyro这一生持续更新) 家里有两只猫 Chessly/Pyro,想着找个地方记录它们的生活,最后决定还是写在这里的博客。猫的一生很短,差不多也就二十年。 Chessly(黑白猫)是我加入微软剑桥研究院MSRC第一个月带回家的,过了两三个月,又把Pyro(橘猫)也接回了家。两只猫的名字是孩子们取的:Chessly因为黑白的像棋盘,加上“ly”听起来像个女孩的名字;而Pyro的意思是一团火(烟火),充满活力。 刚开始的时候,Chessly特别喜欢待在我的工作区域。她有时候趴在键盘上或旁边,有时候藏在显示器后面。偶尔还会绕到我身边“咕咕”地撒娇,等着我去摸她。有时更干脆跑到我腿上,舒舒服服地躺着。 不过,现在它们俩的体型都大了很多,躺在桌上就会挡住屏幕,真是“面向猫猫编程”(Cat Oriented Programming)的极致体验。 记录生活的点滴,也是一种珍惜,毕竟这二十年,我们会一起走过。 2024年 2025年 Ring视频:两猫日常就是打闹,Chessly追上Pyro想舔他,在猫的世界里,地位高的才能舔地位低的。 我家猫现在越来越胖,很喜欢在我工作的时候躺在显示器钱,很影响我的工作,不过这时候我就是会休息一下摸摸她,就当放松一下了。 Pyro在窗边喝水,这是个小的煮饭锅,现在不用了,就给猫当喝水的碗。Pyro很胆小,经常看到我就跑。没法跑就咕咕叫。 Chessly很喜欢陪我工作,然后她很好厅的盯着屏幕上的鼠标光标,真怕她把屏幕抓坏了。 哥哥弹琴,弟弟唱歌,Chessly午睡,真是幸福啊,下辈子做只猫吧。...

如何使用 GDB 或 LLDB 调试器重复运行程序直到错误


gdb-debugger 如何使用 GDB 或 LLDB 调试器重复运行程序直到错误 gdb / lldb 小技巧 程序员 编程 计算机 计算机 调试

GDB Debugger 调试器

如何使用 GDB 或 LLDB 调试器重复运行程序直到发生错误

在调试程序时,有时候我们希望一直运行程序直到遇到错误。GDB(GNU 调试器)和 LLDB(LLVM 调试器)都提供了自动化此过程的方法。

这在调试一些不稳定的程序非常有用,例如有时候写的一些单元测试可能随机崩溃SegFault。最近我在调试一个测试每跑1000次就有一次崩溃的时候就发现gdb/lldb调试器非常有用。

简介:GDB vs LLDB

GDB(GNU 调试器)和 LLDB(LLVM 调试器)是用于低级别应用程序调试的强大工具。GDB 传统上用于由 GCC 编译的程序,而 LLDB 是 LLVM 项目的一部分,与 Clang 无缝配合。两者都提供强大的功能,但 GDB 在 Linux 环境中更常见,而 LLDB 在 macOS 上以及处理 Swift 时更受青睐。

自动化执行直到发生错误

调试重复性任务可能很乏味。通过自动化这些任务,直到发生错误,可以节省大量时间和精力。以下是如何在 GDB 和 LLDB 中设置重复执行直到遇到错误的步骤。

GDB 脚本

下面是一个 GDB 脚本,它会重复执行,直到发生错误:

repeat_until_error.gdb

while 1
  run
  if $_exitcode != 0
    echo "发生错误,退出码:$_exitcode\n"
    break
  end
end

要运行此脚本,将其保存为 repeat_until_error.gdb,然后使用以下命令执行 GDB:

gdb -q -x repeat_until_error.gdb ./your_program

或者,当你处于 gdb 提示符时,运行:

source repeat_until_error.gdb

“run” 命令用于启动程序,你可以为它添加参数,例如:

run param1 param2 ...

你也可以使用 “r” 作为 “run” 的简写。

LLDB 脚本

类似地,在 LLDB 中,你可以使用以下脚本实现相同的效果:

repeat_until_error.lldb

while (1)
  run
  process launch
  if (process status != 0)
    script print("发生错误,退出码:", lldb.process.GetExitStatus())
    break
  end
end

要运行此脚本,将其保存为 repeat_until_error.lldb,然后运行:

lldb --source repeat_until_error.lldb ./your_program

或者,在 lldb 提示符处运行:

source repeat_until_error.lldb

在 “run” 命令之后,你还可以通过附加参数来启动程序,例如:

run param1 param2

总结

GDB 和 LLDB 都提供了方便的方法来自动化调试任务,选择使用哪种工具通常取决于你所使用的平台和工具链。GDB 与 GCC 的集成使其成为 Linux 开发者的首选,而 LLDB 在与 Clang 和 macOS 的无缝配合方面同样强大。

自动化重复的调试命令可以为你节省大量时间和精力 —— 无论你使用 GDB 还是 LLDB,这些脚本都能帮助你简化工作流程。

gdb / lldb 调试

英文:How to Repeat Until Errors using GDB or LLDB Debugger?

本文一共 603 个汉字, 你数一下对不对.
如何使用 GDB 或 LLDB 调试器重复运行程序直到错误. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 如何使用 GDB 或 LLDB 调试器重复运行程序直到错误 gdb / lldb 小技巧 程序员 编程 计算机 计算机 调试
The post 如何使用 GDB 或 LLDB 调试器重复运行程序直到错误 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  2. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  3. 同一台服务器上多个WORDPRESS站点的一些设置可以移出去 我自从把所有网站都挪到一处VPS服务器上 就发现很多事情省事很多 可以同时管理多个网站 包括 WORDPRESS博客. 比如我有四个WORDPRESS博客 然后我就把通用的一些资料给移出去 移到 HTTP或者HTTPS都不能直接访问的文件夹里这样就更安全许多. 文件 wp-conn.php 存储了 相同的数据库资料. 1 2...
  4. 比特币最近波动有点大: 一天牛市一天熊 比特币10万美金以内都是最后上车的机会! 比特币近期的价格波动可以归因于多个关键因素,包括地缘政治动态、监管变化以及加密行业内的重大安全事件。其中一个主要影响因素是美国前总统唐纳德·特朗普对乌克兰和加密货币监管的立场变化。据报道,特朗普再次当选,他可能会推动减少美国对乌克兰的支持,这可能会影响全球金融市场和风险偏好。同时,特朗普正在将自己塑造为亲加密货币的候选人,表示有意让美国成为一个更加友好的加密货币环境。这一立场引发了市场对监管政策可能发生变化的猜测,导致市场情绪在乐观和不确定性之间波动。 特朗普对俄乌战争的态度 美国第43届总统唐纳德·特朗普已经在2025年1月当选并正式上任(第二次),那么他的政策可能会对比特币价格的波动产生更加直接和显著的影响。他政府对乌克兰和加密货币监管的立场已经不再是猜测,而是正在实际塑造市场的关键力量。 特朗普(Donald Trump)减少美国对乌克兰的支持,全球投资者可能会预期地缘政治稳定性发生变化,从而增加对比特币作为避险资产的需求。同时,他的亲加密货币立场可能正在推动市场的乐观情绪。如果他的政府推出有利于加密行业的监管政策,例如明确的合规指南或减少监管审查,可能会吸引更多机构投资者进入市场,并促进更广泛的加密货币采用。然而,政策的快速变化也可能导致短期市场剧烈波动,因为市场需要时间来消化新的政策动向。 朝鲜黑客盗取Bybit交易所15亿美元的ETH 另一个显著影响比特币价格的事件是近期涉及朝鲜黑客组织“Lazarus”的15亿美元以太坊被盗案件。据报道,Bybit交易所(全球第二)这些被盗的ETH已经被清洗,此次大规模黑客攻击引发了人们对加密行业安全性的担忧。此类安全事件不仅会削弱投资者信心,还可能引发更严格的监管审查,导致短期市场动荡。此外,被盗资金的大规模流动和出售可能对市场流动性造成冲击,进一步加大价格波动。随着这些事件的持续发酵,比特币价格正受到政治决策、监管预期以及安全挑战等多重因素的影响。 与此同时,与朝鲜黑客组织 Lazarus 相关的 15 亿美元以太坊被盗事件仍在影响加密市场。由于这些被盗 ETH 已被清洗,人们对加密行业安全漏洞的担忧持续存在,同时也可能引发更严格的监管审查。政治、监管和安全等多重因素交织在一起,共同导致了比特币近期的剧烈价格波动。...
  5. 公司给配了台高配DELL笔记本 早上例会结束的时候我顺便说了一句 我的笔记本有点慢, 当时我并不知道我的经理远程用电话也参加会议了(他全程在听), senior staff SE 对着电话说, “peter, you hear that? btw, my disks are...
  6. 5美元的 Raspberry PI – Zero 树莓PI Raspberry PI 来自于英国, 从第一代模型 A, 到后来的 B, B+ 甚至 是2代, 休积都很小 价钱也一直在 30美元左右. 当然在英国会贵一点 大概在...
  7. 英国硬盘数据恢复失败的经验和教训 上一周, 不小心触碰了机箱后面的电源线, 接触不良, 结果机器再也开不起来了. 显示 Invalid Disk, Replace. 大概就是主硬盘MBR区坏了. 我以为是接触不良, 于是反复插把硬盘卡槽好几次, 机器认不出, 硬盘也没声音, 于是便网上搜索了一个剑桥评价最高的 硬盘数据恢复公司...
  8. 优化设计 个人主页 并且 PageSpeed Insights 双项 100分 坛子的个人主页 www.tanzhijun.com 不错 很适合个人主页的模板. 而且是手机友好. 于是我照着把 我的主页改了改. https://steakovercooked.com 并且做了几点修改: 0. 使用 google mod_pagespeed 把 JS,...

梯子/翻墙技巧: 一条命令就可以在服务器上设置一个Firefox/火狐浏览器代理


回国的时候最麻烦就是访问国外的网站:邮箱、油管视频等。在中国大陆,翻墙是违法的,但是好像在上海北京等大城市,可以申请许可,比如一些国际驻公司和政府机构因需要则可以申请绕过大墙网GFW/Great Firewall。

翻墙/建梯子的方式很多种,怕麻烦可以买现成的VPN,自己有服务器的可以建Wireguard等。这里再介绍一种简单的方式。

Docker容器里跑火狐FireFox浏览器

假设你的主机/服务器/VPS里已经装有Docker。只需要把下面的脚本存成一个BASH文件,比如 docker-firefox.sh 然后在命令行下跑:./docker-firefox.sh PASS 其中PASS是密码,这个我们下面要用到,PASS如果不写的话则要把 “-e VNC_PASSWORD=” 那行删掉即可。

#!/bin/bash
VNC_PASS=$1

docker run -itd \
    --restart always \
    --name=firefox \
    -p 5800:5800 \
    -v $(pwd)/config:/config:rw \
    --shm-size 1g \
    -e ENABLE_CJK_FONT=1 \
    -e VNC_PASSWORD=${VNC_PASS} \
    jlesage/firefox

等一会儿,这时候Docker会去拉取这个软件镜像,然后完事即可在浏览器里把你的 域名/IP地址 后加上5800端口, 5800是上面脚本里指定的,也可以改成你想要的端口。

docker-firefox-pull-image 梯子/翻墙技巧: 一条命令就可以在服务器上设置一个Firefox/火狐浏览器代理 I.T. 小技巧 技术 服务器 计算机 资讯 运维

输入这个脚本命令Docker就会加载容器 jlesage/firefox

这样跑起来了,你的主机就相当于一个中转/代理,你在国内的时候访问你的主机(如果你主机没被大墙网拉入黑名单的话),那你就可以在浏览器里的内嵌FireFox浏览器里打开其它国外网站了。

firefox-docker-on-browser 梯子/翻墙技巧: 一条命令就可以在服务器上设置一个Firefox/火狐浏览器代理 I.T. 小技巧 技术 服务器 计算机 资讯 运维

在浏览器里输入服务器IP/域名(HTTP)后加上 :5800 端口号 还需要输入刚刚指定的密码。

使用体验

可能是和我的主机配置有关,总觉得有点卡。不是很流畅。还有就是我想登陆我的GMAIL帐号,被GOOGLE认定有风险,要我改密码,吓得我只能作罢。

试了一下,看了一个油管广告,没有声音,所以通过这个技巧看油管视频是不现实的。

还有就是,目前只支持HTTP,而不支持HTTPS,如果域名开启了HSTS,那只能通过IP来访问HTTP。不过,你可以通过nginx/apache设置一个反代 reverse proxy 来访问HTTPS。

比如以下是在Nginx服务器配置443端口重新转向到这个FireFox代理:

server {
    listen 443 ssl;
    server_name domain_name

    ssl_certificate /root/fullchain.cer;
    ssl_certificate_key /root/key.key;

    location / {
        proxy_pass https://your-server-ip:5800;
        proxy_ssl_verify off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

这玩意不适合日常工作,但是回国用于救急还是可以的。特别是不想在公共电脑上留下痕迹,只需要用强密码+HTTPS。等不需要用的时候记得把Docker容器删除即可。

docker stop firefox
docker rm -f firefox

这个没法支持多用户,也就是说多个用户同时登陆看到的是同一个窗口。

jlesage-firefox-in-docker-browser-scaled 梯子/翻墙技巧: 一条命令就可以在服务器上设置一个Firefox/火狐浏览器代理 I.T. 小技巧 技术 服务器 计算机 资讯 运维

测试可以在浏览器里打开谷歌

可以使用:docker logs -f firefox 来查看窗口的相关信息:

[init ] container is starting…
[cont-env ] loading container environment variables…
[cont-env ] APP_NAME: loading…
[cont-env ] APP_VERSION: loading…
[cont-env ] DISPLAY: executing…
[cont-env ] DISPLAY: terminated successfully.
[cont-env ] DISPLAY: loading…
[cont-env ] DOCKER_IMAGE_PLATFORM: loading…
[cont-env ] DOCKER_IMAGE_VERSION: loading…
[cont-env ] EGL_LOG_LEVEL: executing…
[cont-env ] EGL_LOG_LEVEL: terminated successfully.
[cont-env ] EGL_LOG_LEVEL: loading…
[cont-env ] GSK_RENDERER: executing…
[cont-env ] GSK_RENDERER: terminated successfully.
[cont-env ] GSK_RENDERER: loading…
[cont-env ] GTK2_RC_FILES: executing…
[cont-env ] GTK2_RC_FILES: terminated successfully.
[cont-env ] GTK2_RC_FILES: not setting variable.
[cont-env ] GTK_THEME: executing…
[cont-env ] GTK_THEME: terminated successfully.
[cont-env ] GTK_THEME: not setting variable.
[cont-env ] HOME: loading…
[cont-env ] LIBGL_DRIVERS_PATH: executing…
[cont-env ] LIBGL_DRIVERS_PATH: terminated successfully.
[cont-env ] LIBGL_DRIVERS_PATH: not setting variable.
[cont-env ] PULSE_CONFIG_PATH: executing…
[cont-env ] PULSE_CONFIG_PATH: terminated successfully.
[cont-env ] PULSE_CONFIG_PATH: not setting variable.
[cont-env ] PULSE_COOKIE: executing…
[cont-env ] PULSE_COOKIE: terminated successfully.
[cont-env ] PULSE_COOKIE: not setting variable.
[cont-env ] PULSE_SERVER: executing…
[cont-env ] PULSE_SERVER: terminated successfully.
[cont-env ] PULSE_SERVER: not setting variable.
[cont-env ] QT_STYLE_OVERRIDE: executing…
[cont-env ] QT_STYLE_OVERRIDE: terminated successfully.
[cont-env ] QT_STYLE_OVERRIDE: not setting variable.
[cont-env ] TAKE_CONFIG_OWNERSHIP: loading…
[cont-env ] XDG_CACHE_HOME: loading…
[cont-env ] XDG_CONFIG_HOME: loading…
[cont-env ] XDG_DATA_HOME: loading…
[cont-env ] XDG_RUNTIME_DIR: loading…
[cont-env ] XDG_STATE_HOME: loading…
[cont-env ] container environment variables initialized.
[cont-secrets] loading container secrets…
[cont-secrets] container secrets loaded.
[cont-init ] executing container initialization scripts…
[cont-init ] 10-certs.sh: executing…
[cont-init ] 10-certs.sh: terminated successfully.
[cont-init ] 10-check-app-niceness.sh: executing…
[cont-init ] 10-check-app-niceness.sh: terminated successfully.
[cont-init ] 10-clean-logmonitor-states.sh: executing…
[cont-init ] 10-clean-logmonitor-states.sh: terminated successfully.
[cont-init ] 10-clean-tmp-dir.sh: executing…
[cont-init ] 10-clean-tmp-dir.sh: terminated successfully.
[cont-init ] 10-fontconfig-cache-dir.sh: executing…
[cont-init ] 10-fontconfig-cache-dir.sh: terminated successfully.
[cont-init ] 10-init-users.sh: executing…
[cont-init ] 10-init-users.sh: terminated successfully.
[cont-init ] 10-nginx.sh: executing…
[cont-init ] 10-nginx.sh: terminated successfully.
[cont-init ] 10-openbox.sh: executing…
[cont-init ] 10-openbox.sh: terminated successfully.
[cont-init ] 10-pkgs-mirror.sh: executing…
[cont-init ] 10-pkgs-mirror.sh: terminated successfully.
[cont-init ] 10-pulse.sh: executing…
[cont-init ] 10-pulse.sh: terminated successfully.
[cont-init ] 10-set-tmp-dir-perms.sh: executing…
[cont-init ] 10-set-tmp-dir-perms.sh: terminated successfully.
[cont-init ] 10-vnc-password.sh: executing…
[cont-init ] 10-vnc-password.sh: creating VNC password file from environment variable…
[cont-init ] 10-vnc-password.sh: terminated successfully.
[cont-init ] 10-web-data.sh: executing…
[cont-init ] 10-web-data.sh: terminated successfully.
[cont-init ] 10-webauth.sh: executing…
[cont-init ] 10-webauth.sh: terminated successfully.
[cont-init ] 10-x11-unix.sh: executing…
[cont-init ] 10-x11-unix.sh: terminated successfully.
[cont-init ] 10-xdg-runtime-dir.sh: executing…
[cont-init ] 10-xdg-runtime-dir.sh: terminated successfully.
[cont-init ] 15-cjk-font.sh: executing…
[cont-init ] 15-cjk-font.sh: installing CJK font…
[cont-init ] 15-cjk-font.sh: fetch https://dl-cdn.alpinelinux.org/alpine/v3.21/main/x86_64/APKINDEX.tar.gz
[cont-init ] 15-cjk-font.sh: fetch https://dl-cdn.alpinelinux.org/alpine/v3.21/community/x86_64/APKINDEX.tar.gz
[cont-init ] 15-cjk-font.sh: (1/1) Installing font-wqy-zenhei (0.9.45-r3)
[cont-init ] 15-cjk-font.sh: Executing fontconfig-2.15.0-r1.trigger
[cont-init ] 15-cjk-font.sh: Executing mkfontscale-1.2.3-r1.trigger
[cont-init ] 15-cjk-font.sh: OK: 694 MiB in 168 packages
[cont-init ] 15-cjk-font.sh: terminated successfully.
[cont-init ] 15-install-pkgs.sh: executing…
[cont-init ] 15-install-pkgs.sh: terminated successfully.
[cont-init ] 55-check-snd.sh: executing…
[cont-init ] 55-check-snd.sh: sound not supported: device /dev/snd not exposed to the container.
[cont-init ] 55-check-snd.sh: terminated successfully.
[cont-init ] 55-firefox.sh: executing…
[cont-init ] 55-firefox.sh: terminated successfully.
[cont-init ] 56-firefox-set-prefs-from-env.sh: executing…
[cont-init ] 56-firefox-set-prefs-from-env.sh: terminated successfully.
[cont-init ] 85-take-config-ownership.sh: executing…
[cont-init ] 85-take-config-ownership.sh: terminated successfully.
[cont-init ] 89-info.sh: executing…
╭――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――╮
│ │
│ Application: Firefox │
│ Application Version: 135.0-r0 │
│ Docker Image Version: 25.02.2 │
│ Docker Image Platform: linux/amd64 │
│ │
╰――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――╯

有用简单的IT小技巧

英文:Using Docker to Run Firefox as a Proxy: A Simple Solution for Accessing Blocked Websites in China

本文一共 804 个汉字, 你数一下对不对.
梯子/翻墙技巧: 一条命令就可以在服务器上设置一个Firefox/火狐浏览器代理. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 梯子/翻墙技巧: 一条命令就可以在服务器上设置一个Firefox/火狐浏览器代理 I.T. 小技巧 技术 服务器 计算机 资讯 运维
The post 梯子/翻墙技巧: 一条命令就可以在服务器上设置一个Firefox/火狐浏览器代理 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 出租房子的教训: 让中介找人上门换一个水龙头竟然要204英镑! 我老婆在剑桥Bar Hill有一套出租房/Buy to Let,但她不想管理。每次房子出问题需要修理时,中介都会联系我。有房子出租闹心的事情真是多,真的印证了那句话:操着卖白粉的心,挣着卖白菜的钱!每次最怕的就是接到中介的电话,因为一有电话就意味着房子有问题要修/要花钱了。 几天前,中介打电话来说,租户反映厨房水龙头打开时有奇怪的声音,挺吓人的。我当时回复他们说我会找个水管工/Plumber第二天过去看看。但挂了电话后,我联系了我认识的中国装修师傅。他手艺很好,在英国生活了几十年,以前帮我家做过不少装修。不过他这次没时间,也不太愿意接这种小活。 前两年这个师傅给我们家换地板,翻新三个厕所,还有就是阳光房地板,门前加建了个Porch等,最近房子也在重新折腾装修,之后弄完再详细说说。 我懒得在网上(比如 MyBuilder.com)再找其他人,就让中介安排了他们自己的工人。 后来,中介回电说水管工已经在房子里了,并报价修理费为170英镑,加上VAT税后(20%)一共204英镑。如果不修,也要付140英镑的上门费,加税后差不多168英镑。觉得价格有点高,但也只能咬牙同意了。 其实让我不爽的是自己为了省事,最后只能任人宰割。老外只要上门就收钱,我当时虽让中介确认报价,但没问上门费的问题,现在骑虎难下。听说中介找的合同工都比较贵。 那个房子一共让中介找过四五次人修房子(各种问题:上次厨房水管堵了,被收了400多英镑,据说水管工花了三小时通下水道),主要是因为这次我认识的师傅没时间。其实我还认识另一个会修房子的中国人,这样看来,以后可能不会再让中介找人了。 去年冬天,因为恶劣天气,房子顶有一小块掉了,中介找人报价要1800英镑,还好我没同意。后来找了个中国师傅,才花了350英镑,而且当时有Landlord保险还全额报销了。 PS:我发了封邮件给中介小小抱怨了一下。 Hi there,...
  2. 真正意义上的鼓励优秀作品 – 优秀被错过文章 有奖励啦! 大家都知道我的日报第一项就是 《那些优秀可能被错过的文章》这个算法是通过我自己的认识选出一些比较 好的文章 但是收益却比较低, 那么, 通过 @dailychina 天天回复, 比如: 对于作者来说, 除了心理得到表扬之外 并没啥卵用, 是吧. 而且有些作者经常上榜啊, 于是,...
  3. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  4. 一行代码修改引起的血案 – (二) 上一篇说到乱改了一行代码引来的错误, 自己也检讨了一下. 以下已经同事同意: 看了XX在群里发的内容 http://coolshell.cn/articles/4576.html,然后到 http://thread.gmane.org/gmane.linux.kernel/1124982/focus=1126216 仔细看了Linus Torvalds发的邮件,受益匪浅,摘了几段内容附在了 < how to fix bug.xls > 中....
  5. 逻辑题 – 帽子是黑的还是白的? 老婆每天晚上都会打开一个 智力测试的 APP 然后 有一天就问我这么一道智力题. 有三顶白色帽子 两顶黑色帽子. 有三个人被蒙着眼睛 然后随机的被戴上帽子 其中剩下的两顶就放在隔壁屋 每个人只能看到其他两人帽子的颜色 并不知道自己头顶上帽子的颜色. 每个人只有一次猜对的机会 不能互相交谈 已知第一个人看到其他两个人头顶上的颜色是白色...
  6. 使用AWK来看见证人生成块的速度 每次见证人出块, 媳妇总我说 “又生了”. 每次出块我总会去算一下离上次出块多少时间, 这是可以通过当前块数和上次出块数算出来的. 首先, 我们可以通过 docker logs 来显示很多很多的记录: 有一个脚本 ./run.sh logs是显示最近几条记录 (tail) 我们可以通过管道...
  7. STEEM API 系列之获取货币转换 STEEMIT 有 SBD, STEEM, STEEM POWER 还有 VESTS这几个概念. 时不时, 我们就需要知道它们之间几个转换关系: 1个STEEM等于多少SBD? 1个SBD 等于多少STEEM? 1个SP等于多少VESTS? 1M的VESTS...
  8. 测试 Crontab 是否工作的PHP脚本 LINUX 下的 crontab 是用来定时运行 程序任务的工具. 当然你需要简单配置一下 一般是通过 crontab -e 命令 来编辑. 如果你想简单知道 是否配置正确 和任务实际上会被调用的频率 你可以通过下面简单的PHP脚本来实现....

Jane Street第一轮一小时面试体验卡(伦敦软件工程师)


2025年年初,拿了Jane Street一个小时的Coding面试体验卡。

jane-street Jane Street第一轮一小时面试体验卡(伦敦软件工程师) 程序员 计算机 软件工程 面试

简街/Jane Street 金融公司

市场定位

  • Jane Street 是一家全球领先的定量交易公司和流动性提供者,成立于 2000 年,总部位于纽约,同时在伦敦、香港和阿姆斯特丹设有办事处。
  • 它以高度依赖数学、统计学和计算机科学技术而闻名,在金融市场中运用定量分析方法进行自动化交易。

技术驱动

  • Jane Street 专注于做市业务,为全球各类金融工具(股票、ETF、债券、期权、期货等)提供流动性。他们的交易模式主要基于算法和数据驱动,通过低延迟的技术在市场上寻找交易机会。
  • Jane Street 是一家技术驱动的公司,其核心交易系统和工具大多是内部开发的。他们高度依赖函数式编程语言 OCaml,用于构建高性能、可靠的交易系统。

文化与工作环境

  • 合作与学术性:Jane Street 的公司文化强调团队合作、数据透明和学术研究氛围。
  • 扁平化管理:鼓励员工从任何层级提供创新的想法。
  • 强大的培训:对于新员工尤其是应届生,Jane Street 提供系统的培训,帮助他们快速上手。

招聘与职业机会

  • Jane Street 以招募顶尖的数学家、程序员和定量分析师而闻名。他们非常注重候选人的逻辑思维、编程能力和解决复杂问题的能力。
  • 岗位包括:量化交易员(Quantitative Trader)、研究员(Researcher)、软件工程师(Software Engineer)和基础设施工程师(Infrastructure Engineer)。

与众不同之处

    Jane Street 不仅仅是一家交易公司,它还具有强烈的工程师文化。
    他们公开了很多技术工具和研究,比如开源的 OCaml 项目,为开发者社区做出贡献。

在行业中的地位

  • Jane Street 被认为是高频交易和定量交易领域的领导者之一,常与 Citadel Securities、Two Sigma、DE Shaw 等其他量化公司相提并论。其创新性和对风险管理的严格控制使其在金融危机中也能保持强劲的表现。

有趣的事实

  • Jane Street 每天处理数十亿美元的交易量,尽管它并不广泛对外宣传,但在业内具有极高的声誉。
  • 公司提供丰厚的薪酬待遇和灵活的工作环境,并在全球范围内吸引了许多优秀的应届毕业生和经验丰富的专业人士。
  • 如果你对量化交易和技术研发感兴趣,Jane Street 无疑是一个非常值得探索的职业选择。

去年的时候就听说Jane Street是很有名的金融公司,做量化的,给钱也给得挺多,于是去年年初就投了简历,可惜简历没过,当时在投了简历大概3周后收到了拒信(我投的是伦敦JS的软件工程师 Software Engineer)

jane-street-rejection-letter Jane Street第一轮一小时面试体验卡(伦敦软件工程师) 程序员 计算机 软件工程 面试

Jane Street收到简历后三周给了拒信

申请Jane Street最好填上Cover Letter/求职信

今年年初又试了一下,我让ChatGPT帮助我写了Cover Letter,虽然这个Cover Letter在申请过程中是选填的(JS有自己的工作申请页面),但是我感觉起了很大的作用,我感觉ChatGPT写得也很好:

Happy New Year 2025! 🎉

I’ve been a Senior Software Engineer at Microsoft Research Cambridge for the past 3.5 years. As I reflect on my journey, one of my key resolutions for this year is to step out of my comfort zone and embrace new challenges. Growth happens outside familiar boundaries, and I’m eager to push myself further.

This year, I’m particularly interested in exploring opportunities at Jane Street. Though I haven’t worked in this industry before, it feels like a natural extension of my background as a crypto trader and enthusiast. The firm’s focus on quantitative trading and its intellectually rigorous environment are incredibly appealing. It’s an exciting prospect to apply my technical expertise and analytical skills in a field that blends finance and technology seamlessly.

Here’s to learning, adapting, and embracing new possibilities in 2025! 🚀

2025 年新年快乐!🎉

过去 3.5 年,我一直担任微软剑桥研究院的高级软件工程师。回顾我的旅程,我今年的主要决心之一就是走出舒适区,迎接新的挑战。成长发生在熟悉的界限之外,我渴望进一步推动自己。

今年,我特别想探索 Jane Street 的机会。虽然我以前没有在这个行业工作过,但感觉这是我作为加密货币交易员和爱好者背景的自然延伸。该公司对量化交易的关注及其智力严谨的环境非常吸引人。将我的技术专长和分析技能应用于无缝融合金融和技术的领域是一个令人兴奋的前景。

祝愿我在 2025 年学习、适应和拥抱新的可能性!🚀

Jane Street第一轮面试体验

很快就约上第一轮面试,是Coding,一个小时。

jane-street-scheduled-first-around-interview Jane Street第一轮一小时面试体验卡(伦敦软件工程师) 程序员 计算机 软件工程 面试

Jane Street过了简历关,安排第一轮Coding面试

我们收到了您的简历,希望您能担任 Jane Street 的软件工程职位。如果您对这个职位不感兴趣,请告诉我。请记住,在面试过程中,我们将不断评估您在 Jane Street 担任所有职位的潜力。

如果您想参加这个职位的面试,请让我知道您在接下来的两周左右的时间内是否有时间进行一小时的面试,如果可能的话,请在英国时间的正常工作时间内进行。我们的面试官使用 https://coderpad.io 进行一些编码练习,因此请确保您有电脑和互联网接入以进行通话。您的面试官将在通话期间为您提供 coderpad.io 的会话链接。作为参考,coderpad 短链接如下所示:https://cpad.io/012345,有效期为一小时。

我们首选的面试方式是通过 Zoom。

虽然 OCaml 是我们选择的编程语言,但我们鼓励您使用您最熟悉的语言进行编程,无论是功能性语言还是其他语言。要了解我们在编程面试中会遇到什么情况,您可以阅读我们的博客文章,其中介绍了我们在通话期间寻找的内容以及我们想要实现的目标。您还可以在我们的准备页面上了解有关我们的软件工程师面试流程的更多信息。

我们意识到许多类似的职位都提供远程工作机会。我想坦率地说,我们并不普遍提供这种机会。目前,几乎所有的软件工程师都住在离办公室足够近的地方,可以定期通勤。有些人选择几乎一直在办公室工作;其他人则将工作时间分配在办公室和家里。但是,我们通常不提供完全远程工作。

包容性对我们来说非常重要——如果您需要调整或有任何特殊要求,请尽快告知我们,我们将共同找到适合您的面试流程。最后,如果您在接受我们的面试时收到其他公司的任何报价或截止日期,请给我发电子邮件并提供详细信息,以便我们与您合作加快我们的流程。

如果您有任何问题,请告诉我,我期待您的回复!

面试的时候是一小时在Coderpad.io上敲代码,这个链接是面试开始的时候面试官才发的,有效期是一小时,一面试完就不能访问了,以前Meta还是Google,面试完后链接还会在短期内有效,可以回看自己在面试时的代码。

JS的第一轮面试并不考传统的力扣/Leetcode。这点和Meta不一样,Meta就是45分钟两道标准力扣题,只要刷力扣就没啥问题。

谷歌也不太一样,我面试的谷哥从来不考力扣题,45分钟就一道题,有很多Follow-up问题,甚至会考你把算法怎么优化scale-up到分布式系统中。

JS的这一题题目类似是:设计一个XXXX,当你选完任何一种(主流)编程语言后,面试管就会把题目以当前语言复制到CoderPad中,比如API等。题目不难,但是得敲很多代码,这一次我感觉题目对算法难度要求不高,但对数据结构要求要熟悉(比如哈希表/优先队列等)。有第二问Follow-up我没时间敲代码了,但是给面试管讲了思路。

反省:很可惜,没过,我以为我能至少过这一轮,约个Onsite面试的。隔了一周,JS发来拒信,我问了反馈,但不给:

我们意识到面试过程可能会遗漏某些问题。虽然我们希望能够为每个人提供个性化和详细的反馈,但不幸的是,这并不是我们流程的一部分。

jane-street-no-feedbacks-after-interview Jane Street第一轮一小时面试体验卡(伦敦软件工程师) 程序员 计算机 软件工程 面试

Jane Street面试后不给任何Feedbacks/反馈

我感觉我被拒的原因可能是:写代码过程中第一次选择的数据结构不对,然后在面试官的提示下改正了,还有就是花了较长的时间Clarify导致后面第二问没时间写代码。然后就是有一小段时间写代码并没有Think Aloud,应该每敲一行代码就得解释一下,边写边说,和面试官互动。

Jane Street 的软件工程师职位是否有不同的级别(资历)?

Jane Street 并没有像其他科技公司(例如 Google 的 L3-L7 体系)那样的正式软件工程师级别(Software Engineer Levels),而是采取更加灵活、基于影响力的晋升方式。这点和Meta就一样,在Meta,听说码农的级别是严格保密的。Meta觉得隐藏级别更容易在技术讨论中迸发出想法,而不会因为同事/对方级别高而有所顾虑。

Jane Street 如何处理资历和成长:

  • 没有“高级”或“资深”软件工程师等正式头衔。
  • 工程师会随着 实际贡献和经验 自然地承担更多责任。
  • 薪资和影响力 会随个人表现增长,而不是依赖于晋升。
  • 有经验的工程师通常会承担 指导、架构设计和领导 方面的工作。

如果你习惯了传统的晋升路径,Jane Street 的体系可能会有所不同。但这里更注重 实际影响力,而不是职位晋升的名义。

在Jane Street完成第一轮软件工程师面试后,多久能收到回复?

Jane Street 通常会在 一到两周内 给予第一轮面试的反馈。但具体时间可能因候选人数和岗位需求而有所不同。

如果超过两周仍未收到回复,可以考虑给你的 招聘负责人发送一封礼貌的跟进邮件 询问进展。

Jane Street伦敦在扩招?

感觉JS在伦敦好多职位:Join Jane Street London

jane-street-london-roles-scaled Jane Street第一轮一小时面试体验卡(伦敦软件工程师) 程序员 计算机 软件工程 面试

Jane Street伦敦放出来的职位很多


Jane Street是金融量化公司给钱给很多的那种,是相当的多。
Share on X


准备面试JS的软件工程师职位?油管上也有很多视频可以看看。

面试经历

面试题

面试技巧

面试其它

英文:Jane Street First Round Interview Experience (Software Engineer at London)

本文一共 2805 个汉字, 你数一下对不对.
Jane Street第一轮一小时面试体验卡(伦敦软件工程师). (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c Jane Street第一轮一小时面试体验卡(伦敦软件工程师) 程序员 计算机 软件工程 面试
The post Jane Street第一轮一小时面试体验卡(伦敦软件工程师) first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 个人网站Adsense广告申请通过: 需要最少15篇文章 我的个人网站 zhihua-lai.com 本月通过了 Adsense 审核,终于可以再次放置广告,赚些零花钱了。 其实,最初 Adsense 账户通过审核后就能直接放广告,但后来规则变得严格了。如果一个网站长时间没有放置任何 Adsense 广告代码,账户资格会被撤销。重新启用时,需要进行单独审核。如今,在 Google Adsense 中新增一个域名,也必须通过审核后才能投放广告。 为了让我的网站通过审核,我尝试了几次,但总是被拒,原因之一是必须要有足够的内容支持。例如,以前我做的工具网站 SlowAPI.com...
  2. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  3. 部署和运行 DeepSeek R1-8b 大型语言模型 (LLM) 的两个简单命令 视频:油管/Youtube | B站/小破站 | 微博视频 | 西瓜视频 | 微信视频号 | X/推特 | 小红书 大型语言模型(LLMs)如 DeepSeek...
  4. 避免选择低质量没保障的 VPS 公司 现在程序员基本都会有VPS服务器, 价钱也不贵, 一个月几美元, 随随便便就能申请个玩. 我自己这几年也玩了不少VPS, 现在手上大概有10台VPS, 用于不同的服务: 博客, 区块链, API等用途. 上两周, 其中一台服务器商 supremevps 突然发邮件 给两天时间,...
  5. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  6. 编程: NodeJs/Javascript 函数检查Tron/波场区块链上的交易是否已确认(TronGrid API) 我们想知道给定的交易是否已经在 Tron/波场 区块链上确认,这可以通过 TronGrid API 轻松实现。 为了确保交易在Tron/波场区块链上被确认,验证逻辑应关注交易的状态,这表明交易是否已被 Tron 虚拟机(TVM)成功处理。以下是正确的验证方法: 检查 receipt.result 验证交易成功的主要标志是 receipt.result 字段。值为 “SUCCESS”...
  7. 同一台服务器上多个WORDPRESS站点的一些设置可以移出去 我自从把所有网站都挪到一处VPS服务器上 就发现很多事情省事很多 可以同时管理多个网站 包括 WORDPRESS博客. 比如我有四个WORDPRESS博客 然后我就把通用的一些资料给移出去 移到 HTTP或者HTTPS都不能直接访问的文件夹里这样就更安全许多. 文件 wp-conn.php 存储了 相同的数据库资料. 1 2...
  8. 2019剑桥龙舟节: 很荣幸代表福建船队参赛 时间: 2019年6月2日星期日 前不久, 剑桥每年一度的龙舟节在剑桥Jesus Green大草地还有边上的剑河举行了. 每次都是星期天, 所以基本上附近的华人都来了, 很热闹. 旁边的剑河里有条不紊的两两进行着淘汰对抗赛, 草地上大人小孩子席地而坐, 野餐, 聊天. 孩子们有蹦蹦床玩, 有美食(摊位)广场, 天空做美,...

Delphi编程语言三十周年了!


delphi-30-years Delphi编程语言三十周年了! Delphi / Turbo Pascal 程序设计 计算机 资讯

Delphi最初的版本, Delphi被称为是VB Killer

知道Delphi这个编程语言的估计暴露年龄了。很多人以为Delphi这门程序已经挂了,但实际上没有:IsDelphiDead.com

我最后一次用Delphi是2018年,在我离开一个剑桥初创企业,当时我从2009年到2018年,用Delphi写了超过40万行Delphi代码。其中包括了一些C++还有WIN32内链汇编。

Delphi 30周年纪念日

2025年,Delphi迎来了其发布30周年纪念日。自1995年首次亮相以来,Delphi凭借其高效、稳定的特性,成为众多开发者的首选工具。在这30年间,Delphi经历了辉煌、低谷,如今在全球范围内依然拥有忠实的用户群体。

Delphi的诞生与辉煌

Delphi最初由Borland公司于1995年推出,作为Windows平台下的快速应用程序开发工具(RAD),其前身是DOS时代盛行的“Borland Turbo Pascal”。Delphi以其可视化组件库(VCL)和高效的编译器,使开发者能够快速构建复杂的应用程序。在1999年发布的Delphi 5版本中,Delphi达到了用户数量的巅峰,一度超越了Visual Studio,成为开发者的首选工具。

挑战与低谷

然而,好景不长。在推出Delphi 7之后,Borland公司因内部管理问题和市场竞争激烈,逐渐走向衰败。Delphi的创始人Anders Hejlsberg离开公司,转投微软并开发了C#语言,这对Delphi造成了沉重打击。同时,Java和.NET等新技术的兴起,进一步挤压了Delphi的市场空间。高昂的定价策略也使得许多开发者转向其他工具,Delphi的用户群体急剧萎缩。

重生与发展

尽管经历了低谷,Delphi并未消失。在被Embarcadero公司收购后,Delphi不断进行技术革新,推出了支持多平台开发的版本,如Delphi XE系列。这些版本支持Windows、Android、iOS和Linux等平台,满足了现代开发的需求。在全球范围内,Delphi在巴西、中国、德国、俄罗斯和非洲等地仍然拥有广泛的用户基础。特别是在中国,Delphi在教育领域和企业级应用中依然发挥着重要作用。

展望未来

随着技术的不断发展,Delphi也在积极适应新的趋势。从最初的单一平台开发工具,到如今支持多平台、多设备的综合性开发环境,Delphi始终在追求创新。在未来,Delphi将继续优化其跨平台能力,提升开发效率,为全球开发者提供更强大的支持。

在这30周年之际,让我们向Delphi致敬,感谢它为全球开发者带来的卓越贡献。期待Delphi在未来继续引领技术潮流,为开发者创造更多可能。

聪明的程序员用Delphi

“真正的程序员用C++,聪明的程序员用Delphi”这句话曾在IT界广为流传,体现出Delphi简单、高效等优点。 Delphi最初的版本, Delphi被称为是VB Killer, 在Windows下可以快速开发Native的WIN32/64代码。代码执行效率高因为是编译(Compiled)的而不像VB解释式的(Interpreted)。

Delphi作为Windows平台下的快速应用程序开发工具(RAD:Rapid Application Development),以其简单、高效和功能强大的特点,深受开发者喜爱。与C++相比,Delphi更易于上手,开发效率更高;而与Visual Basic相比,Delphi功能更为强大。因此,使用Delphi的程序员被认为是“聪明的程序员”。

聪明的程序员用Delphi

Delphi(VB Killer)是一种编程语言,它是由Borland公司于1995年推出的。Delphi是一种基于Pascal的高级编程语言,它是一种面向对象的编程语言,它是一种结构化编程语言,它是一种事件驱动的编程语言。也被称为Object Pascal。

英文:Delphi is 30 Years Old!

本文一共 922 个汉字, 你数一下对不对.
Delphi编程语言三十周年了!. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c Delphi编程语言三十周年了! Delphi / Turbo Pascal 程序设计 计算机 资讯
The post Delphi编程语言三十周年了! first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 假期送娃去管弦乐队速成班 (Holiday Orchestra) 两个孩子除了学习钢琴外,还各自学习了第二种乐器:老大学的是大提琴,老二学的是小提琴。这个圣诞节假期,我们为他们报名参加了为期4天的管弦乐队速成班,从早上9点半到下午4点半,中间休息一小时,总费用为229英镑,第二个孩子享受了折扣。 在4天的速成班中,孩子们第一天觉得非常累,特别是下午的2小时以上的排练,他们不停地拉琴,手感非常酸。刚开始他们看谱较慢,一不小心就错过了几个音符,但他们都坚持下来,并在最后一天进行了完美的表演。 管弦乐队分为Strings和Bands等部分。其中,Strings包括大提琴、小提琴和BASS(一种体型较大的乐器,外形类似大提琴)。Bands则包括各种吹奏的管乐器。要加入Upper Strings,需要达到或超过五级水平,而Lower Strings则是面向未达到五级的孩子。因此,参加考级不仅是对学习音乐的一种监督,也能解锁更多的可能性。 在表演当天,孩子们穿着帅气,这是他们的高光时刻。唯一的遗憾是我们坐在正中间,但孩子们被其他孩子挡住了,所以拍照和录像的角度都不理想。表演的厅很大,下次我们应该尝试到二楼从上往下拍摄。 PS:照片是我用单反(加能 EOS 6D Mark II 加大三白70-200mm中长焦红圈镜头拍的) 本文一共 443 个汉字,...
  2. 高大上 CloudFlare Pro CloudFlare CDN 的免费帐号已经很不错了 很多免费的功能, 最主要是 可以无限添加站点 每个站点都可以用上免费的 Universal SSL 还提供网站节流 安全 提速等功能. 往往只需要1个按键就可以 对于大部分用户来说是非常有用和省心的. 我又败家了...
  3. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  4. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  5. 微博帐号被盗 昨天想上微博 才发现 密码怎么都不对 密码不可能记错的 就那几个试来试去没一个对的. 本以为是系统暂时的问题 今天 还是这样于是就用忘记密码找回登陆信息. 改了一个比较复杂的密码. 登陆上 发现 有一私信: 果真 帐号被盗了 也许是暴力破解...
  6. bidvertiser的广告收入: 2年10美元 2013年申请了一个 bidvertiser 的广告 类似 google adsense, 不过是 Pay Per Click 按次点击付费的. 这个月收到了最低付费标准的 10美元 Paypal 并没有扣手续费....
  7. 老婆代购 – 畅购英伦 更新: 全新的 代购网站 畅购英伦 上线了! 求推广, 求转发, 求收藏! 多多使用 多多提建议! 我因为懒 而且还有其它原因 是不愿意做代购的. 我老婆最近在计划做代购的事情 因为老大下个月就上幼儿园了...
  8. 快通过 PAYPAL ME 捐点给我吧 PAYPAL在西方国家 很是流行 国内的山寨PAYPAL就是支付宝. PAYPAL 的好处就是 在英国和银行转帐 免费的. 转帐的速度很快. 几乎是几秒就转到了我的HALIFAX银行. PAYPAL和EBAY还真是一伙的 之前在EBAY上卖 需要交 10%的费用 PAYPAL费用 还有EBAY的上架费....

部署和运行 DeepSeek R1-8b 大型语言模型 (LLM) 的两个简单命令


视频:油管/Youtube | B站/小破站 | 微博视频 | 西瓜视频 | 微信视频号 | X/推特 | 小红书

大型语言模型(LLMs)如 DeepSeek R1-8B 正在革新自然语言处理,使强大的 AI 驱动应用成为可能。然而,设置这些模型往往是一项艰巨的任务,需要复杂的配置。幸运的是,仅需两条简单的命令,您就可以使用 Ollama 在本地系统上轻松部署和运行 DeepSeek R1-8B——Ollama 是一个用于管理和运行开源 LLMs 的简化工具。

步骤 1:安装 Ollama

Ollama 让在本地运行大型语言模型变得更加简单。要安装它,请运行以下命令:

sudo apt install curl -y
curl -fsSL https://ollama.com/install.sh | sh

此命令执行以下操作:

  • 安装 curl,一个用于从互联网下载文件的命令行工具(如果本地没有安装的话)。
  • 下载并执行 Ollama 安装脚本,设置运行 LLMs 所需的一切。

步骤 2:运行 DeepSeek R1-8B

安装 Ollama 后,您可以立即运行 DeepSeek R1-8B 模型:

ollama run deepseek-r1:8b

此命令:

  • 从 Ollama 的存储库拉取 DeepSeek R1-8B 模型(如果尚未下载)。
  • 启动模型,使您可以通过命令行与其交互。

您还可以把deepseek-r1:8b换成llama3.2等,具体看模型列表

为什么使用 Ollama?

  • 易于使用:无需复杂的 Docker 设置或环境配置。
  • 本地推理优化:Ollama 旨在高效地在消费级硬件上运行。
  • 快速设置:整个过程仅需几分钟,让您专注于使用模型,而非配置它。

Ollama 是一个功能强大且用户友好的工具,专为在本地运行和管理开源大型语言模型(LLMs)而设计。它通过消除复杂的配置需求,简化了部署过程,使 AI 模型更易于开发者、研究人员和爱好者使用。借助 Ollama,用户只需使用简单的命令即可轻松下载、运行并与各种 LLMs 交互,确保流畅高效的使用体验。Ollama 针对本地推理进行了优化,能够在消费级硬件上高效运行,使用户无需依赖云端解决方案即可利用先进 AI 模型的强大能力。

结论

部署和运行像 DeepSeek R1-8B 这样的高级 LLM 并不复杂。只需两条简单的命令,您就可以在本地计算机上运行一个强大的 AI 模型。无论您是开发者、研究人员还是 AI 爱好者,这种简化的设置都让 LLMs 的实验变得更加轻松。

立即尝试,体验 DeepSeek R1-8B 的强大功能!

大语言模型 LLM = Large Language Model

英文:Two Simple Commands to Deploy and Run the DeepSeek R1-8b Large Language Model (LLM)

本文一共 714 个汉字, 你数一下对不对.
部署和运行 DeepSeek R1-8b 大型语言模型 (LLM) 的两个简单命令. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 部署和运行 DeepSeek R1-8b 大型语言模型 (LLM) 的两个简单命令 DeepSeek 人工智能 (AI) 技术 教育 程序员 计算机 计算机
The post 部署和运行 DeepSeek R1-8b 大型语言模型 (LLM) 的两个简单命令 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  2. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  3. 力扣刷题获得一件衣服奖励(Leetcode DCC Winner) 我每天都在力扣上刷题。力扣有国服和美服,我两边都会打卡。每天打卡可以获得积分,而积分可以兑换各种礼物,比如T恤、卫衣、水壶,甚至可以用来抵扣一个月的会员费用。 我从2018年8月开始刷题找工作(当时去伦敦面试亚马逊),从那时起每年都会续费会员,费用是159美元,相当于每月13.25美元。我觉得这是对自己最值得的投资。买了力扣会员,就会有动力刷题、思考,通过不断练习让自己熟能生巧,保持一定的竞争力。 到目前为止,我已经用积分兑换了7-8件力扣的衣服,其中有2-3件是卫衣。国内的礼物我都寄到姐姐家。 前不久,我收到了力扣的邮件,说我获得了DCC奖励。我也不知道为什么会获得这个奖,随手回了邮件。没多久,就收到了一件新版的力扣衬衫。 英文:Leetcode DCC Winner T-shirt 本文一共 291 个汉字, 你数一下对不对. 力扣刷题获得一件衣服奖励(Leetcode DCC Winner)....
  4. 同一台服务器上多个WORDPRESS站点的一些设置可以移出去 我自从把所有网站都挪到一处VPS服务器上 就发现很多事情省事很多 可以同时管理多个网站 包括 WORDPRESS博客. 比如我有四个WORDPRESS博客 然后我就把通用的一些资料给移出去 移到 HTTP或者HTTPS都不能直接访问的文件夹里这样就更安全许多. 文件 wp-conn.php 存储了 相同的数据库资料. 1 2...
  5. 老婆的配偶签证被拒 郁闷死了, 601镑签证费打水漂,一去不回!费钱费力. 去年12月份我请了律师拿到了永居.老婆是T1G签证的陪工签 (DEPENDENT VISA) 2016年4月份到期. 然后我就想说得趁早把她的签证转成配偶签(SPOUSE)这样她就可以尽快走五年永居的路线. 今天收到拒签信,原因是我没有提供 有工资进帐的那份银行帐单,我提供了我和我老婆的联名帐户, 但是工资并不是直接打到这个帐单上的.所以就这一点被拒了.完全不给解释,不给补材料的机会.601镑就这样再见了. 英国的签证寄出之后是先由另一个部门先收费, 收完费才正式审理,而且不管结果如何是不退钱的.后悔没让律师弄,也不至于到现在浪费这么多时间和金钱,签证还没过.由于原签证还没到期,所以还不能上述.估计只能等搬完家后年底请律师搞定这事. 真是郁闷, 600镑, 我可以再买一个IPHONE6,或者给我的新买的车换四个轮胎....
  6. 公司给配了台高配DELL笔记本 早上例会结束的时候我顺便说了一句 我的笔记本有点慢, 当时我并不知道我的经理远程用电话也参加会议了(他全程在听), senior staff SE 对着电话说, “peter, you hear that? btw, my disks are...
  7. 花钱让人换汽车钥匙的电池真是个智商税 今天想不到我这么聪明的人也被人狠狠的收了一把智商税. 今天被收智商税了, 去 Tesco 换车钥匙的电池. . 才发现如此的简单, 那人直接2分钟搞定2个, 然后收了我25英镑. . 服了. . 我还以为很复杂…… 网友说 “1....
  8. 优化设计 个人主页 并且 PageSpeed Insights 双项 100分 坛子的个人主页 www.tanzhijun.com 不错 很适合个人主页的模板. 而且是手机友好. 于是我照着把 我的主页改了改. https://steakovercooked.com 并且做了几点修改: 0. 使用 google mod_pagespeed 把 JS,...

如何轻松创建并托管你的 GitHub Pages 站点 (无服务器静态应用)


创建一个 GitHub Pages 站点是一个简单的过程,可以免费为你的个人、项目或组织创建网站/博客。按照此指南开始。

步骤 1:创建 GitHub 仓库

  • 登录你的 GitHub 账户。
  • 点击“新建”来创建仓库。
  • 对于个人站点,命名为 .github.io。
  • 对于项目站点,使用任何有效的名称。

步骤 2:添加你的站点文件

使用以下命令克隆仓库到本地机器:

git clone https://github.com/<username>/<repository-name>.git

创建一个 index.html 文件,包含你想要的内容。这里是一个例子:

<!DOCTYPE html>  
<title>我的 GitHub 页面</title>
<h1>欢迎访问我的站点</h1>
<p>这是我的第一个 GitHub Pages 站点。</p>

或者,你可以使用 README.md(Markdown)作为首页。

## 我的 Github 页面
### 欢迎访问我的站点
THis is my first Github Pages site.

将你的更改提交并推送到 GitHub:

git add .
git commit -m "Initial commit"
git push origin main
how-to-setup-github-pages-static-apps 如何轻松创建并托管你的 GitHub Pages 站点 (无服务器静态应用) Github 学习笔记 小技巧 程序设计 网站信息与统计 计算机 计算机

Github 上启用 Github Pages 的步骤

步骤 3:启用 GitHub Pages

  • 转到你的仓库设置。
  • 在侧边栏点击“Pages”。
  • 在“源”下选择分支(例如,main)和文件夹(如果适用)。
  • 点击“保存”。

步骤 4:查看你的站点

  • 对于个人站点:访问 https://<username>.github.io/。
  • 对于项目站点:访问 https://<username>.github.io/<repository-name>/。

步骤 5:自定义你的站点

要添加主题,请转到 Pages 设置并选择“选择一个主题”。

你还可以上传额外的 HTML、CSS 和 JavaScript 文件以进行进一步的自定义。

为什么 GitHub Pages 是“无服务器静态应用” / Serverless Apps

GitHub Pages 作为无服务器静态应用运行,因为它们直接向用户提供预构建的静态 HTML、CSS 和 JavaScript 文件,而不依赖后端服务器或运行时动态内容生成。相反,这些文件托管在 GitHub 的全球内容分发网络(CDN)上,确保快速有效的交付。

优点:

  • GitHub 提供的免费托管。
  • 不需要服务器维护。
  • 由于 CDN 分布,加载速度快。
  • 简化了静态站点的部署和扩展。

缺点:

  • 仅限于静态内容;不支持像数据库这样的服务器端功能。
  • 高级工作流的自定义需要技术知识。
  • 依赖于 GitHub 的基础设施。

GitHub Pages 的总结

GitHub Pages 是一个令人赞叹的免费托管网站的工具。只需几步,你就可以为你的项目、作品集或个人使用创建一个站点。通过利用无服务器模型,你可以构建轻量、高效且维护最小的站点。

英文:How to Setup and Create GitHub Pages (Serverless Static Apps)

本文一共 587 个汉字, 你数一下对不对.
如何轻松创建并托管你的 GitHub Pages 站点 (无服务器静态应用). (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 如何轻松创建并托管你的 GitHub Pages 站点 (无服务器静态应用) Github 学习笔记 小技巧 程序设计 网站信息与统计 计算机 计算机
The post 如何轻松创建并托管你的 GitHub Pages 站点 (无服务器静态应用) first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 英国房子的EPC节能报告(Energe/Efficiency Performance Certificate) EPC (Energe/Efficiency Performance Certificate) 是英国房子的节能报告, 法律上规定, 每个房子都必须要有一个EPC报告, 报告的有效期为十年. 房东在把房子出租或者想卖房的时候, 这个EPC就必须有效, 在一些情况下 比如出租房子的时候, 这个EPC报告还必须符合一些最低标准, 比如房子必须满足 F档(类似及格线)...
  2. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  3. 最好的发财策略就是忘记它 在群里我和 @nationalpark 说到我用STEEM换了3000多个 YOYOW的时候我还有点沾沾自喜, 谁知道他一针见血: 听说你是steem换的我顿时心理平衡了 才突然想起来, 我半个月前是拿 500 个 STEEM 换了 将近3300个YOYOW. 今天 STEEM的价格8美元,...
  4. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  5. 英国TESCO超市有偿回收瓶子 前不久, 英国剑桥 Bar Hill 的的 TESCO乐购超市推出了一个回收瓶子的机器, 这机器就在超市入入口出. 只需要把瓶子放进去, 机器自动识别, 然后每个瓶子10P也就是相当于1块人民币. 完成后会给个小票, 买东西可以拿来当折扣用. 如果嫌麻烦, 在回收完成还可以选择捐给慈善机构. 机器非常人性化,...
  6. 面试刷题更像是一种服从性测试 在许多求职者看来,面试中的刷题环节似乎是对技术能力的直接考察。然而,从另一个角度来看,这一过程或许更像是一场服从性测试。 想象一下,当一个公司要求候选人解决复杂的算法问题或设计一个系统架构时,真正的目的并不仅仅是判断候选人是否能完成这项任务。许多时候,公司更关心的是你是否愿意花时间和精力去迎合他们的流程和标准。 为什么这样说呢?从实际工作中来看,绝大多数岗位并不需要员工每天都在解决高难度的算法问题或从零设计分布式系统。相反,工作中的任务更偏向于理解业务逻辑、维护现有系统以及团队协作。那么,为什么刷题依然是很多公司青睐的筛选方式? 答案或许在于,刷题能有效筛选出那些愿意投入大量时间准备,并在面试中展现高度配合精神的候选人。这种配合精神,是公司希望在未来的工作中看到的品质。一旦你通过了这些测试,公司就会认为你是一个值得信赖的员工,一个能遵从流程、适应规则并在需要时投入额外努力的人。 还有就是以前说的:面试刷力扣是大公司过滤的成本较低的方法之一:为啥有名的IT公司的程序员面试都这么难?,可以过滤掉大部分 False Positive,当然也有可能过滤掉人才(胜任工作的求职者)。不过对于大厂来说,招进来一个False Positive的损害要远远比错过一个False Negative大。 此外,随着AI技术的飞速发展,刷题的技术价值正在逐渐降低。像ChatGPT这样的AI工具,已经可以轻松解决LeetCode或Codeforces上的许多高难度问题,并给出清晰的解题过程。这表明,算法题不再是人类独有的技术优势,而是可以被高效地自动化处理的任务。这种变化进一步凸显了刷题在实际工作中的局限性,因为日常工作更多依赖于沟通、业务理解和对系统的长期维护,而不是短时间内解决某个抽象问题。 OpenAI推出o3大语言AI模型。 Codeforces 评分:2727——相当于全球人类程序员编码竞赛中,排名第 175 位。...
  7. 英国 NatWest 银行推出 Reward Current Account 用来交水电费等帐单可以省钱 英国 NatWest 银行推出 Reward Current Account 银行帐号, 每个月需要交会费 3 英镑, 一年则需要36英镑 并不便宜, 但是好处是 只要通过该帐号以 Direct...
  8. 离开 NPower – 在英国选择便宜的电气公司 extraenergy 在彻底离开 谢菲尔得的那一天 和房东一起读了 电表, 公寓里只用电 没有媒气 所以做饭也用电 特别贵. 虽然在 13年底装了 两个电表. 白天一个 晚上 12点到早上7点另一个表, 所以两个计费....

Sui 区块链编程: 通过 NodeJs/Javascript 函数获取 Gas 费用


在区块链开发的世界中,理解和管理gas费用对于优化交易至关重要。Sui作为一个相对较新但功能强大的区块链平台,有其独特的方式来处理gas价格。让我们来探讨如何使用Node.js和JavaScript获取Sui的gas价格。

Sui中的Gas理解

在区块链语境中,gas指的是执行交易或智能合约所需的费用。在Sui中,gas以MIST计量,其中1个SUI等于10^9个MIST。这意味着gas价格通常以每个交易或操作的MIST来报价。

获取Gas价格

这里有一个简单的异步函数来从Sui节点获取当前的gas价格:

const QUICKNODE_URL = "https://sui-mainnet-endpoint.blockvision.org"; // 你可以使用你自己的节点。

async function getGasPrice() {
    try {
      const response = await axios.post(QUICKNODE_URL, {
        method: "suix_getReferenceGasPrice",
        jsonrpc: "2.0",
        id: 1,
        params: [],
      });
      return parseFloat(response.data.result);
    } catch (error) {
      console.error("获取gas价格时发生错误:", error);
      return null;
    }
}

代码解析

  • axios.post: 我们使用axios向Sui RPC节点发送HTTP POST请求(假设QUICKNODE_URL在其他地方已定义为正确的URL)。
  • 方法和JSON-RPC: 使用 suix_getReferenceGasPrice 方法查询gas价格。采用JSON-RPC 2.0协议进行通信。
  • 错误处理: 如果获取gas价格时发生错误,会记录错误,并返回null以表示失败。

使用函数

你可以在异步上下文中调用这个函数:

(async () => {
  const gasPrice = await getGasPrice();
  if (gasPrice !== null) {
    console.log(`当前gas价格: ${gasPrice} MIST`);
  } else {
    console.log("无法获取gas价格。");
  }
})();

重要说明:

  • MIST: 返回的gas价格是以MIST计量的。为了实际应用,你可能需要将它转换为SUI以增加可读性,使用 gasPrice / 10^9。
  • QuickNode URL: 你需要用你实际的RPC节点URL替换QUICKNODE_URL。如果你不使用QuickNode,你可以连接到任何支持此RPC方法的Sui节点。
  • 异步特性: 记住,区块链交互本质上是异步的,因此使用async/await来处理promise。

获取Sui区块链Gas费用/价格的结论

使用Node.js获取Sui中的gas价格是直接的,但需要理解区块链gas机制的细微差别以及JSON-RPC通讯。这个代码片段可以作为开发者开始将gas价格检查整合到他们的Sui区块链应用中的起点,确保他们能够有效管理交易成本。

英文:Sui Blockchain Programming: Get the Gas Fee via NodeJs/Javascript Function

Sui 区块链编程

本文一共 496 个汉字, 你数一下对不对.
Sui 区块链编程: 通过 NodeJs/Javascript 函数获取 Gas 费用. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c Sui 区块链编程: 通过 NodeJs/Javascript 函数获取 Gas 费用 Javascript Node Js Sui 加密货币 区块链 程序设计 计算机 计算机
The post Sui 区块链编程: 通过 NodeJs/Javascript 函数获取 Gas 费用 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 油管视频/Youtube Premium会员的好处: 用了就回不去了 从前年开始,我成为了 YouTube 会员,不过中间时断时续,因为觉得价格有点贵。在英国,YouTube 家庭会员每月费用是 19.99 英镑(可供五位家人共享),而个人会员则是每月 12.99 英镑。去年回国前,我暂停了一段时间的会员服务,但回到英国后发现自己已经离不开 YouTube 会员了。 成为会员的最大好处就是没有广告。最初,YouTube 是没有广告的,但随着平台上视频数量激增,广告也逐渐多了起来。如今,YouTube 已然是长视频的王者,谷歌当年的收购绝对算得上是一次非常成功的商业决策,足以写进教材。随着视频数量越来越多,用户一辈子也看不完平台上的内容,所需的服务器资源也水涨船高。因此,谷歌插入广告确实无可厚非。然而,从最开始的一两个广告,到如今非会员用户每隔五分钟就得忍受一次广告,用户体验确实大打折扣。 会员的另一个好处是可以下载视频,不过并不是直接下载为视频文件.mp4,而是保存在设备上。这样一来,可以提前下载好音乐或视频,开车时就无需耗费流量了。 此外,YouTube...
  2. TikTok未能出售: 流量“难民”涌入小红书, 能否接得住? 最近,随着TikTok因监管压力未能在1月19日前完成出售事宜,大量的内容创作者和用户正在寻找新的平台安置自己的内容生态和社交网络。这一波流量转移,意外地将小红书(RedNotes)推向了风口浪尖。打开小红书,推荐页面中已经充满了国外用户的身影,甚至有用户戏称“小红书变成了‘国际版种草机’”。然而,这一流量迁徙带来的热闹背后,蕴藏着深刻的挑战和机会。 不过,由于美国新政府很快就要上台了,特朗普对抖音是比较友好的,所以目前这种局面可能会迎来新的转机。拜登政府上台后,政策方向可能会与特朗普有所不同,尤其是在针对中国企业的态度上,可能会采取更加审慎的评估方式,而不是简单的封杀或施压。 对于TikTok而言,这或许意味着缓冲的机会。一方面,拜登政府可能会重新审视TikTok在美国的安全问题,并尝试通过更为温和的方式解决争议,比如进一步完善数据监管和用户隐私保护,而非直接推动出售或下架。另一方面,如果政策有所松动,TikTok也许能够在国际市场重新站稳脚跟,挽回部分因政策不确定性流失的用户和广告商。 不过,这种转机并非完全没有挑战。TikTok必须快速适应美国监管层面可能提出的新要求,比如建立更加透明的数据管理流程、确保服务器本地化、以及加强对算法和内容分发的自我监督。此外,TikTok还需要修复此前因封杀风险导致的品牌信任危机,重新赢得用户和合作伙伴的信赖。 对于小红书来说,这也可能是一个需要重新评估全球化策略的时刻。如果TikTok因政策调整成功稳定住国际市场,那么这波流量“难民”可能会逐渐回归,甚至减少在小红书上的活跃度。这要求小红书在短期内快速吸引这些用户,并通过强化社区黏性和内容多样化,尽可能锁住这批流量。同时,小红书也需要未雨绸缪,为可能到来的用户流失准备应对策略。 无论TikTok是否会迎来转机,这场流量的争夺战都表明,在全球化的竞争中,灵活应变、长期规划和技术实力才是赢得用户和市场的关键因素。 外来流量与用户画像的冲突 小红书一直以其独特的社区氛围闻名,聚焦于生活方式、种草推荐和用户亲身体验分享,目标用户以中国年轻女性为主。随着大量国际用户的涌入,这一平台的内容调性可能面临巨大的冲击。很多本地用户已经开始抱怨,算法推荐的内容逐渐变得“陌生”,甚至暴露了个人的兴趣偏好。这种文化差异和用户需求的差异,可能会对小红书社区的核心黏性带来挑战。 不过,对于小红书来说,国际流量的到来也可能是一种绝佳的扩展契机。如果能够妥善应对文化融合问题,同时优化算法和内容分发策略,小红书完全有机会成为全球用户的内容分享平台,撬动TikTok留下的空白市场。 连夜招募的“英文审核”反映了什么? 面对流量的猛增,小红书显然已经嗅到了机会。平台据称正在连夜招募英文审核团队,足见其对全球化的重视和危机意识。审核机制的建立是平台内容生态的重要一环,尤其是当国外用户涌入时,如何维持内容的合法性、合规性和调性,将决定小红书能否将这波流量真正留住。 目前来看,这种快速扩展反映了小红书的敏捷反应能力,但从长期来看,审核机制的完善需要时间,语言和文化隔阂可能会导致内容质量在短期内下降。同时,海外用户的内容生产习惯与中国用户不同,是否能够在算法推荐和审核效率之间找到平衡,也是一个值得关注的问题。 小红书的变现模式是否支撑得住? 流量增长对于任何平台来说都是一次巨大的红利,但能否将流量转化为收入才是真正的考验。小红书的商业模式以种草电商为核心,通过“内容+电商”的闭环完成流量变现。然而,国际市场中用户的购买力、消费习惯以及对本土化商品的接受程度,都可能成为变现过程中的障碍。 国际用户的涌入如果只是短期行为,或者消费习惯难以转化为实际的电商订单,那么平台即便流量激增,也很难转化为长期收益。相比之下,TikTok的变现模式更依赖广告,而小红书的广告收入占比相对较低。如果能够快速调整策略,比如增加短视频广告位或推出国际版电商模块,小红书或许能在全球市场中占得一席之地。...
  3. 剑桥网红餐厅 The Ivy Cambridge Brasserie 上周刚过40岁生日,媳妇带我去剑桥的一家网红餐厅——The Ivy Cambridge Brasserie。这家餐厅是朋友推荐的,和那家Trinity一样很有名,可惜我们在剑桥待了近10年才知道。 The Ivy Cambridge Brasserie 是剑桥市中心一家备受欢迎的网红餐厅,位于历史悠久的 Trinity Street。餐厅设计时尚典雅,融合了现代与经典元素,为食客提供了一个舒适而奢华的用餐环境。这里的菜单丰富多样,覆盖全天用餐,从早餐到晚餐以及下午茶,提供英式经典美食如松露鸡肉派、英式早餐等,也有一些国际风味的菜肴。得天独厚的位置和独特的氛围使得 The Ivy Cambridge Brasserie...
  4. 负电价活久见: 安装Octopus智能电表省电费甚至赚钱 前几周我的电气公司 Octopus 终于来装智能电表了(Smart Meter),虽然是免费安装的,但是排队排了有两三年了吧。因为之前一直写邮件催的时候就老是说 Not Ready。 收到邮件说可以安装智能电表我还是相当开心和期待的,因为已经听说这玩意好,但是还是得亲身体验一下。工程师来安装大概不到2小时,其中需要停电闸一会儿,重新接下线。装好后,给了个小册子,自动切换到了 Agile 的电价,也就是每半小时的电价都不一样,提前一天可以在手机App和网站上查得。 正好在原来的电价计费合同快要结束前2天换到了智能电表计价 Octopus Agile方式,但是系统还是扣了我75英镑 Exit Fee (提前合同结束得交违约费),不过我一个电话打过去,公司很爽快就给我退了。...
  5. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  6. 你给SteemIt中文微信群拖后腿了么? 这年头不缺算法, 就缺数据. 这两天花了很多时间在整API上, 整完之后自己用了一下还觉得真是挺方便的. 今天就突然想看一看自己是否给大家拖后腿了, 于是调用每日中文区微信群排行榜单的API, 刷刷拿着 NodeJs 练手: 1 2 3 4 5 6...
  7. ACM题解系列之 – 最小堆栈 (Min Stack) 没事刷刷题能防止老年痴呆, 而且也能让你随时处于最佳状态, 随时都可以炒老板鱿鱼另谋高就. 题目: 设计一个堆栈(Stack)使 push, pop, 和取最小 min 操作时间复杂度都是 O(1). 这题的难点就是在于怎么样用O(1)常数时间复杂度来取得堆栈里的最小值. class MinStack {...
  8. HPZ800服务器主板太老不支持超过2TB的大硬盘 我家里一直用的是HPZ800服务器, 很吵, 很老, 虽然这台服务器已经有十年之久(我在EBAY上买来用了五年多了), 但是即使放到今天, 这服务器速度依旧很快, 很稳定. 由于服务器用的是ECC较验内存, 所以基本上不重启关机. HPZ800主机有两个硬核CPU – 因特志强 X5650 – 每个CPU是12核....

Sui区块链编程: 获取最新块高度(NodeJs/Javascript函数 Latest Block Number/Height)


获取最新区块号(高度)是开发人员在去中心化系统中常见的任务。如果你正在使用 Sui 区块链,并希望通过 Node.js 和 JavaScript 获取最新的区块高度,以下是一个简单的实现方法。

Sui 是一个高性能、可扩展的区块链,以低延迟和创新架构而闻名。与 Sui 的交互需要利用其 API,这些 API 允许开发人员无缝查询区块链数据并与智能合约交互。首先,确保你已在计算机上设置了 Node.js 环境并安装了必要的依赖项。

了解 Sui 区块链:Sui区块链简介

首先,创建一个新的 Node.js 项目。你可以使用以下命令初始化项目:

mkdir sui-block-height
cd sui-block-height
npm init -y

接下来,安装 Axios 库,它通常用于在Node.js中发起 HTTP 请求。我们将用它从 Sui 区块链 API 获取数据:

npm install axios

现在,创建一个名为 getLatestBlock.js 的文件,并在你喜欢的代码编辑器中打开。在这个脚本中,我们将编写一个函数来获取最新的区块高度。Sui 区块链提供了一个 RPC 端点,允许你查询其状态。这个端点是获取区块数据的关键。

以下是代码:

const axios = require('axios');

// Sui RPC 端点 - 如果使用特定网络,请替换为实际端点 
const SUI_RPC_URL = 'https://fullnode.sui.io/v1';

async function getLatestBlockHeight() {
    try {
        // 向 Sui RPC 端点发送 POST 请求
        const response = await axios.post(SUI_RPC_URL, {
            jsonrpc: '2.0',
            id: 1,
            method: 'sui_getLatestCheckpointSequenceNumber',
            params: []
        });
        if (response.data && response.data.result !== undefined) {  
            console.log(`最新区块高度: ${response.data.result}`);  
            return response.data.result;  
        } else {  
            throw new Error('响应结构异常');  
        }  
    } catch (error) {  
        console.error('获取区块高度失败:', error.message);  
        throw error;  
    }  
}

// 运行函数
getLatestBlockHeight().catch((err) => {
    console.error('Failed to fetch the block height:', err);
});

Node.js 代码解析

  • Axios 请求:我们使用 Axios 向 Sui RPC 端点发送 POST 请求。方法 sui_getLatestCheckpointSequenceNumber 用于获取区块链上的最新区块号(或检查点序列号)。
  • 错误处理:正确的错误处理可以确保网络错误或响应格式异常被记录,便于调试。
  • 日志记录:函数将最新的区块高度输出到控制台,这对于快速测试或调试非常有用。

在运行脚本之前,确保 Sui RPC 端点正确且可访问。示例中提供的 URL 指向 Sui 主网的全节点端点。如果你使用的是测试网或本地实例,请将 SUI_RPC_URL 变量替换为合适的端点。

运行脚本的命令:

node getLatestBlock.js

如果设置正确,你应该在控制台中看到打印的最新区块高度。此函数可以轻松集成到更大的应用程序中,或通过修改 RPC 方法和参数来适应其他区块链数据的获取需求。

实时交互区块链数据是构建去中心化应用程序的关键技能。借助 Sui 区块链强大的 API 和 Node.js 的简单性,你可以快速获取最新区块高度,并将此信息用于各种用途,例如监控网络、更新用户界面或触发应用程序中的特定操作。

随着 Sui 生态系统的发展,及时关注其文档和最佳实践可以确保你的集成高效且可靠。

英文:NodeJs/Javascript Function to Get the Latest Block Number (Height) on the Sui Blockchain

Sui 区块链编程

本文一共 729 个汉字, 你数一下对不对.
Sui区块链编程: 获取最新块高度(NodeJs/Javascript函数 Latest Block Number/Height). (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c Sui区块链编程: 获取最新块高度(NodeJs/Javascript函数 Latest Block Number/Height) Javascript Node Js Sui 区块链 学习笔记 小技巧 程序设计 计算机
The post Sui区块链编程: 获取最新块高度(NodeJs/Javascript函数 Latest Block Number/Height) first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 油管视频/Youtube Premium会员的好处: 用了就回不去了 从前年开始,我成为了 YouTube 会员,不过中间时断时续,因为觉得价格有点贵。在英国,YouTube 家庭会员每月费用是 19.99 英镑(可供五位家人共享),而个人会员则是每月 12.99 英镑。去年回国前,我暂停了一段时间的会员服务,但回到英国后发现自己已经离不开 YouTube 会员了。 成为会员的最大好处就是没有广告。最初,YouTube 是没有广告的,但随着平台上视频数量激增,广告也逐渐多了起来。如今,YouTube 已然是长视频的王者,谷歌当年的收购绝对算得上是一次非常成功的商业决策,足以写进教材。随着视频数量越来越多,用户一辈子也看不完平台上的内容,所需的服务器资源也水涨船高。因此,谷歌插入广告确实无可厚非。然而,从最开始的一两个广告,到如今非会员用户每隔五分钟就得忍受一次广告,用户体验确实大打折扣。 会员的另一个好处是可以下载视频,不过并不是直接下载为视频文件.mp4,而是保存在设备上。这样一来,可以提前下载好音乐或视频,开车时就无需耗费流量了。 此外,YouTube...
  2. 负电价活久见: 安装Octopus智能电表省电费甚至赚钱 前几周我的电气公司 Octopus 终于来装智能电表了(Smart Meter),虽然是免费安装的,但是排队排了有两三年了吧。因为之前一直写邮件催的时候就老是说 Not Ready。 收到邮件说可以安装智能电表我还是相当开心和期待的,因为已经听说这玩意好,但是还是得亲身体验一下。工程师来安装大概不到2小时,其中需要停电闸一会儿,重新接下线。装好后,给了个小册子,自动切换到了 Agile 的电价,也就是每半小时的电价都不一样,提前一天可以在手机App和网站上查得。 正好在原来的电价计费合同快要结束前2天换到了智能电表计价 Octopus Agile方式,但是系统还是扣了我75英镑 Exit Fee (提前合同结束得交违约费),不过我一个电话打过去,公司很爽快就给我退了。...
  3. 测测你的幸运 – Linux Fortune-Teller LINUX 下有很好很好玩的命令,之前已经介绍过: figlet, rig, curl. 现在推荐另一个 命令 fortune 是用来随机显示一段(句)话的.fortune 在英文里就是幸运的意思. 这个命令可以不需要 参数 如果没有 可以通过 apt-get...
  4. HPZ800服务器主板太老不支持超过2TB的大硬盘 我家里一直用的是HPZ800服务器, 很吵, 很老, 虽然这台服务器已经有十年之久(我在EBAY上买来用了五年多了), 但是即使放到今天, 这服务器速度依旧很快, 很稳定. 由于服务器用的是ECC较验内存, 所以基本上不重启关机. HPZ800主机有两个硬核CPU – 因特志强 X5650 – 每个CPU是12核....
  5. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  6. 给孩子零花钱培养孩子正确的金钱观价值观 两个娃已经不知不觉7岁8岁了. 媳妇和我商量一下决定给孩子每人每周5英镑的零花钱(Pocket Money). 这样他们慢慢的就有自己的小积蓄备将来不时之需: 比如朋友聚会生日啥的需要准备礼物. 同时, 我们决定不再给孩子买零食(薯片啥的). 孩子一天好几餐, 晚上睡觉前还得吃零食, 我们就多买了很多水果面包, 健康的食物多吃一些总不是啥坏事. 孩子可以用这些零钱买自己想要的东西, 我们也不再过问. 孩子有自己的决定权. 第一周的时候,...
  7. 剑桥网红餐厅 The Ivy Cambridge Brasserie 上周刚过40岁生日,媳妇带我去剑桥的一家网红餐厅——The Ivy Cambridge Brasserie。这家餐厅是朋友推荐的,和那家Trinity一样很有名,可惜我们在剑桥待了近10年才知道。 The Ivy Cambridge Brasserie 是剑桥市中心一家备受欢迎的网红餐厅,位于历史悠久的 Trinity Street。餐厅设计时尚典雅,融合了现代与经典元素,为食客提供了一个舒适而奢华的用餐环境。这里的菜单丰富多样,覆盖全天用餐,从早餐到晚餐以及下午茶,提供英式经典美食如松露鸡肉派、英式早餐等,也有一些国际风味的菜肴。得天独厚的位置和独特的氛围使得 The Ivy Cambridge Brasserie...
  8. Pi币简介: 这真的是区块链上的虚拟货币么? 前几年就听说有一个币叫Pi,但又有听说这币就是屎币不靠谱,说是手机装个APP就能挖。 Pi币(Pi Network)是一种由移动应用程序推广的加密货币项目,据称其目标是让普通人能够通过手机“挖矿”来获得加密货币。以下是对Pi币的详细介绍: Pi币的特点与工作机制 挖矿方式 Pi币的挖矿与传统的工作量证明(PoW,如比特币)不同,它通过一款手机应用完成。用户每天登录应用,点击“挖矿”按钮,即可开始“挖矿”。这种机制主要是为了降低参与的技术门槛和硬件成本。 共识机制 Pi币声称使用的是一种基于“Stellar Consensus Protocol”(SCP,恒星共识协议)的机制。这种共识机制并不像比特币或以太坊那样依赖大量计算能力,而是依赖信任图谱,即用户间的信任关系来达成共识。 无需耗费算力 Pi币的挖矿并不依赖用户手机的计算资源,因此不会显著增加电池消耗或数据使用。这与其他加密货币的能耗问题形成了鲜明对比。 网络层级 先锋(Pioneer):普通用户,每天签到获得Pi币。 贡献者(Contributor):构建信任图谱,通过邀请新用户加入。...

Python 中寻找数据的众数: mode vs multimode


在 Python 中寻找数据的众数

statistics.mode() 函数是 Python 中 statistics 模块的一部分,它返回数据集中出现次数最多的单个值(众数)。与 multimode() 不同,mode() 如果数据集包含多个众数(即多模态数据)或数据为空,则会引发错误。

以下是一些示例来说明 mode() 的行为:

mode() 的语法

statistics.mode(data)

data: 一个序列(例如 list、tuple),其中的元素是可散列的,用于确定众数。

示例

单一众数(单模态数据)
from statistics import mode
data = [1, 2, 2, 3, 4]
result = mode(data)
print(result)  # 输出: 2
字符串作为数据
from statistics import mode
data = ["apple", "banana", "apple", "cherry"]
result = mode(data)
print(result)  # 输出: "apple"
多模态数据(引发错误)

如果有多个众数,mode() 会引发 StatisticsError。

from statistics import mode
data = [1, 1, 2, 2, 3]
try:
    result = mode(data)
except StatisticsError as e:
    print(e)  # 输出: "no unique mode; found 2 equally common values"
无重复值(引发错误)

如果数据集中没有值重复,mode() 会引发 StatisticsError。

from statistics import mode
data = [1, 2, 3, 4, 5]
try:
    result = mode(data)
except StatisticsError as e:
    print(e)  # 输出: "no unique mode; found 5 equally common values"
空数据集(引发错误)

如果数据集为空,mode() 会引发 StatisticsError。

from statistics import mode
data = []
try:
    result = mode(data)
except StatisticsError as e:
    print(e)  # 输出: "no mode for empty data"

在 Python 中寻找多众数

在 Python 中,术语 multimode 通常指 statistics.multimode() 函数,这是 Python 3.8 中 statistics 模块的一部分。此函数用于找到数据集中出现次数最多的值(众数)。与 statistics.mode() 不同,后者仅返回单个众数(如果数据集是多模态的会引发错误),而 multimode() 可以处理包含多个众数的多模态数据集。

语法

statistics.multimode(data)

data: 一个序列(例如 list、tuple),其中的元素是可散列的,用于查找众数。

行为

返回输入数据中所有众数的列表。如果没有元素重复,则返回所有唯一值的列表,因为在这种情况下每个值都是众数。

示例

单一众数
from statistics import multimode
data = [1, 2, 2, 3, 4]
result = multimode(data)
print(result)  # 输出: [2]
多个众数
from statistics import multimode
data = [1, 1, 2, 2, 3]
result = multimode(data)
print(result)  # 输出: [1, 2]
无重复值
from statistics import multimode
data = [1, 2, 3, 4, 5]
result = multimode(data)
print(result)  # 输出: [1, 2, 3, 4, 5]

主要特性

多模态支持:可以处理包含多个同频值的数据集。
优雅地处理唯一数据:如果没有重复值,则返回所有唯一值。
灵活的输入类型:适用于任何可散列对象的序列,包括字符串和元组。

字符串示例

data = ["apple", "banana", "apple", "cherry", "banana", "banana"]
result = multimode(data)
print(result)  # 输出: ['banana']

使用场景

  • 分析调查结果或投票中具有多个最受欢迎选项的情况。
  • 识别数据集中可能共享最高频率的频繁模式。

局限性

如果数据集很大,计算众数可能会消耗大量计算资源,因为它需要统计所有元素的出现次数。

mode 与 multimode 的比较

特性 mode() multimode()
返回值 单个最频繁的值 所有最频繁值的列表
多模态数据行为 引发 StatisticsError 返回所有众数
空数据集行为 引发 StatisticsError 返回空列表
最佳用途 适用于期望唯一众数的单模态数据 适用于包含多个众数的多模态数据或任意数据

如果不确定数据是否包含多个众数或无重复值,multimode() 是更安全的选择。

英文:The mode vs multimode in Python

本文一共 702 个汉字, 你数一下对不对.
Python 中寻找数据的众数: mode vs multimode. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c Python 中寻找数据的众数: mode vs multimode Python Python 学习笔记 数学 程序设计 计算机
The post Python 中寻找数据的众数: mode vs multimode first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  2. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  3. 西瓜视频再也上传不了视频了(字节头条: 抖西合并) 上两个月,我再也没法在西瓜视频上上传我的视频了,也从此少了一个同步视频备份的地方了。现在登陆西瓜平台,要发视频的话会立马转到抖音创作者中心,然后我尝试通过手机号+SMS验证码的方式登录,提示我“请使用抖音手机APP登录” 原来西瓜视频国外的用户,可以通过手机号SMS+验证码的方式登陆网站,上传视频的。由于我人在英国,装的是英国的App Store,无法安装国内的西瓜视频APP,使用上有点不方便的。后来为了同步到国内的抖音平台,让我姐帮我绑定了她的抖音账号,可能就是因为这样,现在强制我得通过抖音平台来发视频了。等哪天有空我让我姐试试是否可以解绑。 西瓜视频已经合并到抖音平台上了,字节头条也不再单独运营西瓜视频了。 我发了邮件问西瓜视频,得到的回复:“您好,若您可以登录账号,请前往抖音,在设置内选择【我的客服】在线咨询,详细描述您的问题并提供问题界面截屏。若您无法登录账号,您可以拨打 95152 热线咨询,热线接听时间为8:30-22:00” 再问:您好,我们国外的用户没法装抖音啊。。。之前西瓜视频一直是 国外手机号登录的。 答:您好,您可以通过以下几种方法找到西瓜客服帮你解决问题:1.手机端入口:【西瓜视频App】更新至最新版本 【我的】-【创作中心】-【问题反馈】2.手机端入口:【西瓜视频App】-【我的】-【反馈与帮助】【意见反馈】3.电脑端入口:登陆【西瓜创作平台西瓜创作平台】点击右下角【问题咨询】。 西瓜视频是由字节跳动公司推出的一款视频分享平台,旨在提供用户一个便捷的观看和创作短视频的空间。西瓜视频自推出以来,凭借其丰富的内容、强大的推荐算法以及用户互动功能,逐渐成为中国大陆地区受欢迎的视频平台之一。 主要特点: 内容丰富:西瓜视频涵盖了多种类型的视频内容,包括娱乐、搞笑、影视、音乐、游戏、教育、科技等,满足不同用户的兴趣需求。 个性化推荐:依托字节跳动强大的机器学习和人工智能技术,西瓜视频通过分析用户的观看历史和行为习惯,提供精准的个性化推荐,提升用户的观看体验。...
  4. MySQL参数一键配置脚本: 有效提升数据库性能 我一直是自己租用VPS服务器,然后搭建各种服务,比如博客就是Apache2+MySQL数据库。一般来说就是默认参数,没有去管,不过最近发现MySQL的性能参数都很保守,不能发挥整个服务器的性能。 然后我就网上搜索了一下,根据参数配置建议,用ChatGPT写了以下Python和BASH脚本。只需要在需要优化的服务器上,跑一下该脚本,然后就会显示参数配置,然后直接把参数添加到MySQL数据库配置参数文件上: /etc/mysql/mysql.conf.d/mysqld.cnf 然后运行: service mysql restart 重启MySQL服务器。 运行了几周,发现效果很好,博客反应速度也快了很多,这很大原因是根据了内存增加了MySQL缓存大小。 Python脚本优化MySQL数据库参数 把下面的Python脚本存成 mysql_config.py 然后运行 python3 mysql_config.py...
  5. 世界再无OneKey币圈美元虚拟卡了 我前两年就了解到OneKey这个币圈虚拟货币出金卡,不过去年年底才注册使用的。当时还花了99美元一步升级到顶级黑卡。然后这一年陆陆续续用了这卡,但用得不多,主要就用于支持一些VPS主机费还有CloudFlare,ChatGPT Pro等。 这个卡是美国地址,卡号有两个段,Visa 和 Mastercard,不过由于地址是美国的,刷卡可能会有问题。比如我ChatGPT Pro注册帐号是英国的,然后用这卡支付了几个月,突然有一天帐号就被封,被告知:您的付款记录很可疑。 印象中,用这虚拟货币Crypto Card美元出金卡有手续费,但是并没有啥Cash Back返现卡,如果是非美元购物则会有另一笔手续费,所以我很少用这卡出金变现。 前两个月,OneKey宣布关闭: 关于 OneKey Card 服务停用通知 尊敬的用户,为提高服务质量和优化产品供应,我们将按照以下时间表停用...
  6. 负电价活久见: 安装Octopus智能电表省电费甚至赚钱 前几周我的电气公司 Octopus 终于来装智能电表了(Smart Meter),虽然是免费安装的,但是排队排了有两三年了吧。因为之前一直写邮件催的时候就老是说 Not Ready。 收到邮件说可以安装智能电表我还是相当开心和期待的,因为已经听说这玩意好,但是还是得亲身体验一下。工程师来安装大概不到2小时,其中需要停电闸一会儿,重新接下线。装好后,给了个小册子,自动切换到了 Agile 的电价,也就是每半小时的电价都不一样,提前一天可以在手机App和网站上查得。 正好在原来的电价计费合同快要结束前2天换到了智能电表计价 Octopus Agile方式,但是系统还是扣了我75英镑 Exit Fee (提前合同结束得交违约费),不过我一个电话打过去,公司很爽快就给我退了。...
  7. 步步高多媒体学生电脑 汇编程序设计 – 1 英文同步 90年代后期步步高生产的软驱一号(又称步步高多媒体学生电脑)和98型学生电脑都带了软驱,一按电源件, 都从软盘启动(98型可以从内置的电子盘启动) 步步高提供了直接在学习机上写汇编开发的工具 BASM. BASM 可以用来写 6502 汇编,并可以编译成 CMD 小型可执行程序 不支持 EXC 程序. CMD...
  8. 力扣刷题获得一件衣服奖励(Leetcode DCC Winner) 我每天都在力扣上刷题。力扣有国服和美服,我两边都会打卡。每天打卡可以获得积分,而积分可以兑换各种礼物,比如T恤、卫衣、水壶,甚至可以用来抵扣一个月的会员费用。 我从2018年8月开始刷题找工作(当时去伦敦面试亚马逊),从那时起每年都会续费会员,费用是159美元,相当于每月13.25美元。我觉得这是对自己最值得的投资。买了力扣会员,就会有动力刷题、思考,通过不断练习让自己熟能生巧,保持一定的竞争力。 到目前为止,我已经用积分兑换了7-8件力扣的衣服,其中有2-3件是卫衣。国内的礼物我都寄到姐姐家。 前不久,我收到了力扣的邮件,说我获得了DCC奖励。我也不知道为什么会获得这个奖,随手回了邮件。没多久,就收到了一件新版的力扣衬衫。 英文:Leetcode DCC Winner T-shirt 本文一共 291 个汉字, 你数一下对不对. 力扣刷题获得一件衣服奖励(Leetcode DCC Winner)....

MySQL参数一键配置脚本: 有效提升数据库性能


我一直是自己租用VPS服务器,然后搭建各种服务,比如博客就是Apache2+MySQL数据库。一般来说就是默认参数,没有去管,不过最近发现MySQL的性能参数都很保守,不能发挥整个服务器的性能。

然后我就网上搜索了一下,根据参数配置建议,用ChatGPT写了以下Python和BASH脚本。只需要在需要优化的服务器上,跑一下该脚本,然后就会显示参数配置,然后直接把参数添加到MySQL数据库配置参数文件上: /etc/mysql/mysql.conf.d/mysqld.cnf

然后运行: service mysql restart 重启MySQL服务器。

运行了几周,发现效果很好,博客反应速度也快了很多,这很大原因是根据了内存增加了MySQL缓存大小。

Python脚本优化MySQL数据库参数

把下面的Python脚本存成 mysql_config.py 然后运行 python3 mysql_config.py

def get_total_ram():
    with open('/proc/meminfo', 'r') as f:
        for line in f:
            if line.startswith("MemTotal:"):
                total_ram_kb = int(line.split()[1])
                return total_ram_kb * 1024  # 转换为字节(bytes)
    return 0  # 如果未找到 MemTotal,则返回 0

def calculate_mysql_settings():
    # 获取总内存(以字节为单位)
    total_ram = get_total_ram()

    # 根据总内存(以字节为单位)计算 MySQL 配置
    innodb_buffer_pool_size = int(total_ram * 0.3)  # 使用内存的 30%
    key_buffer_size = min(total_ram * 20 // 100, 512 * 1024 * 1024)  # 使用内存的 20%,最大限制为 512MB
    sort_buffer_size = min(total_ram * 25 // 1000, 4 * 1024 * 1024)  # 使用内存的 0.25%,最大限制为 4MB
    read_rnd_buffer_size = min(total_ram * 625 // 100000, 512 * 1024)  # 使用内存的 0.0625%,最大限制为 512KB
    tmp_table_size = max_heap_table_size = min(total_ram * 5 // 100, 64 * 1024 * 1024)  # 使用内存的 5%,最大限制为 64MB
    join_buffer_size = min(total_ram * 2 // 1000, 4 * 1024 * 1024)  # 使用内存的 0.2%,最大限制为 4MB
    table_open_cache = min(400 + (total_ram // 64), 2000)  # 根据内存动态计算,最大限制为 2000
    thread_cache_size = min(total_ram * 15 // 1000, 100)  # 使用内存的 1.5%,最大限制为 100
    innodb_log_buffer_size = min(total_ram * 5 // 100, 16 * 1024 * 1024)  # 使用内存的 5%,最大限制为 16MB

    # 以字节为单位打印配置
    print(f"MySQL 配置(基于总内存 {total_ram / (1024 * 1024):.2f} MB):")
    print("将以下内容添加到 /etc/mysql/mysql.conf.d/mysqld.cnf 的末尾\n")
    
    print(f"innodb_buffer_pool_size = {innodb_buffer_pool_size}")
    print(f"key_buffer_size = {key_buffer_size}")
    print(f"sort_buffer_size = {sort_buffer_size}")
    print(f"read_rnd_buffer_size = {read_rnd_buffer_size}")
    print(f"tmp_table_size = {tmp_table_size}")
    print(f"max_heap_table_size = {max_heap_table_size}")
    print(f"join_buffer_size = {join_buffer_size}")
    print(f"table_open_cache = {table_open_cache}")
    print(f"thread_cache_size = {thread_cache_size}")
    print(f"innodb_log_buffer_size = {innodb_log_buffer_size}")

    # 打印自定义设置
    print("expire_logs_days = 3")
    print("max_binlog_size = 100M")

if __name__ == "__main__":
    calculate_mysql_settings()

会打印出类似以下的配置:

innodb_buffer_pool_size = 626468044
key_buffer_size = 417645363
sort_buffer_size = 4194304
read_rnd_buffer_size = 524288
tmp_table_size = 67108864
max_heap_table_size = 67108864
join_buffer_size = 4176453
table_open_cache = 2000
thread_cache_size = 100
innodb_log_buffer_size = 16777216
expire_logs_days = 3
max_binlog_size = 100M

添加到MySQL的配置文件:/etc/mysql/mysql.conf.d/mysqld.cnf 然后重启数据库即可:service mysql restart

BASH脚本优化MySQL数据库参数

以下是完成同样功能的BASH脚本。

#!/bin/bash

# 获取总内存大小(以字节为单位)
get_total_ram() {
    # 从 /proc/meminfo 中提取总内存(以 kB 为单位)
    total_ram_kb=$(awk '/^MemTotal:/ {print $2}' /proc/meminfo)
    if [[ -z "$total_ram_kb" ]]; then
        echo 0  # 如果未找到 MemTotal,则返回 0
    else
        echo $((total_ram_kb * 1024))  # 将 kB 转换为字节
    fi
}

# 根据总内存大小计算 MySQL 配置
calculate_mysql_settings() {
    # 获取总内存(以字节为单位)
    total_ram=$(get_total_ram)

    # 计算 MySQL 配置参数
    innodb_buffer_pool_size=$((total_ram * 30 / 100))  # 使用内存的 30%
    key_buffer_size=$(($((total_ram * 20 / 100)) < $((512 * 1024 * 1024)) ? $((total_ram * 20 / 100)) : $((512 * 1024 * 1024))))  # 使用内存的 20%,最大限制为 512MB
    sort_buffer_size=$(($((total_ram * 25 / 1000)) < $((4 * 1024 * 1024)) ? $((total_ram * 25 / 1000)) : $((4 * 1024 * 1024))))  # 使用内存的 0.25%,最大限制为 4MB
    read_rnd_buffer_size=$(($((total_ram * 625 / 100000)) < $((512 * 1024)) ? $((total_ram * 625 / 100000)) : $((512 * 1024))))  # 使用内存的 0.0625%,最大限制为 512KB
    tmp_table_size=$((total_ram * 5 / 100 < 64 * 1024 * 1024 ? total_ram * 5 / 100 : 64 * 1024 * 1024))  # 使用内存的 5%,最大限制为 64MB
    max_heap_table_size=$tmp_table_size  # 临时表大小等于最大堆表大小
    join_buffer_size=$(($((total_ram * 2 / 1000)) < $((4 * 1024 * 1024)) ? $((total_ram * 2 / 1000)) : $((4 * 1024 * 1024))))  # 使用内存的 0.2%,最大限制为 4MB
    table_open_cache=$(($((400 + total_ram / 64)) < 2000 ? $((400 + total_ram / 64)) : 2000))  # 根据内存动态计算,最大限制为 2000
    thread_cache_size=$(($((total_ram * 15 / 1000)) < 100 ? $((total_ram * 15 / 1000)) : 100))  # 使用内存的 1.5%,最大限制为 100
    innodb_log_buffer_size=$(($((total_ram * 5 / 100)) < $((16 * 1024 * 1024)) ? $((total_ram * 5 / 100)) : $((16 * 1024 * 1024))))  # 使用内存的 5%,最大限制为 16MB

    # 打印配置(以字节为单位)
    echo "MySQL 配置(基于总内存 $((total_ram / (1024 * 1024))) MB):"
    echo "将以下内容添加到 /etc/mysql/mysql.conf.d/mysqld.cnf 的末尾"
    echo
    echo "innodb_buffer_pool_size = $innodb_buffer_pool_size"
    echo "key_buffer_size = $key_buffer_size"
    echo "sort_buffer_size = $sort_buffer_size"
    echo "read_rnd_buffer_size = $read_rnd_buffer_size"
    echo "tmp_table_size = $tmp_table_size"
    echo "max_heap_table_size = $max_heap_table_size"
    echo "join_buffer_size = $join_buffer_size"
    echo "table_open_cache = $table_open_cache"
    echo "thread_cache_size = $thread_cache_size"
    echo "innodb_log_buffer_size = $innodb_log_buffer_size"
    echo
    echo "expire_logs_days = 3"  # 日志过期天数设置为 3 天
    echo "max_binlog_size = 100M"  # 最大二进制日志大小设置为 100M
}

# 主函数调用
calculate_mysql_settings

需要注意的是,我在脚本后面加入了一些我自定义的配置,根据需求自行修改即可。在配置文件里,后面定义的会覆盖前面的,这就是为什么要添加到文件尾的原因。

其中最关键的配置 innodb_buffer_pool_size 我设置为使用当前内存的30%,如果服务器只有数据库/博客这个功能,可以适当的提高比例,比如60%-80%。

英文:Python/Bash Script to Print the Optimized Parameters for MySQL Servers

运维/DevOps

本文一共 812 个汉字, 你数一下对不对.
MySQL参数一键配置脚本: 有效提升数据库性能. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c MySQL参数一键配置脚本: 有效提升数据库性能 MySQL 学习笔记 数据库 计算机 计算机 运维 运维 DevOps
The post MySQL参数一键配置脚本: 有效提升数据库性能 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 步步高学生电脑上 Basic 编程语言 peek 用法示例 步步高学生电脑 是8位FC机的经典之作.它上面的BASIC有三个版本 1.0, 2.0 和 2.1 2.1 版本有个在线帮助,实际上是 help.cmd 1.0 是用 Esc 键退回到 DOS 的,...
  2. 一张图告诉你北京的雾霾有多严重 一北京的朋友朋友圈发的: 左上为全新口罩;右上为全新口罩本周一到周五每天室外戴20分钟左右;左下为全新口罩今早室外+公交车戴一个半小时;右下为全新口罩今早开车戴一小时左右. 还有这图 空气污染 – 红色的是严重的.中国,尤其是华北地区,是全球最红的地区,没有”之一”. 本文一共 113 个汉字, 你数一下对不对. 一张图告诉你北京的雾霾有多严重. (AMP 移动加速版本) 赞赏我的几个理由. ¥...
  3. 你给SteemIt中文微信群拖后腿了么? 这年头不缺算法, 就缺数据. 这两天花了很多时间在整API上, 整完之后自己用了一下还觉得真是挺方便的. 今天就突然想看一看自己是否给大家拖后腿了, 于是调用每日中文区微信群排行榜单的API, 刷刷拿着 NodeJs 练手: 1 2 3 4 5 6...
  4. 穷举算法的应用 – 去除EXCEL文件中的保护 EXCEL 是可以用密码来保护的. 比如 这个EXCEL 就用了密码保护. 打开EXCEL文件 你会注意到 无法编辑 无法查看宏(VBA)的代码. 去除保护很简单 第一步先编辑宏 VBA 把下面的VBA代码拷贝到VBA编辑器里 并按下F5运行 1...
  5. 谈谈 Utopian 成立公司 就在刚刚 Utopian 的老板 @elear 在 帖子和 discord 上宣布在 意大利成立 Utopian 公司. 可喜可贺! 这开始只是 Steem 上的一个小项目,...
  6. 步步高多媒体学生电脑 汇编程序设计 – 1 英文同步 90年代后期步步高生产的软驱一号(又称步步高多媒体学生电脑)和98型学生电脑都带了软驱,一按电源件, 都从软盘启动(98型可以从内置的电子盘启动) 步步高提供了直接在学习机上写汇编开发的工具 BASM. BASM 可以用来写 6502 汇编,并可以编译成 CMD 小型可执行程序 不支持 EXC 程序. CMD...
  7. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  8. 舍得给员工培训的公司是好公司 最近出差比较多, 很多人问我都干嘛去. 各种开会, 各种培训. 公司从剑桥一个软件公司请了一个专业的软件专家来做软件工程上的顾问. 我是 R&D 研发经理, 所以很自然的就要和他经常讨论, 然后目标是把当前公司的软件开发流程给完善, 提高, 把以前做的不对的得整对了. 培训的内容很多, 让我觉得以前公司完全就是在瞎搞, 什么...

十年: 力扣刷题2000天


前不久,力扣说我刷题刷了2000天,不是连续的,这个是一共刷的天数。2000天也就是5.479年。

我的力扣,欢迎围观:https://leetcode.com/u/justyy/

leetcode-2000-days 十年: 力扣刷题2000天 小技巧 程序员 编程 计算机 面试

力扣刷题2000天

注册力扣帐号是2013年10月10号,当天提交了6次。当时是在谢菲尔得/Sheffield

first-leetcode-submission 十年: 力扣刷题2000天 小技巧 程序员 编程 计算机 面试

注册力扣帐号是2013年10月10号,当天提交了6次。

后来就是断断续续,甚至有很长一段时间都没有刷,直到2019年3月2日开始才未间断刷到今天(当时拿着Ipad中午在美国通用电气的食堂里刷题)。2016年竟然4月份连续刷了25天,我已经忘记当时为啥这么有闲情逸致了。哦,当时已经搬到了剑桥/Fen Drayton了,可能在准备谷歌的面试。

019年在美国通用电气/General Electric工作的时候中午吃完饭在湖边着着IPAD刷题。

leetcode-on-ipad-scaled 十年: 力扣刷题2000天 小技巧 程序员 编程 计算机 面试

2019年在美国通用电气工作的时候中午吃完饭在湖边着着IPAD刷题

从2013年到2024的力扣刷题之路,一点点改变,一点点变好。

leetcode-from-2013-to-2024-scaled 十年: 力扣刷题2000天 小技巧 程序员 编程 计算机 面试

从2013年到2024的力扣刷题之路。

现在刷题是保持面试状态的好方法,就像飞机飞到高空时油耗已经减少,我希望自己能维持这个状态。每天打卡,哪怕有时只是拷贝代码,依然会稍微思考并熟悉解法和算法。每天坚持打卡还能积累积分,兑换力扣衬衫

leetcode-2024-11-26-18.20.49-rotated 十年: 力扣刷题2000天 小技巧 程序员 编程 计算机 面试

这次力扣奖励的衣服是新版的,感觉比之前的质量要好。

刷题:程序员的基本技能

英文:Milestone: Leetcoding for 2000 Days

网友:以后每天比比看是cursor做得快 还是你快。
答:刷题的目的又不是比快。让脑子思考,训练脑子。

网友:惭愧,我在 GE时候天天打酱油,群主确是每天在刷题飞。
网友:看似不起波澜的日复一日让我们看到坚持的意义!

本文一共 633 个汉字, 你数一下对不对.
十年: 力扣刷题2000天. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 十年: 力扣刷题2000天 小技巧 程序员 编程 计算机 面试
The post 十年: 力扣刷题2000天 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  2. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  3. 同一台服务器上多个WORDPRESS站点的一些设置可以移出去 我自从把所有网站都挪到一处VPS服务器上 就发现很多事情省事很多 可以同时管理多个网站 包括 WORDPRESS博客. 比如我有四个WORDPRESS博客 然后我就把通用的一些资料给移出去 移到 HTTP或者HTTPS都不能直接访问的文件夹里这样就更安全许多. 文件 wp-conn.php 存储了 相同的数据库资料. 1 2...
  4. 优化设计 个人主页 并且 PageSpeed Insights 双项 100分 坛子的个人主页 www.tanzhijun.com 不错 很适合个人主页的模板. 而且是手机友好. 于是我照着把 我的主页改了改. https://steakovercooked.com 并且做了几点修改: 0. 使用 google mod_pagespeed 把 JS,...
  5. ACM题解系列之 – 最小堆栈 (Min Stack) 没事刷刷题能防止老年痴呆, 而且也能让你随时处于最佳状态, 随时都可以炒老板鱿鱼另谋高就. 题目: 设计一个堆栈(Stack)使 push, pop, 和取最小 min 操作时间复杂度都是 O(1). 这题的难点就是在于怎么样用O(1)常数时间复杂度来取得堆栈里的最小值. class MinStack {...
  6. 在英国开车的简单介绍/英国开车上路需要准备什么? 在英国合法上路需要有: 有效的驾照; MOT 车的年检; 路税 (Road Tax);还有最重要的汽车保险; 四者缺一不可. 千万不要有侥幸心理, 因为警察现在都高科技, 都能扫描车牌就能知道你合不合法. 不合法直接拦下来轻则罚款, 重则扣车上述法庭. 驾照 在英国可以用欧盟的大部分驾照,...
  7. 记录那些值得回忆的精彩瞬间 媳妇 @happyukgo 其实挺反感我给她拍照片的, 但主要原因是 我经常把她拍得很丑, 而我除了会用美图秀秀简单的滤镜之外就不会一丁点儿的PS技术. 我家孩子 Eric 很爱臭美, 每次看着我拿相机, 总会让我 “Take a picture”, 然后各种摆姿势做鬼脸,...
  8. 老婆的配偶签证被拒 郁闷死了, 601镑签证费打水漂,一去不回!费钱费力. 去年12月份我请了律师拿到了永居.老婆是T1G签证的陪工签 (DEPENDENT VISA) 2016年4月份到期. 然后我就想说得趁早把她的签证转成配偶签(SPOUSE)这样她就可以尽快走五年永居的路线. 今天收到拒签信,原因是我没有提供 有工资进帐的那份银行帐单,我提供了我和我老婆的联名帐户, 但是工资并不是直接打到这个帐单上的.所以就这一点被拒了.完全不给解释,不给补材料的机会.601镑就这样再见了. 英国的签证寄出之后是先由另一个部门先收费, 收完费才正式审理,而且不管结果如何是不退钱的.后悔没让律师弄,也不至于到现在浪费这么多时间和金钱,签证还没过.由于原签证还没到期,所以还不能上述.估计只能等搬完家后年底请律师搞定这事. 真是郁闷, 600镑, 我可以再买一个IPHONE6,或者给我的新买的车换四个轮胎....

基于P站(Poloniex)的广度优先搜索算法来获得任意两种币的兑换价格


币圈的P站是Poloniex,前几年被孙宇晨收购了,它是一个交易所。我很久之前用过Poloniex,当时对其印象并不是很好。

不过,现在我对其好感增加,因为币安买下的coinmarketcap免费的接口就很多限制。

官方文档),这个接口的频率限制是一秒200次,很慷慨了。

https://api.poloniex.com/markets/price

能返回所有交易配对,比如这样的:

[
    {
        "symbol": "BTS_BTC",
        "price": "0.0000000186",
        "time": 1731852313035,
        "dailyChange": "-0.0462",
        "ts": 1731852313054
    },
    {
        "symbol": "DASH_BTC",
        "price": "0.000317",
        "time": 1731848096481,
        "dailyChange": "0.0063",
        "ts": 1731848096489
    },
    ... ...
]

这个JSON返回的结构是一个数组,每个元素是个结构体,也就是一个币价的具体配对信息,我们可以看成是一条边Edge两个顶点Vertice,这样就是一个图结构(带权图 Weighted Graph,权值就是兑换价格),虽然给的是单边,但其实是个双向的,比如USD_BTC得值可以反过来推得BTC到USD的价格。我们可以设计一个算法,从币价A到币价B,可以通过BFS广度优先搜索算法来获取价格。比如有配对A_B、B_C、C_D我们就可以获得A_D的值。

深度优先搜索算法DFS也可以,不过这个算法会返回找到的第一条路径,并不能保证是最短的,最短的确实是最准确的,因为链也长,转换精度就会下降。

当然,可能存在多条路径,最理想的状态是把这些路径都求出来,取个平均啥的,不过这样就得暴力搜索所有的路径了,算法时间复杂度就会比较高。

以下是BFS广度优先算法的代码,Javascript的,可以用于网页前端或者NodeJs后端,甚至是CloudFlare Serverless Worker或者是其它无服务框架:Azure Function、AWS Lambda等。

const fetch = require('node-fetch');

async function getTicker(a, b) {
  try {
    const response = await fetch('https://api.poloniex.com/markets/price');
    const data = await response.json();

    // 创建一个哈希表来存储代币对及其价格
    const pairMap = new Map();

    // 使用直接对及其反向对填充哈希表
    for (const { symbol, price } of data) {
      const [base, quote] = symbol.split('_').map(token => token.toLowerCase());
      if (!pairMap.has(base)) pairMap.set(base, new Map());
      if (!pairMap.has(quote)) pairMap.set(quote, new Map());
      
      pairMap.get(base).set(quote, parseFloat(price));
      pairMap.get(quote).set(base, 1 / parseFloat(price)); // 添加反向边
    }

    // 将 token 转换为小写
    a = a.toLowerCase();
    b = b.toLowerCase();

    // BFS 查找从 a 到 b 的转换率
    const queue = [[a, 1]]; // 从初始代币和兑换率 1 开始
    const visited = new Set([a]);

    while (queue.length > 0) {
      const [currentToken, currentRate] = queue.shift();

      if (currentToken === b) return currentRate;

      // Check connected tokens
      for (const [nextToken, rate] of (pairMap.get(currentToken) || new Map())) {
        if (!visited.has(nextToken)) {
          visited.add(nextToken);
          queue.push([nextToken, currentRate * rate]);
        }
      }
    }

    // 如果未找到路径,则返回 null
    return null;
  } catch (error) {
    console.error("获取或处理数据时出错:", error);
    return null;
  }
}

// Example usage:
(async () => {
  const rate = await getTicker('btc', 'trx');
  console.log('BTC 到 TRX 的兑换率:', rate);
})();

代码的一些简单说明:

  • API 数据提取:从 P站 API 提取数据并将响应解析为 JSON。
  • 映射对:以每个代币作为键创建一个映射,其中值是它可以直接转换为的另一个代币映射,以及兑换率。
  • 双向映射:通过反转反向转换的价格来存储直接对和反向对。
  • 广度优先搜索:使用队列遍历从 a 到 b 的路径。对于每个代币,都会检查其邻居(可转换代币)。如果找到 b,该函数将返回累积率;如果没有,则继续,直到所有选项都用尽。
  • 处理无路径:如果未找到转换路径,则函数返回 null。

如果有多组兑换,我们可以改成传入一个数组,这样就不用多次调用P站的API了。

const fetch = require('node-fetch');

async function getToken(pairs) {
  try {
    const response = await fetch('https://api.poloniex.com/markets/price');
    const data = await response.json();

    // 创建一个哈希表来存储代币对及其价格
    const pairMap = new Map();

    // 使用直接对及其反向对填充哈希表
    for (const { symbol, price } of data) {
      const [base, quote] = symbol.split('_').map(token => token.toLowerCase());
      if (!pairMap.has(base)) pairMap.set(base, new Map());
      if (!pairMap.has(quote)) pairMap.set(quote, new Map());
      
      pairMap.get(base).set(quote, parseFloat(price));
      pairMap.get(quote).set(base, 1 / parseFloat(price)); // 添加一条反向边
    }

    // 使用 BFS 查找单个对的转换率的辅助函数
    const findConversionRate = (a, b) => {
      a = a.toLowerCase();
      b = b.toLowerCase();
      
      if (a === b) return 1; // 直接转换

      const queue = [[a, 1]];
      const visited = new Set([a]);

      while (queue.length > 0) {
        const [currentToken, currentRate] = queue.shift(); // 出队列

        if (currentToken === b) return currentRate;

        for (const [nextToken, rate] of (pairMap.get(currentToken) || new Map())) {
          if (!visited.has(nextToken)) {
            visited.add(nextToken);
            queue.push([nextToken, currentRate * rate]);
          }
        }
      }

      return null; // 路径没找到
    };

    // 迭代列表并查找转换率
    const results = pairs.map(([a, b]) => findConversionRate(a, b));
    return results;
  } catch (error) {
    console.error("Error fetching or processing data:", error);
    return pairs.map(() => null); // 如果有错误,则返回每对的 null
  }
}

// Example usage:
(async () => {
  const conversionRates = await getToken([['btc', 'trx'], ['usd', 'steem']]);
  console.log('兑换结果:', conversionRates);
})();

简单的代码说明:

  • 参数更新:getToken 现在接受成对的元组数组,其中每个元组代表一对 [a, b]。
  • 辅助函数:findConversionRate 处理每对的转换,实现与以前相同的 BFS 方法。
  • 映射每对:函数迭代数组里的每个配对币,应用 findConversionRate 计算转换率,并将结果存储在数组中。
  • 错误处理:如果出现 API 或处理错误,则返回一个空值数组,与输入数组的长度匹配。

这个修改后的函数现在可以接受一个数组,并在一次Poloniex API调用中返回数组里每个配对的兑换率。

英文:Crypto Token Exchange Rate Computation Based on Breadth First Search Algorithm on Poloniex API

区块链技术

Crypto虚拟货币交易所

交易所跑路啦

本文一共 1127 个汉字, 你数一下对不对.
基于P站(Poloniex)的广度优先搜索算法来获得任意两种币的兑换价格. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 基于P站(Poloniex)的广度优先搜索算法来获得任意两种币的兑换价格 Javascript Poloniex P站 交易所 Crypto Exchanges 加密货币 区块链 比特币 BTC 程序设计 算法 编程 计算机 计算机 软件工程
The post 基于P站(Poloniex)的广度优先搜索算法来获得任意两种币的兑换价格 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. HPZ800服务器主板太老不支持超过2TB的大硬盘 我家里一直用的是HPZ800服务器, 很吵, 很老, 虽然这台服务器已经有十年之久(我在EBAY上买来用了五年多了), 但是即使放到今天, 这服务器速度依旧很快, 很稳定. 由于服务器用的是ECC较验内存, 所以基本上不重启关机. HPZ800主机有两个硬核CPU – 因特志强 X5650 – 每个CPU是12核....
  2. 给孩子零花钱培养孩子正确的金钱观价值观 两个娃已经不知不觉7岁8岁了. 媳妇和我商量一下决定给孩子每人每周5英镑的零花钱(Pocket Money). 这样他们慢慢的就有自己的小积蓄备将来不时之需: 比如朋友聚会生日啥的需要准备礼物. 同时, 我们决定不再给孩子买零食(薯片啥的). 孩子一天好几餐, 晚上睡觉前还得吃零食, 我们就多买了很多水果面包, 健康的食物多吃一些总不是啥坏事. 孩子可以用这些零钱买自己想要的东西, 我们也不再过问. 孩子有自己的决定权. 第一周的时候,...
  3. 测测你的幸运 – Linux Fortune-Teller LINUX 下有很好很好玩的命令,之前已经介绍过: figlet, rig, curl. 现在推荐另一个 命令 fortune 是用来随机显示一段(句)话的.fortune 在英文里就是幸运的意思. 这个命令可以不需要 参数 如果没有 可以通过 apt-get...
  4. 负电价活久见: 安装Octopus智能电表省电费甚至赚钱 前几周我的电气公司 Octopus 终于来装智能电表了(Smart Meter),虽然是免费安装的,但是排队排了有两三年了吧。因为之前一直写邮件催的时候就老是说 Not Ready。 收到邮件说可以安装智能电表我还是相当开心和期待的,因为已经听说这玩意好,但是还是得亲身体验一下。工程师来安装大概不到2小时,其中需要停电闸一会儿,重新接下线。装好后,给了个小册子,自动切换到了 Agile 的电价,也就是每半小时的电价都不一样,提前一天可以在手机App和网站上查得。 正好在原来的电价计费合同快要结束前2天换到了智能电表计价 Octopus Agile方式,但是系统还是扣了我75英镑 Exit Fee (提前合同结束得交违约费),不过我一个电话打过去,公司很爽快就给我退了。...
  5. ChatGPT-4 使用 Math Wolfram 插件解决数学脑筋急转弯问题 这篇文章, 我们看一个简单的数学问题(脑筋急转弯), 并用 Python 解决它. 我们看一下LLM(大型语言模型): ChatGPT3.5和ChatGPT4. 通过 ChatGPT-Plus 订阅(目前每月 20 美元 + VAT增值税), 我们可以启用...
  6. 微软面试题: 三角形的面积是多少? 据说是一个印度人杀入微软最后的面试, 面试官给了这么一道小学数学几何题: 这哥门也有疑问 可是最后还是坚持 答案 30 (底 X 高 / 2) 不存在 这是个陷井: 这个直角三角形是不存在的. 两个小直角三角形的勾股定理:...
  7. 给STEEM中文微信群加了个机器人 之前说到我的公众号 justyyuk 可以查询几种虚拟货币的实时价钱, 但是有点不方便, 因为很多朋友在群里聊天得切换到公众号, 这下好了, 今天往STEEM中文微信群(还有编程群)加了个机器人, 在聊天的时候想了解价钱就直接输入货币代号即可, 如: 既方便自己, 又能方便别人(省事, 价格信息会同时显示给其它成员). 注: 这机器人不是我做的, 只是我拉进来的,...
  8. Javascript 中 sleep 函数实现 Javascript 中并没有 built-in 的 sleep 函数支持, 在 async/await/Promise 的支持之前, 我们可以用 busy-waiting 的方式来模拟: 1 2 3...

理解系统设计中的可用性百分比: 计算系统的停机时间(Availability)


aws-four-nines-sla 理解系统设计中的可用性百分比: 计算系统的停机时间(Availability) 学习笔记 程序员 系统设计 计算机 面试

亚马逊云AWS的SLA是4个9也就是99.99%在线时间uptime

系统设计面试中,可用性百分比是软件工程师应该熟悉的基本知识。

在系统可靠性领域(System Availability),99.9% 或 99.99% 之类的可用性百分比是关键的基准。但是这些数字究竟意味着什么?它们又如何转化为实际停机时间(Downtime)?以下介绍了如何计算与不同可用性水平相关的停机时间,并使用示例来说明 99.9%、99.99% 和其他可用性目标所带来的预期。

什么是可用性百分比?

可用性百分比表示系统在给定时间段(通常是一年、一月或一天)内预计正常运行的时间比例。例如,99.9% 的可用性意味着系统在指定期间内可以停机 0.1% 的时间。

可用性百分比和停机时间

以下是根据不同时间段的可用性百分比计算停机时间的方法:

  1. 确定总时间周期:选择参考周期:
    • 年:365 天,或 31,536,000 秒(365 天 × 24 小时 × 60 分钟 × 60 秒)
    • 月:30 天,或 2,592,000 秒
    • 日:24 小时,或 86,400 秒
  2. 计算允许的停机时间:使用公式:

    停机时间 = 总时间周期 × (1 – 可用性百分比)

示例:99.9% 可用性的停机时间

99.9% 可用性的年度停机时间

  • 一年中的总秒数:31,536,000
  • 可用性:99.9% = 0.999
  • 停机时间 = 31,536,000 × (1 – 0.999) = 31,536 秒
  • 转换为小时和分钟:31,536 秒约为 8 小时 45 分钟

99.9% 可用性的月度停机时间

  • 一个月中的总秒数:2,592,000
  • 停机时间 = 2,592,000 × (1 – 0.999) = 2,592 秒
  • 转换为分钟:2,592 秒约为 43.2 分钟

99.9% 可用性的每日停机时间

  • 一天中的总秒数:86,400
  • 停机时间 = 86,400 × (1 – 0.999) = 86.4 秒
  • 转换为分钟:86.4 秒约为 1.44 分钟

更高可用性水平的停机时间

对于具有更高可用性目标的系统,如 99.99% 或 99.999%,允许的停机时间会变得更短。以下是总结不同可用性水平停机时间的表格:

可用性 年度停机时间 月度停机时间 每日停机时间
99.9%(三个 9) 约 8 小时 45 分钟 约 43.2 分钟 约 1.44 分钟
99.99%(四个 9) 约 52.6 分钟 约 4.4 分钟 约 8.6 秒
99.999%(五个 9) 约 5.3 分钟 约 26 秒 约 0.86 秒
99.9999%(六个 9) 约 31.5 秒 约 2.6 秒 约 86 毫秒

高可用性的重要性

具有高可用性目标的系统对于那些停机会直接影响收入、客户满意度或安全的行业至关重要。实现这些目标需要精心设计,包括负载均衡、冗余、故障转移机制,有时还需要资源的地理分布。

总结

可用性百分比提供了表达系统可靠性的一种方便方式,但将其转换为停机时间则可以更清楚地看到面临的风险。使用这些计算来设置现实的可用性目标,并相应地准备您的基础设施。

英文:Understanding Availability Percentages: Calculating Downtime for Your Systems

本文一共 768 个汉字, 你数一下对不对.
理解系统设计中的可用性百分比: 计算系统的停机时间(Availability). (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 理解系统设计中的可用性百分比: 计算系统的停机时间(Availability) 学习笔记 程序员 系统设计 计算机 面试
The post 理解系统设计中的可用性百分比: 计算系统的停机时间(Availability) first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 深度体验: OneKey虚拟货币出金卡(美元黑卡) 出金/变现的几种方法 出金:也叫Cash out/变现,一般把虚拟货币(如比特币BTC或以太坊ETH)变成法币的方式就叫出金。一般有几种方法: P2P:也叫线下,最直白的方式就是私下一手交钱/法币,一手交币。大型交易所都会有一个P2P的交易,比如币安和HTX火币都有。之前localbitcoin也是这种方式,可惜在2023年倒闭了。我曾经在微信上卖了几十个STEEM,当时是几美元一个的时候。一手交人民币,一手交STEEM币。这种P2P私下的方式不受监管,但是要互相信任。可以当面交易这样减少风险:见个面喝个茶,就把交易做成了。 变成法币:之前我用过Coinbase直接卖成英镑,然后通过发到Paypal再提现到英国银行帐号上变成实实在在在的英镑,不过这一趟下来,手续费不低,就当学费了。 直接花掉:我个人比较喜欢这种方式,有几种Crypto Visa/Master银行卡,可以把虚拟货币卖成法币然后购物花掉。大部分是需要有一个卖币成法币的过程,也有少部分是实时转换虚拟货币成法币,当然基本上是稳定币:USDC, USDT泰达币等。 在英国,想把虚拟货币出金,可以用几种选择: Wirex:支持波场U,支持各种Defi产品,比如定期30天存USDT可以达16%年利率,世界好多国家都支持Wirex卡,上次去塞尔维亚就刷了一次,不过发现汇率并不划算(有5%-10%的差别)。Wirex提现费用较高,不过转换成法币汇率较好。Wirex在乌克兰有个开发办公室。 Crypto.com:这家总部好像在香港,也是不错的,去年的时候它家的DEFI利率挺高,但后来越来越少,直接分成三档/Tier,有次无意和Wirex比较,发现它家USDT转英镑的利率比Wirex低多了,于是不怎么用了。Crypto.com也是需要先把币变成法币。 Crypto Ledger:这是家做硬件钱包的,最近一两年搞了这个产品,它家是直接刷稳定币,也就是消费的时候再兑换虚拟币成法币,有一个2%的费用,不过选择它家平台代币BXX就可以拿回这2%的返现/cashback,相当于不花钱。选择USDT或者BTC返现只有1%。它家的卡是支持加入Apple Pay的,所以可以用在线下支持,日常买菜吃饭都可以出金,很是方便。 OneKey:本文接下来要讲的。...
  2. 微软终于弃用VBScript, 一个时代结束了 VBScript是我最喜欢的编程语言之一,因为其简单的语法,性能稳定,而且在Windows上和COM组件结合,可以做很多事情,Windows管理员在Powershell出来之前用VBScript来完成各种管理工作。VBScript也是我早期学会的编程语言之一(还有LOGO海龟作图,FoxBase数据库,Pascal等)。现在我的任务栏还有VBS Editor,因为我很有时候需要验证些数学或者其它事情,我就会用VBScript来写。比较复杂的我就会用Python。 据说比尔盖茨对Basic语言情有独钟,因为他老人家当年就是设计并开发了Basic语言,后来一直在Windows产品中支持Basic,比如Visual Basic,VB for Application,ASP等。 2023年10月份也就是这个月,微软发布声明,说弃用VBScript了。因为现在,Powershell更为强大,可以完全取代VBScript。VBScript的语法简单很多,而且已经十几二十年没有更新了,已经跟不上主流语言的各种语法糖和框架,和COM结合也带来了一些安全问题,比如当年VBScript来写一些恶意脚本还是非常容易的。 可以在微软的这个页面看到: In future releases of Windows, VBScript will...
  3. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  4. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  5. 和媳妇聊聊 区块链 (Web3.0, 还有共识算法 PoW, PoS, DPoS) #blockchain #blockchaintechnology #区块链 #共识算法 #Web3 #web30technology #web30 #pos #dpos #pow #consensus 闲聊区块链, 很多方面讲得不是很详细, 轻喷. 主要是给媳妇普及一下区块链,...
  6. 简洁的 C# LINQ 写法 – 例子 1 LINQ 的全称是Language-Integrated Query, 在 .NET 2.0 之后就可以使用这种简洁的语法. 使用 LINQ 可以使代码变得简短, 清楚. 比如: 1 2 3...
  7. 币圈交易所安全实践 一周前,被骗1000英镑:在币圈第一次被骗1355 USDT(1000英镑)的惨痛经历(Wirex),近期在推上又被爆出两个比较大的事件,钱放交易所被黑客盗走,一夜清零。 在加密货币的世界中,安全至关重要。虽然区块链的去中心化特性提供了对许多类型欺诈的强大保护,但您用来买卖和持有数字资产的交易所可能容易受到黑客和其他安全漏洞的攻击。交易所一般是中心化的,也就是我们说的CEX(Centralize Exchange)。以下是确保您的加密资产在交易所中保持安全的综合指南。 如果很多币/钱,最好放在自己的本地钱包里(Not Your Keys, Not Your Funds),并且用硬件钱包(如Ledger),这样风险会小一些,不过很多人把币放交易所上就为了挣一些利息(交易所有很多DeFi项目),不过你得到的也许是利息,但可能失去的是本金。 我知道的HTX火币交易所就很不错,每次提款都需要三个验证:手机SMS短信、邮件验证,还有就是Google二维验证码。一些交易所在主帐号改密码24小时内是不能提现的,这也一定程度给予用户时间减少损失。 启用双重身份验证(2FA) 双重身份验证(2FA)是一个重要的安全措施,可以为您的账户增加一层额外的保护。以下是它的工作原理: 为什么需要2FA? 它不仅要求您的密码,还需要第二个因素,通常是发送到您手机的代码或由身份验证应用生成的代码。...
  8. 最好的给CPU降温方法就是通过改BIOS里的CPU风扇速度 家里的HPZ800服务器啥都好, 就是太吵. 之前显卡温度过高(可能是积灰的缘故)拿着电风扇对着机箱吹, 就更吵了. 最近我发现CPU温度也偏高, 因为一旦跑一些程序, CPU利用率上来了, CPU自动调节风扇就特别响, 像飞机起飞的. 而且温度也很容易升到80多度. 我查了一下, 因特志强X5650系列最高工作温度(健康温度)是81点3度. 想着不能就这样放任它不管, 于是想到了一招: 重启F10进BIOS设置,...

C++的异步编程: std::future, std::async 和 std::promise


在 C++ 中,std::future 和 std::async 是 C++11 标准 并发库的一部分。它们允许您异步/Asynchronous运行任务并在稍后获取结果,非常适合编写非阻塞代码和并行化计算。以下是它们的工作原理和典型用法。

C++ std::async

std::async 是一个高级函数,允许您异步启动一个任务(一个可调用对象,如函数或 lambda)。您指定要运行的函数,std::async 返回一个表示该 函数结果的 std::future。您可以稍后获取该结果,无论是任务完成时还是您需要时。

#include <iostream>
#include <future>
#include <chrono>

int compute() {
    std::this_thread::sleep_for(std::chrono::seconds(2));  // 模拟工作
    return 42;  // 计算结果
}

int main() {
    // 异步启动任务
    std::future<int> result = std::async(std::launch::async, compute);

    // 当 compute() 运行时执行其他任务...

    // 获取 compute() 的结果(如果任务未完成则会等待)
    int value = result.get();
    std::cout << "结果: " << value << std::endl;

    return 0;
}

在此示例中:

  • std::async(std::launch::async, compute) 异步启动 compute(),返回一个 std::future 对象。
  • result.get() 调用等待任务完成(如果尚未完成)然后获取结果。

C++ std::launch 策略

  • std::launch::async: 强制任务在新线程上异步运行。
  • std::launch::deferred: 推迟执行直到 future 上调用 get() 或 wait(),使其同步运行。

如果省略策略,C++ 可能根据实现定义的标准选择其中之一。

C++ std::future

std::future 是一个类模板,表示稍后获取的结果。它本质上是一个异步操作结果的占位符。

关键方法

  • get(): 如果结果尚未完成则等待并获取结果。调用 get() 后,std::future 变为空。
  • wait(): 等待任务完成,但不获取结果。
  • valid(): 如果 std::future 具有共享状态(即有结果可用)返回 true。
  • wait_for() 和 wait_until(): 等待特定时间或直到结果可用的截止时间。

带有 wait_for 的示例

if (result.wait_for(std::chrono::seconds(1)) == std::future_status::ready) {
    std::cout << "结果已就绪: " << result.get() << std::endl;
} else {
    std::cout << "仍在等待结果..." << std::endl;
}

此代码检查结果是否在 1 秒内就绪。如果没有就绪则继续执行,不 阻塞

C++ std::promise

对于更高级的用法,std::promise 允许您手动设置 std::future 的结果。std::promise 对象提供一个 std::future,您可以显式设置结果。

#include <iostream>
#include <future>
#include <thread>

void setPromise(std::promise<int> p) {
    p.set_value(10);  // 设置 promise 的结果
}

int main() {
    std::promise<int> p;
    std::future<int> f = p.get_future();  // 从 promise 获取 future

    std::thread t(setPromise, std::move(p));  // 将 promise 传递给线程
    t.join();

    std::cout << "promise 的结果: " << f.get() << std::endl;  // 获取结果
    return 0;
}

在此例子中,结果 10 是由 std::promise 设置的,std::future 可以通过 f.get() 获取。

C++ Future/Async/Promise 总结

  • std::async: 启动一个异步运行的任务,返回一个 std::future。
  • std::future: 表示将来会设置的值,通常是异步任务的返回值。
  • std::promise: 允许手动设置 std::future 的结果。

使用这些功能,您可以有效地管理 C++ 中的异步任务,更轻松地并行运行计算或将工作分配给其他线程而不阻塞主线程。

英文:Tutorial on C++ Future, Async and Promise

C/C++编程

本文一共 606 个汉字, 你数一下对不对.
C++的异步编程: std::future, std::async 和 std::promise. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c C++的异步编程: std::future, std::async 和 std::promise C++ C++ 学习笔记 程序设计 计算机
The post C++的异步编程: std::future, std::async 和 std::promise first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 步步高学生电脑上 Basic 编程语言 peek 用法示例 步步高学生电脑 是8位FC机的经典之作.它上面的BASIC有三个版本 1.0, 2.0 和 2.1 2.1 版本有个在线帮助,实际上是 help.cmd 1.0 是用 Esc 键退回到 DOS 的,...
  2. 换了个奥迪Q5大灯花了我1000英镑 我那辆奥迪Q5 SUV今年年检没通过,原因是左前车灯坏了,需要更换。车厂告诉我,光是订购零件就要700多英镑,加上人工费,总费用得1000英镑。但没办法,如果不修,车辆年检(MOT)就过不了,车也不能上路。 MOT是英国的机动车强制性安全检测(Ministry of Transport Test)的简称。 近侧前位置灯不工作 drl/位置灯集成(4.2.1(a)(ii)) Nearside Front Position lamp not working drl/position...
  3. 你给SteemIt中文微信群拖后腿了么? 这年头不缺算法, 就缺数据. 这两天花了很多时间在整API上, 整完之后自己用了一下还觉得真是挺方便的. 今天就突然想看一看自己是否给大家拖后腿了, 于是调用每日中文区微信群排行榜单的API, 刷刷拿着 NodeJs 练手: 1 2 3 4 5 6...
  4. HPZ800服务器主板太老不支持超过2TB的大硬盘 我家里一直用的是HPZ800服务器, 很吵, 很老, 虽然这台服务器已经有十年之久(我在EBAY上买来用了五年多了), 但是即使放到今天, 这服务器速度依旧很快, 很稳定. 由于服务器用的是ECC较验内存, 所以基本上不重启关机. HPZ800主机有两个硬核CPU – 因特志强 X5650 – 每个CPU是12核....
  5. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  6. ChatGPT-4 使用 Math Wolfram 插件解决数学脑筋急转弯问题 这篇文章, 我们看一个简单的数学问题(脑筋急转弯), 并用 Python 解决它. 我们看一下LLM(大型语言模型): ChatGPT3.5和ChatGPT4. 通过 ChatGPT-Plus 订阅(目前每月 20 美元 + VAT增值税), 我们可以启用...
  7. Javascript 中 sleep 函数实现 Javascript 中并没有 built-in 的 sleep 函数支持, 在 async/await/Promise 的支持之前, 我们可以用 busy-waiting 的方式来模拟: 1 2 3...
  8. 给孩子零花钱培养孩子正确的金钱观价值观 两个娃已经不知不觉7岁8岁了. 媳妇和我商量一下决定给孩子每人每周5英镑的零花钱(Pocket Money). 这样他们慢慢的就有自己的小积蓄备将来不时之需: 比如朋友聚会生日啥的需要准备礼物. 同时, 我们决定不再给孩子买零食(薯片啥的). 孩子一天好几餐, 晚上睡觉前还得吃零食, 我们就多买了很多水果面包, 健康的食物多吃一些总不是啥坏事. 孩子可以用这些零钱买自己想要的东西, 我们也不再过问. 孩子有自己的决定权. 第一周的时候,...

Logseq这样用-我在Logseq上撰写了2K个页面

作者 尚磊
2024年3月19日 23:47

一、Daily Notes

Logseq 最吸引我的地方就是它的日志模式(Journals) 。按照日期排序,除了能够查看当前日期,可以向下滚动,查看临近日期的日志。这种”时间线”主页设置,非常便于回顾、翻看之前的日志。这也是我使用 Logseq 最主要的场景。目前,Logseq 就成为我撰写工作和生活日志(Daily Notes)的主阵地。

我的生活和工作就在Logseq 上。

配合 Logseq插件:Journals calendar ,可以更方便的利用日历视图跳转到对应日期的Daily Notes。

二、没有顾虑的随时随地记录

大部分内容都可以放在每天的 Daily Notes上,以大纲层级的基本架构快速记录、展开、条理化,不需要思考分类,随手也可以加上双链或相关标签,可以很好的组织信息。

碎片化记录,结构化思考,系统化整理

放在时间线上,所有笔记内容也和日期时间关联了起来。日后可以方便的“按图索骥”,快速回到笔记记录和整理的场景之中。

三、区块是笔记的最小单位

区块(Block),Logseq 更基本的笔记单位,颗粒度更小,给撰写、整理和发现笔记创造了更多的可能性。

借鉴卡片盒笔记法的基本原理,把笔记写小一些,每个page 有诸多独立的区块作为内容单元,这样也方便结合Logseq插件:随机页面来进行随机的回顾、整理和优化。

四、图片插入

一些图片可以上传到我自己的图床,比如七牛云,然后再插入Logseq ,也当成1个区块来管理。当然,也可以直接插入Logseq,图片可以拖动右下角的三角标记来调整大小。

我选择上传图床主要不想让Logseq 的库文件不要过于臃肿,另外在macOS上使用iPic上传图片到图床也是非常方便的,也方便复制页面内容发不到博客不需要二次上传图片。

五、聚焦&隐私

Logseq 以区块为基本单位,所以在日常工作的时候,其实可以点开具体的某个层级的区块(点击这个层级区块前面的小圆点就可以),作为工作区,这样一方面更加聚焦,一方面也能更好的保证隐私,不用担心身旁的同事看到我不想让他们看到的内容。

六、各种类型内容的存放逻辑

小写作,直接体现在 Logseq的时间线上

大写作,形成文档,拥有独立的Page

碎片内容,有回顾必要的,在时间线或某些Page中添加记忆卡片(FlashCard)的标签

七、添加注释

在Logseq的相关内容中可以方便的通过coment::语法添加注释,这样可以给笔记添加新维度的内容,复制的时候也方便做排除。

八、快捷键

Logseq 对于键盘操作非常优化,有很方便的各种快捷键,可以减少键盘和鼠标之间的操作跳转,对于效率控来说是非常友好的。比如:

  • t+l 开启关闭左侧边栏 t应该表示toolbar 了应该表示left
  • g+h 返回首页 Go Home 的缩写
  • command+k 搜索

九、插入在线文档的链接建成更丰富的文档索引库

有一些文档还是适合在飞书文档或Notion 上编写,第一时间把文档或文档区块的分享链接同步到Logseq ,并打好标签,这样通过Logseq 可以很好的和飞书文档中的内容发生联动。让Logseq 成为我一切文档内容的总索引。通过Logseq 内部的双链系统更好的挖掘各类内容的价值。

基本的思想是能放Logseq 的就放到Logseq里,不方便存放的,也至少存放一个链接🔗

好用耐用-使用HHKB静电容键盘2年2个月后

作者 尚磊
2024年2月8日 01:27

主打一个耐用

最近这些年买过很多键盘,不少是机械键盘。使用2年多之后,已经有好几把键盘开始出现一些键位的异常,比如敲击无反应或反应不灵敏的情况。这其实暴露出一个问题,很多机械键盘的使用寿命是很有限的。而HHKB的静电容键盘则主打一个耐用,希望能让我们终生使用。目前,我应该使用两年2个月了,没有出现任何质量问题,发挥一直非常稳定。键盘的手感和使用感觉一以贯之。

为了保证键盘更长久的使用寿命,HHKB的蓝牙键盘是采用5号干电池来供电的,当键盘没电了,我们更换新的5号电池就可以了,如果像其他的一些键盘把可充电的电池集成到键盘中,等电池生命周期终结的时候,这个键盘的生命周期也终结了。而采用5号电池的HHKB就不存在这一问题。

好用且耐用的HHKB,这一特点让我决定,如果我需要再购买新的键盘,这把新键盘就依然是HHKB。

说来也蛮有趣的,慢慢上了年纪,我对于电子产品耐用性的关注比之前进一步增强了。不想折腾了,一些日常功能需求的电子产品,好用耐心太重要了,让我在相对一致的体验中将能量都聚焦到更重要的事情上。

更多关于HHKB静电容键盘的详细测评详见这里:

flomo的每日回顾让我离不开它

作者 尚磊
2023年8月30日 16:58

flomo (浮墨笔记)是非常不错的笔记应用,我们可以在电脑、手机、平板上使用它,快捷地记录和管理自己的笔记。这个应用非常简洁,容易上手,我愿意把它推荐给所有想多写写笔记,并想把这些笔记的作用和价值都充分发挥好的朋友们。

现在好用的笔记应用很多,比如Notion、Logseq、Obsidian 等,我也有使用,但flomo 依然有其他笔记应用无法取代的地方,让我一直用到今天。

flomo 一项重要的产品特征就是“每日回顾”。

  • 一方面,他随机提供给我每天12个需要回顾的内容
  • 一方面,我也可以通过微信或手机小组件获得可以回顾的内容。

暂时我没有在其他笔记应用中看到做得比他更好的。

flomo 网页版的“每日回顾”
flomo 网页版的“每日回顾”

PS:Logseq 有1个叫Random Note 的插件,可以实现随机访问1个笔记页面的功能,相比flomo 的“每日回顾”还是太简单了。

我不仅要记录,还需要复盘和回顾。笔记能提供给我便捷的功能支持,我需要做的就是定期复盘,定期做,坚持做,我想这些留在flomo 中的笔记就会被不断唤醒,这些珍贵的内容就会不断被激活,最终获益的就是我的头脑。

flomo App上对“”每日回顾“”的介绍
flomo App上对“”每日回顾“”的介绍
❌
❌