Installige Plesk operatsioonisüsteemi CentOS 7
Kas kasutate teistsugust süsteemi? Plesk on patenteeritud veebihosti juhtpaneel, mis võimaldab kasutajatel hallata oma isiklikke ja/või klientide veebisaite, andmebaase
Buildbot on avatud lähtekoodiga Pythonil põhinev pideva integratsiooni tööriist tarkvara loomise, testimise ja juurutamise automatiseerimiseks. Buildbot koosneb ühest või mitmest Buildboti meistrist ja mitmest töötajast. Buildbot Masteril või Buildmasteril on süsteemi keskne juhtimine. Ta vastutab ehituskeskkonna ja töötajate haldamise eest ning teeb kõik otsused töötajatele töökohtade saatmise kohta. Buildmaster tuvastab muudatused koodihoidlas ja saadab käsud või tööd töötajatele täitmiseks. Töötajad teostavad tööd ja tagastavad tulemuse Buildmasterile. Seejärel teavitab Buildmaster arendajaid mitme toetatud kanali kaudu. Selles õpetuses installime CentOS 7-sse Buildboti põhi- ja töötaja. Samuti konfigureerime autentimise ja Nginxi kaitstud pöördpuhverserverina.
Selle õpetuse jaoks kasutame me 192.168.1.1
avaliku IP-aadressina ja ci.example.com
domeeninimena, mis on suunatud Vultri eksemplarile. Asendage kindlasti kõik näidisdomeeninime ja IP-aadressi esinemised tegeliku nimega.
Värskendage oma baassüsteemi, kasutades juhendit CentOS 7 värskendamine . Kui teie süsteem on värskendatud, jätkake PostgreSQL-i installimisega.
Installige Pip, mis on Pythoni paketihaldur.
sudo yum -y install epel-release
sudo yum -y install python-pip gcc python-devel git
sudo pip install --upgrade pip
Buildbot toetab mitut tüüpi andmebaasiservereid, nagu MySQL, PostgreSQL ja SQLite. Selles õpetuses kasutame Buildboti andmebaasiserveri hostimiseks PostgreSQL-i.
PostgreSQL on objektide suhteline andmebaasisüsteem, mis on tuntud oma stabiilsuse ja kiiruse poolest. Vaikimisi yum
hoidla sisaldab PostgreSQL-i vana versiooni, seega lisage PostgreSQL-i hoidla.
sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm
Installige PostgreSQL andmebaasiserver.
sudo yum -y install postgresql10-server postgresql10-contrib postgresql10
Initsialiseerige andmebaas.
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
Käivitage PostgreSQL-server ja lubage see alglaadimisel automaatselt käivituda.
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
Muutke PostgreSQL-i vaikekasutaja parooli.
sudo passwd postgres
Logige sisse PostgreSQL-i kasutajana.
sudo su - postgres
Looge Buildboti jaoks uus PostgreSQL-i kasutaja.
createuser bb_user
Soovi korral võite kasutajanime asemel kasutada mis tahes kasutajanime bb_user
. PostgreSQL pakub psql
andmebaasis päringute käitamiseks kesta. Lülituge PostgreSQL-i kestale.
psql
Määrake vastloodud kasutajale parool.
ALTER USER bb_user WITH ENCRYPTED password 'DBPassword';
Asendage DBPassword
turvalise parooliga.
Looge Buildboti installimiseks uus andmebaas.
CREATE DATABASE buildbot OWNER bb_user;
Väljuge psql
kestast.
\q
Lülituge sudo
kasutajale.
exit
Redigeerige pg_hba.conf
faili, et lubada MD5-põhine autentimine.
sudo nano /var/lib/pgsql/10/data/pg_hba.conf
Leia järgmised read ja muuda väärtusi peer
ja ident
, et METHOD
veerus kuni trust
ja md5
vastavalt.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
Pärast värskendamist näeb konfiguratsioon välja nagu järgmine tekst.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Salvestage fail ja väljuge redaktorist. Installige Pythoni jaoks PostgreSQL-i andmebaasiadapter.
sudo pip install psycopg2
Taaskäivitage PostgreSQL, et muudatused jõustuksid.
sudo systemctl restart postgresql-10
Installige Buildbot, kasutades Pip.
sudo pip install 'buildbot[bundle]' pyopenssl service_identity
Ülaltoodud käsk paigaldada Buildbot koos buildbot-www
, buildbot-worker
ja mitmed web pluginad nagu buildbot-waterfall-view
.
Buildboti eduka installimise tagamiseks saate seda kontrollida, kontrollides Buildboti versiooni.
buildbot --version
Väljund peaks sarnanema järgmise tekstiga.
[user@vultr ~]$ buildbot --version
Buildbot version: 0.9.15.post1
Twisted version: 17.9.0
Muutke tulemüüri reegleid pordi lubamiseks 8010
. Buildbot kasutab seda porti veebipäringute kuulamiseks.
sudo firewall-cmd --zone=public --add-port=8010/tcp --permanent
sudo firewall-cmd --reload
Looge Buildboti põhi- ja tööprotsesside käitamiseks uus privilegeerimata kasutaja. Buildboti põhiteenuseid ei ole soovitatav kasutajana käivitada root
.
sudo adduser buildbot
sudo passwd buildbot
Logige sisse vastloodud buildbot
kasutajana.
sudo su - buildbot
Seadistage /home/buildbot/master
kataloogis Buildboti juht. See kataloog sisaldab iga järgu konfiguratsiooni, oleku ja logifaile.
buildbot create-master --db 'postgresql://bb_user:DBPassword@localhost/buildbot' ~/master
Asendage ülaltoodud käsus kindlasti andmebaasi kasutaja mandaadid.
Märkus. Kui soovite PostgreSQL-i asemel kasutada SQLite'i andmebaasi, jätke see --db 'postgresql://bb_user:DBpassword@localhost/buildbot'
valik lihtsalt välja . SQLite'i andmebaas luuakse samas kataloogis.
Ülaltoodud käsk loob ~/master
kataloogi Buildmasteri failide salvestamiseks. Samuti kirjutab see andmed PostgreSQL-i andmebaasi. Saate järgmise väljundi.
[buildbot@vultr ~]$ buildbot create-master --db 'postgresql://bb_user:DBPassword@localhost/buildbot' ~/master
mkdir /home/buildbot/master
creating /home/buildbot/master/master.cfg.sample
creating database (postgresql://bb_user:DBPassword@localhost/buildbot)
buildmaster configured in /home/buildbot/master
Kopeerige näidiskonfiguratsioonifail reaalajas konfiguratsioonifaili.
cp ~/master/master.cfg.sample ~/master/master.cfg
Muutke konfiguratsioonifaili.
nano ~/master/master.cfg
Otsige üles järgmised read.
c['workers'] = [worker.Worker("example-worker", "pass")]
...
c['builders'].append(
util.BuilderConfig(name="runtests",
workernames=["example-worker"],
factory=factory))
...
c['title'] = "Hello World CI"
c['titleURL'] = "https://buildbot.github.io/hello-world/"
...
c['buildbotURL'] = "http://localhost:8010/"
...
c['db'] = {
'db_url' : "postgresql://bb_user:DBpassword@localhost/buildbot",
}
Ülaltoodud konfiguratsioonis on kirje näidistöötaja jaoks. Muudame selle töötaja näidiskirjet, kelle juures töötame localhost
. Muutke töötaja example-worker
jaoks sobivaks nimeks localhost
ja muutke pass
parool mõneks muuks. Märkige üles töötaja nimi ja parool, kuna me nõuame seda hiljem õpetuses. Muutke ehitajate nimekirjas töötaja nime. Muutke rakenduse nime ja projekti URL-i vastavalt oma vajadustele.
Change the Buildbot URL from localhost
to your actual domain name or public IP address. Also, verify that the database information in the configuration file matches your actual database credentials.
At the end of the file, add c['buildbotNetUsageData'] = None
. This parameter will disable sending the software version information and plugin usage details to the developers. However, to enable sending the uses information, change the option to Full
.
The configuration should look like the following text.
c['workers'] = [worker.Worker("localhost-worker", "Password123")]
...
c['builders'].append(
util.BuilderConfig(name="runtests",
workernames=["localhost-worker"],
factory=factory))
...
c['title'] = "My Application CI"
c['titleURL'] = "https://example.com/my-app"
...
c['buildbotURL'] = "http://192.168.1.1:8010/"
...
c['db'] = {
'db_url' : "postgresql://bb_user:DBpassword@localhost/buildbot",
}
...
c['buildbotNetUsageData'] = None
Save the file and exit the editor. Check the configuration file for errors.
buildbot checkconfig ~/master
If the configuration file has no errors, you will see following output.
[buildbot@vultr ~]$ buildbot checkconfig ~/master
Config file is good!
Now that everything is configured correctly, you can start the Buildbot master.
buildbot start ~/master
You will see the following output.
[buildbot@vultr ~]$ buildbot start ~/master
Following twistd.log until startup finished..
The buildmaster appears to have (re)started correctly.
Now that the Buildbot master has started correctly, the web user interface is accessible at http://192.168.1.1:8010
. You should see the following Buildbot interface.
Since we have already modified the worker configuration in ~/master/master.cfg
, we can proceed to create a new worker.
buildbot-worker create-worker ~/worker localhost localhost-worker Password123
Make sure that you use the exact same worker name and password as mentioned in ~/master/master.cfg
file. If there's a mismatch in worker name or password, the worker will not be able to connect to the Buildbot master. You will see the following output upon successful execution.
[buildbot@vultr ~]$ buildbot-worker create-worker ~/worker localhost example-worker pass
mkdir /home/buildbot/worker
mkdir /home/buildbot/worker/info
Creating info/admin, you need to edit it appropriately.
Creating info/host, you need to edit it appropriately.
Not creating info/access_uri - add it if you wish
Please edit the files in /home/buildbot/worker/info appropriately.
worker configured in /home/buildbot/worker
Information about the worker is stored in the /info
directory. Edit the administrative information about the developer.
nano ~/worker/info/admin
Replace the example name with your actual name and email.
Your Name <[email protected]>
Now, open the file containing information about the host.
nano ~/worker/info/host
Replace the example instruction with the actual information about the host system.
Localhost, CentOS 7
The worker admin and host information is only used to tell the users about the system. You can also add additional information about the system such as Buildbot version and Twisted version.
Start the worker.
buildbot-worker start ~/worker
The output will look like the following text.
[buildbot@vultr ~]$ buildbot-worker start ~/worker
Following twistd.log until startup finished..
The buildbot-worker appears to have (re)started correctly.
To check if the worker is registered, head to the web interface of Buildbot and navigate to Builds >> Workers
from the left navigation. You should see that the worker is up and ready to build.
To run a sample build, to check if the Buildbot worker is running successfully, navigate to Builds >> Builders
. Click on the runtests
builder name to open the builder interface and click on the Force
button to force a build. Provide your name and click on the Start Build
button to start the build. Since it is a sample build test to check the Buildbot environment, it will finish in a couple of seconds. You will get a success message and the build result.
Although the Buildbot master and worker can be easily started using the commands above, it is recommended to use Systemd units to run and manage the Buildbot services. This will ensure that they are automatically started on system restart and failures.
Note: Switch to the sudo
user again by running either exit
or su <username>
. From now on all the commands need to be executed by the sudo
user.
Stop the running Buildbot worker and master service.
sudo su buildbot -c "buildbot stop /home/buildbot/master"
sudo su buildbot -c "buildbot-worker stop ~/worker"
Create a new Systemd unit file for the Buildbot master.
sudo nano /etc/systemd/system/buildbot.service
Populate the file.
[Unit]
Description=BuildBot master service
After=network.target
[Service]
Type=forking
User=buildbot
Group=buildbot
WorkingDirectory=/home/buildbot/master
ExecStart=/usr/bin/buildbot start
ExecStop=/usr/bin/buildbot stop
ExecReload=/usr/bin/buildbot restart
[Install]
WantedBy=multi-user.target
Start the Buildbot master and enable it to automatically start at boot time.
sudo systemctl start buildbot
sudo systemctl enable buildbot
Create a new Systemd unit file for the Buildbot worker.
sudo nano /etc/systemd/system/buildbot-worker.service
Populate the file.
[Unit]
Description=BuildBot worker service
After=network.target
[Service]
Type=forking
User=buildbot
Group=buildbot
WorkingDirectory=/home/buildbot/worker
ExecStart=/usr/bin/buildbot-worker start
ExecStop=/usr/bin/buildbot-worker stop
ExecReload=/usr/bin/buildbot-worker restart
[Install]
WantedBy=multi-user.target
Start the Buildbot worker and enable it to automatically start at boot time.
sudo systemctl start buildbot-worker
sudo systemctl enable buildbot-worker
You can check the status of the services.
sudo systemctl status buildbot buildbot-worker
If the services are running smoothly, you will see that in the output.
[user@vultr ~]$ sudo systemctl status buildbot buildbot-worker
● buildbot.service - BuildBot master service
...
Active: active (running) since Fri 2018-01-12 16:00:59 UTC; 1min 25s ago
...
Jan 12 16:00:59 vultr.guest systemd[1]: Started BuildBot master service.
● buildbot-worker.service - BuildBot worker service
...
Active: active (running) since Fri 2018-01-12 16:02:00 UTC; 24s ago
...
Jan 12 16:02:00 vultr.guest systemd[1]: Started BuildBot worker service.
By default, authentication is not enabled in the Buildbot web interface. For internet facing sites, it is strongly recommended to setup authentication so that only the authorized users can have the ability to perform administrative tasks. To set up authentication, reopen the Buildbot master configuration file.
sudo su buildbot -c "nano /home/buildbot/master/master.cfg"
Add the following lines to the end of the file.
c['www']['authz'] = util.Authz(
allowRules = [
util.AnyEndpointMatcher(role="admins")
],
roleMatchers = [
util.RolesFromUsername(roles=['admins'], usernames=['admin_user'])
]
)
c['www']['auth'] = util.UserPasswordAuth({'admin_user': 'AdminPassword'})
Replace both occurrences of admin_user
with the actual username you want to use and AdminPassword
with a strong password.
Check for errors in the configuration file.
sudo su buildbot -c "buildbot checkconfig /home/buildbot/master"
Restart Buildbot master service so that the changes can take effect.
sudo systemctl restart buildbot
Browse the web interface again to see that the anonymous users can only view the basic details about the build server. Now, log in using the credentials set in the master.cfg
file and you will see that all other administrative functions are only available to the logged in admin user.
By default, Buildbot listens to the port 8010
on unsecured connections. Securing the web interface with HTTPS
is recommended to ensure that the data is safe during transportation from the browser to the server. In this section of the tutorial, we will install and secure Nginx with Let's Encrypt free SSL certificates. The Nginx web server will work as a reverse proxy to forward the incoming requests to Buildbot's HTTP endpoint.
Install Nginx.
sudo yum -y install nginx
Start Nginx and enable it to automatically start at boot time.
sudo systemctl start nginx
sudo systemctl enable nginx
Install Certbot, which is the client application for Let's Encrypt CA.
sudo yum -y install certbot
Before you can request the certificates, you will need to allow ports 80
and 443
or standard HTTP
and HTTPS
services through the firewall. Also, remove port 8010
, which listens to the unsecured connections.
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --zone=public --remove-port=8010/tcp --permanent
sudo firewall-cmd --reload
Note: To obtain certificates from Let's Encrypt CA, the domain for which the certificates are to be generated must be pointed towards the server. If not, make the necessary changes to the DNS records of the domain and wait for the DNS to propagate before making the certificate request again. Certbot checks the domain authority before providing the certificates.
Generate the SSL certificates.
sudo certbot certonly --webroot -w /usr/share/nginx/html -d ci.example.com
Loodud sertifikaadid salvestatakse tõenäoliselt /etc/letsencrypt/live/ci.example.com/
kataloogi. SSL-sertifikaat salvestatakse kui fullchain.pem
ja privaatvõti salvestatakse kui privkey.pem
.
Krüptimise sertifikaadid aeguvad 90 päeva pärast, seetõttu on soovitatav seadistada sertifikaatide automaatne uuendamine Croni töödega.
Avage root
kasutaja jaoks tööfail cron .
sudo crontab -e
Lisage faili lõppu järgmine rida.
30 5 * * * /usr/bin/certbot renew --quiet
Ülaltoodud cron-töö käivitub iga päev kell 5.30. Kui sertifikaat hakkab aeguma, uuendab see neid automaatselt.
Nüüd muutke default_server
rea eemaldamiseks Nginxi vaikekonfiguratsioonifaili .
sudo sed -i 's/default_server//g' /etc/nginx/nginx.conf
Looge Buildboti veebiliidese jaoks uus konfiguratsioonifail.
sudo nano /etc/nginx/conf.d/buildbot.conf
Täitke fail.
upstream buildbot {
server 127.0.0.1:8010;
}
server {
listen 80 default_server;
server_name ci.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2 default_server;
server_name ci.example.com;
root html;
index index.html index.htm;
ssl on;
ssl_certificate /etc/letsencrypt/live/ci.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ci.example.com/privkey.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1440m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
access_log /var/log/nginx/buildbot.access.log;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Host $host;
location / {
proxy_pass http://buildbot;
}
location /sse/ {
proxy_buffering off;
proxy_pass http://buildbot/sse/;
}
location /ws {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://buildbot/ws;
proxy_read_timeout 6000s;
}
}
Kontrollige uues konfiguratsioonifailis vigu.
sudo nginx -t
Kui näete järgmist väljundit, on konfiguratsioon veatu.
[user@vultr ~]$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Kui olete saanud mingisuguse vea, kontrollige kindlasti SSL-sertifikaatide teed. Konfiguratsioonimuudatuse rakendamiseks taaskäivitage Nginxi veebiserver.
sudo systemctl restart nginx
Avage Buildmasteri konfiguratsioonifail.
sudo su buildbot -c "nano /home/buildbot/master/master.cfg"
Otsige üles järgmine rida.
c['buildbotURL'] = "http://192.168.1.1:8010/"
Muutke URL-i vastavalt kasutatavale domeeninimele.
c['buildbotURL'] = "https://ci.example.com/"
Taaskäivitage Buildboti põhiteenus.
sudo systemctl restart buildbot
Nüüd pääsete Buildboti armatuurlauale juurde aadressil https://ci.example.com
. Näete, et ühendused Buildbotiga on nüüd kaitstud SSL-iga.
Logige sisse administraatori mandaatidega ja lisage oma esimene konveier, et alustada oma rakenduse loomist.
Kas kasutate teistsugust süsteemi? Plesk on patenteeritud veebihosti juhtpaneel, mis võimaldab kasutajatel hallata oma isiklikke ja/või klientide veebisaite, andmebaase
Squid on populaarne tasuta Linuxi programm, mis võimaldab teil luua edastamise veebipuhverserveri. Selles juhendis näete, kuidas installida Squid CentOS-i, et teid pöörata
Sissejuhatus Lighttpd on Apache'i hark, mille eesmärk on olla palju vähem ressursimahukas. See on kerge, sellest ka oma nimi, ja seda on üsna lihtne kasutada. Installin
VULTR on hiljuti teinud nende osas muudatusi ja kõik peaks nüüd töötama hästi, kui NetworkManager on lubatud. Kui soovite keelata
Icinga2 on võimas seiresüsteem ja kui seda kasutatakse põhikliendi mudelis, võib see asendada vajaduse NRPE-põhiste seirekontrollide järele. Meister-klient
Kas kasutate teistsugust süsteemi? Apache Cassandra on tasuta ja avatud lähtekoodiga NoSQL-i andmebaasihaldussüsteem, mis on loodud pakkuma skaleeritavust, hig.
Kas kasutate teistsugust süsteemi? Microweber on avatud lähtekoodiga pukseeritav CMS-i ja veebipood. Microweberi lähtekoodi majutatakse GitHubis. See juhend näitab teile
Kas kasutate teistsugust süsteemi? Mattermost on avatud lähtekoodiga isehostitav alternatiiv Slack SAAS-i sõnumsideteenusele. Teisisõnu, Mattermostiga saate ca
Mida vajate Vultr VPS-i, millel on vähemalt 1 GB muutmälu. SSH-juurdepääs (juur-/administraatoriõigustega). 1. samm: BungeeCordi installimine Kõigepealt
Pleski juhtpaneelil on Lets Encrypti jaoks väga kena integratsioon. Lets Encrypt on üks ainsatest SSL-i pakkujatest, kes väljastab sertifikaate täielikult
Lets Encrypt on sertifitseerimisasutus, mis on pühendunud SSL-sertifikaatide tasuta pakkumisele. cPanel on teie ja teie kliendi jaoks loonud korraliku integratsiooni
Kas kasutate teistsugust süsteemi? Concrete5 on avatud lähtekoodiga CMS, mis pakub palju eristatavaid ja kasulikke funktsioone, mis aitavad toimetajatel sisu hõlpsalt luua.
Kas kasutate teistsugust süsteemi? Review Board on tasuta avatud lähtekoodiga tööriist lähtekoodi, dokumentatsiooni, piltide ja palju muu ülevaatamiseks. See on veebipõhine tarkvara
In this guide, you will learn how to setup HTTP authentication for an Nginx web server running on CentOS 7. Requirements To get started, youll need th
YOURLS (Your Own URL Shortener) on avatud lähtekoodiga URL-i lühendamise ja andmeanalüüsi rakendus. Selles artiklis käsitleme installimisprotsessi
Kas kasutate teistsugust süsteemi? Sissejuhatus ArangoDB on avatud lähtekoodiga NoSQL-i andmebaas, millel on paindlik andmemudel dokumentide, graafikute ja võtmeväärtuste jaoks. see on
Sissejuhatus Kataloog /etc/ mängib Linuxi süsteemi toimimises kriitilist rolli. Selle põhjuseks on peaaegu iga süsteemi konfiguratsioon
Paljud süsteemiadministraatorid haldavad suuri servereid. Kui failidele on vaja juurde pääseda erinevatest serveritest, logige igasse eraldi sisse ca
See õpetus hõlmab Half Life 2 mänguserveri installimist süsteemi CentOS 6 System. 1. samm: eeltingimuste installimine Ou seadistamiseks
Laravel GitScrum ehk GitScrum on avatud lähtekoodiga produktiivsuse tööriist, mis on loodud selleks, et aidata arendusmeeskondadel rakendada Scrumi metoodikat sarnasel viisil.
Tehisintellekt ei ole tulevik, see on siin, olevikus. Sellest blogist loe, kuidas tehisintellekti rakendused on mõjutanud erinevaid sektoreid.
Kas olete ka DDOS-i rünnakute ohver ja olete segaduses ennetusmeetodite osas? Oma päringute lahendamiseks lugege seda artiklit.
Võib-olla olete kuulnud, et häkkerid teenivad palju raha, kuid kas olete kunagi mõelnud, kuidas nad sellist raha teenivad? arutleme.
Kas soovite näha Google'i revolutsioonilisi leiutisi ja seda, kuidas need leiutised muutsid iga inimese elu tänapäeval? Seejärel lugege ajaveebi, et näha Google'i leiutisi.
Isejuhtivate autode kontseptsioon tehisintellekti abil teedele jõudmiseks on meil juba mõnda aega unistus. Kuid vaatamata mitmele lubadusele pole neid kusagil näha. Lisateabe saamiseks lugege seda ajaveebi…
Kuna teadus areneb kiiresti, võttes üle suure osa meie jõupingutustest, suureneb ka oht, et allume seletamatule singulaarsusele. Loe, mida singulaarsus meie jaoks tähendada võiks.
Andmete säilitamise meetodid on arenenud alates andmete sünnist. See ajaveeb käsitleb infograafiku alusel andmete salvestamise arengut.
Lugege ajaveebi, et kõige lihtsamal viisil teada saada Big Data Architecture'i erinevaid kihte ja nende funktsioone.
Selles digipõhises maailmas on nutikad koduseadmed muutunud elu oluliseks osaks. Siin on mõned nutikate koduseadmete hämmastavad eelised, mis muudavad meie elu elamisväärseks ja lihtsamaks.
Hiljuti andis Apple välja macOS Catalina 10.15.4 täiendusvärskenduse probleemide lahendamiseks, kuid tundub, et värskendus põhjustab rohkem probleeme, mille tulemuseks on Maci masinate tellimine. Lisateabe saamiseks lugege seda artiklit