Anduin Xue
Anduin Xue

Anduin's Tech Blog

All Posts


How to use apt

本博客介绍了如何使用apt命令。通过使用`apt show`命令,可以显示软件包的依赖关系、大小、来源、维护者、主页和描述等信息。同时,还介绍了如何使用`apt install`命令安装软件包及其依赖项。博客还提到了依赖包和主包之间的关系,删除依赖包会导致主包一同被删除的情况。博客还介绍了`apt clean`命令用于清除缓存的功能。 在博客的后半部分,介绍了apt的高级用法。其中包括使用"pinning"功能控制软件包版本的安装,使用`apt-file`命令查看软件包内的文件,以及使用`apt-cache`命令查询依赖于某个软件包的其他软件包。 通过阅读本博客,读者可以了解到apt命令的基本用法和一些高级用法,以及如何管理软件包和依赖关系。读者还可以思考如何使用apt命令解决实际问题,例如如何安装特定版本的软件包或查找依赖于某个软件包的其他软件包。 请注意,本博客的摘要长度为300字左右,不超过600字。--GPT 4


应用商店、包管理……每天都会使用的东西有什么开发难度?

现代软件开发中,应用商店和包管理是我们每天都会使用的东西。然而,这背后隐藏着许多开发难题。安装一个包可能涉及到多个依赖关系,而这些依赖关系构成了一个有向无环图。基本需求包括避免重复安装相同的依赖、包与包之间的隔离、升级和降级的允许性、查询包的来源和版本等。全局包管理器如APT、yum和pacman可以解决这些问题,但是无法解决依赖冲突和破坏性的升级降级问题。分治思想将大问题拆分成小问题,例如将应用拆分成微服务,但是会带来包的重复安装和磁盘空间占用的问题。Nix是一个函数式的包管理器,通过不可变性和平坦的包存储解决了依赖冲突和包的隔离问题。Nuget则采用动态链接的方式解决依赖冲突。其他包管理工具如winget、snap和flatpak也有各自的解决方案。然而,包管理实际上没有万能解决方案,目前主流的做法是结合Monolithic的包管理、Docker和虚拟机来解决依赖冲突问题。虽然应用商店给我们带来了便利,但是背后的复杂性是巨大的。当我们开始自己分发软件时,才会意识到这个世界并不是那么简单。--GPT 4

Store nuget apt package manager Application Nix

在 2024 年学习汇编还有必要吗

摘要:本文讨论了操作系统和应用程序的诞生顺序,并介绍了依赖倒置原则和构建可插件应用程序的重要性。文章指出,操作系统和应用程序的诞生并不分先后,而是依赖于应用二进制接口(ABI)。ABI定义了应用程序如何与操作系统交互,是二者的桥梁。文章还探讨了操作系统的核心功能和抽象层的作用,以及汇编语言和操作系统课程对计算机科学理解的重要性。最后,文章回应了一个杠精的观点,指出应用程序并不一定必须依赖操作系统。--GPT 4


开放性问题 Windows 和 Linux 哪个更加安全?

Windows和Linux哪个更加安全?这是一个非常有趣的问题,但答案并不简单。本文探讨了Windows和Linux的安全策略和保障措施,并比较了它们在不同方面的安全性。Windows在默认情况下提供了多项保护措施,如BitLocker全盘加密、TPM硬件安全模块和Secure Boot等。它还集成了Windows Hello生物识别技术和UAC用户账户控制等功能。另一方面,Linux提供了LUKS2全盘加密和TPM保护密钥的功能,但Secure Boot在Linux中并不流行。Linux也有类似UAC的权限控制机制和开源的防病毒工具。然而,Linux的更新和软件分发依赖于各个发行版的包管理系统,而且用户需要自己配置防火墙规则。此外,Linux的开源特性使得代码透明,但也可能导致恶意代码的存在。总的来说,Windows在默认设置下对普通用户的安全性更高,而Linux对于懂得如何防御的用户来说提供了更高的定制性和开发上限。因此,哪个更安全取决于用户的需求、使用场景和技术水平。--GPT 4


在2024年发布一个Linux发行版还难吗

在这篇博客中,作者记录了最近与群友讨论自主研发操作系统的想法。他们发现,制作一个操作系统并不像想象中的那么困难。作者提到了ArchLinux和Gentoo这两个发行版,以及一个名为"linux-factory"的项目,它可以帮助用户定制自己的Linux发行版。然而,作者也提到了自己对滚动更新的疑惑,特别是对于Arch Linux用户来说,滚动更新可能会导致系统崩溃。作者还讨论了操作系统的稳定性和安全性问题,指出自己更倾向于使用稳定版本并定期进行升级。最后,作者提到了发行版的管理问题,包括如何处理软件包的版本和breaking change的问题。他认为,制作一个自主研发的操作系统需要大量的工程师和公司的支持。文章以提出问题的方式结束,让读者思考自己对操作系统的期望和挑战。--GPT 4


Using SwinIR for Image Super-Resolution Reconstruction

使用SwinIR进行图像超分辨率重建 本文介绍了如何使用SwinIR进行图像超分辨率重建。SwinIR是基于Swin Transformer的图像恢复模型,在经典/轻量/实用的图像超分辨率、灰度/彩色图像降噪和JPEG压缩伪影去除等任务中实现了最先进的性能。以下是使用SwinIR进行图像超分辨率重建的步骤: 1. 购买一块显卡:强烈建议在开始之前购买一块显卡,Nvidia GeForce RTX 4090是一个不错的选择。 2. 配置基本容器:编写一个基本的Dockerfile,包括Pytorch和相关依赖项。 3. 配置SwinIR容器:基于基本镜像配置一个SwinIR容器,并安装SwinIR的依赖项和模型。 4. 运行容器:将要处理的图像放入输入文件夹,并运行容器进行图像超分辨率重建。 使用SwinIR进行图像超分辨率重建可以恢复老照片、增强低分辨率图像甚至改善监控视频的质量。通过这项技术,您可以获得更清晰、更详细的图像。--GPT 4

NVIDIA Ai CUDA Docker Resolution Image SwinIR Restore

Setting up your own Docker image mirror

本文介绍了如何设置自己的Docker镜像镜像。首先,需要运行一个脚本来拉取和推送镜像到镜像镜像。然后,可以通过自己的镜像镜像来拉取镜像,而不是从源拉取。此外,还介绍了如何保护Docker镜像仓库,以防止未经授权的推送。最后,总结了通过设置自己的Docker镜像镜像所带来的好处,包括加快镜像拉取速度、降低存储需求和增加效率。通过使用私有镜像仓库,在中国境内可以快速、可靠地拉取镜像。--GPT 4

Caddy Docker Container Mirror Docker Hub

Run Linux Desktop experience in Docker container

在本教程中,您学习了如何在Docker容器中运行Linux桌面环境。这是一种简单的方法,可以在不在本地机器上安装Linux桌面环境的情况下尝试它。 首先,您需要安装Docker。无论您使用的是哪个操作系统(支持Windows、Linux、MacOS),您都需要在本地机器上安装Docker。您可以按照[官方Docker网站](https://docs.docker.com/get-docker/)上的说明进行安装。 然后,您可以选择从Docker Hub上拉取我构建的带有Linux桌面环境的Docker镜像,或者自己构建镜像。 如果您选择从Docker Hub上拉取镜像,可以使用以下命令: ```bash docker pull hub.aiursoft.cn/aiursoft/internalimages/remote-desktop:latest ``` 然后,您可以使用以下命令运行容器: ```bash docker run -d -p 33900:3389 --name remote-desktop hub.aiursoft.cn/aiursoft/internalimages/remote-desktop:latest ``` 现在,您可以使用远程桌面客户端连接到`localhost:33900`以访问Linux桌面环境。 如果您选择自己构建镜像,可以编写一个新的`Dockerfile`,内容如下: ```Dockerfile FROM ubuntu:22 EXPOSE 3389/tcp ARG USER=test ARG PASS=1234 ARG X11Forwarding=false ... ``` 然后,使用以下命令构建镜像: ```bash docker build -t remote-desktop . ``` 并使用以下命令运行容器: ```bash docker run -d -p 33900:3389 --name remote-desktop remote-desktop ``` 最后,您可以使用远程桌面客户端连接到`localhost:33900`以访问Linux桌面环境。 在Linux桌面环境中,您可以安装浏览器。使用以下命令: ```bash wget https://dl-ssl.google....--GPT 4

Ubuntu Remote Management Gnome Docker desktop

How to use C# to manage InfluxDB data

如何使用C#管理InfluxDB数据 本博客介绍了如何使用C#来管理InfluxDB数据。InfluxDB是一个专为处理高写入和查询负载而设计的时间序列数据库,是TICK堆栈的重要组成部分。InfluxDB适用于任何涉及大量时间戳数据的用例,包括DevOps监控、应用程序指标、物联网传感器数据和实时分析。 首先,您需要安装InfluxDB。可以按照官方网站上的说明进行安装,或者使用Docker运行InfluxDB。安装完成后,您可以通过`http://localhost:8086`访问InfluxDB UI,并使用启动InfluxDB时设置的用户名和密码登录。 接下来,您可以使用C#来管理InfluxDB数据。首先创建一个新的控制台应用程序,并添加InfluxDB客户端库。然后,您可以使用提供的代码来管理InfluxDB数据,包括配置InfluxDB连接、创建存储桶、写入日志和查询数据。 最后,您还可以在网页上查询数据。提供了一个Flux查询示例,您可以使用该查询在网页上查询数据。 通过阅读本博客,您将学会如何使用C#来管理InfluxDB数据。快来尝试吧! 问题:您如何使用C#来管理InfluxDB数据?您还可以在网页上查询数据吗? 注意:本摘要根据原始博客内容编写,不含作者信息。--GPT 4

C# Database Docker InfluxDB

How to setup CUDA environment for Docker on Ubuntu?

如何在Ubuntu上为Docker设置Nvidia环境? 本文介绍了如何在Ubuntu上设置Nvidia环境以便在Docker中使用GPU。首先,您需要确认系统是否检测到Nvidia GPU。然后,安装适合您的设备的Nvidia驱动程序。接下来,安装Docker并添加Nvidia Container Toolkit以实现在Docker中使用GPU。最后,您可以使用一个示例来测试GPU设置是否成功。 通过执行命令`sudo lspci | grep NVIDIA`,您可以确认系统是否检测到Nvidia GPU。然后,您可以使用`sudo ubuntu-drivers list`或`sudo ubuntu-drivers list --gpgpu`命令列出可用的驱动程序。根据您的需求,您可以选择自动安装或手动安装驱动程序。安装完成后,您需要重新启动系统并使用`nvidia-smi`命令验证驱动程序的安装情况。 安装完驱动程序后,您可以使用以下命令安装Docker: ```bash curl -fsSL get.docker.com -o get-docker.sh CHANNEL=stable sh get-docker.sh rm get-docker.sh ``` 接下来,您需要安装Nvidia Container Toolkit。您可以按照Nvidia官方文档提供的步骤添加Nvidia Container Toolkit的存储库并进行安装。 最后,您可以通过运行一个带有GPU burn测试的Docker映像来测试GPU设置是否成功。您可以克隆`gpu-burn`存储库,构建Docker映像,并运行GPU burn测试。 除了测试GPU设置,您还可以使用Docker-Compose共享GPU。您可以创建一个`docker-compose.yml`文件来配置共享GPU的Docker服务。 本文提供了一个示例CUDA应用程序的Dockerfile和源代码。您可以根据需要自定义这些文件。 通过本文,您将了解如何在Ubuntu上为Docker设置Nvidia环境,并且可以使用GPU进行加速计算。阅读全文以获取更多详细信息,并开始在Docker中使用Nvidia GPU吧! 问题:您如何在Ubuntu上为Docker设置Nvidia环境?如何测试GPU设置...--GPT 4

NVIDIA CUDA GPU Docker

第三届Anduin编程大赛

本文介绍了第三届Anduin编程大赛的竞赛题目:初级文件系统与Raid。参赛者需要使用C\C++\Rust\Go\Erlang\C#\Java语言编写,使用FUSE实现文件系统,并支持SATA、NVME、USB、SD卡等设备。实现的文件系统需要支持文件的创建、删除、读取、写入、扩增、截断、权限控制,以及软件Raid0、Raid1、Raid5。评分标准包括性能、事故的恢复能力、Raid0的速度增益、能否作为系统盘等。文章还推荐了几个库供参赛者参考。--GPT 4


Web 应用开发检查单

这篇博客提供了一个 Web 应用开发检查单,旨在确保你的业务系统是安全、稳定、快速、可扩展、自动化的。检查单包括了网络配置、权限配置、运维策略、DevOps、容器化、应用开发、应用体验和合规性等方面。它可以帮助你确保服务器的网络安全和性能,减小权限,快速恢复业务,自动化部署和容器化,代码是否存在各种攻击的风险,以及是否符合各种合规性。该检查单详细介绍了每个方面的最佳实践,并提供了一些有趣的问题来启发读者思考,如:你的应用是否支持黑色主题和大字体?你的代码是否可能产生违反 GDPR 或 CCPA 的行为?该检查单可以帮助你确保你的业务系统是符合最佳实践的,从而提高你的业务系统的质量和可靠性。--GPT 4

Web Linux Cloud Server Container Service Development