Articoli con Tag ‘Microsoft’
Mentre Microsoft, tramite il suo Blog su IE7, annuncia gongolante la “favolosa” cifra di 100 milioni di installazioni di IE7 nei primi giorni di gennaio 2007, circolano voci su una probabile versione di Safari (il noto anche se ormai obsoleto browser – nativo – per Mac) per Windows.
Microsoft dal canto suo è felice di constatare che IE7 è il secondo browser più utilizzato, dopo IE6.
Tutto ciò accade quando mancano ancora numerose localizzazioni di IE7, ed è quindi comprensibile l’assoluta fiducia riposta da Microsoft nel suo nuovo browser, in “vista” anche dell’uscita di Vista (scusate il giochino di parole)!
È quindi davvero necessario “portare” Safari su Windows?
Mary Jo Foley, nel suo Blog, ha provato a chiederlo agli utenti. Votate anche voi.
Per ora i risultati sono:
Evidentemente, se questi “rumors” sono autentici, iPhone , l’ultima meraviglia Apple, potrebbe essere coinvolto in qualche modo.
Certamente sul nuovo iPhone di Apple è preferibile usare FireFox o Opera, sempre che Apple lo renda possibile. Su un normale Mac, stando agli end-user, Safari da tempo perde colpi, rendendo innavigabili alcuni siti.
Possiamo tuttavia intravedere in queste speculazioni quanto la presentazione del nuovo iPhone Apple abbia scosso qualcosa.
Continua...
Ormai da Microsoft ci aspettiamo davvero di tutto, soprattutto quando si parla di browser. Offendere l’intelligenza della comunità, tuttavia, risulta un po’ sgradevole da accettare.
Sul Blog di IE7 è uscito oggi un articolo (IE+JScript Performance Recommendations Part 3: JavaScript Code Inefficiencies), se così possiamo definirlo di Peter Gurevich, Performance PM for IE, con la parte III dei suoi “consigli” per gli sviluppatori.
Primo appunto: perchè Microsoft si ostina ad implementare una sua versione di Javascript – che chiama appunto JScript – complicando la vita a tutti?
Secondo appunto: proprio perchè il motore di JScript è proprietà della Microsoft, invece di perdere tempo a dire a “noi” come aggirare i difetti, perchè non li sistemano una volta per tutte?
Lasciando stare il primo consiglio di questa III parte, che potete leggere direttamente sul Blog o su Ajaxian, il secondo è davvero eclatante, e sinceramente non lo diregisco proprio.
Don’t use Property Accessor Functions
Quando si dice il progresso! In pieno 2007, un Project Manager della Microsoft viene a dire a noi sviluppatori di Non usare le funzioni di get e set in JScript!
La follia, evidentemente, è uno strano male, che colpisce in modo repentino e fuorviante. JScript – sullo stile di Javascript – è implementato seguendo un modello ad oggetti! È un linguaggio ad oggetti, sulla scia del C++. Il fatto che le variabili siano accessibili dall’esterno (come sottolineato nell’articolo – cosa ovvia tra l’altro) non è assolutamente un vanto, anzi. La tecnica dell’incapsulamento è propria della filosofia della programmazione OO. Incapsulare le proprietà, passando dai virtual-method get e set è una forza del linguaggio Object Oriented, non un limite. Consigliare di non farne uso è a dir poco criminale, e gli eventuali problemi di performance sono a carico dell’interprete e dei suoi autori, non certo dell’end-developer.
Quindi, alla fine, JScript va usato come un semplice C, guai a trattarlo come C++, pena “impallare” il browser o chissà cos’altro.
Inoltre, come segnalato sul Blog, il tutto è un falso problema in quanto JScript NON implementa le vere funzioni di get e set, solo Javascript lo fa!
Ma il problema, evidentemente, rimane. In Javascript (scusate ma JScript non riesco proprio a digerirlo) ci sono varie tecniche per creare un oggetto. Ad esempio lo si può creare in modo immediato in questo modo:
1 2 3 4 5
| var myObject = {
miaProprieta: 0,
mioMethodo: function() { alert("Hello"); }
}; |
In questo modo non ho dichiarato una classe. L’oggetto viene per così dire dichiarato e creato contemporaneamente. È un modo rapido quando l’oggetto che ci serve è unico.
Oppure, il che è equivalente ai fini pratici:
1 2 3 4 5 6 7 8
| function CmyObject() {
this.miaProprieta = 0;
this.mioMetodo = function () { alert("Hello") }
}
//
var iMyObject = new CmyObject(); |
In questo caso prima si definisce la classe – tramite una function- (CmyObject) e poi si crea esplicitamente l’oggetto con new.
A parte le questioni stilistiche relative al singolo sviluppatore, il problema di come accedere alle proprietà di una classe rimane. Consiglio vivamente a tutti gli interessati, comumque, di leggere le risposte al Blog di Microsoft, davvero interessanti.
Sul Blog erano presenti tre modi di accesso: con le funzioni get e set, diretto e passando da prototype. Alla fine la cosa simpatica è stata che sul Blog c’è un codice per eseguire un Testdrive, una prova dei tre metodi indicati sopra. Il codice è presente sul Blog ma lo riporto qui per completezza:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| <script>
// Slow Car definition
function SlowCar()
{
this.m_tireSize = 17;
this.m_maxSpeed = 250; // One can always dream!
this.GetTireSize = SlowCar_get_tireSize;
this.SetTireSize = SlowCar_put_tireSize;
}
function SlowCar_get_tireSize()
{
return this.m_tireSize;
}
function SlowCar_put_tireSize(value)
{
this.m_tireSize = value;
}
</script>
<script>
// Faster Car, no more property accessors
function FasterCar()
{
this.m_tireSize = 17;
this.m_maxSpeed = 250; // One can always dream!
}
</script>
<script>
// Prototype Car, use the language features!
function PrototypeCar()
{
this.m_tireSize = 17;
this.m_maxSpeed = 250; // One can always dream!
}
PrototypeCar.prototype.GetTireSize = function() { return this.m_tireSize; };
PrototypeCar.prototype.SetTireSize = function(value) { this.m_tireSize = value; };
</script>
<script>
function TestDrive()
{
var slowCar = new SlowCar(); // Safe and reliable, probably not fast
var fasterCar = new FasterCar(); // Lacks air-bags, probably faster
var protoCar = new PrototypeCar(); // Can technology win the day?
var start = (new Date()).getTime();
for(var i = 0; i < 100000; i++) { slowCar.SetTireSize(slowCar.GetTireSize() + 1); }
var end = (new Date()).getTime();
output.innerHTML += "Slow Car " + (end - start) + "<br>";
start = (new Date()).getTime();
for(var i = 0; i < 100000; i++) { fasterCar.m_tireSize += 1; }
end = (new Date()).getTime();
output.innerHTML += "Faster Car " + (end - start) + "<br>";
start = (new Date()).getTime();
for(var i = 0; i < 100000; i++) { protoCar.SetTireSize(protoCar.GetTireSize() + 1); }
end = (new Date()).getTime();
output.innerHTML += "Prototype Car " + (end - start) + "<br>";
}
</script>
<button onclick="TestDrive();">Test Drive Cars!</button>
<div id="output"></div> |
Ora, questo è l’output (relativo alla mia macchina) con IE7:
Slow Car 515
Faster Car 63
Prototype Car 547
Con FireFox (v.2.0.0.1):
Slow Car 156
Faster Car 47
Prototype Car 172
Con Opera (v.9.10):
Slow Car 172
Faster Car 47
Prototype Car 172
Insomma
IE7 ne esce davvero male… non so se notate l’enorme differenza. Quindi direi che JScript potrebbe essere abolito, eliminato, cancellato, vaporizzato. Speriamo che Microsoft si decida anche lei ad adottare Javscript e non i surrogati.
Continua...
È giunto il momento di prendere una decisione. L’anno 2007 è ormai avviato ed è quindi inutile indulgiare ulteriormente. Microsoft Vista è alle porte, e il 2008 sarà il suo anno. Windows XP sta per lasciare il posto all’ultimo nato in casa Gates, ultimo – tra l’altro – del suo genere.
Quindi risulta ovvio – se qualcuno non se ne fosse ancora accorto – una certa urgenza nell’aggiornare lo strumento più utilizzato del secolo (se non del millennio), ovvero il browser.
Rilasciato da poco come aggiornamento automatico – ma facoltativo per motivi di monopolio e antitrust – Microsoft Intrenet Explorer 7 diventa per i possessori di Windows una scelta obbligata. L’aggiornamento è vivamente consigliato soprattutto per motivi di sucurezza e accessibilità sul Web. La scoperta di falle nei codici non è cosa nuova, ma le ultimi versioni sono notoriamente meno attaccabili in quanto gli hackers non hanno avuto il tempo di scoprire i buchi da cui insinuare hacks e worm.
Ecco quindi 5 buoni motivi, secondo me, per passare da subito a Internet Explorer 7 (IE7):
- È il browser delle prossime generazioni, quindi meglio prendere subito dimestichezza con le sue nuove funzionalità
- Migliore stabilità e sicurezza
- Migliore assistenza sugli aggiornamenti e supporto dei componenti aggiuntivi
- Migliore navigabilità sul Web, dove la tecnologia utilizzata in IE7 si avvicina meglio a quella già presente in altri noti browser come FireFox, Opera, ecc… così – finalmente – riuscirete a vedere correttamente alcuni siti Web, navigabili oggi solo con FireFox
Perchè rimanere indietro?
Continua...
Sul Blog di IE7 è uscito un articolo (IE6 and IE7 Running on a Single Machine) che potrebbe migliorare le notti insonni di molti sviluppatori Web! Microsoft si è resa conto (fortunatamente) che l’avvento di Internet Explorer 7 causa, di fatto, l’abbandono della precedente versione 6. Infatti non è possibile far convivere entrambi i browser sulla stessa macchina. Per gli utenti finali questo non è un problema, ma per gli sviluppatori Web che vogliono mantenere una compatibilità con la versione 6 è un vero e proprio disastro. La soluzione, proposta su vari altri Blog, è quella di utilizzare una macchina virtuale, come VMWare o Virtual PC della setssa Microsoft.
L’indicazione è quella di installare sulla macchina reale principale l’ultima release del browser, la versione 7. Dotarsi poi di un player o di un software di virtualizzazione così da far girare virtualmente in questo ambiente separato la vecchia versione 6 di explorer.
NOTA BENE:
Microsoft mette a disposizione anche un file con un ambiente già virtualizzato, scaricabile all’indirizzo:
http://go.microsoft.com/fwlink/?LinkId=70868
Questo file si traduce in un .vhd file, non utilizzabile con VMWare. Inoltre chi possiede un Windows XP Home – come vedrà – non potrà utilizzare Virtual PC 2004 di Microsoft che richiede almeno Windows XP Professional (sul sito questa informazione è indicata davvero male!).
Tuttavia, quasi a voler essere un pesce d’aprile, il 1 Aprile 2007 questa macchina virtuale non sarà più utilizzabile! Nel Blog viene comunque sottolineato che il team di sviluppo spera di poter rilasciare in futuro ulteriori aggiornamenti di queste macchine virtuali preconfezionate.
Morale, questa soluzione è comunque approssimativa e non soddisfa davvero tutti! Andrebbe permesso l’uso di VMWare e quindi rilasciata una macchina virtuale compatibile con questo software, palesemente concorrente a Virtual PC 2004 – da poco rilasciato free da Microsoft
– o travare un modo per convertire il file .vhd di Microsoft in un file accettabile per VMWare. Se avete suggerimenti…
Continua...
Conitnua a stupire la totale differenza di resa tra i vari browser in commercio. IE7 tratta i PNG (ad 8 bit o 24) in modo differente da FireFox. Anche Opera non è esente da qualche strana manifestazione a riguardo. Nel particolare i PNG usati come sfondo sono resi in modo differente da IE7, Opera e FireFox. Quest’ultimo è quello che si comporta meglio di tutti e a tal proposito sarebbe ora di nominarlo browser del “secolo”! Complimenti al team di sviluppo.
IE7 crea un simpatico effetto di taglio su un’immagine PNG usata come sfondo in repeat-x. Se provate a creare un immagine di 200×200 pixel con una sfumatura che va dal nero (0×000000) a grigio (0xeeeeee) in verticale e la posizionate nel CSS come sfondo del body in ripetizione orizzonale (repeat-x), impostando come sfondo del body il colore 0xeeeeee – ovvero la fine della sfumatura, noterete che solo FireFox rende perfettamente lo stacco, IE7 e Opera mostrano un simpatico effetto di taglio (ma leggermente diverso!!!): in pratica si vede la fine della nostra immagine 200×200 e l’inizio dello sfondo a colore piatto.
Un modo per risolvere il problema è quello di salvare la nostra immagine in GIF…
Ma i PNG non erano supportati da IE7?
Continua...
E’ giunta l’ora – per gli sviluppatori Web – di prendere misure drastiche contro l’ostinata mania dell’incompatibilità tra i browser. Proponiamo, quindi, un simpatico boicottaggio di Microsoft Internet Explorer 7 che, dopo anni di sviluppo, blog, referendum e white paper, continua a mostrare evidenti sintomi di incompatibilità cronica. Ci dispiace in fin dei conti criticare continuamente il lavoro dei “colleghi” di Redmond, ma i difetti riscontrati nell’ultima release di Explorer sono così macroscopici che non possono essere percepiti come semplici sviste.
La cosa più preoccupante è la presenza di bachi clamorosi presenti già nella versione 6 di IE! Non è possibile, quindi, accettare un simile comportamento da chi possiede un monopolio incontrastato del software di navigazione Internet più diffuso. Purtroppo, infatti, Internet Explorer 6 risulta ancora il browser più utilizzato, anche se FireFox in questi anni ha percorso orgogliosamente la sua strada verso un successo tutto meritato.
Basta, quindi, con patch HTML, CSS e Javascript (o JScript?!)!
Browser tutti uguali?
C’è chi sostiene che una perfetta compatibilità tra i browser non sarà mai raggiunta. In effetti qual’è la vera differenza tra Internet Explorer e FireFox? Ad oggi le funzioni di feed, zoom, schede, ecc… sono presenti su praticamente tutti i browser in commercio, da Safari a Opera. Quindi quale scegliere? Forse non si deve scegliere! E’ proprio questo quello che manca. Oggi, invece, siamo tutti costretti a scegliere, sia come Web Developer che come end-user. L’esperienza, infatti, ci insegna che quel sito è navigabile con Safari, ma quell’altro è funzionante solo con FireFox. In pratica, sulla propria macchina, bisognerebbe avere almeno 3/4 browser per essere sicuri di navigare con tranquillità nell’immmensità di Internet!
Il chè ci pare davvero assurdo!
E il bello è che è già così!!
Se aggiungi un sito tra i preferiti ti devi ricordarti di esportarlo negli altri quattro browser, altrimenti se non sia mai domani ti trovi a navigare con un browser diverso non trovi più il link che ti eri – giustamente – memorizzato. Se memorizzi un certificato delle tua banca? Le liste dei feed? Insomma, questo è un gioco al massacro, non certo informatica!
Bisognerebbe prima di tutto sistemare una volta per tutte la questione della resa visiva dei browser (CSS/HTML/XML, … ) e della compatibilità di scripting (Javascript/JScript). Fatto questo, allora, stupire il mondo con un browser in grado di possedere delle caratteristiche proprie e non un copia di quelle di un’altro!
Ognuno di noi è libero – o dovrebbe essere libero – di installare sul proprio PC il browser che ritiene più idoneo. La questione è che questa libertà ci viene negata dall’incompatibilità dei browser e il lavoro dei Web Developer diventa faticoso, costoso (in termini di tempo e denaro) e poco efficente, con rischi continui di bachi nascosti e altre falle!
Continua...
A Redmond devono avere qualche grosso problema di comprendonio! Risulta magnificamente assurdo che sul finire dell’anno 2006 ancora non ci siano le basi per una – anche – approssimata compatibilità tra IE7 e Firefox! Nonostante il rilascio ufficiale – anche se con un set limitato di localizzazioni – di Internet Explorer 7, l’engine di rendering delle pagine soffre ancora di evidenti difetti di programmazione! Senza infierire entrando in numerosi dettagli elenco solo due clamorosi bachi ancora presenti in questo rilascio ufficiale!!
Prima di tutto i PNG vengono resi differentemente dai GIF… e, peggio ancora, in position absolute subiscono strani contorni a seconda di come gira a IE!! Evidente baco? O follia di qualche junior-developer?
Sul fronte CSS la pseudo classe :hover continua a non essere supportata su tutti i TAG, nonostante molti blog la diano per funzionante! Ma su quale sistema? Vedi W3C…
Un semplice p:last-child è praticamente ignorato! Giustamente Microsoft ha supportato p:first-child. Ora, se implementi il first che cosa ti costa implementare anche last? Mistero…
L’apice dell’assurdo, poi, lo si ottiene con le liste puntate! Udite udite! IE7 si comporta esattamente come IE6! Della serie: vi siete portati appresso codice fallato? Troppi copia e incolla evidentemente! Se definitie una lista con i canonici UL LI e un’immagine personalizzata come list-point, non provate ad usare un float sull’elemento LI, l’immagine scomparirà misteriosamente, esattamente come accadeva su IE6!! L’unico, manco a dirlo, a rendere il tutto corretto è il solito – vecchio – FireFox!
Sul blog di IE7 sono numerose le lamentale. Nonostante sia apprezzato lo sforzo del pachiderma Microsoft di aprire un blog durante lo sviluppo di un software come IE7, rimane tuttavia il dubbio dell’efficacia di questa mossa. Hanno davvero ascoltato le richieste degli utenti-sviluppatori? Il blog di IE7 è stato aperto con troppo ritardo?
Ancora una volta non ci resta che attendere una service-pack prossima ventura…
Continua...
La versione 7 del browser Microsoft è stata (finalemente) rilasciata in lingua inglese (quasi contemporaneamente è stata rilasciata la release 2 di FireFox). A breve – tramite il servizio di aggiornamenti automatici di Windows – sarà installata su milioni di macchine, come patch del sistema. Qualcuno ha già criticato questa mossa di Microsoft gridando all’ennesimo comportamento scorretto. Agli sviluppatori Web, tuttavia, interessa più sapere che fine farà Internet Explorer 6 (IE6) e come dovranno comportarso nello sviluppo di siti Web.
Il rilascio tramite Windows Update è previsto per l’inizio di novembre! Ne deriva che nel giro di una settimana IE6 sarà bello che sepolto. Gli sviluppatori Web dovranno ovviamente aggiornare il proprio PC, ritrovandosi quindi sprovvisti di una versione 6 su cui effettuare le canoniche prove di compatibilità.
Risulta infatti evidente che chi – come noi – è maniaco degli aggiornamenti e deve assolutamente possedere l’ultima release di un software, si trova tra l’incudine e il martello. Inoltre – come è ovvio – IE6 è morto! Ed era anche ora! Un browser candidato ad essere sicuro – se mai ce ne sarà uno – nel prossimo futuro (prossimi giorni) è sicuramente IE7, visto che sarà quest’ultimo a subire patch (service pack) di sicurezza.
Da sviluppatori comprendiamo che IE6 è ormai abbandonato! Inoltre Microsoft ha esplicitamente consigliato di passare urgentemente alla versione 7, se ci fosse bisogno di ribadirlo. Gli sviluppatori Web dovranno dotarsi di una macchina con IE6 per eseguire i test? Evitando di aggiornarla? Subendo così possibili attacchi da tutte le parti o evitando di andare in rete?
La soluzione più ovvia – e vantaggiosa per Microsoft – è che sviluppatori ed end user passino immediatamente a IE7, che lo vogliano o no!
Continua...
Ultimi Commenti
Giovambattista Fazioli: @Nik: Sono contento! In bocca al lupo dunque!!
Nik: Lunedì ho l’esame di informatica su java, grazie mi sei stato utilissimo, il libro che ho era poco chiaro...
Marco: Ti ringrazio moltissimo, mi hai illuminato
ho risolto impostando [cc_objc] //OptionViewController.m -...
Giovambattista Fazioli: @Marco: Ti consiglio un approccio credo più corretto. Se hai eseguito il subclass del tab...
luigi: molto chiaro e semplice devo ammettere che anche scrivendo da un pà difficilmente uso delegati creati da...