Istanza EC2 Windows che non riparte dopo un riavvio

Non è la prima volta che in Altralogica sperimentiamo problemi con le istanze di EC2. Qualche anno fa c’era stato un disservizio piuttosto pesante nel data center Irlandese mentre ieri, nostro malgrado, ci siamo imbattuti in un altro problema piuttosto pesante.

Di fatto, di recente, Amazon ha cominciato ad aggiornare il proprio parco macchine host su cui girano le virtual machine di EC2. Il che è un bene perché l’hardware nuovo è più veloce. Peccato, però, che non abbiano avvisato nessuno che le istanze Windows un po’ vecchiotte (per intenderci qualsiasi cosa precedente a Windows Server 2012, non parliamo di sistemi arcaici) non hanno i driver di rete per i nuovi host.

Questo cosa significa? Che se, per caso, quando riavviamo un’istanza, questa viene fatta partire su un host nuovo, la nostra virtual machine non andrà!

E’ incomprensibile come un colosso come Amazon non avvisi i propri clienti in queste situazioni. Ad ogni modo, dopo una concitata sessione al telefono con il loro staff tecnico, siamo riusciti a venirne a capo.

Riporto qui sotto la soluzione per chi, come me, dovesse incappare in questo problema di punto in bianco e non sappia da che parte guardare per trovare aiuto.

  • Scaricare l’ultima versione di EC2Config da qui: http://aws.amazon.com/developertools/5562082477397515
  • Scaricare i driver aggiornati della scheda di rete Citrix (contiene anche lo script per eliminare i vecchi driver RedHat): http://aws.amazon.com/developertools/2187524384750206
  • Stoppare l’istanza che non parte più.
  • Fare un detach del volume root della macchina.
  • Lanciare un’istanza (anche t1.micro o m1.small, non importa) di Windows 2003 su cui andrà montato il disco di root che non parte. E’ importante che sia un’istanza di 2003 perché così non fa casino con il disco di boot. Per trovarla, basta cercare Windows_Server-2003-R2_SP2 nelle community AMI.
  • Fare un attach del volume di root alla nuova istanza.
  • Collegarsi alla macchina Windows 2003. Il disco dovrebbe già essere visibile. Se non lo fosse, basta usare il Disk Manager per metterlo online ed assegnargli una lettera di unità.
  • Scaricare i due pacchetti di cui sopra su questa macchina e copiarli in una cartella citrix sul disco della macchina che non parte. (ad es. E:\citrix). Mettete pure tutti i file insieme, tanto non c’è nulla con lo stesso nome.
  • Date permessi full control all’utente everyone per quella cartella, giusto a scanso di equivoci
  • Lanciate regedit
  • Aprite il ramo HKEY_LOCAL_MACHINE
  • Dal menù file selezionare Load Hive…
  • Selezionate il file SOFTWARE dalla cartella E:\Windows\System32\config (ricordate che E: è il percorso assegnato nel mio caso, nel vostro potrebbe essere differente)
  • Chiamate questo hive 00Software
  • Navigate in HKEY_LOCAL_MACHINE\00Software\Microsoft\Windows\CurrentVersion\RunOnce
  • Create una nuova chiave di tipo stringa e chiamatela 01EC2Config e come valore mettete c:\citrix\ec2install -q
  • Create una nuova chiave di tipo stringa e chiamatela 02RHPurge e come valore mettete C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -file C:\citrix\Purge.ps1
  • Create una nuova chiave di tipo stringa e chiamatela 03Citrix e come valore mettete C:\citrix\Citrix_Xensetup.exe /S
  • A questo punto navigate in HKEY_LOCAL_MACHINE\00Software\Microsoft\WindowsNT\CurrentVersion\Winlogon
  • Create una nuova chiave di tipo stringa e chiamatela  AutoAdminLogon e come valore mettete 1
  • Create una nuova chiave di tipo stringa e chiamatela DefaultUsername e come valore mettete Administrator
  • Create una nuova chiave di tipo stringa  e chiamatela DefaultPassword e come valore mettete la vostra password di Administrator (va messa in chiaro)
  • A questo punto tornate su 00Software e andate su File -> Unload Hive..
  • Chiudete regedit e fate il logoff dalla macchina Windows 2003.
  • A questo punto, dalla console di EC2, fate un detach del disco dalla macchina Windows 2003 e fate un attach sulla vostra vecchia macchina che non parte più, mettendo come nome del device /dev/sda1
  • Riavviate la vostra vecchia istanza e lasciatela andare per qualche minuto. Si dovrà riavviare un paio di volte (di solito è automatico) togliere i vecchi driver di rete, installare quelli nuovi ed aggiornare EC2Config. Una volta finito sarà di nuovo online.
  • Buona fortuna!

Quanto costa sviluppare un’app iOS?

Diversi mesi fa ero incappato in una discussione su StackOverflow riguardante il costo per lo sviluppo di un’applicazione iOS tipo Twitterific.

Volevo scrivere qualcosa a riguardo prendendo come riferimento il mercato italiano, ma me ne sono dimenticato.. tanto per cambiare. Nel frattempo è passato altro tempo e finalmente mi sono deciso.

La discussione verteva principalmente sul capire quanto potesse costare un’applicazione iOS simile a Twitterific (la domanda è stata posta nel 2008 ed i prezzi sono sicuramente cambiati, vista la crisi mondiale, anche se alcune risposte abbastanza recenti danno un’idea del costo del lavoro attuale o quasi negli Stati Uniti).

Uno dei programmatori di Twitterific, nel 2010, ha aggiunto il suo commento alla domanda portando come esempio il porting dell’app da iPhone ad iPad. Nel loro caso si trattava di portare l’app in 60 giorni. A conti fatti, prendendo come riferimento 6 giorni lavorativi alla settimana, per 10 ore al giorno, con due risorse dedicate, si arriva a 1.100 ore. Calcolando che la loro tariffa media per i clienti è di 150$/ora, si arriva ad una stima di 165.000$, a cui va aggiunto il costo di ciò che era già stato sviluppato e che è stimato in circa 35.000$. Si arriva ad un totale di 200.000$, senza tenere conto del design e del project management. Con quelli si arriva tranquillamente a circa 300.000$.

Questo stesso personaggio, porta come esempio anche il fatto che Instagram si sia fatto finanziare 500.000$ da un venture capitalist per rifare frontend e backend.
Altri sviluppatori hanno commentato rimanendo sempre nel range dei 150$/ora uomo. Ora non so dire se negli Stati Uniti ci siano pochi programmatori iOS, poche società che sviluppano per iOS, un mercato talmente grande che giustifica certe cifre o che altro, ma confrontate con quelle che sono le tariffe medie italiane, sono dei numeri esageratamente importanti.

Parlando con altri sviluppatori, sono arrivato alla cifra di 50€/ora come tariffa media per lo sviluppo puro. Che, diciamocelo, di questi tempi è anche un buon prendere. Ritornando al calcolo relativo a Twitterific, se l’avessimo fatto in Italia, il risultato sarebbe di 1.100 ore x 50€/ora = 55.000€ di solo sviluppo dell’aggiornamento per iPad. Sempre senza includere project management e design.

La realtà è, a mio avviso, che in Italia nessuno avrebbe investito una cifra del genere solo per portare un’app da iPhone ad iPad. La realtà è che, se si chiede 1/5 di quella cifra, si è ancora ancora concorrenziali.. e deve includere anche design e project management, altrimenti si è completamente fuori target.

Mi piacerebbe sentire l’opinione anche di altri sviluppatori che si muovono nell’ambito delle app mobile qui in Italia, per capire se siamo anche noi coinvolti dal momento di crisi che prima o poi passerà, o se c’è qualcosa di male nel sistema del mercato dello sviluppo, soprattutto tenendo conto che spesso e volentieri dobbiamo scontrarci con i lavoratori dell’est Europa che hanno prezzi estremamente concorrenziali ma che, allo stesso tempo, sono difficili da gestire, fanno perdere un sacco di tempo per spiegare che cosa si vuole e, in gran parte dei casi, il prodotto finale non è nemmeno lontanamente all’altezza di ciò che si voleva.

Contattatemi, anche in privato se preferite, per approfondire l’argomento.

 

Il Media Center perfetto

E’ da qualche tempo che voglio scrivere questo post. Ho passato diverso tempo valutando varie opzioni per un Media Center da utilizzare in casa.

Tutto è partito con l’acquisto del nuovo televisore per casa (un Samsung LED 40″ della serie 6) che integra un Media Center di base in grado di leggere i vari file video, foto ed audio da una chiavetta USB, un disco esterno o un server di streaming. Tutto sommato devo ammettere che quello di Samsung non è poi così male. E’ un pò limitato (alcuni codec non sono supportati), non viene aggiornato molto spesso, ma direi che un buon 90% dei film che mandavo in streaming dal PC funzionavano alla grande.

Il problema in realtà è un altro: essere costretti a tenere acceso un PC che consuma parecchio ed ha una ventola molto rumorosa. Se poi aggiungiamo che mi piacerebbe poter lasciare acceso il PC per scaricare torrent e cosette varie, non mi dispiacerebbe trovare una soluzione economica ed efficiente.

In prima battuta avevo preso in considerazione Popcorn Hour che è piccolo, consuma pochissimo, gli si può montare un disco di qualsiasi dimensione, ha integrato un suo Media Center, ha un client torrent, insomma.. apparentemente non gli manca niente. Non ha molta potenza di processore, ci gira Linux, tutto sommato non è malaccio. Ma il suo software di Media Center non è proprio il massimo. Ogni tanto gli aggiornamenti hanno problemi che lo rendono inutilizzabile, insomma.. non ha una bellissima storia alle spalle, almeno dalle voci degli amici che l’hanno tutto’ora.

Un giorno un amico mi ha parlato di un sistema della Sapphire, uscito da pochissimo, che fondamentalmente è un PC basato su un Atom di ultima generazione. Molto piccolo, silenzioso, ci si può montare un qualsiasi disco da 2,5″, supporta Windows e Linux senza problemi. Al che, lui ha pensato bene di provarlo ed io ho seguito le sue prove.

Installato Windows 7, provati VLC, MediaPlayer e compagnia bella ed il risultato è stato che dopo qualche decina di minuti il PC si bloccava completamente. Stessa prova con Linux ed identico risultato. Stessa prova con un CD live di Boxee, stesso risultato. Cambiato il PC in questione ed ancora lo stesso problema che si ripropone. Purtroppo non è raffreddato come si deve e dopo un pò si scalda troppo e si blocca.

Aggiornamento del 3 Agosto 2011: alla seconda sostituzione del box Sapphire, tutto è andato come si deve. Con Windows 7, Boxee e filmati a 1080p che girano ininterrottamente da giorni non c’è alcun problema. A quanto pare si trattava di un problema di un lotto di questi apparecchi. Avendo, nel frattempo, utilizzato a fondo la soluzione Mac Mini, c’è da dire che entrambe le piattaforme sono valide. Diventa quasi più una scelta di tipo filosofica.. ci piace di più OS X o Windows (o Linux)? Ad ogni modo consiglio a chiunque decidesse di acquistare il Sapphire di metterlo sotto stress per bene, per assicurarsi che non ci siano problemi hardware.

Il lato positivo è stato che, durante queste prove, ho rivisto il caro vecchio Boxee, che non tenevo d’occhio da parecchio tempo. E, da quando avevo provato io una beta anni fa, ha fatto passi da gigante. Tant’è che adesso vendono anche hardware dedicato a questa piattaforma. Ho letto un pò, mi sono informato, ed ho visto che è multipiattaforma. Al che, un altro amico mi ha lanciato l’idea di provare ad installarlo su di un Mac Mini. Cosa che ho fatto al volo. Ho preso un vecchio Mac Mini che avevamo in ufficio, ho installato Boxee, ci ho copiato sopra qualche film in 720p e l’ho fatto girare per un pò di ore. Il risultato è stato inaspettato. Sistema stabile, riproduzione dei film perfetta: ecco la macchina definitiva!

Con un pò di ricerche fra eBay e eBay Annunci sono riuscito a trovare un Mac Mini usato ad un prezzo abbordabile (250 €). Io consiglio come minimo un modello anche vecchio ma che abbia almeno un processore a 1.83GHz e 2Gb di RAM. Con una configurazione di questo tipo si è a posto per mandare in play filmati anche in 1080p.

In questo momento l’ho collegato al televisore di casa, ci girano Boxee, Transmission e JDownloader accesi 24 ore su 24 e non ho avuto il minimo problema. Ho aggiunto un disco esterno collegato tramite USB su cui tengo tutti i film e sono pienamente soddisfatto. Per completare ho recuperato un telecomando IR della Apple e mouse e tastiera wireless giusto per quando mi serve fare manutenzione (tra l’altro si può fare tutto comodamente da una qualsiasi altra postazione collegandosi in VNC).

Mi sento di consigliare questa soluzione a chiunque sia alla ricerca di un Media Center flessibile, stabile, poco costoso e che consumi poco (e di conseguenza che faccia risparmiare sulla bolletta della luce).