2025-10-10 00:00:00
在当今数字化协作时代,高效的项目管理工具对于团队的成功至关重要。Focalboard 作为一款开源的项目管理软件,正在逐渐崭露头角,受到了众多团队和个人青睐。
Focalboard 是由 Mattermost 开发的功能强大开源项目管理和协作工具,能够以看板形式灵活地组织任务,创建详细笔记,并方便地共享文件。它支持创建各种类型的笔记页面,记录数字、链接、文字等多种类型的信息,且内置多种模板供用户直接套用编辑:
Focalboard 具有以下的特点:一是开源免费,数据自行托管,用户可将其部署在自己本地服务器上,确保数据安全可靠;二是支持多种平台,包括 Windows/macOS/Linux/iOS 和 Android 等,方便用户随时随地接入项目;三是具备丰富功能,如拖放卡、进出口板、按状态或着截止日期等过滤板和任务,以及支持多人协作、文件共享、团队和直接消息等;四是界面简洁易用,操作便捷,易于上手:
使用 Docker 安装 Focalboard。
输入命令 docker run -it -p 80:8000 mattermost/focalboard
后,等待安装完成。安装成功后在浏览器输入 localhost:8000
即可进入 Focalboard 的登录界面。
或直接下载安装包安装。
可前往 Focalboard 官方网站,下载适用于不同操作系统的个人桌面版安装包,按照提示完成安装。
在 Focalboard 的欢迎屏幕上,用户可选择创建新的团队并设置团队名称。
进入团队页面,点击创建看板按钮,根据需要选择看板类型,例如项目任务、内容日历、公司目标与 OKR、路线图等模板创建看板,也可创建空白看板自行设计。
还可设置看板名称、描述以及背景色等信息。
在看板上,通过点击添加卡片按钮来创建新任务卡片。
可以在卡片中输入任务描述,并为卡片添加标签、截止日期、优先级等属性,以便更好对任务进行分类和管理。
同时,可以将任务卡片分配给团队中的不同成员,明确责任分工。
团队成员可在看板上实时查看和编辑任务卡片,共同推进项目进度。
在卡片添加评论和讨论,提及队友以引起他们的注意,分享想法意见,实现高效协作沟通。
此外,还可以通过 Focalboard 的团队和直接消息功能,进一步加强团队成员之间的交流。
Focalboard 还支持文件共享,用户可以在任务卡片中上传相关文件,方便团队的成员查阅和下载。
可对看板进行筛选、分组、排序,快速找到所需的任务和信息。
还能查看历史记录、备份快照等等,确保数据安全性和可恢复性。
Focalboard 作为一款开源的项目管理工具,凭借其丰富的功能、简洁易用的操作界面及数据自托管等优势,为个人和团队提供一个高效、可靠的项目管理和协作平台。
无论小型团队还是大型企业,都可利用 Focalboard 来规划项目、分配任务、跟踪进度并实现顺畅的协作,从而提高工作效率和项目成功率。
2025-10-04 00:00:00
NodePass 是一个开源网络隧道工具,其基于 Go 语言开发,目标是让两台机器之间的通信变得简单又安全。想象一下,您有一台内网 Web 服务器,想让远在千里之外同事访问,NodePass 就能搭一座隐形的桥,把数据安全送过去。
它的工作方式非常巧妙,用一个未加密 TCP 通道来传递信号,然后通过另一个支持加密的数据通道把实际内容传过去。
您可以把它跑在服务器模式,接受外来连接,也可跑客户端模式,去连别人的服务器。
整个过程配置简单,资源占用较低,还支持 Docker 部署。
作为 GitHub 上开源项目,NodePass 用 MIT 许可证,代码全部公开,社区也挺活跃。
项目官网地址:
开源免费:代码全在 Github 上,透明并且省钱。
简单易用:不用编写配置文件,命令行一敲就能跑。
轻量省心:从树莓派到服务器,在哪里都能跑。
功能硬核:支持 TCP 以及 UDP,多种加密。
NodePass 提供 Docker 镜像,可以使用下面命令部署,以服务器模式运行:
1 |
docker run -d --name nodepass-server -p 10101:10101 -p 8080:8080 \ |
以客户端模式运行:
1 |
docker run -d --name nodepass-client \ |
2025-09-28 00:00:00
在计算机网络的学习与研究领域,Mininet 是款极具价值的工具。它就像是一个迷您网络世界的构建者,为我们提供便捷的网络实验环境。本文将带您深入了解 Mininet 魅力所在,并手把手教您安装与使用它。
Mininet 是一个用于创建虚拟化网络环境的平台。
它能够在一台计算机上快速构建出包含多个交换机、主机、路由器等网络设备拓扑结构。
对于网络研究人员、开发者以及网络课程的学生来说,Mininet 是一个理想实验平台。
通过它可以模拟大规模网络环境,进行各种网络协议研究、网络应用的开发测试以及网络教学演示等。
例如,如果您想研究一种新的网络路由算法,借助 Mininet 就可以轻松搭建出实验所需的网络场景,无需搭建实体网络设备,大大节省了成本和时间。
它的核心优势在于轻量级以及灵活性。Mininet 是基于 Linux 的用户模式 Linux 网络命名空间技术实现的,这使得它能很方便地在各种 Linux 系统上运行。
而且,Mininet 的网络拓扑结构可以灵活定制,无论是简单的链式拓扑、树形拓扑,还是复杂的自定义拓扑,都能通过简单的配置文件或命令行参数来实现。
同时,Mininet 还支持多种网络仿真工具集成,例如 Wireshark 等,方便针对网络流量进行分析。
安装 Mininet 的过程相对简便,但需要确保您的系统满足一定的前提条件。以下是基于 Ubuntu 系统安装步骤。
首先,需要更新系统的软件包列表。在终端输入命令 sudo apt update
,让系统获取最新软件包信息。
然后安装必要的依赖库。可通过运行 sudo apt -y install build-essential autoconf automake libtool pkg-config gawk git python python-pip python-dev tcpdump wireshark sqlite3 curl bzip2 openvswitch-datapath-dkms openvswitch-switch openvswitch-common
命令,可一次性安装这些依赖,它们是 Mininet 正常运行和后续功能扩展的基础。
接下来就是安装 Mininet 本身。可从 Mininet 的官方仓库克隆代码,可使用命令 git clone git://github.com/mininet/mininet
,然后进入 Mininet 目录中,再运行 mininet/util/install.sh -a
命令进行安装。这个安装脚本会自动完成编译和安装过程,在安装完成后,系统会提示安装成功的相关信息。
安装 Mininet 后,就可以开始体验它强大的功能了。最基本的使用方式是通过命令行来创建和操作网络拓扑。
创建网络拓扑。Mininet 提供了简单的命令行参数来快速创建常见的网络拓扑。
如运行命令 sudo mn
,就会自动创建一个包含两个主机、一个交换机和一个控制器的简单网络拓扑。
主机间通过交换机进行通信,控制器用于管理交换机行为。
如果想要创建更复杂的拓扑,可使用--topo
参数。如使用命令 sudo mn --topo linear,4
,就会创建四个主机呈线性连接的拓扑,主机 1 连接到交换机 1,交换机 1 连接到主机 2,依此类推,形成一条链式结构。
操作网络设备。创建好网络拓扑后,Mininet 会进入交互式命令行界面。在这个界面中,可对网络设备进行各种操作。
例如,可以通过 h1
命令进入主机 1 的命令行界面,在主机 1 上执行网络相关的命令,如 ping h2
来测试主机 1 和主机 2 之间的连通性。如果网络配置正确,应该可以看到主机 1 向主机 2 发送 ICMP 请求并收到回复的信息,这就表明网络通信是正常的。
对于交换机可以使用 ovs-vsctl
命令来查看和配置交换机的端口信息、流表等等。例如,ovs-vsctl show
命令可显示交换机的详细信息,包括交换机的名称、连接主机、端口号等。
可自定义脚本。当然,Mininet 也支持使用 Python 脚本来自定义更复杂的网络行为和实验场景。您可以编写自己的 Python 脚本来定义网络拓扑、配置网络设备参数及实现特定的网络功能。
例如,您可以通过继承 Mininet 的拓扑类,创建个包含多个子网络、不同带宽和延迟设置的复杂拓扑,并在脚本中对交换机的流表进行编程,实现特定流量转发策略,例如负载均衡、流量过滤等等。这种方式为用户提供了极大的自由度,能够满足各种个性化的网络实验需求。
总之,Mininet 可作为一款网络实验工具,凭借简单易用、功能强大特点,在网络领域有着广泛的应用。
无论是初学者入门网络知识,还是专业研究人员进行深度网络研究,Mininet 都是一个不可或缺的得力助手。通过掌握 Mininet 安装与使用方法,就可以开启一段精彩的网络实验之旅,探索网络世界无限奥秘。
2025-09-22 00:00:00
为了更好的执行 Python 脚本,杜老师习惯使用 Ubuntu 系统,不过在安装 Python 库时经常报错。收集了安装 Python 库的报错信息,并整理了解决办法,供需要的小伙伴们参考。
这里以上一篇《使用 Python 脚本实现图片相似度匹配》文中代码为例,首次执行时的报错信息如下:
1 |
penn@penn-VMware-Virtual-Platform:~/图片$ python3 1.py |
根据报错信息,提醒找不到 imagehash
模块,使用 pip3
命令安装需要的模块,结果又出现了错误信息。这个信息表明正在尝试在一个由操作系统管理的 Python 环境中直接安装 Python 相关的包,为了保证系统 Python 环境的稳定性和安全性而采取限制措施:
1 |
penn@penn-VMware-Virtual-Platform:~/图片$ pip3 install imagehash |
解决的方法有很多,这里推荐使用虚拟环境。因为使用虚拟环境可以避免直接修改系统的 Python 环境,同时方便管理依赖。按照提示创建一个虚拟环境,使用 python3 -m venv myenv
来创建虚拟环境,使用 source myenv/bin/activate
激活虚拟环境:
1 |
penn@penn-VMware-Virtual-Platform:~/图片$ python3 -m venv myenv |
在激活虚拟环境后,使用以下命令安装所需的包。安装完成后运行命令 deactivate
,退出虚拟环境:
1 |
(myenv) penn@penn-VMware-Virtual-Platform:~/图片$ pip install imagehash |
2025-09-16 00:00:00
随着相机像素越来越大,图片体积也变大了。在图片处理中,较大的文件体积会影响性能,因此杜老师会先生成缩略图,筛选完成后再通过 Python 脚本实现图片相似度匹配。这里是一个简单的示例,供需要的小伙伴们参考。
以下是个基于 Python 的脚本,使用 PIL
以及 imagehash
库来实现。
遍历目录 A 中所有图片。
在目录 B 中查找相似的图片「通过感知哈希算法判断」
如找到匹配项,则将图片复制到目录 C,并以目录 A 图片的名字命名。
1 |
pip install pillow imagehash |
注意:在运行脚本前,需安装所需的 Python 库。
1 |
import os |
注意:将 dir_a
, dir_b
和 dir_c
替换为实际路径;threshold
控制图像相似度阈值,可以根据需要调整;支持多种常见格式图片文件;使用 imagehash.phash
进行感知哈希的比较,适合用于识别视觉上接近的图片。
1 |
(myenv) penn@penn-VMware-Virtual-Platform:~/图片$ python3 1.py |
注意:脚本运行过程可能会有错误提示,需要根据提示进行修复。
2025-09-10 00:00:00
北京这边天气不错,特别适合骑行。杜老师拿出了压箱底的全景相机,打算录制一段沿途景色,结果压制出的文件体积很大。之前分享过通过 FFmpeg 来压缩视频的方法,这次整理了更多的方法,供需要的小伙伴们参考!
如果需要了解 FFmpeg 的安装方法,可以浏览《如何使用 FFmpeg 来压缩视频》一文,里面有详细介绍如何在 Linux 系统安装 FFmpeg。
如果需要在 Windows 系统上安装 FFmpeg,可以直接至官方下载安装包「或在评论区中留言」
原理:CRF 是 H.264 编码器中用于控制视频质量的一个参数,数值越小画质越高,体积越大,一般取值范围为 18-28,默认值 23,18 是视觉无损。
命令示例:ffmpeg -i input.mp4 -c:v libx264 -crf 18 -preset veryslow -c:a copy output.mp4
此命令指定了视频编码器为 libx264
,设置 CRF 的参数为 18
,且使用 veryslow
预设以进一步提高编码质量,音频部分直接复制。
原理:在不改变媒体编码的情况下,改变媒体封装格式,通常转换后的大小基本相同,一般不会出现过大差距,如果大小差距过大,需要检查媒体文件的完整性。
命令示例:ffmpeg -i input.mp4 -codec copy output.mp4
可直接更改封装格式,无需重新编码。
原理:降低视频分辨率可显著减小文件体积,对于对视频画质要求不是特别高,或需要在低分辨率设备上播放的场景比较适用。
命令示例:ffmpeg -i input.mp4 -vf scale=1280:720 -c:a copy output.mp4
该命令会将视频的分辨率调整为 1280×720 像素,音频的部分不进行重新编码,从而实现压缩体积目的。
原理:降低视频比特率可以在保持原始分辨率的同时减小文件体积,适当减少比特率能够有效的减少文件大小。
命令示例:ffmpeg -i input.mp4 -b:v 2500k -c:a copy output.mp4
此命令将视频比特率设置为 2500kbps,音频流则直接复制。
原理:HEVC 是一种更高效的视频编码格式,在同等画质下,相较于 H.264 编码,可使文件体积更小。
命令示例:ffmpeg -i input.mp4 -c:v libx265 -crf 28 -preset medium -c:a aac -b:a 128k output.mp4
其中-c:v libx265
指定输出的视频编码器为 libx265
,-crf 28
指定 CRF 参数为 28
,-preset medium
平衡视频质量和压缩速度,-c:a aac -b:a 128k
表示音频部分使用 AAC 编码,并设置了音频码率为 128kbps。