Joyber 发布的文章

umijs/umi
https://github.com/umijs/umi

umi 是 React 社区中的一个框架,它的核心优势在于提供了一种快速创建 React 应用程序的方式。 以下是 umi 的主要功能、关键特性和核心优势:

  • 提供了一种快速创建 React 应用程序的方式
  • 可以轻松地创建路由、插件和布局
  • 支持多种构建方式,包括 SSR、SPA 和静态导出
  • 提供了一套完整的插件系统,可以轻松地扩展功能
  • 社区活跃,有大量的贡献者和维护者支持 总之,umi 是一个非常强大的 React 框架,可以帮助开发人员快速创建高质量的应用程序。

ComposioHQ/composio
https://github.com/ComposioHQ/composio

Composio 是一个为 AI 代理提供生产就绪工具集的项目,它为代理提供高质量的工具和集成,无需担心身份验证、准确性和可靠性,只需一行代码即可完成。该项目的主要功能、关键特性和核心优势包括:

  • 支持 100 多种工具,包括软件、操作系统、浏览器、搜索、SWE、RAG 和框架等。
  • 支持 GitHub、Notion、Linear、Gmail、Slack、Hubspot、Salesforce 等 90 多个软件。
  • 支持多种身份验证协议,包括访问令牌、刷新令牌、OAuth、API 密钥、JWT 等。
  • 可以获得高达 40% 更好的准确性。
  • 可以轻松扩展,支持添加其他工具、框架和身份验证协议。
  • 可以嵌入到应用程序的后端,为所有用户和代理管理身份验证和集成,保持一致的体验。

modelscope/FunClip
https://github.com/modelscope/FunClip

FunClip 是一个开源、精准、方便的视频切片工具,集成了大语言模型 AI 智能剪辑功能。 该项目的主要功能、关键特性和核心优势包括:

  • 使用阿里巴巴通义实验室开源的 FunASR Paraformer 系列模型进行视频语音识别。
  • 用户可以自由选择识别结果中的文本片段或说话人,并通过点击裁剪按钮获取对应片段的视频。
  • 集成了多种大语言模型调用方式并提供 prompt 配置接口,尝试通过大语言模型进行视频裁剪。
  • 集成了阿里巴巴开源的工业级模型 Paraformer-Large 和 SeACo-Paraformer 的热词定制化功能,提升识别效果。
  • 支持多段自由剪辑,并且会自动返回全视频 SRT 字幕和目标段落 SRT 字幕。

lllyasviel/IC-Light
https://github.com/lllyasviel/IC-Light

IC-Light 是一个用于操纵图像照明的项目。

该项目的主要功能和关键特性包括:

  • 提供两种模型:文本条件重照模型和背景条件模型
  • 以前景图像作为输入
  • 能够产生高度一致的重照效果
  • 不同的重照效果可以合并为法线贴图

hydralauncher/hydra
https://github.com/hydralauncher/hydra

hydra 是一个游戏启动器,具有自己的内置 BitTorrent 客户端和自我管理的重新打包抓取器。 该项目的主要功能、关键特性和核心优势如下:

  • 内置 BitTorrent 客户端
  • 游戏页面上的 How Long To Beat (HLTB) 集成
  • 下载路径自定义
  • 支持 Windows 和 Linux

日常 web 开发中,我们经常遇到想要滚动某元素,但却导致了其他元素发生了滚动的问题。

比如我们某元素使用了浮层,当浮层无法滑动时,我们尝试滑动浮层,会发现浮层下的元素(通常来说是页面)发生了滚动,这就是滚动穿透。

而元素滚动到底时,再尝试滚动会导致元素的可滚动父级开始滚动,这就是滚动链(Scroll Chaining)。

换个说法来说规范可能更好理解一些,规范不是用户手册,它只会规定了你要有哪些特性以及如何实现这些特性,但它不会规定你不要实现某些特性。而各大浏览器厂商不约而同的选择了这样的模式:当尝试滚动目标元素时,如果元素不能滚动,那就去尝试让它的父级元素进行滚动,哪个能滚滚哪个。

这篇文章分析了这个问题,并给出了解决方案:
https://blog.osvlabs.com/?p=246

1.交互式:使用标准的输入和输出,是程序执行的中途让用户输入
在这个脚本里,fwrite()函数首先会向标准的输出设备写一条消息,询问用户的姓名。然后它会把从标准输入设备获得的用户输入信息读
取到一个PHP变量里,并它把合并成为一个字符串。然后就用fwrite()把这个字符串打印输出到标准的输出设备上。

#! /usr/bin/php

<?php

// ask for input
fwrite(STDOUT, "Enter your name: ");

// get input
$name = trim(fgets(STDIN));

// write input back
fwrite(STDOUT, "Hello, $name!\n");

2.使用命令行参数

在命令行里输入程序参数来更改其运行方式是很常见的做法。你也可以对CLI程序这样做。PHP CLI带有两个特殊的变量,专门用来达到这个
目的:一个是$argv变量,它通过命令行把传递给PHP脚本的参数保存为单独的数组元素;另一个是$argc变量,它用来保存$argv数组里元素的
个数。

要注意的是,$argv的第一个自变量总是脚本自己的名

方法一:read指令
该命令是在shell提示符下获取用户输入的最简单,使用最广泛的方法read。演示其用法的最佳方法是一个简单的演示:

#! /bin/bash

while true; do
    read -p "Do you wish to install this program? [Y/N]" yn
    echo You input is: $yn;
    case $yn in
        [Yy]* ) echo make install; break;;
        [Nn]* ) exit;;
        * ) echo "Please answer yes or no.";;
    esac
done

方法二:select指令
另一种方法是Bash的命令。这是使用的相同示例:select

#! /bin/bash

echo "Do you wish to install this program? Please select a number:"
select yn in "Yes" "No"; do
    echo You input is: $yn;
    case $yn in
        Yes ) echo make install; break;;
        No ) exit;;
    * ) echo "Please answer yes or no.";;
    esac
done

执行命令结果:

$ ./test_select.sh 
Do you wish to install this program? Please select a number:
1) Yes
2) No
#? 2
You input is: No
$ ./test_select.sh 
Do you wish to install this program? Please select a number:
1) Yes
2) No
#? 1
You input is: Yes
make install