Normal view

There are new articles available, click to refresh the page.
Before yesterdayMain stream

copyparty – 免费开源强大的文件服务器,支持 WebDAV、FTP、媒体播放等超多功能

By: Anonymous
19 October 2024 at 12:16

DUN.IM BLOG

DUN.IM BLOG

我们还年轻,可不想看到这个世界处在毫无自由、隐私的边缘。

copyparty 是一款功能非常丰富的多功能文件服务器,主要用来你电脑、服务器、设备里的文件,并通过、WebDAV、FTP 等方式访问,还支持播放音乐、上传文件、权限设置等功能。

几乎可以在任何有 Python 环境的地方运行,还支持 Docker 托管,以及 系统下的单可执行程序,甚至可以在 中运行。虽然运行很容易,但我不敢说它简单易用。

Portable file server with accelerated resumable uploads, dedup, WebDAV, FTP, TFTP, zeroconf, media indexer, thumbnails++ all in one file, no deps – 9001/copyparty

copyparty 给自己的定位是「便携式文件服务器,具有断点续传、重复数据删除、WebDAV、FTP、TFTP、零配置、媒体索引器、缩略图++,全部集成在一个文件中,无依赖。」

所有的功能集中在一个 .py 文件中,718 KB,直接运行就可以了。Windows 系统有编译好的 .exe 单可执行文件,双击也即开机用。其他平台直接 python copyparty-sfx.py 就行了。

就是文档太啰嗦了…看不下去。

直接运行就可以在浏览器访问 http://127.0.0.1 了,默认会使用 80/443 端口,打开就是这样的:

可以上传、、播放、听歌、看图片…非常纯粹的文件分享。有一种 Alist 的感觉,不过它不支持网盘。

只需要在启动的时候添加一个用户,就能设置权限了,包括只读、文件夹限制等等:

这一行的意思是创建了三个用户:u1/u2/u3,为它们挂载文件夹 music,对 u1/u2 两个用户只读,u3 用户可以写。

但注意有参数后,访问端口就变化了(3923)。

copyparty 默认开启了 WebDAV,只需要在你的 WebDAV 客户端里直接连 http://ip:3923 就行了。

甚至,你可以通过 WebDAV 把这个文件夹映射为 Windows 的网络磁盘,不过 Windows 默认需要 https,改一下注册表就好了。

而 FTP 则需要在启动的时候添加 --ftp 21 参数,用户名密码和上面的设置相同,不设置就支持匿名访问。

ChatGPT 中文语音对话测试心得,头脑风暴、即时口译、冥想教练

By: Anonymous
25 September 2024 at 15:38

DUN.IM BLOG

DUN.IM BLOG

我们还年轻,可不想看到这个世界处在毫无自由、隐私的边缘。

之前让许多人惊艳的「进阶语音模式」功能,今天开始陆续针对 Plus 与 Team 用户推出。这个模式最大的特色,就是可以用更加自然〔接近于真的跟一个人聊天〕的对话方式,让用户通过语音与 进行交流。

相较于旧版的功能,新的语音交谈过程更加流畅、AI 反应迅速、接话过程几乎没有等待,也能随时打断 AI、插入新话题,除了可以支持多国语言在同一个对话中自由切换外,还能让 AI 模仿或调整各种对话风格等等。

那时候在 推出的官方中,这个 AI 进阶语音不只是更自然流畅而已,他还可以结合看的功能〔摄影镜头〕来回答用户问题,或是在语音中识别出用户的情感而提供对应的回应,这些跟原本拟人化的语音结合在一起,效果确实令人惊艳。

不过目前的「进阶语音模式」功能,似乎还没有当时视频中「完成体」的样子,在我实际的测试中,目前的〔2024/9/25〕的「进阶语音模式」有下面这些特点与限制:

ChatGPT 中文语音对话测试心得,头脑风暴、即时口译、冥想教练

我测试了几个 ChatGPT「进阶语音模式」的情境,下面跟大家「纯心得」,之所以叫做纯心得,就是因为我没有时间录制成视频再剪辑,所以真实过程其实是手机 上的语音对话,但我就用事后图文的结果来说明

首先,我之前就尝试过,利用跟 ChatGPT 进行一来一往的语音对话,一起构思一个企划案、文章草稿,例如,ChatGPT 假装成一个采访者,采访我对某个主题的想法,引导我把想法说出来,最后我就可以把这些内容转换成报告或文章。

旧版本的时候,其实我就已经觉得满好用的,只是那时候 ChatGPT 的每一次回应「要等很久」,所以对话过程相对生硬很多。

但使用新版的「进阶语音」模式,整个对话讨论过程完全不需要等待,AI 几乎都可以立即回应、接话,而当我 AI 说的东西走偏时,我也可以立即打断他,重新拉回主题。

最大的改变就是整个过程会更迅速,更节省时间,而脑中的想法可以更顺畅地说出,更有头脑风暴的感觉。

我喜欢用这种来回对话的方式,把很多想法激发出来。

经过完整的语音讨论后,请 AI 统整前面的讨论,整理成报告、文章的草稿。

不过,最后这一段我用的是文字的指令,当我这样做之后,这个聊天室就不能再进入进阶语音模式了

其实现在有很多 App 可以做类似的事情,无论是真人还是 AI,有一个在线家教,通过语音来教我们学习一些事情。

于是我试试看让 ChatGPT 通过「进阶语音模式」,当一个冥想教练。

首先,我先试试看在对话中让他调整语调。〔毕竟冥想教练的语调应该更缓和、舒服一点〕

然后我请他当一个冥想教练,通过进阶语音模式,引导我进行深呼吸的练习,或是引导我做大脑放松,效果还可以,这看起来也是一个适合 ChatGPT「进阶语音模式」做的事情。

当然,在这种特别需要情感的情况下,AI 的声调听起来还是比真人的语调生硬一点点。

或者,我也请 ChatGPT 通过「进阶语音模式」当一个英文家教,带我练习口说。

相较于旧版本,因为现在对话过程更流畅,所以更有面对面家教的感觉。例如我先跟他说明想要学习的背景,通过讨论,我们决定一起来练习旅行中的英文。接着 AI 提示我可以先练习餐厅中使用的英文,于是他先说几句如何点餐的用语,然后要求我照着念一次,并且会给我即时回馈。

这部分的过程非常顺畅也满有用的,而且可以通过对话随时调整成自己想要学习的内容,比很多固定的英文学习 App 更好用。

我也尝试看看把这样的「进阶语音」当作翻译来使用看看,以后如果有旅行、会议场合,可否帮我更快速、流畅的翻译双方沟通的内容呢?

首先,我进入语音对话后,先做一些设置,请 ChatGPT 充当即时口译的角色,并告诉他听到什么语言时,要口译成什么语言。

然后我说了一段中文,他很顺畅地直接翻译成正确的日文内容,当然,是用说的说出来。

然后我尝试在不同的语言之间切换,ChatGPT 的 AI 语音都可以即时口译成我需要的另一种语言。

而且当使用台语〔闽南语〕沟通时,ChatGPT 的 AI 语音也能听得懂,并且也会用台语回答。

整体来说,昨天初步测试,上述几个应用情境,对我来说就可以生成很大帮助:

使用 ChatGPT Plus 或 Team 版本的用户,值得试试看。

Google NotebookLM 更新:用 AI 研究英文 YouTube,批量获取整理视频、音频内容

By: Anonymous
30 September 2024 at 13:12

DUN.IM BLOG

DUN.IM BLOG

我们还年轻,可不想看到这个世界处在毫无自由、隐私的边缘。

Google NotebookLM 是一个强大的,可以让我们上传各种不同内容,建立属于自己的 库。通过这个工具,我们可以用自己专属的文件、PPT、网页、文章,让 AI 生成各种新的报告、文案、文章,甚至是客服解答。

这个工具让很多团队和公司都觉得非常实用。比起从别人的数据库中生成内容,直接从自己的专业文件与专属知识中获得 AI 回应,对工作的性来说更有效。

NotebookLM 推出了一个全新的升级,比前阵子推出的生成英文 Podcast 更实用!

现在它可以支持上传「 」,和上传自己的「录音文件」,让你用更多不同的内容建立属于自己的 AI 数据库。AI 会自动分析 YouTube 视频的字幕,并将录音文件转成各种语言的字幕,从而帮助你生成所需的内容。

这次升级带来了许多新的应用可能性,例如:

Google NotebookLM 原本已经支持上传 Google 文件、简报和网址进行分析,而现在更加入了 YouTube 视频和录音文件的支持。无论是中文、英文、日文等多国语言,NotebookLM 都能进行高效的 AI 整理与生成。

接下来,我通过图文介绍,这些新功能的实际使用方式。

打开「 Google NotebookLM 」,建立一个新的笔记本,然后就可以上传各种文件、文件、影音内容。

而在这次更新中,上传的内容增加了「YouTube」与「录音文件」两种选项。

Google NotebookLM 更新:用 AI 研究英文 YouTube,批量获取整理视频、音频内容

上传 YouTube 时,其实就是贴上 YouTube 视频的网址即可。

Google NotebookLM 不支持某些视频,例如没有字幕、不公开、最近才上传的视频,都可能导入失败。

我把自己收集的大量跟「个人知识管理系统」有关的英文 YouTube 视频,全部上传到 Google NotebookLM,立刻整理成「中文」的第二大脑学习笔记内容。

看起来效果还算是精准有效。

也可以把 YouTube 视频,跟其他的文件、网页文章,全部一起上传到同一个数据库。

AI 生成的内容与回答,也会从数据库的不同视频、不同文章多种不同内容,整理出答案,引用不同形式的参考资料。

也就是说,现在文字、视频、声音内容,都可以在 Google NotebookLM 的同一个数据库中进行解析,让 AI 同时分析多种内容形式,生成更有效地回答。

AI 问答时,针对 YouTube 视频,AI 会抓出视频的字幕进行解析与诠释,回答时也会引用视频内容,我们可以看到视频完整的字幕稿,以及跟答案有关的引用部分。

另外这次升级,Google NotebookLM 还推出了一个更实用的更新,就是可以上传录音文件,解析出完整字幕〔中文也支持〕,并进行知识问答或整理

下面是我把一个 40~50 分钟的录音文件上传,解析出的完整字幕内容。

字幕本身不算很完美,但理解内容没问题,更重要的是,这些录音字幕,就可以变成 AI 未来生成我需要的内容的素材。

例如我上传很多次很长时间的会议录音文件,问他会议中的某个重点:

Google NotebookLM 就可以正确的挑出示哪一个会议录音文件的哪一段内容,提供回答,也可以在引用中直接让我跳到该次会议的录音字幕段落!

我也可以汇整一个项目多次的会议录音文件,请 AI 根据会议录音文件撰写报告、文案Google NotebookLM 也表现得还不错。

或者,我之前常常提到,我喜欢用说的把想法讲出来,再看怎么语音转文字,变成报告或文章的草稿。

Google NotebookLM 中,我现在可以更自在地先把想法完成的录音下来,把录音文件上传,让 NotebookLM 整理杂乱想法,引用原文,改写成通顺文章。

Google NotebookLM 的最新升级让它成为学习与工作上的强大工具,特别是支持 YouTube 视频和录音文件的上传与解析!

无论是学习英文视频、整理会议录音,还是将录音内容转换成报告和文章,Google NotebookLM 都能以有效帮助我们处理繁琐的资料,并生成实用的 AI 回应。

通过整合多种语言与多形式内容〔文章、PDF、简报、网页、视频、录音等等〕,Google NotebookLM 这个工具让学习和工作流程变得更聪明,无论你是学生、老师、职场专业人士,还是创作者,NotebookLM 都是一个值得试试看的 AI 助手。

PopPop AI – 免费 AI 音效生成器,文字描述转换为音效神器

By: Anonymous
17 July 2024 at 15:22

DUN.IM BLOG

DUN.IM BLOG

我们还年轻,可不想看到这个世界处在毫无自由、隐私的边缘。

利用人工智能 技术制作已经不是,之前推荐过 Google MusicFXSuno AIStable Audio 都是 AI 音乐生成器,通过描述词或上传图片即可生成一段音乐,有些素材还能用于商业用途,相较于以往都要付费购买素材授权来说其实更实惠,而且利用机器生成的音乐又更不容易与其他人重复,以独特性来说略胜一筹。

PopPop AI」是一个免费 AI 音效在线生成器,用户输入一段文字描述后就快速生成相对应的音效素材,例如鼓掌声、下雨声、车流声或是餐厅、咖啡店吵杂的环境音,将文字在几秒钟内转换为各种类型的音效,亦可使用于、游戏制作或是各种情境。

PopPop AI 音效生成器没有使用限制,而且不用注册就可以立即使用,和同类型产品很不一样。

除此之外,PopPop AI 免费 AI 音效生成器的上也有提供不少音效示例,搭配上图片更有身历其境的感觉,很难想象这些都是以人工智能生成的音效,未来会不会转为付费服务还不得而知。

Create any sound from text effortlessly with our free online AI sound effect generator – the perfect, user-friendly sound maker for everyone.

进入 PopPop AI 音乐生成器后直接输入描述词,勾选右侧「智能模式」情况下可以使用简单的单词描述声音,该模式会自动修饰并填充相关的声音描述,也能输入中文,例如「交通、噪音、大城市」之类的关键词,按下「Generate」后就会开始生成音效。

PopPop AI – 免费 AI 音效生成器,文字描述转换为音效神器

PopPop AI 需要一段时间处理,过程需要排队,如果有其他人在前面的话就要等待更长时间。

完成后会给出两个选项,分别为 Option 0 和 Option 1,两个都可以试听、下载,略有差异。

点击音效前面的「播放」按钮就能预览播放。

点击后方的「下载」按钮就能获取 WAV 格式音效,没有下载限制,两个都能下载。

不过第一次点击下载时 PopPop AI 会跳出,询问用户是否将网站媒体,按下关闭再点击下载按钮就能获取音效文件。

PopPop AI 首页也有很多生成的音效示例,同时搭配上图片、关键词,想知道 AI 可以生成什么样的音效不妨去试听看看,也能从这里获取一些灵感哦!

Kill the Newsletter! – 免费好用的订阅邮件转 RSS Feed 源工具

By: Anonymous
16 June 2024 at 15:15

DUN.IM BLOG

DUN.IM BLOG

我们还年轻,可不想看到这个世界处在毫无自由、隐私的边缘。

当想通过 RSS 订阅一些人的文章时,却只提供订阅和邮件订阅(News Letter)。为了解决这个问题,找到了一个 Kill the Newsletter! 服务,它可以替你接收邮件并转化为可供 RSS 阅读器订阅的地址。

Kill the Newsletter! 允许用户将订阅邮件转换为 Atom 订阅源。对于需要的订阅源,也会将确认邮件转换为订阅源条目,只要进入转换的地址,就可以获取并点击确认链接。

暂不支持通过回复邮件来验证订阅,可以尝试联系发布者手动验证,或使用邮件设置转发作为解决方案。

另外,有些 Newsletter 的发布者可能会将 Kill the Newsletter! 的电子邮件地址拉黑,同样需要转发之类的绕过。

由于订阅源包含用户的电子邮件标识符,因此不建议订阅源,以防止他人取消订阅或发送垃圾邮件。

通过以上步骤,你就可以把原本只能通过邮件接收的内容转化为 RSS 订阅,方便在各种 RSS 阅读器中统一管理和阅读。

使用 Eagle 管理各种图片素材

By: prin
17 April 2021 at 03:15

不知道各位有没有遇到过这种问题?

上网冲浪存了好多沙雕梗图,有时候突然感觉其中一张图能派上用场,但想找却怎么也找不到,也不知道当初存哪里去了;

大事小事都喜欢截图,玩游戏截图,看动画片也截图,截了一大堆到头来也不怎么用,乱七八糟的混在一起,删了又感觉怪可惜的;

看到喜欢的图总之先右键保存(话说现在是不是已经不兴说「右键保存」了,「长按保存」可能还更普遍一点,大人时代变啦),久而久之图库越来越大,又分散在硬盘的不同角落,整理起来也愈发力不从心……

啊。没有吗。好吧。🥲

说正经的,如果你也有很多图片需要管理,那么你应该试试 Eagle 这款软件。


为什么呢?

如果单纯依靠文件系统整理(用文件夹分类),缺点还是很明显的:

  • 一张图片只能属于一个分类,除非复制多份;
  • 不能给图片加标签、备注;
  • 浏览切换目录不方便,需要借助其他看图软件;
  • 目录下图片太多容易把 Explorer/Finder 卡住。

使用专业的素材管理软件,可以解决绝大多数的这种问题。

当然了,这种类型的软件不只有 Eagle 一个。但是我只用过 Eagle,所以就不推荐其他的啦。如果有更好的选择,欢迎在评论区告诉我。

eagle-website-screenshot

我目前用到的功能基本上有这些:

  • 分类、标签、备注
  • 按颜色、图片尺寸等筛选
  • 瀑布流浏览
  • 重复图片检查
  • 浏览器扩展拖拽保存网页图片

以我自己的体验来说,比起原来用文件管理的时候,真的舒适了太多。相见恨晚啊!

比如下面是我珍藏的(到处偷来的)小叮当图:

eagle-library-memes

还有这几天在看(吹)《佐贺偶像是传奇》

eagle-library-screenshots

不过有一点遗憾的是,目前在手机上还没有浏览 Eagle 资源库的办法。

Eagle 资源库的目录结构是这样的:

我的图库.library├── images│   ├── KEZAL1JG0RN32.info│   │   ├── IMG_1507.png│   │   ├── IMG_1507_thumbnail.png│   │   └── metadata.json│   ├── KEZAL1JG2YXNI.info│   │   ├── 我太菜了 对不起.jpg│   │   └── metadata.json│   ├── KEZAL1JG34XY6.info│   │   ├── 可恶 你们这些被资本主义毒惑到骨子里的猪.jpg│   │   └── metadata.json│   ├── KEZAL1JG4HFBR.info│   │   ├── illust_71093876_20191005_193032.jpg│   │   ├── illust_71093876_20191005_193032_thumbnail.png│   │   └── metadata.json...

每张图片外面都包了一个文件夹,包括分类、文件夹层级等元信息都存在里面的 metadata.json 中,从外界无法直接浏览(这也是为部分人所诟病的一点)。

而官方似乎也没有出移动端 App 的打算……

一个妥协的办法就是使用 Eagle 的导出功能,导出成正常目录结构,然后放到手机上(可以用 Documents 等应用从电脑自动同步)。

eagle-export-sync

这样算是勉强能看,不过到底还是不方便。

前段时间看到 Eagle 公开了 API,本来想弄个简陋的网页客户端,写了个小 demo,倒是确实能浏览图库了。所以功能实现估计是没什么障碍的,奈何后来犯懒,一直搁置到现在,只能有缘再说了。

最后,Eagle 是收费软件,¥199 两台设备,终身授权,学生有教育优惠。

如果你有图片整理需求的话,去试用一下吧,不会亏的。

使用群晖 Chat 实现多平台内容传递

By: Kaiyuan
8 November 2023 at 00:08

手机和电脑之间经常要传递文件或者文字,很多人都是用微信或者 QQ 之类的软件,大部分软件体验过后发现群晖 Chat 十分好用!

我使用的是 iPhone,电脑有 Windows 和 Mac OS X,还有备用机是 Android,所以我基本是常规平台都要用,如果要在设备之间传输内容就是个烦恼。

然后呢…我有黑群晖啊,直接用 Chat 在各个平台传输内容,几乎全部平台都有 Chat 客户端,而且就算用不了客户端也可以用网页版,我还有 Yubico,就算在陌生设备也能无密码的登录。

使用的前提是,有群晖 NAS,黑白都可以。然后安装好 Synology Chat Server 套件。手机也要安装好。详情参考我另一篇文章

iOS 上直接通过分享菜单就有 Chat 选项,我一般都是直接分享到『我的空间』就可以。

现在没有什么软件比这个好用了。


通过群晖 Chat 推送通知到 iPhone

By: Kaiyuan
24 February 2023 at 00:23

push messages to iPhone with synology chat如果你有这样需求,将 Android 短信和来电甚至应用消息推送到 iPhone 上,可以尝试以下使用群晖的 Chat 套件。

设备设置

准备

安装套件

1.先要在国际版的群晖网站下载中心找到你NAS型号的 Synology Chat Server 套件,下载保存好套件文件。

2.打开你 NAS 的页面,然后在桌面打开套件中心。

3.选择手动安装。

4.弹出的窗口找到刚才下载的套件文件选择下一步。

设置机器人

1.打开安装好的 Sunology Chat。

2.在右上角你的头像点击,然后选择『整合』。

3.弹出的菜单选择『机器人』。

4.弹出的窗口点击『+创建』。

5.填写机器人名称和设置以下照片,记得复制好 『传入 URL』。注意:你还没添加机器人之前不要勾选『在聊天机器人列表隐藏』!

6.退出到 Chat 界面,在左边的栏目中『机器人』一栏的右边加号点击并找到刚才新建的机器人点击。这样就成功添加机器人了。

推送内容

推送到机器人的内容可以参照群晖知识中心关于整合的说明

下面我们以文字内容为例,格式是 json

payload={"text": "这里是送内容的文字部分"}

使用 POST 方式推送到建立机器人时候的『传入 URL』。

iPhone 设置

在 AppStore 上搜索 Sunology Chat 并安装,如果国区找不到的话只能用其他区账号安装了。

安装后输入 NAS 地址和端口号或者用 QuickConnect 连接。

Android 手机设置

通过短信转发器 SmsForwarder 推送手机上的消息到 Chat。

先下载好 SmsForwarder 并在 Android 手机上安装,然后打开 App,在发送通道的界面点击右上角加号选择 Webhook

选择 POST,在Webhook Server 填入机器人频道的 URL, 消息模板中填入 payload={"text":"{msg}"} 然后保存。

在转发规则的短信页面右上角加号添加一项,发送通道下拉选择刚添加的通道,然后保存就好了。你也可以点『测试』来测试是否成功。


映泰J4125 自建 NAS

By: Kaiyuan
1 October 2022 at 00:06

终于要自己买硬件来装 NAS 了!选择低功耗平台,6盘位机箱。

硬件清单 2022-09

硬件价格
全汉 FSP Flex-350G 额定350W电源¥459.00
西部数据红盘Plus 8TB(WD80EFZZ)¥1,225.00
映泰J4125NHU主板¥565.00
金士顿 FURY 8GB DDR4 3200 Beast内存¥185.00
梵隆 6 盘位热插拔机箱¥448.00
佳翼5盘SATA阵列卡m.2 nvme to sata¥199.00
闪迪USB 32G USB3.1 U盘CZ74¥43.90
合计¥3,124.90
上面加个都是供应商低价入的全新有质保的价格,机箱是淘宝梵隆自己的店,电源和 USB 是京东下单,其他就是供应商进货。

系统

现在市面上各个能安装的 NAS 系统都折腾一遍了,综合起来只有 DSM 最好使,主要是手机 APP 最健全,设计也最直观,然后就是想办法安装了。

网上搜了好久都没有针对我这块主板的引导,只能自己编译了,然后在搜索编译 DSM 引导的,发现一篇直观简单的编译教程,照着一顿操作,OK!完美引导,M.2 转接卡也能识别使用,没问题。还是直接在线安装系统的。安装完之后没有任何问题,直接使用。


数据迁移

群晖的 DSM 数据迁移十分简单,就是在新的机器安装一个 Migration Assistant,打开之后选择旧的机器,然后输入旧机器的管理员账号密码,选择迁移那些东西,然后等完成就好了,我选择所有组件都迁移,1.3T 数据用了4个多小时才完成,因为是千兆局域网。

Docker 也完美迁移!

迁移后旧机器会停用所有组件,再登陆上去像是新机器一样,因为迁移到新机器了,所以要停用旧机器的组件才不会和新机器上的冲突。看一眼旧机器的磁盘,数据没删的!好评!

现在是一个 8T 硬盘,过几个月再买多个 8T 组 Raid1,这样就错开硬盘的批次了。其实可以买一个希捷的或者买个红盘Pro,也算是错开了,奈何…穷啊。


NAS 功能使用和玩法

我现在 NAS 主要是做数据备份,然后就是文件分享,平时出去装电脑,本地单位的电脑很多时候都要安装一些特定的软件,我就是用家里 NAS 作为分享服务器,需要时候直接从 NAS 下载。

列一份清单吧

套件

套件说明
Plex影视媒体中心,目前功能最完善,其他都不少问题。
Photos群晖的照片应用,功能也是目前相关应用最完善的。
Chat自建聊天软件,配合群晖的免密登陆在模式电脑需要传文件什么的很舒服
Note Station笔记应用,不是很好用,但是找不到其他满意的自建笔记就将就用
WebDAV在手机电脑外网直连 NAS 文件最方便了
Contacts通讯录,手机基本都支持连接,可以方便设置手机通讯录都存 NAS。
Office这个是群晖 Office 套件,需要 Drive 套件支持,但是格式不能直接打开微软 Office 格式,需要转换格式,但是还是能用的。
Active Backup for Business备份服务器到 NAS,支持整个分区备份,不错,服务器就 10G,就算备份几个版本都可以。
Cloud Sync网盘同步工具,挺满意的,都能同步。
Hyper Backup备份 NAS 文件或者设置等到远端服务器,我把笔记,密码库等文件加密备份到 TeraCLOUD 和 OneDrive 上做一个备份。

Docker

项目说明
finab/bark-server推送消息到 iOS Bark
homeassistant/home-assistant智能家庭中心,暂时只用 Docker 版,但是功能不全,要换其他版本才行
jeessy/ddns-goDDNS,目前最顺手了
meosmemo/memos轻笔记,一个不错的随手记
p3terx/aria2-pro下载工具
vaultwarden/serverBitWarden 的自建服务,我所有密码都用这个保存。
zerotier/zerotier-synology异地组网

硬件选择

电源

Flex-350G

选择台达这电源算是没得选,因为之前想要台达1U 额定 350W 电源,但是到处都没货,然后发现加点儿就买到个全模组的,然后就选择了京东买全汉的 Flex-350G 了。全模组好处是方便,要的线接上,不要的就不接,省点儿空间,毕竟机箱小。但是的 4Pin 接口没防呆,全部都是 CPU 4Pin 接口,我还插错过…

硬盘

red plus

看过希捷和西数,发现希捷寿命相对没西数好而且一直装机都用西数就选西数,红盘要 CMR 就只有红盘 Plus 和 Pro,Plus 便宜一点。就先买个红盘 Plus先。后来我又买多了一个红盘 Plus,组的 Raid1。

主板

j4125

之前看的时候映泰还是只有 J4105,然后最近出了 J4125,那就用 J4125 咯。这块主板有坑的,主要就是没有前置 USB 3.0 接口,主板上的风扇接口是3针不能调速,内存最高支持 8G,插两条 8G 能识别,不过我后来买多条 16G 内存接上去,完全可以识别24G。还有就是,主板说明上说到,当 M.2 接口接有 SATA 协议的时候会禁用一个 SATA 口…也就是说,我加了 M.2 转 SATA 之后主板的 SATA 口只能用一个…

内存

内存呢,就没什么的,平时装机用带马甲的都是这条,就用这条咯。先是买了条8G,后来加一条 16G。

机箱

NAS 6

机箱最开始我是想要买个 3U 或者 2U 的热插拔机柜机箱的,毕竟布局起来方便,能塞进家里的 6U 机柜。后来看到拓普龙的机箱,又想用这类 NAS 机箱,不过拓普龙的机箱硬盘笼背板不好,机箱风扇也不行,买回来还要自己改,然后在 B 站逛就发现又款梵隆的机箱,做工可以,背板也不错。不过外观真的难看…但是这价格没得选,就用吧。这机箱有一个很大的优点点,支持全高 PCI-E。

我心目中最好的 NAS 机箱是宝藏盒。所有我想要的设计,宝藏盒都实现了!不过就是价格太贵了。

SATA 扩展卡

m.2 to sata

因为映泰J4125只有两个 SATA 接口,这肯定是不够用的,所以必须想办法扩展,而主板只有一个 PCI-E 槽,所以就要用 M.2 转 SATA,看了几款,这个时间段只有看到佳翼的这款 M.2 转 SATA 转接卡不错,有外壳,看评论兼容性都不错。这个扩展卡在黑群晖下顺序是反过来的,就是5号口是1,1号口是5…

U盘

随便一个质量好的 U 盘都可以,这个一直用开就直接用这个了。


结语

2022年 618 在京东上群晖的 DS920+ 曾经 3000+ 就能买到,硬件也一样,但是还是贵,我现在加上硬盘都比白裙便宜。心心念念的独立 NAS 现在终于完成了!家庭数据中心完成建立,手机照片直接备份上去,不用愁。


树莓派 Zero W 使用微雪电子墨水屏

By: Kaiyuan
7 March 2020 at 08:29

一直想有一个电子墨水屏作为桌面提示器,显示一些信息提示。没有现成的产品,那么就想自己做一个。

用树莓派 Zero W 外接微雪的三色电子墨水屏制作一个小型的桌面提示器。

直接买微雪 2.13 寸带驱动板三色显示屏,这款直接接上树莓派就可以用了。我买的树莓派 Zero W 没有排针,所以我还买了电烙铁给板子焊上排针。然后接上就屏幕驱动板就可以直接用了。


驱动安装

微雪官网的『RPI使用教程』就有显示屏的驱动和使用方式,照着说明安装就可以了。

驱动方式有 C 和 Python 两种,我不懂 C,只能用 Python,而且 Python 用起来比 C 方便很多。

我买这块显示屏型号是 EPD_2in13bc_test(),安装好驱动和库之后运行对应的文件。

sudo python3 ~/e-Paper/RaspberryPi\&JetsonNano/python/examples/epd_2in13bc_test.py

显示屏测试启动。怎么编程其实在这个文件里全部都给出来了,相当简单。


使用例子

我按着这个文件做了两个例子,一个是直接显示三色图案,一个是获取树莓派的信息再生成图片显示。你可以直接下载我的 Demo 文件然后放到 Python 文件夹对应的文件夹中。

~/e-Paper/RaspberryPi\&JetsonNano/python/

Python 的使用方式就是使用 Image 模块分别引用或者生成两个黑色和黄色两个图层图片再分别刷新。


图片显示

树莓派 Zero W 使用微雪电子墨水屏

想要显示图片的时候注意的是,图片需要拆分黑色通道和黄色通道各一张单色图片,而且刷新时候的逻辑是黑色通道先刷新,黄色通道后刷新,而黄色通道会覆盖黑色通道,所以你需要再黄色通道图片上镂空黑色通道的图案。也就是我文件里的 epd_2in13bc_imgs.py

#!/usr/bin/python
# -*- coding:utf-8 -*-
import sys
import os
picdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'pic')
libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'lib')
if os.path.exists(libdir):
    sys.path.append(libdir)
import logging
from waveshare_epd import epd2in13bc
import time
from PIL import Image,ImageFont,ImageChops
import traceback
logging.basicConfig(level=logging.DEBUG)
try:
    logging.info("epd2in13_V2 Demo")
    epd = epd2in13bc.EPD()
    logging.info("init and Clear")
    # 初始化
    epd.init()
    # 清空屏幕
    epd.Clear()
    logging.info("1.Drawing on the image...")
    # 黑白图,先刷新
    HBlackimage = Image.open(os.path.join(picdir, 'gw_b.bmp'))
    # 黄色部分,后刷新,黄色会覆盖黑色
    HRYimage = Image.open(os.path.join(picdir, 'gw_y.bmp'))
    # 旋转180度,根据自己设备方向调整,90,180,270
    HBlackimage = HBlackimage.transpose(Image.ROTATE_180)
    HRYimage = HRYimage.transpose(Image.ROTATE_180)
    # def display(self, 黑白图像, 黄色图像)
    epd.display(epd.getbuffer(HBlackimage), epd.getbuffer(HRYimage))
    # 休眠
    time.sleep(2)
        
except IOError as e:
    logging.info(e)
    
except KeyboardInterrupt:    
    logging.info("ctrl + c:")
    epd2in13bc.epdconfig.module_exit()
    exit()

而且两个通道图片的模式必须一样的,例如:我给的 Demo 图片就是两张图片都是灰度模式的就是只有黑白灰的颜色,没有彩色。而一般图片都是 RGB 模式的。

还有就是通过 Image 生成图片的时候也要根据你背景图的色彩模式设置,要不然就会报错了!


信息显示

动态生成黑色文字的时候就需要用运算的方式在黄色通道上删除黑色通道部分的内容了。 我的压缩包中的 epd_2in13bc_demo.py

#!/usr/bin/python
# -*- coding:utf-8 -*-
import sys
import os
picdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'pic')
libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'lib')
if os.path.exists(libdir):
    sys.path.append(libdir)
import logging
from waveshare_epd import epd2in13bc
import time
from PIL import Image, ImageDraw, ImageFont, ImageChops
import traceback
# 获取时间
NowTime = time.strftime('%Y-%m-%d %H:%M:%S',  time.localtime(time.time()));
# 内网 IP
import socket
hostName = socket.gethostname()
def get_host_ip():
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        s.connect(('8.8.8.8', 80))
        ip = s.getsockname()[0]
    finally:
        s.close()
    return ip
# 外网 IP, sudo pip3 install requests
import json
import requests
wan_ip = requests.get('https://api.ipify.org/?format=json').json()['ip']
# 输出日志等级
logging.basicConfig(level=logging.DEBUG)
try:
    logging.info("1.read bmp file And Text")
    # 初始化
    epd = epd2in13bc.EPD()
    logging.info("init and Clear")
    epd.init()
    epd.Clear()
    # 载入字体,Zipx 这款字体 12/24/36/40 这几个字号能看,其他的都粗细不一
    # higher = ImageFont.truetype(os.path.join(picdir, 'higher_8.ttf'), 14)
    # zipx12 = ImageFont.truetype(os.path.join(picdir, 'zipx.ttf'), 12)
    # fz14 = ImageFont.truetype(os.path.join(picdir, 'FZXIANGSU14.otf'), 14)
    pxlxxlcond = ImageFont.truetype(os.path.join(picdir, 'pxlxxlcond.ttf'), 20)
    logging.info("1.Drawing on the image...")
    # 下层,黑白图,先刷新(白底黑字)
    HBlackimage = Image.new('1', (epd.height, epd.width), 255)  # 212*104 获取 epd 的尺寸
    drawblack = ImageDraw.Draw(HBlackimage)
    drawblack.text((12, 10), 'Host: '+hostName, font = pxlxxlcond)
    drawblack.text((12, 32), 'LAN: '+get_host_ip(), font = pxlxxlcond)
    drawblack.text((12, 54), 'WAN: '+wan_ip, font = pxlxxlcond)
    drawblack.text((12, 76), NowTime, font = pxlxxlcond)
    # 上层,黄色部分,后刷新,黄色会覆盖黑白色
    # 这个 bmp 图片必须是灰阶的,不能是 RGB 的!
    # 如果图片是 RGB 模式怎上面 Image.new('1' 改为 'RGB'
    HRYimage = Image.open(os.path.join(picdir, 'bg_boxks.bmp'))
    # 文字蒙版裁剪背景图,使用差值运算生成反色图像,然后 invert() 反色为想要的颜色。
    HRYimage = ImageChops.subtract_modulo(HBlackimage, HRYimage)
    HRYimage = ImageChops.invert(HRYimage)
    # 旋转180度,根据自己设备方向调整,90,180,270
    HBlackimage = HBlackimage.transpose(Image.ROTATE_180)
    HRYimage = HRYimage.transpose(Image.ROTATE_180)
    # 创建纯色图像,如果你想全屏幕显示黄色就用纯黑色图像代替 HRYimage
    # 如果只想显示黑白,不显示黄色就用纯白色图像代替 HRYimage
    # Whiteimage = Image.new('1', (epd.height, epd.width), 255)
    # Blackimage = Image.new('1', (epd.height, epd.width), 0)
    
    # def display(self, 黑白图像, 黄色图像)
    epd.display(epd.getbuffer(HBlackimage), epd.getbuffer(HRYimage))
    # 休眠
    time.sleep(2)
        
except IOError as e:
    logging.info(e)
    
except KeyboardInterrupt:    
    logging.info("ctrl + c:")
    epd2in13bc.epdconfig.module_exit()
    exit()

照着上面的代码修改基本就可以了,然后可以设置成开机启动,每次开机都会显示 IP 信息了。

后面我会在研究更实用的例子。


使用群晖唤醒局域网内其他设备

By: Kaiyuan
20 February 2020 at 00:18

之前我写了一篇用树莓派唤醒内网设备的文章,现在再写一篇通过群晖唤醒内网设备的。当然还是要你稍微了解 Linux 系统才可以。用的代码和之前文章的一样。

代码目录

首先在群晖套件中心安装 Web Station 和 Node.js v8(v12 的 npm 安装会提示 zlip 有问题的)。通常 Node.js 会在你安装某些应用时候就会装上的,如果没有装你需要先安装一下。

安装好之后打开 File Station 左边的列表应该就会出现一个 Web 文件夹,在文件夹里建一个 node 文件夹作为存放相关代码文件用,并且在 node 文件夹中再新建一个 logs 文件夹存放日志用。

群晖 Web Station 目录

然后修改一下之前树莓派文章的代码,主要是 pm2_config.json 文件改为绝对路径。一般 Web 文件夹绝对路径是 /volume1/web/,其中 volume1 是储存池的目录,如果你装了多个硬盘或者组阵列的话就需要你自己在终端查一下你 Web 文件夹的目录了。

{
    "apps" : [{
        "name"        : "nodewol",
        "script"      : "/volume1/web/node/index.js",
        "cwd"		 :	"/volume1/web/node/",
	"instances"  : "1",
	"log_date_format"  : "YYYY-MM-DD HH:mm Z",
	"log_file"   : "/volume1/web/node/log/wol.log",
	"error_file" : "/volume1/web/node/log/wol-err.log",
	"out_file"   : "/volume1/web/node/log/wol-out.log",
        "watch"      : true
    }]
}

群晖唤醒方式

群晖上不能安装 waleonlan,所以我们需要使用 nodejs 的 wol 包来实现唤醒设备。

/**
 * Post请求执行 shell 命令
 * 只要向这个地址提交 {"mac":"设备 MAC 地址"}
 * kaiyuan Hsie
 * https://boxks.com
 * */

//1. 导入express
var express = require('express');
// 解析器 需要安装 npm install -g body-parser
var bodyParser = require('body-parser');

// WOL 包 npm install wol
var wolfun = require('wol');

// 时间模块
var sd = require('silly-datetime');
var nowTime=sd.format(new Date(), 'YYYY-MM-DD HH:mm:ss');

// 创建 application/x-www-form-urlencoded 编码解析
var urlencodedParser = bodyParser.urlencoded({ extended: false });

// 创建服务器
var router = express.Router();

router.post("*", urlencodedParser, function (request, response) {
	//
	if (!request.body) {
		response.send("请提交设备 MAC 地址");
	} else {
		var thisMAC = request.body.mac;
		wolfun.wake(thisMAC, function(error, postText){
			if (error !== null) {
				console.log('-wol- exec error: ' + error+' '+nowTime);
				response.send('exec error: ' +error);
			} else {
				console.log("-wol- "+thisMAC+' '+postText+' '+nowTime);
				response.send('已经叫咗电脑开机!');
			}
		});
		  
	}
});

module.exports = router;

安装 PM2

开启群晖 SSH

在群晖控制面板的「终端机和 SNMP」中勾选「打开 SSH」然后应用。

接着打开你电脑上的终端,Windows 上按 Win+R 然后输入 CMD,或者在开始菜单按钮上右键,选择打开 CMD。

终端 SSH 连接

打开只会输入 ssh user@192.168.2.117 这样的命令,其中 192.168.2.117 替换为你群晖的 IP。通常在群晖页面右下角的系统状况可以看到。而 user 替换为你群晖的账号名。然后会提示你输入密码,这个时候你输入任何内容都不会显示出来的,你不用管,直接输入密码只会按 Enter 就好了。

如果你 nodejs 默认是 v12,则先输入 nvm set 8.9.4 切换回 v8 才能正常使用 npm!

然后安装 PM2

npm install pm2 -g

等待安装好只会会直接显示 pm2 的路径的,注意记下来,因为后面我们要用绝对路径来运行 pm2 的。这个路径一般都是在 Node.js 目录下面。

/volume1/@appstore/Node.js_v8/usr/local/bin/pm2
or
/volume1/@appstore/Node.js_v8/usr/local/lib/node_modules/pm2/bin/pm2

你可以测试一下运行上传的代码。

/volume1/@appstore/Node.js_v8/usr/local/bin/pm2 start /volume1/web/node/pm2_config.json

如果没有提示红色错误,直接显示表格运行状态的话就 OK 了。然后现在关掉这个测试。因为我们要用群晖的任务计划让他开机自动启动。

/volume1/@appstore/Node.js_v8/usr/local/bin/pm2 stop /volume1/web/node/pm2_config.json

设置开机启动

打开群晖的控制面板,选择任务计划,新增>触发的任务>用户定义的脚本。

设置群晖开启启动命令

任务名称随便你填写一个,用户账号选择 root。然后在任务设置页面「用户定义的脚本」上面测试的那段代码,然后按确定。

设置群晖开机启动命令

保存好只会记得勾选刚新建的项目前面的勾,然后右键>运行。这样就完成了。

设置反向代理

在控制面板中的「应用程序门户」里面的「反响代理服务」新增一项。

设置群晖反向代理

描述随便填,协议选择 Https,端口就是你想用来访问的端口,例如 10505(填5位数可以防止和常用端口冲突),勾选「启动 HTTP/2」,下面的「目的地」就是填 node.js 应用的信息,地址就是 127.0.0.1,端口就是应用的端口 5050。然后确定。

这样就可以把 mac 地址通过 post 发给 https://192.168.2.117:10505/wol 这个地址来唤醒局域网内的设备了。

至于 https 证书问题,如果你用群晖的 DDNS 就不需要额外操作,如果你是用自己的域名就需要用 acme 申请Let’s Encrypt证书了。

当然你要在外网访问还要在路由器上设置端口映射。我之前的文章有写,这这里就不重复了。


Terrace House: Aloha State(无剧透)

By: AUTUMN
2 February 2018 at 18:11


这个是Netflix原创剧集,日本本土的真人秀,主打特点就是无剧本,讲述3男3女6人在16年末所度过的36周生活。引用官方介绍:

在这部无剧本的真人秀系列中,全新登场的六位陌生人齐聚美丽的欧胡岛,住进同一个屋檐下,并产生了重重矛盾。

之前也是听别人安利的,就目前来讲,我推荐的这部是Terrace House系列的第二部,讲的是发生在夏威夷的故事。这部剧我好早之前(约一年前)就看过它的介绍了(这部剧当时是上了Netflix首页推荐的),当时看了几分钟觉得无聊就没看了,
到最近我才真正开始看,因为感觉特别有趣,所以花了2-3天的时间就看完了。

Terrace House 系列

第一部是:Terrace House: Boys & Girls in the City (Netflix官方介绍链接

幸运的是第三部(Terrace House: Opening New Doors)在今年1.30号也开播了,不过目前只在Netflix日区才播放,中文字幕怕也是没有的。

简单规则 & 介绍

一共六人(3男3女)入住这间公寓,入住期间你可以去任何你想去的地方,做你想做的嗯事情,比如我临时有事去日本也是没问题的,在入住期间也可以去上班什么的。当你在36周内想提前离开的话,节目组称之为毕业,你也可以提前离开,但是会有新人加入补齐3男3女6人的这个配置。一般都是会提前离开的,有的在这里办完了事就离开,有的为了谈一场轰轰烈烈的恋爱,一般都是带着目的来的。

每集35分钟左右,一集代表他们一周的生活。

Netflix 介绍页面(1MB)

看点 & 个人看法

最大的看点当然是无剧本,也就是观察他们六人的真实生活。但刚开始看的时候我就一直思考他们六人是如何做到在摄像机前面保持他们平常生活的状态,又或者说剧组有什么高超的偷拍技巧?不过只要是你接受了这种设定,看起来就很有意思了,慢慢看着你了解了每个人的个性,毕业时或许也会像里面的6人一样恋恋不舍呢。

有时候第一部的人也会来客串,或者这一部刚毕业的人还会回来看望之类的,也算是十分的温情。

一集35分钟左右,里面会插入几段吐槽,非常有趣。

对我自己来说,我个人对于人际交往关系不太了解,看完以后是颇多收获的,对于为人处世也算是小有收获。

还有一点要说的是,就是这部剧特别贴近生活,好像就像自己在里面一样,比如剧中他们去看电影,看的是《神奇动物在哪里》,都是离我们很近的东西,如果在刚开播的时候就看,就会有种仿佛自己身处其中的感觉。另外要说的是,你甚至可以在twitter上看到里面6人的后续动态之类的,基本每个人都有自己的twitter。

如果你真的要去看的话,我建议最好代入里面的角色,以他们的视角看问题。因为是日语,不是中文,对于我的话我有时候会很难理解里面有的人的所做所为,但是只要你试着将日语转换为自己的语言并且站在他们角度再去看的话,或许就会容易理解多一点了。

我去哪里看

目前第一第二部在Netflix可以观看,常理只要Netflix支持的区都有。

第三部在Netflix日区可看,还在放送中,目前只放了第一PART。

另外没有Netflix的朋友可以去B站@人力字幕zu观看,里面有第二部和第三部以及第二部幕后的采访。

最后,看完这部剧对特林德爾·玲奈立马转粉咯!

补充:这里的第一部指的是从Netflix原创剧集开始的

❌
❌