16 November 2018

Fiera del Radioamatore 2 edizione 2018

Paolo Garbin (paolettopn)

Anche quest’anno la Sezione ARI di Pordenone sarà presente in fiera, dove proporrà diversi eventi che hanno ottenuto un buon successo nelle edizioni precedenti e altri nuovi, ideati appositamente per questa edizione.
il 16 November 2018 10.05

13 November 2018

Categoria: 

È disponibile la newsletter N° 37/2018 della comunità di ubuntu-it. In questo numero:

  • Ubuntu in prima linea per la sicurezza
  • KubeCon e CloudNativeCon
  • La versione del Kernel Linux 4.19 è qui!
  • KDE Plasma 5.14.3 migliora il supporto per i formati universali Flatpak e Snap
  • Linus Torvalds è di nuovo responsabile dello sviluppo del Kernel Linux
  • Aggiornamenti di sicurezza
  • Bug riportati
  • Statistiche del gruppo sviluppo

Puoi leggere la newsletter in questa pagina, oppure scaricarla in formato pdf. Se hai perso i numeri precedenti, puoi trovarli nell archivio! Per ricevere la newsletter ogni settimana nella tua casella di posta elettronica, iscriviti alla lista newsletter-italiana.

il 13 November 2018 21.07

10 November 2018

Dopo aver effettuato l'aggiornamento di versione dalla versione 16.04 alla versione 18.04 LTS ho avuto dei problemi di risoluzione DNS dopo l'aggiornamento. Poco male, dato che ora la gestione della rete è gestibile da systemd...
il 10 November 2018 09.08

07 November 2018

Questo motore di ricerca è stato rilasciato con licenza AGPLv3 da Omar Roth. I sorgenti sono disponibili a tutti. Il suo uso è molto semplice e soprattutto non vi visualizzerà alcuna pubblicità o ads, e non richiede una registrazione a Google per salvare la propria sottoscrizione e non usa nessuna API YouTube.
il 07 November 2018 09.36

06 November 2018

Categoria: 

È disponibile la newsletter N° 36/2018 della comunità di ubuntu-it. In questo numero:

  • Ubuntu 19.04 nome in codice Disco Dingo
  • Canonical Distribution of Kubernetes è supportata dall'architettura Arm
  • Rilasciato GNOME 3.30.2, ultimo aggiornamento della serie
  • L'acquisizione di Red Hat da parte di IBM segna una svolta per il mondo opensource e per Linux
  • Aggiornamenti di sicurezza
  • Bug riportati
  • Statistiche del gruppo sviluppo

Puoi leggere la newsletter in questa pagina, oppure scaricarla in formato pdf. Se hai perso i numeri precedenti, puoi trovarli nell archivio! Per ricevere la newsletter ogni settimana nella tua casella di posta elettronica, iscriviti alla lista newsletter-italiana.

 

 

il 06 November 2018 20.59

01 November 2018

Capita a diversi amministratori di sistema di dover aggiornare il servizio PHP dei server che amministra, e oggi desidero condividere qui il modo facile, semplice e indolore, per farlo con pochi comandi da terminale.
il 01 November 2018 13.37

30 October 2018

Categoria: 

È disponibile la newsletter N° 35/2018 della comunità di ubuntu-it. In questo numero:

  • Documentazione wiki: terzo trimestre 2018 e rilascio Ubuntu 18.10
  • Canonical: gli snap vengono utilizzati in tutto il mondo, oltre 3 milioni di installazioni
  • Unite. Un'estensione per rendere GNOME shell simile a Unity
  • Full Circle Magazine Issue 138 in inglese
  • Microsoft aderisce all'Open Innovation Network e progetta di rendere pubblici oltre 60.000 brevetti
  • L'ambiente desktop KDE Plasma 5.14 ottiene il secondo aggiornamento
  • LibreOffice 6.2 lancia il supporto per Febbraio 2019 e annuncia L'End Of Life per le versioni 32 bit
  • Aggiornamenti di sicurezza
  • Bug riportati
  • Statistiche del gruppo sviluppo

Puoi leggere la newsletter in questa pagina, oppure scaricarla in formato pdf. Se hai perso i numeri precedenti, puoi trovarli nell archivio! Per ricevere la newsletter ogni settimana nella tua casella di posta elettronica, iscriviti alla lista newsletter-italiana.

il 30 October 2018 21.16
LibreOffice AppImage è una versione portatile di LibreOffice per Linux che può essere eseguita da qualsiasi posizione (ad esempio unità locale, USB, CD, condivisione di rete) su tutte le più diffuse distribuzioni Linux, inclusi i loro CD live.
il 30 October 2018 13.47

29 October 2018

Handling execution time for PHP (FPM)

Lorenzo Sfarra (twilight)

The problem: setting max_execution_time / using set_time_limit() I don’t get the wanted results

If you are here, you are probably looking for an answer to the question:

why set_time_limit() is not working properly and the script is killed before?

or

why ini_set(‘max_execution_time’, X), is not working properly and the script is killed before?

The answer is not exactly one, because there are many variables to consider.

The concepts: PHP itself vs FPM

Anyway, I will list basic concepts that will help to find the best path to your answer.

The first, brutal, note is: directives you specify in php-fpm.conf are mostly not changeable from ini_set().

Please also note that set_time_limit() is a almost nothing more than a convenience wrapper on ini_set() in the background, so the same concept applies.

For simplicity, in this post I will talk about set_time_limit(), but the same applies to ini_set(whatever_related_to_time).

According to what we already said, it’s important to understand that set_time_limit() can only “overwrite” the max_execution_time directive, because

they only affect the execution time of the script itself

(there is a specific note in the official documentation).

On the other hand, directives like request_terminate_timeout are related to FPM, so we are talking about the process management level here:

should be used when the ‘max_execution_time’ ini option does not stop script execution for some reason.

Web server dependent directives

What we have seen so far aren’t the only variables in the game.

You should check your web server configuration, too, to be sure nothing is playing a role in your timeout problem.

A very common example is the fastcgi_read_timeout, defined as:

a timeout for reading a response from the FastCGI server. The timeout is set only between two successive read operations, not for the transmission of the whole response. If the FastCGI server does not transmit anything within this time, the connection is closed.

So…what to do?

The basic answer is: have perfectly clear what was defined by web server (ex.: fastcgi_read_timeout), what defined by FPM (ex.: request_terminate_timeout) and what was defined by PHP itself (ex.: max_execution_time).

For example, if request_terminate_timeout is set to 1 second, but max_execution_time is set to 2 seconds, the script will end after 1 second (so, whichever comes first, even if you have set max_execution_time with ini_set() in your script) .

A possible solution is simply using max_execution_time in place of request_terminate_timeout (but use it, too, to define a solid maximum upper-bound).

The max_execution_time description in the official documentation has an hint about this common problem, that is:

Your web server can have other timeout configurations that may also interrupt PHP execution. Apache has a Timeout directive and IIS has a CGI timeout function. Both default to 300 seconds. See your web server documentation for specific details.

Any hints to share?

il 29 October 2018 14.27

26 October 2018

Categoria: 

Gruppo Documentazione

Ecco le novità introdotte nella documentazione della comunità italiana di Ubuntu.

 

Aggiornamenti per il rilascio di Ubuntu 18.10!

Questo mese ha visto l'arrivo della nuova versione Ubuntu 18.10. Si tratta di una versione "intermedia" con supporto di 9 mesi e sarà quindi supportata fino a Luglio 2019. Come di consueto il Gruppo Documentazione si è attivato per aggiornare una corposa lista di pagine fra cui quelle relative al download, all'installazione e all'aggiornamento del sistema, ai repository.. e molte altre ancora.
Per maggiori dettagli consulta la pagina GruppoDocumentazione/Cosmic.

 

Portale Ambiente Grafico

  • Dolphin Menu Stampa: ottenere voci relative alle funzionalità di stampa nel menù contestuale del file manager Dolphin in KDE5 attivabile tramite clic destro.

 

Portale Amministrazione Sistema

  • Apt: istruzioni sull'utilizzo di APT, il sistema di gestione dei pacchetti .deb, predefinito in Ubuntu.

 

Portale Hardware

 

Portale Installazione

  • Creazione LiveUsb: aggiornata la tabella dei programmi utili per la creazione di chiavette USB avviabili con Ubuntu.

 

Portale Internet e Rete

  • Firefox ESR: installazione e utilizzo del browser web Firefox ESR, versione ufficiale con supporto esteso di Firefox.

  • Irssi: istruzioni utili per l'installazione e l'utilizzo di Irssi, un client IRC che permette di comunicare in modalità testuale dalla riga di comando.

  • MlDonkey: installazione e utilizzo di questo programma per il peer to peer estremamente potente con funzione client e server.

  • Pidgin: installazione e configurazione di questo client di messaggistica istantanea multi-protocollo.

  • Telegram: installare la versione desktop di Telegram su Ubuntu.

 

Per maggioro informazioni, consulta la pagina Lavoro Svolto/2018.

 


A cura del Gruppo Doc
Vuoi contribuire al Wiki? Comincia subito!

il 26 October 2018 16.36

25 October 2018

jQuery selects combination and submit

Lorenzo Sfarra (twilight)

I had to help a friend solving a very common problem for, for example, booking websites.
The example is basically the selection of options based on two

<select>s

elements: number of adults and number of children for a possible booking.

So, what we are going to do is to create a very simple HTML with two selects and one button, with the chance to remove an already selected combination before submitting it.

The HTML:

<select id="adults">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>

<select id="children">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>

<button id="add">Add</button>

<div id="output">Here the combination of selected values</div>

<br/>

<button id="submit">Send via AJAX</button>

Now, we are going to create a Javascript to handle this:

function Selection() {
  this.SELECTOR_ADULTS = '#adults';
  this.SELECTOR_CHILDREN = '#children';
  
  this.OUTPUT_SELECTOR = '#output';
  
  this.SUBMIT_SELECTOR = '#submit';
  
  this.selected = {};
}

/** Create a label for the given item **/
Selection.prototype.labelForSelected = function(item) {
  let out = item.adults + " Adults ";
  const childrenNumber = parseInt(item.children);
  if (childrenNumber > 0) {
    out += item.children + ((childrenNumber === 1) ? " Child" : " Children"); 
  }
  return out;
}

/** Add the selected item to output **/
Selection.prototype.selectedToOutput = function() {
  const keys = Object.keys(this.selected);
  jQuery(this.OUTPUT_SELECTOR).html('');
  for (let i = 0; i < keys.length; i++) {
    let key = keys[i];
    const outerDiv = jQuery("<div>");
    const span = jQuery("<span>", {
      text: this.labelForSelected(this.selected[key])
    });
    const button = jQuery("<button>", { 
      'class': 'remove', 
      id: key,
      text: 'X'
    });
    jQuery(outerDiv).append(span);
    jQuery(outerDiv).append(button);
    jQuery(this.OUTPUT_SELECTOR).append(outerDiv);
  }
}

/** Remove an item from the selected options */
Selection.prototype.removeFromSelected = function(item) {
  let aux = {};
  const keys = Object.keys(this.selected);
  for (let i = 0; i < keys.length; i++) {
    if (keys[i] === item) {
      continue;
    }
    aux[keys[i]] = this.selected[keys[i]];
  }
  this.selected = aux;
  this.selectedToOutput(); 
}

/** Init events **/
Selection.prototype.initEvents = function() {
  const _this = this;
  jQuery(document).ready(function() {
    jQuery("#add").click(function() {
      const selOne = jQuery(_this.SELECTOR_ADULTS).val();
      const selTwo = jQuery(_this.SELECTOR_CHILDREN).val();
  
      const key = selOne + selTwo;
      const newItem = {
        adults: selOne,
        children: selTwo
      };
      _this.selected[key] = newItem;
      _this.selectedToOutput();
    });
    
    jQuery(_this.OUTPUT_SELECTOR).on( "click", ".remove", function(e) {
      const id = $(this).attr('id');
      _this.removeFromSelected(id);
    });
    
    jQuery(_this.SUBMIT_SELECTOR).click(function() {
      _this.submitByAJAX();
    });
  });
}

Selection.prototype.submitByAJAX = function() {
  const keys = Object.keys(this.selected);
  console.log("Submitting", keys);
}

var mySelection = new Selection();
mySelection.initEvents();

The initEvents function binds the function for the HTML elements to the respective methods.

Note that for the .remove class we cannot use a simple click() because the elements are added dynamically.

The selectedToOutput method creates with jQuery the simple HTML elements to be added to the output.

 

A working demo is present on my Codepen.

il 25 October 2018 13.26

23 October 2018

LinuxDay 2018 a Pordenone

Paolo Garbin (paolettopn)

Sabato 27 ottobre ritorna la principale manifestazione italiana dedicata al sistema operativo Linux, al software libero, alla cultura aperta ed alla condivisione: verranno effettuati decine di eventi in tutta Italia, con centinaia di volontari coinvolti e migliaia di visitatori per celebrare insieme la libertà digitale!
il 23 October 2018 18.05
Categoria: 

È disponibile la newsletter N° 34/2018 della comunità di ubuntu-it. In questo numero:

  • Benvenuto Ubuntu Desktop 18.10
  • Ubuntu 18.10. Miglioramenti anche nelle prestazioni di gioco
  • Canonical e Ubuntu - Statistiche utente
  • Eventi di Ubuntu a novembre
  • GNOME Conference GUADEC 2019 si terrà in Grecia tra il 23 e il 28 Agosto
  • Aggiornamenti di sicurezza
  • Bug riportati

Puoi leggere la newsletter in questa pagina, oppure scaricarla in formato pdf. Se hai perso i numeri precedenti, puoi trovarli nell archivio! Per ricevere la newsletter ogni settimana nella tua casella di posta elettronica, iscriviti alla lista newsletter-italiana.

il 23 October 2018 17.45

22 October 2018

Benvenuto Ubuntu Desktop 18.10

Ubuntu-it Newsletter

Categoria: 
É arrivato Ubuntu 18.10 e rappresenta il primo passo verso la prossima versione LTS che sarà rilasciata nell'aprile 2020. Questa versione di Ubuntu viene fornita con 9 mesi di supporto e porta con sé il kernel Linux 4.18 con il supporto per la GPU AMD Radeon RX Vega M, alcune nuove funzionalità e il nuovo tema Yaru. Le novità non finisco certo qui, infatti sono presenti:
 
  • Ultima versione di GNOME 3.30 che offre numerosi miglioramenti, potenziamenti delle prestazioni e nuove funzionalità, quali:
    • ​l'applicazione Dischi può decifrare e montare volumi di archiviazione crittografati con VeraCrypt, consentendo di condividere i dati in modo più sicuro;
    • l'applicazione Impostazioni ha un nuovo pannello di controllo per gestire i dispositivi Thunderbolt e ora mostra i pannelli relativi all'hardware solamente quando viene rilevato/montato l'hardware pertinente, mantenendo l'elenco dei pannelli più ordinato;
    • dal lato delle prestazioni, lo zoom del desktop è molto più fluido e la sovrapposizione delle anteprime delle finestre è condizionato dalla disponibilità di CPU/GPU, questo garantisce che le applicazioni impegnate non rallentino l'intero sistema quando sono visibili le anteprime delle finestre;
    • è stata aggiunta l'opzione ricordare la tua scelta quando viene richiesto di inviare un rapporto di errore. Se selezionata, tutti i futuri rapporti sugli arresti anomali verranno inviati automaticamente e aiuteranno gli sviluppatori a stabilire le priorità delle correzioni. 
  • Stack di impronte digitali di base sono arrivati con le librerie fprintd e libfprint promossi nell'archivio principale. Le impronte digitali possono essere utilizzate per sbloccare una sessione a cui è già stato effettuato l'accesso e non per accedere a una nuova sessione. Questa è una considerazione di sicurezza poiché le impronte digitali sono considerate equivalenti ai nomi utente, non alle password. Poiché gli utenti possono già scegliere di accedere automaticamente o optare per non dover sbloccare lo schermo con una password. Per poter utilizzare le impronte digitali occorrerà aver bisogno dei driver per il proprio lettore di impronte digitali per farne pieno uso.
  • Aggiunta l'estensione GS Connect nelle impostazioni predefinite. Il pacchetto è disponibile per l'installazione nei repository e per chi volesse installarlo da riga di comando, basta aprire il terminale e digitare:
 
sudo apt-get install gnome-shell-extension-gsconnect
 
  • Il team web ha lavorato sul sito pubblico per condividere i risultati dei sondaggi Ubuntu Report. Il sito web è ora disponibile al seguente link. È inoltre possibile visualizzare una suddivisione dei dati da parte degli utenti che utilizzano Ubuntu su macchina fisica e virtuale.
 
E tanto altro ancora...
Questi sono stati mesi intensi, come sempre e Cosmic Cuttlefish alla fine si è rivelato un desktop di alta qualità, solido, affidabile e continua a migliorare ed evolversi. La scelta di GNOME come desktop fornisce un ecosistema desktop altamente integrato e sicuro, rilasciato con cadenza regolare. Nel frattempo, scarica Ubuntu 18.10 e leggi le note di rilascio.
 
Fonte:
 
 
il 22 October 2018 12.05

16 October 2018

Categoria: 

È disponibile la newsletter N° 33/2018 della comunità di ubuntu-it. In questo numero:

  • Congelamento finale di Cosmic Cuttlefish (18.10)
  • GNOME Desktop. Addio ai menu delle applicazioni a partire dalla versione 3.32
  • Firefox ESR 60 è ora disponibile su Ubuntu
  • GNOME aggiorna il gestore dei file e mette in guardia sui rischi per la sicurezza
  • KDE Plasma 5.14: affidabile, leggero e innovativo
  • Krita 4.1.3 Released
  • Il desktop KDE Plasma 5.13 ha raggiunto l'End Of life
  • Aggiornamenti di sicurezza
  • Bug riportati
  • Statistiche del gruppo sviluppo

Puoi leggere la newsletter in questa pagina, oppure scaricarla in formato pdf. Se hai perso i numeri precedenti, puoi trovarli nell archivio! Per ricevere la newsletter ogni settimana nella tua casella di posta elettronica, iscriviti alla lista newsletter-italiana.

il 16 October 2018 18.16

09 October 2018

Categoria: 

È disponibile la newsletter N° 32/2018 della comunità di ubuntu-it. In questo numero:

  • Canonical annuncia il rilascio di immagini ottimizzate di Ubuntu Desktop per Microsoft Hyper-V
  • Eventi di Ubuntu in Ottobre
  • Ubuntu e Canonical saranno presenti al GTC Europe 2018
  • Linux adotta un nuovo codice di condotta
  • Notizie dalla Documentazione Wiki
  • Aggiornamenti di sicurezza
  • Bug riportati
  • Statistiche del gruppo sviluppo

Puoi leggere la newsletter in questa pagina, oppure scaricarla in formato pdf. Se hai perso i numeri precedenti, puoi trovarli nell archivio! Per ricevere la newsletter ogni settimana nella tua casella di posta elettronica, iscriviti alla lista newsletter-italiana.

il 09 October 2018 20.21

03 October 2018

LibreOffice Viewer per Android

Paolo Garbin (paolettopn)

La Document Foundation fornisce una applicazione chiamata LibreOffice Viewer for Android. È disponibile scaricandola attraverso Google Play.
il 03 October 2018 13.36

02 October 2018

Categoria: 

È disponibile la newsletter N° 31/2018 della comunità di ubuntu-it. In questo numero:

  • La versione beta di Ubuntu 18.10 è ora disponibile per il download
  • Un italiano nuovo membro della comunità internazionale di Ubuntu
  • Full Circle Magazine Issue #137 in inglese
  • Annuncio di LibreOffice 6.1.2 alla LibreOffice Conference 2018
  • Prevista la pubblicazione di GNOME 3.32 per il 13 Marzo 2019 
  • PyCharm EDU. L'IDE opensource per l'apprendimento interattivo disponibile come Snap
  • Aggiornamenti di sicurezza
  • Bug riportati
  • Statistiche del gruppo sviluppo

Puoi leggere la newsletter in questa pagina, oppure scaricarla in formato pdf. Se hai perso i numeri precedenti, puoi trovarli nell archivio! Per ricevere la newsletter ogni settimana nella tua casella di posta elettronica, iscriviti alla lista newsletter-italiana.

il 02 October 2018 20.12

28 September 2018

Facebook becomes one of the most popular social media used by people. This was found some years ago and this social media platform still has its loyal users. There have been hard moments faced by this media platform, but it seems that these are not strong enough to make Facebook fully collapsed. Even, the latest issues about data sharing and leakage are not enough to make people stop using Facebook. Of course, this social media platform makes so many improvements. There are some integrations and acquisitions to make this social media stronger in digital world. Things are made to make Facebook still become popular social media for users.

New Feature from Facebook to Get Latest NewsThere have been many improvements made by Facebook. Social Media found by Mark Zuckerberg has becomes one of the giant social media that connect people. Now, it is not only media of communication, but it has some features to make it integrated with some latest news. There have been some features such as Breaking News widget to get some hot news. However, bandar bola sees that this is not fully effective since sometimes people get some news that they do not want to read, but it is more about the popularity made by its content creators. That is why this is not fully effective.

New Feature from Facebook to Get Latest NewsTo solve this problems, Facebook has “Today In”. Basically, this works in similar way as the previous widget where people can find some trending topics and latest news, and of course the headlines from all over the worlds. However, the algorithms are changed and improved, so this prioritize the news based on geographic location. This is very helpful to make some local news get attention, so people still can get updated with the latest news around them. Even, the local news can be in the same prioritization as the head line and hottest news. It is hoped that this is more useful for users to get some needed news.

il 28 September 2018 19.31
Nonostante possa asserire che la piattaforma CMS di Wordpress sia più che sicura rispetto ad altre, vediamo assieme quali sono le cinque maggiori vulnerabilità di sicurezza che possono creare non pochi problemi al proprietario del sito e al suo amministratore.
il 28 September 2018 10.26

27 September 2018

Oggi è stata rilasciata la versione 4.1.3 del noto editor grafico. Questo rilascio include ulteriori strumenti di riferimento per le immagini, oltre alla risoluzione di alcuni bug esistenti.
il 27 September 2018 12.50

25 September 2018

Categoria: 

È disponibile la newsletter N° 30/2018 della comunità di ubuntu-it. In questo numero:

  • Annunciata Extended Security Maintenance per Ubuntu 14.04
  • UBports rilascia Ubuntu Touch OTA-4 per telefoni Ubuntu, basato su Ubuntu 16.04 LTS
  • Driver opensource AMDGPU e ATI Linux aggiornati con nuove funzionalità
  • LibrePlanet 2019 si svolgerà dal 23 al 24 Marzo
  • Aggiornamenti di sicurezza
  • Bug riportati
  • Statistiche del gruppo sviluppo

Puoi leggere la newsletter in questa pagina, oppure scaricarla in formato pdf. Se hai perso i numeri precedenti, puoi trovarli nell archivio! Per ricevere la newsletter ogni settimana nella tua casella di posta elettronica, iscriviti alla lista newsletter-italiana.

 

 

il 25 September 2018 15.23

23 September 2018

Data access control isn’t easy. While it can sound quite simple (just give access to the authorized entities), it is very difficult, both on a theoretical side (who is an authorized entity? What does authorized mean? And how do we identify an entity?) and on a pratical side.

On the pratical side, how we will see, disclose of private data is often a unwanted side effect of an useful feature.

Facebook and Instagram

Facebook bought Instagram back in 2012. Since then, a lot of integrations have been implemented between them: among the others, when you suscribe to Instagram, it will suggest you who to follow based on your Facebook friends.

Your Instagram and Facebook accounts are then somehow linked: it happens both if you sign up to Instagram using your Facebook account (doh!), but also if you sign up to Instagram creating a new account but using the same email you use in your Facebook account (there are also other way Instagram links your new account with an existing Facebook account, but they are not of our interest here).

So if you want to create a secret Instagram account, create a new mail for it ;-)

Back in topic: Instagram used to enable all its feature to new users, before they have confirmed their email address. This was to do not “interrupt” usage of the website / app, they would have been time to confirm the email later in their usage.

Email address confirmation is useful to confirm you are signing up using your own email address, and not one of someone else.

Data leak

One of the features available before confirming the email address, was the suggestion of who to follow based on the Facebook friends of the account Instagram automatically linked.

This made super easy to retrieve the Facebook’s friend list of anyone who doesn’t have an Instagram account, and since there are more than 2 billions Facebook accounts but just 800 millions Instagram accounts, it means that at least 1 billion and half accounts were vulnerable.

The method was simple: knowing the email address of the target (and an email address is all but secret), the attacker had just to sign up to Instagram with that email, and then go to the suggestions of people to follow to see victim’s friends.

List of victim's friends

Conclusion

The combination of two useful features (suggestion of people to follow based on a linked Facebook account, being able to use the new Instagram account immediately) made this data leak possible.

It wasn’t important if the attacker was a Facebook’s friend with the victim, or the privacy settings of the victim’s account on Facebook. Heck, the attacker didn’t need a Facebook account at all!

Timeline

  • 20 August 2018: first disclosure to Facebook
  • 20 August 2018: request of other information from Facebook
  • 20 August 2018: more information provided to Facebook
  • 21 August 2018: Facebook closed the issue saying wasn’t a security issue
  • 21 August 2018: I submitted a new demo with more information
  • 23 August 2018: Facebook confirmed the issue
  • 30 August 2018: Facebook deployed a fix and asked for a test
  • 12 September 2018: Facebook awarded me a bounty

Bounty

Facebook awarded me a $3000 bounty award for the disclosure. This was the first time I was awarded for a security disclosure for Facebook, I am quite happy with the result and I applaude Facebook for making all the process really straightforward.

For any comment, feedback, critic, write me on Twitter (@rpadovani93) or drop an email at riccardo@rpadovani.com.

Regards, R.

il 23 September 2018 09.00

20 September 2018

Qualche mese fa avevo deciso di provare le varie configurazioni dello stile d’immagine presenti nella mia vecchia ma sempre valida Canon 600D, facendo degli scatti in casa e fuori casa. Selezionando iLeggi ancora...
il 20 September 2018 16.46

18 September 2018

As a photographers or designers, software or app of image and photo viewers are needed. This kind of software is useful and helpful partners in working with images and photos. Of course, each operating system has default software or app for this function. However, sometimes the default app does not provide you with complete features, so you will need additional app to work with those images. In this case, there are some recommendation of applications for image viewers. The good news is that the software recommended below is free to download.

The first one is FastStone Image Viewer. This image viewer is great choice for its functions and compatibility. This software is compatible for Windows platform and this range is quite fantastic. This software can work in Windows 98 up to the latest Windows 10. It is quite unique to see the fact that this windows can work in Windows 98 while it is almost none uses this Windows anymore. About the feature, this provides access for viewing the images and make some modifications and editing. There are also some effects to apply when users want to customize the image. This also supports many extension of files, including CRW, PSD, RAW, EPS, and the other formats that usually default apps cannot support.

FastPictureViewerThe other application is FastPictureViewer. This software is great for its automatic features. There are some features that can be set automatic, including feature of instant zooming up to 100% that can be so helpful to see the details of the image, such as the sharpness and color graphic. Then, it is also good in term of file managements, including for transferring files, copying, and saving for the situs judi bola. The next app is Apowersoft HEIC Photo Viewer. The good news about this software is about its less impact on PC performance. However, it does not mean that this has limited access. in fact, this can support files from some common editing software, such as RAW, PSD, CDR, and other files formats from the editing software.

il 18 September 2018 21.16
Categoria: 

È disponibile la newsletter N° 29/2018 della comunità di ubuntu-it. In questo numero:

  • Rilasciato LibreOffice 6.1.1
  • Il programma di certificazione Respect Your Freedom continua a crescere
  • Berna pubblica la sua prima soluzione open source
  • Proton. Un tool opensource per giocare i giochi Windows come se fossero nativi Linux 
  • Aggiornamenti di sicurezza
  • Bug riportati
  • Statistiche del gruppo sviluppo

Puoi leggere la newsletter in questa pagina, oppure scaricarla in formato pdf. Se hai perso i numeri precedenti, puoi trovarli nell archivio! Per ricevere la newsletter ogni settimana nella tua casella di posta elettronica, iscriviti alla lista newsletter-italiana.

il 18 September 2018 20.04

29 August 2018


Venerdì 31 agosto prossimo parteciperò a ESC 2018 che si tiene presso il Forte Bazzera, nelle vicinanze dell'Aeroporto di Venezia. 

ESC - End Summer Camp - si svolge dal 29 agosto al 2 settembre, ed è un evento particolarmente interessante, ricco di appuntamenti su temi che riguardano open source, hacking, open data e... beh, il programma è talmente vasto che è impossibile riassumerlo in poche righe, dategli un'occhiata anche voi!

Il sottoscritto sarà a ESC per parlare di Ubuntu Touch, che è l'attività che ultimamente mi sta prendendo più tempo, del mio poco tempo libero. Dopo che l'anno scorso Canonical ha abbandonato lo sviluppo di Ubuntu Touch, una comunità - sempre più numerosa - si è aggregata attorno al progetto UBports, inizialmente portato avanti dal solo benemerito Marius Gripsgard, che ha proseguito il lavoro da dove Canonical si era fermata. Proprio pochi giorni fa, UBports ha ufficialmente rilasciato OTA4, il primo aggiornamento basato su Ubuntu 16.04, ma soprattutto una serie lunghissima di bug fix e miglioramenti, dopo un lungo lavoro di assestamento e pulizia.

Still Alive!


Adesso è tempo che tutto il mondo sappia che Ubuntu Touch è vivo, e probabilmente la migliore cosa che sta accadendo in tutto il panorama dell'Open Source mondiale. Passato lo scandalo delle rivelazioni di Snowden, sembra che le persone si siano dimenticate (rassegnate?) di quanto invasiva sia la sistematica violazione della privacy personale operata da tutti gli smartphone in commercio. Pratica questa che espone la propria vita non solo alle ben note aziende tecnologiche americane del settore (Apple, Google, Facebook, Yahoo), ma anche a tutti i pirati che ogni giorno rubano tonnellate di dati personali alle stesse aziende.

Ubuntu Touch è la risposta open source alla domanda di maggiore controllo e tutela dei propri dati, oltre che un sistema operativo davvero libero e aperto.

Se venite a Forte Bazzera venerdì 31 agosto alle 11.30 vi parlerò di questo (e anche tanto altro!). Vi aspetto!
il 29 August 2018 21.15

26 August 2018

In browsing data and any other websites, it is common to use VPN or Virtual Private Network. VPN is useful to open websites freely. It is common now to use VPN since there are some regulations from countries that make some websites are blocked. In this case, the VPN will be useful to use in many kinds of situation, so there will be no problems when the websites are blocked. Although there are regulations, VPN still can break the blocked websites easily. For VPNs, there are many applications or software that can provide access and services for the Virtual Private Network. For browser, Opera is known as the browser that can provide the access for VPN. There has been access for VPN and this can be activated for free. However, this cannot work in all kinds of websites, so it is better to have VPN services that can fully work in all kinds of condition.

In this case, HMA! Pro VPN can be one of the great VPN application to use. This application is getting its popularity lately since this app has been proven to work well in breaking down all of the websites and regulations of countries will not be big problems anymore. Its effectiveness is great in granting access for opening situs judi online. Of course, its effectiveness is not for free, so users must use paid services. However, developer of this application knows that sometimes there are features which are not needed by certain users. That is why developer provides various packages for users, so users can choose the suitable package for them. For example, there is special package for students and this VPN service will unlock all websites with contents related to the education. Each package will have different function and different price.

Good Choice of Software for VPN ServiceThe other good point about the HMA! Pro VPN is that this software has vast compatibility. This software can work for PCs and gadget. For PC, this can work on Windows and Mac. Even, this VPN service can also work on LINUX-based PC. Then, this can work also for gadgets. Both Android and iOS can work well with this application. Surely, this will provide variety of function and compatibility, and it is great point. About the security of user’s data, this app will not have access for the private data, so there will be no problems and issues with the security. This application will only access the IP Address, and the other things are secured. Surely, this can be helpful software for VPN Services.

il 26 August 2018 14.03

10 August 2018

Windows 10 is brought and developed by Windows to provide better accessibility. This latest Windows is made so users can have better access and they can access the function of PC easily. Interface and features of Windows 10 is developed specifically for touch-screen devices since most of the devices now have used touch screen. In this case, Windows 10 has many supporting apps that can be so helpful for users in doing their jobs. In this case, there is OneNote that becomes famous and useful apps for Windows 10. This application can work well as a notebook or daily journals where users can easily make notes in all kinds of conditions. Organizing many things can also be easier to do. Even, this is not only to type some notes, but drawing and sketching some pictures or drafts can also be made. Surely, this is great app for Windows 10.

OneNote has become important feature. Businessmen and students are helped by the function of this app. This poker online app can be great combination of Microsoft Office since this can have all basic functions of Microsoft Office, including for typing and tabulation. All of these things can be done easily. Even, it is also possible to have shared notes. Some users can have access for the notes and this can be shared by using Microsoft account. This will be so helpful when people are having business or other things. They can share the notes and all people can have access to edit and add some notes. Agendas can also be integrated and even emails connected to Microsoft Outlook can be integrated to the OneNote. This will make the app so useful for all kinds of conditions and situations.

OneNote as Recommended App for Windows 10To make notes, it is true that users can write or sketch the notes. When they have touchscreen device and there is stylus pen, it will be easier to make sketch. It is also possible to change the color of the ink easily and highlighter can also be added as the feature in making notes. To make a new notes, users can easily open blank spaces. When users need to make lists, they can have checkbox to make and they are able to use feature of bullets and numbering as found in Microsoft Office. Sharing the files are easy to do. OneNote can be connected and integrated to other apps, so sharing the pages can be easy and it is possible to grant access, so users can see the notes that have been made. Even, they can add and edit the notes.

il 10 August 2018 21.04

06 August 2018

VPN or Virtual Private Network becomes so useful to deal with some regulations of countries. There are some regulations made by the countries to blocks some sites. These are not only for category of pornographic sites or contents. There are also other sites that are blocked by the counties because these are against the regulations set by the country. Of course, this can be quite problematic since sometimes there are some important information to access in the blocked sites. VPN is the solution for this problems. There are many kinds of VPN services. Even, there is Opera Browser that provides VPN services included in the browser. However, the effectiveness becomes the big questions. Some of the sites can be free, but it is not for all of them.

There are also many applications providing VPN services, but their effectiveness are still things to worry about. In this case, there is HMA! Pro VPN. This VPN is getting more popular lately. There have been big appreciations for the effectiveness of this application in breaking down the blocked sites, so the accesses can be granted. There are some interesting points about this VPN services. This app is paid application, but there are some kinds of packages to choose. It means that people do not need to pay for things that they do not need. They can choose the suitable packages. For example, students can find the suitable packages for them who only need sites with some contents in education.

Software for VPN ServicesThen, HMA! Pro VPN can work in many platforms. This is not only for PC, but it is also for gadget. Windows, Mac, Android, IOS, and even LINUX are compatible with this application. Then, about the security, there is nothing to worry. This app does not access some private data and logs. They only need the IP address and then the private logs are not accessed by them. That is why security and privacy of the owner is protected. Then, there are some supporting features such as 30-days free trials. Then, there is also feature for product after sale. This is given so judi poker customers can get money-back guarantee when they are not satisfied as long as it is still in duration of 30 days after the app is bought.

il 06 August 2018 21.35

23 July 2018

Categoria: 

https://www.ubuntu-it.org/sites/default/files/news_wiki17.png

Ecco le novità introdotte nella documentazione della comunità italiana tra aprile e giugno 2018.

 

Aggiornamenti per il rilascio di Ubuntu 18.04 LTS!

Aprile ha visto l'arrivo della nuova versione Ubuntu 18.04. Si tratta di una versione LTS e sarà quindi supportata per i prossimi 5 anni. Come di consueto il Gruppo Documentazione si è attivato per aggiornare una corposa lista di pagine fra cui quelle relative al download, all'installazione e aggiornamento del sistema, ai repository.. e molte altre ancora.

GruppoDocumentazione/Bionic

 

Pubblicato il nuovo Portale Voting Machine Scuola Lombardia!

https://www.ubuntu-it.org/sites/default/files/votingMachineLombardia.png

Il 2018 ha visto l'arrivo di un evento inaspettato nel mondo linuxiano. Una miriade di "voting machine" (i dispositivi utilizzati in un recente referendum in Lombardia) sono state riconvertite per essere utilizzate nelle scuole lombarde. Come sistema è stato scelto Ubuntu GNOME 16.04 LTS.
È stato quindi creato un portale con informazioni utili al riguardo. Ringraziamo Matteo Ruffoni per averci portato a conoscenza dei fatti lo scorso Marzo durante lo svolgimento del Merge-it a Torino.

  • VotingMachineScuolaLombardia: un nuovo portale dedicato alla voting machine, il dispositivo di voto elettronico fornito alle scuole della Lombardia con preinstallato Ubuntu!

  • /Hardware: specifiche delle voting machine.

  • /PrimoAvvio: operazioni da compiere durante il primo avvio della voting machine.

  • /CambiarePassword: cambiare la password dell'utente amministratore.

  • /Utilizzo: caratteristiche e funzionalità del sistema operativo Ubuntu GNOME presente nella voting machine.

  • /ProgrammiPreinstallati: applicazioni di utilizzo più comune preinstallate in Ubuntu GNOME 16.04 LTS.

  • /Gcompris: utilizzo dell'applicazione GCompris, una suite di giochi didattici per bambini da 2 a 10 anni.

  • /AccountUtente: operazioni da compiere per creare nuovi utenti diversi dall'utente amministratore.

Si segnala inoltre il gruppo di discussione Lavagna libera in cui molti docenti si occupano in prima persona dell'introduzione del software libero nelle scuole. Fra gli argomenti discussi ovviamente si possono trovare molte testimonianze dirette sull'utilizzo delle voting machine.

 

Portali Ambiente Grafico e Amministrazione Sistema

 

Portale Hardware

 

Portale Internet e Rete

  • TeamSpeak: applicazione VoIP.

  • Tor: utilizzare il sistema di navigazione anonima Tor su Ubuntu.

 

Portale Multimedia

  • Andour: una digital audio workstation per Ubuntu.

  • Kodi: programma open source e multipiattaforma per la gestione di un completo media center o Home theater PC.

  • Rosegarden: audio/midi sequencer ed editor di spartiti musicali.

 

Portali Server e Ufficio

  • Xampp: utile programma multipiattaforma che permette in pochi passaggi un'installazione semplificata di server web Apache, MySQL, PHP, Perl e altri strumenti.

  • Atom: editor di testo basato su Electron.

 

Altro

  • Libri Linux: elenco di pubblicazioni dedicate all'utilizzo e all'amministrazione del sistema GNU/Linux.

Per maggioro informazioni, consulta la pagina Lavoro Svolto/2018.

 


A cura del Gruppo Doc
Vuoi contribuire al Wiki? Comincia subito!

il 23 July 2018 21.18

20 June 2018

CleanMyMac 3 as the Best App for File and Storage ManagementApple has Mac-based PCs that have great performance. All people acknowledge that most of the PCs from Apple with Mac OS are strong in performance, even it is very strong to handle all kinds of purposes, whether it is for gaming, business, and editing. These are of course supported by the best technology an software used by the Mac-based PCs. In this case, it does not mean that the PCs will not have many junk files. In fact, all PCs will have junk files since the files are used and there can be many trashes made automatically by the PCs. Unluckily, these junk files are bad and this can make the PCs’ performance much slower. That is why these junks must be removed and CleanMyMac 3 is the solution.

CleanMyMac 3 is the latest version of the app cleaner for Mac-based PCs. This software so far is the best app to manage the files and storages. This app can work well with the system of Mac, so this can scan, clean, and manage the files well. With this app, there will be no worries about the junks. All of the junks, old files ,and unused documents can be scanned in details and they can be cleaned, so the PCs can run much faster and better. As the spirit of Mac that provides simplicity and efficiency with high performance, CleanMyMac 3 also has the same spirit. This app is very easy to use, and people only need to use two buttons to make sure that all of the junks are fully removed. Its interface and other features are easy to access, as how Mac makes the PCs easy to use.

There are some great algorithms improved in this agen bola latest version of app to make sure that all data can be scanned thoroughly and users will only find the junks and unused or unnecessary files. In this case, users can also do some custom search to find some data that they want to remove. There are some lists of menus and filters to apply in searching the trashes and junks. All hidden files will not safe with this app since this can search every corner of the storage system, so all hidden files are uncovered and the junks can be fully removed.

il 20 June 2018 11.05

13 June 2018

Types of E-commerce Platforms

Mattia Migliorini

When talking about e-commerce, it is important to get to know the varieties of type of such business form. Classification of e-commerce business platforms is done by basing it on the model of licensing, the scenario of sales, and the exchange of data. The first would be on-premises e-commerce. The licensing fees for this kind of e-commerce require initial one-time purchase investment. Its advantages include higher levels of customizability, secure data storage, and high performance. Its disadvantages include an initial investment of large size, self-maintenance, and technical knowledge.

The second is SaaS (software as a service) e-commerce. The delivery model of this e-commerce is cloud-based. Applications are managed and hosted in the data center of the service provider. Its advantages include solutions with great affordability, host and upgrade, scalability, and availability. Its disadvantages include limited system control and limited integration with back-end systems. The third type is Fully Managed (FM) E-commerce. The FM e-commerce begins as PaaS (Platform as a Service). It offers software and hardware for e-commerce. Services provided by FM e-commerce include marketing consulting, customer support, data management, image editing, and picture taking. B2B solution is the typical stores that receive FM e-commerce. The sales volume would be used as the licensing model.

The last type of e-commerce would be the open source e-commerce. Open source e-commerce is free of charge, meaning it does not come with licensing fees. Users of this e-commerce are directly responsible for everything from installation, maintenance, security, to configuration of the software right on their own servers. Open source e-commerce calls for technical expertise in terms of web design and development. Its advantages include a system that’s free of charge, a great range of extensions/plugins/add-ons, and higher levels of flexibility. Its disadvantages include requirement of technical knowledge, costs of hosting, and absence of standard integration with back-end systems.

il 13 June 2018 06.44

11 June 2018

Getting to Know Some Important Things about Web DesignWeb design involves a specific set of tools and technologies. There are many kinds of tool involved with the activity and their roles depend on the part of process they are used in. Tools for web design are updated regularly over time with addition of newer standards and software. The only thing that remains the same with them would be the basic principles. Graphic editors of both raster and vector types are used by web designers to come up with web-formatted prototypes of imagery and design. Creating websites involves technologies such as W3C standards including CSS and HTML. These standards can be hand-coded or WYSIWYG-generated.

The content of websites can be statically or dynamically generated. Static websites store unique files for each page. The same content would be returned whenever a page is requested. Said content was created once during the process of designing the judi online website. The content would be authored manually but some websites resort to automated process. The latter method became popular in 2015 when software such as Adobe Muse and Jekyll popped up. A static website can be hosted in a much simpler way because its server only serves static content. Pages can be served quickly and server hardware costs much lower.

Dynamic websites use server-side technology to generate pages and the generating process is done on the fly. The content of these websites is extracted from at least one back-end database. When a dynamic website is designed, static pages are often used to create the mockup or the wireframe of the dynamic pages. Dynamic pages call for a skillset that is much broader than static pages. Typical languages used to develop dynamic web pages are ASP, PHP, or Perl. PHP and ASP use template approach: a server-side page that looks just like the structure of a complete page on the client side is used and data would then be inserted into the page using tags as guides.

il 11 June 2018 16.57

10 June 2018

A Short Story about the Evolution of Web DesignMicrosoft launched its own first competitive browser in 1996. The browser in question came complete with its very own tags and features. At the time of its release, the browser was also the first to include supports for style sheets, an authoring technique that was viewed as something obscure back then. The HTML markup for tables was initially meant for viewing tabular data. Designers quickly acknowledged that HTML tables can be used to create multi-column, complex layouts, which were something that was rather impossible to do back then. This was at a time when good markup structure was overlooked in favor of good esthetics and web accessibility and semantics were things that were paid little attention to.

Websites using HTML had limited design options. Complex designs were created by web agen sbobet using table structures that were complicated or blank spacer.GIF images in order that empty table cells could stop collapsing. In December 1996, CSS was introduced by the W3C as a means to support layout and presentation. HTML code benefitted from CSS in that it can be semantic instead of being both semantic and presentational. It also improved web accessibility.

Flash (known as FutureSplash back then) was developed in 1996. Flash content development tool at the time was way simpler compared to what it is today. It used basic drawing tools and layout, an early version of ActionScript, as well as a timeline. However, these features made it possible for web designers to work with things beyond HTML, JavaScript, and animated GIFs. Still, Flash required a plugin. And because of this, web developers were reluctant to use it out of fear of limiting market share caused by lack of compatibility. As a result, designers resorted to gif animations and JavaScript to make widgets. Flash found popularity in specific target markets and has since become a common mainstay in many browsers.

il 10 June 2018 16.17

02 June 2018

Some Tips to Do Before Buying Domain

Many people use website. Websites have important role nowadays. There are many kinds of things accessed through websites. People can find information and even buying stuffs by accessing the websites. In this case, maybe you are also interesting to have your own website. It is a good thing when you want to have it, but you need to make several consideration and considering or choosing the domain is the important one. Domain can be called as the address of your website. When people want to visit your website, they will need the domain and its extension. Because it has important role, of course you cannot choose or make domain name randomly. There should be good consideration about it.

The first thing is to consider the target of audience. It is important to consider this point. Of course, you have certain goals or targets when you decide to make website. In this case, your decision and goal may also have correlation with the target of audience. It means that you need to consider who are the readers or customers visiting the websites. It can be based on the age, gender, profession, and other things. You need to specify this things, so the domain can be easier to be found by your readers or target of audience. Then, if it is about business, it is better for you to consider your area. For example, if your business are for customers or audiences in California, you can include this town in the domain name, such as “Californiacarrental”. This will help audience in finding your website.

Then, when you are going to make domain name, you need to consider its length. This is important and it is better to have short domain. It can be better if it is easy to remember. This will be more effective compared to the longer name of website. People may be less interesting to type the name of the website. With more characters, people may also be hard to remember and memorize the domain. Of course, although you are going to make short domain, it does not mean that you can make similar domain to certain famous domain name. Some people may think that this is effective, but it is not true at all. It will not be effective and sometimes people will not remember it. The same case also happens when you choose slang word as the domain name. This may make people less interested to visit the website, although it may sound good or interesting. It is better to have shorter domain with your own creativity, and it is better to use the good spelling.

il 02 June 2018 07.05

04 May 2018

Categoria: 

bionic_flower.png
Foto originale: Crocus Wallpaper by Roy Tanck

Il 26 Aprile è stato finalmente rilasciato Ubuntu 18.04 LTS, nome in codice Bionic Beaver.
Come forse già saprete, si tratta di una release molto attesa ed importante: è la prima Long Term Support con preinstallato il desktop GNOME.
Sarà supportata fino al 2023. Per scoprirne tutte le novità potete consultare questa pagina.

Come di consueto, il Gruppo Documentazione ha organizzato l'opera di aggiornamento e revisione delle principali pagine del wiki.
Ma molto lavoro rimane ancora da fare. Infatti tante guide hanno bisogno di essere verificate o aggiornate con la nuova versione 18.04.

Come contribuire

La maggior parte delle guide contiene, sotto l'indice in alto a destra, una dicitura simile a questa: «Guida verificata con Ubuntu: 14.04 16.04 17.10».

  • Vi siete accorti che una guida già esistente è valida anche per Ubuntu 18.04?
    Perfetto! fatecelo sapere attraverso la discussione dedicata presente nel forum (trovate il link sempre sotto l'indice), oppure contattateci. Se invece siete già iscritti al Wiki potete verificarla direttamente voi.

  • Vi siete accorti che una guida esistente contiene istruzioni non valide con Ubuntu 18.04?
    Bene, potete farcelo sapere sempre contattandoci. Inoltre se siete iscritti al Wiki potete provvedere da soli a correggerla.

Non siete ancora iscritti al Wiki? cosa aspettate?! iniziate da subito a contribuire! 🙂

il 04 May 2018 08.13

30 April 2018

Basta calcio

Dario Cavedon (iced)


"Il bello della sconfitta sta innanzitutto nel saperla accettare. Non sempre è la conseguenza di un demerito. A volte sono stati più bravi gli altri. Più sei disposto a riconoscerlo, quando è vero, quando non stai cercando di costruirti un alibi, più aumentano le possibilità di superarla. Anche di ribaltarla. La sconfitta va vissuta come una pedana di lancio: è così nella vita di tutti i giorni, così deve essere nello sport. Sbaglia chi la interpreta come uno stop nella corsa verso il traguardo: bisogna sforzarsi di trasformarla in un riaccumulo di energie, prima psichiche, nervose, e poi fisiche." (Enzo Bearzot)
Quando ero giovane, molto giovane, giocavo a calcio. Tutti i bambini giocavano a calcio. Era lo sport preferito, anzi, era il passatempo preferito dei bambini. In estate si stava praticamente tutto il giorno sul campetto vicino a casa, a tirare calci al pallone. Quando non eravamo al campetto, eravamo sul cortile di casa, sempre a tirare calci al pallone. Io ero universalmente considerato scarso - forse il più scarso. Giocavo in difesa, ma spesso finivo a giocare in porta, dove nessuno voleva mai stare.

Fatalmente, ogni tanto si rompeva qualche vetro: è incredibile quanto facilmente si possa rompere un vetro, pur tirando pianissimo il pallone. Mamma si "vendicava" a modo suo: il giardino limitrofo al cortile era cosparso di rose con spine così appuntite da bucare anche il miglior pallone di cuoio. 
Si può dire che la mia infanzia sia trascorsa così, tra vetri rotti, palloni bucati e jeans rovinati dalle scivolate sull'erba. Altri tempi.

Non lo so come sia finito il calcio al suo attuale livello, qualche anno fa ne descrissi alcune disgrazie, alcune sono ancora attuali, altre sono addirittura peggiorate. Ricordo anche un tentativo di Roberto Baggio di cambiare direzione, finito nel nulla. Adesso però basta.

Nel mio immaginario romantico, i principali sentimenti che accompagnano lo sport sono il divertimento, lo spirito olimpico di partecipazione, l'agonismo positivo che insegna a migliorare e superare i propri limiti. Potrò anche sbagliarmi, ma vedo poco di tutto questo nel calcio italiano.

Gioire delle sconfitte altrui, augurare il peggio all'avversario, vedere solo le colpe altrui, immaginare complotti a favore di questa o quella squadra, rende persone tristi e astiose. Rende le persone peggiori, e (esagero) il anche il mondo un po' peggio di quello che era prima.

Preferisco spendere le mie poche energie per costruire un mondo - quel poco che mi circonda - un po' migliore di quello che ho trovato.

(Nella foto: Bearzot gioca a scopone al ritorno dai vittoriosi mondiali di Spagna 1982, in coppia con Causio e contro Zoff e il presidente Pertini).


il 30 April 2018 20.16

23 April 2018

You have a static website and you want to share to your team the last changes you have done, before going online! How to do so?

If you use GitLab and you have an account AWS, it’s time to step up your game and automatize everything. We are going to setup a system which will deploy every branch you create to S3, and clean up after yourself when the branch is merged or deleted.

AWS S3 is just a storage container, so of course you can’t host in this way a dynamic website, but for a static one (as this blog), it is perfect.

Also, please note that AWS S3 buckets for hosting a website are public, and while you need to know the URL to access it, there are way to list them. So do not set up this system if you have private data on your website.

Of course, standard S3 prices will apply.

We will use GitLab CI, since it is shipped with GitLab and deeply integrated with it.

Gitlab CI is a very powerful system of Continuous Integration, with a lot of different features, and with every new releases, new features land. It has a rich technical documentation that I suggest you reading.

If you want to know why Continuous Integration is important I suggest reading this article, while for finding the reasons for using Gitlab CI specifically, I leave the job to Gitlab.com itself. I’ve also written another article with a small introduction to Gitlab CI.

I suppose you already have an AWS account and you know a bit how GitLab CI works. If not, please create an account and read some of the links above to learn about GitLab CI.

Setting up AWS

First thing is setting up AWS S3 and a dedicated IAM user to push to S3.

Since every developer with permissions to push to the repository will have access to the tokens of the IAM use, it is better to limit its permissions as much as possible.

Setting up S3

To set up S3, go to S3 control panel, create a new bucket, choose a name (from now on, I will use example-bucket) and a region, and finish the creation leaving the default settings.

After that, you need to enable the website management: go to Bucket -> Properties and enable Static website hosting, selecting Use this bucket to host a website as in the image. As index, put index.html - you can then upload a landing page there, if you want.

Take note of the bucket’s URL, we will need it.

s3 bucket creation

We now grant permissions to read objects to everybody; we will use the policy described in the AWS guide. For other information on how to host a static website, please follow the official documentation.

To grant the read permissions, go to Permissions->Bucket policy and insert:

{
  "Version":"2012-10-17",
  "Statement":[{
    "Sid":"PublicReadGetObject",
    "Effect":"Allow",
	  "Principal": "*",
    "Action":["s3:GetObject"],
    "Resource":["arn:aws:s3:::example-bucket/*"]
  }]
}

Of course, you need to insert your bucket’s name in the Resource line.

Creating the IAM user

Now we need to create the IAM user that will upload content to the S3 bucket, with a policy that allows only upload to our GitLab bucket.

Go to IAM and create a new policy, with the name you prefer:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::example-bucket/*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "s3:ListObjects",
            "Resource": "*"
        }
    ]
}

Of course, again, you should change the Resource field to the name of your bucket. If you know the GitLab runners’ IPs, you can restrict the policy to that IPs.

Now you can create a new user granting it Programmatic access. I will call it gitlabs3uploader. Assign it the policy we just created.

iam user creation

For more information on how to manage multiple AWS accounts for security reasons, I leave you to the official guide.

Setting up GitLab CI

We need to inject the credentials in the GitLab runner. Go to your project, Settings -> CI / CD -> Secret variables and set two variables:

  • AWS_ACCESS_KEY_ID with the new user’s access key
  • AWS_SECRET_ACCESS_KEY with the new user’s access secret key

Since we want to publish every branch, we do not set them as protected, because they need to be available in every branch.

secret variables config

.gitlab-ci.yml

We now need to explain GitLab how to publish the website. If you need to build it before, you can do so. rpadovani.com uses Jekyll, so my .gitlab-ci.yml file is like this:

image: "registry.gitlab.com/rpadovani/rpadovani.com:latest" # Custom Ruby image, replace with whatever you want
stages:
  - build
  - deploy

variables:
  AWS_DEFAULT_REGION: eu-central-1 # The region of our S3 bucket
  BUCKET_NAME: bucket-name         # Your bucket name

cache:
  paths:
    - vendor

buildJekyll:  # A job to build the static website - replace it with your build methods
  stage: build
  script:
    - bundle install --path=vendor/
    - bundle exec jekyll build --future # The server is in another timezone..
  artifacts:
    paths:
      - _site/  # This is what we want to publish, replace with your `dist` directory

deploys3:
  image: "python:latest"  # We use python because there is a well-working AWS Sdk
  stage: deploy
  dependencies:
    - buildJekyll      # We want to specify dependencies in an explicit way, to avoid confusion if there are different build jobs
  before_script:
    - pip install awscli # Install the SDK
  script:
    - aws s3 cp _site s3://${BUCKET_NAME}/${CI_COMMIT_REF_SLUG} --recursive # Replace example-bucket with your bucket
  environment:
    name: ${CI_COMMIT_REF_SLUG}
    url: http://${BUCKET_NAME}.s3-website.${AWS_DEFAULT_REGION}.amazonaws.com/${CI_COMMIT_REF_SLUG}  # This is the url of the bucket we saved before
    on_stop: clean_s3 # When the branch is merged, we clean up after ourself

clean_s3:
  image: "python:latest"
  stage: deploy
  before_script:
    - pip install awscli
  script:
    - aws s3 rm s3://${BUCKET_NAME}/${CI_COMMIT_REF_SLUG} --recursive # Replace example-bucket with your bucket
  environment:
    name: ${CI_COMMIT_REF_SLUG}
    action: stop
  when: manual

For more information about dynamic environments, see the documentation.

To verify your .gitlab-ci.yml is correct, go to your project on GitLab, then CI / CD -> Pipelines, and in the top right of the page there is a CI Lint link. It does not only lint your code, but it also creates a nice overview of all your jobs.

ci lint

Thanks to the environments, we will have the link to the test deployment directly in the merge request, so your QA team, and every other stakeholder interested in seeing the website before going to production, can do it directly from GitLab.

Merge request overview

Also, after you merge your branch, GitLab will clean after itself, so you do not have useless websites in S3.

You can also see all the deployments in CI / CD -> Environments, and trigger new deploys.

Conclusion

They say 2018 is the year for DevOps. I am not sure about that, but I am sure that a well configured Continuous Integration and Continuous Delivery system save you and your company a lot of time and headaches.

If your builds are perfectly reproducibly, and everything is automatic, you can focus on what really matters: developing solutions for your customers.

This was a small example on how to integrate AWS and GitLab, but you know the only limit is your fantasy. Also, a lot of new features are introduced every month in Gitlab and GitLab CI, so keep an eye on the Gitlab blog.

Kudos to the Gitlab team (and others guys who help in their free time) for their awesome work!

If you have any question or feedback about this blog post, please drop me an email at riccardo@rpadovani.com or tweet me :-) Feel free to suggest me to add something, or to rephrase paragraphs in a clearer way (English is not my mother tongue).

Bye for now,
R.

Updates

This post has been last updated on the 19th September 2018 to fix the S3 bucket URL in the .gitlab-ci.yml file, thanks to James Delaney

il 23 April 2018 14.30

22 April 2018

 

La prossima settimana parteciperò a UbuCon Europe 2018, a Xixòn (Gijon), nelle Asturie, in Spagna.

UbuCon Europe


UbuCon Europe è l'appuntamento europeo di sviluppatori e utenti di Ubuntu (e non solo). È l'evento che ha sostituito gli Ubuntu Developer Summit, organizzati da Canonical.
UbuCon è un'opportunità unica per incontrare di persona le tantissime persone che in un modo o nell'altro partecipano allo sviluppo e al supporto di Ubuntu. Ricordo che Ubuntu (anche se fondata dal benemerito dittatore Sudafricano Mark Shuttleworth) è un progetto nato in Europa (la Gran Bretagna ne fa ancora parte, almeno geograficamente ;-) ), e in Europa le comunità di volontari ubunteri sono particolarmente attive.

Per me sarà l'occasione di rivedere alcuni amici che hanno partecipato all'avventura degli Ubuntu Phone Insiders, e conoscere di persona molte delle persone che ho solo visto o letto su Internet. È sempre un'esperienza piacevole parlare a quattrocchi con chi si è abituati a leggere sulle mail o sui blog, perché il contatto umano e l'esperienza diretta valgono più di un milione di parole.

L'evento si tiene a Xixòn (Gijon in spagnolo), che è la città di Marcos Costales, contact della Comunità Spagnola di Ubuntu, e a cui si deve l'organizzazione di questa edizione di UbuCon Europe. Marcos, che conosco dai tempi degli Insiders, è una delle persone più attive nell'ambito di Ubuntu, e anche sviluppatore di uno dei più bei programmi per Ubuntu Phone: uNav. Devo proprio a Marcos la mia partecipazione: è stato lui che mi ha spinto a lasciare la mia pigrizia sul divano e prenotare il volo per Oviedo.

La scaletta dell'evento è molto ricca: nel momento migliore (o peggiore, visto che il sottoscritto non è dato il dono dell'ubuquità) ci sono ben quattro talk diversi contemporaneamente. Per me sarà un problema decidere quale seguire, sono così tante le cose da sapere e imparare! Alla fine credo mi dovrò focalizzare sugli argomenti che già seguo (poco) nell'ambito della comunità, evitando di impelagarmi in altri nuovi progetti.

Il mio intervento


Il mio talk sarà sabato mattina, e parlerò di "Social Media for Open Source Communities". Dello stesso argomento ho parlato (slide su Slideshare) anche al recente MERGE-it 2018, ma questo talk sarà più ampio, perché parlerò anche di strategie per i social media. Ma soprattutto sarà il mio primo talk in inglese: Sant'Aldo Biscardi, protettore degli Italiani che parlano male inglese, aiutami tu!

Per me si tratta di una bella sfida, spero di riuscire a non dire troppe cavolate, ma del resto l'argomento social è decisamente sottovalutato in molte comunità, quando invece il contatto diretto che consentono i canali sociali è importantissimo sia in fase di promozione, che per il supporto ai propri "clienti".

Resoconto e live tweeting


I talk e i workshop si sviluppano da venerdì 26 a domenica 28 Aprile, io cercherò di presenziare a quanti più possibile... ma non più di uno alla volta! Purtroppo non è previsto un web streaming, e neanche riprese video dei talk (anche se ho proposto a Marcos una soluzione che forse permetterà di coprire una parte dei talk).

Vi darò un resoconto dell'evento su questo blog, ma soprattutto seguirò l'evento anche con un live tweeting su Twitter, quindi seguitemi lì per essere aggiornati in tempo reale! :-)

Si tratta della mia prima volta a un evento internazionale dedicato al mondo FLOSS, e davvero non vedo l'ora!
il 22 April 2018 16.39

06 April 2018

Sabato 24 marzo si è svolto a Torino il primo MERGE-it, il primo incontro delle Comunità italiane che si dedicano all’Open Source, Open Data e Open Culture. Le comunità presenti erano praticamente tutte (quelle che conosco): ubuntu-it, Debian, LibreItalia (LibreOffice), Mozilla Italia, Wikimedia (Wikipedia), OpenStreetMap, GFOSS.it, Spaghetti Open Data e ovviamente ILS, organizzatore dell’evento.
L’evento si è svolto presso la Corte Interrata del Politecnico di Torino, una gran bella location, con una serie di aule disposte sui due lati di uno spazio verde, nelle quali ogni comunità ha trovato il proprio spazio.


Accoglienza 


Per l’accoglienza, c’era un banchetto all’entrata, non era richiesta la registrazione, ma si potevano acquistare le magliette e gadget dell’evento. Ubuntu-it era in un'aula assieme ai cugini di Debian Italia, che ormai conosciamo da anni, condividendo molto di più che pacchetti “.deb”.

Il programma della giornata 

In ogni aula si svolgevano talk delle comunità, e alcune avevano colto l’occasione per fare la propria assemblea oppure discutere delle prossime azioni tutti assieme.

Nella sala ubuntu-it, i lavori sono iniziati con un fuori programma: la presentazione delle “vending machine” utilizzate dalla Regione Lombardia per il referendum sull’autonomia, e donate poi alle scuole Lombarde. La particolarità di questi computer consiste nel fatto che montano il Ubuntu, e sono un ottimo metodo perché l’open source entri nei cuori dei professori. Ci riusciremo solo se li sapremo accompagnare nel percorso di apprendimento.

Per quanto più attinente alla comunità ubuntu-it, la relazione di Mattia Rizzolo sui lavori del Consiglio della Comunità è stata l’occasione per fare un checkup sullo stato di salute della comunità, che ha visto negli ultimi anni il diradarsi di contributi e membri. L’idea comune emersa è quella di restringere il campo d’azione, abbandonando i progetti che non riusciamo più a seguire, e concentrandoci su quello che si può fare al meglio con le poche risorse a disposizione.

Pietro Albini ha poi fatto una relazione sui numerosi lavori che il Gruppo Sistemisti ha portato avanti per recuperare la conoscenza perduta dopo la dipartita di alcuni membri della Comunità, e per aggiornare il parco macchine su cui girano le risorse web della comunità italiana di Ubuntu.

Foto di @faffa42 su Twitter

E’ stato quindi il turno del sottoscritto. Davanti a una discreta folla di curiosi e appassionati (vedi foto), ho ripercorso la storia di Ubuntu Touch (Ubuntu Phone), dalle meravigliose premesse di “one system to rule them all” del 2011, all’abbandono dello sviluppo da parte di Canonical del 2017, alla concreta realtà di Ubports del 2018, dove una piccola comunità di appassionati, supportati da un paio di sponsor, ancora persegue l’obiettivo di un dispositivo basato su Linux e Software Libero e rispettoso della privacy. Ubports sviluppa Ubuntu Touch su ben quattro diversi dispositivi (One Plus One, Fairphone 2, Nexus 5 e BQ M10), e supporta tutti i “vecchi” dispositivi rilasciati quando lo sviluppo era condotto da Canonical (LG Nexus 4, BQ E4.5 e E5, Meizu MX4 e PRO 5).


Mi fa piacere segnalare l’impegno originale di Smoose, che ho contattato in fase di preparazione del talk. Si tratta di piccola azienda Olandese che si dedica allo supporto con solo Software Libero di realtà olandesi, e che impiega ben il 10% delle proprie persone al supporto dello sviluppo e della promozione di Ubuntu Touch.
Ho infine tracciato il futuro prossimo di Ubports, con la nascente fondazione di diritto tedesco, sul modello di Document Foundation, che darà ulteriori certezze a chi si dedica al progetto. Per Ubuntu Touch, riposti nel cassetto i sogni di dominio del mondo, si tratta di risalire la lunga ed erta china che deve affrontare un progetto open che può contare sulle forze del volontariato e poco altro. La strada è difficile e densa di incognite, ma forse è proprio questo il motivo che più mi appassiona.
Dopo di me ha parlato il grande Marco Trevisan, che ha offerto il punto di vista “aziendale” dello sviluppo di Ubuntu. Marco infatti lavora per Canonical, e ha accesso a molti aspetti dello sviluppo che dall’esterno possono sfuggire. Interessante quindi la sua testimonianza della collaborazione Ubuntu/Fedora (Canonical/Red Hat) per il supporto ai monitor HDPI per GNOME (che purtroppo non è ancora stata implementata). Dall’anno scorso, dopo l’abbandono di Unity, Ubuntu utilizza una versione di GNOME Shell leggermente modificata. In quest’ottica, la collaborazione con GNOME sarà sempre più importante. Tra un talk e l’altro intanto era arrivata pausa pranzo e ne abbiamo approfittato per un abbondante pranzo in un ristorante nei dintorni.
La pausa pranzo è durata anche più del previsto (burp!), e il pomeriggio è volato via velocissimo. Prima il talk di Jeremie Tamburini su come contribuire alla documentazione di Ubuntu: è molto più facile di quel che si crede!

Poi, ancora un talk del sottoscritto, con un talk su come sia importante per tutte le comunità aumentare il social engagement sui social media. I social media fanno parte della vita quotidiana delle persone che popolano il web, ed è quindi fondamentale per le comunità trasmettere il loro messaggio su tutti i differenti canali a disposizione: Facebook, Twitter, (e addirittura) Google Plus sono un ottimo veicolo per far conoscere le proprie attività, differenziando messaggi e frequenza a seconda del mezzo.
Capisco le perplessità sui social media da chi frequenta il mondo open: Facebook e le altre piattaforme sono chiuse, e pongono seri problemi di privacy. Nonostante questo sono anche utilizzate ogni giorno da milioni di persone e, per molte di queste, coincidono con la loro visione di Internet. Fare un passo nella direzione di queste persone, creando delle opportunità di contatto sui social media, è uno strumento utile per introdurle nel mondo open source.

Dopo il talk, mentre stavo andando a prendere un caffè alle macchinette, sono stato bloccato più volte nei corridoi da varie persone, raccogliendo diversi contatti e qualche possibile iniziativa per ubuntu-it. Per contro, ho così perso gli altri talk del pomeriggio, e neanche sono riuscito a passare a salutare le persone delle altre Comunità, parecchie delle quali amiche. Un peccato! Ecco, se devo trovare una pecca a MERGE-it, è mancato un appuntamento in cui trovarsi con gli altri. Sarebbe stato bellissimo un keynote iniziale comune e anche un pranzo conviviale, magari sfruttando un servizio di catering. Ma sarebbe bastata una pizzata da asporto come fanno gli amici del LUG di Pordenone.

Concludendo

Mentre il Software Libero prende piede sempre più, e le iniziative si moltiplicano, è sempre un piacere rivedere qualche vecchia conoscenza, e conoscere qualche faccia nuova - pur nel limitato volgere di un giorno. MERGE-it ha offerto tutto questo, e con qualche limatura organizzativa (vedi sopra), lo si può rendere un appuntamento fisso, ampliando il coinvolgimento del pubblico generale e degli studenti del Politecnico.

il 06 April 2018 07.37

04 April 2018

Categoria: 

Documentazione wiki

Foto originale: London Eye by Paul Daniell

 

Ecco le novità introdotte nella documentazione della comunità italiana tra gennaio e marzo 2018.

Portale Ambiente Grafico

 

Portale Amministrazione Sistema

 

Portale Hardware

 

Portale Programmazione

  • Checkinstall: utilizzare lo strumento CheckInstall per creare pacchetti .deb

  • CambiareShell: abilitare le shell più comunemente usate in Ubuntu.

 

Portale Giochi

 

Portale Multimedia

  • Audio/FFmpeg: programma a riga di comando per la codifica/decodifica di formati video e audio.

 

Per maggioro informazioni, consulta la pagina Lavoro Svolto/2018.

 


A cura del Gruppo Doc
Vuoi contribuire al Wiki? Comincia subito!

il 04 April 2018 06.11

21 March 2018


Per la prima volta nella storia (esclusa la fantastica ma limitata esperienza della DUCC-IT) le comunità italiane attive nel FLOSS, Cultura Libera e Open Data si incontrano tutte assieme, tutte nello stesso posto e nello stesso giorno.

Accadrà il 24 marzo prossimo, in occasione di MERGE-it, un evento organizzato da Italian Linux Society, in collaborazione con le migliori comunità open italiane, tra cui: LibreItalia (LibreOffice), Spaghetti Open Data, Industria Italiana Software Libero, Wikimedia (Wikipedia), Mozilla Italia (Firefox), GFOSS.it e ovviamente ubuntu-it, la magnifica comunità italiana di Ubuntu.


Il luogo dell'evento è il Politecnico di Torino, presso la Corte Interrata, accessibile da Via Castelfidardo oppure Via Pier Carlo Boggio.

Si tratta di un evento unico, il primo del suo genere in Italia, organizzato grazie alla volontà comune di trovarsi e ritrovarsi, per scambiarsi opinioni ed esperienze e soprattutto imparare dagli altri. Sono convinto che l'aspetto migliore del Software Libero riguarda proprio la condivisione e lo scambio di conoscenze ed esperienze. Quando io so una cosa e te la racconto, e tu ne sai un'altra e me la racconti, alla fine della giornata torniamo a casa con il doppio delle cose che sapevamo la mattina, e con la soddisfazione di aver contribuito a migliorare quel piccolo pezzo di mondo che ci sta attorno.

Il programma è davvero molto articolato e ricco, impossibile elencare qui tutti gli appuntamenti. Il sottoscritto sarà soprattutto nei pressi della sala dove si terranno i talk della Comunità ubuntu-it, ma farò sicuramente un giro anche nelle altre aule. Non ho ancora deciso quali, perché l'imbarazzo della scelta regna sovrano!

Per il sottoscritto, MERGE-it è anche un modo per ritrovare dei giovani amici che non vedo da molto tempo, come per esempio Giulio e Riccardo, e anche quelle vecchie volpi del software libero come Roberto "madbob" e Daniele "MTE90".

Sono molto curioso di sentire le esperienze di chi parteciperà, e spero anche qualcuno verrà a sentire quel poco che so su Ubuntu Touch e Social Media.

Chi vuole partecipare a MERGE-it basta che si presenti all'ingresso: nessun costo per partecipare, nessuna preiscrizione.


il 21 March 2018 09.26

24 February 2018

Introduction

If you are developing a brand new project on your VirtualBox instance, it is very useful to use the developer tools and the device toolbar on Chrome (or the Responsive Design Mode on Safari).

But is of course much more useful to perform real tests on real devices.

The Remote Debugging Android Devices is a great opportunity for this.

In the rest of the article, I am assuming that:

  • You are working on High Sierra;
  • You are going to show your project on an Android 4.4+ device;
  • You are running a Linux server (Ubuntu 17.10 in the example) on your VirtualBox instance;
  • The development domain is mylocaldomain.local provided by an Apache2 instance.

Set up

The first part of the setup, required to detect the Android device, is perfectly described in the Remote Debugging Android Devices official guide.

To summarize:

  1. Enable the Developer Options on your Android device;
  2. From the revealed menu, select Enable USB Debugging;
  3. Now, on your computer, open Chrome and its Developer Tools (generally ⌘ ⌥ I);
  4. Then, in the same bar as “Console”, “Elements”, “Sources”, .. , on the right, click the  ⋮ symbol and select More tools > Remote devices.
  5. Be sure to confirm the dialog on your phone to authorize the computer to perform this action.

Custom domain / Virtual hosts configuration

In my case, I had to comment out everything else that was pointing to my custom domain in the /etc/hosts file, both in the host and guest machine, otherwise a random domain pointing to my 127.0.0.1 address was selected.
So the /etc/hosts looks like:

127.0.0.1 localhost 127.0.0.1 mylocaldomain.local

Just to be sure, I have a2dissited all the other virtual hosts, too, from the Apache enabled sites..but you can try without this step.

“Server” Port forwarding

The VirtualBox port forwarding will contain something like a rule similar to the following one:

Name Protocol Host IP Host Port Guest IP Guest Port
Apache TCP 8080 80

“Client” Port forwarding

  1. Go to the Settings menu and be sure Discover USB devices checkbox is enabled;
  2. Now, add a rule in the (enabled) port forwarding section like the following one:
    localhost:4444 mylocaldomain.local:8080
  3. Go back to the device section.

Test

You can now type http://localhost:4444 on the New Tab section, and the website should be opened in your Android device.

il 24 February 2018 08.40

09 February 2018


Un po' di storia

Qualche secolo informatico fa, nel 2001, una nuova distribuzione commerciale (dove per commerciale significa "a pagamento") apparve nell'arena Linux: Lindows. Dopo qualche bega legale e 20 milioni di dollari venne poi rinominata in Linspire. La distribuzione era una creatura del discusso imprenditore americano Michael Robertson, e aveva delle caratteristiche peculiari che la rendevano molto interessante: massima compatibilità con i principali programmi Windows (grazie all'uso di Wine), e facilità di installazione e aggiornamento grazie al software "Click and Run" (CNR). Voleva essere un ponte per traghettare gli utenti da Windows a Linux.

L'approccio estremamente pragmatico della distribuzione, che mescolava software libero con altro proprietario, attirò parecchie critiche, tanto che Richard Stallman arrivò a dire che "passare da Windows a Linspire non porta alla libertà ma a un padrone diverso".

Nonostante le critiche, la distribuzione ebbe un discreto successo, specie negli USA. Sull'onda del successo, Linspire finanziò altri progetti open source, e anche eventi molto importanti. Nel 2007 arrivò a stringere un accordo con Canonical per utilizzare CNR su Ubuntu (che mai si concretizzò) e un altro accordo con Microsoft per favorire l'interoperabilità con Windows.

Nonostante questo, Linspire si perse poi nelle spire del tempo, tra acquisizioni e cambi di management.

Il ritorno (eh?)

Qualche giorno fa ho letto della rinascita di Linspire (e della sua gemella Freespire). La forumula di vendita è pressoché uguale: Linspire costa 80 $ mentre Freespire è gratuita. La differenza di prezzo sta nel supporto telefonico per un anno, e nell'uso legale dei codec multimediali - sembra che in qualche parte del Mondo sia ancora un reato perseguito ascoltare MP3 senza possederne la licenza.

Lispire adesso è sviluppata da PC/OpenSystems LLC, una piccola azienda di Franklinton, North Carolina. La stessa azienda rilascia anche Black Lab Linux, una distribuzione - che non conoscevo - basata su Ubuntu.

Zombie (a)Live

Incuriosito da questa apparizione, ho deciso di provare sul campo Linspire 7.0. I 30 $ di prezzo minimo (senza supporto) mi hanno fatto desistere. Ho quindi ripiegato su Freespire 3.0 (gratuita), atteso pazientemente il download degli 1,5 GB, formattata una chiavetta USB e avviata la versione "live".


Il desktop di Freespire 3.0 si fa notare per la barra posizionata in basso, particolarmente grande, con una "f" sulla destra. Il tutto ricorda molto Windows 7, che è forse l'effetto voluto.


La scelta delle icone mi crea un certo disagio: sembrano create negli anni '90, senza un minimo di criterio e omogeneità.

Per questa prova "live" uso un portatile HP, su cui è installato Ubuntu 16.04 con hardware del tutto standard, ma il wi-fi non funziona. Brutto segnale, sintomo di carenza nei test pre-rilascio.

Facendo clic sulla "f" appare il menu principale, si tratta del menu Whisker, presente anche in Xubuntu. E qui cominciano i primi sospetti "Vuoi vedere che...".

Le applicazioni preinstallate sono:
  • browser Firefox Quantum
  • e-mail client Geary 
  • Abiword e Gnumeric per documenti e fogli di calcolo
  • Parole Media Player per i video
  • Pinta per disegno e fotoritocco
  • Audacious per la musica
e poco altro. A parte Firefox, la scelta delle applicazioni lascia molto perplessi, ce ne sono altre molto più complete di queste!

Una sorpresa divertente che conferma i sospetti quando faccio clic sul salvagente, icona di "Help".


"Signore e signori, ecco a voi Stanislao... ehr... Xubuntu, in uno dei suoi più riusciti travestimenti!"
Mi viene da ridere, o piangere. Tanto clamore e articoli per una Xubuntu camuffata, roba che un qualsiasi LUG può mettere insieme in un pomeriggio. Anche "About" di XFCE conferma il delitto.


Apro qualche programma a caso, giusto per vedere di cosa si tratta e noto delle incongruenze nel tema delle finestre tra i programmi, basati su librerie diverse.


Notate la differenza tra i pulsanti delle finestre in alto a destra del tool di Backup e Thunar?

La prova termina sostanzialmente qui, Xubuntu 16.04 la conosco, l'ho già installata su uno dei PC di casa, e funziona bene anche senza questi baffi posticci.

Considerazioni finali

Freespire differisce da Linspire per alcune applicazioni fondamentali: Abiword/Gnumeric (Linspire ha LibreOffice), Geary (Thunderbird), Firefox (Chrome), Audacious (Rhythmbox), Parole (VLC) che ne fanno una versione impoverita della sorella. Credo sia un modo per spingere le persone a comprare Linspire (you can't be serious!!), ma si tratta di una scelta discutibile per almeno un paio di motivi. Primo: tutti i programmi disponibili su Linspire sono gratuiti, e quindi appunto NON è una questione di prezzo. In più, gli sviluppatori devono sobbarcarsi la fatica di mantenere due distribuzioni diverse, ognuna con diversi tempi di sviluppo, e diversi bug da correggere.

Freespire non ha niente a che vedere con Linspire/Freespire delle origini. A tutti gli effetti è una Xubuntu 16.04 aggiornata (alcuni pacchetti sono più recenti) e personalizzata, ma neanche tanto bene: qualche scritta Xubuntu appare qua e là (vedi sopra), la grafica è a volte incoerente (vedi i menu delle finestre) e la scelta delle applicazioni preinstallate è avvilente.

Distrowatch - che è un sito molto più serio di questo blog - ha fatto una bella recensione (in inglese) di Freespire 3.0 e Linspire 7.0, che vi invito a leggere, se avete il gusto sadico di ravanare nel torbido.

Freespire è pensata per chi si avvicina a Linux, ma chi si avvicina a Linux ha già moltissime altre distribuzioni migliori tra cui scegliere, le prime tre che mi vengono in mente: Xubuntu, Linux Mint, ZorinOS.

Auguro la miglior fortuna agli sviluppatori di Linspire/Freespire: ne avranno bisogno.

L'immagine del post "Zombie Penguin" è di Olga Karvitska.
il 09 February 2018 11.15

07 February 2018

Chinotto omeopatico

Dario Cavedon (iced)

 

Anni fa feci un post sul "Mistero del Chinotto", in cui disquisivo sulla composizione delle bevande che si pregiano di tale denominazione (o sue varianti tronche). Il dubbio riguardava la presunta presenza di vero chinotto nella bevanda definita "chinotto".

Ho scoperto che un'azienda è si è preocuppata di segnalarne la percentuale. Da tenere presente che una qualsiasi aranciata, per fregiarsi della denominazione "aranciata" deve avere almeno il 12% di succo di arancia.

Nel riconoscere il merito a questa eccezione, dove altre aziende più prestigiose che si pregiano di prestigiosi presidi, non posso che apprendere con estremo sconforto che si tratta di una dose esigua: 0,05%, pari a 1 cucchiano da tè per 10 litri.
il 07 February 2018 15.20

25 January 2018

Di corsa

Dario Cavedon (iced)


Pochi sanno che da qualche mese ho iniziato a correre. All'inizio era per correr dietro a mia moglie, contagiata dal virus benefico del running. Poi ho preso l'impegno sul serio - come poche volte mi capita - vista anche l'impellente necessità di una vita più sana, dopo almeno vent'anni passati tra divano e scrivania del computer.

Per chi non corre è difficile capire le motivazioni dei runner. Direi una difficoltà simile la incontra chi usa Windows (=divano) e non ha mai usato Linux (=corsa). Sdraiati sul divano, è difficile capire cosa spinge una persona apparentemente normale, ad alzarsi il mattino presto (o la sera tardi) per andare fuori a correre, quando è troppo freddo, oppure troppo caldo, oppure potrebbe piovere da un momento all'altro come hanno detto in TV. Del resto chi è seduto sul suo Sistema Operativo Unico fa fatica a capire cosa spinge una persona apparentemente normale ad utilizzare un sistema totalmente diverso, che tocca imparare tutto un'altra volta e che (a volte) bisogna smanettare per farlo funzionare bene.

Beh, un Motivo per correre (e per usare Linux) non c'è. Uno solo non c'è, ce ne sono qualche migliaio. Se finora vi ho annoiato spiegando perché è cosa buona e giusta usare Linux (...e continuerò a farlo!), da oggi vi annoierò anche per spiegarvi perché è cosa buona e giusta mettersi un paio di scarpe da ginnastica e uscire a correre.

Sono sicuro che capirete.
il 25 January 2018 07.56

09 January 2018

Google Hash Code 2018 - Abruzzo

Ciao! 🙂
Per la seconda volta in Abruzzo ci sarà il Google Hash Code 2018, una competizione per gli informatici in cui si sfideranno proponendo la propria soluzione per una traccia che verrà rilasciata il giorno stesso della competizione.
Se sei curioso di sapere in maniera dettagliata i vari aspetti dell’evento o vuoi sapere come registrarti… continua a leggere!

Cos’è il Google Hash Code 2018?

Hash Code 2018 è una competizione a squadre organizzata da Google e che riguarderà principalmente la programmazione.
Quello che si dovrà fare è formare o scegliere un team, scegliere un linguaggio di programmazione da adottare con il tuo team e risolvere tutti insieme il problema di vita reale che sarà scritto e rilasciato da Google stessa il giorno della competizione.

La soluzione, una volta scritta in forma di codice, dovrà essere inviata sulla relativa piattaforma che vi permetterà di accumulare punti per conquistare un posto nella finale.
Fino a quando non scade il tempo, sarà ovviamente possibile inviare più di una soluzione potendo quindi accumulare sempre più punti.

Il tabellone dei punteggi si aggiornerà in tempo reale e saprai subito (non appena invii) quanti punti avrete totalizzato rispetto ad un altro team locale e globale.
I migliori team avranno modo di sostenere il round finale presso la sede GoogleDublino concorrendo anche per vincere spettacolari premi messi in palio. La maggior parte delle spese di viaggio, previa richiesta, potranno essere rimborsate.

Per quanto riguarda i premi abbiamo…

Round di qualificazione:

  • Gadget per i partecipanti iscritti al nostro HUB L’Aquila Developers

Round finale (ufficio Google a Dublino):

  • Prodotti relativi a Google per i migliori 3 team di valore minimo di 190€

Inoltre, alla fine del round finale verranno sorteggiati altri vincitori del round finale o di qualificazione e saranno premiati con prodotti relativi a Google per un valore tra i 10€ e i 100€.

E tu, sei pronto per la sfida? 🙂

Informazioni iscrizioni e luogo

Evento annullato a causa di mancato raggiungimento delle iscrizioni minime richieste.

Come iscriversi all’evento

  1. Entrare in QUESTA PAGINA per effettuare l’iscrizione generale all’evento compilando tutti i dati richiesti.
  2. Una volta revisionato e inviato il modulo, bisogna attendere che venga attivato il proprio profilo entro le 48 ore.
    Al fine di accelerare la procedura, vi consiglio di trovare persone per formare un team oppure cercarne uno.
    Un team può essere composto da minimo 2 persone e massimo 4 persone.
  3. Ricevuta l’email di avvenuta attivazione del proprio profilo, create il vostro team o unitevi ad uno esistente tramite link inviatovi da altri.
  4. [Obbligatorio] Un membro del team (che sarà di riferimento durante l’evento) dovrà recarsi nella sezione Hub (optional) in basso di QUESTA PAGINA e selezionare Italy nel primo riquadro e L’Aquila Developers nel secondo.

Una volta fatto ciò, siete pronti e, vi manderò ulteriori istruzioni da seguire il giorno della competizione.

 

Iscrivetevi e invitate tutti i vostri amici, colleghi e compagni di classe che sono interessati a partecipare!!
Tutti sono utili e nessuno è escluso 🙂

FAQ

  • Devi aver compiuto 18 anni entro il 1° Marzo.
  • Vige la regola del Fair Play, dopotutto ci si ritrova anche per passare una bella serata in compagnia 🙂
  • La soluzione finale verrà giudicata da una giuria di ingegneri Google! Non sarà possibile avere preferenze o meno.
    Tutti i dubbi verranno chiariti pubblicamente durante l’evento.
  • Sarà permesso di poter lasciare la sede per continuare a lavorare da casa. In sede è richiesta la presenza di almeno DUE membri del team. Pena esclusione totale dall’evento.
  • Per partecipare all’evento, dovrai portare il tuo computer portatile ed eventualmente, una ciabatta elettrica.
    Sarai responsabile dei tuoi oggetti così come per eventuali danneggiamenti e/o furti.
  • Sei libero di portare cibo e bevande mantenendo un ambiente pulito ed evitando l’uso di stupefacenti e/o alcool.
    Al fine di garantire ordine pubblico, sarà presente la squadra di emergenza che provvederà alla sicurezza e ai controlli durante l’evento.

Patrocinio

Sei un Ente e vorresti patrocinare l’evento Google Hash Code 2018? Fai clic su QUESTA PAGINA per inviare una richiesta.

Univaq Logo          Disim Logo


Sponsor

Sei un’azienda, associazione, etc, e vorresti sponsorizzare l’evento Google Hash Code 2018? Fai clic su QUESTA PAGINA per inviare una richiesta.


Stampa

Sei un giornalista o redazione e vorresti maggiori informazioni, pubblicare l’evento sulle tue piattaforme, fare interviste e simili? Fai clic su QUESTO LINK e vi risponderò in breve tempo.

L'articolo Google Hash Code 2018 – Abruzzo sembra essere il primo su Mirko Pizii | Grab The Penguin.

il 09 January 2018 13.55

05 January 2018

Vista frontale scatola Vidonn F1

Introduzione

Ciao! 🙂
In questo articolo andrò ad analizzare ogni singolo aspetto di una cuffia diversa dalle altre ossia Vidonn F1.
Vidonn F1 è una cuffia che sfrutta la conduzione ossea e che quindi potrai ascoltare l’audio attraverso le ossa del tuo cranio.
Ma vediamo in dettaglio come funziona la conduzione ossea e perché si dovrebbe privilegiare l’uso di questa tipologia di cuffie.

Conduzione Ossea: Descrizione e Perché Privilegiare

Come già anticipato, la conduzione ossea è una tecnologia che ti permette di ascoltare qualsiasi fonte audio attraverso le tue ossa.
Questo tipo di trasmissione viene effettuata in maniera del tutto automatica e a bassa latenza dalla cuffia Vidonn F1 in questo modo:

  1. Ricezione fonte audio (nel nostro caso da un dispositivo via Bluetooth)
  2. Traduzione fonte sonora in vibrazioni attraverso il componente di trasduzione ossea
  3. Le vibrazioni “viaggiano” attraverso le ossa per arrivare al nervo uditivo
  4. Il nervo uditivo convertirà la vibrazione in informazioni elettriche che arriveranno dritti nel nostro cervello.

Per quanto riguarda la raccomandazione, vi suggerisco di usare questa tipologia di cuffie nel caso siate degli sportivi, autisti, persone affette da disabilità come non vedenti, in quanto sarete in grado di ascoltare sia la fonte audio delle cuffie che l’ambiente che vi circonda, quindi, la cuffia rispetta il codice della strada.

Nota: La cuffia Vidonn F1 permette di ascoltare qualsiasi fonte audio collegabile via Bluetooth come i telefoni e inoltre, sarete in grado di poter effettuare chiamate durante la guida grazie anche al microfono incorporato nella cuffia.

Unboxing Vidonn F1

Vista generale del contenuto della scatola Vidonn F1

Partendo da sinistra abbiamo:

  • Libretto di certificazione e garanzia
  • Cavo USB-Micro USB per ricaricare il dispositivo
  • Tappi marchiati 3M per isolarsi dal suono ambientale (DA USARE SOLO IN AMBIENTI SICURI)
  • Manuale d’uso della cuffia Vidonn F1
  • Cuffia Vidonn F1

Caratteristiche Tecniche

  • Bluetooth: versione 4.1 fino a 10 metri
  • Risposta in frequenza: 20Hz – 20kHz
  • Autonomia in standby: 7 giorni
  • Autonomia d’ascolto: 6 ore
  • Tempo per il caricamento della batteria: 1 ora e 30 minuti
  • Grado di protezione per acqua e sudore: IP55
  • Espansione dei bassi con settaggio EQ
  • Microfono con soppressione CVC dual noise
  • Suono stereo dinamico
  • Riduzione della dispersione audio con LeakSlayer
  • Materiale: lega di Titanio, TPU
  • Peso: 38 grammi
  • Garanzia 2 anni

Design e Comfort

Vista laterale cuffia Vidonn F1

La cuffia si presenta esteticamente molto bene e i materiali di costruzione sono molto solidi al tatto.
I materiali utilizzati sono essenzialmente due di cui troviamo plastica rigida all’esterno e all’interno dell’archetto vi è la lega di titanio in modo da garantire robustezza, leggerezza e resistenza alla rottura dovuta alla torsione della cuffia.

Sotto uso intenso la cuffia non provoca alcun tipo di bruciore, surriscaldamento o fastidio ed è ben tollerato dalla pelle umana anche in caso di sudore intenso.
In caso di sudore, si può pulirlo con un panno morbido e asciutto e torna come nuovo.
Grazie alla certificazione IP55 la cuffia garantisce il corretto funzionamento anche in caso di pioggia leggera e alla polvere.

Per quanto riguarda la progettazione, il design permette di indossare comodamente questo dispositivo assieme ai caschi di protezione come quelli lavorativi o casco semi integrale.
Per poterli utilizzare, basta indossarli con i trasduttori (le due parti rotonde/colorate) che fanno presa sulle ossa davanti l’orecchio con le aste che si adagiano comodamente sopra le vostre orecchie. Infine, accendere la cuffia con il tasto Volume + sulla destra.

Funzionalità dei tasti

Sulla cuffia Vidonn F1 troviamo tre tasti tra cui: Volume su (+), Volume giù (-), Tasto multifunzione.
Il tasto Volume su permette di alzare il volume audio o, se premuto a lungo, di accendere la cuffia.
Il tasto Volume giù invece, come dice il nome, di abbassare il volume audio.

Se si tiene premuto il tasto Volume su anche dopo aver l’avvertimento sonoro di accensione, si entrerà nella fase di accoppiamento e potrete quindi collegarvi con il vostro telefono o computer attivando il bluetooth e selezionando il dispositivo Vidonn F1.

Il tasto più importante e usato più spesso è quello multifunzione e abbiamo i seguenti casi:

  • Riproduzione/pausa musica: Premere una volta
  • Passare alla canzone successiva: Premere due volte consecutivamente mentre la musica è in riproduzione
  • Rispondere/terminare una chiamata: Premere una volta e si sentirà un avvertimento sonoro
  • Rifiutare una chiamata: Tenere premuto per 3 secondi e si sentirà un avvertimento sonoro
  • Ripristino impostazioni di fabbrica: Tenere premuto Volume giù (-) insieme al tasto multifunzione

Qualità audio e durata della batteria

Stressando la cuffia per diversi giorni e con qualsiasi genere musicale posso dire che la cuffia si è comportata abbastanza bene mostrando quindi stabilità ed affidabilità.
Durante i test ho avuto la percezione che venga effettuata una equalizzazione automatica, soprattutto quando nel caso di boost dei bassi.
Con questa sorta di equalizzazione la fonte audio veniva normalizzata e, nonostante i bassi molto sparati (se fosse stato necessario), l’audio non risultava in nessun modo gracchiante o con presenza di ronzii.

Le ore di autonomia dichiarati sono 6 dopo diversi cicli di ricarica e, mio malgrado ho riscontrato che al massimo volume (che vi sconsiglio profondamente per evitare un possibile danneggiamento all’udito), rispetto ai concorrenti, tende ad essere scarico raggiunte le 3 ore circa.
Bene ma non benissimo!

Conclusioni

Dopo i numerosi test posso dire che la cuffia Vidonn F1 si è comportata abbastanza bene anche se ci sono piccoli dettagli da migliorare come aggiungere altre funzionalità al tasto multifunzione e ovviamente migliorare la resa audio che, seppur banale, nei 20Hz dichiarati, non percepisco alcun suono rispetto ai prodotti concorrenti.

Tutto sommato sono soddisfatto e per il prezzo che viene offerto è una valida ed ottima alternativa, anche per sperimentare un po’ il sistema della conduzione ossea.

Dove acquistare

Le cuffie Vidonn F1 possono essere acquistati dai rivenditori autorizzati di IperGo o semplicemente da Amazon al modico prezzo di 79,97€

E voi, cosa ne pensate? Per qualsiasi domanda, dubbio o problema, sentitevi liberi di commentare sotto e sarò felice di rispondervi.

L'articolo Recensione cuffia Vidonn F1 sembra essere il primo su Mirko Pizii | Grab The Penguin.

il 05 January 2018 17.13

16 December 2017

There is a wonderful blog post from PayPal in which it is introduced a very easy way to set a payee in your express checkout flow, but sadly there are some open issues with that.

Here the same is provided using the PayPal PHP SDK.

Please remember to change some values in order to test it (every file has its own comment to tell which variable to change). Also, obviously, the credentials should be stored in a secure way when in a production environment.

You can find the complete code, as usual, on my github profile.

il 16 December 2017 13.05

28 November 2017

At fleetster we have our own instance of Gitlab and we rely a lot on Gitlab CI. Also our designers and QA guys use (and love) it, thanks to its advanced features.

Gitlab CI is a very powerful system of Continuous Integration, with a lot of different features, and with every new releases, new features land. It has a very rich technical documentation, but it lacks a generic introduction for whom want to use it in an already existing setup. A designer or a tester doesn’t need to know how to autoscale it with Kubernetes or the difference between an image or a service.

But still, he needs to know what is a pipeline, and how to see a branch deployed to an environment. In this article therefore I will try to cover as many features as possible, highlighting how the end users can enjoy them; in the last months I explained such features to some members of our team, also developers: not everyone knows what Continuous Integration is or has used Gitlab CI in a previous job.

If you want to know why Continuous Integration is important I suggest to read this article, while for finding the reasons for using Gitlab CI specifically, I leave the job to Gitlab.com itself.

Introduction

Every time a developer changes some code he saves his changes in a commit. He can then push that commit to Gitlab, so other developers can review the code.

Gitlab will also start some work on that commit, if the Gitlab CI has been configured. This work is executed by a runner. A runner is basically a server (it can be a lot of different things, also your PC, but we can simplify it as a server) that executes instructions listed in the .gitlab-ci.yml file, and reports the result back to Gitlab itself, which will show it in his graphical interface.

When a developer has finished implementing a new feature or a bugfix (activity that usual requires multiple commits), can open a merge request, where other member of the team can comment on the code and on the implementation.

As we will see, also designers and testers can (and really should!) join this process, giving feedbacks and suggesting improvements, especially thanks to two features of Gitlab CI: environments and artifacts.

Pipelines

Every commit that is pushed to Gitlab generates a pipeline attached to that commit. If multiple commits are pushed together the pipeline will be created only for the last of them. A pipeline is a collection of jobs split in different stages.

All the jobs in the same stage run in concurrency (if there are enough runners) and the next stage begins only if all the jobs from the previous stage have finished with success.

As soon as a job fails, the entire pipeline fails. There is an exception for this, as we will see below: if a job is marked as manual, then a failure will not make the pipeline fails.

The stages are just a logic division between batches of jobs, where doesn’t make sense to execute next jobs if the previous failed. We can have a build stage, where all the jobs to build the application are executed, and a deploy stage, where the build application is deployed. Doesn’t make much sense to deploy something that failed to build, does it?

Every job shouldn’t have any dependency with any other job in the same stage, while they can expect results by jobs from a previous stage.

Let’s see how Gitlab shows information about stages and stages’ status.

pipeline-overview

pipeline-status

Jobs

A job is a collection of instructions that a runner has to execute. You can see in real time what’s the output of the job, so developers can understand why a job fails.

A job can be automatic, so it starts automatically when a commit is pushed, or manual. A manual job has to be triggered by someone manually. Can be useful, for example, to automatize a deploy, but still to deploy only when someone manually approves it. There is a way to limit who can run a job, so only trustworthy people can deploy, to continue the example before.

A job can also build artifacts that users can download, like it creates an APK you can download and test on your device; in this way both designers and testers can download an application and test it without having to ask for help to developers.

Other than creating artifacts, a job can deploy an environment, usually reachable by an URL, where users can test the commit.

Job status are the same as stages status: indeed stages inherit theirs status from the jobs.

running-job

Artifacts

As we said, a job can create an artifact that users can download to test. It can be anything, like an application for Windows, an image generated by a PC, or an APK for Android.

So you are a designer, and the merge request has been assigned to you: you need to validate the implementation of the new design!

But how to do that?

You need to open the merge request, and download the artifact, as shown in the figure.

Every pipeline collects all the artifacts from all the jobs, and every job can have multiple artifacts. When you click on the download button, it will appear a dropdown where you can select which artifact you want. After the review, you can leave a comment on the MR.

You can always download the artifacts also from pipelines that do not have a merge request open ;-)

I am focusing on merge request because usually is where testers, designer, and shareholder in general enter the workflow.

But merge requests are not linked to pipelines: while they integrate nice one in the other, they do not have any relation.

download-artifacts

Environments

In a similar way, a job can deploy something to an external server, so you can reach it through the merge request itself.

As you can see the environment has a name and a link. Just clicking the link you to go to a deployed version of your application (of course, if your team has setup it correctly).

You can click also on the name of the environment, because Gitlab has also other cool features for environments, like monitoring.

environment

Conclusion

This was a small introduction to some of the features of Gitlab CI: it is very powerful, and using it in the right way allows all the team to use just one tool to go from planning to deploying. A lot of new features are introduced every month, so keep an eye on the Gitlab blog.

For setting it up, or for more advanced features, take a look to the documentation.

In fleetster we use it not only for running tests, but also for having automatic versioning of the software and automatic deploys to testing environments. We have automatized other jobs as well (building apps and publish them on the Play Store and so on).

Speaking of which, do you want to work in a young and dynamically office with me and a lot of other amazing guys? Take a look to the open positions at fleetster!

Kudos to the Gitlab team (and others guys who help in their free time) for their awesome work!

If you have any question or feedback about this blog post, please drop me an email at riccardo@rpadovani.com or tweet me :-) Feel free to suggest me to add something, or to rephrase paragraphs in a clearer way (English is not my mother tongue).

Bye for now,
R.

P.S: if you have found this article helpful and you’d like we write others, do you mind to help us reaching the Ballmer’s peak and buy me a beer?

il 28 November 2017 21.00

16 November 2017

Recently I had to move a Magento 1.7 (if you are in a similar situation, please suggest to upgrade at least to Magento 1.9.X) website from a Linux server with SSH access to an hosting solution that has only FTP and a CPanel access.

The first two parts are generic, the third is specific for a Magento 1.X website migrated to a new web hosting with PHP7 only.

First part: The DB migration

How to move a large MySQL database to the new hosting?

Obviously you cannot think to upload it with PhpMyAdmin or similar, even if you try to compress it. Too large.

So a solution can be to split somehow the DB in smaller chuncks, and upload the chunks one by one.

Let’s start.

Step 1: Backup

Let’s say the our database is called lsdb, with the mysql user username with the privileges to perform this backup.

We can use a tool like mysqldump as follows (very simple version here, take a look at  man mysqldump for your options, or use your preferred tool to perform a backup):

mysqldump -u username -p lsdb > lsdb_dump_20171116.sql

Enter the password for username.

Step 2: Split the big dump in smaller parts

We can use the split linux command for this.

We can choose to split by size of output file (ex.: maximum 20 megabytes). The tool will not cut a line because it pays attention to line breaks.

 split -C 20m --numeric-suffixes lsdb_dump_20171116.sql dump_sect_

Now we have a series of dump_sect_XY files, where X and Y are numbers.

We can compress them, too, before uploading it. For the solution adopted in this article (next section), we are going to compress the files with gzip, even if I prefer .tar.bz2 files.

for x in dump_sect_*; do gzip $x; done

So we have now a series of dump_sect_XY.gz files.

Step 3: Importing the database with a tool

You can think to import the generated files through PhpMyAdmin, too.

If you do not have timeouts, or you want to create smaller but many other chunk files, it can be a solution.

Anyway, you will still suffer of foreign keys check problems.

Another solution is to use a tool: bigdump for example. It supports few file types, check the website for additional information and to choose your preferred one (this is why I have adopted the gz files).

With bigdump, you can upload through FTP or the CPanel file manager all the DB dump chunks in the same directory as the bigdump.php file. At this point, pointing to the bigdump.php URL in your browser, you will see the list of the chuncks, with a button to start the import process.

The only thing you have to do once you have downloaded the PHP file is to edit it to change the database name, username, password and host, according to the ones of your new web hosting.

Now you can upload it through FTP, too.

Let’s say that we have created a /dump directory containing the chunks and the bigdump.php file.

We can now point our browser to http://mynewhost/dump/bigdump.php to see the list of our chunk files and start importing our chunks one by one!

Step 3.1: Foreign key checks problems

If you have problems importing the chunks because of foreign keys problems, please clean the tables of your DB before continue.

Now, let’s modify the bigdump.php file, specifically we want to use the pre-queries: SQL queries to be executed at the beginning of each import session.

Edit the bigdump.php file.

Find and decomment the line:

// $pre_query[]='SET foreign_key_checks = 0';

This will disable the foreign key checks for the import session, and you can import your dump without problems.

Upload again in the dump/ directory and retry again in your browser.

Part 2: the code

Now we have finished the hardest part, the DB, and we have to upload our files.

Here there is not so much you can think of. An FTP upload of a compressed file is probably the fastest way to accomplish this task.

You can extract the compressed file with the CPanel File Manager as shown below:

extract cpanel file manager

Part 3: Magento 1.X and PHP7

There are some core files that need to be changed in order to fix some errors shown running Magento 1.X with PHP7.

As usual you should never change core files, there are a lot of articles around to show how to perform these tasks.

I suggest Overriding Magento blocks, models, helpers and controllers by Inchoo.

Please note that Inchoo has developed a PHP 7 compatibility extension for Magento 1.X, too, by I have not tried that.

Now, let’s see where the errors are.

app/code/core/Mage/Core/Model/Layout.php:
Fatal error: Uncaught Error: Function name must be a string in app/code/core/Mage/Core/Model/Layout.php:555

In PHP7 should be explicitly stated that you are calling the $callback variable as a function.
So you should change

$out .= $this->getBlock($callback[0])->$callback[1]();

with

$out .= $this->getBlock($callback[0])->{$callback[1]}();

Similar error happens for

 Uncaught Error: Function name must be a string in lib/Varien/File/Uploader.php:259

We are going to change

$params['object']->$params['method']($this->_file['tmp_name']);

wth

$params['object']->{$params['method']}($this->_file['tmp_name']);

Other changes:

app\code\core\Mage\ImportExport\Model\Export\Entity\Product\Type\Abstract.php:99

This issue affects the export functionality of Magento.
So replace this:

$data['filter_options'] = $this->$data['options_method']();

with

$data['filter_options'] = $this->{$data['options_method']}();

Another export problems, but for customers, is found at:

app\code\core\Mage\ImportExport\Model\Export\Entity\Customer.php:250

Here, replace:

$data['filter_options'] = $this->$data['options_method']();

with

$data['filter_options'] = $this->{$data['options_method']}();

A possible sessions error is related to:

     app\code\core\Mage\Core\Model\Resource\Session.php:218

The problematic code in this line can prevent your users to log in.

We have to typecast the variable returned by the read($sessId) function. Replace:

return $data;

with

return (string)$data;

There can be a problem with the grand total calculation and other deprecation warnings like the ones for iconv_set_encoding (this was true starting from PHP5.6).

Good sources for these and other problems are: How can solve error Magento 1.xx on PHP 7? (StackOverflow) and http://scriptbaker.com/tag/magento-1-9/.

il 16 November 2017 15.30

26 October 2017


Tempo di autunno (caldo), e tempo di Linux Day! Arriva il 28 ottobre, in parecchie città italiane l'appuntamento per eccellenza delle comunità FLOSS, quest'anno dedicato alla privacy e alla sicurezza online.

Il Linux Day è una manifestazione nazionale organizzata da Italian Linux Society, che si svolge contemporaneamente in molte città italiane, durante la quale LUG (Linux User Group) e associazione locali presentano le novità e i vantaggi dell’uso di Linux e del Software Libero a casa, nella scuola e nel lavoro.

Il tema del Linux Day di quest’anno è “riservatezza naturale”, ovvero la “privacy personale” che negli ultimi anni è stata rivoluzionata dall’avvento di Internet e di strumenti elettronici che permettono di condividere ogni aspetto della propria esistenza, e che hanno anche confinato la vita privata in ambiti sempre più ristretti.


Il comune cittadino che naviga su Internet, o che utilizza uno smartphone, si deve sempre più destreggiare tra virus come i ramsonware, Stati impiccioni e Giganti del Web che li fiancheggiano. E' però possibile sfuggire a questa morsa e vivere una sana vita digitale, senza doversi rifugiare su un'isola deserta. Essere consapevoli delle potenzialità e dei pericoli connessi all’utilizzo di app e smartphone è fondamentale per poter bilanciare la propria vita reale con quella online.

Anche a Schio


Con AVi LUG, il Linux Day arriva a Schio, con un programma ricco e accessibile a tutti. Saranno allestite due aree tematica. In “Area Talk”, presso l’Aula Studio del Comune, si svolgeranno una serie di talk dedicati a Linux, alla programmazione e alla cultura libera e condivisa. In “Area Demo”, presso l’Aula Informatica, ci sarà uno spazio dedicato a giochi per bambini, e uno spazio per l’assistenza e le dimostrazioni di Linux.

I talk del “Linux Day a Schio” dell’Area Talk avranno come tema: 
  • I certificati dei siti web, come funzionano e perché sono indispensabili
  • La navigazione sicura con Firefox, come evitare le trappole del Web
  • Le tante facce di Linux, quale è la migliore interfaccia utente per me?
  • La Privacy sulla Rete, mito o realtà?
  • Pensiero computAzionale e Python, una proposta per il Coderdojo
In “Area Demo” saranno organizzati giochi di carte e costruiti “Scrabot”, i simpatici robottini pittori (iniziativa per bambine e bambini dai 5 ai 10 anni).

Sempre in “Area Demo”, nella zona dedicata all’assistenza, sarà organizzato un “Install Party”: i soci AVi LUG aiuteranno chi vuole installare Linux sul proprio PC. Inoltre, saranno organizzate dimostrazioni, presentate soluzioni ai problemi più diffusi nella configurazione di Linux.

L’appuntamento è per sabato 28 ottobre 2017  a Palazzo Fogazzaro presso l’Aula Studio e l’Aula Informatica del Comune di Schio, in via Pasini 42 a Schio, dalle 15.30 alle 18.30.
L’ingresso è libero e gratuito.

La foto "Malware infection" è di Blogtrepreneur su Flickr.

il 26 October 2017 12.39

24 October 2017




La campagna di crowdfunding lanciata da Purism per il suo progetto di smartphone libero e rispettoso della privacy "Librem 5" ha ampiamente superato i 2 milioni di dollari, ben oltre il minimo necessario al suo finanziamento, fissato a 1,5 milioni. Per tenere a freno l'eccesso di entusiasmo dei Linux Boys, sottolineo che i volumi sono davvero modesti, per non dire irrisori, poco più di 3.000 pezzi preordinati. Librem 5 comunque concretizza la possibilità di un'alternativa ai sistemi proprietari dominanti, nonostante le incognite che comunque ne offuscano un luminoso orizzonte.



Un applauso va fatto ai ragazzi di Purism, per il coraggio e per il lavoro fatto finora!





il 24 October 2017 11.55

07 October 2017

Aspettando Ubuntu 17.10 Artful Aardvark!

Ubuntu-it Gruppo Promozione

Categoria: 
Ubuntu 17.10 Artful Aardvark Party
Aspetta con noi Ubuntu 17.10! Vi aspettiamo giovedì 19 ottobre su ubuntu.it/party!
 
Ubuntu 17.10 Artful Aardvark sarà uno dei più grandi rilasci di Ubuntu degli ultimi anni: per festeggiarlo, la comunità italiana di Ubuntu ha organizzato un release party giovedì 19 ottobre!

Durante tutta la giornata, ci troverete in chat ad aspettare e commentare il rilascio insieme a voi, e la sera alle 21 si potrà seguire il live streaming di presentazione della release, in cui vari membri di Ubuntu-it insieme ad alcuni ospiti speciali spiegheranno tutte le novità rilasciate. Al termine del live streaming ci sarà anche uno spazio in cui risponderemo in diretta alle vostre domande!

Vi aspettiamo numerosi!

https://www.ubuntu-it.org/party

il 07 October 2017 11.21

19 September 2017

Stripe Shared Customers

Lorenzo Sfarra (twilight)

Introduction & Scenario

In a Stripe Connect scenario, a customer who makes a purchase from one of your connected sellers shouldn’t need to re-enter their credit card or bank account details to purchase from another seller.

Without Shared Customers, you will have to re-enter all the customer details, creating a Customer Object, on each connected account. With Shared Customers you are going to maintain a single reference to a customer in the platform account, and the association to a specific connected account will be accomplished by the use of a token the represent the customer.

For a Stripe Connect introduction that is needed to proceed with this article, please refer to the Stripe Connect Custom with Direct Charges article. Specifically, you have already created and verified a connected account.

Terms & Tools

Generic terms

  • Platform: it’s you!
  • Connected Account: that’s a vendor that will sell stuff through your platform;
  • Customer: a customer that will buy from a Connected Account;

Examples terms

  • {API_KEY}: That’s your key. Look at the Stripe documentation signed in with your account and they will fill it for you;
  • {CUST_ID}: that’s a customer ID;
  • {ACC_ID}: that’s a connected account ID;
  • {CUST_TOK_ID}: that’s a token representing a customer on an connected account;
  • {TOK_ID}: that’s a token representation of a payment source. Will be clearer when we are going to use it in the document.

Tools

I will use curl to perform API calls. No other special tools are used here.

Of course, a Stripe account is needed in order to try what’s written down in this article. I suggest to always have the Stripe dashboard opened in order to check in real-time the results of what we are going to do.

Shared Customer Creation

As stated before, when not using shared customers, you save the Stripe Customer objects on each individual connected Stripe account. To share customers, you instead save them on the platform Stripe account.

Platform Customer Creation

So let’s create a customer:

curl https://api.stripe.com/v1/customers \
 -u {API_KEY}: \
 -d description="Shared customer example" \
 -d email="sharedcustomer1@email.com"

The output of this procedure is an Customer Object.

For now, let’s take note only of the id that is the unique identifier for the newly created customer.

In the examples, as stated before, this will be indicated as {CUST_ID}.

Please note that there is no reference to a connected account, but we are creating it in the platform.

Associate a payment source to the customer

The easiest option to create a token that represents a customer payment method is to tokenise a card using Stripe Elements or Stripe Checkout.

Let’s refer to this token as {TOK_ID}.

We can now update the previously created customer:

curl https://api.stripe.com/v1/customers/{CUST_ID} \
 -u {API_KEY}: \
 -d source={TOK_ID}
  • adsense



  • Create a customer token

    As stated in the introduction, with Shared Customers you are going to maintain a single reference to a customer in the platform account. The association to a specific connected account will be accomplished by the use of a token the represent the customer.

    We can now create the customer token:

    curl https://api.stripe.com/v1/tokens \
     -u {API_KEY}: \
     -d customer={CUST_ID} \
     -H "Stripe-Account: {ACC_ID}"

    The output of this command will give us an id that we need to use in the next paragraph.

    Let’s refer to this id with {CUST_TOK_ID}.

    Create a customer in the connect account

    Last step. Finally, we can create the customer to the connected account easily, with only the token.

    Let’s do this:

    curl https://api.stripe.com/v1/customers \
     -u {API_KEY}: \
     -d source={CUST_TOK_ID} \
     -H "Stripe-Account: {ACC_ID}"

    The output of this procedure is an Customer Object.

    The id in the output is the unique identifier for the newly created customer in the connected account.

    il 19 September 2017 09.29

    15 September 2017

    Stripe Connect Custom with Direct Charges

    Lorenzo Sfarra (twilight)

    Introduction & Scenario

    The scenario covers a reader (you!) that wants to:

    • create a marketplace;
    • take some fee on every transaction between users of its website/app and a connected vendor;
    • guarantee a user-friendly experience for its vendors, in order to not let them front the procedures on the Stripe platform, but directly through its website/app communicating through APIs.

    If this is not your case, maybe it’s better to evaluate different types of Stripe Connect because they provide an easier experience for you, both from the technical side and the “bureaucratic” side (with Custom all the disputes – and relative fees – are faced by the platform).

    If this is your case, please continue!

    Terms & Tools

    Generic terms

    • Platform: it’s you!
    • Connected Account: that’s a vendor that will sell stuff through your platform;
    • Customer: a customer that will buy from a Connected Account;

    Examples terms

    • {API_KEY}: That’s your key. Look at the Stripe documentation signed in with your account and they will fill it for you;
    • {CUST_ID}: that’s a customer ID;
    • {ACC_ID}: that’s a connected account ID;
    • {TOK_ID}: that’s a token representation of a payment source. Will be clearer when we are going to use it in the document.

    Tools

    I will use curl to perform API calls. No other special tools are used here.

    Of course, a Stripe account is needed in order to try what’s written down in this article. I suggest to always have the Stripe dashboard opened in order to check in real-time the results of what we are going to do.

    Create & verify a connected account

    We are going to create an account and all the required fields.

    The second sub-paragraph is just a note to not be unprepared if your country acts a little bit differently from the one used in this example.

    Connected Account creation process

    We will start creating an account with some information in it.

    Then we will update the account with other required information. To create a verified account that will be able to process payments, please refer to the next sub-paragraph.

    Account creation

    curl https://api.stripe.com/v1/accounts \
     -u {API_KEY}: \
     -d country=IT \
     -d type=custom \
     -d legal_entity[first_name]="John" \
     -d legal_entity[last_name]="Doe" \
     -d legal_entity[type]=individual \
     -d legal_entity[dob][day]=12 \
     -d legal_entity[dob][month]=12 \
     -d legal_entity[dob][year]=1992 \
     -d legal_entity[address][city]=Rome \
     -d legal_entity[address][country]=IT \
     -d legal_entity[address][line1]="Via Nazionale" \
     -d legal_entity[address][postal_code]=00184

    Let’s have a look.
    We have now created a connected account passing custom as the type (we are creating it for a Connect Custom solution).

    The entity type is individual because the example is for an individual, but it can be company, too.

    There is no need to analyse the rest of the params, so let’s go on.

    The output of this procedure is an Account Object.

    For now, let’s take note only of the id that is the unique identifier for the newly created account.

    In the examples, as stated before, this will be indicated as {ACC_ID}.

    ID document upload

    Now, we have to associate an ID document copy to the account. Assuming that you have a PNG file on your desktop called id.png that contains the copy of the document, let’s launch the command:

    curl https://uploads.stripe.com/v1/files \
     -u {API_KEY}: \
     -H "Stripe-Account: {ACC_ID}" \
     -F purpose=identity_document \
     -F file="@/Users/lorenzo/Desktop/id.png"

    Please note the line -H “Stripe-Account: {ACC_ID}”.

    The output of this process is a File Upload Object.

    Let’s take note of the id, that we call {FILE_ID}.

    Now, we have to attach this file to the verification document section of the connected account:

    curl https://api.stripe.com/v1/accounts/{ACC_ID} \
     -u {API_KEY}: \
     -d legal_entity[verification][document]={FILE_ID}
    

    Now the account is verified. We need to associate a bank account where the connected account will be payed.

  • adsense



  • Bank account creation and association

    The example shows an Italian account, so we are going to associate an Italian bank account that accepts Euros as its currency:

    curl https://api.stripe.com/v1/accounts/{ACC_ID}/external_accounts \
     -u {API_KEY}: \
     -d external_account[object]=bank_account \
     -d external_account[account_number]='IT89370400440532013000' \
     -d external_account[country]=IT \
     -d external_account[currency]=eur

    The account number is taken from the bank numbers indicated by Stripe in its testing section.

    Accepting conditions

    The last step is to accept the conditions, please be sure to correctly inform the vendor about  the Stripe Terms of Service before performing this API call:

    curl https://api.stripe.com/v1/accounts/{ACC_ID} \
     -u {API_KEY}: \
     -d tos_acceptance[date]=1503302212 \
     -d tos_acceptance[ip]="VV.XX.YY.ZZ"
    

    Where date represents the timestamp when the account owner accepted Stripe’s terms, and ip represents the IP address from which the account owner accepted Stripe’s terms.

    Connected Account verification process

    When building a Connect platform using Custom accounts, you’ll need to collect the required verification information for each of your accounts, which varies by the Custom account’s country.

    That’s what the official documentation states about the verification process. So what we did before it’s for the Italian (but most part of European countries) accounts. Check the official documentation for the list for each country.

    Direct charges on the connected account and collect fees

    Now it’s time to let a customer pay a connected account.

    The easiest option here is to tokenise a card using Stripe Elements or Stripe Checkout.

    Let’s refer to this token as {TOK_ID}.

    curl https://api.stripe.com/v1/charges \
     -u {API_KEY}: \
     -d amount=10000 \
     -d currency=eur \
     -d source={TOK_ID} \
     -d application_fee=123 \
     -H "Stripe-Account: {ACC_ID}"

    The application_fee is capped at the total transaction amount minus any Stripe fees.

    Please note here that, when directly charging on the connected account, you can provide a token created using either your platform’s or the connected account’s publishable key.

    Conclusion

    That’s it.

    You should be now able to go to the dashboard and review connect accounts, fees, and so on.

    The next article in the series is about Stripe Shared Customers.

    Stay tuned!

     

    il 15 September 2017 12.34

    06 July 2017

    AfterShokz Trekz Titanium Front

    AfterShokz Trekz Titanium – La Cuffia Per Tutti!

    Ciao! 🙂
    Oggi analizzeremo assieme una nuova tipologia di cuffia che sfrutta una nuova tecnologia trasmissiva chiamata conduzione ossea.
    No, non è una tecnologia per parlare con gli alieni né provenienti da quest’ultimi e il ruolo di questa cuffia consiste in:

    1. Traduzione di una fonte audio in ingresso in vibrazioni
    2. La vibrazione viene trasmessa attraverso le nostra ossa del cranio fino ad arrivare nell’orecchio interno
    3. L’orecchio interno capta la vibrazione e tramite il nervo acustico percepiamo ciò che definiamo suono.

    I primi due punti vengono svolti efficacemente dalla cuffia che andremo ad analizzare e il suo nome in codice è AfterShokz Trekz Titanium.

    Prima di andare avanti, vorrei rispondere alla domanda che ti stai ponendo, ossia “Cosa vuoi dire per cuffia per tutti?“.
    Ciò che voglio intendere e, che approfondirò un dettaglio più avanti, è proprio che questa cuffia può essere usata sia dagli sportivi, dalle persone non udenti, non vedenti e dalle persone comune.

    Esatto, hai letto bene e sembra buffo ma anche le persone non udenti possono ascoltare una chiamata o una canzone se non hanno seri danneggiamenti alla coclea.
    Sì, anche per non vedenti e no, non ci sono problemi con l’ascolto dei suoni ambientali. Perché? Scopriamolo assieme! 🙂

    Unboxing AfterShokz Trekz Titanium

    AfterShokz Trekz Titanium unboxing

    Partendo da sinistra possiamo notare la nostra cuffia AfterShokz Trekz Titanium con la colorazione grigia/nera.
    Tranquillo, la cuffia essendo costituita da titanio, sopporta tutte le tensioni e difficilmente si romperà!
    Nella cuffia sono presenti tre bottoni, due per il volume (di cui uno fa anche da accensione/spegnimento) e uno che funge da tasto multifunzione che ti permette di cambiare traccia, attivare l’assistente vocale (del telefono) e tante altre cose.

    Oltre la cuffia troviamo i due libricini per la garanzia e per le istruzioni d’uso in lingua inglese e la sua scatola originale.
    Sul sito ufficiale è presente la traduzione italiana per le istruzioni d’uso.

    Infine all’interno della scatola è presente il cavo micro USB a USB per ricaricare la nostra cuffia, le due fitband per adattare la cuffia alle varie dimensioni delle nostre teste, una custodia per la cuffia e infine, da usare solamente in ambienti sicuri, due tappi per escludere i suoni dell’ambiente esterno.

    Ecco quale uno dei tanti vantaggi della conduzione ossea, permette a tutti di ascoltare sia il suono proveniente dalla AfterShokz Trekz Titanium e sia dall’ambiente attorno a noi 🙂

    Caratteristiche tecniche

    • Raggio senza fili: 10 m (33 ft)
    • Tipo di altoparlante: Trasduttori a conduzione ossea
    • Batteria: Ricaricabile agli ioni di litio
    • Frequenza di risposta: 20Hz~20KHz
    • Riproduzione continua: 6 ore
    • Sensibilità: 100 ± 3dB
    • Tempo di standby: 10 giorni
    • Microfono: -40dB ± 3dB
    • Tempo di caricamento: 1 ora e mezza
    • Versione Bluetooth: Bluetooth® v4.1 (possibilità di accoppiamento multiplo senza doverlo fare ogni volta quando si vuole collegare la cuffia ad un dispositivo diverso)
    • Peso: 36g (1,27 oz)
    • Profili compatibili: A2DP, AVRCP, HSP, HFP
    • Garanzia: 2 anni (se registrato)
    • Certificazione IP55 (resistente al sudore e polvere)
    • Doppio microfono per la cancellazione del rumore

    Impatto Generale

    In questi giorni la cuffia AfterShokz Trekz Titanium è stata davvero stressata in ogni condizione.
    Sotto al sole, sudore intenso, con forte raffiche di vento, in bicicletta, in macchina, da persone affette con disabilità e così via.

    Ciò che si è riscontrato a primo impatto è grande stupore per via del mezzo trasmissivo: la conduzione ossea non è una cosa che conoscono tutte le persone.
    Inoltre, in un primo momento (qualcosa come i primi cinque minuti se non si è abituati), è possibile riscontrare un leggero mal di testa, disorientamento e sensazione che l’audio delle cuffie sia davvero scarso a causa dell’influenza del rumore ambientale.

    Design e Comfort

    AfterShokz Trekz Titanium - lateral

    I materiali utilizzati per la costruzione di questo dispositivo sono di ottima qualità e vengono assemblati tra loro uniformemente e creano un mix tra essere leggero, solido e confortevole.
    Sotto uso intenso non scaldano e non creano alcuno slittamento, fastidio o bruciore in caso di sudore intenso. Per ripulirlo esternamente, basta passare un panno leggermente umido e torna come nuovo.
    Come detto in precedenza, non si presenteranno problemi in caso di pioggia leggera o di sudore intenso grazie alla certificazione IP55 che permette anche di resistere alla polvere in generale.

    Per quanto riguarda l’uso, basta accoppiarli (la prima volta), effettuare la connessione via bluetooth, scegliamo la canzone dal lettore musicale preferito e siamo operativi.
    Inoltre, la progettazione di queste cuffie è stata fatta in modo che non crei alcun fastidio durante l’uso di caschi, apparecchi uditivi, etc.

    Per indossarli basta appoggiarle la cuffia sopra le orecchie in modo che i trasduttori facciano presa sulle ossa davanti l’orecchio: come se si stesse indossando gli occhiali al contrario 🙂

    Funzionalità dei tasti presenti

    Come presentato, i tasti presenti sono esattamente tre.
    Una volta indossati, dietro l’orecchio destro si trova il primo che funge o da accensione/spegnimento (tenendolo premuto a lungo fino a quando non si sente una voce) oppure quello successivo che permette di abbassare il volume.
    Durante l’esecuzione di una canzone, se teniamo premuti assieme i due tasti del volume, si effettuerà un cambio dell’equalizzatore che ridurrà drasticamente i bassi: questa funzione è molto utile se dobbiamo ad esempio ascoltare un podcast.

    Sul lato sinistro invece, troviamo il tasto di multifunzione che ci permette di effettuare delle azioni se stiamo ascoltando la musica come pausa, play, cambio traccia, oppure ci permette di accettare o rifiutare una chiamata che ci viene segnalata in automatico tramite un suono inconfondibile.
    Se tocchiamo a lungo, partirà il nostro assistente vocale del telefono che potrà essere Siri o Google Now.
    In ogni operazione, possiamo fare a meno di tirare fuori il nostro telefono in quanto il tasto multifunzione ci permette di fare quasi tutto e ovviamente, è incorporato un doppio microfono che si attiva quando interagiamo con l’assistente vocale o rispondiamo ad una chiamata.

    Qualità del suono e durata della batteria

    La qualità del suono è semplicemente qualcosa di fantastico essendo supportato dal sistema PremiumPitch+™, però, tutto dipende dall’ambiente in cui vi trovate.
    Purtroppo avendo modo di sentire sia l’audio dalle cuffie e sia l’ambiente esterno, può dare la sensazione che l’audio sia distorto e di bassa qualità.
    Per migliorare la resa, se siete in un ambiente SICURO, potete indossare i tappi in dotazione e sentirete il suono che entra in maniera determinata nella vostra testa aumentando la vostra adrenalina.

    Rispetto alla concorrenza, la durata della batteria è ottima e ci si avvicina molto sulle 6 ore mentre per la ricarica, se la cuffia è completamente scarica, siamo esattamente sull’ora e mezza spaccata.

    Prestate particolarmente attenzione al volume però perché oltre alla sicurezza se siete in un ambiente chiuso o vicino alle altre persone, questi potranno sentire leggermente ciò che state ascoltando anche se l’azienda sta migliorando sempre di più per ridurre questo problema grazie alla tecnologia LeakSlayer™.

    Campagna di sensibilizzazione

    Sono venuto a conoscenza che l’azienda AfterShokz sta portando avanti una campagna di sensibilizzazione per tutti i sportivi e per tutti gli autisti.
    Questa cuffia Trekz Titanium, mira ad assistervi in tutte le funzionalità tra musica e chiamate senza però distogliere l’attenzione dalla strada ed altri pericoli connessi.

    Pertanto, considerando anche le nostre leggi italiane dove possiamo incorrere pesanti sanzioni se stiamo usando il telefono mentre guidiamo, la cuffia AfterShokz Trekz Titanium può essere una valida alternativa (N.B. non ho conferme in merito) alla classica cuffia o ad un impianto vivavoce (che porta ad effettuare lavori in macchina e ad essere non portabile) in quanto permette sia di ascoltare l’audio della cuffia che i suoni dell’ambiente esterno.

    Conclusioni

    Siamo giunti alla conclusione e sicuramente ti starai chiedendo se vale davvero la pena spendere 123€ da un e-commerce.
    Con tutto ciò che hai potuto leggere e da quello che posso dirti io sì, vale assolutamente la pena.

    Dico ciò sia per i benefici che porta a tutti e sia perché è un dispositivo stupendo che offre vantaggi per quando si è in macchina o si sta facendo sport e sia perché rende un po’ più alieni alla vista di altri. 🙂

    E non dimentichiamo i non vedenti! Grazie a ciò potranno usufruire dell’ascolto dell’accessibilità senza dover portare il telefono all’orecchio e rischiare di non sentire a causa del disturbo ambientale ed essere agevolati in caso arrivi una chiamata. Basta un tocco sul pulsante vicino l’orecchio, parleranno e la loro voce verrà captata anche dai microfoni delle cuffie… Semplice e il tutto a mani libere!

    Dove acquistare

    E’ possibile acquistare AfterShokz Trekz Titanium da Amazon seguendo questa pagina.

    Per qualsiasi necessità, dubbio, o problema, sono a vostra più completa disposizione nei commenti!

    L'articolo AfterShokz Trekz Titanium – La cuffia per tutti! sembra essere il primo su Mirko Pizii | Grab The Penguin.

    il 06 July 2017 14.24

    01 July 2017

    PCI Compliance made simple

    Lorenzo Sfarra (twilight)

    Are you trying to understand if your server has to be PCI compliant?
    Are you reading some docs around and the more you read, the more you are confused?

    Here’s some very simple and short tips for PCI compliance, according to Braintree and SecurityMetrics sources (you should check with your payment gateway / Qualified Security Assessor).

    This post is a very simple answer to the question: “Can I accept payments without redirecting to an external website with my NON-PCI compliant server(s)?

    If you have to:

    1. insert a new credit card during the checkout process,
    2. store the payment details in the Braintree (payment gateway) Vault for later use

    and your payment gateway gives you the chance to integrate an iframe or a solution similar to the Braintree Drop-In where the code is injected from the payment gateway servers, you can run your website on a NON-PCI compliant server.

    This does not mean that you can ignore the PCI compliance at all.

  • adsense



  • So, what you should do? You should qualify for the SAQ A. In fact:

    The card associations (VISA, MasterCard, Discover and American Express) have mandated that anyone accepting credit cards must become PCI compliant. We do require merchants to go through a Qualifies Security Assessor to help verify that your payments platform is compliant with rules established by the Card Associations.

    You’re still required to complete an annual SAQ in order to be PCI compliant.

    Please note that this is true if and only if the payment details are inserted only by the customer.

    If the customer communicates these details to someone of your organisation, then this will increase your scope of compliance.

    il 01 July 2017 13.38

    20 June 2017

    So,

    you are using the Magento2 APIs and you need to access a product.
    The core API forces you to access product by its SKU:

    GET /V1/products/:sku

    Sometimes you need to access a product by its ID, or by its URL key.

    Let’s see how we can create two simple APIs to perform this task.

    First of all, let’s fill your webapi.xml with the two routes we are going to use for this.

    Ex.:

    <route url="/V1/lorenzo-productbyurl/:urlKey" method="GET">
     <service class="Lorenzo\ProductBy\Api\ProductByInterface" method="getProductByUrl"/>
     <resources>
       <resource ref="anonymous"/>
     </resources>
    </route>
    <route url="/V1/lorenzo-productbyid/:id" method="GET">
     <service class="Lorenzo\ProductBy\Api\ProductByInterface" method="getProductById"/>
     <resources>
       <resource ref="anonymous"/>
     </resources>
    </route>

    Now we are going to define the interface cited in the previous XML file, declaring the two methods:

    interface ProductByInterface
    {
     /**
      * GET product identified by its URL key
      *
      * @api
      * @param string $urlKey
      * @return \Magento\Catalog\Api\Data\ProductInterface
      * @throws \Magento\Framework\Exception\NoSuchEntityException
      */
     public function getProductByUrl($urlKey);
    
     /**
      * GET product identified by its id
      *
      * @api
      * @param string $id
      * @return \Magento\Catalog\Api\Data\ProductInterface
      * @throws \Magento\Framework\Exception\NoSuchEntityException
      */
     public function getProductById($id);
    }

     

  • adsense



  • Ok, finally we are going to define the model that will implement this interface. Please be sure to update your di.xml accordingly.

     

    class ProductBy implements ProductByInterface
    {
    
     /**
      * @var \Magento\Framework\Api\SearchCriteriaBuilder
      */
     protected $searchCriteriaBuilder;
    
     /**
      * @var \Magento\Catalog\Api\ProductRepositoryInterface
      */
     protected $productRepository;
    
     /**
      * @var \Magento\Framework\Api\FilterBuilder
      */
     protected $filterBuilder;
    
     /**
      * @var \Magento\Framework\Api\Search\FilterGroup
      */
     protected $filterGroup;
    
     public function __construct(
       \Magento\Catalog\Api\ProductRepositoryInterface $productRepository,
       \Magento\Framework\Api\SearchCriteriaInterface $searchCriteria,
       \Magento\Framework\Api\FilterBuilder $filterBuilder,
       \Magento\Framework\Api\Search\FilterGroup $filterGroup)
     {
       $this->productRepository = $productRepository;
       $this->searchCriteria = $searchCriteria;
       $this->filterBuilder = $filterBuilder;
       $this->filterGroup = $filterGroup;
     }
    
     /**
      * {@inheritdoc}
      */
     public function getProductByUrl($urlKey)
     {
       $this->filterGroup->setFilters([
       $this->filterBuilder->setField('url_key')->setConditionType('eq')
            ->setValue($urlKey)->create()]);
       $this->searchCriteria->setFilterGroups([$this->filterGroup]);
       $products = $this->productRepository->getList($this->searchCriteria);
       if (count($products) == 0) {
         return null;
       }
       $items = $products->getItems();
       foreach ($items as $item) {
         return $item;
       }
     }
    
     /**
      * {@inheritdoc}
      */
     public function getProductById($id)
     {
       return $this->productRepository->getById($id);
     }
    }
    

    Now you can access a product by ID with:

    GET /V1/lorenzo-productbyid/:id

    And by URL key with:

    GET /V1/lorenzo-productbyurl/:urlKey
    il 20 June 2017 10.36