tecnologia

Scienza e tecnologia

Content delivery networks - CDN

CDN


Le Content delivery networks (CDN) sono reti di distribuzione di contenuti web, fatte di proxy server e distribuite geograficamente in centri dati sparsi per il mondo. L'obiettivo è quello di fornire un'elevata disponibilità e performance distribuendo il servizio rispetto agli utenti finali. Le CDN sono nate alla fine degli anni '90 come mezzo per alleviare i colli di bottiglia delle prestazioni di Internet, quando questo stava assumere una importanza critica per le persone e le imprese. Da allora, le CDN sono cresciute fino a servire gran parte dei contenuti di Internet odierni, compresi testi, grafica script, contenuti scaricabili (file multimediali, software, documenti), applicazioni (e-commerce, portali), i live streaming media, media on-demand e i siti di social media.
LINK

wikipedia
How a CDN Works


What is a CDN | How Content Delivery Networks Work

categorie: 

Una reintroduzione al concetto di cookie HTTP

HTTP cookies

I cookie HTTP sono, ad oltre 25 anni dalla loro invenzione, ancora un ottimo metodo per trattenere informazioni essenziali durante la navigazione di un sito per rendere la propria esperienza congruente, avendo a che fare con un protocollo senza stato come quello HTTP.

Sono anche sfruttati per vari tipi di tracciamento, e per ora solo gli unici che sono stati presi di mira dalle norme della comunità europea.

Dopo tanto tempo, un ripasso completo è assolutamente necessario, per cogliere l'essenza del loro funzionamento e come poterli sfruttare al meglio, e in sicurezza:

A practical, Complete Tutorial on HTTP cookies


categorie: 

GPT-3 spiegato da Computerphile



GPT-3: An Even Bigger Language Model, creato da Robert Miles e pubblicato su Computerphile, continua la spiegazione di questa tecnologia avanzata che promette una nuova rivoluzione informatica.

Il GPT-3 non è altro che un GPT-2 molto più grande, 176 volte più grande. Si tratta di un modello predittivo di token. Data una sequenza di caratteri, avendo "studiato a memoria" Petabyte di dati, è in grado di fornire una predizione di come continuerà questa sequenza. La vera intelligenza sta quindi nei dati che sono stati studiati. E' una tecnologia semplice ma molto efficace. Quello che emerge con il GPT-3 è che nonostante non sia stata sviluppata per compiere azioni specifiche, ma anzi è assolutamente generale, è sorprendentemente capace di riuscire a provare a svolgere varie mansioni non previste, come l'aritmetica e la poesia.

arxiv.org
A robot wrote this entire article. Are you scared yet, human?


categorie: 

Reversing - Secrets of Reverse Engineering

Reversing
Non si può essere degli esperti di qualsiasi cosa, ma è possibile spendere una parte di tempo per cercare di carpire e capire i segreti di qualcun altro e provare applicarli ai propri casi d'uso.

Reversing - Secrets of Reverse Engineering è il primo libro diventato popolare che mostra come il reverse engineering del software può aiutare a difendersi dalle minacce alla sicurezza, accelerare lo sviluppo e sbloccare i segreti dei prodotti della concorrenza. E' scritto in modo eccellente e raccoglie informazioni preziosissime.

Si inizia con una introduzione sul reverse engineering - i principi di funzionamento dei computer, i sistemi operativi e il linguaggio assembly - e poi si discute delle varie
applicazioni. Il libro fornisce ai lettori tecniche pratiche e approfondite per il reverse engineering del software. Il libro è diviso in due parti, la prima tratta il reverse engineering relativo alla sicurezza e la seconda esplora gli aspetti più pratici del reverse engineering. Inoltre, l'autore spiega come applicare le tecniche ad una libreria di software di terze parti per migliorare l'interfacciamento e come studiare un programma per costruire un prodotto migliore.

goodreads.com
wikipedia

Reverse Engineering


Tech with Tim: Flutter

Tech with Tim è il canale youtube di Timothy Ruscica, che si occupa di programmazione in Python, sviluppo di giochi con Pygame, Tutorial Java e Machine Learning. Un elenco di alcune delle cose che ama pubblicare sul mio canale. Il suo obiettivo è condividere la conoscenza della programmazione e permettere a tutti, gratuitamente, l'accesso all'istruzione.

Flutter è un ambiente portabile creato da Google che usa dart per lo sviluppo di applicazioni per mobile, web e desktop.

twitter
instagram
patreon
github

[via]

What's new in Flutter 2019

Internet - come funziona partendo dai principi di base

internet first principles
Exmplained from first principles è un sito che si occupa di divulgazione tecnologica e scientifica. Il metodo è molto semplice. Andare con ordine, non lasciando nulla di sottinteso, e progredendo con un ordine rigoroso enunciando ciascuno dei principi sui quali si basa la soluzione tecnologica o scientifica.

Ad esempio questo è il caso di internet.

[via]

Un linguaggio chiamato Motoko

motoko internet computer wasm language
In questo articolo viene presentato il concetto di "internet computer", una piattaforma online che gira in Wasm e usa il concetto di "actors", simili ad "oggetti", incapsulano il loro stato e sono dotati di metodi propri che non restituiscono risultati, ad invocazione asincrona ma e gestione della concorrenza grazie all'esecuzione atomica.

Inoltre, viene presentato un nuovo linguaggio: motoko

Internet Computer
motoko base library


Kubernetes Handbook

Kubernetes

Kubernetes è una infrastruttura di orchestrazione che automatizza l'installazione, la gestione, lo scaling, e il collegamento di container.

Kubernetes è stato progettato da Google in Go ed è FOSS dal 2014.

Il corso su freecodecamp "Kubernetes Handbook" guida alla gestione del software partendo dal classico Hello World.

kubernetes - stack overflow podcast

[via]

Kubernetes in 5 mins

Docker and Kubernetes Tutorial | Full Course [2020]

L'interessante storia dei motori di ricerca

web search history altavista
Carl Hendy noto esperto di SEO, ci racconta la storia dei motori di ricerca. A partire da DMOZ, che indicizzava 100.000 pagine web nate poco dopo l'invenzione del protocollo HTTP da parte di Tim Berners-Lee al CERN.

Parte di questa storia fa da sfondo all'imperdibile serie Halt and Catch Fire.


L'invenzione del QR code

QRcode
QR sta per Quick Response, ed è stato inventato nel 1994 nel campo dell'industria automobilistica dall'ingegner Masahiro Hara alla Denso di Aichi, in Giappone. Lo scopo iniziale era riuscire a tracciare velocemente il codice dei vari pezzi. Prima della sua introduzione, infatti, sulle scatole erano riportati anche fino a 10 codici a barre e il processo di cercarle e leggerle tutte con il lettore elettronico era particolarmente oneroso. Al giorno d'oggi sono comparsi ovunque e in Giappone sono addirittura arrivati sulle lapidi per fornire informazioni sui deceduti.

Si tratta di una serie di codici a barre, disposti a matrice. Questo permette di stipare fino a 200 volte le informazioni rispetto ad un codice a barre normale, ovvero più di 4K.

L'ispirazione venne dal Go, ma per fare in modo che il sistema fosse sviluppato e adottato la Denso lasciò liberi i brevetti, e la strategia ha funzionato.

wikipedia

[via]

categorie: 

Elettronica con Voultar

I video di Voultar si addentrano nei meandri dei circuiti delle gloriose console d'epoca per migliorarne le performance. Quelle schede elettroniche che fanno girare i videogame della golden age nascondono moltissimi, interessanti segreti. Un prodotto eccellente è sempre frutto di una sinergia tra hardware e software.

Voultar Store

[via]

Versus

versus oppo reno 2
Versus permette di orientarsi nell'acquisto confrontando più articoli in base alle loro caratteristiche salienti risparmiando tempo e denaro.

Ad esempio con gli smartphone, dei quali le aziende propongono una gamma molto varia che risulta astrusa ed è difficile capire bene quale sia il più adatto alle proprie esigenze.

Ma ci sono anche tablet, laptop, PC e accessori, TV, audio, addirittura anche app.

Oppo Reno 2 VS Oppo Reno 4 Pro


categorie: 

SaaS - Software as a Service

SaaS
Se ne sente parlare dappertutto, ma cos'è realmente il "SaaS" ?

Si definisce Software as a service un modello di licenza e "distribuzione" su licenza in cui i programmi sono ospitati centralmente. Una vecchia definizione era "software on-demand". E' soprattutto parte della nomenclatura di moda del cloud computing, insieme all'infrastruttura come servizio (IaaS), alla piattaforma come servizio (PaaS), al desktop come servizio (DaaS), al software gestito come servizio (MSaaS), al backend mobile come servizio (MBaaS), al datacenter come servizio (DCaaS) e la gestione dell'information technology come servizio (ITMaaS).

Le applicazioni SaaS sono tipicamente accessibili dagli utenti che utilizzano un thin client, ad esempio tramite un browser web. Il SaaS è diventato un modello di fruizione comune per molte applicazioni aziendali, tra cui software per ufficio, software di messaggistica, software per l'elaborazione delle retribuzioni, DBMS, gestionali, CAD, tool di sviluppo, gamification, virtualizzazione, contabilità, collaborazione, gestione delle relazioni con i clienti (CRM), sistemi informativi gestionali (MIS), pianificazione delle risorse aziendali (ERP), fatturazione, gestione delle risorse umane (HRM), acquisizione di talenti, sistemi di gestione dell'apprendimento, gestione dei contenuti (CM), sistemi informativi geografici (GIS) e gestione del service desk. Il SaaS è stato incorporato nella strategia di quasi tutte le principali società di software enterprise.

The SaaS Handbook – How to Build Your First Software-as-a-Service Product Step-By-Step


LINQ

linq

Linq ("Language Integrated Query") è un componente del Microsoft .NET Framework che aggiunge funzionalità di interrogazione dati stile SQL. Può essere utilizzato per estrarre ed elaborare comodamente dati da array, classi numerabili, documenti XML, database relazionali e fonti di dati di terze parti. Altri usi mediante espressioni di query per comporre in modo leggibile calcoli arbitrari, includono la costruzione di gestori di eventi o parser monadici. Linq definisce anche un insieme di nomi di metodi (chiamati operatori di query standard, o operatori di sequenza standard) per tradurre espressioni in stile fluente in espressioni che utilizzano questi nomi di metodi, espressioni lambda e tipi anonimi.

Esistono versioni di LINQ per PHP (PHPLinq), JavaScript (linq.js), TypeScript (linq.ts) e ActionScript (ActionLinq), anche se nessuna è strettamente equivalente all'originale .NET implementato in C#, F# e VB.NET nei quali è una parte integrante del linguaggio, non una libreria esterna, e spesso risponde ad una più ampia gamma di esigenze.

Language Integrated Query (LINQ)
LINQ to Objects for the .NET developer
LINQ basics

LINQ: a language to rule them all!

C# Tutorial 15 LINQ Tutorial

C# Essentials: Linq for Lists - Sorting, Filtering, and Aggregating Lists Easily

StyleGAN 2

Il nuovo progetto di Nvidia denominato StyleGAN2, presentato a CVPR 2020, utilizza il transfer learning per generare un numero apparentemente infinito di ritratti in una varietà infinita di stili pittorici. Il lavoro si basa sul famoso progetto StyleGAN precedentemente pubblicato dallo stesso team.

In questa nuova demo, il modello permette all'utente di creare ed esplorare in modo fluido i ritratti autogenerati. Il tutto avviene controllando separatamente il contenuto, l'identità, l'espressione e la posa del soggetto. Gli utenti possono anche modificare lo stile artistico, la combinazione di colori e l'aspetto delle pennellate. Questo nuovo modello è stato oggetto di training usando un sistema NVIDIA DGX composto da otto GPU NVIDIA V100, con il framework di Deep Learning TensorFlow (versione 1.3) con accelerazione cuDNN.

stylegan2 su 80.lv

il paper: Analyzing and Improving the Image Quality of StyleGAN
Nvidia e Tensorflow
stylegan2 su github


Gitpod

gitpod

gitpod.io è un ambiente online con IDE che può essere lanciato da qualsiasi pagina di GitHub.

In pochi secondi, Gitpod fornisce un ambiente di sviluppo completamente funzionante, incluso un IDE VS Code-powered (Theia) e un contenitore Linux cloud-based configurato appositamente per il progetto in questione. E' la maniera più rapida in assoluto per provare un progetto il cui codice è su github, anche se occorre predisporlo.

tips & tricks
Frictionless Open-Source Contributions
rust in gitpod
php in gitpod


Online Github Work Environments - A Gitpod Review

Gitpod Basics Episode 2

Semantic Versioning in software development

semantic versioning
Adottare la specifica del Semantic Versioning nel numerare i rilasci del software permette di dare un significato preciso ad ogni versione in modo da far capire al volo cosa potrebbe andare storto e cosa ci si dovrebbe aspettare installando ciò che si è appena scaricato.

Al cambio di "major release" ci si deve aspettare che varie cose possano rompersi, che le feature deprecate non siano più supportate, che ci siano modifiche anche radicali nel comportamento del software e che ci siano cambiamenti nelle API. La minor version introduce nuove feature retrocompatibili, ed infine la patch o fix risolve bug restando sempre compatibile con le versioni precedenti.

C'è anche la Grammatica Backus-Naur per la correttezza formale delle versioni.

perchè usare il semantic versioning
FAQ


categorie: 

Il linguaggio di programmazione più amato: Rust

Rust Programming language

Rust è un linguaggio di programmazione multi-paradigma incentrato su sicurezza e performance, supporta un elevato numero di transazioni concorrenti tra sistemi. E' simile al C++ ma fortunatamente è "memory safe", anche se non usa un garbage collector. E' stato sviluppato da Graydon Hoare per Mozilla a partire dal 2006, e la prima versione stabile è stata lanciata nel 2015.

github original repository
github topics: rust
crates.io
rustlings: Small exercises to get you used to reading and writing Rust code
rust reference
String VS str
Rust marks five years since its 1.0 release

install rust
rust compie 5 anni, la storia fino ad ora
reddit

rust on gitpod


Intro to the Rust programming language

Rust: A Language for the Next 40 Years - Carol Nichols

Rust Crash Course | Rustlang

categorie: