Sunday, January 25, 2009

Ubuntu ve Media Dosyalari

Windows'dan Ubuntu'ya gecis yaptiysaniz ve ASF, VMW tipinde eski video dosyalari var ise, bunlari Ubuntu'da calmak icin once VLC Player, MPlayer programlarini sudo apt-get uzerinden kurmak iyi fikir... Bazi inatci ASF dosyalari hala direniyorlarsa, o zaman suradaki tavsiyeleri takip edilebilir;
wget -c http://packages.medibuntu.org/pool/non-free/w/w32codecs/w32codecs_20071007-0medibuntu2_i386.deb
sudo dpkg -i w32codecs_20071007-0medibuntu2_i386.deb
Ustteki komutlardan sonra MPlayer asf dosyalarini caliyor.

Saturday, January 17, 2009

IE ve Firefox Farklari

Web sitemizi kodlarken sayfalarimizin hem Firefox hem Internet Explorer'da duzgun ciktigini projenin basindan itibaren kontrol etmemiz gerekiyor. Bu iki tarayici arasinda farkliliklar var, ve birinde duzgun cikan CSS digerinde duzgun cikmayabiliyor.

Peki farkliliklari nasil onaracagiz? Burada guzel bir numara kullanilabilir; Bu numara dahilinde CSS/HTML sayfalar bir tarayici icin yazilir, ve farklar bir "yama" gibi ikinci bir css dosyasi icinde onarilir. Bu nasil mumkun oluyor? Soyle: 1) Eger gorsel elementleri "stilleyen" ayni id ve class ismi ikinci bir CSS (hatta ayni CSS dosyasi icinde ikinci kez) geciyorsa, her zaman daha "sonra" gelen ustunluk kazanir - onun degerleri bir oncekini ezer. 2) Cogunlukla bir Web sitesinin sayfalarinin IE ve Firefox farklarini onarmak icin CSS'te "bastan asagi" bir onarim gerekmez. Sadece bir blogun birkac elementinin ezilmesi yeterli olur. O zaman alttaki gibi bir kullanim mumkun olabilir. Dikkat edelim: Once Firefox icin kodlamisiz, sonra IE icin duzeltilmesi gerekenleri ikinci bir dosya ile ezmisiz. Burada sorulabilir: Niye once Firefox? Cunku FF
standartlari tam takip ediyor, o zaman onu merkez alarak kodlamak daha mantikli olur.

<html>
<head>
<title>...</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="ie.css" />
<![endif]-->
</head>

Ustteki kodda, ie.css adli sayfa [if IE] blogu icine alinmis, tum tarayicilar bu komutun anlamini biliyorlar - o blok sadece IE tarayicilari icin isletiliyor. Bu dosya icinde yama icin gereken tum ekler koyuluyor. Ornek olarak style.css sunlari iceriyor olsun;

#top {
position: absolute;
background: url(./img/headers/header_bg2.gif) repeat-x fixed top left;
left: 0;
top:0;
height: 150px;
width: 90%;
}
Ve ie.css sunlari iceriyor olsun;

#top {
width: 100%;
}
Bu durumda IE icin #top id'si icindeki tum degerler ayni olacak, sadece width degiskeni ezilerek yeni 100% degerine set edilecektir.

Friday, January 16, 2009

Ubuntu 8 ve IE Kullanimi

Web sayfalarini HTML,CSS,Javascript ile kodlarken, dikkat edilmesi gereken bir husus, kodlarin en az iki, Firefox, IE tarayicilari uzerinde test edilmesidir. Biz gelistirmeyi bir Ubuntu makinasinda yaptigimiz icin sayfa testlerini Firefox ile yapiyoruz; IE ile test etmek icin Linux uzerinde Windows programlarini isletmemizi saglayan Wine'i kullandik. Ubuntu 8'de Wine kurulmus olarak gelecek, bunun ustune IE kurmak icin suradaki yaziyi takip edebilirsiniz; "Install wine and cabextract" basligindan itibaren.

Wednesday, January 7, 2009

Fakir Adamin HTML Include Teknigi

Prototip sayfalar kodlarken, yani duz HTML uzerinden, Web servisi olmadan calisirken, bir sekilde bir HTML'den otekini dahil etmek gerekebiliyor. Ne yazik ki servis isliyor olmadan bunu yapmanin direk bir yolu yok; Biz de bir Perl script ile dahil etme isini kendimiz yapmaya karar verdik. Bizim sectigimiz komut, #include "dosya.html" komutu. Bu komutu direk HTML icine koyuyorsunuz, sonra Perl scripti isletiyorsunuz. Script dizinde gordugu tum HTML dosyalarini isliyor, include ibaresi yerine o include'un belirttigi dosyalarin icerigini koyuyor. Sonuclar output adinda ikinci bir dizinin altinda yaziliyor. Script soyle;

foreach $file (<*.html>) {
print "$file\n";
open IN, $file;
open OUT, ">./output/$file";
undef $/;
$content = <IN>;

while ($content =~ m/#include \"(.*?)\"/sg) {
open INN, "$1";
undef $/;
$other = <INN>;
$content =~ s/#include \"$1\"/$other/g;
}

print OUT $content;

close IN;
close OUT;
}