pexels-photo-164446

Automatizzare la propria vita é un must per un programmatore…

É quello che é successo ad un ex programmatore di una azienda straniera che ha dato al concetto di automatizzare una nuova definizione.

Si sa che un programmatore é notoriamente pigro e qualsiasi task ripetitivo che possa essere realizzato con uno script é indice dell’utilitá di quest’ultimo. A volte peró la cosa ci scappa di mano ed arriviamo ad avere situazioni limite come hanno scoperto i colleghi di questo anonimo programmatore dopo che quest’ultimo si é licenziato. Per farla breve questo ragazzo aveva creato degli script per le mansioni piú disparate tra cui avvisare la moglie/ragazza che sarebbe arrivato a casa in ritardo (il tutto basandosi sul fatto che fosse giá loggato su un terminale) oppure avvisare il titolare che avrebbe lavorato da casa, sempre previo controllo di non essere giá loggato sulla propria postazione.

L’apice della pigrizia esce allo scoperto quando, rovistando tra i vari script, i colleghi trovano anche un piccolo file dove il nostro anonimo ha programmato la macchinetta del caffé impostando un ritardo nella preparazione della bevanda pari al tempo necessario per andare a piedi dalla propria scrivania alla macchinetta.

Ovviamente i colleghi non potevano fare altro che prendere il tutto e metterlo pubblico su github. Se anche volete curiosare tra i vari script ecco il link al repository: https://github.com/NARKOZ/hacker-scripts

black friday

Black Friday – Offerte vantaggiose per tutti

Ci siamo, ormai fine Novembre si avvicina ed il tanto atteso black friday é alle porte. Ovviamente come tutti voi sto seguendo i vari Amazon, Gearbest e simili per trovare le offerte migliori su prodotti di mio interesse, a volte gli sconti sono vantaggiosi anche considerando il prezzo di partenza, mentre per altre cose ovviamente la convenienza non é poi cosí evidente.

Prima di passare alle promo piú interessanti e che mi sento di consigliare volevo chiedervi: quanti di voi sanno cos’é il Black Friday ed il perché del suo nome?

Si tratta di un giorno, per quanto non festivo, particolarmente importante sotto l’aspetto commerciale poiché costituisce un valido indicatore sia sulla predisposizione agli acquisti, sia indirettamente sulla capacità di spesa dei consumatori statunitensi, tanto da essere attentamente osservato e atteso dagli analisti e dagli ambienti borsistici statunitensi ed internazionali.

Le grandi catene sono solite offrire in questa occasione notevoli ed eccezionali promozioni al fine di incrementare le proprie vendite: per questo motivo tra le persone che fanno shopping in occasione del Black Friday una buona parte trascorre la notte fuori dal negozio in cui vuole fare acquisti il giorno successivo aspettando l’apertura delle porte. Nel 2013 negli Stati Uniti sono stati spesi 57,4 miliardi di dollari in un solo giorno da più di ottanta milioni di persone: per offrire un paragone è come se l’intera popolazione della Germania fosse andata a fare shopping nello stesso giorno.

Il Black Friday è solitamente seguito dal Cyber Monday, il primo lunedì successivo, caratterizzato da grandi sconti relativi a prodotti di elettronica: in sostanza rappresenta la risposta dell’e-commerce al venerdì nero ed è caratterizzato da una massiccia offerta di ribassi esclusivamente online.

L’origine esatta rimane comunque incerta: secondo alcuni, infatti, farebbe riferimento alle annotazioni sui libri contabili dei commercianti che, tradizionalmente, passavano dal colore rosso (perdite) al colore nero (guadagni), per cui il Black Friday indicherebbe un giorno di grandi guadagni per le attività commerciali. Da questo momento inizierebbe il periodo dell’anno più proficuo per i rivenditori capace di portare in nero, quindi in attivo, i conti delle aziende commerciali.

Quindi anche se non c’é chiarezza sull’esatta origine del nome e del perché si chiami cosí é comunque sicuro che si tratta di una “tendenza” commerciale per favorire l’incremento delle vendite nel periodo che precede l’inizio del natale.

 

Ruby e valori di ritorno

Ruby e valori di ritorno delle funzioni

Succede sempre così: scrivete due righe di codice apparentemente innocue e all’improvviso tutto non funziona più.

Oggi è un giorno di quelli dove una cosa che hai sempre fatto ti si ritorce contro, un errore già commesso in passato salta nuovamente fuori.

Una delle caratteristiche di ruby come linguaggio di programmazione è quella di utilizzare come valore di ritorno di una funzione l’ultima operazione che avete fatto. Ti qui tutto normale eminente di strano se non che in una esecuzione di codice come questo:

value = ::BCrypt::Password.create(password)
value = value.force_encoding(Encoding::UTF_8) if value.encoding == Encoding::ASCII_8BIT
self.crypted_password = value

self.role = “client”
self.attivo = false

spesso e volentieri passa inosservato tutto quanto ed allora vi trovate a perdere ore sul perché una cosa banale deve funzionare ma invece si comporta ne modo opposto a come ci si aspetta.

Il problema sta proprio nella dichiarazione

self.attivo = false

la quale ha come risultato proprio false e quindi la funzione è come se si concludesse con un

return false

invalidando qualsiasi altra operazione. Se poi l’esito di questa funzione era decisivo per una scelta condizionale avete ben capito che l’errore è dietro l’angolo.

La soluzione più semplice è urla di invertire le due assegnazioni in modo da non avere nessun tipo di valore false come ultima operazione, oppure in alternativa rendere esplicito il fatto che questa funzione non può mai ritornare false e concludere con un return true.

 

 

Nintendo Classic Mini: Nintendo Entertainment System

Amazon mi ha confermato la spedizione di questo “giocattolo” di casa Nintendo che sicuramente mi riporterà indietro nel tempo!

Ovviamente seguirá recensione completa di tutto quanto con reportage fotografico collegato.

Stay tuned!

 

Per chi volesse saperne di più: Nintendo Classic Mini: Nintendo Entertainment System

SEO Google - imparare dai migliori

SEO – imparare dai migliori per migliorare

Avere una buona conoscenza su come ottimizzare le pagine, cosa scrivere e come è diventato sempre più importante. Acquisire conoscenze seo però è sempre più complicato, guide su guide, tolse sputo oli che dànno risultati diversi anche sulle stesse tipologie di analisi, insomma un mare infinito i cui è facile perdersi.

Recentemente nel mio feed G+ in una community che seguo è stato pubblicato un link molto interessante che elenca il pensiero di 10 guru del seo con link ai profili social ed a loro post di maggior importanza e rilevanza per la questione.

Inutile riportare qui l’intero articolo, un semplice link è più efficace.

Buona lettura

 

SEO tips dai migliori

postgresql backup

Postgresql backup completo con cron

Una delle cose di cui mi occupo per lavoro é cercare di far funzionare al meglio un paio di server con all’interno i miei progetti. Uno di questi ha un server Postgresql al quale, come ogni server, é sempre meglio fornire una buona strategia di backup.

La cosa migliore sicuramente é quella di prevedere uno script che in automatico esegua il backup di tutti i database presenti, lo salvi in una cartella  e, se necessario esegui il rotate per avere un backup mensile, uno settimanale ed uno degli ultimi 7 giorni.

Gli script in questione sono 3:

  • pg_backup.config: il file di configurazione con tutte le impostazioni necessarie per far funzionare il backup.
  • pg_backup.sh: lo script principale che esegue il backup di tutti i database
  • pb_backup_rotated.sh: lo script che esegue il backup come quello sopra con la differenza che esegue il rotate dei backup per risparmiare dati sul disco eliminando i backup vecchi

Uno dei problemi che ho notato di questi script é che finché venivano usati a mano non c’era problemi perché al momento in cui viene richiesta la password tutto funzionava correttamente, se peró invece volete eseguire questi in uno script cron che automaticamente ogni giorno esegue il backup dei dati é necessario avere un accesso passwordless al database.

La soluzione piú semplice che ho trovato é stato inserire nella home dell’utente che esegue lo script il file .pgpass con il formato

hostname:port:database:username:password

Ad esempio, se volete eseguire il backup di tutti i database nella vostra macchina locale una buona impostazione di questa pagina potrebbe essere:

*:*:*:username:password

dove con * il sistema capisce che deve considerare tutti i valori, quindi tutti i DB presenti nel sistema.

Con questi parametri lo script funzionerá senza richiesta di password e sará possibile avere il tutto automatizzato con cron, sta a voi poi decidere cosa fare di questo backup, personalmente scarico il tutto sul mio server di backup un ufficio tramite rsync.

 

Per scaricare lo script cliccate qui: pg_backup

Nintendo Switch, tutto quello che c’é da sapere

Nel caso non lo abbiate ancora capito sono un fan di Nintendo, sono cresciuto a Super Mario e Mario Kart, ho scoperto Zelda e non ho piú smesso. La notizia di Nintendo Switch ha fatto ormai il giro del mondo e le piú grandi testate online hanno fatto recensioni su recensioni, scritto tutto il possibile e quello che vi propongo qui é una sorta di riassunto che é apparso su The Next Web qualche giorno fa.

 

Il concetto fondamentale

La cosa che piú salta agli occhi é che la console puó funzionare sia collegata ad una televisione che come sorta di tablet, la trasformazione é istantanea non appena questa viene collegata al docker che a sua volta é collegato con il televisore.

I controller sembrano piú piccolo di quelli delal Wii U con uno schermo piú grande e con una sorpresa: entrambi i lati possono essere staccati e diventare dei controller individuali. L’idea sotto questa innovazione permette di avere una console portatile e che vi permetterá di giocare in dual player con i vostri amici direttamente nello schermo il che é in controtendenza con le altre console che spingono sulla realtá virtuale.

I due controller, una volta a casa possono trasformarsi in un joypad completo collegandoli insieme nel Joy-Con Grip. Quando combinati questi includono l’usuale dual analog con i 4 pulsanti ABXY, due pulsanti sul retro e tue grilletti + e – presi in prestito dalla Wii e dalle Wii U.

Hardware

Il poco che si sa di questa console é che nel suo interno c’é una custom Nvidia Tegra Processor. L’architettura che sostiene un processore cosí potente in un piccolo “core” é l’ultima Pascal 16mm, citando Nvidia:

The Nintendo Switch’s gaming experience is also supported by fully custom software, including a revamped physics engine, new libraries, advanced game tools and libraries. NVIDIA additionally created new gaming APIs to fully harness this performance. The newest API, NVN, was built specifically to bring lightweight, fast gaming to the masses.

Gameplay is further enhanced by hardware-accelerated video playback and custom software for audio effects and rendering.

Come detto piú volte sicuramente non é potente come Xbox One e PS4, é piú piccola e non c’é niente che si riferisca a 4k o VR anche se il chip all’interno permette di avere streaming full hd ed a 4k.

Games

Si sa ancora poco dei giochi che saranno disponibili, sicuramente ci aspetta una nuova saga di Zelda, forse un nuovo Mario Kart, Skyrim e NBA 2k.

Il lancio della console é previsto per Marzo 2017, non sono stati annunciati prezzi anche se Nintendo ha assicurato che prima di quella data saranno comunicati titoli di lancio, configurazioni prezzi e simili.

prestashop and paypal error

Prestashop errore pagamento Paypal

Premetto che non sono un esperto di Prestashop, sto studiando il sistema e sono al primo progetto con questa piattaforma.

Fatte queste doverose premesse veniamo al cuore della questione: pagamento con paypal.

Ovviamente come in tutti i moderni ecommerce il pagamento con carta di credito e paypal é d’obbligo, sia per una questione di sicurezza sia perché ormai molti utenti si fidano solamente se vedono il logo paypal. Quindi come fanno tutti prendo il modulo ufficiale, lo installo, configuro il mio account paypal (magari faró un post in futuro su come fare questa procedura) tramite la sandbox per avere le credenziali del negozio e dell’utente per fare acquisti finto, prendo le chiavi e faccio un tentativo. Da utente innocente mi aspetto che tutto funzioni senza problemi essendo un modulo ufficiale, utilizzato da milioni di persone cosa potrá mai andare storto?

E qui mi sbagliavo, quando dovrei essere reindirizzato sulla pagina di Paypal per concludere l’acquisto mi trovo un laconico:

Error occurred: Please try to contact the merchant:
PayPal response: ->

e niente altro….

TL;DR;
Per ovviare la problema la soluzione sta nell’abilitare una funzione commentata nel modulo di paypal all’interno della file modules/paypal/api/paypal_connect.php, alla riga 93 levate il commento dalla seguente riga:

@curl_setopt($ch, CURLOPT_SSLVERSION, Configuration::get(‘PAYPAL_VERSION_TLS_CHECKED’) == ‘1.2’ ? 6 : 1);

 

Fatto questo il modulo continuerá a funzionare ed il pagamento andrá a buon fine come ci si sarebbe aspettati.

Spiegazione completa: ancora non ho ben capito il motivo di questo comportamento anomalo del modulo e sul perché questa funziona sia commentata e sia necessario agire sul codice per far funzionare tutto quanto, su internet ho trovato varie teorie, dall’aggiornamento di openssl sul server, all’attivazione di un modulo php. La soluzione per il mio caso (che non é detto che funzioni nel vostro) é quella di forzare la versione 6 di SSL nel caso in cui sia impostato di usare la versione 1.2 di TLS per Paypal, cosa che (vado a memoria) sia obbligatoria da Luglio 2016.

Have fun!

 

 

Nintendo Switch, la nuova console di Nintendo

Nintendo ha rilasciato la sua nuova console o forse no, un tablet o una nuova versione in competizione con la PSP.. Insomma diciamo che ha fatto entrambe le cose. A voi un video che potrebbe chiarire meglio il concetto.

La nuova console é portabile, funziona come un tablet ma ti permette di avere anche dei joypad per controllarla e sinceramente i fan di Zelda e Mario faticheranno a non amarla.

Lo switch fra console da TV a dispositivo mobile é immediato e con il dock integrato é possibile usare i joypad laterali (chiamati Joy-Cons) permettono di non dover tenere in mano il dispositivo per godersi appieno l’esperienza di gioco. Le console portatili isolavano le persone? Non c’é pericolo con Nintendo Switch  ogniuno dei due JoyCons si trasforma in un joypad ed ecco che potete sfidarvi a Mario Kart

 

Hardware

Sappiamo ancora poco di cosa fa muovere la console, sappiamo con certezza che la scheda grafica é una Nvidia Tegra processor con l’ultima tecnologia (Pascal 16mm microarchitecture) che ha portato con se un grosso aumento delle prestazioni visto nelle serie 1000 delle schede Nvidia.

Sicuramente scordiamoci prestazioni da Xbox One o Playstation 4 e la mancaza del 4k e della realtá aumentata si fa sentire anche se la potenza dell’Nvidia Tegra permette lo streaming di contenuto 4k da Netflix.

Giochi

Dal video introduttivo vediamo che ci sará sicuramente un nuovo capitolo di Zelda, un nuovo Super Mario e Mario Kart. Piccoli fotogrammi di Skyrim e NBA 2k fanno da corredo a quello che secondo me sará una ventata di novitá nel panorama delle console.

L’ultima cosa da notare e da non sottovalutare é la capacitá di Nintendo di pensare fuori dagli schemi e di uscire con una console diversa dalle altre, non focalizzata sulle prestazioni ma sull’usabilitá e l’esperienza degli utenti.