如何在CentOS 7上安装Oxwall
Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,
TaskWarrior是一个开源时间管理工具,它是对Todo.txt应用程序及其克隆的改进。由于普通人在他们的日常计划中使用多个设备/平台,因此拥有一个集中式存储库的能力至关重要,该存储库可以从任何设备访问和更新数据。本教程将着重于设置服务器(称为TaskServer(任务))和客户端(称为TaskWarrior(任务)),以允许多个客户端设备安全地访问和交换数据。
它具有以下功能:
以您的sudo用户身份登录以安装EPEL存储库并按如下所示更新系统:
sudo yum install epel-release -y
sudo yum clean all && sudo yum update -y
EPEL存储库不包含TaskServer(任务)的RPM,因此我们必须将其从源代码构建到RPM包中。
安装GCC,Make,RPM构建,开发和签名工具。
sudo yum install gcc gcc-c++ make rpmdevtools rpm-sign rpm-build -y
创建一个GnuPG目录,其中将包含签署我们的RPM所需的GPG文件。
mkdir .gnupg
创建密钥时,我们需要系统中的熵来适当地随机化它。该rngd
守护程序可生成从熵必要/dev/urandom
。因此,现在就安装它。
yum install rngd -y
启动rngd
守护程序以生成熵。该-r选项指向/dev/urandom
,而不是默认/dev/hwrng
。
sudo rngd -r /dev/urandom
生成密钥。该--gen键选项告诉GPG生成一个新的密钥对。
gpg --gen-key
对于“ 请选择所需的密钥类型: ”选项,通过输入1并按Return / Enter键,为密钥类型选择“ (1)RSA和RSA(默认) ” 。
对于“ 您想要什么键大小?(2048) ”选项,请按Return / Enter键选择默认值。
对于“ 请指定密钥应有效的时间。 ”选项,请按Return / Enter键选择默认值。
对于“ 这是正确的吗?(y / N) ”选项,输入y并按Return / Enter键。
在“ 真实姓名: ”下,输入您选择的名称,然后按Return / Enter键。
在“ 电子邮件地址: ”下,输入您选择的电子邮件地址,然后按Return / Enter键。
如果您选择的话,“ 注释:”部分可以留为空白。
如果您输入的信息不正确,请进行必要的更改。如果您对显示的USER-ID信息感到满意,请输入O(大写字母O,而不是零),然后按Return / Enter键。
GnuPG现在将提示您创建并验证密钥对的密码。
输入密码后,将.gnupg
在用户目录下的目录下创建GnuPG密钥对。
运行此命令以显示.gnupg
目录的内容。它应该包含以下目录private-keys-v1.d
和文件pubring.gpg
,pubring.gpg~
,random_seed
,secring.gpg
,S.gpg-agent
,trustdb.gpg
。
ls -la .gnupg
导出创建的密钥对。该--export指示的GnuPG选项可导出密钥对。该-a选项指示GnuPG来输出密钥对ASCII保护格式。将“ Joe Q. Public ” 替换为您在上面的步骤10中创建密钥对时输入的名称。用您选择的任何文本替换“ jqpublic ”。
gpg --export -a 'Joe Q. Public' > RPM-GPG-KEY-jqpublic
将密钥对导入RPM密钥库。用在步骤17中选择的文本替换“ jqpublic ”。
sudo rpm --import RPM-GPG-KEY-jqpublic
验证密钥对已添加到RPM密钥库中。该--q GPG-PUBKEY选项查询RPM GnuPG的密钥库。的%{名称} - %{版本} - %{释放} - >%{摘要} \ n结果显示在人类可读的格式。
rpm -q gpg-pubkey --qf '%{name}-%{version}-%{release} --> %{summary}\n'
通过创建.rpmmacros file
,可以自定义RPM以执行分配的行为(例如:简化RPM的自动签名)。使用该nano
程序创建文件。
nano .rpmmacros
然后,将以下文本添加到.rpmmacros
文件中。
%_gpg_name Joe Q. Public
%_query_all_fmt %%{name}-%%{version}-%%{release}.%%{arch}
%_signature gpg
%_topdir %(echo $HOME)/rpmbuild
通过输入以下键盘组合来保存文档。该CTRL + X键。然后,按S键。最后,按回车键。
下面的命令将设置您的RPM构建环境。这会将其他宏附加到.rpmmacros
您在步骤20中创建的文件,并创建用于构建和存储RPM的必需目录。
rpmdev-setuptree
运行此命令以显示rpmbuild目录的内容。它应包含以下目录SOURCES,RPMS,BUILD,SRPMS和SPECS。
find rpmbuild
将TaskServer(taskd)源代码下载到该rpmbuild/SOURCES
目录。
wget https://taskwarrior.org/download/taskd-1.1.0.tar.gz -P rpmbuild/SOURCES/
终止正在运行的rgnd
进程。
sudo kill -9 rngd
为了从源代码构建新的RPM,必须创建TaskServer(任务化)SPEC文件。
nano rpmbuild/SPECS/taskd.spec
将以下文本添加到taskd.spec
文件中。
Name: taskd
Version: 1.1.0
Release: 1%{?dist}
Summary: Secure server providing multi-user, multi-client access to task data
Group: Applications/Productivity
License: MIT
URL: http://tasktools.org/projects/taskd.html
Source0: http://taskwarrior.org/download/%{name}-%{version}.tar.gz
Source1: taskd.service
Source2: taskd-config
Source3: taskd.xml
BuildRequires: cmake
BuildRequires: libuuid-devel
BuildRequires: gnutls-devel
BuildRequires: shadow-utils
%if 0%{?rhel} && 0%{?rhel} <= 6
# On rhel, we don't need systemd to build. but we do on centos.
# ...just to define some macros
%else
BuildRequires: systemd
%endif
# For certificate generation
Requires: gnutls-utils
# Systemd requires
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
%description
The TaskServer is a lightweight, secure server providing multi-user,
multi-client access to task data. This allows true syncing between desktop and
mobile clients.
Users want task list access from multiple devices running software of differing
sophistication levels to synchronize data seamlessly. Synchronization requires
the ability to exchange transactions between devices that may not have
continuous connectivity, and may not have feature parity.
The TaskServer provides this and builds a framework to go several steps beyond
merely synchronizing data.
%prep
%setup -q %{name}-%{version}
%build
%cmake
make %{?_smp_mflags}
%install
make install DESTDIR=%{buildroot}
mkdir -p %{buildroot}%{_sharedstatedir}/taskd/
# Users will keep their keys here, but we copy some helpful scripts too.
mkdir -p %{buildroot}%{_sysconfdir}/pki/taskd/
cp -a pki/generate* %{buildroot}%{_sysconfdir}/pki/taskd/.
mkdir -p %{buildroot}%{_localstatedir}/log/taskd/
%if 0%{?rhel} && 0%{?rhel} <= 6
# EL6 and earlier needs a sysvinit script
# Also, no firewalld on old EL
%else
mkdir -p %{buildroot}%{_unitdir}/
cp -a %{SOURCE1} %{buildroot}%{_unitdir}/taskd.service
mkdir -p %{buildroot}%{_prefix}/lib/firewalld/services
cp -a %{SOURCE3} %{buildroot}%{_prefix}/lib/firewalld/services/taskd.xml
%endif
mkdir -p %{buildroot}%{_sharedstatedir}/taskd/orgs/
cp -a %{SOURCE2} %{buildroot}%{_sharedstatedir}/taskd/config
rm -r %{buildroot}%{_datadir}/doc/taskd/
%pre
getent group taskd >/dev/null || groupadd -r taskd
getent passwd taskd >/dev/null || \
useradd -r -g taskd -d %{_sharedstatedir}/taskd/ -s /usr/bin/sh \
-c "Task Server system user" taskd
exit 0
# Systemd scriptlets
%if 0%{?rhel} && 0%{?rhel} <= 6
# No systemd for el6
%else
%post
%systemd_post taskd.service
%preun
%systemd_preun taskd.service
%postun
%systemd_postun_with_restart taskd.service
%endif
%files
%doc AUTHORS COPYING ChangeLog NEWS README
%{_bindir}/taskd
%{_bindir}/taskdctl
%{_mandir}/man1/taskd.1.*
%{_mandir}/man1/taskdctl.1.*
%{_mandir}/man5/taskdrc.5.*
%{_sysconfdir}/pki/taskd/generate*
%dir %attr(0750, taskd, taskd) %{_sysconfdir}/pki/taskd/
%dir %attr(0750, taskd, taskd) %{_localstatedir}/log/taskd/
%dir %attr(0750, taskd, taskd) %{_sharedstatedir}/taskd/
%config(noreplace) %attr(0644, taskd, taskd) %{_sharedstatedir}/taskd/config
%dir %attr(0750, taskd, taskd) %{_sharedstatedir}/taskd/orgs/
%if 0%{?rhel} && 0%{?rhel} <= 6
# No sysvinit files for el6
%else
%{_unitdir}/taskd.service
%{_prefix}/lib/firewalld/services/taskd.xml
%endif
%changelog
* Thu Aug 17 2017 Jarrett Graham <[email protected]> - 1.1.0
- Initial packaging.
RPM还需要在rpmbuild/SOURCES
目录中创建三个附加文件。使用该nano
程序创建taskd-config
文件。
nano rpmbuild/SOURCES/taskd-config
将以下文本添加到taskd-config
文件中。
# taskd configuration file
confirmation=1
verbose=1
ip.log=on
extensions=/usr/libexec/taskd
queue.size=10
request.limit=1048576
server=0.0.0.0:53589
root=/var/lib/taskd
log=/var/log/taskd/taskd.log
pid.file=/var/run/taskd.pid
ca.cert=/etc/pki/taskd/ca.cert.pem
server.cert=/etc/pki/taskd/server.cert.pem
server.key=/etc/pki/taskd/server.key.pem
server.crl=/etc/pki/taskd/server.crl.pem
使用该nano
程序创建taskd.service
文件。
nano rpmbuild/SOURCES/taskd.service
将以下文本添加到taskd.service
文件中。
[Unit]
Description=Secure server providing multi-user, multi-client access to task data
After=network.target
Documentation=https://tasktools.org/projects/taskd.html
[Service]
ExecStart=/usr/bin/taskd server --data /var/lib/taskd
Type=simple
User=taskd
Group=taskd
[Install]
WantedBy=multi-user.target
使用该nano
程序创建taskd.xml
文件。
nano rpmbuild/SOURCES/taskd.xml
将以下文本添加到taskd.xml
文件中。
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>Task-warrior server</short>
<description>This option allows you to connect to the task warrior server.</description>
<port protocol="tcp" port="53589"/>
</service>
为了构建TaskServer(任务式)RPM,需要三个软件包来进行构建。运行以下命令以安装这些软件包。
sudo yum install cmake libuuid-devel gnutls-devel gnutls-utils -y
现在是时候从源代码进行构建,并为TaskServer(taskd)创建RPM。运行以下命令以开始使用。在1x CPU Vultr实例上花费不到一分钟的时间即可构建RPM。出现提示时,输入您在步骤#14中创建的GnuPG密码以签署RPM。
cd rpmbuild/SPECS/
rpm -ba -sign taskd.spec
安装TaskServer(任务式)RPM。
cd
sudo rpm -ivh rpmbuild/RPMS/x86_64/taskd-1.1.0-1.el7.centos.x86_64.rpm
为了使TaskServer(taskd)与TaskWarrior(task)客户端进行通信和同步,您将需要使用下面的生成脚本/etc/pki/taskd/
来生成服务器和客户端证书/密钥。使用以下命令提升为root用户,并将目录更改为/etc/pki/taskd
。
sudo su -
cd /etc/pki/taskd/
使用该nano
程序创建vars
文件以生成自签名的根CA。
nano vars
将以下文本添加到vars文件中。将ORGANIZATION,CN,COUNTRY,STATE和LOCALITY更改为您满意。
BITS=4096
EXPIRATION_DAYS=365
ORGANIZATION="Vultr.com Inc."
CN=taskd.example.com
COUNTRY=US
STATE="New York"
LOCALITY="New York"
生成自签名的根CA,证书,服务器密钥和服务器吊销列表(可选)。
./generate.ca
./generate.server
./generate.crl
这些命令将创建下列文件(ca.cert.pem
,ca.key.pem
,server.cert.pem
,server.key.pem
和server.crl.pem
里面)/etc/pki/taskd/
目录。为了启动TaskServer(taskd),必须修改在步骤#37中生成的证书和密钥的所有权和权限,以允许TaskServer(taskd)访问它们。运行以下命令进行更改。
chown taskd.taskd ca.cert.pem ca.key.pem server.cert.pem server.crl.pem server.key.pem
chmod 400 ca.cert.pem ca.key.pem server.cert.pem server.crl.pem server.key.pem
启用并启动TaskServer(taskd)守护程序。
systemctl enable taskd
systemctl start taskd
在防火墙中打开端口TaskServer(taskd)运行。
firewall-cmd --permanent --zone=public --add-port=53589/tcp
firewall-cmd --reload
现在已在CentOS 7实例上安装并设置TaskServer(任务)。
您必须创建客户端证书和密钥来加密TaskServer(任务)和TaskWarrior(任务)之间的通信。运行以下命令以生成客户端证书和密钥。替换NAME
为您的客户容易识别的名称。
generate.client NAME
该命令将创建下列文件(NAME.cert.pem
,NAME.key.pem
中)的内部/etc/pki/taskd/
目录。
将以下文件复制到您的用户目录,更改所有权和权限。用您的实际用户名目录替换下面的joeqpublic。
cp ca.cert.pem NAME.cert.pem NAME.key.pem /home/joeqpublic/
chown joeqpublic.joeqpublic /home/joeqpublic/*.pem
chmod 400 /home/joeqpublic/*.pem
创建证书和密钥的zip存档。
zip certficates.zip ca.cert.pem NAME.cert.pem NAME.key.pem
使用scp
(命令行)或WinSCP(SCP的GUI前端)将certificates.zip
文件从CentOS实例下载到客户端设备(计算机/笔记本电脑/智能手机)。
放弃root用户特权,然后以普通用户身份执行其余命令。
exit
现在已设置TaskServer(任务)并准备好与TaskWarrior(任务)客户端连接。
为了创建,删除,修改和同步任务,您将需要一个用户帐户。但是,在添加用户之前,您首先需要创建一个组织组。运行以下命令以创建第一个组。用易于识别的名称替换GROUP。
重要!taskd
创建组/用户的命令必须以taskd
用户身份运行。以root用户身份运行将创建该root用户拥有的目录和文件,在/var/lib/taskd/orgs
这些目录和文件下,TaskWarrior(任务)客户端无法访问或修改已分配给它们的组中的任何内容。访问将被拒绝。
sudo -u taskd taskd add org GROUP --data /var/lib/taskd
现在,您已经创建了第一个组,让我们创建您的第一个用户。运行以下命令以创建分配给在步骤#1中创建的组的用户。将生成的用户密钥,用户和组复制并粘贴到文本文件中。重复该过程以添加其他用户。
sudo -u taskd taskd add user GROUP 'Joe. Q. Public' --data /var/lib/taskd
要在Windows 10上使用TaskWarrior(任务),您需要从Windows应用商店安装适用于Linux的Windows子系统。
要安装WSL,需要提升的Powershell提示。按Window键,然后键入powershell。右键单击结果顶部的Windows Powershell,然后选择“ 以管理员身份运行 ”。在“用户帐户控制”提示下,单击“ 是”。复制并粘贴下面在Powershell窗口中找到的文本。WSL完成安装后,按Y键重新启动Windows。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
重新引导后,打开命令提示符,然后键入以下命令bash。这将在Windows上安装Ubuntu。按Y键。现在将下载并提取它。选择一个用户名和密码。
bash
现在是时候安装TaskWarrior(任务)了。在控制台中键入以下命令。
sudo apt-get install task -y
类型退出两次退出了庆典终端和Windows命令提示符。
单击开始菜单按钮。键入ubuntu。在Windows上的Ubuntu上右键单击Bash。选择固定到任务栏。这为快速访问bash以访问TaskWarrior(任务)提供了便利。
单击您刚刚在任务栏上创建的Ubuntu图标。这将打开一个运行Bash的终端窗口。在下面键入以下命令以创建TaskWarrior(任务)数据目录(~/.task/
)和配置文件(.taskrc
)。
task version
yes
您需要将certificates.zip
之前在TaskServer安装过程中保存的文件移到~/.taskd/
用户目录内的目录中。要从zip文件中提取文件,请unzip
首先安装该程序。将以下命令复制并粘贴到下面,以替换您的的实际位置certificates.zip
。
sudo apt-get install unzip -y
cp /mnt/c/User/WINDOWSUSER/Desktop/certificates.zip .
cd .task
unzip ../certificates.zip
cd
键入以下命令来设置TaskWarrior(任务)以与TaskServer(任务)连接。将NAME替换为您命名的证书和密钥,将GROUP替换为您创建的组,将Joe Q. Public替换为您创建的用户名,并将XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXX替换为用户时分配的密钥是在TaskWarrior(任务)服务器上创建的。
task config taskd.ca -- ~/.task/ca.cert.pem
task config taskd.certificate -- ~/.task/**NAME**.cert.pem
task config taskd.key -- ~/.task/**NAME**.key.pem
task config taskd.server -- taskd.example.com:53589
task config taskd.credentials -- GROUP/Joe Q. Public/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX
现在是时候将TaskWarrior(任务)与TaskServer(任务)同步了。运行以下命令以初始化数据库。
task sync init
现在,已在Windows 10平台上设置TaskWarrior(任务)客户端和TaskServer(任务)之间的同步。
要在Android上使用TaskWarrior(任务),您需要从Google Play商店安装Android版TaskWarrior。
在Google的Play商店中安装TaskWarrior(任务)Android应用程序。
打开适用于Android应用程序的TaskWarrior(任务)。
应用程序将提示您创建一个具有所需帐户名的帐户。输入您为TaskServer(任务化)用户创建用户名时选择的名称。
将数据文件夹保留为默认设置<<<创建新>>,然后点击确定按钮。使用文件管理器应用在存储根目录中创建一个文件夹(例如:)/storage/emulate/0/Certs
。将应用程序发送到后台。
复制certificates.zip
您先前创建的文件,并将其内容提取到步骤4中创建的目录中。
前景“ Android TaskWarrior(任务)”应用程序,然后点击应用程序左上角的菜单以将其打开。
向下滚动到菜单底部,然后点击设置选项。
这将打开一个简单的内置TaskWarrior For Android应用程序文本编辑器。
输入以下选项以设置与TaskServer的同步(任务)。将taskd.ca
/ taskd.certificate
/ taskd.key`变量替换为实际的ca / certificate / key目录路径,将NAME替换为您命名的证书和密钥,将GROUP替换为创建的组,将Joe Q. Public替换为创建的用户名,XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX,并在TaskWarrior(任务)服务器上创建用户时分配了密钥。
taskd.ca=/storage/emulate/0/Certs/ca.cert.pem
taskd.certificate=/storage/emulate/0/Certs/NAME.cert.pem
taskd.credentials=GROUP/Joe Q. Public/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
taskd.key=/storage/emulate/0/Certs/NAME.key.pem
taskd.server=taskd.example.com:53589
现在,已在Android平台上设置了TaskWarrior(任务)客户端和TaskServer(任务)之间的同步。
请参阅TaskWarrior(任务)发行版部分以针对您的特定Linux发行版进行安装。
打开一个终端窗口。在下面键入以下命令以创建TaskWarrior(任务)数据目录(~/.task/
)和配置文件(.taskrc
)。
task version
yes
您需要将certificates.zip
先前在TaskServer设置中保存的文件移动到~/.taskd/
用户目录内的目录。要从zip文件中提取文件,请unzip
首先为您的特定发行版安装程序。在下面复制并粘贴以下命令,以替换您的副本的实际位置certificates.zip
。
cp /location/of/certificates.zip .
cd .task
unzip ../certificates.zip
cd
键入以下命令来设置TaskWarrior(任务)以与TaskServer(任务)连接。将NAME替换为您命名的证书和密钥,将GROUP替换为您创建的组,将Joe Q. Public替换为您创建的用户名,并将XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXX替换为用户时分配的密钥是在TaskWarrior(任务)服务器上创建的。
task config taskd.ca -- ~/.task/ca.cert.pem
task config taskd.certificate -- ~/.task/**NAME**.cert.pem
task config taskd.key -- ~/.task/**NAME**.key.pem
task config taskd.server -- taskd.example.com:53589
task config taskd.credentials -- GROUP/Joe Q. Public/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX
现在是时候将TaskWarrior(任务)与TaskServer(任务)同步了。运行以下命令以初始化数据库。
task sync init
附录:如果运行Gnome Shell,则有一个名为TaskWhisper的扩展程序,它与TaskWarrior(任务)集成在一起。
现在,您最喜欢的Linux发行版中已设置TaskWarrior(任务)客户端和TaskServer(任务)之间的同步。
Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,
FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o
在本教程中,我们将介绍在CentOS 6x x64上安装和使用nethogs的过程。nethogs是一种网络监视工具,它允许Networ
使用其他系统?简介BoltWire是一个用PHP编写的免费,轻量级的内容管理系统。与大多数其他内容管理人员相比
欢迎来到另一个Vultr教程。在这里,您将学习如何安装和运行SAMP服务器。本指南是为CentOS 6编写的。先决条件
简介/ etc /目录在Linux系统运行中起着至关重要的作用。其原因是因为几乎每个系统配置
使用其他系统?Microweber是一个开放源代码的拖放式CMS和在线商店。Microweber源代码托管在GitHub上。本指南将向您展示
使用其他系统?SonarQube是用于质量系统开发的开源工具。它是用Java编写的,并且支持多个数据库。它提供
使用其他系统?Mosh是Mobile Shell的缩写,是一种新兴的远程终端应用程序,旨在提供更好的连接和使用
MoinMoin是一个使用Python编写的基于文件系统的开源Wiki引擎。如今,MoinMoin已广泛用于开源社区。许多供应商
H2O是新一代HTTP服务器,它对所有当前使用的Web服务器都具有出色的,功能齐全的HTTP / 2实现。使用H2O作为您的Web服务器
在Linux和Unix系统管理员中,使用sudo用户访问服务器并在root级执行命令是一种非常普遍的做法。使用泡沫
使用其他系统?Countly是一个开源Web /移动分析和营销平台。它具有许多用于从Web收集数据的功能
MODX是一个用PHP编写的免费开放源内容管理系统。它使用MySQL或MariaDB来存储其数据库。MODX专为满足以下条件的企业而设计:
使用其他系统?Lychee 3.1相册是一种简单,灵活,免费和开源的照片管理工具,可在VPS服务器上运行。安装
使用其他系统?ERP或企业资源计划是用于管理核心业务流程的企业应用程序套件。ERPNext是免费的
使用其他系统?Paste 2.1是一个简单,灵活,免费和开源的pastebin应用程序,用于存储代码,文本等。最初是
使用其他系统?Seafile(社区版本)是一个免费和开源的文件同步和共享解决方案,类似于ownCloud。机智
使用其他系统?Kolab Groupware是一个免费的基于Web的开源组件软件。它的功能包括电子邮件通信,事件
使用其他系统?Omeka Classic 2.4 CMS是一个免费的开源数字发布平台和用于共享数字内容的内容管理系统(CMS)
勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根
ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。
Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+
閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。
最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息
大數據的13個商業數據提取工具
我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true
隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。
洞察 26 種大數據分析技術:第 1 部分
過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。