31.12.2010

Sonunda 64 bit Flash çıktı

Flash Square. 64 bit flash'ın deneme sürümünün kod adı. Henüz deneme aşamasında, ama olması bile birşey! Uzuun süredir çıkması beklenen, ama -muhtemelen- sırf 64 bit sürümü olmadığı için 64 bit işletim sistemlerinin 32 bit tarayıcıları varsayılan olarak seçmesine sebep olan Flash.

Bir süredir sadece Linux için 64 bit Flash mümkündü. Ama şimdi Windows ve Mac için de var. 64 bit Flash Player'ı çıkarmak neden bu kadar uzun sürdü çok merak ediyorum. Gerçekten çok uzun sürdü.Ve hala deneme aşamasında. Nihai sürümün çıkması biraz daha zaman alacak.

64 bit Windows ile hem 32 bit hem de 64 bit Internet Explorer geliyor, aşağıdaki resimde görüldüğü gibi.


Eğer Firefox yüklemek isterseniz o da 32 bit geliyor. Windows için henüz kararlı nihai sürüm 64 bit Firefox yok. Aşağıdaki resimde 64 bit Windows 7 üzerine kurulmuş bir Firefox'un 32 bit olduğu görülüyor.


Dolayısıyla 64 bit Windows bile kullanıyor olsanız, Firefox'un gördüğü  Flash plugin'iniz 32 bit olacak.Bunu Firefox adres satırına about:plugins yazarak da görebilirsiniz.



Yukarıdaki resimde Shockwave Flash plugin'inin kullandığı NPSWF32.dll dosyasının isminden 32 bit olduğu belli. Dolayısıyla Firefox'un gördüğü Flash Player da 32 bit. Version satırındaki 64 sayısı sizi yanıltmasın; o başka.

Şu adresten 64 bit IE için 64 bit Flash Player'i indirelim ve olacakları görelim. Aşağıdaki resimde de 64 bit Windows 7 üzerinde, 64 bit IE8'de çalışan Flash Player'in görüntüsü var. Görev Yöneticisi'nde iexplore.exe'nin yanında *32 olmadığı için 64 bit olduğu açık. Ayrıca FlashUtil64_10_3_162_ActiveX.exe'nin yanında da *32 olmadığından bu eklentinin çalışan proses'i de 64 bit. Ayrıca IE'nin Araçlar>Internet Seçenekleri>Programlar>Eklentileri Yönet>Araç Çubukları ve Uzantılar'da görünen Flash'ın Shockwave Flash Object'in ek bilgilerinde %systemroot%\System32\Macromed\flash klasöründeki Flash64_10_3_162.ocx dosyasının da 64 bit olduğu gözüküyor (sadece dosya adında geçen 64 ibaresinden).


Peki bundan nasıl emin olabiliriz? Visual Studio ile gelen dumpbin adında bir komut satırı aracı var. Bu iş için dumpbin önerilmiş. Üşenmedim, Windows 7 üzerine Visual Studio 2010 Express'i kurdum, Visual Studio Command Prompt'u çalıştırdım (cmd.exe ile olmuyor). Burada aşağıdaki sonuçları elde ettim:


Burada machine (x64) yazan dosyalar 64 bit mimariye göre derlenmiş dosyalar. machine (x86) yazanlarsa 32 bit mimariye göre derlenmiş olanlar. Dumpbin'in çıktısı çok ayrıntılı olduğu için findstr ile filtrelenmiş. Bu filtreyi kaldırınca ayrıca adreslenebilir bellek alanının da 64 bit dosyalar için 2 GB'ın üzerinde olduğuna dair bir ibare de çıkıyor ki bu da beklenen birşey. Unutmadan söyleyeyim, 64 bit Windows üzerinde Program Files klasörü sadece 64 bit uygulamalar için. Geriye dönük uyumluluk açısından 32 bit uygulamalar Program Files (x86) klasörüne kuruluyor. Ayrıca Windows klasörünün altındaki system32 klasörü, her ne kadar adında 32 geçse de artık 64 bit sistem dosyaları için. 32 bit sistem dosysalarının konumu SysWOW64.

64 bit Windows kullanırken 32 bit Firefox'a mı muhtacız? Henüz Firefox'un kararlı bir 64 bit sürümü yok demiştim. Ama deneme sürümlerini denemek isterseniz şu adresten indirebilirsiniz. Hemen onu da indirip kurdum ki Flash Square'i 64 bit Firefox üzerinde deneyebileyim. Firefox'un 64 bit sürümünün adı Firefox değil,  Namoraka. Görünüş aynı, hatta exe dosyası bile firefox.exe. Sadece proje adını değiştirmişler, kararlı ve deneme sürümleri karışmasın diye. İşte aşağıda 64 bit Windows 7 üzerine kurulmuş 64 bit Firefox (yani Namoraka) içinde çalışan 64 bit Flash Square plugin'i gözüküyor.


Burada görülen NPSWF64_10_3_162.dll dosyası isminden 64 bit olduğu çağrışımını yapıyor. Peki gerçekten öyle mi diye bakmak için %systemroot%\system32\Macromed\Flash klasörünün altında bulunan bu dosyanın başlıklarını dumpbin ile inceleyelim:


Aklıma gelmişken, bir uygulamanın 32 bit mi yoksa 64 bit mi olduğunu linux'ta bulmak için file komutunu kullanabiliyormuşuz. Bu komutu  bir dosyayı göstererek, ya da çalışan bir prosesin ID'sini vererek de kullanabiliyoruz. Örneğin, Ubuntu 10.10 x64 üzerinde çalışan Firefox'un gerçekten 64 bit olduğunu görmek için şunlaır yaptım:

$ file /usr/lib/firefox-3.6.10/firefox-bin
/usr/lib/firefox-3.6.10/firefox-bin: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped

yada proses ID'sini vererek:

$ file -L /proc/1515/exe
/proc/1515/exe: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped

Firefox'un adres satırına about:plugins yazdığımda Flash Player ile ilgili dosyanın npwrapper.libflashplayer.so olduğunu gördüm. Bu dosyayı arattığımda /var/lib/flashplugin-installer/ ve /usr/share/ubufox/plugins/ klasörlerinin altında rastladım. Fakat ikincisi bozuk bir sembolik linkti. Aslen /usr/lib/flashplugin-installer/npwrapper-libflashplayer.so'ya işaret ediyor olsa da böyle bir dosya yoktu. Onun yerine libflashplayer.so adlı bir dosya buldum. file komutu ile bunları incelediğimde ise

$ file /var/lib/flashplugin-installer/npwrapper.libflashplayer.so
/var/lib/flashplugin-installer/npwrapper.libflashplayer.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped


ve

$ file /usr/lib/flashplugin-installer/libflashplayer.so
/usr/lib/flashplugin-installer/libflashplayer.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped

sonuçlarını aldım. İkinci dosya libflashplayer.so 32 bit. Ancak bu, bozuk bir sembolik bir link. Yani Firefox bu dosyayı görmüyor (aslında npwrapper.libflashplayer.so dosyasının bir kopyası buraya konarak sembolik link onarılabilir). Dolayısıyla çalışan Flash'ın 64 bit olduğu sonucuna varabiliriz.

Bunu da bulduktan sonra söyleyeceğim birşeyin kalmadığını farkettim.

24.12.2010

Samsung LCD TV'de telnet'i etkinleştirmek

DonaninHaber.com'da Samsung B650-51-52-53 Lcd Tv Serileri # Genel Konu # başlığı altında ve aslen SamyGo proje sitesinde Samsung B650 serisi televizyonlarla ilgili bazı güzel gelişmeler olmuş. Bunlardan ilki, televizyon üzerinde telnet'i etkinleştirmekle ilgili. Bu konudan başlayarak yapacaklarımı burada paylaşacağım.

Telnet benim için niye önemli? Bir süre önce bir arkadaşımın USB belleğini televizyona bağlamış, içindeki resimlere bakarken birkaç tanesini televizyonumun dahili belleğine aktarmıştım. Amacım daha sonra bu resimleri bilgisayarıma aktarmaktı. Ama garip bir şekilde dahlili bellekteki bilgilerin başka bir yere kopyalanamadığını gördüm. Televizyonun arayüzünde böyle bir komut yoktu. Resimlerim bir süredir televizyonun dahili hafızasında alınmayı bekliyordu.

Önce şu sayfayı okudum. Orada verilen link'ten SamyGo Telnet Enabler Application'ı download ettim. Bu arada elimde bir boş USB bellek hazır ettim. FAT32 ile formatladım ve download ettiğim zip dosyasını USB belleğimin içine açtım. Yalnız dikkat: bu zip dosyasını açında önce telnet-enabler diye bir klasör ve clmeta.dat ve trojan.png dosyaları çıkıyor. Bu haliyle USB belleğe attığımda televizyon görmedi. Ben de telnet-enabler klasörünün içindeki telnet klasörünün içeriğini USB'nin kök dizinine attım. USB belleğimde şu dosyalar vardı:
busybox
clmeta.dat
telnet.png
telnet.sh
telnet.so
Bu haliyle USB belleğimi televizyona bağladıktan sonra Content menüsü üzerinden İçerik Yönetimi'ne, oradan USB belleğinizin içine girdikten sonra aşağıdaki ekranla karşılaştım:


Burada sağ kısımda görünen Run this Telnet Enabler'ı seçtikten sonra kumandadan Enter tuşuna basınca Oynat, Kopyala ve Tümünü Kopyala seçenekli bir menü açıldı. Ben Kopyala komutuyla bunu televizyonun dahili belleğine kopyalamayı seçtim. Bu uygulama ihtiyaç anında çalıştırılması gereken birşey. Televizyonda kalıcı bir değişikliğie sebep olmuyor. Dolayısıyla ihtihaç anında çalıştırabilmek için televizyonun dahili belleğine kopyalamak iyi bir fikir.

Ardından Oyun kısımna gelerek aşağıdaki gibi ekrandah Run this Telnet Enabler'ı tıkladım.


Bunun sonucunda televizyonun ekranı kısa bir kapandı ve tekrar açıldı. Bilgisayarımdan Putty ile denediğimde giriş yapabildim. Kullanıcı adı olarak root kullandım, parola sormadı bile.

Bundan sonra işin zor kısmı televizyonun dahili belleğindeki resimlerin dosya sisteminde nereye denk geldiğini bulmak kaldı. Elimde bir rehber olmadığından deneme yanılma ile klasörler arasında gezindim. Televizyonun üzerindeki linux işletim sistemi de find veya locate gibi yüksek seviye linux komutlarını desteklemiyordu. Bu arada şuna dikkat: her ne kadar bu yöntemle telnet'i etkinleştirmenin televizyona bir zararı olmasa da, telnet ile bağlandıktan sonra kullanacak yanlış bir komut herşeyi mahvedebilir. Bu yüzden biraz linux tecrübesi faydalı olacaktır.

Gelelim resimleri bulduğu konuma. Resimleri
/mtd_wiselink/PHOTO001
klasörünün altında buldum. Benzer şekilde dahili bellekteki bir filmi de
/mtd_wiselink/MOVIE001
klasörünün altında buldum. Sıra geldi bunları USB'ye kopyalamaya. USB'nin mount noktasını bulabilmek için mount komutunu kullandım. Bu komutun ürettiği çıktının en son satırında
/dev/sda1 on /dtv/usb/sda1 type vfat (rw,sync,fmask=0022,dmask=0022,codepage=cp437,iocharset=utf8,shortname=mixed)
yazıyordu. Demek ki USB belleğim /dtv/usb/sda1 klasörüne bağlanmış. Sonunda aşağıdaki komutla bu dosyaları USB belleğime kopyaladım.
cp /mtd_wiselink/PHOTO001/* /dtv/usb/sda1/
Yalnız bu iş tahmin ettiğimden çok daha uzun sürdü, neden bilmiyorum. USB diskim 2.0'dı. Televizyonun da 2.0'ı desteklediğine şüphe yok. Neyse, resimlerimi bilgisayarıma aktarmanın verdiği sevinçle bu konunun üzerine fazla düşmedim.

21.12.2010

3G telefonların kullanımıyla ilgili istatistikler

Chip'te yayınlanan bir haber ilgimi çekti. Adroid ve iPhone'ların, Symbian ve Blackberry'lere göre daha çok internete bağlandığı yazıyordu. Sayıca Andorid kullanıcıları daha sık internete girse de, iPhone kullanıcıları ile aynı miktarda veri alışverişi gerçekleştirmişler. Hatta sayı da verilmiş: Android ve iPhone telefonlarından yapılan bağlantı, Symbian ve Blackberry telefonlardan yapılan bağlantının 5 katından daha fazla. Ciddi bir fark var. 3G modemler ile yapılan veri alışverişi iPhone'larla yapılanının 20 katı olduğuna dair bir rakam da var.

Bu verilerin can alıcı kısmı ise Symbian telefonlardan yapılan telefon görüşmesi, Blackberry, Android ve iPhone'lardan yapılan toplam görüşmeden %35 daha fazla olması. Bu verilerde bir tuhaflık olduğunu anlamıştım zaten.

Sayıca Symbian telefonların diğer telefonlardan daha fazla olduğunu düşünüyordum. Ama internette yapılan veri alışverişinin Andorid ve iPhone'lardan daha fazla olması nasıl açıklanabilir? Elbette iPhone ve Android cihazların aylık yüksek kotalı internet paketleriyle birlikte satılmasıyla. O kadar büyük ekranlı bir telefon aldıktan sonra sadece telefon defterinde dolaşıp ekranda dokunmatik olarak birkaç numara tuşlamak olmazdı. Kaynağını hatırlamadığım başka bir yerde de neredeyse bütün 3G trafiğinin sosyal ağlar ve youtube gibi eğlence amaçlı olduğunu okumuştum. Bu durumu daha net açıklıyor sanırım.

16.12.2010

Ubuntu Server 8.04 LTS üzerine VMware Server 1.0.10 kurmak

Daha önceki yazımda Ubuntu Server 10.04 LTS üzerine VMware Server 2.0.2 kurulumunu anlatmıştım. Kurulumu tamamlamış olmama rağmen Firefox 3.6.12 ile bir türlü bağlanamadım. Google Chrome'a da VMware'in desteği yoktu. IE8 ile de başarısız olunca gördüm ki VMware Server, ömrünü tamamlamış. Bu sebeple VMware yeni tarayıcılar için yeni eklentiler çıkarmayı durdurmuş. Eski bir tarayıcı da bulmak istemediğimden Ubuntu Server 10.04 üzerine VMware Server 1.0.10 kurmayı denedim. Ama onun da kurulum aşamasında bir sürü sorunu çıktı. Söylenene göre Ubuntu, yeni sürümlerinde VMware'in kullandığı bir özellik için desteği kaldırmış. Bu durumu da ihtimal dışına çıkardıktan sonra ne yaparım diye düşünmeye başladım. Elimde mevcut bir VMware Server kurulumu vardı (sürüm 1.0.6, Ubuntu Server 7.10 üzerine) ve ben bunu yenilemek istiyordum.

Önce ESXi'yi düşündüm. Ama tam olarak istediğim bu değil. Ben daha pratik, test amaçlı kullanabileceğim bir ortam arıyordum. Bu sebeple VMware Server 1.0.x'in en son hangi Ubuntu Server sürümü ile uyumlu çalıştığını aramaya başladım. Bu yol beni Ubuntu Server 8.04 LTS'ye kadar götürdü. Host işletim sisteminin LTS olması önemli, çünkü zaten yeni kurduğum bir sistemin daha kurulum öncesinde destek süresinin dışında olmasını istemiyordum (elimde zaten böyle bir sistem var, Ubuntu Server 7.10). Ubuntu Server 8.04 LTS de sonuçta 2013 Nisan'ına kadar desteği devam edecek bir ürün. Üstelik kurulumun da sorunsuz gerçekleştiğini okudum.

Bu sebeple hemen Ubuntu Server 8.04 LTS'nin kurulumunu (aslında tam olarak 8.04.4 sürüm, Ocak 2010) yaptım. Elimdeki VMware Server 1.0.10'a ait dosyayı da kurulumdan sonra açarak çalıştırdım. Ve beklenen sonuç: herşey pürüzsüz olarak çalıştı, bir tek hata mesajı olmadan!

Güncel bir Ubuntu sürümü olması için çok uğraştım, ama maalesef olmadı. Bu arada önce Ubuntu 8.04'e başarılı bir kurulum gerçekleştirdikten sonra Ubuntu'ya bir release upgrade yaptırarak 10.04 LTS yaptım. Ama bu sürümde VMware'e bağlantıda sorunlar yaşadım. Kısaca VMware Server 1.0.x kullanmak istiyorsanız bugün yapılabilecek en iyi şey Ubuntu Server 8.04 LTS kurmak.

14.12.2010

Windows 7 ve ID3 tagları

mp3 (em pi üç değil, Türkçe alfabemizdeki gibi me pe üç) dosyalarının meta verileri olan ID3 tagları, yeni ortam oynatıcıları için önemli. Çünkü bütün veritabanı bu verilere göre düzenleniyor, gruplama ve seçimler bu meta verilere göre yapılıyor.

Windows 7'de son zamanlarda harici bir ortam oynatıcı (Winamp, SongBird vs.) kullanmadan, Windows Media Player'i kullanıyorum. Ama bazı dosyaların ID3 taglarını düzenleyemiyordum. Son zamanlarda iyice rahatsız edici olmuştu. Sonunda üzerine düşmeye karar verdim. Durumu özetleyeyim: Bazı mp3 dosyalarının ID3 verilerini değiştiremiyorum. Bu durum, dosyanın read-only olmasıyla veya NTFS yetkileriyle ilgili değil. Bir dosyayı seçip, özelliklerinden ayrıntılar sekmesine geçince bu kısım değişikliklere kapalı geliyor. Herhangi bir hata vermediği için daha ayrıntılı bilgiye de ulaşamıyorum. Sonunda Windows Explorer'ın altındaki kısma veri girerek yapmayı denediğimde de aşağıdaki 0x8007000D hatasını aldım:


Nihayet bu beni bir sonuca götürebildi. Bu hatayı Google'da arattığımda şöyle bir sonuca vardım:
ID3 taglarının iki sürümü vardı, bunu biliyordum. Sürüm 1 ve sürüm 2. Sürüm 2'nin de alt sürümleri varmış, 2.3 ve 2.4 diye, bunları bilmiyordum. Meğer yüce işletim sistemi, son teknoloji ürünü Windows 7, ID3 taglarının sürüm 2.4'ünü desteklemiyormuş (kaynaklar şu ve bu). Hatırladığım kadarıyla şu anda göremediğim sürüm 2.4 meta verilerini Pardus'ta yazmıştım, ve Windows XP'de de değiştirebiliyordum. Bu kısıtlama sadece Windows 7'ye özgüymüş. Neden, bilmiyorum!

Çözüm, mp3 verilerimin ID3 taglarının sürümlerini 2.4'ten 2.3'e indirgemek. Peki bu nasıl yapılır? Eskiden kullandığım bir ID3 editörü vardı, ID3-TagIT adında. Gördüm ki bu program bu işi yapabiliyormuş. Aşağıdaki ekran görüntüsünde görüldüğü gibi araç çubuğundaki kırmızı ile işaretlenmiş düğmeye bastıktan sonra "Convert TAG Ver. 2.4 to Ver. 2.3" seçimiyle seçilen dosyaların dönüşümü yapılabilir. Bu işlemden sonra OK'e basmak yetmiyor, bir de araç çubuğundaki disket simgesine tıklayarak üzerinde değişiklik yapılan dosyayı tekrar diske yazmak gerek.


Bu programın .NetFramework 2'ye ihtiyacı var. Çalıştırmadan önce kurulması gerek. Ayrıca cüssesine göre fazla bellek kullanmak gibi de bir dezavantajı var. Forumlardan birinde Alman yazılımlarının karakteristik özelliği olduğu gibi bir yorum okumuştum. Ama hedefe ulaşmak için kullanılabilir mi, kullanılabilir.

Google Yasağının Yeni Hali

Ne garip bir ülke oldu burası. Bir ara devlete kızıyorduk, sansürcü diye. Herkes Youtube'a erişim yasağı kalksın, sansürler olmasın diye söylenip duruyordu.

Geçen hafta yazdığım şu yazımda blog'umun giriş istatistiklerindeki düşüşten bahsetmiştim. Google Analytics raporlarına bakınca 1 Aralık'tan sonra ani bir düşüş olmuş. Geçen hafta internette nereye baksam bu konuda elle tutulur bir sonuca ulaşamadım.



Dün yine bir arama yaptım, yine hangi sebepten Google IP'lerinin yasaklandığını anlamak için. Ve bulduğum sonuçlar karşısında çok şaşırdım. Bu sefer sorunun kaynağı bir özel şirket: Digiturk! İşte kaynaklarım:
Lig TV yayınlarının internet üzerinden kanunsuz olarak izletilmesi konusunda haklı bir rahatsızlığı olan Digiturk, Google'a başvurarak ilgili blog'lara erişimin engellenmesini istemiş. Ama Google cevap vermekte geç kaldığından (ya da hiç dikkate almamış da olabilir) Digiturk açtığı dava ile Google Apps ile tüm bloglara erişimi engelleyecek bir karar alınmasına sebep olmuş.

Şimdi koca Türkiye, adamların yasal olmayan yollardan Lig TV izlenmesini engelleyebilmek için Blogspot'a erişmekten feragat etmiş bulunuyor. Haklıyken haksız duruma düşmek tam olarak bu işte! Ne işiniz var bloglarla? Yukarıdaki 3. referanstaki yazıda söylendiğine göre bu kararın sorumlusu Digiturk değil, Türk Telekom. Digiturk yasağın sadece ilgili bloglara erişimi engellemek şeklinde olmasını istemiş. Ancak Türk Telekom yasağın IP tabanlı olması konusunda (nedense) ısrar etmiş. Garip! Sanki IP kısıtlaması olunca hiç erişilemiyor. Tabi bu ısrar, Digiturk'u temize çıkarmıyor bence. Şu anda Youtube yasağından daha anlamsız bir erişim engellemesiyle karşı karşıyayız sonuçta.

Şu adreste de Türkiye'den hala erişime kapalı IP adreslerinin listesi var.

Nitekim, bloglara girmek için bazı yollar mevcut. Öncelikle girmek istediğiniz sadece bir blog ise o blog'un adına karşılık hosts dosyasına bir giriş yapmanız yeterli. Örneğin blog.ozmener.net'e girebilmek için hosts dosyasına (önceki yazımda ayrıntılar var)

216.239.34.21 blog.ozmener.net

yazmak gerek. Bu ziyaretçi tarafında yapılacak birşey. Blog sahibi ne yapabilir? blogadi.blogspot.com gibi bir adrese erişimde -şimdilik- bir sıkıntı olmadığı için (sadece ghs.l.google.com'a ait 74'lü IP adresleri engelleniyor) blog.ozmener.net yerine blog'un yayınlanma adresini tekrar blogspot.com'a göre değiştirip, blog.ozmener.net adresini de manuel olarak blogspot.com'a yönlendirebilir, bu aralar benim yaptığı gibi. Ben alan adıma ait DNS sunucu üzerinde blog.ozmener.net için yeni bir A kaydı yaratıp, 216.239.34.21 adresine yönlendirdim. Google bir kez daha IP değiştirirse DNS sunucumda bir kez daha bu değişikliği yapmam gerekecek.

10.12.2010

Ubuntu Server 10.04 LTS üzerine VMware-Server 2.0.2 kurulumu

ÖNEMLİ NOT: VMware Server, tasarlanan ömrünü tamamlamış bir ürün. Bu sebeple yeni sürümlerini yayınlanmayacak. Bu hangi noktada önem kazanıyor? VMware Server 2.0.x için bir client console tipi bir yazılım yok, onun yerine browser üzerinden bir plug-in ile bağlantı yapılıyor. Bu plug-in de IE8, Firefox 3.6 ve sonrası ile Google Chrome'un hiçbir sürümünü desteklemiyor, gelecekte de desteklemeyecek. Dolayısıyla yeni sürümlü browser'larınıza VMware'e bağlanmak mümkün değil. Ben bu sebeple bu duruma alternatif olarak Ubuntu 8.04 LTS üzerinde VMware Server 1.0.10 kullanmaya başladım.


Yazılım ve sistem testlerini yapmak için bir sanal makina sunucusuna ihtiyacım var. Kurulduğu makine üzeirnde en az kaynak tüketerek, en verimli çalışacak sistemin, bir linux üzerinde VMware-Server olacağını düşündüğümden önce sıradan bir bilgisayar üzerine Ubuntu Server 10.04 LTS kurdum. Neden 10.10 değil 10.04? Çünkü 10.04 LTS - Long Term Support. Yani destek süresi Server'larda 5 yıl!

Ubuntu Server'ın kurulumu tamamlandıktan sonra üzerine önce Webmin ve OpenSSH kurulumlarını, daha önceki yazılarımda belirttiğim gibi yaptım. Ardından VMware.com sitesinden yeni 2.0.2 sürümü download ettim. Bu dosya biraz büyük (~500 MB). Bu aşamada siteden lisans anahtarlarını almayı da unutmayın. Download ettiğim dosyanın adı VMware-server-2.0.2-203138.x86_64.tar.gz ve bu dosyayı profil klasörüme kopyaladım. Sıkıştırlmış bu dosyayı şimdilik açmaya gerek yok (daha sonra anlatacağım).

Kuruluma geçmeden önce kurulum sırasında gerekecek bazı bileşenlerin kurulumlarını yapmak gerek.
sudo apt-get install gcc make build-essential
sudo apt-get install linux-headers-`uname -r`
sudo apt-get install xinetd ia32-libs
Ben ilk denememde VMware'in ~500 MB'lık kurulum dosyasını açıp kurulum script'ini çalıştırdım ve çok sayıda
/tmp/vmware-config3/vmmon-only/./include/vm_atomic.h:1028:7: warning: "_MSC_VER" is not defined
hatası aldım. Bunun çözümü bu, bu ve şu sayfalarda verilmiş. Radu Cotescu adlı kişinin şahsi çabası sonucunda Ubuntu 10.x ve VMware 2.0.x sorununa çözüm şu adreste verilen dosyanın indirilmesiyle bulunmuş. Bu patch dosyalarını da profil klasörümün içine kopyaladım. Sonra bu dosyayı, VMware-Server'ın sıkıştırılmış kurulum dosyasının bulunduğu (profile) klasörüne açtım. Yani
VMware-server-2.0.2-203138.x86_64.tar.gz
vmware-server-2.0.x-kernel-2.6.3x-install.sh
vmware-server-2.0.2-203138-update.patch
vmware-config.patch
start-VMware-console.sh
dosyaları aynı (profil) klasörde olmalı. Ardından sh uzantılı dosyanın execute yetkilerinin olduğundan emin olduktan sonra (yoksa chmod +x ile bu yetkiler verilir) root yetkileriyle bu script'i çalıştırdım. UYARI: Mevcut klasör isimlerinde boşluk karakteri kullanmayın!
sudo ./vmware-server-2.0.x-kernel-2.6.3x-install.sh
Bu script VMware-Server'ın sıkıştırılmış dosyasını açarak patch'i uygular ve kuruluma devam eder. Kurulum bittikten sonra web arayüzüne
https://server-adi-veya-adresi:8333
ile bağlanılır.

Ubuntu Server üzerinde OpenSSH Server yapılandırması

OpenSSH, genelde linux tabanlı sistemlere uzaktan erişmek için kullanılan güvenli bir bağlantı yöntemi. Ayrıca onu bu kadar popüler yapan port yönlendirme yetenekleri de var.

Ubuntu Server'ın kurulumu sırasında aşağıdaki ekranda OpenSSH'ın kurulumunu seçebilirsiniz.


Bu ekranda OpenSSH server seçeneğini işaretlememiş olmanız durumunda kurulum sonrasında da OpenSSH'ı kurabilirsiniz. Bunun için komut satırından
sudo apt-get install openssh
girmek gerek. openssh hem openssh-server hem de openssh-client paketlerini kurar. Sadece server kurulumunu yapmak istiyorsanız
sudo apt-get install openssh-server
da yazabilirsiniz.

OpenSSH Server'ın ayarlarını saklayan dosya /etc/ssh/sshd_config dosyasıdır. Bu dosyada ben aşağıdaki ekleme/değişiklikleri yapıyorum. Ancak bu değişiklikler öncesinde
sudo /etc/init.d/ssh stop 
ile ssh servisi durdurulmalı.
Port 2122 # default portu değiştirir
PermitEmptyPasswords no # boş şifreleri engeller
PasswordAuthentication no # şifre ile girişi kapat
PermitRootLogin no # root girişini kapat
AllowUsers <boşlukla ayrılmış kullanıcı listesi>
Ardından ssh servisi tekrar
sudo /etc/init.d/ssh start
komutuyla başlatılabilir. Önce default portu değiştirdim. İstenilen boş port kullanılabilir. Amacım şifre değil, sertifika ile giriş olduğu için PasswordAuthentication için no değerini kullandım. Ayrıca boş parolalar ve root ile girişi de engelledim. AllowUsers ile de sadece istediğim kullanıcıların giriş yapmasını sağladım. Ardından mevcut genel anahtarımı (public key) kullanıcı profilimin altında .ssh klasöründeki authorized_keys dosyasına koydum. Bunun bir kopyasını da authorized_keys2 olarak aldım. Genel uygulama bu; neden aynı dosyanın kopyasına ihtiça var, bilmiyorum.

9.12.2010

Ubuntu Server 10.04 LTS'ye webmin kurulumu

Webmin, linux sistemlerin uzaktan yönetilmesi ve görüntülenmesi için güzel bir araç. Ubuntu Server 10.04 LTS'nin kurulumu şu adreste güzelce anlatılmış. Bu adımlarla kurulumu tamamladıktan sonra ilk olarak
sudo apt-get update
sudo apt-get upgrade
komutları ile paketleri güncelledim. Ardından başka bir makineden webmin'in deb uzantılı Debian ve Ubuntu uyumlu kurulum dosyasını indirdim. Ardından bunu hedef Ubuntu Server'a aktardıktan sonra
sudo dpkg -i webmin_1.530_all.deb
ile kurulumunu başlattım. Ancak bir sürü bağımlılık hatasıyla kuruma devam etmeyi reddetti. Ekrandaki hata mesajlarını okuyarak aşağıdaki komutla gerekli bağımlılıklarını kurduktan sonra webmin kurulumu devam etti:
sudo apt-get install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl apt-show-versions libapt-pkg-perl
Tüm kurulum süreci tamamlandıktan sonra 10,000 numaralı TCP portu üzerinden https bağlantısı ile yönetim arayüzüne bağlanabildim.

3.12.2010

Blog'lardan ne istediniz?

Ya bu IP tabanlı kısıtlama işi iyice can sıkmaya başladı. Daha önce şu yazımda da belirttiğim gibi Google'ın elindeki IP adreslerinde yaptığı ufak bir değişiklik sonucu Youtube'a konan yasak, birden bire Google Analytics'e, Google Maps'e yasak şekline dönüşmüştü. Ne olduysa iki gündür blog'lara da giremez oldum. Bugün şu kaynaktan aldığım IP adreslerini %windir%\system32\drivers\etc\hosts dosyasına şu satırı ekleyerek sorunu çözebildim.
216.239.34.21 blog.ozmener.net
Eğer bu sayfayı görüntüleyemiyorsanız hosts dosyasına bu girişi yapmanız gerek - nasıl olacaksa!

30.11.2010

Exploit-ByteVerify / Win HDD

Kullanıcılardan birisi telefon konuşması sırasında "Disk bulunamıyor hatası alıyorum" deyince bir bilgi işlemci aklını kaybedebiliyor. Ama sonradan bu mesajı bilgisayar açık ve tamamen işlevselken verdiğini görünce biraz iç rahatlaması ile karışık şaşırma hissi oluyor.

Evet, bilgisayar açıkken sistem tepsisinde beliren bir simge, bilgisayarın diskinin bulunamadığından ve diskte hataların algılandığından bahsediyor. Bu olsa olsa sahte bir uyarı mesajıdır. Process Explorer ile inceleyince sistem tepsisinde çalışan programın rastgele sayılardan oluşan 192546.exe gibi bir isme sahip, kullanıcının geçici internet dosyaları klasöründen bir dosya olduğunu gördüm. Program Files klasörünün yerine kullanıcı profilinden çalışan bir program, bağıra bağıra "Ben virüsüm" diyordur. Elbette antivirüs yazılımını geçici internet klasöründen exe çalıştırmayı engelleyecek şekilde yapılandırıp bu dertten baştan kurtulabilirdim. Bundan sonra bu adımı uygulayacağım.

Neyse, adını vermek istemediğim bir Türk sitesinin (hosting ABD üzerinde çıkıyor) sayfasına giren kullanıcımız, ISA loglarına göre aniden http://1010101.in gibi bir adrese yönlendiriliyor. Bu sitede önce bir PDF dosyası ile sınanıyor; ardından da JAR dosyaları ile. PDF ile sanıyorum birşey bulaşmamaış. Ama JAR dosyaları ile kötü amaçlı kişiler hedeflerine ulaşmış. Ayrıca bu siteden http://in-in.in gibi bir siteye de bağlantı yapılıyor. McAfee Site Advisor bu siteyi zararlı olarak sınıflandırdı. Bilgisayarda sahte bir disk denetleme programı (Win HDD) çalışıyor gibi gözüküyor ve diskle ilgili uyarılar verip duruyor. Temizlemek için halen aktif olarak çalışan exe dosyasını Process Explorer ile suspend edip, Autoruns ile tekrar başlamasını engellemek gerekiyor.


Tüm bunlar olurken kullanıcı tarafında VSE 8.5 + Antispyware + Artemis çalışıyordu. Ama akıllara zarar bir şekilde olup bitene göz yummuş(lar). Daha sonra

http://1010101.in/fvjpgrjokpjtfwd.jar (tıklamayın!)
URL'inden download ettiğim JAR dosyasını McAfee VSE zararlı içeriğe sahip Exploit-ByteVerify olarak algıladı. Olay, 1010101.in ve in-in.in sitelerinin ISA üzerinde karalisteye eklenmesiyle kapandı.

2.11.2010

Google Earth verilerinizi taşımak/yedeklemek

Bir süredir Google Earth'ü kullanıyordum. Kullanmakla ilgili sıkıntı yok, müthiş bir program. Olağanüstü faydalı. Ama yeni bilgisayara geçince eski verilerimi (işaretlediğim yerler, yollar vs.) de yeni bilgisayara taşıma ihtiyacı söz konusu oldu. Yeni bilgisayara Google Earth'ü kurduktan sonra (ki Google Pack kullanmanızı tavsiye ederim) eski bilgisayarımdaki myplaces.kml dosyasını yeni bilgisayarıma kopyalamak yeterli oldu.

Şu adreste belirtildiği şekilde eski Vista bilgisayarımdaki ("gizli dosyaları göster" seçilmiş olmalı)
C:\Users\username\AppData\Roaming\Google\GoogleEarth\myplaces.kml
dosyasını yine aynı konuma kopyalamam gerekiyordu. Ancak bir farkla: Nedense hem eski hem de yeni bilgisayarımda Roaming klasörünün altında Google klasörü yoktu. Onun yerine myplaces.kml dosyasını profil klasörümde arattığımda Roaming'in altında değil, LocalLow klasörünün altında buldum. Dolayısıyla ben
C:\Users\username\AppData\LocalLow\Google\GoogleEarth\myplaces.kml
dosyasını yeni bilgisayarımdaki aynı konuma kopyalayınca tüm verilerime kavuştum. Bu arada Google Earth'ün kapalı olması faydalı olacaktır.

27.10.2010

Hoekey: Mevcut kısayol tuşları yetmediği zaman

Hoekey süper bir program. Neredeyse herşey için klavyeden bir kısayol ataması yapabileceğiniz bir şey. Kullanımı da çok basit ve ücretsiz!

Yapılması gereken http://www.bcheck.net/apps/hoe.htm adresine giderek yeni sürümünü indirmek. Sonra bunun bilgisayarın her açılısında başlamasını sağlamak. Başlat\Programlar\Başlangıç'a bir kısayolunu ekleyerek bunu yapabiliriz. Hoekey.exe'yi çalıştırdıktan sonra program çalıştığına dair bir ipucu vermiyor. Yalnız Win+Q tuşu ile küçük penceresini açabilirsiniz.


Program yapılandırma ayarlarını hoekey.ini dosyasında saklıyor. Bu dosyaya yeni satırlar ekleyerek yeni kısayollar oluşturabilirsiniz. Yeni bir kısayol oluşturmak için şu kurala uygun satırlar eklemeliyiz:

Tuş=Komut|Parametre1|Parametre2|Parametre3|Parametre4|Parametre5 ; açıklama

Tuş, şu yardımcı tuşlarla birlikte herhangi bir tuşun kombinasyonu olabilir:

~ : Klavyenizdeki Windows tuşu (üzerinde Windows sembolü olan tuş(lar))
_ : Shift tuşu
^ : Control tuşu
@ : Alt tuşu

Komut olarak da programın klasöründeki hoekey.htm dosyası veya şu adresteki sayfadan bakarak Run, Msg vs. anahtar kelimeleri kullanabilirsiniz.

Programın işleyişini anlatmak için örnekler yazalım.
~Q=config
satırı, başlangıçta hiçbir görünür penceresi olmayan HoeKey'in yapılandırma penceresini Win+Q kombinasyonuyla açmak için. config anahtar kelimesi özel bir komut. Sadece bu işi yapıyor. Örneğin Hesap Makinesini Win+C kombinasyonu ile açmak için
~C=Run|calc.exe
yazmak gerek. Run genel bir komut. Herhangi bir exe dosyasını çalıştırabilir. calc.exe, Run komutuna geçilmiş bir parametre. Parametre sayısı, exe duruma göre bir veya daha fazla olabilir.

Örneğin Windows Media Player kullanıyorsanız ve çalan şarkıyı Alt+Home tuş kombinasyonu ile duraklatmak istiyorsanız
@36=Msg|WMPlayerApp|793|0|917504
yazmalısınız. 36 Home tuşunun sanal tuş kodu (Virtual Key Code, bkz şu). Dolayısıyla tuş kombinasyonu Alt+Home oluyor. Eşittir işaretinden sonraki kısmını ise programın klasöründeki ConfigExamples.ini dosyasından aldım. Msg, bir programa Windows mesajı (bu "mesaj" programlamada kullanılan bir terim) göndermek için. WMPlayerApp ise Window Media Player'in Window Class'ı. ondan sonraki kısım ise program klasöründeki Hoekey.htm dosyasında belirtilen kodlar.

Örnek olarak kullanılabilecek birkaç kısayol:

~Q=Config
_~R=Reload
~F12=MsgBox|running!
_~A=AlwaysOnTop
~@T=Transparency

~N=Run|C:\notepad2.exe
~C=Run|calc.exe

~I=Run|http://www.google.com.tr
~S=Run|cmd.exe|||%c      ; Command shell in current directory3

^@36=Msg|WMPlayerApp|793|0|917504    ; WMP - Play/Pause
;    =Msg|QWidget|793|0|917504        ; VLC - Play/Pause
^@33=Msg|WMPlayerApp|793|0|786432    ; WMP - prev
;    =Msg|QWidget|793|0|786432        ; VLC - prev
^@34=Msg|WMPlayerApp|793|0|720896    ; WMP - next
;    =Msg|QWidget|793|0|720896        ; VLC - next
^@up=Msg|Progman|793|0|655360       ; win+up: vol up
^@down=Msg|Progman|793|0|589824     ; win+down: vol down
~ü=Msg|Progman|793|0|524288        ; Mute system sound

Start=TrayIcon|1|Hoekey is the thing!

_~@F1=Hide      ; hide the current window
_~@F2=Unhide    ; unhide the last hidden window
_~@F3=Apps      ; Shows the list of hidden applications

Sonuç olarak neredeyse herşey için bir kısayol tuşu tanımlamak mümkün.

19.10.2010

Kopyala ama üzerine yazma!

İki harici diskim var. Birinci diskte film arşivim var. Büyük boyutlu dosyalardan oluşun yüzlerce gigabyte büyüklüğünde bir klasör. Bu klasörün kopyasını ikinci diske almak istiyorum. Grafik arayüzle kopyala/yapıştır yaparken bir sebepten işlem yarım kalıyor. Yarım kalma teknik bir sorun sebebiyle olmuyor. İkinci diskte var olan dosyaların hepsi sağlam. Ama birinci diskte olup da ikinci diske kopyalanamamış birçok klasör ve dosya var. İşleme grafik arayüzü kullanarak tekrar baştan başlamak istemiyorum çünkü bu şekilde başarılı bir şekilde kopyalanmış dosyaların üzerine yazarak zaman kaybetmek istemiyorum. Bunu Windows'ta nasıl yaparız?

Komut satırından, xcopy komutunu kullanarak. Eğer isterseniz
xcopy /?
ile komut hakkında ayrıntılı bilgi alabilirsiniz.

İlk bakışta komut satırı anahtarlara bakınca sanki istediğimiz şey yokmuş gibi görünüyor. Örneğin /Y anahtarı sormadan var olan dosyaların üzerine sormadan yazmak için. /-Y anahtarı ise hedefta var olan bir dosyanın üzerine kopyalarken her seferinde sor demek. Ama /N tahmin edilenden uzak olarak kopyalanan dosyaların kısa isim formatında kopyalanması için. /-N gibi bir anahtar da yok.

Amacımıza uygun şekilde bir kaynak klasörü hedef klasöre kopyalayıp, hedefte var olan dosyaların üzerine yazmamak için komutumuz şu şekilde olur:
xcopy X:\arsiv Y:\arsiv /E /D
Burada X: sürücüsü eski diskimi (kaynak), Y: sürücüsü de yeni diskimi (hedef) gösteriyor. /E anahtarı boş olanlar dahil tüm alt klasörleri kopyalamayı, /D ise hedefte var olan bir dosyayla karşılaştığında sadece kaynak dosyanın tarihi hedef dosyanın tarihinden yeniyse üzerine yazmayı istediğimizi söylüyor.

Komut satırından kopyalamanın dezavantajı ise bir ilerleme çubuğu vs. olmadığından kopyalama işleminin ne kadar süreceğini bilememek.

29.09.2010

Account Lockout olaylarının takibi

Çoğu sistem yöneticisi, etki alanındaki (domain) hesapların şifrelerinin brute-force yöntemleriyle kırılmasını engellemek için account lockout yöntemini kullanır. Belli bir denemeden sonra hesap bir süreliğine yada kalıcı olarak kilitlenir. Bu sayede deneme\yanılma ile şifrelerin tahmin edilmesi beklenenden çok zaman alır. Bu da şifreyi kırmaya çalışan kişiyi engeller.

Ancak bazen istek dışı account lockout olayları da yaşanır. Şifresini unutan veya eski şifresini hala kullanmaya devam eden kullanıcılar, hesaplarını kilitlerler. Bazen de bu otomatik (Internet Explorer'da kayıtlı proxy şifresi) olur.

Her durumda account lockout olaylarının takip edilmesi güvenlik açısından faydalı olur. Account lockout hangi bilgisayardan yapılmış, daha önce kaç kere yanlış şifre girişi olmuş vs. bilgiler sistem yöneticisinin bilmesi gereken anahtar bilgilerdir. Ancak bu bilgileri System Event Log'undan toplamak, hele ki birden fazla etki alanı denetleyicisi (domain controller) varsa, zor bir iş olabilir. Eminim piyasada bu işin takibini yapacak çok yetenekli ticari yazılımlar vardır ama bunların lisans ücretlerini ödemek istemiyorum diyenler için basit bir çözümüm var.

İşin özeti şöyle: bir kullanıcı şifresini yanlış girdiğinde etki alanı denetleyicisi System Event Log'una 675 ve/veya 680 ID'li olaylar düşer. Daha önce belirlenmiş sayıda yanlış şifre girişi sonunda kullanıcının hesabı kilitlenir ve bu sefer de 644 ID'li olay düşer. Hesabın kilitli olduğu süre boyunca her girişte yine 680 ID'li olaylar düşer. Birden fazla etki alanı denetleyiciniz varsa, PDC emulator görevini üstlenen denetleyicinin System Event Log'unda 675 ID'li olay kaydında yer alan IP adresi, kullanıcı hesabının doğruluğunu denetleyen etki alanı denetleyicisinin (domain controller) adresi olabilir. Bu durumda bu denetleyicinin de System Event Log'una bakmalıyız. Burada göreceğimiz 675 ID'li olaylar, yanlış şifrenin girişinin yapıldığı bilgisayarın IP adresini verir. Amacımız bu olay kayıtlarını tüm etki alanı denetleyicileri üzerinde takip etmek.

Sysinternals Pstools paketinden psloglist.exe ile uzak bir/birkaç bilgisayardan event log'larını çekebiliriz. Örneğin
psloglist \\dc1,dc2,dc3 -h 10 -i 644,675,680 -s security > lockouts.txt
komutuyla dc1, dc2 ve dc3 adlı etki alanı denetleyicilerinin security event log'larından son 10 saat içindeki 644, 675 ve 680 numaralı olaylarını çekip mevcut klasörün içindeki lockouts.txt dosyasına yazabilirim. Bunu başka şekillerde de yapabilriz ama son 10 saatin security loglarından 3 farklı ID için, 3 farklı DC üzerinden bunu tek işlemde yapmak süper birşey! Elbette bu işi yapabilmek için Domain Controller Security Policy ile Failure Audit'in etkinleştirilmiş olması gerek.

Bunun sonucunda lockouts.txt dosyasını bir Spreadsheet programıyla (MS Excel, OpenOffice Calculator vs.) açıp ID'lere göre süzerek ayrıntılı fikir sahibi olabiliriz.

28.09.2010

Yavaş bilgisayarlara Lubuntu

Evde eski bir bilgisayarım vardı, P3 700 MHz işlemcili, 256+128 MB bellekli, 20 GB disk kapasiteli. Buna daha önce Windows 2000 kurmayı denemiş, bir çok yazılımın bu işletim sistemi ile uyumluluğunun kalmadığını farkettikten sonra Windows XP'ye geçmiş, ancak Windows XP'nin de bugünkü koşullara göre yüklenmiş halinin bu bilgisayara fazla geldiğini anlamıştım. Bir süredir bilgisayar yatıyordu.

Geçen gün aklıma Xubuntu ile birşeyler yapabileceğim geldi. Ubuntu'ya göre daha düşük sistem gereksinimlerine sahip bu dağıtım, benim istediğim şey olabilirdi. Ayrıca Windows 2000 hatta Windows XP'ye göre daha güncel bir işletim sistemiydi. Ancak bir süre sonra internette Adobe Flash Player tabanlı kullanım deneyiminin sonunda bunun tam olarak istediğim şey olmadığını farkettim. Bilgisayarım demek ki bayağı yavaş kalıyormuş.

Daha "hafif" bir dağıtım ararken yeni bir Ubuntu türevi keşfettim: Lubuntu! LXDE masaüstünü kullananan bu dağıtğım, tam aradığım şeydi. Üstelik Firefox yerine Chromium Browser varsayılan olarak geliyordu.

Biraz da dosya sistemi üzerinde araştırma yaptım. Ext4 yerine daha az kaynak tüketecek bir dosya sistemi ararken şu adreste güzel bir karşılaştırma buldum. Buna göre JFS dosya sistemi, bir çok teste göre benim kriterlerime uyuyordu. Ancak öntanımlı ayarlarmalarda Lubuntu kurulum ortamının JFS desteği yoktu. Bunun için kurulum aşamasında terminali açarak
sudo apt-get update
sudo apt-get install jfsutils
ile JFS desteğini yükledim. Bunu yapmadan devam edince diski JFS olarak formatlayamadım. Ancak bundan sonra kurulum işlemini tekrar başlatabildim.

Benim bilgisayarımla mı ilgiliydi, yoksa Lubuntu'nun bir sorunu muydu, bilemiyorum ama klaveye düzeni ile ilgili bir dizi sorun yaşadım. Örneğin Türkçe/Türkiye seçimini yaptıktan sonra tavsiye edilen klavye düzeni Türkçe Q-klavye olarak gelmesine rağmen klavyedeki Türkçe karakterlere basınca yine İngilizce klavye düzenine göre [,],; falan gibi karakterler çıkıyordu. Elle seçimi farklı bir düzene değiştirip, ardından tekrar Türkçe Q-klavyeye ayarlayınca sorun düzeldi. Birkaç kez de klavyedeki bazı tuşların çalışmadığını farkettim. Ancak tekrar başlatınca sorunlar kayboldu. Şu anda klavyem sorunsuz Türkçe Q üzeninde çalışyor.

Kurulum tamamlandıktan sonra
sudo apt-get update
sudo apt-get install flashplugin-installer
satırlarıyla önce repository'leri güncelledikten sonra Adobe Flash Player kurulumunu yaptım.

Kurulumlar tamamlandıktan sonra hiç ihtiyaç duymayacağım servisler olduğunu farkederek, kapatmanın yollarını aradım. Özellile bluetooth ve cups (yazdırma) servislerine ihtiyaç duymayacağım.

Önce mevcut runlevel'ı bulmak için şu komutu kullandım.
runlevel
Redhat'te X11'in çok kullanıcılı modunun değeri 5'ti. Burada da aynı değeri bulacağımı sanıyordum. Yanılmışım. Lubuntu'da 2 çıktı. Bunun üzerine
/etc/rc2.d
klasörünün içinde başında S harfi olan servisleri aradım. S25bluetooth ve S50cups'ı görerek şu komutlarla bunları devre dışı bıraktım. Bluetooth her ne kadar başlatılıyor gözükse de bilgisayarımda bluetooth olmadığından bu servis şu anda çalışmıyor görünüyordu. Ama kapatmanın açılış süremi kısaltacağını düşündüm.
sudo update-rc.d -f bluetooth remove
sudo update-rc.d -f cups remove
Bunlardan başkalarını (mesela cron, nfs vs.) kaldırmaya cesaret edemedim.


Şu anda herşey güzel çalışıyor.

23.08.2010

Web siteniz için Google Maps

Google hizmetlerini ne kadar sevdiğimiz söylememe gerek yok. E-posta sunucumu Gmail'e taşıdım. Bu blog  bir Google hizmeti. Bu blog'a giriş istatistiklerini de Google Analytics ile tutuyorum. Bunların hepsi ücretsiz. Bir de Google Maps var. Bunu da şirketinizin veya başka bir yerin tarifini yapmak için kullanabilirsiniz.

Elbette bir kroki çizebilir, veya Google Maps'e girerek PrintScreen ile ekran görüntüsünü yakalayıp bunu da kullanabilirsiniz. Ancak bu sabit resim, Google Maps'in etkileşimli harita hizmetlerinin yanında bir hiç. Örnek olarak Türkiye Büyük Millet Meclisi'nin tarifini yapabileceğim bir Google Maps haritası hazırlayacağım.

Önce Google Maps üzerinde TBMM'nin yerini ve koordinatlarını bulmalıyım. maps.google.com'a girip Türkiye Büyük Millet Meclisi'ni arattım. Sonuçta Google Maps TBMM'nin yerini buldu ve gösterdi. Harita üzerinde TBMM'nin alanında istediğim bir yeri sağ tıkladım ve menüden "What's Here?" komutunu verdim. Yeşil bir ok o noktanın koordinatlarını verdi. Yeşil oka bir kez daha tıklayarak minik açıklama balonundan UTM koordinatlarını kopyaladım. Örneğin TBMM'nin UTM koordinatları

39.909450, 32.849715

çıktı. Bunları not edelim, çünkü sayfamızdaki script'lerde kullanacağız.

Bundan sonraki adımlar şöyle. Önce <head> kısmına şunları ekledim.

<meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

Burada sensor=false, bir GPS alıcısının kullanılmadığını belirtiyor. Ancak benim sayfamda meta tagını doğrudan ekleme şansım yoktu. Bu yüzden javascript'i kullanarak şu şekilde yaptım:

<script type="text/javascript">
var objMeta;
if (document.createElement && (meta=document.createElement('meta')))
{
  meta.name="viewport";
  meta.content="initial-scale=1.0, user-scalable=no";

  document.getElementsByTagName("Head").item(0).appendChild(meta);
}
</script>

Bunun hemen altına initialize fonksiyonumuzu yerleştiriyoruz.

<script type="text/javascript"> 
function initialize() {
  var latlng = new google.maps.LatLng(39.909450, 32.849715);
  var settings = { 
   zoom: 13, 
   center: latlng,
   mapTypeControl: true,
   mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
   navigationControl: true,
   navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL}, 
   mapTypeId: google.maps.MapTypeId.ROADMAP
  };

Kısa bir açıklama. LatLng metoduna geçilen parametreler, daha önce bulduğum TBMM'nin UTM koordinatları. zoom sayısı ne kadar büyükse o kadar yakından bir görüntü oluşur. center ile latlng değişkeni ile verilen koordinatların haritanın ortasında olması sağlanıyor. mapTypeControl ile haritanın Map, Satellite, Hybrid, Terrain gibi seçimin yapılabilmesi için menünün gözükmesi ve DROPDOWN_MENU ile bunun aşağı açılan bir menü ile görüntülenmesi sağlanıyor. Varsayılan olarak ROADMAP seçilmiş, yani bu MapType olarak Map'e karşılık geliyor. Alternatif olarak SATELLITE, HYBRID, TERRAIN yapılabilir.

Bundan sonra map değişkenimizi oluşturabiliriz.

var map = new google.maps.Map(document.getElementById("map_canvas"), settings);
 
Bu noktaya kadar hala script tagımızı kapatmamıştık. Şimdi kapatacağız.

} </script>

Bundan sonra <body> içinde haritanın gözükmesini istediğimiz uygun bir yere <div> tagı yaratacağız.

<body onload="initialize()">
  <div id="map_canvas" style="width:800px; height:500px"></div> 
</body>

Elbette benim durumumda <body> tagına doğrudan erişimim yoktu (üst sayfası olan bir ASP kodu). Bu sebeple alt sayfadan body tagına erişmek için script kullandım. En basit yöntemle yukarıda initialize() fonksiyonunun tanımlamasının yapıldığı satırı şu şekilde değiştirdim:

window.onload=function initialize() {

Bu, body tagının onload özelliğini değiştirmeye eşdeğer.

Sıra geldi TBMM'nin logosunu yerleştirmeye. Google'da yaptığım resim aramasında şu TBMM logosunu buldum.

Bu logoyu biraz değiştirerek, şu şekilde kaydettim.



Benim oluşturduğum bu logonun kendiliğinden bir gölgesi var. Referans aldığım kaynakta gölgeyi ayrı bir resim olarak oluşturarak iki resmi haritaya eklemiş. Ben böyle yapmadım. Ayrıca logoya biraz şeffaflık kattım. Ardından şu satırlarla logoyu haritaya ekledim.

var TBMMLogo = new google.maps.MarkerImage('tbmm_logo.png', 
  new google.maps.Size(100,100),
  new google.maps.Point(0,0), 
  new google.maps.Point(87,165)
);
var TBMMPos = new google.maps.LatLng(39.909450, 32.849715);
var TBMMMarker = new google.maps.Marker({ 
  position: TBMMPos, 
  map: map,
  icon: TBMMLogo,
  title:"Türkiye Büyük Millet Meclisi"
});


Yukarıdaki script, resmin HTML dosyası ile aynı klasörde olduğunu varsayıyor. Buradaki
Size(244,167) resmimizin boyutlarını, Point'ler ise referans noktasını ve resmin haritada verdiğimiz koordinata denk gelecek pikselin koordinatlarını gösteriyor ki, bu da balonun en alt noktasına denk geliyor.

Eğer benim gibi üst sayfası olan bir ASP değil de düz bir HTML sayfası yaratıyor olsaydınız kodunuz şu şekilde olabilirdi:

<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
    <script type="text/javascript">
function initialize() {
   var latlng = new google.maps.LatLng(39.909450, 32.849715);
   var settings = {
      zoom: 13,
      center: latlng,
      mapTypeControl: true,
      mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
      navigationControl: true,
      navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL},
      mapTypeId: google.maps.MapTypeId.ROADMAP
   };

   var map = new google.maps.Map(document.getElementById("map_canvas"), settings);

   var TBMMPos = new google.maps.LatLng(39.909450, 32.849715);

   var TBMMLogo = new google.maps.MarkerImage('tbmm_logo.png',
      new google.maps.Size(244,167),
      new google.maps.Point(0,0),
      new google.maps.Point(87,165)
   );

   var TBMMMarker = new google.maps.Marker({
      position: TBMMPos,
      map: map,
      icon: TBMMLogo,
      title:"Türkiye Büyük Millet Meclisi"
   });
}
    </script>
  </head>
  <body onload="initialize()">
    <div id="map_canvas" style="width:800px; height:500px"></div>
  </body>
</html>

ve sayfanın görünüşü şu şekilde olurdu:


Referans : http://stiern.com/tutorials/adding-custom-google-maps-to-your-website#download

2.08.2010

Windows 7, Vista'yı geçti

Neowin.net'te yayınlanan bir yazıya göre, Windows 7'nin pazar payı, Vista'yı geçti.



Vista'nın hakkındaki olumsuz genel kanı yüzünden zor günler geçiren Microsoft, Windows 7'yi çıkarmak için çok beklemedi. 2001 yılında çıkan Windows XP hala çok popüler. 2006 yılında çıkan Windows Vista'nın Windows XP'nin pazar payını yakalaması hiçbir zaman söz konusu olmadı. Ama 2009 yılında çıkan Windows 7, Ağustos 2010 StatCounter rakamlarına göre Windows Vista'nın pazar payını yakalamış görünüyor. Windows XP ile arasında ise hala ciddi bir fark var. Elbette uygulama uyumluluğu ve benzeri konularda Windows XP'nin avantajlı durumu hala devam ediyor.

30.07.2010

Sanoodi.com

Cep telefonumda GPS özelliği var. Beni Ovi Maps veya Google Maps aracılığıyla yönlendirebiliyor. Gittiğim yerleri harita üzerinde işaretleyebiliyorum. Ama bir yolculuk sırasında nerelerden geçtiğimi kaydedemiyorum.

Eğer yürüyüş, koşu veya bisiklet gibi zevkleriniz varsa Sanoodi.com ilginizi çekebilir. Site tek başına da yeterince işlevsel. Coğrafi olarak sizinle benzer hobilere sahip kişileri bulabilir, yeni rotalar oluşturabilirsiniz. Ama Sanoodi'nin asıl güzelliği GPS özellikli telefonlara yüklenebilen SMap yazılımında. SMap, Symbian, iPhone, Windows Mobile ve Blackberry üzerine yüklenebilen sürümlere sahip. Yani üzerinde GPS olan telefonların neredeyse hepsine yüklenebilecek birşey.

Önce siteye girerek sağ üst köşeden "join" bağlantısını tıklayarak bu nadide topluluğa katıldım. Bir kullanıcı adı ve şifrem oldu. Burada hangi kullanıcı adı ve şifreyi seçtiğiniz önemli, çünkü bunu telefonunuzda da kullanacaksınız. Benim gibi karışık bir şifre seçip sonra o şifreyi 9 tuşun kombinasyonlarıyla yazmak zorunda kalabilirsiniz. Çok basit bir şifre de seçmeyin, çünkü kolay tahmin edilebilir şifreler sanal dünyada başınıza tahmin edilemeyecek dertler açabilir (hatta açar).


Neyse, bir sonraki adımda yine sayfanın sağ üst köşesindeki "Go Mobile" menüsünün altından telefon platformunuzu seçin. Benimki S60 olduğundan ben onu seçtim. Açılan sayfanın sol alt köşesinde "Download SMap" bağlantısı vardı. İsterseniz bu bağlantıyı bilgisayarınızdan tıklayıp sis dosyasını bilgisayarınıza indirip, daha sonra onu hafıza kartınıza atabilirsiniz. Ya da Nokia PC Suite ile bu yazılımı USB üzerinden telefonunuza kurabilirsiniz. Ama ben doğrudan cep telefonumdan www.sanoodi.com/gomobile/nokia-s60/ sitesine giderek sis dosyasını telefonumdan indirdim. Bu yöntemi diğer platformlarda da sorunsuz olarak uygulayabileceğinizi düşünüyorum.


sis dosyasının telefona kurulumunu tamamladıktan sonra "Create new user" ile kullanıcı yaratıp (ki bu kullanıcı adı ve şifre web sitesinde yaratılanla aynı olmak zorunda) kullanmaya başlayabilirsiniz.

Programa her girişte kullanıcı adı ve şifre istiyor. Birden fazla kullanıcı ile giriş yapmak mümkün (Elbette hepsinin web sitesinde yaratılmış hesapları olması gerek. Rotalarınızı sanoodi.com'a upload etmek yerine başka bir yerde kullanmak istiyorsanız buna gerek yok tabi). Giriş sonrasında 3 komutlu bir menü karşılayacak. Record Route ile yeni bir rota yaratıp kaydetmeye başlayabilirsiniz. Challenge'ı şimdilik atlıyorum, çünkü S60 platformu henüz desteklenmiyor. Show Routes ile de daha önce kaydettiğiniz rotaları görüntüleyebilirsiniz. Rotanızı kaydettikten sonra Sanoodi'nin web sunucusuna upload etmeniz gerek. İlk upload sırasında, daha önce yapmadıysanız hesabınızı doğrulamanız istenecek. Kullanıcı adı ve şifrenizin web sitesinde yaratılanla eşit olması gerekliliği burada önem kazanıyor. Upload edilen rotalar Sanoodi sitesinden görüntülenebilir.



Dikkat edilmesi gereken bir nokta da yeni yaratılan rotaya verilecek isim. Türkçe karakter kullanmaktan kaçının. Kullandığım 1.1.1 sürümde yaşadığım bazı sorunların Türkçe karakterlerle ilgili olduğunu düşünüyorum. SMap'in "Show Routes" kısmı hiç açılmıyordu, hata mesajı falan da vermiyordu. Böyle bir durumda hafıza kartıma kurduğum SMap'in /Sanoodi adlı klasöründeki SMap.db.e32dbm dosyasını silip, SMap'in bir sonraki açılısında bu dosyanın yeniden yaratılmasını sağlyarak tüm ayarları sıfırladım. Ancak bu, upload veya export edilmemiş rotaların da kaybolması demek. Bunun yerine ben bu dosyayı bir şekilde (!) açıp, içinden GPS verilerini elle çıkartıp daha sonra da tüm ayarları sıfırlamayı seçtim. Kesinlikle kolay bir yol değildi :)

Bundan sonraki adımda sizin rotanız da Google Maps veya benzer bir altyapı üzerinde işaretlenecek. Sizinle aynı hobiye sahip kişiler sizin rotalarınızı görerek iletişime geçmek isteyebilir, ya da siz böyle bir girişimde bulunabilirsiniz.

Eğer rotalarınızı Sanoodi.com'un üzerinde yayınlamayı değil de sadece kaydettiğiniz GPS verilerini kullanmayı düşünüyorsanız cep telefonunuz üzerinde yarattığınız kullanıcının web sitesinde yarattığınız kullanıcı adı ve şifre ile eşleşmesine gerek yok. Kaydettiğiniz verileri upload etme niyetiniz olmadığı sürece offline çalışarak, rotanızı popüler formatlara (GPX ve KML) export edip daha sonra bilgisayarınıza aktarabilirsiniz. Sonrası size kalmış.

Bütün bunların ücretsiz olduğunu söylersek bu iş daha da çekici olur herhalde.

NOT: Benzer bir işi Google Maps ile de yapabilirsiniz. Eğer elinizde GPS veriniz varsa (ki bunu da SMap ile kaydedebilirsiniz) veya rotanızı elle çizmek istiyorsanız Google Maps'te oturum açıp Haritalarım'a tıklamanız yeterli.
Tur öncesi bir planlama yapmak içinse www.mapmyfitness.com sitesi çok faydalı bir site.