Coding Note
文章平均质量分 75
SpeculateCat
这个作者很懒,什么都没留下…
展开
-
Ubuntu 普通用户免 sudo 执行 root 权限命令
问题描述在之前配置 Ubuntu 系统下使用 Intel 核显 GPU QSV 加速,无论是 vainfo 还是编译后的 ffmpeg 都需要有 root 权限才能调用硬件加速功能。分析对于这种情况,要么一直使用 root 用户来执行程序,要么每一次都使用 sudo 来提权。然而,一直使用 root 并不安全。如果每一次都使用 sudo 提权,若需要将 ffmpeg 嵌入到其他程序 (如在python脚本中使用 ffmpeg) ,那么使用 sudo python ... 则会导致 python 脚本中原创 2021-10-05 21:37:00 · 5029 阅读 · 0 评论 -
Python SQLite 数据库插入 Tips
SQLite 是一款常用、轻量的数据库。虽然使用比较简单易懂,但也存在一些小技巧。本文将介绍 SQLite 中 Python 应用的Tips。首先,在 Python 使用 SQLite 要先安装 sqlite3 库的依赖:# conda 安装conda install sqlite3# pip 安装pip install sqlite3然后需要在程序的开头应用库:import sqlite3在开始介绍 Tips 之前,先来创建一个数据表:# 连接数据库,如果文件不存在,会自动创建文件原创 2021-09-15 17:04:27 · 1237 阅读 · 0 评论 -
Ubuntu20.04 ffmpeg添加 Intel核显QSV加速支持
背景介绍ffmpeg 是一款非常常用的视频编码解码工具,而且 ffmpeg是支持 NV 显卡硬件加速以及 Intel 核显的 QSV 加速。在 Window 下,使用 ffmpeg 的 qsv 加速还算不太复杂,但在 Ubuntu 下,需要安装一大串工具,而且还需要自己编译 ffmpeg。之前尝试过失败后, 就放弃了。过去一直使用二手服务器来进行视频转码压缩,服务器 CPU 一般核心多,而且 SAS 硬盘便宜,一台几十核的服务器装好虚拟机,一起运行解码,就算没有硬件加速,速度也是勉强过得去。然而,最近原创 2021-05-14 17:44:27 · 3744 阅读 · 3 评论 -
快速了解Python socket编程
在 《MicroPython(ESP32/ESP8266) 实现web控制GPIO》 中有使用到 Python socket 来在开发板上实现一个简单的web服务,但在上文中并未对其进行详细的说明。本文通过结合 Python 官方文档,对 Python socket 编程进行一个梳理,同时加深理解。socket这里的 socket 通常指 Network socket,中文名叫网络套接字,主要用于主机间或进程间的数据通讯。相信很多第一次接触这个名词,都会一头雾水,因为这个套接字的翻译有即拗口也很难从字面原创 2021-04-26 16:28:34 · 872 阅读 · 4 评论 -
macOS miniforge3 conda 命令失效解决方法
macOS 安装了 Miniforge3 的 codna 后,一直正常使用,但后来随着 macOS 更新后,codna 的命令就不能正常使用了。与大多数网上提及的问题不同,网上大多数 conda 出问题都是 PATH 配置的问题,他们的问题主要体现在 conda --version 无响应。但我的问题确实 conda --version 能有正常反馈,但是执行 conda env list conda info 均无返回,如果执行 ~/miniforge3/bin/conda info 会返回 kille原创 2021-03-29 15:59:30 · 3288 阅读 · 15 评论 -
macOS VSCode 终端使用powerline字体配置
问题描述因为使用itern及zsh替代了原本的terminal,并使用了其他主题以及powerline字体,导致vscode里的终端并不能正常显示(乱码),此文将解决该问题。问题所在正常来说,在settings.json配置文件中添加相应字段即可:"terminal.integrated.fontFamily": "Menlo for Powerline"然而设置完后,问题并没有解决。经研究,发现原来使用ttf安装的字体,字体文件并不在/Library/Fonts/中,所以只需要字体放置于该路径原创 2021-03-06 22:26:01 · 1529 阅读 · 0 评论 -
M1 Mac 疯狂读写SSD? 快来查看自己SSD读写数据
最近能在网上看到很多关于M1 Mac的SSD存在大量读写的状况,很多伙伴都担心自己的SSD寿命会因此快速损耗。一下将介绍如何查看SSD的状态。smartctl 安装首先,我们想要查看SSD的状况,需要使用一个smartctl的工具。我们可以使用homebrew来安装。但是我们这里提供一个不需要homebrew,直接下载安装包的安装放下。我们需要先下载安装包。下载地址:https://sourceforge.net/projects/smartmontools/我们选择最新的版本下载即可。下载完成原创 2021-02-27 18:49:32 · 27210 阅读 · 18 评论 -
Apple Silicon M1 机器学习性能简单测试
Apple官方给tensorflow做了支持,使得带M1芯片的机器能用上硬件加速。本文将使用Macbook Air M1、2015 Macbook Pro 13” 以及Google提供的CoLab平台GPU和TPU进行测试对比。测试方法使用在tensorflow_macos项目Issues中Willian-Zhang提供的Benchmark: CNN脚本对以上平台分别测试,并计算运行完脚本所使用的总时间。脚本程序可以在github上获取,或者在本文末尾找到。在运行脚本之前,需要先给macOS安装配置好原创 2021-02-16 16:08:01 · 1538 阅读 · 1 评论 -
MacBook Pro 13 A1502 更换电池
不久前,将MBP13重置了系统,隔了一个晚上之后,就发现开不了机了。插上电源,显示只有1%电量,提示电池需要维修。网上搜索若干后,好像和macOS 11.2的Bug有关。然后又过了几天,发现有系统更新,macOS 11.2.1 就是修复这个1%电量电池维修的问题。愉快的更新后,发现问题依旧没有解决。再打开电池信息看看,发现电池全负荷电量只有2290mAh,一半都不到。估计是电池挂了。此外还发现了一个问题,就是电脑虽然插着电源可以正常开机使用,但是整个系统都显得非常卡,用软件查看了一下,发现原来电池坏了原创 2021-02-12 15:18:29 · 10774 阅读 · 0 评论 -
树莓派安装Python3.8 64bit
在之前,树莓派并没有好用的conda环境。常用的Miniconda最后的更新也是在2015年。而且这还是32bit的版本。如今Ubuntu已经为树莓派提供了64bit的系统版本,我们也希望能够用上新版本的conda以及支持64bit的python。这里我们选择Miniforge提供的conda,它目支持arm平台以及支持64位的系统,以下为使用树莓派3的安装示例:我所使用的硬件为树莓派3,操作系统为64bit的Ubuntu20.04,如果需要为树莓派安装Ubuntu20.4 64bit系统的,可以参考原创 2021-02-09 11:50:54 · 3356 阅读 · 2 评论 -
macOS Intel(x86_64) 安装TensorFlow环境
《macOS M1(AppleSilicon) 安装TensorFlow环境》一文介绍了如何为M1处理器的Mac安装配置Tensorflow环境。除了M1的Mac以外,其实苹果也为x86架构的Intel处理器Mac提供了Tensorflow支持。以下为针对Intel处理器的Mac安装配置Tensorflow环境的示例:Miniforge3安装Miniforge3的安装和M1处理器的Mac基本差不多,只是在下载的时候选择Miniforge3-MacOSX-x86_64版本即可。具体安装方法可以参考《ma原创 2021-02-08 10:07:25 · 1167 阅读 · 3 评论 -
macOS M1(AppleSilicon) 安装TensorFlow环境
苹果为M1芯片的Mac提供了TensorFlow的支持,可以使用M1芯片进行硬件加速,以下是如何给使用M1芯片的macOS安装TensorFlow的环境。首先,在安装之前,我们需要先安装好conda-forge的miniforge3。具体可参考《MacOS M1(Apple Silicon) 安装配置 Conda 环境》。创建conda环境miniforge3默认是python3.9,我们安装tensorflow需要3.8版本的python,所以我们需要先创建一个conda环境conda creat原创 2021-02-05 10:07:46 · 6069 阅读 · 12 评论 -
macOS M1(Apple Silicon) 安装配置 Conda 环境
由于常用的Anaconda和Miniconda现在都没有提供M1处理器支持的conda环境(截止于2021/2/4),虽然也不影响正常使用,但如果能有支持的版本会更好。以下是conda-forge提供的miniforge,目前有支持Apple Silicon的版本软件。下文将演示如何安装及使用。下载软件首先,下载 miniforge3,下载地址为:https://github.com/conda-forge/miniforge/#download在页面中选择 Apple Silicon 版本将下载原创 2021-02-04 17:03:31 · 9548 阅读 · 6 评论 -
Win10 升级使用 WSL2
WSL - 全称叫 Windows Subsystem for Linux,是微软出的一个可以在 Windows 平台下使用 Linux 的功能。不久之前,WSL 更新升级到 WSL2,WSL2 比之前提高了文件系统的性能,以及提供了全系统调用的兼容性。具体的升级内容可以参考官方文档。本文将以官方WSL2升级文档为参考,介绍如果给Windows10升级WSL2。本文概要如下:准备工作功能开启WSL2设置发行版安装准备工作我们首先需要检查我们的系统版本。Win + R 输入 winver原创 2020-08-28 13:57:01 · 2206 阅读 · 0 评论 -
Windows Terminal 自定义主题配色
随着Window10的更新,现在的WSL2对Linux的支持已经有很大的改进,再加上微软自家出的 Windows Terminal 终端命令行工具,于原来的 PowerShell 和 CMD 相比,使用体验上夜有很大的进步。然而,Windows Terminal 默认的主题和配色都不太好看,再加上官网的文档关于这方面又不是讲得十分简单易懂。所以下文将简单介绍如何给 Windows Terminal 更换主题和配色。本文概要主题配色网站介绍主题颜色配置方法使用配色方案主题配色网站关于终端的主原创 2020-08-28 11:34:46 · 7620 阅读 · 4 评论 -
MacOS 安装跨平台加密工具 VeraCrypt
在 Window 系统中,我们可以使用 BitLocker 来给文件进行加密。然而,如果需要同时使用多系统,跨平台使用,那可以使用开源加密工具 VeraCrypt 。以下介绍如何为 MacOS 安装 VeraCrypt 工具。准备工作在安装之前,需要先安装 osxfuse 工具。 osxfuse 可以使用源码编译安装或者使用提供的 dmg 安装包。DMG安装包安装首先在 FUSE f...原创 2020-02-18 10:48:10 · 1046 阅读 · 0 评论 -
Python 使用 PyOTP 实现二步验证
二步验证之前为服务器安装配置了 PVE 虚拟机系统,由于经常需要远程登陆以及通过 Web 进行管理,所以需要进一步提高安全性。PVE 提供了二步验证的功能,结合手机上的 FreeOTP 软件可以实现账号密码+验证码的登陆操作。于是,就产生了一个想要给其他的一些对安全性有一定要求的应用也添加二步验证的功能。下文主要简单介绍如何使用 python 的 pyotp 库来实现一个简单的二步登陆验证功...原创 2020-02-11 16:45:14 · 3480 阅读 · 1 评论 -
Ubuntu 18.04 开启隐藏录音降噪功能
最近在使用 Ubuntu 18.04 录音的时候,发现了一个问题:使用系统默认的配置进行录音,录制出来的音频会有明显的噪音,我记得在 WIndow 系统里面,有一个麦克风降噪的选项可以选,但在 Ubuntu 上始终都没有找到。后来,我在 ask ubuntu 上找到了解决这一问题的方法,这是一个隐藏的设置,需要通过修改配置文件来开启。开启降噪功能需要修改我们的系统配置文件( /etc/puls...原创 2018-07-25 12:25:31 · 4003 阅读 · 3 评论 -
Python 列表元素字符串转浮点
在网络爬虫或者读取文件中的数据时,很多时候读取出来的数值是字符串形式的,这些字符串形式的数据并不能用来作计算或者更深入的操作,因此我们需要把他们转换为数值的形式。简单粗暴的 for 循环假设,这里有一个以字符串形式存储数值的列表,具体如下:a = ['2', '3.5', '10', '88', '32.66']我们需要将其转换为浮点的形式,最简单粗暴直接的方法,可以使用 ...原创 2018-07-29 17:57:04 · 55836 阅读 · 5 评论 -
Python 数值区间处理 - interval 库的快速入门
使用 Python 进行数据处理的时候,常常会遇到判断一个数是否在一个区间内的操作。我们可以使用 if else 进行判断,但是,既然使用了 Python,那我们当然是想找一下有没有现成的轮子可以用。事实上,我们可以是用 interval 这一个库来完成我们需要的操作。区间判断基础最基础的区间判断操作就是先创建一个区间几个,然后使用 in 来判断一个数是否存在于区间之内。代码如下:...原创 2018-07-29 21:49:51 · 46958 阅读 · 0 评论 -
Window 平台下添加 tree 命令
在 WIndow 平台下,系统自带的命令行工具 CMD 可以使用 dir 命令来以树结构打印目录文件,Powershell 工具可以使用 tree 命令。但是,一般为了开发方便,通常会使用更接近 Linux 命令的 Git-Bash 作为常用的命令行工具,然而 Git-Bash 却不支持 tree 命令。以下为给 Window 平台下 Git-Bash 添加 tree 命令的方法。下载 tree...原创 2018-12-28 11:59:30 · 1178 阅读 · 0 评论 -
Ubuntu 自动化更换软件源脚本
由于 Ubuntu 默认的软件更新源,安装或者更新软件的速度都比较慢,我们通常使用 Ubuntu 都会将软件更新源换为国内的镜像源。然而,我们在新部署服务器,或者配置一些不安装 GUI 的工作站的时候,就没有办法想有 GUI 的系统那样通过打开网站,然后复制粘贴修改更新源的配置文件,因此,我们将编写一个 shell 脚本,用于一键自动化备份配置文件,更新配置源文件,以及自动执行软件更新升级操作。 ...原创 2018-04-16 11:52:09 · 3471 阅读 · 0 评论 -
Ubuntu 屏幕录制噪音处理
最近,在使用 Ubuntu 18.04 做屏幕录制的时候,发现了一个问题:就是屏幕录制过程中,麦克风收音会有很大的背景噪音。但在相同的录音环境中,使用相同的麦克风设备,使用 MacBook 录制也没有发现有噪音。恰好,我的电脑是安装了 Ubuntu 和 Window 双系统,我切换到 Window 平台,也尝试了一下,发现也是有噪音的。经过一番研究,我发现了在 WIndow 声音设置里面,有一...原创 2018-07-17 16:36:32 · 1810 阅读 · 0 评论 -
使用 Mkdocs 在 Github 上快速部署文章
概述为项目编写文档,网上比较多的推荐是使用 ReadTheDocs ,以及配合 sphinx 来使用,然后经过一番尝试,发现 sphinx 对 markdown 格式的支持并不是太好,在连接上常常会出现问题,而且个人感觉 ReadTheDocs 网站上的管理功能也不是那么符合我们的习惯,于是向寻找一款替代方案,经过一番搜索,找到了一款叫 MkDocs 的工具。 MkDocs 架构简单,工具可...原创 2018-07-08 22:38:44 · 3095 阅读 · 0 评论 -
Ubuntu 18.04 与 Win10 双系统
早在 Ubuntu 18.04 LTS 正式版发布的时候,就想更新一下系统,体验一下新版本的 Ubuntu。由于原来是使用 Win10 作为常用系统,Ubuntu 16.04 作为开发系统,利用 EasyBCD 进行引导,实现开机选择不同系统。但新版本的 Ubuntu 18.04 却不很好的支持这种方式,当初尝试了很多办法,都没有成功,最后是利用开机进入主板设置通过选择启动硬盘顺序来切换系统。然后...原创 2018-06-26 17:48:24 · 5947 阅读 · 0 评论 -
使用 UnixBench 进行 Ubuntu 系统基准测试
通常,在我们需要采购新设备、或者准备升级设备的时候,总是希望对设备进行一系列的性能评估,除了直接看硬件参数,比较理性、简单的方法就是能有一个测试软件来为我们的硬件系统平台打个分,然后我们就可以根据这个数量化的结果来进行决策。这种方式对于个人或者一些小团队而言,更显得方便而又重要,因为个人和小团队都不太可能找设备供应商拿到足够的售前支持,或者去做专业的评估,而这种“跑个分”的方式不失为是一种既省成本...原创 2018-04-18 13:51:50 · 3207 阅读 · 1 评论 -
VirtualBox 安装 Ubuntu 开发环境详细图文教程
为什么要使用 Ubuntu目前主流的操作系统主要有 Window、Linux 以及 MacOS。其实现在如果不是需要开发特定平台的应用程序,如iOS一定需要在MacOS上开发,大多数应用都的开发者三款操作系统都有支持的工具。 我自己以上三个系统我都使用过,个人感受是 MacOS 作为开发的体验比较好,配合其独特的键盘键位以及功能强大的触控板,的确是非常便利,但是缺点是必须配备一台...原创 2018-04-12 17:01:39 · 3492 阅读 · 0 评论 -
Ubuntu 挂载新硬盘
我们在使用 Ubuntu 作为服务器系统时,会有一个常用的操作情景,就是为服务器添加新硬盘。 上图是我的工作室中的一台开发服务器的图片,可以看到,类似这种机架式服务器,前方都会有若干个可抽插硬盘笼,我们可以比较轻松的添加或者更换硬盘。为方便演示如何为 Ubuntu 添加新硬盘,以及如何格式化分区和挂载,我们将使用 VirtualBox 虚拟机以及 Ubuntu Server 16.04 ...原创 2018-04-17 12:26:34 · 2481 阅读 · 0 评论 -
PyMongo 库使用基础使用速成教程
为什么要使用 MongoDB 以及 Pymongo在程序开发实践中,除了学习代码、算法之外,其他开发有用的程序一定离不开数据库。然而,传统的 CS 专业里面教授数据库往往会从 SQL 数据库开始学起,但是,要使用 SQL 数据库,那么第一步一定离不开如何建表,设置字段、设置键的类型等,而作为初学者,加上没有真是的项目背景的情况下,数据库的设计往往只能是那种一个 User 用户表,然后再...原创 2018-04-11 17:14:37 · 6562 阅读 · 2 评论 -
Ubuntu /boot 占满解决方案
我们在安装 Window 和 Ubuntu 双系统的时候,往往会自定义 /boot 分区,一般网上的教程都会建议给 /boot 分区分配 200M 的大小。但是,系统升级的时候,往往会是这个分区空间被占满,导致不能升级,以下为针对这以问题的解决方法。解决问题的思路造成这一问题的主要原因是因为系统升级的时候会安装不同版本的 kernel,但是实际上使用的往往只有一个。因此,我们只需要把没...原创 2018-04-11 15:39:33 · 9119 阅读 · 1 评论 -
GitHub 基础用户配置
通过这篇文章,可以了解到以下内容: 创建 SSH key添加新的 SSH 到 ssh-agent配置 git 的用户名和邮箱创建 SSH key首先,我们先检查以下本地是否有已经创建好的 SSH key,具体操作参考以下代码: $ ls -al ~/.ssh如果之前已经创建过 SSH key,可以看到会有 id_rsa.pub 类似的文件,如果不存在类似的文件,或者向要重新创建 SSH原创 2017-09-18 21:08:10 · 682 阅读 · 0 评论 -
Win10使用SublimeText3代替Arduino IDE开发Arduino程序
通过本文,可以了解到以下内容:为什么要寻找替代 Arduino IDE 的软件SublimeText3 Stino 插件安装SublimeText3 Stino 配置SublimeText3 Arduino 使用为什么要寻找替代 Arduino IDE 的软件Arduino 官方提供了一个 Arduino IDE 。不过由于之前习惯使用过类似 PyCharm 和 XCode 之类的带有丰富原创 2017-09-18 10:38:54 · 6896 阅读 · 6 评论 -
Window平台Git-Bash的主题配置
通过这篇文章,可以了解到: - 为什么要使用 Git-Bash,以及 Git-Bash 的优点 - Git-Bash 的外观主题配置Git-Bash 的优点在开发的过程中,我们可能需要使用大量的命令行工具,或者远程连接到服务器进行操作。然而,由于 Window 自带的 CMD 和 PowerShell 都不太好用,而且在 Window 下的命令又与 Linux 和 MacOS 的命令不太一样,如原创 2017-09-18 10:17:47 · 7251 阅读 · 1 评论 -
Docker使用MariaDB
这篇文章主要分为两个部分。 第一部分通过描述使用场景介绍为什么要使用 Docker 以及在 Docker 中使用 MariaDB 有什么优势。 接下来在第二部分中详细介绍如何安装 Docker ,使用 MariaDB 镜像以及如何挂载数据卷以及迁移数据的技巧。为什么要使用 Docker程序的开发过程中,尤其是涉及服务器的开发,往往部署的服务器和开发的电脑不是一样的环境,而在现实中,不同的开发者的原创 2017-09-18 10:09:32 · 6496 阅读 · 0 评论 -
Docker MongoDB 部署
MongoDB 是一款较为常用的NOSQL 数据库,结合 Docker 使用,能实现轻松配置部署、迁移,本文以下为简要介绍如何在 Docker 中部署并使用 MongoDB。下文主要分为几个部分,内容如下: - MongoDB 镜像安装 - MongoDB 容器创建 - MongoDB 容器数据目录挂载 - MongoDB 数据迁移 - MongoDB 常用 Docker 命令M...原创 2018-04-06 22:08:59 · 3092 阅读 · 0 评论 -
使用 Python 查看局域网内存活主机
概述当我们的网络首次接入一些新的设备,而且这些设备不是像手机、电脑一类的有屏幕设备,如服务器、Nas、树莓派等硬件,我们想要通过网络连接控制,但是并不知道设备的 IP 地址,这时,我们就需要扫描网络找到我们目标硬件设备的 IP 地址。常用的方法如进入路由器管理后台,我们就可以找到我们的设备 IP 地址,或者使用现成的软件,如 Adbanced IP Scanner 软件,也可以扫描...原创 2018-04-30 17:58:16 · 9961 阅读 · 16 评论 -
树莓派3B 使用 Docker 安装 MongoDB
概要由于树莓派是基于 Armv7l 平台,平常用于 x86 的 Mongodb docker 镜像并不能直接安装,因此本文目的为解决在树莓派3B Raspbian Stretch 系统上使用 Docker 安装运行 MongoDB 镜像的问题。 关键词 树莓派3B Raspbian Stretch Docker MongoDBrpi3-mongodb3首先,在安装 Docker ...原创 2018-04-28 22:25:18 · 1610 阅读 · 1 评论 -
解决 Raspbian Miniconda 无法安装最新 Python3.6
概述在之前一篇文章《Raspbian Miniconda安装配置》中介绍了如何在树莓派Raspbian系统上安装 conda 环境。但是,在安装使用了一段时间后,发现使用 Miniconda 的 armv7l 版本,python 只有 3.4 的版本,而且比如安装 ipython,也不能正常使用,这会导致日常的使用非常不方便,因此本文将寻找替代方案去解决这一问题。 关键词 树莓派 Raspb...原创 2018-04-27 18:11:11 · 3543 阅读 · 1 评论 -
Raspbian Miniconda安装配置
在安装配置完树莓派后,系统自带默认的 Python 版本是 2.7,由于平常使用的是 Python3 ,于是就想安装一套 Anaconda 环境。Anaconda 是有系统版本的区分,在安装之前,查看以下系统的情况:uname -a>> Linux raspberrypi 4.14.34-v7+ #1110 SMP Mon Apr 16 15:18:51 BST 2018 a...原创 2018-04-26 13:16:00 · 4394 阅读 · 1 评论 -
树莓派3B 开箱配置
概述最近看到淘宝推荐有树莓派3B+,价格和3B一样,增加了千兆网络,和5G Wifi,性能也有一些提升,然后就下单买了。可是没看清楚介绍,原来3B+是预售,不是马上有货,然后那家店的3B+是单独预售购买的,如果点了套装,实际上卖的是3B。于是满怀兴奋的拆开快递后,呈现一脸懵B状态。本来纠结要不要退货重买,不过想想其实性能也不是差距十分大,既然都收到了,不如先研究一番,等到19年树莓派4出的时候...原创 2018-04-26 11:51:54 · 7172 阅读 · 2 评论