Installer Plesk på CentOS 7
Bruker du et annet system? Plesk er et proprietært kontrollpanel for webverten som lar brukere administrere sine personlige og/eller klienters nettsteder, databaser
Matrix er en åpen standard kommunikasjonsprotokoll for desentralisert sanntidskommunikasjon. Matrix er implementert som hjemmeservere som distribueres over internett; derfor er det ikke noe enkelt punkt for kontroll eller feil. Matrix tilbyr et RESTful HTTP API for å opprette og administrere de distribuerte chat-serverne som inkluderer sending og mottak av meldinger, invitering og administrasjon av chatterommedlemmer, vedlikehold av brukerkontoer og avanserte chat-funksjoner som VoIP og videosamtaler, etc. Matrix etablerer også en sikker synkronisering mellom hjemmeservere som er distribuert over hele verden.
Synapse er implementeringen av Matrix hjemmeserver skrevet av Matrix-teamet. Matrix-økosystemet består av nettverket av mange fødererte hjemmeservere distribuert over hele kloden. En Matrix-bruker bruker en chat-klient for å koble til hjemmeserveren, som igjen kobler til Matrix-nettverket. Hjemmeserver lagrer chatloggen og påloggingsinformasjonen til den aktuelle brukeren.
I denne opplæringen vil vi bruke matrix.example.com
som domenenavnet som brukes for Matrix Synapse. Erstatt alle forekomster av matrix.example.com
med ditt faktiske domenenavn du vil bruke for Synapse-hjemmeserveren.
Oppdater basissystemet ditt ved å bruke veiledningen Hvordan oppdatere CentOS 7 . Når systemet ditt er oppdatert, fortsett å installere Python.
Matrix Synapse trenger Python 2.7 for å fungere. Python 2.7 kommer forhåndsinstallert i alle CentOS-serverforekomster. Du kan sjekke den installerte versjonen av Python.
python -V
Du bør få en lignende utgang.
[user@vultr ~]$ python -V
Python 2.7.5
Endring av standardversjonen av Python kan ødelegge YUM repository manager. Men hvis du vil ha den nyeste versjonen av Python, kan du gjøre en alternativ installasjon, uten å erstatte standard Python.
Installer pakkene i Development tools
gruppen som kreves for å kompilere installasjonsfilene.
sudo yum groupinstall -y "Development tools"
Installer noen flere nødvendige avhengigheter.
sudo yum -y install libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel redhat-rpm-config python-virtualenv libffi-devel openssl-devel
Installer Python pip. Pip er avhengighetsbehandleren for Python-pakker.
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
Lag et virtuelt miljø for Synapse-applikasjonen din. Python virtuelt miljø brukes til å lage et isolert virtuelt miljø for et Python-prosjekt. Et virtuelt miljø inneholder sine egne installasjonskataloger og deler ikke biblioteker med globale og andre virtuelle miljøer.
sudo virtualenv -p python2.7 /opt/synapse
Gi eierskapet til katalogen til gjeldende bruker.
sudo chown -R $USER:$USER /opt/synapse/
Aktiver nå det virtuelle miljøet.
source /opt/synapse/bin/activate
Sørg for at du har den nyeste versjonen av pip
og setuptools
.
pip install --upgrade pip
pip install --upgrade setuptools
Installer den nyeste versjonen av Synapse ved å bruke pip.
pip install https://github.com/matrix-org/synapse/tarball/master
Kommandoen ovenfor vil ta litt tid å utføre når den henter og installerer den nyeste versjonen av Synapse og alle avhengighetene fra Github-depotet.
Synapse bruker SQLite som standarddatabase. SQLite lagrer dataene i en database som holdes som en flat fil på disken. Å bruke SQLite er veldig enkelt, men anbefales ikke for produksjon da det er veldig tregt sammenlignet med PostgreSQL.
PostgreSQL er et objektrelasjonsdatabasesystem. Du må legge til PostgreSQL-depotet i systemet ditt, siden applikasjonen ikke er tilgjengelig i standard YUM-depot.
sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Installer PostgreSQL-databaseserveren.
sudo yum -y install postgresql96-server postgresql96-contrib
Initialiser databasen.
sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
Rediger for /var/lib/pgsql/9.6/data/pg_hba.conf
å aktivere MD5-basert autentisering.
sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf
Finn følgende linjer og bytt peer
til trust
og idnet
til md5
.
# 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 idnet
# IPv6 local connections:
host all all ::1/128 idnet
Når den er oppdatert, skal konfigurasjonen se slik ut.
# 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
Start PostgreSQL-serveren og la den starte automatisk ved oppstart.
sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6
Endre passordet for standard PostgreSQL-bruker.
sudo passwd postgres
Logg Inn.
sudo su - postgres
Opprett en ny PostgreSQL-bruker for Synapse.
createuser synapse
PostgreSQL gir psql
skallet for å kjøre spørringer på databasen. Bytt til PostgreSQL-skallet ved å kjøre.
psql
Angi et passord for den nyopprettede brukeren for Synapse-databasen.
ALTER USER synapse WITH ENCRYPTED password 'DBPassword';
Erstatt DBPassword
med et sterkt passord og noter det ettersom vi bruker passordet senere. Opprett en ny database for PostgreSQL-databasen.
CREATE DATABASE synapse ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' template=template0 OWNER synapse;
Gå ut av psql
skallet.
\q
Bytt til sudo
brukeren fra gjeldende postgres
bruker.
exit
Du må også installere pakkene som kreves for at Synapse skal kommunisere med PostgreSQL-databaseserveren.
sudo yum -y install postgresql-devel libpqxx-devel.x86_64
source /opt/synapse/bin/activate
pip install psycopg2
Synapse krever en konfigurasjonsfil før den kan startes. Konfigurasjonsfilen lagrer serverinnstillingene. Bytt til det virtuelle miljøet og generer konfigurasjonen for Synapse.
source /opt/synapse/bin/activate
cd /opt/synapse
python -m synapse.app.homeserver --server-name matrix.example.com --config-path homeserver.yaml --generate-config --report-stats=yes
Replace matrix.example.com
with your actual domain name and make sure that the server name is resolvable to the IP address of your Vultr instance. Provide --report-stats=yes
if you want the servers to generate the reports, provide --report-stats=no
to disable the generation of reports and statistics.
You should see a similar output.
(synapse)[user@vultr synapse]$ python -m synapse.app.homeserver --server-name matrix.example.com --config-path homeserver.yaml --generate-config --report-stats=yes
A config file has been generated in 'homeserver.yaml' for server name 'matrix.example.com' with corresponding SSL keys and self-signed certificates. Please review this file and customise it to your needs.
If this server name is incorrect, you will need to regenerate the SSL certificates
By default, the homeserver.yaml
is configured to use a SQLite database. We need to modify it to use the PostgreSQL database we have created earlier.
Edit the newly created homeserver.yaml
.
nano homeserver.yaml
Find the existing database configuration which uses SQLite3. Comment out the lines as shown below. Also, add the new database configuration for PostgreSQL. Make sure that you use the correct database credentials.
# Database configuration
#database:
# The database engine name
#name: "sqlite3"
# Arguments to pass to the engine
#args:
# Path to the database
#database: "/opt/synapse/homeserver.db"
database:
name: psycopg2
args:
user: synapse
password: DBPassword
database: synapse
host: localhost
cp_min: 5
cp_max: 10
Registration of a new user from a web interface is disabled by default. To enable registration, you can set enable_registration
to True
. You can also set a secret registration key, which allows anyone to register who has the secret key, even if registration is disabled.
enable_registration: False
registration_shared_secret: "YPPqCPYqCQ-Rj,ws~FfeLS@maRV9vz5MnnV^r8~pP.Q6yNBDG;"
Save the file and exit from the editor. Now you will need to register your first user. Before you can register a new user, though, you will need to start the application first.
source /opt/synapse/bin/activate && cd /opt/synapse
synctl start
You should see the following lines.
2017-09-05 11:10:41,921 - twisted - 131 - INFO - - SynapseSite starting on 8008
2017-09-05 11:10:41,921 - twisted - 131 - INFO - - Starting factory <synapse.http.site.SynapseSite instance at 0x44bbc68>
2017-09-05 11:10:41,921 - synapse.app.homeserver - 201 - INFO - - Synapse now listening on port 8008
2017-09-05 11:10:41,922 - synapse.app.homeserver - 442 - INFO - - Scheduling stats reporting for 3 hour intervals
started synapse.app.homeserver('homeserver.yaml')
Register a new Matrix user.
register_new_matrix_user -c homeserver.yaml https://localhost:8448
You should see the following.
(synapse)[user@vultr synapse]$ register_new_matrix_user -c homeserver.yaml https://localhost:8448
New user localpart [user]: admin
Password:
Confirm password:
Make admin [no]: yes
Sending registration request...
Success.
Finally, before you can use the Homeserver, you will need to allow port 8448 through the Firewall. Port 8448
is used as the secured federation port. Homeservers use this port to communicate with each other securely. You can also use the built-in Matrix web chat client through this port.
sudo firewall-cmd --permanent --zone=public --add-port=8448/tcp
sudo firewall-cmd --reload
You can now log in to the Matrix web chat client by going to https://matrix.example.com:8448
through your favorite browser. You will see a warning about the SSL certificate as the certificates used are self-signed. We will not use this web chat client as it is outdated and not maintained anymore. Just try to check if you can log in using the user account you just created.
Instead of using a self-signed certificate for securing federation port, we can use Let's Encrypt free SSL. Let's Encrypt free SSL can be obtained through the official Let's Encrypt client called Certbot.
Install Certbot.
sudo yum -y install certbot
Adjust your firewall setting to allow the standard HTTP
and HTTPS
ports through the firewall. Certbot needs to make an HTTP
connection to verify the domain authority.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
To obtain certificates from Let's Encrypt CA, you must ensure that the domain for which you wish to generate the certificates is pointed towards the server. If it is not, then make the necessary changes to the DNS records of your domain and wait for the DNS to propagate before making the certificate request again. Certbot checks the domain authority before providing the certificates.
Now use the built-in web server in Certbot to generate the certificates for your domain.
sudo certbot certonly --standalone -d matrix.example.com
The generated certificates are likely to be stored in /etc/letsencrypt/live/matrix.example.com/
. The SSL certificate will be stored as fullchain.pem
and the private key will be stored as privkey.pem
.
Copy the certificates.
sudo cp /etc/letsencrypt/live/matrix.example.com/fullchain.pem /opt/synapse/letsencrypt-fullchain.pem
sudo cp /etc/letsencrypt/live/matrix.example.com/privkey.pem /opt/synapse/letsencrypt-privkey.pem
You will need to change the path to the certificates and keys from the homeserver.yaml
file. Edit the configuration.
nano /opt/synapse/homeserver.yaml
Find the following lines and modify the path.
tls_certificate_path: "/opt/synapse/letsencrypt-fullchain.pem"
# PEM encoded private key for TLS
tls_private_key_path: "/opt/synapse/letsencrypt-privkey.pem"
Save the file and exit from the editor. Restart the Synapse server so that the changes can take effect.
source /opt/synapse/bin/activate && cd /opt/synapse
synctl restart
Let's Encrypt certificates are due to expire in 90 days, so it is recommended that you setup auto renewal for the certificates using cron jobs. Cron is a system service which is used to run periodic tasks.
Create a new script to renew certificates and copy the renewed certificates to the Synapse directory.
sudo nano /opt/renew-letsencypt.sh
Populate the file.
#!/bin/sh
/usr/bin/certbot renew --quiet --nginx
cp /etc/letsencrypt/live/matrix.example.com/fullchain.pem /opt/synapse/letsencrypt-fullchain.pem
cp /etc/letsencrypt/live/matrix.example.com/privkey.pem /opt/synapse/letsencrypt-privkey.pem
Provide the execution permission.
sudo chmod +x /opt/renew-letsencypt.sh
Open the cron job file.
sudo crontab -e
Add the following line at the end of the file.
30 5 * * 1 /opt/renew-letsencypt.sh
The above cron job will run every Monday at 5:30 AM. If the certificate is due to expire, it will automatically renew them.
Now you can visit https://matrix.example.com:8448
. You will see that there is no SSL warning before connection.
Apart from the secured federation port 8448
, Synapse also listens to the unsecured client port 8008
. We will now configure Nginx as a reverse proxy to the Synapse application.
sudo yum -y install nginx
Create a new configuration file.
sudo nano /etc/nginx/conf.d/synapse.conf
Populate the file with the following content.
server {
listen 80;
server_name matrix.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name matrix.example.com;
ssl_certificate /etc/letsencrypt/live/matrix.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/matrix.example.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/synapse.access.log;
location /_matrix {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
Restart and enable Nginx to automatically start at boot time.
sudo systemctl restart nginx
sudo systemctl enable nginx
Finally, you can verify if Synapse can be accessed through the reverse proxy.
curl https://matrix.example.com/_matrix/key/v2/server/auto
You should get similar output.
[user@vultr ~]$ curl https://matrix.example.com/_matrix/key/v2/server/auto
{"old_verify_keys":{},"server_name":"matrix.example.com","signatures":{"matrix.example.com":{"ed25519:a_ffMf":"T/Uq/UN5vyc4w7v0azALjPIJeZx1vQ+HC6ohUGkTSqiFI4WI/ojGpb2763arwSSQLr/tP/2diCi1KLU2DEnOCQ"}},"tls_fingerprints":[{"sha256":"eorhQj/kubI2PEQZyBZvGV7K1x3EcQ7j/AO2MtZMplw"}],"valid_until_ts":1504876080512,"verify_keys":{"ed25519:a_ffMf":{"key":"Gc1hxkpPmQv71Cvjyk+uzR5UtrpmgV/UwlsLtosawEs"}}}
It is recommended to use the Systemd service to manage the Synapse server process. Using Systemd will ensure that the server is automatically started on system startup and failures.
Create a new Systemd service file.
sudo nano /etc/systemd/system/matrix-synapse.service
Populate the file.
[Unit]
Description=Matrix Synapse service
After=network.target
[Service]
Type=forking
WorkingDirectory=/opt/synapse/
ExecStart=/opt/synapse/bin/synctl start
ExecStop=/opt/synapse/bin/synctl stop
ExecReload=/opt/synapse/bin/synctl restart
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=synapse
[Install]
WantedBy=multi-user.target
Now you can quickly start the Synapse server.
sudo systemctl start matrix-synapse
To stop or restart the server using following commands.
sudo systemctl stop matrix-synapse
sudo systemctl restart matrix-synapse
You can check the status of service.
sudo systemctl status matrix-synapse
Matrix Synapse server is now installed and configured on your server. As the built-in web client for Matrix is outdated, you can choose from the variety of the client applications available for chat. Riot is the most popular chat client, which is available on almost all platforms. You can use the hosted version of Riot's web chat client, or you can also host a copy of it on your own server. Apart from this, you can also use Riot's desktop and mobile chat clients, which are available for Windows, Mac, Linux, IOS and Android.
Hvis du ønsker å være vert for din egen kopi av Riot-webklienten, kan du lese videre for instruksjonene for å installere Riot på serveren din. For vertsbaserte, stasjonære og mobile klienter kan du bruke brukernavnet og passordet ditt for å logge inn direkte på hjemmeserveren din. Bare velg my Matrix ID
fra rullegardinmenyen til Sign In
alternativet og oppgi brukernavnet og passordet du har opprettet under registreringen av en ny bruker. Klikk på Custom server
og bruk domenenavnet til Synapse-forekomsten. Ettersom vi allerede har konfigurert Nginx, kan vi bare bruke https://matrix.example.com
som hjemmeserver og https://matrix.org
som URL for identitetsserver.
Riot er også åpen kildekode og gratis å hoste på din egen server. Det krever ingen database eller avhengigheter. Siden vi allerede har en Nginx-server kjører, kan vi være vert for den på samme server.
The domain or subdomain you are using for Synapse and Riot must be different to avoid cross-site scripting. However, you can use two subdomains of the same domain. In this tutorial, we will be using
riot.example.com
as the domain for the Riot application. Replace all occurrence ofriot.example.com
with your actual domain or subdomain for the Riot application.
Last ned Riot på serveren din.
cd /opt/
sudo wget https://github.com/vector-im/riot-web/releases/download/v0.12.3/riot-v0.12.3.tar.gz
Du kan alltid finne lenken til den nyeste versjonen på Riots Github .
Trekk ut arkivet.
sudo tar -xzf riot-v*.tar.gz
Gi nytt navn til katalogen for enkel håndtering.
sudo mv riot-v*/ riot/
Fordi vi allerede har installert Certbot, kan vi generere sertifikatene direkte. Sørg for at domenet eller underdomenet du bruker peker mot serveren.
sudo systemctl stop nginx
sudo certbot certonly --standalone -d riot.example.com
De genererte sertifikatene vil sannsynligvis bli lagret i /etc/letsencrypt/live/riot.example.com/
katalogen.
Opprett en virtuell vert for Riot-applikasjonen.
sudo nano /etc/nginx/conf.d/riot.conf
Fyll ut filen.
server {
listen 80;
server_name riot.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name riot.example.com;
ssl_certificate /etc/letsencrypt/live/riot.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/riot.example.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
root /opt/riot;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
access_log /var/log/nginx/riot.access.log;
}
Kopier eksempelkonfigurasjonsfilen.
sudo cp /opt/riot/config.sample.json /opt/riot/config.json
Rediger nå konfigurasjonsfilen for å gjøre noen få endringer.
sudo nano /opt/riot/config.json
Finn følgende linjer.
"default_hs_url": "https://matrix.org",
"default_is_url": "https://vector.im",
Erstatt verdien til standard hjemmeserver-URL med URL-en til Matrix-serveren. For identitetsserver-URLen kan du bruke standardalternativet, eller du kan også oppgi verdien til Matrix-identitetsserveren, som er https://matrix.org
.
"default_hs_url": "https://matrix.example.com",
"default_is_url": "https://matrix.org",
Lagre filen og avslutt. Gi eierskap til filene til Nginx-brukeren.
sudo chown -R nginx:nginx /opt/riot/
Start Nginx på nytt.
sudo systemctl restart nginx
Du kan få tilgang til Riot på https://riot.example.com
. Du kan nå logge inn med brukernavnet og passordet du har opprettet tidligere. Du kan koble til ved å bruke standardserveren siden vi allerede har endret standard Matrix-serveren for applikasjonen vår.
Du har nå en Matrix Synapse-hjemmeserver oppe og kjører. Du har også en vertslig kopi av Riot, som du kan bruke til å sende en melding til andre personer ved å bruke deres Matrix ID, e-post eller mobilnummer. Start med å opprette et chatterom på serveren din og inviter vennene dine på Matrix til å bli med i chatterommet du har opprettet.
Bruker du et annet system? Plesk er et proprietært kontrollpanel for webverten som lar brukere administrere sine personlige og/eller klienters nettsteder, databaser
Squid er et populært, gratis Linux-program som lar deg lage en webproxy for videresending. I denne veiledningen vil du se hvordan du installerer Squid på CentOS for å gjøre deg om
Introduksjon Lighttpd er en apachegaffel som har som mål å være mye mindre ressurskrevende. Den er lett, derav navnet, og er ganske enkel å bruke. Installer
VULTR har nylig gjort endringer på sin side, og alt skal nå fungere bra ut av boksen med NetworkManager aktivert. Skulle du ønske å deaktivere
Icinga2 er et kraftig overvåkingssystem, og når det brukes i en master-klient-modell, kan det erstatte behovet for NRPE-baserte overvåkingskontroller. Mester-klienten
Bruker du et annet system? Apache Cassandra er et gratis og åpen kildekode NoSQL-databasebehandlingssystem som er designet for å gi skalerbarhet, høy
Bruker du et annet system? Microweber er en åpen kildekode dra og slipp CMS og nettbutikk. Microweber-kildekoden er vert på GitHub. Denne guiden vil vise deg
Bruker du et annet system? Vanilla forum er en åpen kildekode-forumapplikasjon skrevet i PHP. Det er en fullt tilpassbar, enkel å bruke og støtter ekstern
Bruker du et annet system? Mattermost er et åpen kildekode, selvdrevet alternativ til Slack SAAS-meldingstjenesten. Med andre ord, med Mattermost kan du ca
Hva du trenger En Vultr VPS med minst 1 GB RAM. SSH-tilgang (med root/administratorrettigheter). Trinn 1: Installere BungeeCord Først
Plesk-kontrollpanelet har en veldig fin integrasjon for Lets Encrypt. Lets Encrypt er en av de eneste SSL-leverandørene som gir ut sertifikater komplett
Lets Encrypt er en sertifiseringsinstans dedikert til å tilby SSL-sertifikater gratis. cPanel har bygget en ryddig integrasjon slik at du og din klient
Bruker du et annet system? Concrete5 er et åpen kildekode CMS som tilbyr mange karakteristiske og nyttige funksjoner for å hjelpe redaktører med å produsere innhold enkelt og
Bruker du et annet system? Review Board er et gratis og åpen kildekodeverktøy for gjennomgang av kildekode, dokumentasjon, bilder og mye mer. Det er nettbasert programvare
I denne veiledningen lærer du hvordan du setter opp HTTP-autentisering for en Nginx-webserver som kjører på CentOS 7. Krav For å komme i gang trenger du
Bruker du et annet system? GoAccess er en åpen kildekode-nettlogganalysator. Du kan bruke den til analyse av logger på sanntidsbasis i enten terminalen eller
YOURLS (Your Own URL Shortener) er en åpen kildekode-applikasjon for URL-forkorting og dataanalyse. I denne artikkelen vil vi dekke installasjonsprosessen
Bruker du et annet system? Introduksjon ArangoDB er en åpen kildekode NoSQL-database med en fleksibel datamodell for dokumenter, grafer og nøkkelverdier. Det er
Innledning /etc/-katalogen spiller en kritisk rolle i måten et Linux-system fungerer på. Grunnen til dette er fordi nesten alle systemkonfigurasjoner
Mange systemadministratorer administrerer store mengder servere. Når filer må åpnes på tvers av forskjellige servere, logger du på hver enkelt individuelt ca
Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.
Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.
Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.
Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.
Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...
Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.
Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.
Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.
I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.
Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer