分类标签归档:技术

Python的列表、集合和字典推导式


列表推导式是Python最受喜爱的特性之一。它允许用户方便的从一个集合过滤元素,形成列表,在传 递参数的过程中还可以修改元素。形式如下:

[expr for val in collection if condition]

它等同于下面的for循环:

result = []
for val in collection:
if condition: result.append(expr)

filter条件可以被忽略,只留下表达式就行。例如,给定一个字符串列表,我们可以过滤出⻓度在2及以 下的字符串,并将其转换成大写:

strings = ['a', 'as', &

Read more

设置树莓派中frp客户端开机自启


最近入手了树莓派4B,开始了这个小玩意的折腾之旅。因为家里的电信网络没有公网IP,为了便于从外网环境下随时随地访问本地树莓派上部署的监控和远程下载等功能,我使用了国人开发的frp反向代理来实现内网穿透,项目的GitHub地址:https://github.com/fatedier/frp

为了实现树莓派上frp客户端的开机自启,以应对断电重启后带来的访问问题,我写了一个systemd的脚本: 首先获取root权限,进入树莓派的systemd目录:

sudo -i
cd /lib/systemd/system

然后使用nano编辑器新建frpc.service服务文件:

nano frpc.se

Read more

树莓派RaspberryPi安装|配置mariadb


//安装命令
$ sudo apt-get install mariadb-server -y    //raspbian中已经废弃了mysql,只有mariadb
//安装完毕后,暂时还不能使用,需要通过sudo mysql 登录进行修改密码,授权等操作,这些操作与其他MySQL是一样的。
$ sudo mysql
MariaDB [mysql]> GRANT ALL PRIVILEGES ON *.* TO root@'localhost' IDENTIFIED BY 'yourpasswd';
MariaDB [mysql]> FLUSH PRIVILEGES;
MariaD

Read more

Mac OS Catalina 通过pyenv 安装和使用任意版本的python


在Mac更新至Catalina之前因为Mac没有集成python3,所以可以使用homebrew安装python3进行管理,但Mac更新至Catalina后开始集成python3,为了不影响系统的python3环境,我们可以直接通过homebrew安装python3就会带来一些冲突问题,这里可以使用pyenv解决。

什么是pyenv

pyenv是一个forked自ruby社区的简单、低调、遵循UNIX哲学的Python环境管理工具, 它可以轻松切换全局解释器版本, 同时结合vitualenv插件可以方便的管理对应的包源.

安装步骤

1.先安装homebrew(已安装的略过)

/usr/bin/

Read more

mac软件“意外退出”打不开解决方案


如果你的mac装的是TNT的破解软件的话,因为Apple删除了TNT的证书,因此应用程序将在7月12日之后崩溃。目前的解决方案是自己签名。

首先,打开终端,安装xcode命令行模式:

xcode-select --install

然后在终端输入:

codesign --force --deep --sign - /Applications/name.app

name.app实际上是你的应用软件的包名。

Read more

homebrew 基本操作以及使用代理


基本操作

操作 命令

更新 Homebrew brew update

更新所有安装过的软件包 brew upgrade

更新指定的软件包 brew upgrade wget

查找软件包 brew search wget

安装软件包 brew install wget

卸载软件包 brew remove wget

列出已安装的软件包 brew list

查看软件包信息 brew info wget

列出软件包的依赖关系 brew deps wget

列出可以更新的软件包 brew outdated

临时使用代理

brew支持全局socks代理,使用前打开终端,加上这一句:

export ALL_

Read more

Python之dict(或对象)与json之间的互相转化


在Python语言中,json数据与dict字典以及对象之间的转化,是必不可少的操作。

在Python中自带json库。通过import json导入。

在json模块有2个方法,

loads():将json数据转化成dict数据

dumps():将dict数据转化成json数据

load():读取json文件数据,转成dict数据

dump():将dict数据转化成json数据后写入json文件

Read more

为Nvidia的游戏卡开启专业卡的抗锯齿功能


游戏卡性能很强大,但是一到CAD里,马上就萎了,全是锯齿,这是为什么呢?因为Nvidia搞了负优化,阉割了专业软件的抗锯齿功能,不允许开启抗锯齿! 游戏里抗锯齿杠杠的,一到专业软件就不允许开启抗锯齿,顺带突出了专业软件的驱动优化。 不过还是有办法开启抗锯齿的,Nvidia的工具NVTweak,在优化显卡功能的同时,也承担了负优化抗锯齿功能,于是我们只需要修改注册表:

[HKEY_CURRENT_USER\Software\NVIDIA Corporation\Global\NVTweak]
"SedonaHasRun=dword:00000000"

就可以关闭这个负优化,于是CAD等专业软件就

Read more

brew services 命令解析


对于使用Mac系统的开发者来说,homebrew是必装的软件,装完homebrew后往往也会装mysql等应用服务,这时候就需要使用 brew services命令去打开或关闭mysql等应用。

[sudo] brew services list
列出所有正在运行的服务
[sudo] brew services run formula|--all
不开机启动的运行一个服务
[sudo] brew services start formula|--all
启动一个服务,并注册到开机启动
[sudo] brew services stop formula|--all
停止一个服务,并从开机启动里取

Read more

Mac使用tftp上传路由器固件刷机的方法(tftp: illegal option -- i)


最近需要把我的路由器(型号Netgear R7800)的openwrt刷回原厂固件,所以需要tftp刷回去,但是Windows下普遍常用的命令 tftp -i 192.168.1.1 PUT firmware.bin无法使用,Mac会提示:

tftp: illegal option -- i
usage: tftp [-e] host-name [port]

其实Mac下是可以刷机的,只不过方法有所不同,把自己的路由器的网线分别插入路由器的lan口和电脑网口,并手动指定自己的电脑ip为192.168.1.10,然后执行操作:

  1. 首先打开“终端”,切换到自己下载固件的目录
    cd 自己的目录path

Read more