Levon's Blog

微信: L6241425

graph TD
    classDef loose fill:#e1f5fe,stroke:#01579b,stroke-width:2px;
    classDef middle fill:#fff9c4,stroke:#fbc02d,stroke-width:2px;
    classDef strict fill:#ffebee,stroke:#b71c1c,stroke-width:2px;

    Root["开源协议体系 (License Universe)"] --> TypeA["宽容型 (Permissive) - 高自由度"]
    Root --> TypeB["弱 Copyleft (Weak Copyleft) - 中等限制"]
    Root --> TypeC["强 Copyleft (Strong Copyleft) - 传染式约束"]

    TypeA --> MIT["MIT"]
    TypeA --> Apache["Apache 2.0"]
    TypeA --> BSD["BSD"]

    TypeB --> LGPL["LGPL"]
    TypeB --> MPL["Mozilla"]

    TypeC --> GPL["GPL v2/v3"]
    TypeC --> AGPL["AGPL"]

    MIT -- "核心特征" --> F1["保留版权声明,允许任意使用和修改"]
    Apache -- "核心特征" --> F2["包含专利授权条款"]
    BSD -- "核心特征" --> F3["禁止利用作者名义进行宣传"]

    LGPL -- "核心特征" --> F4["允许闭源动态链接"]
    MPL -- "核心特征" --> F5["仅开源被修改的文件"]

    GPL -- "核心特征" --> F6["修改或分发时必须开源完整代码"]
    AGPL -- "核心特征" --> F7["网络服务同样触发开源义务"]

    %% 样式绑定
    class TypeA,MIT,Apache,BSD,F1,F2,F3 loose;
    class TypeB,LGPL,MPL,F4,F5 middle;
    class TypeC,GPL,AGPL,F6,F7 strict;

开源项目根目录下的 LICENSE 文件本质上是一份法律合同,它明确界定了使用者享有的权利(如代码复制、修改、商业使用)以及必须履行的义务(如代码开源、署名、变更声明)。

在企业开发中,引入第三方库前必须仔细审查其 LICENSE。如果引入 GPL 协议的库到私有商业项目中,将触发 “ 传染效应 “,导致企业私有代码必须开源。轻则面临社区声誉损失,重则遭遇法律诉讼、巨额赔偿,甚至产品被迫下架或开源(典型案例:思科 Linksys 路由器事件)。

阅读全文 »

1. 已损坏 App 解决方法

1
xattr -cr /Applications/Imagine.app

强制、递归地清除 “Imagine.app” 这个应用程序的所有扩展属性(extended attributes)。

这就像是给这个 App “ 洗了个澡 “,去掉了它身上所有额外的 “ 标签 “ 和 “ 注释 “,让系统认为它是一个 “ 干净 “ 的、可信任的程序。

阅读全文 »

Claude Agent Skills 将 Claude 从纯对话模型升级为可调用外部工具的智能代理。通过预先定义的工具描述,Claude 能够根据任务需求自主决定何时查询天气、操作电脑、检索数据库或执行其他具体操作。

graph TD
    A["用户请求(User Input)"] --> B["Claude 大脑(核心决策层/Planner)"]
    
    subgraph "Claude 决策闭环"
        B --> C{"是否需要工具?(Reasoning)"}
        C -- "是" --> D["选择技能/构造参数(Tool Call)"]
        C -- "否" --> E["直接回答(Direct Response)"]
    end

    subgraph "执行与反馈层"
        D --> F["外部环境/工具箱(Tools Environment)"]
        F --> G["API 调用(查天气/搜数据库)"]
        F --> H["Computer Use(操作鼠标/键盘)"]
        F --> I["代码解释器(运行 Python)"]
        
        G --> J["执行结果(Observation)"]
        H --> J
        I --> J
    end
    
    J --> B
    E --> K["最终输出给用户(Final Output)"]

    style B fill:#f9f,stroke:#333,stroke-width:2px
    style F fill:#ccf,stroke:#333,stroke-width:2px
阅读全文 »

本文整理了 Mac、iOS 和 Android 电视平台下 YouTube、Spotify 等影音应用的解锁与增强方案,涵盖后台播放、免广告、解锁 VIP 及播客转换等功能。

注意:本文涉及第三方工具及非官方配置,请自行评估风险及合规性。

阅读全文 »

1. Emby 介绍

Emby 是家庭媒体库管理软件,用于组织本地影视文件,自动生成带有影片简介、演职员信息的海报墙,提供优质的影音体验。

与传统流媒体平台(爱奇艺、Netflix)不同,Emby 采用客户端 - 服务器架构:需要连接到安装了 Emby 服务器的设备才能访问内容。服务器可以是自建,也可以使用第三方提供的服务。

阅读全文 »

1. 安装和使用

教程:https://www.ha-box.xyz/

接通电源开机,插上网线连接到路由器,大概 2、3 分钟后访问http://homeassistant.local:8123 或者通过 ip 访问,比如http://192.168.11.121:8123

阅读全文 »

1. AdGuard

AdGuard Home 是一个能在路由器上运行的 DNS 服务器。 DNS 是干嘛的?它负责 “ 把网站名解析成 IP 地址 “。

举个例子:当你访问某个 App 中的广告: ad.example.com → 设备会问 DNS:“这个域名怎么对应 IP?” → AdGuard Home 查到该域名是广告域名 → 答复一个假的地址(0.0.0.0) → 请求直接失败,广告无法加载

AdGuard Home 是靠 “ 广告域名名单 “ 来判断哪些请求需要拦截,它主要针对 DNS 层广告域名。它并不修改网页内容、也不解密 App,通过 “ 不让广告域名解析 “ 来达到 “ 广告无法下载 “ 的目的。

阅读全文 »

家里没有公网 IP,在路由器上开启内网穿透。内网穿透的核心思想都是一样的:既然外面的人进不来,那我们就主动从内部出去,与一个在外面有固定地址的 “ 中间人 “ 建立联系,然后让这个 “ 中间人 “ 帮忙传递消息。

阅读全文 »
0%