6pen Art 是一个使用 AI 技术,利用文本生成绘画作品的产品,仅仅通过文字描述画面内容、风格就可以得到画面(最高支持4K分辨率),这些作品可能风格迥异,出人意料,6pen Art 支持微信小程序、网页、手机 APP 等平台,作品版权完全归作者,在官方画廊中可查看6pen Art 用户最新投稿展出的画作

太阳当空照,花儿对我笑

6pen Art 只需要输入画面描述就能作画,中英文都支持,可以是古诗词也可以是歌词,例如“太阳当空照,花儿对我笑”。

6pen Art 儿童画

啊,这乱画的啥?请注意左上角,这是一副“儿童画”,这不就是小时候刚学画画的你吗。

6pen Art 有十几种画面类型可供选择,CG渲染、布面油画、儿童画、赛博朋克、素描等等,画面类型决定最终生成出来的画面是什么材质和风格。

- 阅读剩余部分 -

秉着将白嫖进行到底的宗旨,决定不再续费 VPS,博客从转移到 Github,使用 Hexo。

第一步:将 Typecho 文章转为 Hexo 文章格式

Hexo 的文章在网站\source\_posts\目录下,Markdown 格式,内容包含了文章标题、发布时间、更新时间、分类、标签、固定连接、文章内容等信息,所以流程就是从 Typecho 数据库中查询出这些数据,拼接成 Hexo 文章的格式,写入.md文件。

查询文章 SQL:

select title,slug,text,created,modified,category,tags from typecho_contents c,(select cid,group_concat(m.name) tags from typecho_metas m,typecho_relationships r where m.mid=r.mid and m.type='tag' group by cid ) t1,(select cid,m.name category from typecho_metas m,typecho_relationships r where m.mid=r.mid and m.type='category') t2 where t1.cid=t2.cid and c.cid=t1.cid

结果入下:
Typecho 数据库

- 阅读剩余部分 -

PowerShell 中使用Copy-Item将一个项目从一个位置复制到另一个位置,可以是复制单个文件、也可以复制文件夹。

复制文件和文件夹

最简单的复制一个文件到另一个文件夹内,如果目标文件夹不存在会自动创建。

Copy-Item "E:\PowerShell\form\1.txt" -Destination "E:\PowerShell\to\"

如果-Destination参数是文件名,就会重命名文件。

Copy-Item "E:\PowerShell\form\1.txt" -Destination "E:\PowerShell\to\2.txt"

使用通配符可以复制文件夹内所有文件到另一个文件内,加上-Recurse就能复制所有的文件和子文件夹的内容。

Copy-Item "E:\PowerShell\form\*" -Destination "E:\PowerShell\to\" -Recurse

- 阅读剩余部分 -

为了第一时间收到服务器的状态信息,例如故障信息,Zabbix 提供了很多报警方式,自动发送邮件、短信,自定义脚本等等。
当服务器触发了某些事件,这些事件满足一定条件时,Zabbix 会通过“报警媒介”通知“用户”,例如某个服务器的 Zabbix Agent 服务无法连接,就通过发送邮件通知 Admin 用户。

第一步,设置报警媒介(配置邮箱账号)

在“管理-报警媒介类型”页面选择 Email,设置好发件服务器、邮箱账号、密码等信息,以后所有报警邮件将都通过这个邮箱发出。
zabbix-email.png

- 阅读剩余部分 -

Debian 10 安装 Zabbix 5.4文中介绍了如何安装 Zabbix,本文将详细介绍 Zabbix 的功能、使用、常见问题。

Zabbix 是什么

根据官方文档介绍,Zabbix 是一种企业级的分布式开源监控解决方案,Zabbix 是一款能够监控众多网络参数和服务器的健康度和完整性的软件……说人话,通过 zabbix 可以搭建一个监控平台,查看各个被监控设备的各种状态,例如网络流量,网络延迟,CPU 使用情况,内存使用情况,等等等等。

Zabbix 主要包括三个部分,服务端(Zabbix Server),客户端(Zabbix Agent),网站。客户端安装在要监控的设备上,收集数据发送给服务端,服务端经过处理将数据存储到数据库,最终用户通过网站来管理查看这些数据。

Zabbix 添加主机

在“配置-主机”页面可以添加主机,设置主机名称、群组,interfaces 接口是设置通过什么方式来收集被监控主机的数据,这里选择客户端,也就是 Zabbix Agent,填好被监控主机的 IP,端口默认为 10050。
zabbix-host.png

- 阅读剩余部分 -

本文以腾讯云轻量服务器 Debian 10 为例,采用 Zabbix 5.4+MySQL+Nginx 的组合。

安装和配置 Zabbix Server

第一步,下载和安装 Zabbix 软件包

wget https://repo.zabbix.com/zabbix/5.4/debian/pool/main/z/zabbix-release/zabbix-release_5.4-1+debian10_all.deb
dpkg -i zabbix-release_5.4-1+debian10_all.deb
apt update

第二步,安装 Zabbix server,frontend,agent

apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent

安装和配置 Zabbix 的数据库

第一步,下载和安装 MySQL 5.7

wget http://repo.mysql.com/mysql-apt-config_0.8.13-1_all.deb
dpkg -i mysql-apt-config_0.8.13-1_all.deb

如果提示gnupg is not installed则需要安装 gnupg:apt install gnupg

- 阅读剩余部分 -

Google App Script 中的 SpreadsheetApp 服务可以读取、创建、修改 Google Sheet。
例如下方代码,SpreadsheetApp.getActiveSpreadsheet()方法得到当前表格文件对象(Spreadsheet),currentSpreadsheet.getActiveSheet()方法得到当前工作表对象(Sheet),currentSheet.getCurrentCell()得到当前活动单元格对象(Range),再通过单元格对象的getValue方法获取到活动单元格的值。

function logCurrent() {
  let currentSpreadsheet = SpreadsheetApp.getActiveSpreadsheet()
  let currentSheet = currentSpreadsheet.getActiveSheet();
  let currentRange = currentSheet.getCurrentCell();
  console.log(currentRange.getValue());
}

由小到大,可以把 Google Sheet 分为 Range、RangeList、Sheet、Spreadsheet。

Range

Range 是 Google Sheet 里的最小元素,表示单元格的区域,可以是一个单元格或者是一组单元格
当是一个单元格时可以用getValue()方法获取单元格显示的值,返回字符串;当是一组单元格则需要用getValues()来获取值,返回一个二维数组,第一层为行,第二层为列。

如下图,data最终的值为[[1,2],[3,4]]
spreadsheetapp1.JPG

function logData() {
  let sheet = SpreadsheetApp.getActiveSheet();
  let range = sheet.getDataRange()
  let data = range.getValues();
  console.log(data);
}

- 阅读剩余部分 -

[Google App Script][1] 里的函数可以在 Google Sheet 的公式里直接调用,例如可以自定义一个DOUBLE函数,当输入公式=DOUBLE(A1)将 A1 的值乘以二倍后返回,通过自定义函数可以实现默认函数不支持的功能。
![custom-function.jpg][2]

function DOUBLE(input) {
  return input * 2;
}

在公式里使用自定义函数时,系统先会自动处理传入的值然后再作为参数传入。例如=DOUBLE(A1:B1),最终input的值会是一个二维数组[[1,2]],所以需要在函数里添加处理数组的方法。

- 阅读剩余部分 -

第一步:编写连接 VPN 的脚本

通过rasdial命令可以连接 VPN,系统中需要提前添加名为CD的 VPN,用户名aaa,密码bbb,可以将连接的结果和当前时间存入vpn.log文件供后续查看。

# vpn-conn.ps1
$ras = rasdial CD aaa bbb
$current_time = Get-Date -Format 'yyyy-MM-dd HH:mm:ss'
$current_time , $ras >>  D:\script\vpn.log

第二步:编写 PowerShell 计划任务脚本

Register-ScheduledJob创建计划任务,Get-ScheduledJob获取计划任务,New-JobTrigger定义触发器,Add-JobTrigger给计划任务添加触发器。

$jobName = 'vpn-conn'
$filePath = 'D:\script\vpn-conn.ps1'
#创建任务
Register-ScheduledJob -Name $jobName -FilePath $filePath
#获取任务
$job =  Get-ScheduledJob -Name $jobName
#定义触发器
$jobTrigger = New-JobTrigger -Once -At (Get-Date).AddMinutes(1) -RepetitionInterval (New-TimeSpan -Minutes 10 ) -RepeatIndefinitely
#添加触发器
$job | Add-JobTrigger -Trigger $jobTrigger

以上命令执行完成后,在系统的计划任务里可以看到已成功添加,另外可以直接用Disable-ScheduledJobUnregister-ScheduledJob来禁用任务和删除任务。

# 禁用任务
Disable-ScheduledJob  -Name vpn-conn 
# 删除任务
Unregister-ScheduledJob -Name vpn-conn

Flex 容器内的子元素叫做容器的项目(item),通过设置 Flex 容器的 CSS 可以统一设置项目的排列顺序和对齐方式,通过项目的 CSS 则可以控制单个项目的缩放、排列顺序、对齐方式等。

order

order,设置 item 的排列优先级,默认为0,数字小越先排列,可为负。
如下图,a 方块order:1,所以排到了最后。
item-order.png

- 阅读剩余部分 -