avatar
比特
简单实现带时间限制的合约水龙头代码
pragma solidity ^0.5.1; interface ERC20 { function transfer(address to, uint256 value) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } contract Faucet { uint256 constant public tokenAmount = 100000000000000000000; uint256 constant public waitTime = 30 minutes; ERC20 public tokenInstance; mapping(address => uint256) lastAccessTime; constructor(address _tokenInstance) public { require(_tokenInstance != address(0)); tokenInstance = ERC20(_tokenInstance); } function requestTokens() public { require(allowedToWithdraw(msg.sender)); tokenInstance.transfer(msg.sender, tokenAmount); lastAccessTime[msg.sender] = block.timestamp + waitTime; } function allowedToWithdraw(address _address) public view returns (bool) { if(lastAccessTime[_address] == 0) { return true; } else if…
avatar
lvwzhen
酷玩周刊 第 6 期
发掘一切有趣的数字生活 🚀 产品试玩 上海抗疫互助 最近上海疫情愈加严重,有网友自制了一个抗疫互助平台,可以自行发布求助信息和提供物资帮助,希望能帮到上海的朋友。 Qwerty Learner 如果你最近正在学习英语,可以试一下 Qwerty Learner,通过它可以将背单词和键盘输入的肌肉记忆相结合,另外还有4级、6级、托福、雅思、编程等多种词库可供选择。 腾讯智能创作助手 腾讯AI实验室最近推出了「智能创作助手」,利用 AI 技术提升写作者的写作…
avatar
yuan
Ruby 代码线程安全的一些编写原则
避免修改全局共享的对象 非必要的情况下尽量避免修改全局共享的对象,包括 $ 开头的全局变量、单实例对象、AST、类变量/方法等。 下面的写法是线程安全的,因为它没有修改全局的状态: class RainyCloudFactory def self.generate cloud = Cloud.new cloud.rain! cloud end end 下面的写法不是线程安全的,因为它修改了全局的状态: class RainyCloudFactory def self.generate cloud = Cloud.new @@clouds << cloud cloud end end 但是,如果非用全局共享的对象不可,也不是不能用…
avatar
Xhofe
Golang与Rust交叉编译
交叉编译 交叉编译一般是指在一个平台上生成另一个平台上的可执行代码,因为有一些目标平台性能很弱,编译需要花费很长的时间,所以需要在性能较高的平台上通过交叉编译来得到目标程序。 在golang和rust中交叉编译都是很容易实现的。 Golang golang交叉编译一般不需要额外的工具,只需要在golang编译时指定GOOS(操作系统)和GOARCH(CPU架构)即可。 可以使用go tool dist list来查看所有支持的目标平台…
avatar
谢乾坤|Kingname
爬虫出海Step by Step(一)
上周的文章《一日一知:国内爬虫开发人员的未来》发布以后,很多同学私信我表示对爬虫出海很有兴趣,希望我能详细介绍一下。因此,我准备用几篇文章来介绍爬虫出海的具体做法细节和注意事项。 今天我们的话题是,如何规避法律风险。 如果你是个人开发者,那么你直接写爬虫爬就可以了。不会有人跨国来抓你的。 如果你是小公司,并且在海外没有分公司,那么你也可以像个人开发者一样直接爬。 如果你是大公司…
avatar
谢乾坤|Kingname
一日一技:多个Python项目怎么调用我自己的工具函数?
在多年写代码的过程中,我总结了不少常用的工具函数。这些工具函数有的能够实现快速重试网络请求,有的可以把任意格式的时间转成标准格式,还有的可以自动生成正则表达式。 我把这些工具函数分别放到多个.py文件中。然后把这些.py文件放在一个叫做my_awesome_util的文件夹中。 由于我没有把这些代码上传到Pypi或者Github,因此我每次在新的项目中要使用时,都要把my_awesome_util文件夹复制到新…
avatar
BestXTools
好工具周刊(第 8 期): tldraw, TableConvert, markmap, B64, 词云小工具, EmojiAI, Reshot
发现并分享有趣,有创意,免费、好用的工具,每周四发布。由 BestXTools 创作。 上一期内容 | 下一期内容 | 往期内容 | RSS 订阅 | 邮箱订阅 | 微信订阅 | 工具推荐 | 评论 在线工具 tldraw - A tiny little drawing app tldraw 是一个非常简单易用的在线白板、绘图工具。(@Jaya0455 投稿) 链接: https://www.tldraw.com/ 源码: https://github.com/tldraw/tldraw 类似工具: Excalidraw - https://excalidraw.com/ (第 6 期) TableConvert Online - 在线表格转换工具 一个强大的在线表格转换工具,可在 Markdown、Excel…
avatar
Sundar
x
xx
avatar
steve lee
Elixir Note - Recursion
1. Loop over the list Due to immutability, loops in Elixir are written differently from imperative languages. For example, loops commonly look like: for(i = 0; i < array.size; i++) { # do something with array[i] } In a functional language, mutating i (by calling i++) is not possible. Thus, Elixir uses recursion for looping over data structures like lists. The equivalent of a for loop in Elixir would look like this: def loop([]), do: nil def loop([head | tail]) do do_something(head) loop(tail) end Example: sum all integer of the list defmodule SumList do def sum…
avatar
pyzm
第三篇20220415 联系方式
2vXgWFujPbxqskiU3oLG5w==
avatar
pyzm
第四篇20220415 生活原则第一条
TSVLE97T0rGmii7Be16U9JqM9shmzxsfny1CTNBvoPmx6u6YUvqCfKgLR//Lf+fguVgUTaXcJ4ebcUKkcqrh1LQtricoEDr5DFx2vfI5kMFdACb/4bZqsdu8/5TZzZWQvgM9DuTk3d/N4v/3YWw7fwMYLhnHnYUi/cwNMrYmpKnOp/LRj//n11uzTTXv/Ejvk/y9X7qLJtdD0Ryc8EAOHp+fEf1f6s30WqLnmMZB6anTzqdJrprmpE1QyAfI7PReYM2NeNpZpXrNGGljOk2sB4GmiouHV2iD3mEPHk1KJfmpiEXWjfxhfIrKKiI6GrntmYB9S/oYPS1SBwsUzi2cS/NY+cjnnGshMAf50183Nt6+XiRRQ/7VkK56X+dNWQFnDIjbftz/xMHT4kSNiDEEIYmpa79ZkI0YY52rhy+ebedskGcQ8G65I/JuRJg+gtT153//tLV0YS7V200t44uNDMS7/hsyf1tHwcdUkxXelO3hzb9YbaLIWj+15YAVjjxS2NySqvIQjGZ++/2ZgM3z2txsDxKWRvR0uHO2mAnw2HOqKqPGP88a0ZAeh6xrocwkygJl/JIWTzjgchdTp1+EZWPG1iGQii5xCW1dkXb2XYRCYyGSW9oDN8P/zVd2E32fxtEhabP8VomM/qXxgnnjy9qVxfwoy1WM8BwDbgZ00uL41znMZaG9pFkBqewtDq4m
avatar
比特
安装/升级Windows11之后不能进入BIOS的问题
兴高采烈的体验了Windows11,惊奇的发现LOL帧率比WIN10高很多,也很稳定,但是发现了一个问题:开机之后电脑始终黑屏,然后2-3秒进入系统,中间没有BIOS的启动页面。 试了试,各种热键按烂了都进不去BIOS,而且用了下面的所有方法: 开机的时候疯狂按 DEL ,F1-F12 ,都进不去 尝试进入 高级启动,不可进入,重启直接进桌面 尝试 重置此电脑,直接重启开始提示初始化失败 拔掉所有硬盘开机,直接一直黑屏,不会提示没找到启动盘 关掉快速…
avatar
BestXTools
好工具周刊(第 9 期): tree.nathanfriend.io, ASCIIFlow, WeekToDo, Ray.so, 数字帝国, Arteater
发现并分享有趣,有创意,免费、好用的工具,每周四发布。由 BestXTools 创作。 上一期内容 | 下一期内容 | 往期内容 | RSS 订阅 | 邮箱订阅 | 微信订阅 | 工具推荐 | 评论 🌈 在线工具 tree.nathanfriend.io 一款非常简洁好用的 ASCII Tree 树形目录图表生成器。支持 Markdown 语法。 链接: https://tree.nathanfriend.io/ 源码: https://github.com/nfriend/tree-online 类似工具: Tree 树形目录可视化生成器 - https://devtool.tech/tree ASCII Tree Generator - https://ascii-tree-generator.com/ ASCIIFlow 一款开源好用…
avatar
电子芥末
最近试用了 Helix 编辑器,很对我口味
我是看到了这个贴子发现这个编辑器的: 《尝试使用 helix 作为文本编辑器的爽点和痛点》 https://v2ex.com/t/848997 立即下载试用,第一印象很不错。 优点一:零配置开箱即用 安装后,完全不需要写配置文件,也不用安装插件,直接就拥有带预览功能的 file-picker 和 buffer-picker, 很方便很好用。 安装对应语言的 LSP server 即可获得在函数定义与函数引用之间跳转等功能。 安装 LSP server 也很简单,比如 Python 只需要 pip install python-lsp-server…
avatar
BestXTools
好工具周刊(第 10 期): 【特别篇】写在第 10 期,对于这个周刊的思考, 不可见零宽字符 (invisible zero-width characters) 相关工具
发现并分享有趣,有创意,免费、好用的工具,每周四发布。由 BestXTools 创作。 上一期内容 | 下一期内容 | 往期内容 | RSS 订阅 | 邮箱订阅 | 微信订阅 | 工具推荐 | 评论 写在第 10 期,对于这个周刊的思考 时间过得很快,好工具周刊已经更新到第 10 期了。从第 1 期更新到现在经过了两个多月,一共分享了 70 个工具(每期 7 个)。截止发稿时间 (2022/4/28),竹白平台的订阅者已有…
avatar
Rei
关于 2022-04-24 的服务器故障
GeekNote 在 2022-04-24 ~ 2022-04-25 期间遇到了两个服务器机房的故障,分别是: 机房资源被耗尽(链接) 储存卷磁盘损坏(链接) 恰好这段时间我身边没有电脑,要跨越时差和服务器技术支持沟通,导致这个问题解决花了很长时间。期间用户不是看到 Cloudflare 的 500 错误页,就是 Rails 默认的 500 错误页。如果没有 follow 我个人 Twitter(@chloerei),可能会以为网站跑路了。 为了改进错误提示,我做了以下事情: 建立错误报告页面,地址:https://geeknote.statuspage.io/ 。 改进了…
avatar
Rei
Fly.io 一个 app 运行多个进程的方法
在之前的 Fly.io 部署教程中,web 进程和 worker 进程是分开部署的。这会造成一些问题: 设置环境变量需要两边重复设置。 需要分别部署或分别回滚,过程可能产生错误。 我在 fly.io 的社区中发现,单个 app 部署多个进程的方法已经作为预览状态提供,有兴趣的可以先行试用。 Preview: multi process apps (get your workers here!) https://community.fly.io/t/preview-multi-process-apps-get-your-workers-here/2316 GeekNote 的部署配置合并后是这个样子,可以用于一般的…
avatar
胡涂说
No.13: 周刊的周刊
离上一次写周刊已经过去了十个月了。写作这种事情就是这样,一旦中断,就很难接上,得不停的写写写才行。但是持续写周刊又有压力,感觉没那么多可写的东西,又不能为了写而写。总之,这是个很矛盾的事情。好在我之前就留了余地,将周刊定义为不定期周刊,心里稍微心安理得些了。不过,看到很多博主在写周刊,我想还是把这一传统给拾起来。读周刊的好处是可以快速…
avatar
BestXTools
好工具周刊(第 11 期): favicon.io, Pixel Art Together, Look Scanned, Coverview, ...
发现并分享有趣,有创意,免费、好用的工具,每周四发布。由 BestXTools 创作。 上一期内容 | 下一期内容 | 往期内容 | RSS 订阅 | 邮箱订阅 | 微信订阅 | 工具推荐 | 评论 五一假期转眼就结束了。因为疫情,有些人可能哪里也没去成。不管怎样,希望大家都过得还不错。 🌈 在线工具 favicon.io 免费、好用、没有广告、无需注册的 favicon 制作工具。可以把 PNG、文字、emoji 转成 favicon。 链接: https://favicon.io/ Pixel Art Together 刚过去没多久…
avatar
电子芥末
AWS Lightsail 迁移失败经历
我的 ai42.xyz 域名即将到期, GoDaddy 去年收我 ¥100, 今年涨价到 ¥120, 我觉得不合理,而且也比 namecheap 贵。刚好我也想把 VPS 从 Vultr 转到 AWS Lightsail, 索性域名也注册一个新的吧。 万万没想到,我把域名迁移到 Cloudflare 和把 VPS 迁移到 Lightsail 这两个计划都失败了。 尝试在 Cloudflare 注册域名 遇到了 Error: Domain registration is blocked for a few minutes pending an existing request. (Code: 10000) 搜索发现不少人遇到同样的问题,有人反映等了一天仍…
首页 搜索 登录 注册