My first 100 days with a MacBook Pro 16″ impression: MacOS vs KDE/Linux comparison

During autumn/winter 2019, the Slimbook Katana I had started showing symptoms(*) that I would’ve been better off changing laptop, soon. Therefore I started looking for viable alternatives and you can imagine my surprise when Apple announced, during that very same period, that a new MBP was about to be released. With the promise of finally fixing all the poor engineering decisions (i.e. the keyboard) made in the past few generations of MackBooks, I said to myself “Well, this could finally be the time I’ll buy one of these machines”.

So I waited for about a month, reading and watching online reviews to get a better idea about it, until I finally settled on the decision; and since mid-January 2020, after 16 years of day-to-day Linux usage, I moved to Apple, at least on the personal side.

Note: I’m not going to repeat what countless reviews already said about how good the product is; it truly is the best hardware I’ve had the pleasure to play with. I’ll point out instead what I, as a KDE/Linux user, would have expected to see/have in the software department, given how much appraisal MacBooks receive from their regular userbase.

The point of this blog post is to give a more down-to-earth MacBook Pro review, especially for people who’ve never used an Apple product before and don’t know what it would be like. And perhaps a laugh or two 🙂 It would also be nice to hear how your experience was, so don’t hesitate to drop a comment or leave a remark/suggestion in case I made a mistake/missed something.

And in case you’re curious about my setup, this picture should give you all the infos you’d ever need to know.

also, an AMD Radeon Pro 5500M, 8GB GDDR6

Intro

For many years, I’ve been hearing praises from Mac users, repeatedly saying how Apple is the pinnacle of User Experience, Usability, and integration with other Apple products. While I can’t say anything about the latter, since this laptop is the only Apple device in my possession, I can say a thing or two about UX and software in general, which hopefully will help other people who’s considering to buy a MBP.

 

Finder

The very first thing you’ll notice in your day-to-day usage is that Finder, the Dolphin/Nautilus/Explorer equivalent for KDE/Gnome/Windows, has a very peculiar way to handle navigation: if you hit Enter, you won’t go inside a folder/open a file with its associated app. Instead, it will highlight the filename, such that you can rename it. And backspace won’t bring you back to the previous folder, in case you were wondering.

While there is a very good argument about the real meaning of using Enter key, it certainly does not explain why doing so should mean “I want to rename a file”. And if we want to follow the same line of reasoning, it certainly won’t explain then why hitting the spacebar is going to actually play a video (mind you, only if its format is recognized by QuickTime), open a simple image editor if it’s an image, or just display a popover with a tiny bit of infos (size and last modified) in the other cases. In what universe are these sensible, UX compliant behaviors? Luckily this ~6 years old question has still a valid solution for it, that is, install an extra  software to configure Finder’s behavior.

Also, by default, Finder doesn’t impose any layout on how files are visually lay out, which means, you’ll end up in a mess of misplaced icons sitting all around your desktop and folders. Luckily you can set the sorting option to “Align to Grid” and boom, and you’ll have neatly positioned files. Again, though, in what universe is “align to grid” a valid sorting option? And why this option is not active by default anyway?

In my day to day work and life, I happen to copy text, snippets of code, etc from various sources like Slack, github, or even chats and save it on disk, such that I can read it later even when I have no internet connection. How would you do that? You’d copy some text, then right click on the desktop/empty space inside a folder and select “New F”… oh wait, there is no such option, how peculiar. Once again, AskDifferent to the rescue:

If you have the Finder window open, use Spotlight to open TextEdit. When you’re ready to save the file, option+drag the text file icon from the title bar of TextEdit into the Finder window where you want to save it.

Or, if you think this solution is a bit.. clumsy, you can create an Automator script, and assign a keyboard shortcut to it.

With KDE? Copy the text and paste into the destination folder, then give it a name. Just as simple as that.

Example in action; it would have been even faster if I CTRL-C and CTRL-V, but visually you wouldn’t have seen a lot going on 🙂

 

Window Management

I always wondered why my colleagues using Apple MBPs rarely do maximize their windows; I’d personally want to have them fully maximized (especially when coding, using the console or browsing the internet), right? Sure… until you discover how annoying MacOS window manager is. First of all, the button that you would think maximizes the window, will actually set your application in fullscreen mode, which has the neat effect to place it on a new, separate virtual desktop. One fullscreen app = one virtual desktop. And secondly: in this state you cannot have, say, a non-maximized application over a fullscreen one, so you’ll see a constant sliding animation transition between apps which will, very soon, start to annoy you. At this point you have the following options:

Do you like to tile windows, from time to time? You’ll have to have a sniper-perfect aim, hover your pointer over your app’s fullscreen button, wait until a popover will show up, then choose whether you want to tile your window to the left, or to the right.

Would you like to have more tiling options, or perhaps window snapping? You can’t. Unless you install a third-party app, that is.

On the other hand, this is how it’s done with KDE:

Just simple, neat and immediate.

 

Clock applet

How difficult would it be turning a not-so-useful clock applet like this

into something more that conveys more info, say a small calendar? For example, here’s KDE’s clock applet

And how cool would it be, if I could also check the vacation days? Even better, if I could pick any number of Countries, such that you could see their vacation days at a glance? Well, KDE has been doing this for years as well:

Yes, I know, there’s a Calendar app that can be configured to eventually do sort of the same (but still, no clock <-> calendar events synchronization/visualization, as far as I know).. but why should I use an app, when the clock applet is sitting there, at one mouse click distance from me, doing nothing?

 

OS Updates

When I updated MacOS from 10.15.3 to 10.15.4, I didn’t notice I was still connected to internet using my phone (crappy day with my regular internet connection). Fair enough, I cancelled the process just after downloading ~40MB of data, with the intent to resume the process later in the week. But then, MacOS decided it was already fully upgraded to 10.15.4. I therefore tried to force-check for updates, which didn’t work. Downgrading MacOS wasn’t an option either in my case. In the end I found out that I could download the entire *.dmg update package from Apple website, and execute it locally. I did run it thrice, just in case 🙂 Well, I had to, because the first two attempts ended up prematurely due to unspecified errors… and when I was almost in despair, the third time did finally succeed.

I don’t recall ever having such experience when upgrading packages (once, when doing a major OS upgrade between two versions, not one) with Kubuntu, just sayin’. Network unexpectedly goes down? You can retry later, and apt will pickup from where it left.

 

Misc

 

TL;DR: so, is it worth it or not?

Yes. Despite me ranting for the reasons above (and rest assured, I’ll keep the list updated!), I want also to emphasize what I’ve said at the beginning of this post: it truly is the best hardware I’ve had the pleasure to play with, in a long time. Great screen, awesome cpu performance, extremely silent, audio quality beyond belief. Battery doesn’t last as it’s advertised, which shouldn’t come as a surprise at all. The trackpad and its gestures are great when you’re on the move and for mundane tasks, but for anything serious, in my opinion using a mouse is still the way to go. The preinstalled software is overall okay; I like garageband and the piano lessons it offers, but I didn’t have a chance to use the Office suite yet. The touchbar feels a bit of a gimmick, but for example I do love the autocorrection proposals it shows when I make a typo.

In the end, the MacBook Pro is a good laptop; I just wish Apple would have used more common sense in developing its apps, considering how an OpenSource community like KDE can deliver high quality apps despite having

  • far less developers at its disposal
  • much broader hardware pool to support

And perhaps, it would be great if Apple would add Linux support in the same way they support Windows with the Bootcamp project. I also wish Apple adopted KDE’s philosophy, “simple by default, powerful when needed“, rather than “weird by default, powerful if you google for an answer that usually leads to install 3rd-party apps to get what you need“.

But who knows, maybe in the future…

 

 

 

(*) to elaborate it a bit more: after a year of usage, one of the two USB ports stopped working. I had to ship it back to Spain, where they replaced the entire motherboard and shipped it back to me. The whole process took more than 5 weeks in total and, few months after the 2-year warranty expired, the very same USB port stopped working again. meh. On top of that, I started experiencing random startup failures, and pc not resuming from sleep anymore, even after a clean OS installation, and despite checks on the SSD/RAM showed no outstanding issues at all.

Occhio alla truffa! (del falso sito di Poste Italiane)

Aggiornamento (22:00): il sito non è più raggiungibile.

 

Sabato 25 Aprile. Guardate il vostro telefono, e vi trovate un messaggio del genere: che fate?

pi.jpeg

Se siete una persona con un minimo di conoscenza tecnologica ed infarinatura generale di sicurezza nella rete, riconoscerete che Android vi segnala già il messaggio come probabile tentativo di phishing, e lo cestinate. Magari, prima di fare ciò, date una controllatina veloce al numero di telefono, e notate che quel 380 non è un numero di appartenente a WindTre; si tratta di un prefisso internazionale (notate il + che precede il numero, vero?) e quindi in realtà quel messaggio proviene dall’Ucraina.

Ma cosa succederebbe se non foste così cauti, e vi fidaste del messaggio? Tanto non può accadere nulla di male, con tutti i metodi a doppia/multipla autenticazione, codici OTP, password manager, ecc, giusto?

Non proprio…

Parte 1 – Accesso al sito

Al momento di cliccare il sito indicato nel messaggio, si viene reindirizzati alla seguente pagina:

Screenshot_20200425_174122.png

se non fosse per il Not Secure (sito non sicuro) indicato nel browser, e l’indirizzo non propriamente usuale, mi verrebbe da pensare di utilizzare realmente il sito di PosteItaliane.

Raffronto col sito reale (dove viene indicata sia la connessione, sicura, che l’entità che ha emesso il certificato, ovvero POSTE ITALIANE S.p.A. [IT])

Screenshot_20200425_174028.png

Le somiglianze sono a dir poco perfette. Nota: non ho intenzione di mettermi a spiegare come credo sia stato realizzato, il mio scopo è rendere questo articolo fruibile a chi non ha conoscenze tecniche, per quanto possibile.

Parte 2 – Login

A questo punto, cosa succederebbe se procedeste con l’inserimento del vostro username e password? Meglio dare un’occhiata, va 😉

Screenshot_20200425_174326.png

Al momento di cliccare su Accedi, apparentemente viene effettuato un controllo.

Screenshot_20200425_174526.png

Hmmm, ma per caso vuol dire che posso loggarmi senza usare alcuna credenziale? Devo provarlo 😀

out-0.gif

Parte 3 – Inserimento dettagli carta

Dopo (non) aver inserito le credenziali corrette, ci viene presentata una ulteriore pagina che chiede l’inserimento di ulteriori dettagli sulla nostra carta. Andando a spulciare un po’ la struttura del sito, si notano un paio di cose interessanti

Screenshot_20200425_175206.png

La pagina iniziale che avevamo visitato apparteneva proprio di Poste Italiane; ma dato che prima passava per secureslogin-poste[.]64-b[.]it, il malintenzionato ne ha approfittato per cambiarla quel poco che basta per raggiungere il suo scopo (*), ovvero mostrare una pagina creata ad-hoc che non è di proprietà di Poste Italiane (si veda ad esempio a fondo pagina che l’anno riporta ancora il 2018), dove si richiede di inserire i dettagli della propria carta.

A questo punto, che succederebbe se immettessimo dei dettagli fasulli? (Nota: spulciando nel codice è saltato fuori che il campo “saldo disponibile” richiede invece qualcosa che assomigli ad un numero telefonico, ma purtroppo il sito è stato rimosso quando mi sono messo a scrivere questo post ed ho tentato di fare un ulteriore screen esemplificativo).

out-2.gif

Non mi è stato possibile verificare se il codice OTP fosse realmente funzionante tuttavia, se una persona non particolarmente accorta avesse eseguito le istruzioni presentatele a schermo, un malintenzionato avrebbe potuto raccogliere quantomeno:

  • username
  • password
  • numero di carta, con relativa scadenza e codice CVV/CVV2

 

Conclusioni

Usare un password manager, evitare di ripetere le stesse password in più siti, usare autenticazione 2FA o MFA, codici OTP sono senza dubbio ottimi accorgimenti per nagivare protetti in rete, ma non occorre mai abbassare la guardia:

  • fate attenzione a messaggi senza mittente preciso, con email o numeri di telefono che non sembrano appropriati
  • fate attenzione ai link che sono contenuti
  • non cliccate se non siete sicuri
  • … ma se l’avete fatto, controllate che:
    • il sito corrisponda davvero a quello che vi aspettavate
    • che la connessione sia sicura
    • che i certificati siano emessi dall’ente che gestisce il sito stesso (si veda quanto scritto in Parte 1 – Login)

Tutto quello che ho detto sopra suona difficile e pensate di non avere le competenze tecniche necessarie? Ho la soluzione semplice:

  1. non cliccate alcun link proveniente sorgenti sconosciute
  2. aprite Google e cercate il sito al quale dovreste loggarvi, ad esempio “Poste Italiane”, e lasciate che sia Google a portarvi al sito verificato. Se davvero vi hanno bloccato la carta, state sicuri che non appena entrate, potrete verificare se ci sono messaggi riguardanti il presunto “blocco”.

 

/the end

 

 

 

 

(*) Gli informatici spero mi perdoneranno per la grossolana semplificazione

Riguardo il video bufala di Mazzucco sul coronavirus e l’America

Dopo tanto tempo, torno a scrivere qui. E non per cose inerenti alla mia professione, ma per dire la mia su un video che sta girando in queste settimane, che travisa e manipola i fatti realmente accaduti, facendo leva sulle nostre paure, per propagare il messaggio che il coronavirus è l’ennesimo risultato del “glande gombloddo” perpetrato dall’America. Mi sto riferendo ovviamente, a questo video, con tanto di bandiera americana sullo sfondo e simbolo del Dollarone.Schermata 2020-03-29 alle 15.25.23

Davvero poche cose riescono darmi sui nervi, e questa senza dubbio è riuscita a scalare la vetta e piazzarsi direttamente prima in classifica, quindi vediamo di smontare la pila di cagate che vengono dette, in maniera obiettiva e scientifica (cosa che, come vedrete, il Signor Mazzucco si è guardato bene dal fare).

 

Pochi giorni fa ho ricevuto questo video dai miei genitori, nonostante finora non si siano mai stati fatti abbindolare da video complottasti e, da bravo Veneto, mi è salito il porcodio potente in gola. Oltre 3 milioni di visualizzazioni e quasi 50K di likes sono numeri agghiaccianti, che fanno riflettere su quanto l’autore si sia impegnato nel manipolare in maniera intelligente le informazioni riportate ne suo video per farle apparire una verità pseudo-scientifica.

Il video inizia con l’esplosione del virus Ebola nel 2014 in Liberia, menzionando al minuto 0:22 l’articolo di un dottore nel Daily Observer che addita gli americani per aver “bioingegnerizzato in laboratorio il virus dell’ebola” . Il Daily Observer è un qualsiasi giornale nazionale paragonabile a, che so, Il Mattino, La Repubblica, Il Sole 24 Ore… nessuno di essi è una testata giornalistica scientifica. Si possono fare belle congetture, ma se non finiscono su VERE riviste scientifiche e cadono nel dimenticatoio.. Di congetture si trattava.

– al minuto 2:20, viene chiesto ad una virologa come valutasse queste testimonianze, alchè lei rispose ridendo “io non ci credo” e, alla domanda, di nuovo, “lei ci crede?”, la virologa risponde “no, io più che altro ho visto sul posto e soprattutto ci sono degli studi che indicano che il virus è poco cambiato rispetto alle epidemie passate”. E che dice Mazzucco?

– al minuto  3:33 la risposta: “fra l’altro questa poverina c’ha fatto una figura barbina perché proprio mentre balbettava cercando di negare la mia ipotesi, ha ammesso in realtà che il virus era stato modificato”

Eh no, caro il mio manipolatore, la virologa dice chiaro e tondo che non ci crede, e che il virus è poco cambiato rispetto ai focolai precedenti. E non balbettava affatto, semmai accennava una risata (basta riguardarsela): avrei avuto pure io la stessa reazione, se un incompetente qualsiasi arrivasse a darmi lezioni riguardanti il mio ambito professionale, ed una terza persona mi chiedesse “ma lei che ne pensa?”. Ma cristo santo, da una parte abbiamo una virologa che ha studiato l’Ebola sul campo (e ne conosce i ceppi precedenti), dall’altra parte abbiamo un presunto saccente che cita un articolo che non ha mai raggiunto una testata scientifica: chi dei due dovrebbe avere più credibilità ?

E giusto per puntualizzare: dal tono dell’autore tuttologo, sembra trasparire l’idea che i virus non possano mutare/evolvere; se lo fanno, è colpa della bioingegnerizzazione. Vorrei ricordare che i primi studi sulla genetica sono stati fatti sui moscerini della frutta, perché si riproducono molto velocemente ed è stato possibile confermare questi mutamenti nell’arco di poche settimane. Ora, ragioniamo un secondo: se un organismo complesso riesce a farlo in poche settimane, perché un organismo monocellulare (virus) che si moltiplica ad un ritmo nettamente superiore, non dovrebbe?

– 3:45 “il succo della faccenda è che il mainstream non vuole affrontare quell’argomento; lo sfiora, al massimo, con il brivido del peccato, ma poi prima di accusare seriamente gli americani di qualunque cosa, ci pensa due volte” => ma ragazzi, ci rendiamo conto che sta dicendo che il mondo giornalistico intero (non italiano, ma mondiale) è incapace di formare un pensiero critico sul coronavirus, mentre lui e quei presunti “giornalisti” del suo sito sanno esattamente come è andata la faccenda, per davvero? se non si chiama teoria del complotto questa… (*)

– 5:22 “in sintesi, i ricercatori hanno trovato nel virus[covid, NdA] delle tracce evidenti di una manipolazione genetica. Curiosamente, due giorni dopo, la ricerca viene ritirata senza una spiegazione e scompare nel nulla, nessuno ne parla più. Naturalmente sappiamo tutti quanto è facile obbligare una università a ritirare una qualunque cosa, se ti da’ fastidio; basta ricattarli dicendo che non riceveranno più finanziamenti, e quelli sono anche disposti ad ammetter che la Terra è piatta […] ma resta il fatto che nessuno ha mai smentito scientificamente i dati contenuti dalla ricerca” => altra combo epica di manipolazione, in quattro atti:

  1.  L’autore non capisce nulla del processo scientifico. Una ricerca deve essere solida, e quella indiana è stata rigettata più e più volte perché non soddisfava i criteri della comunità scientifica, fino al punto di essere respinta totalmente. E non è la comunità scientifica che ha l’onere di smentire qualsiasi ricerca le venga presentata, caro il mio manipolatore, altrimenti posso scrivere un paper al giorno asserendo che mangiare pizza/gelato/waffle ogni sera fa vivere fino a 150 anni, e poi lascio che siano gli altri a smentirmi. Non funziona così. Anche se …

  2.  … anche se, e questo l’autore si è guardato bene dal far notare, gli stessi scienziati cinesi sono intervenuti a smentire i ricercatori indiani, dicendo che non esiste alcuna connessione tra HIV e Covid. E guarda caso, esiste pure un link: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7033698/ 

  3. La ricerca indiana non e’ sparita, la si può ancora trovare qui https://www.biorxiv.org/content/10.1101/2020.01.30.927871v1.full.pdf (e posso aggiungere che 14 pagine la rendono una ricerca parecchio striminzita)

  4. “Naturalmente sappiamo tutti quanto è facile blablabla [..]” => giustamente, quando i complottisti non hanno argomentazioni solide, aggiungono un “naturalmente tutti sanno che XYZ” ed ecco che il gioco è fatto: non serve dimostrare quello che tutti già sanno! No, non funziona così.

  5. Bonus: magari l’autore del video si riferisce all’epoca dell’Inquisizione?

– 6:00 “a suporto della tesi del virus bioingegnerizzato, interviene anche il professore dell’università dell’Illinois Francis Boyle” => che guarda caso però fa l’avvocato e quindi, a parte abbozzare (non scrivere) la legge sulle armi biologiche, ha la stessa competenza in campo medico che posso avere io, o Topo Gigio. #maccccccosamidicimaaaaai

– tutto quel che riguarda Roberto Quaglia e la presunta “manina Americana implicata per trasportare il virus in Cina” è da considerarsi bufala a priori; già nel 2011 egli ipotizzava che gli USA, tramite un congegno chiamato HAARP, fossero in grado di scatenare terremoti in giro per il mondo in maniera arbitraria (https://attivissimo.blogspot.com/2011/03/haarp-e-terremoti.html).  Quindi mi faccio molte domande su qualsiasi cosa sentita/detta/letta da lui. E mi stupisce che Amazon abbia addirittura avuto un suo libro, in primo luogo. Ma poi, fermiamoci a ragionare un secondo: gli USA vogliono mettere in ginocchio l’economia della Cina e, ci tengo a sottolinearlo,  per non dare nell’occhio, avrebbero sfruttato i giochi militari in Cina, dove hanno dispiegato 300 dei propri soldati americani? Alla faccia di passare inosservati; era troppo complicato, che ne so, mandare la classica spia, magari sotto mentite spoglie di turista con zainone sulle spalle e durante un periodo più incospicuo, invece di 300 soldati durante un evento ufficiale di portata internazionale?  O meglio ancora: perché non causare terremoti a distanza utilizzando l’HAARP, destando ancora meno sospetti? Mahhhhh!

– 9:40 “accade infatti che il 13 di marzo la Cina accusa ufficialmente gli USA di avergli portato in casa il virus, proprio durante le esercitazioni militari di Wuhan; l’accusa è partita da un video nel quale si vede il direttore del CDC americano [perchè, esiste un CDC italiano? Svizzero? No, Novi – NdA], Robert Redfield, che risponde ad una interrogazione parlamentare e ammette che ci sono stati, nei mesi scorsi, dei casi di coronavirus in America che sono stati fatti passare come normale influenza” => altra manipolazione dei fatti realmente accaduti, dove Mazzucco confonde causa e conseguenza: Il direttore del CDC non ammette nulla di ciò; la domanda che gli è stata posta era ben chiara (10:13) : “senza i test kit, è possibile che coloro colpiti da influenza sono stati erroneamente catalogati, mentre in effetti avevano il covid? Potremmo avere persone negli USA che stanno morendo per quella che sembra influenza, ma che in realtà potrebbe essere covid?” Al quale il direttore risponde “alcuni casi sono stati diagnosticati in quel modo”. Si capisce quindi che non è affatto vero che casi di covid “sono stati fatti passare come normale influenza” come Mazzucco vuole far intendere, ma piuttosto che, dato il tardivo uso di test kit per il covid, è accaduto che alcuni episodi siano stati mal diagnosticati come influenza, quando invece si trattava di covid. Causa (mancati test) -> conseguenza (diagnosi sbagliata). Nessun insabbiamento da parte della sanità americana.

– 12:10 “fra l’altro, i cinesi hanno anche protestato per un altra cosa: la strana chiusura del laboratorio di biotecnologie di massima sicurezza […]; il laboratorio è chiuso ufficialmente per motivi di sicurezza nazionale, dovuti al fatto che mancavano i controlli per il contenimento dei materiali pericolosi […] quindi giustamente, anche qui i cinesi chiedono chiarimenti” =>  ma che strana coincidenza: come mai, di tutti gli articoli in bella vista, e tweet letti a voce alta,  questo articolo è l’unico che viene mostrato per qualche manciata di secondi? Basta cercarlo e leggerlo: il laboratorio non è stato affatto chiuso; solo le attività di ricerca su patogeni letali sono state interrotte, a causa di insufficienti misure di decontaminazione per le acque reflue, altro che “chiuso perché mancavano i controlli per il mantenimento dei materiali pericolosi”. Link https://www.nytimes.com/2019/08/05/health/germs-fort-detrick-biohazard.html

– 12:34 “quindi giustamente, di nuovo, i cinesi chiedono chiarimenti perché magari, dicono loro, il virus può essere uscito da lì” => e vabbè, adesso un ricercatore di un complesso di ricerca controllato peggio delle miniere di diamanti in Congo riesce ad infilarsi una fialetta-supposta di covid, e nessuno si accorge della sua mancanza

– 13:10  “nessuno dei grandi media riprende queste notizie, oppure peggio ancora le etichettano come bufale senza fondamento” => a dire vero il NYT lo ha trattato l’argomento, e bene, senza etichettarlo come bufala. La coglionata è quella di assumere il nesso di causalità tra la chiusura di un tipo di ricerca e lo scoppio di covid, due mesi dopo. Perché ovviamente un agente patogeno lo puoi conservare nel frigo di casa per mesi senza che si deteriori, mica servono apparecchiature professionali che vengono vendute solo a laboratori di ricerca, dopo estensivi controlli.

– 13:36 “è una cosa che sa bene diego fusaro, che in una trasmissione televisiva recente ha provato proprio a suggerire questa ipotesi[diffusione intenzionale del virus-NdA] ed è stato aggredito immediatamente e messo a tacere dal conduttore e dagli altri presenti in studio” => ma che strano, nessuna fonte

– 16:12 “a questo punto qualcuno dirà vabbè, ma l’ipotesi della diffusione intenzionale comunque non sta in piedi perchè alla fine sono gli stessi americani che adesso si ritrovano il virus in casa, ed è la loro economia che rischia di essere messa in ginocchio, quindi non possono averlo fatto loro” => dopo 16 minuti (su 19) di accuse agli americani, ecco finalmente il leitmotif di ogni degno invasato complottista: il famoso 1% dell’ 1% dei ricconi che tirano le fila del mondo intero. E difatti, poco dopo, si continua: 16:33 “all’apparenza è un ragionamento valido, ma in realtà non è così […]: è vero, gli americani intesi come nazione – come popolo messo insieme – non si farebbero mai da soli una cosa del genere, ma quella è gente normale, è gente come noi [..]. Ma qui non stiamo parlando di un popolo, stiamo parlando di un ristrettissimo gruppo di psicopatici a cui non può fregargliene di meno di buttare in ginocchio l’economia di mezzo mondo, perchè loro magari ne traggono un vantaggio personale” => in sostanza Mazzucco, dopo averci martellato per 16 minuti il cervello dicendo che il covid è colpa degli americani, con un bel video che mostra la bandiera americana ed il dollarone americano, salta fuori che invece si tratta di un gruppo ristretto di psicopatici ricconi senza scrupoli che vogliono far soldi con una economia collassata. Ma allora devono per forza essere americani? Perché non italiani? O russi? O Inglesi? O svizzeri? O del Vaticano?

– 18:48 “ora, io non posso sostenere che sia questa per forza la spiegazione di tutto quello che sta succedendo; io ho solo messo in fila una serie di elementi che portano ad una conclusione sensata” => no cazzo, posso cercarmi in rete qualsiasi fatto lungo  un qualsiasi arbitrario arco temporale, ed inventarmi la teoria che più mi aggrada. In campo medico c’è un famoso principio, il Rasoio di Occam, che dice “A parità di fattori la spiegazione più semplice è da preferire” . Quindi, a chi vogliamo dare ascolto :

  1. al parere esperto di virologi che dicono che si tratta di un ceppo influenzale mutato, come già avvenuto per l’influenza suina o aviaria in passato, oppure

  2. al guazzabuglio di fatti ammassati da uno che nemmeno fa il giornalista di professione, e che ci vorrebbe far credere che:

  • la causa di tutto sono un numero ristrettissimo di miliardari psicopatici
  • i quali sono riusciti, senza farsi notare d nessuno, a far uscire un virus modificato da un laboratorio di ricerca in piena attività
  • tenerselo nascosto da qualche parte, in barba al fatto che attrezzature del genere vengono date solo previo controlli accurati e certificazioni (provate a comprarvi una centrifuga per l’arricchimento dell’uranio da tenere in casa, e fatemi sapere se ci riuscite, chiedo per un amico)
  • dopo tutto questo casino per agire in segretezza cosa fanno, questi geni del male? Ovviamente non agiscono in maniera cospicua, ma decidono di usare un bell’evento pubblico, così da farsi additare dal mondo intero non appena scoppia la pandemia

 

TL;DR

In conclusione, la peggiore delle propagande complottiste: si discreditano i virologi, incapaci di fare il loro lavoro, i giornalisti, incapaci di fare il loro lavoro, la comunità scientifica, incapace di riconoscere ricerche ben fatte.

Nel 2020, pagare 50 euro di hosting all’anno per un sito di news dove qualsiasi invasato può scrivere un articolo non vuol dire che tutto quello che ne esce deve essere vero, e questo video ne è la riprova.  Lasciatelo fare a chi è del mestiere, e smettetela di diffondere cagate in un periodo come questo (ma anche in futuro, grazie).

 

 

 

 

(*) NdA: sono un ingegnere con la curiosità per la privacy e tutela dei dati personali; seguo da oltre 5 anni ricercatori e giornalisti che lavorano in questo campo, seguendo per esempio lo scandalo che hanno portato alla chiusura di Google+, e quello di Cambridge Analytica (che ha portato Zuc di fronte ai giudici), settimane prima che apparissero nei giornali; mi fa salire l’odio verso il mondo sentire che i  “media mainstream non sanno fare 2+2”. Ho visto coi miei occhi a che punto questi giornalisti ed esperti di privacy sono disposti ad andare, pur di esporre pubblicamente cosa non va nella nostra società e  nei servizi che utilizziamo ogni giorno. Basta fare disinformazione. Se nessuno se ne è curato finora, la spiegazione è che si tratta di una pila fumante di stronzate.

 

Open letter to Maria Johnsen: please, be responsible!

Yesterday morning I was checking out my Twitter feed, when I encountered a rather disturbing one

https://twitter.com/j_aksim/status/905742429294342144

You can read the whole article here  [1].

For those who don’t know who Maria Johnsen is, and are too busy to read the article: she’s a SEO expert who’s trying lately to promote herself as a cyber security expert.

Whether she’s a good or bad SEO expert is not up to me to say but, as a software developer with a deep interest in cybersecurity, who’s also following lots of researchers and malaware analysts, I felt the moral obligation to write something about it.

Even if I didn’t post anything in the past four years.

Even if I probably have now just one visitor/month  [2].

Why you may ask? Because, if I will manage to convince even one visitor to switch his/her website to SSL/TLS, I know I made the internet a better and safer place, even if just a bit 🙂


Open letter to Maria Johnsen

Dear Maria,

I saw this comment of yours in one of your latest posts

mj_comment

Now, despite what may or may not happened between you and Troy, let us all start to behave like adults, shall we? Thus..

Please stop spreading the misconception that SSL/TLS is not safe by posting links about SSL/TLS malaware attacks, because:

  1. you’re persuading your users that SSL/TLS is unsafe
  2. you’re demonstrating that you didn’t even read that article (which I kinda hope so, otherwise it would mean that you didn’t even understood it)
  3.  last, but not least, you’re making a fool of yourself to the people that have a bit of understanding in cybersecurity/software engineering

I couldn’t find the article you mentioned but, judging by the year (2015) and the topic (SSL/TLS), I’m pretty confident you were talking about the infamous Heartbleed bug in OpenSSL happened in 2014. Quoting from Wikipedia (emphasis mine)

Heartbleed is a security bug in the OpenSSL cryptography library, which is a widely used implementation of the Transport Layer Security (TLS) protocol […] TLS implementations other than OpenSSL, such as GnuTLS, Mozilla’s Network Security Services, and the Windows platform implementation of TLS, were not affected because the defect existed in the OpenSSL’s implementation of TLS rather than in the protocol itself.

in layman terms: the math behind SSL/TLS is, as of today, secure: it’s just how SSL/TLS was implemented in OpenSSL that had a flaw. And the proof is that other SSL/TLS libraries were unaffected by this bug (and as of today, there are 17 other libraries implements SSL/TLS).

Now, let’s move to the article that supposedly explains how SSL/TLS is unsafe: you got it completely, utterly wrong. And  I don’t even understand how’s that possible, since this paragraph explains it all:

mj_malaware

in layman terms: (SSL/TLS) encryption is so good at its job of keeping user’s data confidential, that now even malaware authors are using it to hide their nefarious intents.

Does that mean that SSL/TLS is unsafe? Hell no.

Does that imply that websites using SSL/TLS are unsafe? Hell no.

SSL/TLS is merely a protocol to exchange data in a secure way. Period.

Websites and browsers use SSL/TLS to ensure nobody between the website and your browser (ISP providers, CDN providers, governments, your Company’s IT manager, etc…) can peek into your personal data.

But of course, being SSL/TLS just a protocol, nothing prevents you to write your own software that sends/accepts SSL traffic. Here’s an example. And of course, hackers decided to use it in order to hide the data their malawares exchange.

Does that mean that websites using SSL/TLS are 100% safe? Hell no, never trust anybody selling you the concept of absolute security while saying, few lines below, “governments websites have been hacked too” because indeed, websites can get hacked and, if that’s case, it’s game over for user’s privacy.

But the likelihood to have your privacy stolen is just much more higher if your website does not provide SSL/TLS, because anybody between you and the website can see what you’re doing and, even worse, can manipulate the data without the user, or the website owner,  even noticing that. Why? Because it’s not bloody encrypted! Is it that difficult to grasp? Example: some hotels injected custom advertisements in websites that weren’t SSL-enabled.

So, rather than spreading FUD about SSL/TLS insecurity please, be responsible and do the opposite: promote SSL/TLS anywhere, even if the websites don’t handle sensitive data; in this way you’re saying “nobody will easily read/tamper the data between the website and the user, insert custom content, or perform MiTM attacks”.

Best regards,

Diego


Conclusion

Perhaps Maria is good at SEO, judging by the number of followers she has on Facebook, but she also lacks of an understanding of security/privacy and, even worse, she’s not willing to admit it.

There’s no reason to favor non-secure websites against secured ones, and whoever is telling you otherwise, is exposing his/her clients and client’s user base to unnecessary threats.

Her lengthy, whining, childish, overreacting comments against Troy Hunt are a sign of something referred in psychology as Dunning–Kruger effect:

cognitive bias wherein persons of low ability suffer from illusory superiority, mistakenly assessing their cognitive ability as greater than it is. The cognitive bias of illusory superiority derives from the metacognitive inability of low-ability persons to recognize their own ineptitude.

Look ‘ma, I’m an expert.

look_ma


1: It’s quite a funny reading: 50% of the post is not about SEO/security at all, but rather, she’s self-promoting her book, basically explaining how she knows better about search engines than Google’s, whose search algorithm is primitive 😀 .
2: after posting this article, I actually had a look at my stats and I have to say, after four years of inactivity, I’m impressed I still have visitors stopping by: apparently, my Latex thesis template and how to build an executable library are still interesting. 

Screenshot_20170908_024229

Make your own executable shared library on Linux

Hello there, it’s been a long time since my last post 🙂

Since I’m on vacation, and kinda frustrated about my playbook experience, I decided to  statisfy something that always tickled my fancy about shared libraries.

As you may know, under GNU/Linux is it possible to make shared libraries also executable: prominent examples are libc and Qt libraries, as shown in the screenshot below.

libc and libQtCore output

libc and libQtCore output

Those libraries, when executed from the command line, print useful information about the library version itself, the compiler used, processor features, author, copyright and so on .

But how they achieved that? Libraries don’t have an entry point .. or they do?

LD manual to the rescue

Of course the answer is yes, they do .. sort of. If you look at the options you can issue to ld, you will notice that there is the following option:

-e entry

--entry=entry  Use entry as the explicit symbol for beginning execution of your program, rather than the default entry point. […]

Bingo!

So what you will actually do is to define a function, from whithin your library, that will be used as entry point when executed. From there, you can execute your arbitrary piece of code.

The Code

We will start by defining a sample library composed of just one class (I kept everything as simple as possible to improve readabilty), which will do nothing but print “hello lib!”  upon construction:

/* lib/mysamplelib.h */
#ifndef SAMPLELIB_H
#define SAMPLELIB_H
namespace MySampleLib
{

class SampleLib
{

public:
    SampleLib();
};

} // namespace MySampleLib

#endif // SAMPLELIB_H

/* lib/mysamplelib.cpp */
#include "samplelib.h"
#include

namespace MySampleLib
{

SampleLib::SampleLib()
{
    std::cout << "hello lib!" << std::endl;
}

} // namespace MySampleLib

Then, we will define our custom entry point function in a separate file: this will print “Hello from custom entry point lib!”.

/* lib/dump_function.cpp */

#include
#include

extern "C" void my_dump_function() {
    printf("Hello from custom entry point lib!\n");
    exit(0);
}

We also need a very basic main.cpp file, which prints the usual “Hello World!” and then instantiate a SampleLib object:

/* main.cpp */

#include
#include "lib/samplelib.h"

int main()
{
    std::cout << "Hello World!" << std::endl;
    SampleLib lib = SampleLib();
    return 0;
}

For completeness, I will also include the two CMakeLists.txt files used in the project.

/* CMakeLists.txt */
project(executable_library)
cmake_minimum_required(VERSION 2.8)

add_subdirectory(lib)

set(SRC_LIST
    main.cpp
)

add_executable(${PROJECT_NAME} ${SRC_LIST})
target_link_libraries(${PROJECT_NAME} sampleLib)

/* lib/CMakeLists.txt */
set(LIB_SRC
    samplelib.cpp
    dump_function.cpp
)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -e my_dump_function")

add_library(SampleLib SHARED ${LIB_SRC})

And now we can finally build and run our app and our library and see the results 🙂

First Attempt

First Attempt

Urg .. What’s going on here?

Compilation and linkage were successful, the executable ran perfectly, but executing the library directly produced a segfault.

The Fix

Let’s try to find out what’s wrong here. We will run readelf to see the if there are some parts in common between the executable, our library, and some other executable library – i.e. libc – . These are the output:

readelf exec

readelf exec

readelf libc

readelf libc

And now, our libSampleLib

readelf samplelib

readelf samplelib

Nice, now we have much more infos about the issue. As you can see the executable, libc, and our SampleLib, all have  an entry point defined. That means that ld processed our command option as we intended.

But, as opposed to the executable and libc, our SampleLib does not have an interpreter section defined. This is normally good when a library gets executed through a regular application, because every application has an interpreter defined. In our case anyway, that missing definition is the reason of our segfault.

So we need to tell the compiler to add an interpreter header. From a quick search on google, all you need is to add the following line inside dump_funcion.c (outside the function body of course)

extern const char elf_interpreter[] __attribute__((section(".interp"))) = "/lib64/ld-linux-x86-64.so.2";

Recompile all, and now …

Second Attempt

Second Attempt

Awesome, we did it!

But we are serious programmer, aren’t we? Hardcoding the interpreter absolute path is always a Bad Thing™; if you work in a team where everyone may potentially have different setup and machines, that’s even worse.

CMake to the rescue!

With a little help of CMake, we can automate the interpeter path retrival.

Firs we execute readelf on a command that is present in every linux distro, which is “ls” ; then, with a little cmake regexp magic, we extract the path, and finally add a new cmake definition whose value will be assigned to the elf_interpreter[] var inside dump_function.cpp .

The updated CMake file and main.cpp look now like this:

/* lib/CMakeLists.txt */
set(INTERPRETER_DESCRIPTION "Requesting program interpreter:")

execute_process(COMMAND readelf -l /bin/ls
    RESULT_VARIABLE return_value
    OUTPUT_VARIABLE result
)

if(return_value)
    message(STATUS "Cannot find a valid ELF interpreter")
else()
    string(REGEX REPLACE
        ".*[[]${INTERPRETER_DESCRIPTION} ([/][^ ].+)[]].*" "\\1"
        _ELF_INTERPRETER_PATH "${result}"
    )

    add_definitions( -DELF_INTERPRETER_PATH="${_ELF_INTERPRETER_PATH}" )
    message(STATUS "ELF interpreter is ${_ELF_INTERPRETER_PATH}")
endif()
set(LIB_SRC
   samplelib.cpp
   dump_function.cpp
)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -e my_dump_function")
add_library(SampleLib SHARED ${LIB_SRC})

/* lib/dump_function.cpp */
/* showing only the relevant line here, too lazy to copy everythin again! */
extern const char elf_interpreter[] __attribute__((section(".interp"))) = ELF_INTERPRETER_PATH;

That’s better 🙂

Further improvements and how to get the code

You can find an improved version of the code shown here on my gitorious repository . I made some modifications to make it prettier and more reusable, such as define a FindELFInterpreter script for that purpose, added a simple macro to retrieve the hash commit/current branch of your source tree (in this case, mine), and embed that info within my_dump_function(). I’ve also added some debug compiler options, and added to the dump function, just to show some other interesting output you may be interested in seeing. Pretty neat, isn’t it? 🙂

Last Attempt

Last Attempt

An other interesting thing to implement could be use cmake feature to create header files through its configure_file() command, and put all of those definitions inside it and include that file whenever you need it, but I leave this as an exercise to the reader, cheers 😉