jQuery’de Internet Explorer PNG Alpha hatası

Internet Explorer ve yıllardır çözülemeyen transparan PNG sorununu yüzünden sıkıntı çekmeyen web geliştirici yoktur sanırım. Fakat bu sefer sorun transparan kanal içermeyen PNG resimleri ile ilgili.

Ne olmuş bu PNG’lere derseniz: Internet Explorer’da jQuery ile resimlerin opacity değerlerini değiştiren bir animasyon çalıştırdığınızda bu resimlerin geçirgenliğinin değişmediğini, birden yok olup tekrar göründüğünü farkedeceksiniz. Bu hangi sürümlerde karşımıza çıkıyor derseniz cevabım maalesef tüm sürümlerde olur. Internet Explorer 8′de bile böyle bir hata ile karşılaşıyorsunuz.

Neyse ki bu problemin çözümü oldukça basit. Animasyon ile geçirgenliğini değiştireceğiniz resmin stiline “filter:alpha(opacity=100)” özelliğini eklediğimizde sorun gideriliyor, hatta IE6′da bile problemsiz bir şekilde çalışıyor.

$("ELEMENTİNİZ").css('filter', 'alpha(opacity=100)');

Windows 7′de Multi-threaded uygulamalar

Google Chrome ilk çıktığında ne kadar heyecanlanmıştık. Chrome’u çalıştırdığınızda başlatılan ilk thread (iş parçacığı) asla I/O işlemleri yapmıyor, böylece siz Chrome simgesine tıkladığınız anda uygulama açılıyordu. Yer imleriniz, geçmiş listeniz, kısacası Chrome’un ihtiyaç duyacağı ve diskinizde yazılı olan her şey ayrı thread’ler tarafından kontrol ediliyor, böylece kesintisiz bir web deneyimi yaşıyordunuz.

Aynı günlerde, IE8 tarafında ise işler biraz karışıktı. Chrome “her şey farklı threadlerle yapılıyor” anlayışı üzerine çok eğilmişti. Bunun üzerine ise Microsoft cephesinde “IE8′de de zaten her bir pencere ayrı bir thread altında çalışıyor.” fikri etrafında dönen bazı pazarlama adımları gördük. Bu doğruydu doğru olmasına fakat Chrome’daki multithreading anlayışı bundan biraz daha kapsamlıydı.

Ve bugünlere geldik. Microsoft, muhtemelen tarihinin en hızlı işletim sistemi olan Windows 7′yi satışa sunmak üzere. Yaklaşık 1 aydır kullandığım Windows 7 her anlamda bilgisayar başında geçirdiğim saatleri çok ama çok daha verimli kıldı.

Ama bahsedeceğim şey aslında şu: Windows 7 ilk açıldığında taskbar’daki tüm simgeler yükleniyor ve bilgisayar o an tam açılmamış, hard disk hala motor gibi çalışıyor olsa bile tüm bu simgeler üzerine tıklandığında kolayca tepki veriyor. Tıpkı Chrome’un ilk açılışı gibi.

Bu konunun biraz üzerine gittiğimde ise şunu farkettim: Bilgisayarınız ilk açıldığında, task bar’daki simgelere iliştirdiğiniz kısa yollar ve o uygulamalar ile ilgili geçmiş bilgilerinin hiç biri yüklenmiyor ve bu işlem muhtemelen farklı threadler tarafından yapılıyor. Böylece siz task bar simgelerini gördüğünüz anda üzerlerine tıklayıp çalıştırabiliyor, ya da yerlerini değiştirip özelliklerini görüntüleyebiliyorsunuz. (Task-bar simgelerinin nasıl yüklendiği ile ilgili henüz teknik bir bilgi bulamadım, dolayısıyla bu bir tahminden öteye geçmiyor aslında…) Benzer bir şekilde, Vista’da “Network & Sharing Center” simgesine tıkladığınızda bilgisayarın neredeyse 10 saniye boyunca tepki vermemesi gibi sorunlar Windows 7 de yaşanmıyor.

Bu tabi ki yeni bir teknik değil fakat kullanıcı arabirimlerinde multi-threaded metodlar izleme konusunda Google’ın teknoloji dünyasına öncülük ettiği de bir gerçek. Windows’ta da bunun örneklerini görmek gerçekten mutlu ediyor insanı. Tabi eğer Windows 7 baştan aşağı multi-threaded uygulamalar ile dolu ise, 96 MB Ram’e sahip bilgisayarlara nasıl kurulup çalıştırılabiliyor, o da başka bir incelemenin konusu…

NOT: Tüm bu yazdıklarıma ters düşebilir fakat Windows 7′de karşılaştığım tek performans problemi Chrome’da flash videolarını izlemeden önce Chrome ekranının 4-5 saniyeliğine tepki vermemesi. Muhtemelen Chrome’un gelecek sürümlerinde bu sorun da giderilecektir.

SVG ve Tarayıcılar

Önümüzdeki günlerde SVG (Scalable Vector Graphics) hakkında ayrıntılı bir inceleme yapacağım. Fakat daha öncesinde bu çalışmamla ilgili ilk sonuçları aktarmak istedim. 

Daha ayrıntılı bilgiler vereceğim fakat özetlemek gerekirse SVG, W3′ün internet tarayıcıların vektörel grafikleri gösterebilmesi için geliştirdiği XML tabanlı bir standart. Yani sadece XML kodları ile vektörel grafikler oluşturabiliyorsunuz. Tabiki pratikte XML kodu yazarak bu grafikleri oluşturmak çok mümkün değil. O yüzden Adobe Illustrator gibi uygulamalarla grafikleri oluşturup XML tabanlı SVG formatında kaydedebiliyorsunuz. SVG Wikipedia’nın çok sık kullandığı bir format.

Yukarıda bahsettiğim gibi SVG bir W3 standardı. Yani tüm internet tarayıcılarının bu formatı destekliyor ve sorunsuz bir şekilde SVG grafiklerini görüntüleyebiliyor olması gerekiyor.

Firefox 3.0.3, Safari 3.1.2, Chrome 0.3.154.9 ve Internet Explorer 8 Beta 2 ile yapmış olduğum denemeler sonucunda karşılaştığım sonuçlar şunlar: 

Firefox 3.0.3 ve SVG

Firefox SVG dosyalarını oldukça güzel bir şekilde görüntüleyebiliyor. Yüklenme hızı süper değil fakat en hızlı yükleyen tarayıcından çok daha yavaş değil. Fakat yavaş olan bir şey var: Yeniden boyutlandırma. SVG görüntüsü yüklendikten sonra görüntüyü yaklaştırıp uzaklaştırdığınızda yeniden yükleme süresi inanılmaz yavaş ve şu haliyle oldukça rahatsızlık verici. 

Safari 3.1.2

Safari’nin Windows sürümü de SVG dosyalarını gayet hızlı bir şekilde yüklüyor. Yeniden boyutlandırma hızı Firefox’a göre çok daha hızlı. Gecikme süresi çok az.

Google Chrome 0.3.154.9

Chrome’un SVG’lerle olan ilişkisinin Safari’den farklı olmayacağını düşünüyordum iki tarayıcı da WebKit üzerine kurulu olduğu için. Fakat yanılmışım. Google Chrome hem SVG dosyalarını çok daha hızlı yüklüyor ve yeniden boyutlandırma süresi özellikle Firefox ile karşılaştırılamayacak kadar hızlı. Yakınlaştırma ve uzaklaştırma işlemleri neredeyse hiç vakit almıyor.

Internet Explorer 8 Beta 2

Anlatılacak bir şey yok. Internet Explorer 8 SVG grafiklerini desteklemiyor. Şaşırtıcı olmasa gerek. (Düzeltme: IE8 ile doğrudan SVG dosyalarını görüntülemek mümkün değil fakat Adobe’nin hazırladığı bir eklentiyi bilgisayarınıza kurarak Internet Explorer’dan da SVG dosyalarını görüntüleyebilirsiniz.)

Sonuç:

SVG, geleceğine inandığım bir teknoloji. Tüm tarayıcılarda, hiçbir eklenti yüklemeden XML tabanlı vektörel grafikler oluşturabilmek, bu grafiklere hem sunucu tarafında, hem de kullanıcı tarafındaki uygulamalarla müdahale edebilmek demek. AJAX uygulamalarınızda bu vektörel grafiklerin sadece belli bir bölümünü değiştirebileceğinizi bir düşünün. Mükemmel bir esneklik. 

Tabiki W3′ün 1999′dan beri üzerinde çalıştığı bu standardı Internet Explorer desteklemezse bunların hiç biri mümkün olmayacak. Microsoft, XML tabanlı vektörel grafik konusunda Silverlight’a rakip olabilecek bu teknoloji karşısında W3′ü önemser mi, göreceğiz.

Örnek bir SVG görüntüsü:
http://upload.wikimedia.org/wikipedia/commons/d/de/EuropeLocation.svg

Gmail Mobile 2.0 çıktı.

Mobil internet kullanan Gmail kullanıcılarının sık olarak kullandığı Gmail’in Java midlet’inin yeni versiyonu bugün yayınlandı. 

İlk versiyondan çok büyük farklılıklar içermeyen 2. versiyondaki en büyük gelişmelerin başında offline durumdayken dahi email yazabilme ve online olunduğunda yazılan mesajların otomatik olarak gönderilmesi geliyor. Bununla birlikte V2 görsel olarak da elden geçirilmiş.

 

http://googleblog.blogspot.com/2008/10/introducing-gmail-for-mobile-20.html

Google Chrome nasıl bu kadar hızlı çalışıyor?

Az önce Google Chromium Blog‘da yayınlanan bir yazı bu soruya ışık tutuyor. 

Google Chrome geliştirilirken, yazılımcıların en çok dikkat ettikleri konuların başında disk yazma okuma işlemlerini minimuma indirmek geliyor. Bu ne kadar mı önemli? Yıllardır kullandığınız ve disk birleştirme işlemini bir kez dahi uygulamadığınız bir Windows kurulumunda Internet Explorer’ın kaç saniyede açıldığını bir düşünün? Ya da bilgisayarınız ilk açıldığında IE ya da Firefox’u açmayı deneyin. Açılmıyor mu? Bu büyük olasılıkla tarayıcınız yüklenirken favori listelerinizin, cache bilgilerinizin, kullanıcı ayarlarınızın, cookie bilgilerinizin, kısacası sabit diskinizde tarayıcı ile ilgili ne varsa hafızaya yüklenmesi sebebiyle karşılaştığınız bir durum. 

Peki Chrome’da ne değişti de hantal bilgisayarım daha Windows Vista’yı doğru düzgün açamamışken Chrome’a tıkladığım anda tarayıcım açılıyor?

Google tarayıcının sabit diskinizle olan ilişkisini değiştirdi. Chrome’un çalıştırdığı ana thread kesinlikle sabit diskinizle ilgilenmiyor. Hatta bu, tarayıcının geliştirilmesi sırasında Google’ın yazılımcılarına şart koştuğu bir kural: ANA İŞ PARÇACIĞI ASLA DİSKE VERİ YAZIP OKUYAMAZ. 

Bu kurala o kadar sadık kalınmış ki, bu iş parçacığının gerçekten I/O işlemleri yapıp yapmadığı, I/O hakları elinden alınarak çalıştırılmak suretiyle test edilmiş. 

Peki Chrome hiç mi diske veri yazmıyor? Elbette yazıyor ve okuyor. Fakat bunu yapan, sizin gördüğünüz kullanıcı arabiriminden ayrı bir şekilde çalışan iş parçacıkları (thread). Dolayısıyla kullanıcı arabirimi oluşturulurken bir taraftan da favorilerinizin ya da geçmiş ziyaretlerinizin yüklemesini beklemek zorunda kalmıyorsunuz. Benzer şekilde taradığınız sayfayı farklı kaydederken diğer işlemlerin devam etmesi de asenkron çalışan iş parçacıkları sayesinde gerçekleştiriliyor. 

Web’de asenkron uygulamaların ilk zamanlarında, henüz hiç bir AJAX kütüphanesi hayatımızı kolaylaştırmazken, kullanıcılara daha iyi ve hızlı bir deneyim sunabilmek için kodlamada çektiğimiz sıkıntıların bir benzeri de Chrome’un bu şekilde çalışmasının sağlanması adına yaşanmış. Bu girişimlerin başarıya ulaşıp ulaşmayacağını önümüzdeki günlerde göreceğiz.

Post It ile harikalar yaratmak


EepyBird’s Sticky Note experiment from Eepybird on Vimeo.

I’m a PC! Microsoft’un yeni reklam atağı!

FastCompany’nin Haziran’08 sayısının kapağında, Microsoft’u köşeye sıkıştığı pazarlama savaşında kurtaracak isim olan Alex Bogusky tanıtılıyordu. Birkaç hafta sonra haberler geldi ve Microsoft’un yeni kampanyaları için Seinfeld ile anlaştığı, birkaç reklam filmi çekeceği haberleri yayıldı. Bunu duyduğumda Microsoft’un aylardır beklenilen büyük reklam atağının bu olduğunu düşünüp üzülmüştüm.

 

Fakat Microsoft asıl hamlesini birkaç gün önce yayınlanmaya başlayan, Apple’ın “I’m a Mac” temalı kampanyalarına cevaben hazırladığı “I’m a PC” reklamı ile yaptı. Uzatmama gerek yok. İzleyin!


I’m a PC from kouko a on Vimeo.

Whopper 50. yılını kutluyor

Burger King’in Whopper’ı bu sene 50. yılını kutluyor. Burger King, insanların Whopper’ın yokluğunda neler yaptığını anlamak için küçük bir deney gerçekleştirdi. Aşağıda izleyebilirsiniz.


Artık arama motorları Adobe Flash içeriğini görebiliyor.

Yıllardan beridir arama motoru optimizasyonunun (SEO) en büyük sorunlarından birisi olan Adobe Flash uygulamalarının içeriğinin indekslenememesi probleminin, Adobe’un bugün yaptığı açıklamada artık tarih olduğu bildirildi.

Adobe’un arama motorlarının kullanımına sunduğu yeni bir uygulama, motorların SWF dosyalarının içerdiği metinlere ulaşabilmesini ve bu metinleri indeksleyebilmesini sağlıyor. Yani artık Google’dan aradığınız bir sonuç, PDF ve Word dokümanlarında olduğu gibi artık Flash animasyonlarının da bir parçası olabilir.

Konu ile ilgili Adobe’un resmi açıklaması

.NET kaynak kodları açılıyor

Visual Studio 2008 ve .NET 3.5 lansmanlarıyla birlikte heyecan verici başka bir gelişme daha yaşayacağımız geçtiğimiz günlerde Microsoft tarafından açıklandı. .Net platformundaki pek çok kütüphanenin kaynak kodları, yeni versiyon ile birlikte dileyenlere “Microsoft Reference Licence” kapsamında dağıtılacak.



© Copyright 2010 Eren Baydemir. Tüm hakları saklıdır.