BLCL的博客小馆

归档 · 全部binance币安理财存U年化收益40% !!牛市躺着就是收钱,闲置资金记得放理财!立即注册立享收益!!

首页

关于

归档

loading..
linuxDockerGrafana basic authPrometheusPrometheus密码验证密码验证Prometheus basic authGrafana SSLbasic auth监控Grafana

Docker+Prometheus+Grafana监控VPS运行状态

Prometheus是一个灵活的时间序列数据库和监控系统,有多个监控组件可用。Grafana是用于展示数据的平台。一起使用即可全方位监控VPS主机运行状态。prometheus和grafana为简化安装步骤,这里直接使用docker.效果图安装首先你要安装docker/docker-compose:1234567apt -y updateapt -y install curlcurl -sSL https://get.docker.com/ | shsystemctl start dockersystemctl enable dockercurl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`un..

更多
loading..
Python

一日一技:如何实现带timeout的input?

我们知道,在Python里面,可以使用input获取用户的输入。例如:但有一个问题,如果你什么都不输入,程序会永远卡在这里。有没有什么办法,可以给input设置超时时间呢?如果用户在一定时间内不输入,就自动使用默认值。要实现这个需求,在Linux/macOS系统下面,我们可以使用selectors。这是Python自带的模块,不需要额外安装。对应的代码如下:123456789101112131415import sysimport selectorsdef timeout_input(msg, default='', timeout=5): sys.stdout.write(msg) sys.stdout.flush() sel = selectors.DefaultSelector()..

更多
软件工程

统计千行代码Bug率,有没有意义?

我的结论是:统计Bug率有意义。但是统计千行代码Bug率没有意义。为什么千行代码Bug率是没有意义的?某公司最近出了一个方案,用来量化程序员的工作绩效。叫做千行代码Bug率。在一个统计周期内,程序员每增加或者修改的代码行数与QA发现的Bug数,根据如下规则计算Bug率:1000行代码,1个bug,那么Bug率是100%;2000行代码,4个bug,那么Bug率是200%;5000行代码,3个Bug,那么Bug率是60%n行代码,m个Bug,那么Bug率是m / n * 1000先不考虑这个规则本身是否有问题。我觉得,所有和代码行数挂钩的绩效统计,都是没什么意义的。因为代码行数是可以刷的。如果某个绩效需要代码行数越少越好,那么可以使用行数少的写法;某个绩效需要代码行数越多越好,那么可以使用行数多的写法。例如..

更多
loading..
PythonNLP

一日一技:把自然语言描述的时间转成标准格式

如果你使用过嘀嗒清单或者Todoist,那你应该知道他们有一个很好用的功能,那就是自动识别任务中的时间,例如:1下周二下午三点给老板发邮件它会自动识别为:今天,公众号粉丝群里面,有一个叫做NowAnti的同学推荐了一个项目,叫做司南,它就可以让Python实现这样的功能。我们来看看这个第三方库怎么使用。首先pip安装它:1python3 -m pip install sinan安装完成以后,使用方法非常简单:1234from sinan import Sinanobj = Sinan('下周二下午三点给老板发邮件')result = obj.parse()print(result)运行效果如下图所示:这个库不仅可以解析时间,它还可以解析更复杂的语句,例如:12>>> obj = Sina..

更多
刷机root隐藏SafetyNetmagiskaliothxiaomi.euzygiskmagisk隐藏K40

红米K40 国际版刷机

解锁BL不管刷不刷,有没有想好,申请解锁就行了。因为有资格之后需要用 MIUI unlock 去手动解锁,才会清除数据。手机登陆MIUI账号打开开发者设置,搜索设备解锁状态,点击绑定绑定7天后即可进入下一步解锁注意:重复绑定、退出MIUI账号或者拔掉手机卡,时间会重新计算。数据备份使用自带的备份与恢复对手机进行备份使用TI备份之类的对手机进行备份将手机里面的重要数据手动传输到其他设备,如电脑。解锁手机充满电访问 miui.com/unlock/下载解锁工具(Windows Only)解压启动解锁工具更新解锁工具点击工具设置,检测\安装 USB 驱动登陆小米账号,进入解锁页面手机打开adb调试,adb reboot fastboot 进入 fastboot(你也可以用手按如果解锁工具显示未检测到手机,拔插多..

更多
刷机短信应用商店免root安装包提取联系人adbmiui

使用ADB免ROOT抓取手机APK

国际版系统对比国内版缺失了不少东西,有些可以自己从系统里面提取推荐使用 mac 或者 linux 运行命令Windows 建议自力更生默认提取到 /tmp/apk,该文件夹需要提前创建提取所有APK包12345678# 所有for i in $(adb shell pm list packages | awk -F: '{print $NF}')doapk_path=`adb shell pm path ${i} | awk -F: '{print $NF}'`tmp_path=/tmp/apk/$i.apkecho -e "adb pull $apk_path -> $tmp_path"adb pull $apk_path $tmp_pathdone提取xiaomi包12345678# 小米包fo..

更多
loading..
CTFWriteUp

CTF | 2022 MRCTF WriteUp

引言 MRCTF 2022 2022.4.23-4.24 https://mrctf.fun 今年的 MRCTF 由个人赛变成了团队赛,于是在四月底的一个周末,NanoApe 拉了喵喵,还有 GZTime 和 TonyCrane 组了个小队,一起来看了看这个比赛,玩了玩 因为我们几个主要擅长 Misc,于是起名 Never Gonna Try a Misc🎵,哈哈 由于那时候还有别的事,喵喵就随便看了看题,然而 Misc 转眼就被 Nano 给 AK 了,Orz 这篇就记录一下咱这边做题的 writeup 吧,很水( (噢,你问我为啥现在才发出来?因为这是一篇写了一半之后放在草稿箱里长草的文章了,整理了一下发了好了…… (老咕咕咕了 WebWebCheckIn直接写命令弹shell,会调用 p..

更多
算法数据结构

最大堆的原理与实现

基本原理最大堆是一个二叉树,要求这个二叉树的父节点大于它的子节点,同时这个二叉树是一个完全二叉树,也就是说这个二叉树除了最底层之外的其它节点都应该被填满,最底层应该从左到右被填满。显然,最大堆的顶部节点的值是整个二叉树中最大的。我们使用数组来构建一个最大堆,使用数组构建一个二叉树最大堆存在如下性质。假设二叉树某节点在数组中的下标索引为index,则它的父节点在数组中的下标索引为parent = (index - 1) // 2,它的左子节点的下标索引为child_left = index * 2 + 1,右子节点的下标索引为child_right = index * 2 + 2。如果计算出来parent小于0或者child大于了数组最大值,就说明没有父节点或者子节点。代码实现接下来我们创建最大堆类,存储一..

更多

Vue 3 UI 组件库评测

Vue 3 UITS/JSSFC/JSXOptions/CompositionDesktop/Mobile/MPStyle特点缺点推荐Element PlusTSSFCCompositionDesktopscsssetup🌟🌟🌟🌟🌟Ant Design VueTSJSXCompositionDesktoplessReact🌟🌟🌟🌟🌟TDesignTSJSXCompositionDesktop/Mobile/MPlessReact/腾讯🌟🌟🌟🌟🌟Arco Design VueTSSFCCompositionDesktoplessReact/字节🌟🌟🌟🌟🌟Naive UITSJSXCompositionDesktopcss in js图森🌟🌟🌟🌟🌟NutUIT..

更多
loading..
分布式系统一致性哈希二分搜索

一日一技:二分偏左,二分搜索在分布式系统里面也有用?

相信大家都知道二分搜索,在一个有序的列表中,使用二分搜索,能够以O(logN)的时间复杂度快速确定目标是不是在列表中。二分搜索的代码非常简单,使用递归只需要几行代码就能搞定:12345678910111213def binary_search(sorted_list, target): """ sorted_list是单调递增的列表 """ if not sorted_list: return False mid = len(sorted_list) // 2 if target > sorted_list[mid]: return binary_search(sorted_list[mid + 1:], target) elif..

更多
1565758596087