3.12植树节,前端程序员如何用代码来种树

thbcm阅读(290)

公历每年的 3 月 12 日是一年一度的植树节。旨在宣传保护森林,并动员群众参加植树造林活动。作为程序员,也有自己独特的种树方式!下面随编程狮以前端 HTML+CSS 为例,一步一步在网页上“种出一棵树”。

效果预览

前期准备:

1、首先你要具备一些基础前端知识,学个入门就够了

2、其次要有一个编辑器,VScode、WebStrom、HbuilderX等,甚至系统自带的“记事本、Notepad、文本编辑”就够了

一、页面框架搭建

新建一个index.html的文件(注意是.html格式),用你的编辑器打开它:

  1. 使用<!DOCTYPE html>声明文档类型
  2. 设置中文字符集<meta charset="UTF-8">
  3. 标题使用<title>标签设置为”程序员的3.12植树节 | 编程狮(w3cschool.cn)
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>程序员的3.12植树节 | 编程狮(w3cschool.cn)</title>

二、CSS样式设计

  1. 背景设计:

    body {
    background: #1a2f38; /* 深蓝绿色背景 */
    display: flex; /* 弹性布局 */
    flex-direction: column; /* 垂直排列 */
    align-items: center; /* 水平居中 */
    }

  2. 代码树绘制技巧:

    • 树干使用矩形+圆角:
      .trunk {
      width: 20px;
      height: 150px;
      border-radius: 5px;
      }

    • 树冠使用椭圆+内阴影:
      .canopy {
      border-radius: 50px;
      box-shadow: 
      0 0 10px #3c887e, /* 外发光 */
      inset 0 0 20px #1d4037; /* 内阴影 */
      }

  3. 代码装饰实现:
    .code::before {
    content: "// "; /* 伪元素添加注释符号 */
    color: #4d7069;
    }

三、诗歌排版技巧

再配上一首专属诗歌更有意境

《森林的布尔值》
by 编程狮(w3cschool.cn)


键盘叩击的间隙
一粒粒字符正在发芽
我调试着循环里的年轮
直到指针在树冠间溢出月光


bug是误入的甲虫
蜷缩在某个叶片的背面
而我的注释如护林员
用括号加固每截脆弱的枝干


当风穿过if-else的缝隙
整片森林沙沙作响
光标闪烁的铁锹下
新绿正以十六进制生长


最后一次commit时
露珠从枝头滚落
整个春天突然return了
一行湿润的true

  1. 使用pre标签保留换行格式
  2. 左侧装饰线:
    .poem {
    border-left: 3px solid #3c887e;
    padding-left: 20px;
    }

四、程序员元素融合

  1. 在树冠周围添加代码片段注释
  2. 使用等宽字体font-family: 'Courier New'
  3. 颜色选择蓝绿色系,模拟代码编辑器主题
  4. 诗中融入编程术语:commit、return、十六进制等

五、布局技巧

  1. 使用position: absolute进行图层叠加
  2. 通过transform实现水平居中:

    transform: translateX(-50%);

  3. 弹性布局保持整体垂直排列

完整代码展示

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>程序员的3.12植树节 | 编程狮(w3cschool.cn)</title>
    <style>
        /* 全局样式 */
        body {
            background: #1a2f38;
            display: flex;
            flex-direction: column;
            align-items: center;
            font-family: 'Courier New', monospace;
        }


        /* 诗歌容器 */
        .poem {
            color: #c3d8df;
            max-width: 600px;
            margin: 40px;
            line-height: 1.8;
            border-left: 3px solid #3c887e;
            padding-left: 20px;
        }


        /* 代码树 */
        .code-tree {
            position: relative;
            margin: 50px;
            height: 300px;
        }


        /* 树干 */
        .trunk {
            position: absolute;
            width: 20px;
            height: 150px;
            background: #785549;
            bottom: 0;
            left: 50%;
            transform: translateX(-50%);
            border-radius: 5px;
        }


        /* 树冠 */
        .canopy {
            position: absolute;
            width: 120px;
            height: 100px;
            background: #2c5a47;
            bottom: 140px;
            left: 50%;
            transform: translateX(-50%);
            border-radius: 50px;
            box-shadow: 
                0 0 10px #3c887e,
                inset 0 0 20px #1d4037;
        }


        /* 代码装饰 */
        .code {
            position: absolute;
            color: #6ba08a;
            font-size: 12px;
            white-space: nowrap;
        }


        .code::before {
            content: "// ";
            color: #4d7069;
        }
    </style>
</head>
<body>
    <div class="code-tree">
        <div class="trunk"></div>
        <div class="canopy"></div>
        <div class="code" style="top:30px; left:-40px;">if (tree.isGrowing()) {</div>
        <div class="code" style="top:80px; right:-50px;">branch++;</div>
        <div class="code" style="top:150px; left:10px;">// 年轮.add()</div>
    </div>


    <div class="poem">
        <h2>《森林的布尔值》</h2>
        <p>by 编程狮(w3cschool.cn)</p>
        <pre>
键盘叩击的间隙
一粒粒字符正在发芽
我调试着循环里的年轮
直到指针在树冠间溢出月光


bug是误入的甲虫
蜷缩在某个叶片的背面
而我的注释如护林员
用括号加固每截脆弱的枝干


当风穿过if-else的缝隙
整片森林沙沙作响
光标闪烁的铁锹下
新绿正以十六进制生长


最后一次commit时
露珠从枝头滚落
整个春天突然return了
一行湿润的true
        </pre>
    </div>
</body>
</html>

保存你的index.html文件,用浏览器打开就能看到网页效果啦

编程狮的这个作品通过将编程元素与自然意象结合,用CSS绘制出独特的”代码之树”,诗歌排版采用类代码的显示风格,展现了程序员在植树节的特殊庆祝方式。你们也快来试试吧~

Trae 自定义模型支持硅基流动,定制专属 AI 编程体验

thbcm阅读(1399)

Trae 是国内首个 AI 原生 IDE,深度理解中文开发场景。AI 高度集成于 IDE 环境之中,带来比 AI 插件更加流畅、准确、优质的开发体验。

SiliconCloud 是硅基流动公司推出的一站式大模型云服务平台,致力于为开发者和企业提供高效、低成本且全面的生成式人工智能(GenAI)模型服务。其核心目标是通过优化大模型使用体验,帮助用户实现“Token自由”,即以更低成本和更高效率使用先进的大语言模型(LLMS)及其他生成式人工智能(AI)模型。

现在,Trae 已经支持自定义模型配置,并预置了硅基流动 SiliconCloud 平台作为模型提供方之一,支持用户通过 API 密钥(API Key)接入平台中的 DeepSeek-R1 & V3、QWQ-32B、Qwen2.5-Coder 等多款适合编码的模型,满足用户多样化模型使用需求,定制专属 AI 编程体验。SiliconCloud 还免费提供 DeepSeek-R1 蒸馏版模型(1.5B、7B、8B)、Qwen2.5(7B)等多个模型 API,助力开发者实现 “Token 自由”。

本文将介绍如何在 Trae 中接入 SiliconCloud 平台模型。

添加模型

进入 Trae 官网,下载登录后,用户可通过两种添加路径添加模型。首先,在输入框的右下角,打开模型列表,点击“添加模型”。

其次,还可前往头像 > 设置 > Trae AI > 模型管理,点击“添加模型”。

选择“硅基流动”为模型服务商

页面上显示添加模型窗口,选择服务商为“硅基流动”,可选择 DeepSeek-R1 & V3 模型,或通过自定义模型配置其他模型。

填写 API 密钥

点击“获取 API 密钥”按钮,Trae 会为你打开硅基流动 SiliconCloud 平台的 API 密钥配置页面。(若未注册/登录对应网站,需先完成注册/登录动作)。进入页面后创建新的 API Key,点击密钥进行复制。

点击”添加模型”按钮

Trae 将调用服务商的接口来检测 API 密钥是否有效。可能的结果如下:

  • 若连接成功,该自定义模型会被添加。
  • 若连接失败,添加模型窗口中展示错误信息和服务商返回的错误日志,你可以参考这些信息排查问题。

更多Trae教程请访问:Trae 中文教程

如何创建并保存HTML文件?零基础入门教程

thbcm阅读(656)

本文将以Windows系统为例,教你用最简单的记事本创建并保存第一个HTML网页。

第一步:准备工具

  1. 文本编辑器:使用系统自带的记事本(无需下载)。

    • 按下 Win + S,输入“记事本”并打开。

  2. 浏览器:Chrome、Edge等均可。

️ 第二步:创建HTML文件

  1. 新建文本文档
    右键桌面或文件夹 → 选择“新建” → “文本文档”。

  2. 重命名为.html文件

    • 右键新建的文档 → 选择“重命名”。

    • 将文件名改为 index.html(关键步骤!)

    若看不到.txt扩展名

    打开文件夹顶部菜单【查看】→ 勾选【文件扩展名】。

️ 第三步:编写HTML代码

  1. 右键 index.html → 选择“打开方式” → “记事本”。

  2. 输入以下代码(复制粘贴即可):

    <!DOCTYPE html>
    <html>
    <head>
       <title>我的第一个网页 | 编程狮(w3cschool.cn)</title>
    </head>
    <body>
       <h1>欢迎来到编程狮!</h1>
       <p>我正在编程狮学习HTML!</p>
    </body>
    </html>

第四步:保存文件

  1. 按下 Ctrl + S 保存。
  2. 确保保存类型正确

    • 点击“保存类型”下拉框 → 选择【所有文件 (.)】

    • 确认文件名结尾为 .html(如 index.html

第五步:在浏览器中查看

  1. 双击 index.html 文件,浏览器会自动打开。
  2. 效果应显示大标题和段落文字,如下图:

修改并更新网页

  1. 右键文件 → 用记事本重新打开。
  2. 修改文字(如将“编程狮”改为“W3Cschool”)→ 保存。

  3. 返回浏览器 → 按下 F5 刷新页面,立即查看变化!

常见问题解答

  1. 文件打开方式错误?
    • 右键.html文件 → “属性” → 将打开方式设置为浏览器。
  2. 代码没效果?

    • 检查标签是否闭合(如</h1>)。
    • 确保文件扩展名是.html而非.txt

  3. 中文显示乱码?
    • 保存时选择编码为 UTF-8:文件 → 另存为 → 底部编码选择UTF-8。

进阶推荐

  • 专业编辑器:VS Code(来自微软的免费且高亮代码编辑器)
    下载地址:code.visualstudio.com/
  • AI 编辑器:Trea(字节跳动推出的免费AI IDE,专为中国开发者打造)

    下载地址:trae.com.cn/

  • 在线编译器:HTML在线编译器(W3Cschool提供的免下载HTML在线免费编译器)

    在线地址:www.w3cschool.cn/tryrun/runcode?lang=html

下一步学习建议:学会基础操作后,可尝试添加图片、链接等元素,逐步构建完整网页!

课程推荐:《HTML入门课程》、《HTML + CSS 基础实战

在 Windows 上安装 PowerShell 的多种方法与完整指南

thbcm阅读(370)

在 Windows 上安装 PowerShell 有多种方式。每种安装方法都适用于不同的场景和工作流。请选择最适合您需求的方法。

  • WinGet:推荐在 Windows 客户端上安装 PowerShell 的方式
  • MSI 包:适用于 Windows 服务器和企业部署场景的最佳选择
  • ZIP 包:“侧载” 或安装多个版本的最简单方法
  • 建议用于 Windows Nano Server、Windows IoT 和基于 Arm 的系统
    • .NET 全局工具:适用于安装和使用其他全局工具的 .NET 开发者的好选择
    • Microsoft Store 包:适用于 PowerShell 的休闲用户,但存在一些限制

使用 WinGet 安装 PowerShell(推荐)

WinGet 是 Windows 包管理器,是一个命令行工具,允许用户在 Windows 客户端计算机上发现、安装、升级、删除和配置应用程序。winget 命令行工具默认与 Windows 11 和较新的 Windows 10 版本捆绑在一起,作为 应用安装程序

注意:请参阅 winget 文档以获取系统要求和安装说明列表。Windows Server 2022 及更早版本不支持 winget。Windows Server 2025 预览版 26085 及更高版本仅在 具有桌面体验的 Windows Server 上包含 winget

以下命令可用于使用发布的 winget 包安装 PowerShell:

搜索最新版本的 PowerShell

winget search Microsoft.PowerShell

名称               ID                           版本  来源
---------------------------------------------------------------
PowerShell         Microsoft.PowerShell         7.5.0.0 winget
PowerShell 预览版 Microsoft.PowerShell.Preview 7.6.0.2 winget

使用 id 参数安装 PowerShell 或 PowerShell 预览版

winget install --id Microsoft.PowerShell --source winget

winget install --id Microsoft.PowerShell.Preview --source winget

注意:在使用 X86 或 X64 处理器的 Windows 系统上,winget 安装 MSI 包。在使用 Arm64 处理器的系统上,winget 安装 Microsoft Store (MSIX) 包。有关更多信息,请参阅从 Microsoft Store 安装。

要下载安装包,可以使用以下链接从 GitHub 安装 PowerShell:

下载完成后,双击安装文件并按照提示进行操作。

安装程序会在 Windows 开始菜单中创建一个快捷方式。

  • 默认情况下,包安装在 $env:ProgramFiles\PowerShell\<version>
  • 您可以通过开始菜单或 $env:ProgramFiles\PowerShell\<version>\pwsh.exe 启动 PowerShell

注意: PowerShell 7.4 安装在新目录中,并与 Windows PowerShell 5.1 并行运行。PowerShell 7.4 是就地升级,会删除之前的 PowerShell 7 版本。PowerShell 7 的预览版可以与其他版本的 PowerShell 并行安装。

  • PowerShell 7.4 安装在 $env:ProgramFiles\PowerShell\7
  • $env:ProgramFiles\PowerShell\7 文件夹被添加到 $env:PATH

如果您需要在同一台计算机上并行运行 PowerShell 7.4 与其他版本,请使用 ZIP 安装方法将其他版本安装到不同的文件夹中。

安装 MSI 包

MSI 包可以从命令行安装,允许管理员在没有用户交互的情况下部署包。MSI 包包含以下属性以控制安装选项:

  • ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL:此属性控制在 Windows 资源管理器的上下文菜单中添加 打开 PowerShell 选项。
  • ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL:此属性控制在 Windows 资源管理器的上下文菜单中添加 用 PowerShell 运行 选项。
  • ENABLE_PSREMOTING:此属性控制在安装过程中启用 PowerShell 远程处理。
  • REGISTER_MANIFEST:此属性控制注册 Windows 事件日志记录清单。
  • ADD_PATH:此属性控制将 PowerShell 添加到 Windows PATH 环境变量。
  • DISABLE_TELEMETRY:此属性通过设置 POWERSHELL_TELEMETRY_OPTOUT 环境变量来禁用 PowerShell 的遥测功能。
  • INSTALLFOLDER:此属性控制安装目录。默认是 $env:ProgramFiles\PowerShell\。这是安装程序创建版本化子文件夹的位置。您不能更改版本化子文件夹的名称。
  • 对于当前版本,版本化子文件夹是 7
  • 对于预览版本,版本化子文件夹是 7-preview

以下示例显示如何在启用所有安装选项的情况下静默安装 PowerShell。

msiexec.exe /package PowerShell-7.5.0-win-x64.msi /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1 USE_MU=1 ENABLE_MU=1 ADD_PATH=1

有关 Msiexec.exe 的完整命令行选项列表,请参阅命令行选项。

安装 ZIP 包

提供 PowerShell 二进制 ZIP 存档,以支持高级部署场景。可以从当前版本页面下载以下 ZIP 存档之一。

根据下载文件的方式,可能需要使用 Unblock-File cmdlet 解除文件阻止。将内容解压到您选择的位置,然后从那里运行 pwsh.exe。与安装 MSI 包不同,安装 ZIP 存档不会检查先决条件。为了使 WSMan 上的远程处理正常工作,请确保您已满足先决条件。

使用此方法在像 Microsoft Surface Pro X 这样的计算机上安装基于 ARM 的 PowerShell 版本。为了获得最佳效果,请将 PowerShell 安装到 $env:ProgramFiles\PowerShell\7 文件夹。

如果您已经安装了 .NET Core SDK,可以将 PowerShell 安装为 .NET 全局工具。

dotnet tool install --global PowerShell

dotnet 工具安装程序会将 $HOME\.dotnet\tools 添加到您的 $env:PATH 环境变量。但是,当前运行的 shell 不会有更新的 $env:PATH。您可以在新 shell 中通过输入 pwsh 启动 PowerShell。

可以从 Microsoft Store 安装 PowerShell。您可以在 Microsoft Store 网站或 Windows 中的 Store 应用程序中找到 PowerShell 版本。

Microsoft Store 包的优势:

  • Windows 中内置的自动更新
  • 与其他软件分发机制(如 Intune 和 Configuration Manager)集成
  • 可以安装在使用 x86、x64 或 Arm64 处理器的 Windows 系统上

已知限制

默认情况下,Windows Store 包在应用程序沙盒中运行,该沙盒会虚拟化对某些文件系统和注册表位置的访问。对虚拟化文件和注册表位置的更改不会在应用程序沙盒外部持久化。

此沙盒会阻止对应用程序根文件夹的所有更改。存储在 $PSHOME 中的任何系统级配置设置都无法修改。这包括 WSMAN 配置。这会阻止远程会话连接到基于 Store 的 PowerShell 安装。支持用户级配置和 SSH 远程处理。

以下命令需要写入 $PSHOME。这些命令在 Microsoft Store 实例的 PowerShell 中不受支持。

  • Register-PSSessionConfiguration
  • Update-Help -Scope AllUsers
  • Enable-ExperimentalFeature -Scope AllUsers
  • Set-ExecutionPolicy -Scope LocalMachine

有关更多信息,请参阅了解打包桌面应用在 Windows 上的运行方式。

从 PowerShell 7.2 开始,PowerShell 包现在免于文件和注册表虚拟化。对虚拟化文件和注册表位置的更改现在会在应用程序沙盒外部持久化。但是,对应用程序根文件夹的更改仍然被阻止。

重要提示:您必须在 Windows build 1903 或更高版本上运行,此豁免才能生效。

安装预览版本

PowerShell 7 的预览版安装到 $env:ProgramFiles\PowerShell\7-preview,以便它们可以与非预览版的 PowerShell 并行运行。PowerShell 7.4 是下一个预览版。

升级现有安装

升级时,建议使用首次安装 PowerShell 时所用的相同安装方法。如果您不确定 PowerShell 是如何安装的,可以检查 $PSHOME 变量的值,该变量始终指向当前会话运行的 PowerShell 所在的目录。

  • 如果值是 $HOME\.dotnet\tools,则 PowerShell 是通过 .NET 全局工具安装的。
  • 如果值是 $Env:ProgramFiles\PowerShell\7,则 PowerShell 是作为 MSI 包安装的,或者在具有 X86 或 x64 处理器的计算机上通过 WinGet 安装的。
  • 如果值以 $Env:ProgramFiles\WindowsApps\ 开头,则 PowerShell 是作为 Microsoft Store 包安装的,或者在具有 ARM 处理器的计算机上通过 WinGet 安装的。
  • 如果值是其他任何内容,则很可能 PowerShell 是作为 ZIP 包安装的。

如果您通过 MSI 包安装,该信息还会出现在“程序和功能”控制面板中。

要确定是否可以使用 WinGet 升级 PowerShell,请运行以下命令:

winget list --id Microsoft.PowerShell --upgrade-available

如果有可用的升级,输出将指示最新可用版本。使用以下命令通过 WinGet 升级 PowerShell:

winget upgrade --id Microsoft.PowerShell

在 Windows 10 IoT Enterprise 上部署

Windows 10 IoT Enterprise 配备了 Windows PowerShell,我们可以利用它来部署 PowerShell 7。

# 替换以下变量的占位符信息:
$deviceip = '<设备 IP 地址'
$zipfile = 'PowerShell-7.5.0-win-arm64.zip'
$downloadfolder = 'u:\users\administrator\Downloads'  # 下载位置是设备本地的。
    # 应该有足够的空间用于存储 ZIP 文件和解压后的内容。


# 创建到目标设备的 PowerShell 会话
Set-Item -Path WSMan:\localhost\Client\TrustedHosts $deviceip
$S = New-PSSession -ComputerName $deviceIp -Credential Administrator
# 将 ZIP 包复制到设备
Copy-Item $zipfile -Destination $downloadfolder -ToSession $S


# 连接到设备并解压存档
Enter-PSSession $S
Set-Location u:\users\administrator\Downloads
Expand-Archive .\PowerShell-7.5.0-win-arm64.zip


# 设置到 PowerShell 7 的远程处理
Set-Location .\PowerShell-7.5.0-win-arm64
# 确保使用 -PowerShellHome 参数,否则它会尝试使用 Windows PowerShell 5.1 创建新的端点
.\Install-PowerShellRemoting.ps1 -PowerShellHome .

当您设置 PowerShell 远程处理时,会收到错误消息并从设备断开连接。PowerShell 必须重新启动 WinRM。现在您可以连接到设备上的 PowerShell 7 端点。

# 确保使用 -Configuration 参数。如果您省略它,您将连接到 Windows PowerShell 5.1
Enter-PSSession -ComputerName $deviceIp -Credential Administrator -Configuration PowerShell.7.5.0

在 Windows 10 IoT Core 上部署

当您包含 _IOTPOWERSHELL 功能时,Windows 10 IoT Core 会添加 Windows PowerShell,我们可以利用它来部署 PowerShell 7。上述 Windows 10 IoT Enterprise 的步骤也适用于 IoT Core。

要将最新的 PowerShell 添加到发货映像中,请使用 Import-PSCoreRelease 命令将包包含在工作区中,并将 _OPENSRCPOWERSHELL 功能添加到您的映像中。

注意:对于 ARM64 架构,当您包含 _IOTPOWERSHELL 时,不会添加 Windows PowerShell。因此,基于 zip 的安装无法工作。您需要使用 Import-PSCoreRelease 命令将其添加到映像中。

在 Nano Server 上部署

这些说明假设 Nano Server 是一个“无头”操作系统,它已经在其上运行了 PowerShell 的某个版本。有关更多信息,请参阅 Nano Server 映像生成器文档。

可以使用两种不同的方法部署 PowerShell 二进制文件。

  1. 离线 – 挂载 Nano Server VHD 并将 zip 文件的内容解压到挂载映像中您选择的位置。
  2. 在线 – 通过 PowerShell 会话将 zip 文件传输到您选择的位置并解压。

在这两种情况下,您都需要 Windows x64 ZIP 发布包。请在“管理员”实例的 PowerShell 中运行命令。

离线部署 PowerShell

  1. 使用您喜欢的 zip 工具将包解压到挂载的 Nano Server 映像中的目录。
  2. 卸载映像并启动它。
  3. 连接到内置的 Windows PowerShell 实例。

在线部署 PowerShell

按照以下步骤将 PowerShell 部署到 Nano Server。

# 替换以下变量的占位符信息:
$ipaddr = '<Nano Server IP 地址>'
$credential = Get-Credential # <系统上的管理员账户>
$zipfile = 'PowerShell-7.5.0-win-x64.zip'
# 连接到内置的 Windows PowerShell 实例
$session = New-PSSession -ComputerName $ipaddr -Credential $credential
# 将文件复制到 Nano Server 实例
Copy-Item $zipfile c:\ -ToSession $session
# 进入交互式远程会话
Enter-PSSession $session
# 解压 ZIP 文件
Expand-Archive -Path C:\PowerShell-7.5.0-win-x64.zip -DestinationPath 'C:\Program Files\PowerShell 7'

PowerShell 远程处理

PowerShell 支持通过 WSMan 和 SSH 的 PowerShell 远程处理协议 (PSRP)。有关更多信息,请参阅:

支持的 Windows 版本

Microsoft 支持 PowerShell,直到 PowerShell 达到支持结束或 Windows 版本达到支持结束。

  • 包含 PowerShell 7.4 和 PowerShell 7.5-preview(适用于 x64)的 Docker 映像,适用于 Windows Server 2022、Windows Server Core 2022 和 Windows Server Nano build 1809,可从 Microsoft Artifact Registry 获得。
  • PowerShell 7.4 及更高版本可以安装在 Windows 10 build 1607 及更高版本、Windows 11、Windows Server 2016 及更高版本上。

您可以通过运行 winver.exe 来检查您正在使用的版本。

安装支持

Microsoft 支持本文档中的安装方法。可能还有其他第三方安装方法可从其他来源获得。虽然这些工具和方法可能有效,但 Microsoft 无法支持这些方法。

用 Trae Remote-SSH 轻松远程开发和部署

thbcm阅读(520)

本地环境与远程环境兼容的开发难题,向来是开发者容易遇到的一大痛点。在远程服务器上开发通常面临以下问题:

  • 环境不一致:本地环境和远程环境的依赖不同,导致代码运行异常。
  • 调试不便:传统的 SSH 连接无法提供现代 IDE 的代码补全、调试等功能。
  • 代码同步繁琐:手动上传/拉取代码,影响开发效率。

而 AI 原生 IDE Trae 最近的更新便精准解决了开发者的这一痛点,实属开发者福音。

01、Trae Remote-SSH 解决方案

Trae 是一款由字节跳动推出的免费 AI IDE,它深度整合了 AI 技术,旨在提升开发效率。它支持中文,并集成了主流 AI 模型,国内版使用豆包大模型和 DeepSeek 模型。

Trae 最近上新了远程资源管理功能(Remote SSH),很好的解决了我们远程开发和部署的困境。Trae Remote-SSH 允许我们在本地 PC 直接访问和操作远程主机的文件,而无需存储远程代码,就像操作本地项目一样。通过这一功能,可以协助我们提升体验:

  • 无缝连接远程服务器:直接在本地 IDE 中开发远程代码,无需手动同步。
  • 完整 IDE 体验:支持代码补全、调试、智能提示、AI 辅助等功能。
  • 自动安装 Trae 服务器端:连接时自动安装 Trae Server,确保使用体验与本地一致。

Trae Remote-SSH 的运行原理如下图所示:本地 PC 运行 Trae 客户端,远程主机安装 Trae 服务器端,二者通过 SSH 通道通信。

Trae Remote-SSH 对设备的要求如下表所示

️ 注意:

  • 旧版本(如 Debian 8、Ubuntu 16)可能存在兼容性问题。
  • 远程主机需启用 SSH 服务,并具备出站 HTTPS 访问能力(端口 443)。

02、快速上手 & 开发实践

下面,让我们来快速上手 Trae Remote-SSH

步骤 1:打开远程资源管理器

  • 在 Trae 的远程资源管理器中,点击“+”按钮。
  • 在弹出的面板中输入 SSH 连接命令,例如:
    ssh user@remote-server

代码片段:可切换语言,无法单独设置文字格式

  • 按回车键,远程主机将出现在连接目标列表。

步骤 2:连接远程主机

  • 右下角点击 连接主机,或者在列表中点击远程主机右侧的 在新窗口连接。
  • 输入密码或使用 SSH 密钥进行连接。
  • 连接成功后,Trae 会自动安装服务端。

步骤 3:打开远程文件夹,开始开发

  • 你可以在本地 PC 上直接编辑远程代码,并享受 Trae 提供的 AI 辅助和调试功能。
  • 通过 终端 > 新建终端,可以在远程服务器上执行命令。

在成功启动后,让我们来通过 Trae Remote-SSH 远程开发一个贪吃蛇项目。

前置条件

  • 本地 PC:macOS,安装 OpenSSH。
  • 远程主机:Linux(推荐 Ubuntu 20.04+,2GB RAM,双核 CPU)。
  • 网络要求:远程主机需要能访问 HTTPS(端口 443)。

连接远程主机

打开 Trae 远程资源管理器,点击 “+” 添加 SSH 连接。

输入 ssh user@remote-server-ip 并回车。

在弹出的提示框中,输入密码或使用密钥认证。

连接成功后,界面左下角会显示远程主机地址。

选择远程文件夹,即可像本地一样编写代码。

通过本地Trae远程编码

可以看到我本地通过 Trae 的 Builder模式进行自然语言交互,需要做一个贪吃蛇项目,结果项目和代码都在远程的服务器为我生成了,不要太爽啊!

查看服务器确实有了该项目

远程调试

代码中有问题的时候,直接选中然后在 Builder 中对话解决,并且 Trae 会一直尝试解决问题,直到问题解决

一个简单的贪吃蛇游戏就通过 Trae 的能力在远程搞定!

自定义模型接入能力

除此之外,Trae 的 Chat 和 Builder 模式下能自定义接入模型,下面我以硅基流动为例。

点击添加模型选项:首次进入 Builder 模型下,可以看到需要先选择模型,有一个添加模型的选项

模型配置:由于硅基流动有一些免费额度的 token 可以用,所以我就以硅基流动为例

丝滑使用自定义模型:可以看到上面操作很简单便捷,已经可以在 Builder 模式下选中并使用自定义的 deepseek 模型了

03、AI 助力远程开发

Trae 的 AI 原生功能,进一步提升了开发效率:

  • 代码补全 & 纠错:智能提示代码,减少语法错误,提高编写效率。
  • 远程调试 & 日志分析:自动解析日志并提供优化建议。
  • 智能助手:根据上下文生成代码、优化 SQL 查询、快速跳转到代码关键位置等。

全自然语言项目初始化

  • 零代码起手式
  • Trae Builder 模式响应,能够自动生成项目结构(对比传统脚手架工具)
  • 智能识别远程Python版本(3.8→自动适配walrus运算符)

智能编码全流程演示

  • 上下文感知补全,Trae 拥有较强的上下文感知能力,可以实现更精准的代码补全。
  • 跨文件调试黑科技,Trae 的全局感知能力使其可以实现跨文件的调试,提升开发效率。

混合编程模式进阶

  • 自然语言微调:

“当前蛇移动速度调整不够平滑,请添加加速度机制:- 每吃5个食物速度提升10%- 最高不超过初始速度3倍”

AI生成代码差异对比:

\+ self.base_delay = 0.2+ self.speed_boost = 1.0def check_speed(self):
  • 跨平台测试

远程部署一体化

  • 依赖智能解决

Trae自动生成的requirements.txtcurses-menu==2.1.0 → 检测到远程缺库自动替换为windows-curses

  • 一键热更新

“将当前版本推送到测试服务器192.168.1.100

执行过程:

  • 自动识别.gitignore规则
  • 通过 SSH 通道增量同步
  • 执行远程pip install -r requirements.txt

开发者效率革命

  • 与传统工作流对比:

04、总结 & 个人体验

Trae Remote-SSH 让远程开发变得更加简单高效:

  • 无需手动同步代码。
  • 享受本地级别的开发体验。
  • AI 助力提高开发效率。

技术决策者的认知升维

演进路线预判

05、致开发者同仁的推荐信

对于开发者而言,Trae Remote-SSH 解决了远程开发的诸多痛点,让远程服务器的开发体验接近本地环境,是现代开发者不可或缺的利器。

选择 Trae Remote-SSH 的三重必然性:

  • 技术债务对冲工具:每一行AI生成的代码都自带技术规范检查(SonarQube 集成示例)
  • 架构师能力放大器通过自然语言实现设计模式注入:

“在用户服务模块实施CQRS模式”→ 自动生成Command/Query分离结构→ 附带Event Sourcing实现方案

  • 职业生涯护城河:早期接触智能协作范式,掌握下一代IDE扩展机制(演示插件开发工作台)

此刻的行动建议: 使用并体验 Trae Remote-SSH ,使用这颠覆性的革命工具,加快走在技术前沿的步伐!

原生应用与Web应用的融合演进:现代跨平台开发指南

thbcm阅读(346)

一、基础概念解析

1. Native App(原生应用)

  • 定义:基于操作系统原生语言开发(如Swift/Kotlin),直接调用设备硬件API
    推荐课程:《Swift 入门课程》、《Kotlin 入门课程
  • 新特性:支持AR/VR硬件协同(如Apple Vision Pro)、AI芯片加速推理
  • 案例:抖音视频特效处理、高德地图实时3D导航

2. Web App(网页应用)

  • 进化形态:PWA(渐进式Web应用)成为主流,支持离线访问和消息推送
  • 核心技术:Service Worker + WebAssembly + WebGPU
  • 国内案例:飞书文档网页版、腾讯会议Web端

3. Hybrid App(混合应用)

  • 现代方案React Native/Flutter/Ionic框架 + Capacitor运行时
  • 开发优势:一套代码兼容iOS/Android/Web三端
  • 典型场景:电商类App(如拼多多的活动页面)

二、技术对比与选型指南

维度 Native App Web App Hybrid App
性能 GPU直接渲染(>120FPS) 依赖浏览器渲染(30-60FPS) 接近原生(60-90FPS)
开发成本 双团队维护(iOS/Android) 单前端团队 单团队跨平台
热更新 需应用商店审核 实时更新 非核心模块热更新
典型框架 SwiftUI/Jetpack Compose Vue3/Next.js Flutter/UniApp

三、现代开发技术栈推荐

1. 跨平台开发方案

  • Flutter 4.0:Google主推的UI框架,支持Windows/macOS/嵌入式设备
  • UniApp 3.0:基于Vue3的国产框架,兼容微信小程序生态
  • React Native 0.80:Facebook维护,支持Hermes引擎提速40%

2. 渐进式增强方案

  • Capacitor 6.x:替代Cordova的跨平台运行时,支持iOS隐私沙盒
  • Tauri 2.0:Rust构建的轻量级桌面应用框架,包体积减少70%

3. 性能优化工具

  • Hermes引擎:针对React Native的字节码预编译方案
  • Skia图形库:Flutter底层渲染引擎,支持硬件加速
  • WebAssembly:将C++/Rust代码编译为浏览器可执行模块

四、实战建议(2025版)

  1. 启动阶段:先用UniApp快速验证业务原型,后期用Flutter重构核心模块
  2. 混合架构:核心功能用Native开发(如支付/生物认证),UI层用跨平台方案
  3. 动态化方案:结合Flutter的JIT/AOT模式,实现热更新不违反应用商店政策
  4. 小程序融合:通过UniApp同时生成微信/支付宝小程序,覆盖10亿级用户场景

五、学习路径推荐

  1. 基础阶段HTML5/CSS3JavaScript/TypeScript
    推荐课程:《HTML + CSS 基础实战》、《HTML + CSS 进阶实战》、《HTML5 新特性实战》、《HTML5+CSS3零基础快速入门》、《JavaScript 基础实战》、《TypeScript 入门到进阶课程
  2. 框架学习Vue3+UniAppFlutter+Dart
    推荐课程:《Vue3从零开始系列课程》、《uni-app跨平台开发入门到实战》、《Uniapp Vue3 基础到实战》、《Flutter完全入门》、《一分钟学会 Dart 编程
  3. 进阶方向
    • Native扩展开发(Swift/Kotlin)
    • 跨平台引擎原理(Skia/Dart VM)
    • 性能调优(内存管理/渲染管线)

最新技术动态可通过《MDN Web Docs》和《Flutter中文社区》持续跟进。建议初学者从UniApp入手,快速体验完整开发流程。推荐课程:《uni-app跨平台开发入门到实战

如何在Windows上找到Python安装路径?两种方法快速定位

thbcm阅读(323)

在 Windows 系统上找到 Python 的安装路径对于设置环境变量或排查问题非常重要。本文将介绍两种方法,帮助你找到 Python 的安装路径:一种是通过命令提示符(CMD),另一种是通过终端。

方法 1:使用命令提示符(CMD)

这是一种经典的方法,通过 Windows 的命令提示符来查找 Python 的安装路径。

第一步:打开命令提示符

按下 Win + R 键打开运行窗口,输入 cmd,然后按回车键。

第二步:使用 where 命令

在命令提示符窗口中,输入以下命令:

where python

按下回车键后,系统会显示 Python 的安装路径。

方法 2:使用终端

终端是一种功能强大的脚本环境和现代命令行工具。如果你使用终端,可以通过以下步骤找到 Python 的安装路径。

什么是终端?

第一步:打开终端

你可以在开始菜单中搜索“终端”并选择它。

第二步:使用 Get-Command 命令

在终端窗口中,输入以下命令:

(Get-Command python).Path

按下回车键后,终端会显示 Python 的安装路径。

总结

无论是使用命令提示符还是终端,这两种方法都可以有效地找到 Windows 系统上 Python 的安装路径。命令提示符是传统的选择,而终端则提供了更现代和强大的替代方案。

无论你是想排查问题、设置环境变量,还是单纯想了解 Python 的安装情况,这些方法都能为你提供所需的信息。

如果你有任何问题或需要进一步的帮助,请随时提问。

祝你学习愉快!

如何在 VS Code 中快速打开终端?5种方法轻松掌握

thbcm阅读(472)

Visual Studio Code(简称 VS Code)是一款广受欢迎的代码编辑器,开发者可以使用它来编写代码、调试程序以及管理项目。VS Code 的一个强大功能是其内置的终端,它允许你在编辑器中直接运行命令。以下是几种在 VS Code 中打开终端的方法。

1. 通过菜单栏打开终端

a. 点击窗口顶部菜单栏中的“视图”选项。

b. 在下拉菜单中选择“终端”,或者直接按下 Ctrl + \(反引号键)。

2. 使用快捷键打开终端

在大多数操作系统中,你可以通过快捷键快速打开终端:

  • Windows/Linux: 按下 Ctrl + \(反引号键)
  • Mac: 按下 Cmd + \(反引号键)

3. 通过命令面板打开终端

a. 按下 F1Ctrl + Shift + P 打开命令面板。

b. 在命令面板中输入“Terminal: New Terminal”,然后选择对应的命令。

4. 通过侧边栏图标打开终端

a. 在侧边栏中寻找终端图标。图标可能位于侧边栏的底部或侧面,具体位置取决于你的 VS Code 版本和设置。

b. 点击图标以打开终端面板。

5. 如何将终端作为标签页打开?

VS Code 提供了一种方便的功能,允许你将终端拖拽到文件区域,使其以标签页的形式打开。这样可以让你在编辑器界面中同时管理多个终端实例。

操作步骤如下:

  1. 使用上述任意方法打开终端。
  2. 点击终端面板并拖拽到文件区域。
  3. 松开鼠标,终端将以标签页的形式出现在文件区域。

你可以重复此操作,打开多个终端标签页,特别适合需要同时使用多个终端的复杂项目。

总结

VS Code 的内置终端是一个强大的工具,它简化了开发流程,让你无需离开编辑器即可执行命令。花点时间探索终端的功能和自定义选项,它可能会迅速成为你工作流程中不可或缺的一部分。

如何在C语言中生成随机数?详解rand()和srand()的使用

thbcm阅读(379)

C 语言中,主要通过两个函数 rand()srand() 来生成随机数。

方法 1:使用 rand() 函数

rand() 函数用于生成随机数。它返回一个随机整数值,该值可以根据需要进一步缩放到所需的范围。

输出: 由于 rand() 函数生成的是伪随机数,因此每次执行程序时,随机数的值可能不会变化。

方法 2:使用 srand() 进行种子初始化

为了确保每次生成不同的随机数序列,可以使用 srand() 函数为随机数生成器设置种子。通常使用当前时间作为种子。

输出: 由于使用当前时间作为种子,每次执行程序时,随机数的值都会变化。

通过结合使用 rand()srand(),可以在 C 语言中高效地生成随机数,适用于各种场景。

方法总结

仅使用 rand()(不进行种子初始化)

优点

  • 简单易用。
  • 如果需要在程序的不同运行中获得相同的随机数序列,则非常有用。

缺点

  • 每次运行程序时,生成的随机数序列都是相同的。

使用 rand() 并进行种子初始化(使用 srand()

优点

  • 通过使用当前时间作为种子,每次执行程序时,随机数生成器都会生成不同的随机数序列。
  • 适用于大多数需要随机数的场景。

缺点

  • 生成的随机数仍然是伪随机的,因此不适合用于密码学等需要高随机性的场景。
  • 如果程序连续快速执行,使用当前时间作为种子可能会导致生成相同的序列。

总之,在需要相同随机数序列的特定情况下,可以仅使用 rand()。但对于大多数一般用途,使用 srand() 初始化随机数生成器是更好的选择。

示例代码

示例 1:仅使用 rand()

#include <stdio.h>
#include <stdlib.h>


int main() {
    int random_number = rand();
    printf("随机数: %d\n", random_number);
    return 0;
}

示例 2:使用 rand()srand()

#include <stdio.h>
#include <stdlib.h>
#include <time.h>


int main() {
    srand(time(0)); // 使用当前时间作为种子
    int random_number = rand();
    printf("随机数: %d\n", random_number);
    return 0;
}

示例 3:生成指定范围内的随机数

#include <stdio.h>
#include <stdlib.h>
#include <time.h>


int main() {
    srand(time(0)); // 使用当前时间作为种子
    int min = 1;
    int max = 100;
    int random_number = (rand() % (max - min + 1)) + min;
    printf("在 %d 到 %d 之间的随机数: %d\n", min, max, random_number);
    return 0;
}

希望这篇笔记和示例代码能帮助你更好地理解和使用 C 语言中的随机数生成!如果还有其他问题,请随时提问。

50个Linux命令:文件管理、系统监控与网络工具全攻略

thbcm阅读(311)

Linux 是一种广泛使用的操作系统,它提供了强大的命令行工具,可以帮助用户高效地完成各种任务。以下是 50 个你应该掌握的 Linux 命令,这些命令涵盖了文件管理、系统监控、网络工具等多个方面。

文件和目录管理

  1. ls – 列出当前目录中的文件和目录

    ls

  2. cd – 切换当前目录

    cd /path/to/directory

  3. mkdir – 创建新目录

    mkdir new_directory

  4. rmdir – 删除空目录

    rmdir empty_directory

  5. pwd – 显示当前工作目录

    pwd

  6. cp – 复制文件或目录

    cp source_file destination_file

  7. mv – 移动或重命名文件或目录

    mv old_name new_name

  8. rm – 删除文件或目录

    rm file.txt

  9. touch – 创建新空文件或更新现有文件的时间戳

    touch new_file.txt

  10. cat – 连接并显示文件内容

    cat file.txt

  11. chmod – 更改文件或目录的权限

    chmod 755 file.txt

  12. chown – 更改文件或目录的所有者

    chown user:group file.txt

  13. tar – 创建或解压压缩存档文件

    tar -czvf archive.tar.gz directory/
    tar -xzvf archive.tar.gz

  14. gzip – 压缩文件

    gzip file.txt

  15. gunzip – 解压文件
    gunzip file.txt.gz

系统监控和管理

  1. htop – 交互式进程查看器和系统监控工具

    htop

  2. top – 显示系统资源使用情况和进程

    top

  3. ps – 显示正在运行的进程信息

    ps aux

  4. kill – 终止进程

    kill -9 process_id

  5. systemctl – 控制系统服务和设置

    systemctl start service_name

  6. service – 控制系统服务

    service apache2 restart

  7. useradd – 添加新用户

    useradd username

  8. passwd – 更改用户密码

    passwd username

  9. userdel – 删除用户

    userdel username

  10. su – 切换用户

    su - username

  11. sudo – 以其他用户或提升权限执行命令

    sudo apt update

  12. uptime – 显示系统运行时间和负载平均值

    uptime

  13. df – 显示磁盘空间使用情况

    df -h

  14. du – 显示文件或目录的磁盘使用情况

    du -sh directory/

  15. mount – 挂载文件系统

    mount /dev/sdb1 /mnt

  16. umount – 卸载文件系统

    umount /mnt

  17. date – 显示或设置系统日期和时间

    date

  18. whoami – 显示当前用户名

    whoami

  19. which – 在系统路径中查找程序或命令

    which python

  20. finger – 显示用户的所有信息

    finger username

  21. uname – 显示系统信息

    uname -a

  22. history – 显示之前执行的命令列表

    history

  23. echo – 将文本或变量显示到控制台

    echo "Hello, W3Cschool!"

  24. tee – 将输出重定向到文件和控制台

    echo "Hello" | tee file.txt

  25. locate – 在系统中查找文件

    locate file.txt

  26. sort – 对文件或输入中的行进行排序

    sort file.txt

  27. uniq – 从文件或输入中删除重复行

    uniq file.txt

  28. head – 显示文件或输入的前几行

    head -n 5 file.txt

  29. tail – 显示文件或输入的最后几行
    tail -n 5 file.txt

网络工具

  1. ssh – 安全地连接到远程服务器

    ssh username@remote_host

  2. scp – 在系统之间安全地复制文件

    scp file.txt username@remote_host:/path/to/destination

  3. ping – 测试网络连接

    ping google.com

  4. ifconfig – 显示或配置网络接口

    ifconfig

  5. netstat – 显示网络连接信息

    netstat -tuln

  6. route – 查看或配置网络路由表
    route -n

这些命令是 Linux 系统管理的基础,掌握它们可以帮助你更高效地使用 Linux 系统。希望这篇总结能帮助你更好地理解和使用这些命令!如果还有其他问题,请随时提问。

联系我们