tecnologia

Scienza e tecnologia

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


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
crates.io
rustlings: Small exercises to get you used to reading and writing Rust code
rust reference
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: 

Corso Completo di PyTorch

Il corso si chiama PyTorch for Deep Learning - Full Course / Tutorial, ed è messo a disposizione da free code camp. E' uno dei corsi più lineari e comprensibili in una materia della quale si parla moltissimo e ci sono tanti tutorial, ma che forniscono solo una conoscenza frammentaria dell'argomento.

pytorch.org è una libreria open source di Machine Learning che permette di implementare computer vision e natural language processing. E' stata sviluppata inizialmente presso il laboratorio di ricerca sulla AI di facebook.
pytorch VS tensorflow


AI Jukebox - Un altro passo avanti nella generazione automatica di contenuti multimediali

okuribito
OpenAI presenta Jukebox, un software anticipato oltre 30 anni fa da William Gibson che ora inizia a diventare realtà. Si tratta di una rete neurale che genera musica, compresa la parte del canto (ancora rudimentale), in una varietà di generi e stili basati su artisti reali, come ad esempio Katy Perry.

Il modello e il codice sono stati rilasciati, insieme ad uno strumento per esplorare i campioni che vengono generati.

La storia dell'informatica insegna che il miglioramento costante del codice e delle tecniche e l'aumento della potenza dei processori e della memoria producono software quasi sempre migliore, fino ad arrivare all'indistinguibile dalla realtà. A quando la prima hit di una AI al primo posto in classifica ?

il paper

jukedek alternatives for music generation
Fugue
No Lick
sounds ui good
music for makers
stampede
music maker
tune pocket


Life Support | 360° VR Music Video Composed By AI

categorie: 

Keras - la libreria per Machine Learning più accessibile

keras

Keras è un'API per reti neurali di alto livello, scritta in Python e in grado di funzionare su TensorFlow, CNTK o Theano.

È stata sviluppata con l'obiettivo di consentire una rapida sperimentazione. Essere in grado di passare dall'idea al risultato nel minor tempo possibile è la chiave per fare una buona ricerca.

Keras viene usato se si ha bisogno di una libreria per il Deep learning che:

- Permette una facile e veloce prototipazione (attraverso la facilità d'uso, la modularità e l'estensibilità).
- Supporta sia reti convoluzionali che reti ricorrenti, così come combinazioni delle due.
- Funziona senza soluzione di continuità su CPU e GPU.

TensorFlow: Writing custom layers and models with Keras
github
dev.to: keras
documentazione


categorie: 

Imparare Javascript creando 7 giochi - corso completo

Ania Kubow (instagram, youtube, github) racconta la creazione di ben 7 giochi in javascript puro ("vanilla"), ovvero senza l'uso di framework complessi.

Nel corso Imparare Javascript creando 7 giochi - video corso completo verranno creati, in ordine di complessità crescente e riusando nei giochi avanzati i metodi imparati nei giochi precedenti:
- memory
- Whack-a-mole
- Forza 4
- Snake (nokia version)
- Space Invaders
- Frogger
- Tetris