free sw & tech

hotspot personale

Con il passaggio a Fastweb Mobile e in abbinata l’acquisto di smartphone della mela morsicata, mi son imbattuto in un curioso comportamento: la possibilità di abilitare un hotspot personale ( = fare tethering) è visibile nelle impostazioni solo se l’operatore di telefonia lo consenta… se non si compila il campo APN per la sezione “hotspot personale” la stessa voce non comparirà nelle impostazioni.
Dopo aver compilato APN (“apn.fastweb.it”) al primo livello del menu Impostazioni compare “Imposta Hotspot Personale” che però, appena cliccato, emette un alert che invita a visitare nuovamente “Carrier” (le impostazioni dell’operatore): questo passaggio nella guida di Fastweb non è contemplato e ti fa sentire un cretino in quanto in quella sezione delle impostazioni ci sei appena stato… fatto sta che basta rientrare e uscire dalle impostazioni operatore per veder finalmente funzionare i settaggi dello hostpot personale (Fastweb: mettilo nella tua guida!); magari non prende a caldo i valori di APN e ha bisogno di convalidarle prima di abilitarle, non saprei, ma poco importa in fondo, se non che funzioni.

Le prime settimane di utilizzo di questo oggetto – che costa il doppio del Nexus 5 appena rottamato (ormai in condizioni pietose, dopo botte varie e fotocamera posteriore sostituita invano) dopo 3+ anni di onorato servizio – rivelano in effetti la sua generale superiorità: fisica ed ergonomica del dispositivo, oltre ovviamente alla solidità della soluzione, composta da un sistema operativo e un cloud personale molto sodali.
Non che debba arrivare io, poverino, a ribadire queste banalità, è che in effetti un appassionato come me di Android, che “li ha provati tutti“, ora in effetti si trova bene senza remora alcuna.
Il Frattola di 10 anni fa ti prenderebbe a schiaffi” 🙂 mi ha detto qualcuno, riferendosi alla “chiusura” di iOS contro la presunta “apertura” di Android.

Dell’ecosistema Apple molto software è open source, a dirla tutta, a partire dal cuore Unix di macOS, e poi WebKit (il motore di rendering di Safari), per non parlare di Swift, linguaggio eletto per lo sviluppo delle app, e molto altro ancora. Il completamento ideale di questo ecosistema aperto sarebbe iOS, e credo/spero che ci arriveremo, forse con la release 12, chissà..
Dal punto di vista personale invece, lasciando indietro le connotazioni morali-sociali-legali legate al codice sorgente, è naturale che andando avanti con l’età aumenta la pigrizia e diminuisce la volontà di sbattersi, il che significa che si vuole un sistema funzionante sempre e comodamente, caratteristica che le soluzioni Apple incarnano perfettamente. Ammetto che se non avessi avuto la possibilità di abbinare il telefono con pagamento dilazionato difficilmente avrei speso così tanti soldi per uno smartphone, suppongo.

Xmarks

Diversi modi di interpretare l’interazione client <-> API:

ovvero lanciando un comando specifico (“togliere i bookmark duplicati”), beccarsi in risposta un error 400 con messaggio di dettaglio in un confirm javascript e poi rimanere imbalsamati su una pagina morta.

Da notare che produttore e consumatore della API sono la medesima azienda.

 

Amenità a parte, Xmarks rimane per me il migliore sincronizzatore di segnalibri cross-platform in assoluto, perché fa una cosa e la fa bene, con feature come profili di utilizzo e punti di ripristino, che lo rendono una certezza.

That's what I figured…

I was thinking about Spring Boot could become, waiting for GA, and that’s the answer (txs to vJug):

In my mind there could be some extra features directly from Spring Tool Suite, like an API configuration wizard that helps you generating REST skeleton…

[Ubuntu Firefox] "Your browser does not support OpenSearch search plugins"

If you use ubuntu-repo firefox, maybe you’ll get this error

Your browser does not support OpenSearch search plugins

 
 
 
 
 
 
 
 

 
 
 
I found, amongst many curious posts, that such behaviour is caused by Unity Desktop Integration (have a look in Firefox extensions)…

Unity Desktop Integration
 
 

 
 
 
 
 
 
 
 
 So, it’s easy, just disable it and restart Firefox

UDI-disabled

 
 
 
 then try to add a plugin, from Mycroft site for instance

addOk


 
 
 
 
 
 
 And it works!

WTFs/m

WTFs/m.

WTFs/m.

Buon codice: pochi ecchecazz al minuto

Cattivo codice: tanti ecchecazz al minuto

il caricamento pigro

Ricordo dei blog di personaggi curiosi, ex-colleghi, che scrivevano due righe anche solo per dire di aver trovato la mirabolante patch per la vulnerabilità xyz di microsoft sql server
o che il tal servizio quando si impianta si può riavviare solo andando nel registry di windows, magari compiendo due giravolte, alluci incrociati e una danza della pioggia
personaggi, per capire, che sul proprio pc personale hanno solo gli utenti admin e sysadmin (leggi: stare male)

e io che non avevo mai dato peso a queste cose, riguardando la densità di novità, competenze e ragionamenti sull’esperienza di questi ultimi mesi, i primi nel nuovo posto di lavoro, ho riflettuto sulla commistione tra interesse puramente tecnico e valore alto del quadro finale, e mi son detto, ci scrivo sopra

scrivo per esempio che l’utilizzo di Zend Framework non è la panacea e non è una scelta a costo zero, in termini umani e tecnologici, ma ripaga in termini di robustezza e di completezza di un impianto, magari non documentato al 100%, è dotato di ciò che serve per scrivere un’applicazione web solida

ho visto, sia ora che in passato, colleghi ed ex-colleghi formatisi in ambienti ms-visual studio, che hanno faticato a capire come fare un’applicazione web, senza un intermediario che nascondesse, con l’apparente comodità di un ambiente integrato, i veri meccanismi che fanno funzionare l’applicazione, il protocollo, la sessione (che dal punto di vista reale non esiste, ma è un ponte costruito con due arcate facilmente scostabili), l’interazione con database e file system, etc.

viene un parallelo con sistemisti di provenienza ms e unix, i secondi abituati a risolvere problemi e trovare soluzioni partendo dalla conoscenza, i primi da nozioni (chiamate poi skills e condensate in buffe formule da biglietto da visita)

questa differenza di approccio è evidente, è molto di più di un semplice pregiudizio,
è una cartina al tornasole di come questi background diversi formino in modo indelebile il modo di porsi nei confronti di un problema
laddove sei abituato prima a studiare, a conoscere (anche intimamente), ad avere un metodo, la soluzione arriva come frutto di ragionamento prima e sperimentazione poi
dall’altra, ho riscontrato la superficialità del “datemi quell’oggetto che fa quella cosa“, ovvero il non-metodo, la scorciatoia che ti permette di non ragionare troppo su quello che stai facendo ma di produrre, quasi sempre di grandi copia&incolla, un pezzo di software in cui il tuo valore aggiunto non c’è, e la prossima volta sarà lo stesso vacuo processo di sterile trasferimento di byte in cui il cervello di scrive non si è impegnato poi tanto

le librerie, i framework, gli ambienti integrati, tutto ciò che rende il lavoro più rapido e produttivo, non sono il male, anzi
la vera differenza è l’approccio di chi li usa: ti interessa sapere quello che stai facendo, apprendere qualcosa, essere portatore sano di ragionamenti e competenze?

detto questo, il vero turning point dell’esperienza fatta finora è stato lo studio e la personalizzazione del lazy-load dei moduli di una Zend Application, a partire da questo articolo di Stephen Roades

il problema fondamentale di un’applicazione fatta con Zend Framework 1.x è che i moduli sono una mera suddivisione funzionale del codice, sono risorse di norma sempre incluse a ogni esecuzione
il goal è quello di caricare on-demand solo i moduli che servono
ciò è ottenuto intervenendo nella catena del dispatch dell’applicazione Zend, analizzando la URL richiesta su quale route custom venga mappata e leggendo file ini di configurazione (per modulo e/o centralizzato), costruendo di fatto un’associazione request=>modulo da caricare
attraverso la configurazione è possibile specificare dipendenze tra moduli (o fisse, in modo da avere uno o più moduli sempre caricati), in modo da caricare altri moduli che servono al modulo caricato on-demand

studiare, capire, analizzare, modificare questo processo mi ha aiutato non solo a metabolizzare l’architettura di una zend application nel suo interno – imparando la gerarchia tra le varie risorse del framework, quali vengono caricate e dove – ma anche ad apprezzare i vincoli interni posti come framework, in virtù del fatto che un impianto solido che non dia sorprese amare, deve essere strutturato e usato con certe regole

regole e condizioni da assimilare come competenza organica, a cui non sopperirebbe la presenza di un ipotetico IDE completissimo: anche sviluppando in Java, con Eclipse o Netbeans, abbiamo a disposizione visual designer, autocompletamento, wizard anche potenti di terze parti, ma ciò non ti esime dal dover sapere la gerarchia delle classi, come esse si usino, quali siano “i mattoni giusti” da usare e per quale motivo siano meglio di altri
dico ciò perché mi fa sorridere (o a volte sbadigliare con disgusto) quando sento le solite lamentele di chi vorrebbe un simil-visualStudio per sviluppare in php con zend
non capisce che non è lo strumento a fare il programmatore
o forse proprio perché lo capisce, vuole quella roba, cosciente della propria pigrizia e/o delle proprie lacune

come al solito l’approccio giusto ha pagato per come mi ha fatto conoscere ZF 1.x, ora sto cominciando a guardare Zend Framework 2, anche se non è ancora uscito ufficialmente (è in RC2), che tratta i moduli finalmente come tali, oltre a un utilizzo totale dei namespaces, e altre caratteristiche che sto via via scoprendo