2022年4月

去年以 290 万美元成交的首条推文 NFT,现在几乎一文不值

据消息,2021 年 3 月 Twitter 创始人以 NFT 形式将他发布的第一条推文出售,最终以 1630 ETH 拍卖出售,相当于 290 万美元。4 月 6 日,新的拥有者以 14969 ETH,相当于 4800 万美元再次放出拍卖,但只有 7 位竞标者参与了拍卖,最高出价 0.09 ETH,相当于 277 美元。

老王点评:这可以给那些炒作图片的人泼一盆冷水了吧。

印度开发者创造了只搜索半条面包的搜索引擎

据消息,开发这个搜索引擎的开发者认为,一整条面包太多了,“我不想在 3 天内吃 20 片面包。要找到半条面包不应该这么难。”该服务只适用于印度的一些城市,因为它依赖于 Dunzo,这是印度的一个类似 Door-Dash 的服务。

老王点评:我觉得,可以更细分一些,搜索一片面包,毕竟粮食不易。

有 HR、绩效考核的勒索软件组织两年“狂赚” 27 亿美元

据消息,勒索组织 Conti 出现于 2020 年,大约有 350 名成员,他们在短短两年内共“赚取”了约 27 亿美元(约合 172 亿元)的加密货币。Conti 被美国联邦调查局列为了最猖獗的勒索软件组织之一,现在一系列内部文件的泄露让外界了解了其运作机制。Conti 的运营和组织方式就像是一家普通科技公司,具备明确的管理、财务和人力资源职能,以及层级汇报机制,并且还有专门的研发和业务开发部门。其月度最佳员工可以获得相当于一半工资的奖金,而对表现不佳的员工进行罚款。不过,并非所有员工都充分意识到自己是网络犯罪集团的一员。

老王点评:这真是勒索“正规军”了,估计没几个企业能扛得住这种贼盯。

GNOME 42 的主要 功能 之一就是提供了深色和浅色模式的双主题壁纸。

GNOME 42 中的深色和浅色壁纸

基本上,有了这个功能,当你切换到浅色模式时,系统就会使用浅色版本的壁纸。而当你 在 GNOME 中切换到深色模式时,壁纸就会切换成深色的版本。

下面是一个双主题壁纸的例子,你可以比较一下:

GNOME 中的深色和浅色双主题壁纸:浅色

GNOME 中的深色和浅色双主题壁纸:深色

这种双主题壁纸可在“ 设置 Settings > 外观 Appearance ”的“ 背景 Background ”部分中启用。

然而,在某些情况下,设置中可能没有双主题壁纸,你可能会看到一个空的“背景”部分,像下面这样:

没有双主题壁纸

这是我的同事 Sreenath 在更新他的 Endeavour OS 系统、得到新的 GNOME 42 桌面时注意到的情况。

在 GNOME 42 中启用深色和浅色双主题壁纸

如果你也在 GNOME 42 中面临同样的情况,我这里有一个快速而简单的解决方案。你只需要使用软件包管理器,安装 gnome-backgrounds 软件包,问题就会得到解决。

首先,请 检查桌面环境细节,确保你正在运行 GNOME 42。你可以在系统设置的“ 关于 About ”部分查看你的桌面版本。

当你确定你的系统安装了 GNOME 42,请继续执行剩下的步骤。

对于 基于 Arch 的发行版,请使用 pacman 命令,如下:

sudo pacman -S gnome-backgrounds

等待命令执行完毕。

你不需要重新启动,甚至不需要注销。改动将立即生效。

你只需进入“ 设置 Settings > 外观 Appearance ”,然后选择“ 背景 Background ”部分,应该就会看到各种具有双重模式的壁纸。

选择其中的一对,它就会根据你的系统主题来设置图像。

GNOME 中的深色和浅色壁纸

太好了。但你只能得到 GNOME 团队或者发行版的开发者提供的少数双主题壁纸。如果你想拥有一套自己的深色和浅色模式的壁纸呢?那么,你可以自己制作壁纸,只是需要一点调整和耐心。

制作你自己的双主题壁纸(针对高级用户)

我假设你知道自己在干什么,你可以搜索下面的步骤,以在深色和浅色双主题壁纸中添加额外的壁纸时:

  • 下载两张图片
  • 把浅色壁纸重命名为 image-l.jpg,把深色壁纸重命名为 image-d.jpg
  • 如果你想让新壁纸对所有用户可用,请在 /usr/share 目录下新建一个 gnome-background-properties 目录。否则,如果你只想自己使用,请在 .local/share 中新建这个目录
  • 将这段 GNOME 官方 GitLab 仓库中的代码 拷贝到文本编辑器中,并在 <filename> 标签中分别修改相应的浅色或深色图片的位置
  • 将其保存在你之前创建的 gnome-background-properties 目录下
  • 现在可以在系统设置里修改背景壁纸了

需要更多帮助吗?WOGUE 有一个很好的视频,里面展示了这些步骤的操作。

我希望你喜欢这个快速小技巧。祝你体验愉快!


via: https://itsfoss.com/dark-light-wallpaper-gnome/

作者:Abhishek Prakash 选题:lujun9972 译者:lkxed 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

一份简单的指南:如何针对 GNOME 桌面环境来创建你的自定义的深色和浅色壁纸。

GNOME 42 将备受期待的深浅主题带到 GNOME 桌面环境。它也带来壁纸的深色和浅色版本,当你切换深色或浅色主题时,它会自动地转换。

因此,默认情况下,GNOME 给予你一套预配置的深色和浅色壁纸。但是如果你想要在主题更改时自动地转换成另一种不同的壁纸要怎么做呢?

下面是如何在 GNOME 中配置和创建你自己的深浅壁纸的方法。

如何针对 GNOME 桌面环境来创建自定义的深浅壁纸

第一,确保你手边有两个版本的壁纸。一般来说,它们应该是标准的 PNG 或 JPG 图像文件。例如,我们针对这个示例使用下面的两张壁纸。

Sample light and dark wallpaper for demo

但是,如果你没有合适的深浅壁纸,或者正在查找更多的壁纸,在这篇指南的结尾,我将让你知道如何获取它们,或者如何自己准备它们。请跟着我阅读。

第二,我们需要为我们自己创建一个模式文件。壁纸的自动更换是由一个名为 adwaita.xml 的 XML 文件处理的,它定义了特定的深色和浅色的背景标记。因此,我们将为壁纸创建我们自己的 XML 文件。

为做到这一点,从 GitLab 复制 adwaita.xml 的内容,并创建一个新的 XML 文件。你能够会在这个文件中看到两个标记 – filenamefilename-dark。这两个 XML 标记包含这两个壁纸的完整的限定的路径。现在,在这两个标记下添加你的图像文件的路径,如我下图所示。。

Change the XML file

第三,把这个文件保存到 /home/<your_name>/.local/share/gnome-background-properties,(请将 <your_name> 替换为你的用户名)文件名任意。如果这里没有 gnome-background-properties 目录,就创建它。针对这个示例,我使用 my_cool_backgrounds.xml 文件名。

Save the file

这样,你就准备好了所有的东西。最后,打开 “ 设置 Settings ” 并转到 “ 外观 Appearance ” 标签页,你应该会看到一个新的壁纸选项。

选择你自己的自定义的深浅壁纸,尽情享受。

Appearance tab has now your own custom light and dark wallpaper

如何下载或制作你自己的动态壁纸

当然,你必然会想,谁有时间去查找和创建壁纸的日夜版本?这里有一些网站来向你提供预制好的动态壁纸,你可以轻松地下载和安装。

我推荐的一个网站是 dynamicwallpaper.club ,它有一些高达 6K 的极好的高质量的壁纸,可用于 macOS。你可以轻松地下载它们。

此外,如果你打算从上述网站下载,请记住该网站的图像文件是 heic 格式的,因为这个网站是针对 macOS 的。 高效视频编码 High-Efficiency Video Coding (HEIC)是苹果的专有的 HEIF( 高效图像文件 High-Efficiency Image File )专有版本。

那么,如何在 Linux 系统中转换它们? 好吧,在 Ubuntu 或 Fedora Linux 中,你需要一个驱动程序来查看和转换动态的 heic 图像文件。打开一个终端,运行下面的命令开安装驱动程序。

Ubuntu 用户 –

sudo apt install heif-gdk-pixbuf

Fedora 用户 –

sudo dnf install libheif

只针对使用 KDE Plasma 的 Fedora/Ubuntu 用户(没有这个插件的帮助,Plasma 应用程序就不能打开 heic 格式的图像文件):

sudo apt install qt-heif-image-plugin
sudo dnf install qt-heif-image-plugin

最后,使用你喜欢的图像查看器打开 heic 图像文件,并将其保存为 JPG/PNG 图像文件。

最好,不要忘记在下面的评论区告诉我,你是否能够针对 GNOME 桌面环境来创建你自己的自定义的深浅壁纸了。

Custom Light and Dark wallpaper in GNOME – transition

感谢阅读。


via: https://www.debugpoint.com/2022/04/custom-light-dark-wallpaper-gnome/

作者:Arindam 选题:lujun9972 译者:robsean 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Gitbase 是一个由 Go 驱动的开源项目,它使得我们可以在 Git 仓库上运行 SQL 查询。

Git 已经成为了代码版本控制的事实标准。虽然 Git 已经很流行了,但想用它来对源代码仓库的历史和内容进行深度分析,仍然是一件复杂的事情。

另一方面,SQL 则是一个经过实际检验、适合查询大型代码库的的语言,毕竟 Spark 和 BigQuery 等项目都采用了 SQL 作为查询语言。

因此,在 source{d} 公司,我们顺理成章地结合了这两种技术来创建了 Gitbase:这是一个用 SQL 对 Git 仓库进行大规模分析的“代码即数据”解决方案。

Gitbase 是一个完全开源的项目,它站在一系列巨人的肩膀上,是它们使 Gitbase 的发展成为可能。本文旨在指出其中的主要部分。

Gitbase 试验场 提供了一种使用 Gitbase 的可视化方式。

使用 Vitess 解析 SQL

Gitbase 将 SQL 作为用户接口。这意味着我们需要解析基于 MySQL 协议传输的 SQL 请求,并理解它们。幸运的是,我们在 YouTube 的朋友和他们的 Vitess 项目已经实现了这一点。Vitess 是一个数据库集群系统,用于 MySQL 的水平扩展。

我们直接截取一些重要的代码片段,并把它做成了一个 开源项目。这个项目允许任何人在几分钟内编写一个 MySQL 服务器(正如我在 justforfunc 的专题:CSVQL - 用 SQL 处理 CSV 中所展示的那样)。

用 go-git 读取 Git 储存库

当成功解析了一个请求,我们还需要读取数据集里的 Git 仓库,才能够知道该如何回复它。为此,我们集成了 source{d} 最成功的仓库 go-git。go-git 是一个高度可扩展的纯 Go 语言的 Git 实现。

这使得我们能够轻松地分析以 siva 文件格式存储在磁盘上的源代码仓库(siva 也是一个 source{d} 的开源项目),或是直接使用 git clone 克隆的仓库。

使用 Enry 检测编程语言,使用 Babelfish 解析文件

Gitbase 并没有将其分析能力局限于 Git 历史记录上。它还使用(显然也是)我们的开源项目 Enry 集成了语言检测功能,并使用 Babelfish 实现了程序解析的功能。Babelfish 是一个用于通用源代码解析的自托管服务器,它可以将代码文件转化为 通用抽象语法树 Universal Abstract Syntax Trees (UAST)。

这两个功能在 Gitbase 中呈现为用户函数 LANGUAGEUAST。结合使用两个函数,许多查询请求都成为了可能,比如“找到上个月修改次数最多的函数名称”。

让它快速运行

Gitbase 经常要分析非常大的数据集,比如公共 Git 档案,其中有来自 GitHub 的 3TB 源代码(见 公告)。为了做到这一点,每份 CPU 处理能力都很重要。

这就是为什么我们又集成了另外两个项目:Rubex 和 Pilosa。

使用 Rubex 和 Oniguruma 加快正则表达式的速度

Rubex 是 Go 的 regexp 标准库包的一个准替代品。之所以还不能完成替代,是因为他们没有在 regexp.Regexp 类型上实现 LiteralPrefix 方法,不过我也是直到现在才听说这个方法。

Rubex 的高性能得归功于高度优化的 C 语言库 Oniguruma,它使用 cgo 来调用这个库。

使用 Pilosa 索引加快查询速度

索引基本上是每个关系型数据库的众所周知的特性,但 Vitess 却没有实现索引,因为它不是真正需要。

还好开源的 Pilosa 再一次拯救了我们,它是一个用 Go 实现的分布式位图索引,使得 Gitbase 可以用于大规模的数据集。Pilosa 是开源的,它极大地加快了对多个海量数据集的查询。

总结

我想通过这篇博文,亲自感谢开源社区,是他们让我们在如此短的时间内创建了 Gitbase,这是谁也没想到的。在 source{d} 公司,我们是开源的坚定信仰者,github.com/src-d 下的每一行代码(包括我们的 OKR 和投资者委员会)都可以证明这一点。

你想尝试一下 Gitbase 吗?最快、最简单的方法就是使用 source{d} 引擎。从 sourced.tech/engine 下载它,只需一个命令就能让 Gitbase 运行起来。

想了解更多吗?请查看我在 Go SF meetup 的演讲录音。

这篇文章 最初发表在 Medium 上,经授权后在此重新发布。


via: https://opensource.com/article/18/11/gitbase

作者:Francesc Campoy 选题:lkxed 译者:lkxed 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

SUSE 正在开发“可适应的 Linux 平台”

据消息,SUSE Linux Enterprise(SLE)15 已经发布了四年了。SUSE 正在开发“可适应的 Linux 平台”(ALP)作为他们的下一代企业级 SUSE 操作系统,在技术和设计上将会有“彻底的改变”。SUSE 称,ALP 将在开放的环境下开发,不会像过去那样,在内部拼凑碎片,然后分享到外部。此外,ALP 将分成两部分:一个较小的硬件使能部分,即一种“宿主机操作系统”;和一个基于容器(和虚拟机)的提供和支持应用程序的层。

老王点评:这个变化值得关注,似乎是一个不错的设计

检查 SSL 证书的免费服务 SSLPing 宣布关闭

据消息,提供检查 SSL 证书和已知漏洞的 SSLPing 服务宣布,无法维持下去了,立即终止服务。其原因是各种积累的技术债,多台服务器存在故障或潜在故障,软件系统存在解决不了的问题。此外,通过用户的捐赠订阅只能提供 1/4 的服务器托管费用。该服务发布于 2016 年 3 月,有 500 多个注册用户,监控着 12500 多个 TLS 服务器。它是轻量级的,而且是无广告的。

老王点评:你所使用的免费服务,其实只是有人替你买单,而一旦无力支持它就会消亡。

AI 驱动的浏览器扩展可以帮你自动关掉 Cookie 弹窗

据消息,当面对欧洲法律和其他立法要求的 Cookie 弹窗时,许多用户只是简单地点击“接受所有”,尽管不必要的 Cookie 可能会损害隐私。而一些网站专门把它们设计得很棘手,使拒绝 Cookie 比接受更难。据统计,用户平均需要点击 12 次才能禁用非必要的 Cookie。研究人员开发了一个名为 CookieEnforcer 的浏览器扩展,采用了一个机器学习模型,可检测弹窗位置、预测拒绝按钮、并替代用户点击拒绝。这都是在后台完成的,完全不影响用户。不过该扩展目前还没有公开提供。

老王点评:这真是魔高一尺道高一丈,对抗都需要用 AI 了。

首先,什么是 Seafile ?

Seafile 是一个自托管文件同步程序,采用客户端/服务器模式,即你有笔记本、手机等多个设备,能够连接到一个中心服务器。

不像类似 Nextcloud 或 ownCloud 这些更流行的替代品一样,Seafile 试图遵循 “只做一件事,但是要做好” 的理念。同样,Seafile 没有内置额外的类似联系人或者日历聚合的功能。

相反,Seafile 只专注于文件同步、共享及与之相关的事情,仅此而已。但正因为如此,它最终做的非常好。

使用 Docker 和 NGINX 部署 Seafile 服务器

高级教程

我们的许多教程都是针对初学者的。这篇则不然,它是为那些经常鼓捣 DIY 项目和喜欢自托管的高级用户设计的。这个教程假定你可以熟练的使用命令行,而且你至少对我们将要使用的程序有一定的了解。

虽然整个过程完全可以不使用 NGINX ,但是使用 NGINX 更加容易配置,而且在将来更加容易的自托管更多的服务。

如果你想完全使用 Docker 环境,你也可以 在 Docker 内部设置 NGINX ,但是它这会使事情变得更加复杂,并且不能够带来太多好处。同样,在本教程里也不会涉及这些。

安装设置 NGINX

在这个教程中,我会使用 Ubuntu,因此会使用 apt 来安装软件包。如果你使用 Fedora 或者一些其他非 Debian 发行版,请使用你的发行版的 包管理器

NGINX 既是一个网页浏览器,又是一个代理服务器。它将起到 Seafile 服务器和互联网之间网络连接的作用,同时也使一些任务更容易处理。

要安装 NGINX ,使用以下命令:

sudo apt install nginx

如果你想使用 HTTPS(也就是浏览器中的小挂锁),你需要安装 Certbot

sudo apt install certbot python3-certbot-nginx

下一步,你需要设置 NGINX 来连接我们之后将要设置的 Seafile 实例。

首先,运行以下命令:

sudo nano /etc/nginx/sites-available/seafile.conf

键入下方的文本到文件中:

server {
  server_name localhost;
  location / {
    proxy_pass http://localhost:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
  }
}

重要: 将 server_name 一行的 localhost 替换为你要访问你的服务器的地址(比如 seafile.example.com 或者 192.168.0.0)。不确定要输入什么吗?

  • 如果你只是为了测试,使用 localhost 。这个设置将 只允许你从你的电脑访问服务器 ,仅此而已。
  • 如果你想通过你的本地 Wi-Fi 连接使用 Seafile(与你在同一 Wi-Fi 网络上),你应该键入 你的计算机 IP 地址。你也可以考虑 设置一个静态 IP 地址,尽管这不是必须的。
  • 如果你有一个公网 IP 地址,你知道它指向你的系统,就使用它。
  • 如果你有一个域名(比如 example.comexample.org)和公网 IP 地址,更改你的 DNS 设置,将域名指向你的系统的 IP 地址。这也需要将公网 IP 指向你的系统。

现在你需要复制配置文件到 NGINX 的查找目录中,然后重启 NGINX :

sudo ln -s /etc/nginx/sites-available/seafile.conf /etc/nginx/sites-enabled/seafile.conf
sudo systemctl restart nginx

如果你要安装 Cerbot,你也需要运行以下命令来设置 HTTPS :

sudo certbot

如果要重定向 HTTP 流量 到 HTTPS ,选择 2

现在可以来确认我们目前设置的一切都是否正常工作。如果你访问你的站点,你应该看到一个屏幕上写着 502 Bad Gateway 字样。

安装 Docker 和 Docker Compose

现在要进入有趣的部分了!

首先,你需要安装 DockerDocker Compose 。Docker Compose 需要利用 docker-compose.yml 文件,这将使管理多个 Docker 容器 的 Seafile 需求变得更加容易。

Docker 和 Docker Compose 可以用以下的命令来安装:

sudo apt install docker.io docker-compose

检查 Docker 是否安装并运行,运行以下命令:

sudo docker run --rm hello-world

如果你完全安装成功,你应该在终端能看到这几行文字:

如果你想避免在 docker 命令的开始添加 sudo 的话,你可以运行以下的命令将你自己添加到 docker 组:

sudo groupadd docker
sudo usermod -aG docker $USER

这个教程的其余部分假定你已经运行了以上两个命令。如果你没有运行,在所有 dockerdocker-compose 的命令都添加 sudo

安装 Seafile 服务器

这部分比之前部分明显容易的多。你所需要做的是输入一些文本到文件,然后运行一些命令。

打开一个终端,然后创建一个 Seafile 服务器用来储存内容的目录,并进入目录中:

mkdir ~/seafile-server && cd ~/seafile-server

转到你创建的目录然后运行以下命令:

nano docker-compose.yml

下一步,在弹出的窗口中键入以下文本内容:

version: '2.0'
services:
  db:
    image: mariadb
    container_name: seafile-mysql
    environment:
      - MYSQL_ROOT_PASSWORD=password
      - MYSQL_LOG_CONSOLE=true
    volumes:
      - ./data/mariadb:/var/lib/mysql
    networks:
      - seafile-net

  memcached:
    image: memcached
    container_name: seafile-memcached
    entrypoint: memcached -m 256
    networks:
      - seafile-net
          
  seafile:
    image: seafileltd/seafile-mc
    container_name: seafile
    ports:
      - "8080:80"
    volumes:
      - ./data/app:/shared
    environment:
      - DB_HOST=db
      - DB_ROOT_PASSWD=password
      - TIME_ZONE=Etc/UTC
      - [email protected]
      - SEAFILE_ADMIN_PASSWORD=password
      - SEAFILE_SERVER_LETSENCRYPT=false
      - SEAFILE_SERVER_HOSTNAME=docs.seafile.com
    depends_on:
      - db
      - memcached
    networks:
      - seafile-net

networks:
  seafile-net:

在保存文件之前,一些参数需要更改:

  • MYSQL_ROOT_PASSWORD:更换强壮的密码,你不必记住它,所以不要尝试挑选简单的密码。如果你需要帮助生成一个,请使用 密码生成器 。我建议使用 20 位字符长度并且避免使用任何的特殊字符(!@#$%^&* 等符号)。
  • DB_ROOT_PASSWD:更改你为 MYSQL_ROOT_PASSWORD 设置的值 。
  • SEAFILE_ADMIN_EMAIL:设置管理员帐户的电子邮件地址。
  • SEAFILE_ADMIN_PASSWORD:设置管理员帐户密码。避免与MYSQL_ROOT_PASSWORD 或者 DB_ROOT_PASSWD 密码相同。
  • SEAFILE_SERVER_HOSTNAME:在 NGINX 配置中设置 Seafile 的服务器主机名。

完成之后,你可以运行 docker-compose 整个运行起来:

docker-compose up -d

可能需要花一到两分钟,取决于你的网速,因为需要拉下几个 Seafile 需要运行的几个容器。

完成以后,还需要几分钟来完成。你也可以通过以下命令来检查运行状态:

docker logs seafile

当完成了,你将会看到如下输出:

下一步,你只需要在你的浏览器里键入你设置的 SEAFILE_SERVER_HOSTNAME 的地址,然后你应该看到登录屏幕的页面。

就这样!现在一切功能齐全,准备用客户端来使用。

安装 Seafile 客户端

Seafile 移动客户端在 Google PlayF-Droid苹果商店 都是可用的。Seafile 也有 Linux、Windows 和 Mac 桌面客户端可用,可在 此处 找到。

通过 seafile-gui 软件包,可以在 Ubuntu 系统轻松获得 Seafile :

sudo apt install seafile-gui

通过 seafile-client 软件包 Seafile 也包含在 Arch 用户的 AUR 包管理器中。

结语

请尽情探索客户端及其所能提供的一切。我将在未来的一篇文章中详细阐述 Seafile 客户端的所有功能。(敬请期待 ?)

总的来说,如果有什么错误,或者你有什么问题,请在下方评论 – 我会尽我所能回应。


via: https://itsfoss.com/deploy-seafile-server-docker/

作者:Hunter Wittenborn 选题:lujun9972 译者:hwlife 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出