PHRACK – Viewer Discretion Advised: (De)coding an iOS Kernel Vulnerability

Per chi non la conoscesse, Phrack è un ezine storica nell’underground hacker che tratta(va) di prhreaking, hacking, sicurezza informatica, crittografia, …

Nel 2005 è stato annunciato che con il numero 63 avrebbe terminato le sue pubblicazioni. Ma negli anni qualche nuova uscita si è avuta (attesa con pazienza dal sottoscritto :D), arrivando alla 69 del maggio 2016.

Oggi ho notato l’uscita di un nuovo paper su Phrack… e non potevo non condividerlo con voi:

http://www.phrack.org/papers/viewer_discretion_advised.html

La sorpresa non è finita qui, dato che è stato pubblicato un CFP ufficiale per P70! Questo significa che a breve uscirà l’ezine 70 🙂

Phrack CFP P70
Phrack CFP P70

Mi mancano gli anni ’90 🙂

Come si verificano I memory leak in Java

Come si verificano I memory leak in Java

Qualche giorno fa ho letto un articolo molto interessante: “How Memory Leaks Happen in a Java Application”.

Uno dei vantaggi del linguaggio Java è quello di gestire la deallocazione degli oggetti in maniera automatica attraverso il “garage collector”. In particolari circostanze questa gestione può fallire e possono verificarsi dei memory leak.

In informatica, un memory leak (“perdita o fuoriuscita di memoria”) è un particolare tipo di consumo non voluto di memoria dovuto alla mancata deallocazione dalla stessa, di variabili/dati non più utilizzati da parte dei processi. (Wikipedia)

I memory leak non dipendono da una errata implementazione del garbage collector,  ma da un uso improprio degli oggetti costruiti dall’applicazione. È un classico problema di PEBCAK (Problem Exists Between Chair And Keyboard), ed è tra i più difficili da diagnosticare.

Leggi tutto “Come si verificano I memory leak in Java”

Protocol Oriented Programming (Swift)

Per alcuni il Protocol Oriented Programming è solo un reinventare l’acqua calda, asserendo che le classi astratte e le interfacce non sono nulla di nuovo o che si tratta semplicemente di una buzzword coniata da Apple.

In effetti è stata proprio Apple nel World Wide Developers Conference (WWDC) del 2015 a dire che con Swift hanno “realizzato il primo linguaggio protocol-oriented”. (tradotto testualmente da “we made the first protocol-oriented programming language”).

Cos’è il Protocol Oriented Programming? È davvero così rivoluzionario? Quali sono i suoi punti deboli?

Leggi tutto “Protocol Oriented Programming (Swift)”

Codable – JSON facile con Swift 4


JSON è ormai utilizzato diffusamente come formato di interscambio dati su internet. È molto comune per uno sviluppatore lavorare con JSON, specie se si tratta di app per smartphone.

In Swift 4 è stato introdotto il protocol Codable come parte del framework Foundation e serializzare o deserializzare un oggetto in JSON richiede tre linee di codice ;).

Le nuove API disponibili nel framework Foundation sono state presentate al WWDC 2017, vi consiglio di guardare il video a questo link: What’s New in Foundation (le API di cui sto parlando vengono illustrate dal minuto 23 in poi).

Vediamo come è diventato immediato e semplice convertire un oggetto in JSON e viceversa.

Leggi tutto “Codable – JSON facile con Swift 4”

Dependency Inversion, Inversion of Control e Dependency Injection

Dependency Inversion, Inversion of Control e Dependency Injection

Nella programmazione a oggetti, si sente spesso parlare di Dependency Inversion e Inversion of Control (Principio di inversione delle Dipendenze,  Inversione del Controllo in italiano). Forse, i termini vi sono noti perché avete utilizzato Spring, ma sapete distinguerne le caratteristiche o comprenderne l’importanza?

In questo articolo cercherò di chiarire e introdurre i concetti che riguardano il Dependency Inversion, Inversion of Control e Dependency Injection. Leggi tutto “Dependency Inversion, Inversion of Control e Dependency Injection”

Ecco le 5 cose che ho detto al mio team

Oggi mi è capitato di leggere questo testo, un breve decalogo di un team lavorativo. Voglio condividerlo con voi.

ECCO LE 5 COSE CHE HO DETTO OGGI AL MIO (OTTIMO) TEAM PER MIGLIORARE LE COSE

Sincerità
Il primo passo per migliorare noi stessi e le relazioni con gli altri è essere sinceri. La sincerità costa, ma ripaga alla grande.

Coraggio
Coraggio nell’affrontare un problema con il desiderio di risolverlo, accettando il rischio di uno scontro, ma che nella maggior parte dei casi si trasforma in un incontro chiarificatore.

Consapevolezza
Acquisire la consapevolezza dell’interdipendenza e che quindi il mio o il tuo successo è il nostro successo, attiva immediatamente atteggiamenti molto più produttivi.

Collaborazione
Solo così un team sarà disponibile a collaborare sempre meglio, creando i presupposti per fare un grande salto di qualità basato su due fattori indispensabili: la fiducia reciproca e l’umiltà di ognuno nel mettersi a disposizione dell’altro, indipendentemente dal ruolo.

Condivisione
Senza dialogo costante non c’è relazione, senza relazione non esiste un gruppo. Condividere, ascoltare, parlare…spesso e bene. Conoscere l’altro sempre meglio.