31. 2024-11-26 星期二
很幸福的一天,今天是 milklove 宣布二搭、三搭的日子。
6 月入坑牛奶爱情,不知不觉嗑到现在,从没想过今天这样的发展。
在这里汇总一下今天的一些视频。








很幸福的一天,今天是 milklove 宣布二搭、三搭的日子。
6 月入坑牛奶爱情,不知不觉嗑到现在,从没想过今天这样的发展。
在这里汇总一下今天的一些视频。
import vtkSTLReader from '@kitware/vtk.js/IO/Geometry/STLReader';
const getStlModelFromPath = async (path: string) => { const response = await fetch(path); const stlArrayBuffer = await response.arrayBuffer();
const stlReader = vtkSTLReader.newInstance(); stlReader.parseAsArrayBuffer(stlArrayBuffer);
const polyData = stlReader.getOutputData(); return polyData;};
const stlPath = '/path/to/your/model.stl';const polyData = await getStlModelFromPath(stlPath);const jsonData = polyData.toJSON();
import modelJSON from './model.json';
const convertPolyDataJSONToStl = (polyDataJSON: string, fileName: string = 'model.stl') => { const polyData = vtkPolyData.newInstance(polyDataJSON); const writer = vtkSTLWriter.newInstance();
writer.setInputData(polyData); const fileContents = writer.getOutputData();
// Create a blob and download link const blob = new Blob([fileContents], { type: 'application/octet-stream' }); const a = window.document.createElement('a'); a.href = window.URL.createObjectURL(blob); a.download = fileName;
// Trigger download document.body.appendChild(a); a.click(); document.body.removeChild(a); window.URL.revokeObjectURL(a.href);};
convertPolyDataJSONToStl(modelJSON);
第一是太过依赖外界获取快乐,当关注的事物出现的频次降低时就会产生焦虑。➡️分离焦虑
第二是身体自身问题,缺乏锻炼,睡眠不足,且最近 debuff,因此可能出现很多负面情绪
第三是过于消极并且在意他人看法,喜欢预设最坏的事情走向,给自己带来不必要的压力
第四是欲望与现实不匹配,感觉想要的生活与现实差距比较大。
追星,需排除其中的不开心因素,例如和他人吵架
产出,拍到满意的照片,剪出满意的视频,写出满足需求的软件等
运动,运动完以后确实会开心很多
挣钱,喜欢看到存款变多的情况。
夸赞和感谢,一直都不会掩饰自己是个虚荣心很强的人,他人的夸赞和感谢会让我开心很久。
既然关注的人出现的频次无法预测和掌控,因此只能处于有饭就吃,没饭可以扒拉两口别的饭,拓展兴趣点
由于目前比较忙,吃完晚饭回家已 8 点,没有太多时间做自己的事情和锻炼,因此尽量在自己身体和精神条件尚可的情况下,安排锻炼(更优先),然后在产出兴趣内的东西
其他的随缘吧,保持分享的欲望,实践费曼学习法,不刻意追求什么,慢慢积累就行。
useSearchParams
useSearchParams | React Router
interface URLSearchParams { /** Appends a specified key/value pair as a new search parameter. */ append(name: string, value: string): void; /** Deletes the given search parameter, and its associated value, from the list of all search parameters. */ delete(name: string): void; /** Returns the first value associated to the given search parameter. */ get(name: string): string | null; /** Returns all the values association with a given search parameter. */ getAll(name: string): string[]; /** Returns a Boolean indicating if such a search parameter exists. */ has(name: string): boolean; /** Sets the value associated to a given search parameter to the given value. If there were several values, delete the others. */ set(name: string, value: string): void; sort(): void; /** Returns a string containing a query string suitable for use in a URL. Does not include the question mark. */ toString(): string; forEach(callbackfn: (value: string, key: string, parent: URLSearchParams) => void, thisArg?: any): void;}
它提供了内建的 API,允许直接获取查询参数的值,比如 .get()
, .set()
, .append()
等。
const [queryParams, setQueryParams] = useSearchParams(); console.log('%c Line:52 🍿 queryParams', 'color:#33a5ff', queryParams.get('medicalRecordID'));
GitHub - ljharb/qs: A querystring parser with nesting support
使用 window.location.search 获取到请求参数对应的字符串(需要注意的是:字符串是带有?的)
然后使用 qs.parse 方法来解析查询字符串
案例:localhost?medicalRecordID=1
错误使用:
const getQueryParam = (): QueryParams => { // use qs to parse the query params const queryParams: QueryParams = qs.parse(window.location.search); return queryParams;};
正确使用:
const getQueryParam = (): QueryParams => { // use qs to parse the query params const queryParams: QueryParams = qs.parse(window.location.search.slice(1)); return queryParams;};
原文参考:
太懒了不想写 Commit message,
@cursor_ai
帮你写👇:
1⃣ 按住 [Control ⌃ + `] 打开终端输入 git add 暂存更改。
2⃣ 按住 [Command ⌘ + K] 对话框输入 "git commit message" 然后提交请求,搞定!简洁明了。
我是这样,在暂存前使用 command
@Commit (Diff of Working State)
Please generate a commit message with English. Below is the commit message template: <type>(<scope>): <subject>
@Commit (Diff of Working State)
Please generate a commit message with CN. Below is the commit message template: <type>(<scope>): <subject>
代码如下:
{camera_id && ( <div>{camera_id}号相机</div>)}
当 camera_id>0 的时候,正常显示 x 号相机
当 camera_id=0 的时候,异常显示 0,而不是 0 号相机
这是因为在 JavaScript 中,0
被视为 falsy 值,因此当 camera_id
为 0
时,条件判断 camera_id &&
会返回 false
。所以后面的内容不被渲染。
但是 0 是可以被 react 渲染的,所以最后显示的是 0,而不是不显示。
涉及到数字且可能为 0 的时候,不要直接使用&&来判断,而是使用
{camera_id !== undefined && ( <div>{camera_id}号相机</div>)}
<a>: The Anchor element - HTML: HyperText Markup Language | MDN
如何定义没有值?
<a download>
或者 <a download="">
在设置的需要注意类型转换:
let temp1 = document.createElement('a');
temp1.download = null;
console.log(temp1.download); // 输出 undefined
但是如果先设置了 download = ”, 再设置 download = null, 就会被转化为 ‘null’
所以要么直接设置 download = null,要么直接设置 download = ”
不要设置了 download = ” 之后去设置 download = null
手机直播的时候录播机录出来的分辨率是 720x1080,使用 ffmpeg 转成横屏的 1920x1080。这样 xml 转 ass 弹幕的时候,就不需要另外处理了,看起来很更舒服。
macos 的写法:
input_folder="" # 要转化的录播的文件夹路径output_folder="" # 要输出的文件夹路径
# Create the output folder if it does not existmkdir -p "$output_folder"
for f in "$input_folder"/*.flv; do ffmpeg -i "$f" -vf "scale=720:1080,pad=1920:1080:(ow-iw)/2:(oh-ih)/2" -c:a copy "$output_folder/$(basename "${f%.*}.mp4")"done
windows 的写法:
$input_folder = "Z:\\rec\\48743-hanser\\20240731-又来画画了!" # 要转化的录播的文件夹路径$output_folder = "Z:\\rec\\48743-hanser\\20240731-又来画画了!" # 要输出的文件夹路径
# Create the output folder if it does not existIf (-Not (Test-Path $output_folder)) { New-Item -ItemType Directory -Path $output_folder | Out-Null}
Get-ChildItem -Path $input_folder -Filter *.flv | ForEach-Object { $input_file = $_.FullName $output_file = Join-Path $output_folder ($_.BaseName + ".mp4") $ffmpeg_args = @("-i", $input_file, "-vf", "scale=720:1080,pad=1920:1080:(ow-iw)/2:(oh-ih)/2", "-c:a", "copy", $output_file) & ffmpeg $ffmpeg_args}
效果
@echo offset input_folder=YourInputFolderPathset output_folder=YourOutputFolderPath
for %%a in ("%input_folder%\\*.flv") do ( ffmpeg -hwaccel cuda -c:v h264_cuvid -i "%%a" -vf subtitles="%%~na.ass" -c:v h264_nvenc -b:v 6000k -c:a copy "%output_folder%\\%%~na_压制.mp4" -y)
#!/bin/bash
input_folder="/path/to/input" # Replace with your input folder pathoutput_folder="/path/to/output" # Replace with your output folder path
mkdir -p "$output_folder" # Create the output folder if it doesn't exist
for f in "$input_folder"/*.mp4; do subtitle_file="${f%.*}.ass" # Assumes subtitle file name is same as video file name but with .ass extension output_file="$output_folder/$(basename "${f%.*}_压制.mp4")" # Output file name with _ass suffix
ffmpeg -i "$f" -vf "ass=$subtitle_file" "$output_file"done
Perplexity - AI Search - Chrome 应用商店
Devv AI (编程向)
体验最新大模型
Introducing Llama 3.1: Our most capable models to date
Perplexity 和 eleventlab 合作,把 Discover 的内容转成播客了。
很适合练习听力以及了解科技资讯。地址:Discover Daily by Perplexity
支持 rss