Firefox ve Eklentileri

İstatistiklerden gördüğüm kadarı ile internet explorer kullanımı halen daha yaygın, fakat işiniz web tasarımı, uygulama geliştirmek ise firefox kullanmanızı şiddetle öneriyorum, eğer halen bu işlerle uğraşıpda kullanmıyorsanız kesinlikle çok şey kaçırıyorsunuz.

Firefox sahip olduğu eklenti özelliği sayesinde, başka geliştiricilere kod yazmaya imkan veriyor. Bu da internet’teki hemen hemen her iş için bir eklenti olması anlamına geliyor, çünkü sizin ihtiyaçlarınız mutlaka bir başkasının ihtiyaçları ile örtüşüyor. Böylece Firefox Microsoft gibi belirli sayıda yazılımcıya sahip bir firmanın asla yetişemeyeceği bir işlev bolluğuna sahip. Tabiki nerde çokluk orada çeşitlilik ilkesi gereği olayı abartmamak gerekiyor, aksi takdirde bu eklentilerin faydası yanında Firefox bir ram canavarına dönüşebiliyor.

Geçmişi düşündüğümde bu yukarıda yazdıklarıma hayret ediyorum, çok değil 4,5 sene önce explorer benim her işimi görüyor niye Firefox kullanayım ki diyordum, üstelik o yıllarda sitelerin görüntülenme problemleri daha fazla idi, halen farklı görüntüleme problemleri oluyor fakat eskiye oranla çok az.

Konumuza dönüp uzatmaz isem eklentiler elim, kolum gibi bir şey oldu, firefox kurar kurmaz ilk yaptığım şey sık kullandığım eklentileri yüklemek.

Sık kullandığım birkaçını kısaca tanıtarak biraz daha reklam yapmak istiyorum.

– ColorZilla
Bu eklenti ile web sayfasında kullanılan renk bilgilerini alabiliyorsunuz.

– Firebug
Bunu anlatmaya ömrüm yetmez, kısaca web sayfasının röntgenini çeker ve üzerinde oynamanıza izin verir.

– IE Tab
Başlangıçta ve sonraları explorerda sayfa nasıl görünüyor diye test etmeye ihtiyacınız olabilir, yani kısaca eski tarayıcınızı yeni bir tabda açar.

– LoremIpsum Content Generator
Tasarımcıların sık kullandığı “Lorem Ipsum…” sözlerinden üretir.

– MeasureIt
Bu bir cetvel, milimetrik çalışmak isteyenler için.

– Mouse Gestures
Mouse hareketleri ile tarayıcıyı kontrol etmenize izin verir.

– Sage
Basit bir rss, atom okuyucu. Stil desteği ile göze güzel gözükmesini sağlayabiliyorsunuz.

– ScrapBook
Sayfaları arşivlemenize izin verir, üstelik farklı kaydet diyerek alamayacağınız şeyleride alır.

– Screen grab!
Bir sayfayı resim olarak kaydedebilirsiniz, ekran görüntüsü almak gibi değil, sayfanın görünmeyen kısımlarınıda alabilir.

– Server Spy
Bu sayfanın bulunduğu sunucunun ne tür bir sunucu(Apache,IIS) olduğu gösterir. Bu bilgiyi sunucu tarayıcıya verir, o yüzden değiştirilebilir bir bilgidir.

– Tamper Data
Sayfanın başlık bilgilerini görüp değiştirmenize izin verir.

– TimeStamp Converter
Tarihleri ve zaman damgalarını birbirine çevirir.

– Web Developer
Bir başka anlatmaya ömrün yetmeyeceği eklenti, Firebug ve Web Developer olmasaydı ne yapardım bilmiyorum.

http://www.mozilla-europe.org/tr/
http://www.mozilla.com/
https://addons.mozilla.org/en-US/firefox/

Aikido – Rahatlamak Önemli

Bu iş, yani yazılım işi çok stresli, çoğu zaman başkasının çözemediği ya da uğraşmak istemediği bir problemi getirip kucağınıza verirler, diğer bir tabirle kitlerler, ve sizden belirli bir sürede çözmenizi isterler.

Programcının asıl yeteneği problemler karşısında nasıl bir tavır takındığı ile ortaya çıkıyor. Programcılar problemleri nasıl çözer bakalım.

– Bir kısmı hemen ustasını arar ve çözümü öğrenir, itiraf etmek gerekirse en kolayı budur, fakat bir müddet sonra ustanız telefonlara çıkmamaya başlar.
– Bazıları hemen üye oldukları forumlarda, gruplarda konu açar, yardım ister.
– Yeterince zeki olanlar internette araştırma yaparlar, benzer problemi birileri başka bir yerde çözmüş olabilir.
– Çok zeki olanlar oturur probleme kendileri bir çözüm geliştirir.
– Aşmış olanlar problemi çözmez kendi haline bırakırlar, problemin çözümü zaman içerisinde kendiliğinden gelir.

Açık söylemek gerekirse bunların hepsini yaşadım. Hepsinin kendi içinde avantajları ve dezavantajları var. Yazmak istediğim asıl şey problem çözülemediğinde olanlar, diğerleri ne yapıyor bilmiyorum ama ben başlangıçta yemeden, içmeden kesiliyordum. Aklım probleme öyle bir takılıyordu ki uyuyamıyor, sürekli problemin etrafında dolanıp duruyordum. Bu arada çoğu zaman problemden uzaklaşınca çözümü bulduğum oldu, etrafta mal mal dolanan bir programcı görürseniz onun çalışmadığını zannetmeyin.

Bu oluşan stresle başa çıkmak için rahatlamak çok önemli, bir programcıya asıl öğretilmesi gereken bütün o kod, mantık yığınlarından önce nasıl rahatlayabileceği. Birçoğunun hobilerinin olması bu yüzdendir, dikkat edin yazılım işi ile uğraşanların çoğunun bir hobisi vardır, herhalde olmayanlar da sigara içerek rahatlıyorlar diye düşünüyorum. Ben de hobisi olmayanlar içinde idim fakat son 1,2 yıldır kendi rahatlama yöntemimi buldum, üstelik şans eseri, o zamandan beri eskisi kadar stresli değilim artık.

Benim yöntemin adı aikido, dojoda 1 saat boyunca ne problem kalıyor ne başka birşey, öyle ki uyuşturucu ya da alkol gibi bünyede bağımlılık etkisi yaratıyor. Bütün düşünebildiğiniz aynı hareketi milyonuncu defa da olsa düzgün yapabilmek, sağlığa faydaları da cabası. İlkin seyretmeye gittiğimde çok fazla el, kol ile uğraşıyorlar diye düşünerek başlamaktan çekinmiştim, kırık bir parmak ile kod yazamazdım herhalde, fakat düşündüğüm kadar riskli ve korkutucu değilmiş.

Aslında çalıştığınız yer ve kişiler çok önemli, ehil olmayan ellere kendinizi teslim etmeyin. Ben şanslıydım daha önce hiç araştırma yapmadığım halde iyi yere ve hocalara düştüm.

Aikido’nun diğer yararlarını uzun uzun anlatmak istiyorum fakat anlatmak ile bitmeyeceği için arasıra yazmak en güzeli, hem yine çok uzattım, ne diyordum? Rahatlamak çok önemli. Umarım kendi yönteminizi bulursunuz.

PHP MySQL Bağlantısı

Soru: PHP ile MySQL bağlantısı yaparken kaç kez bağlantı açmak gerekiyor?

Cevap: Database sayısı kadar yani 1 database varsa 1 bağlantı üzerinden her işinizi görebilirsiniz.

Başkalarının kodlarını incelerken sıklıkla gördüğüm; fonksiyon içlerinde ya da ayri dosyalarda ne zaman bir database bağlantısına ihtiyaç olsa hemen mysql_connect fonksiyonun çağrılması ve database bağlantısı açılması. Evet, kesinlikle iş görüyor, fakat olması gereken bu mudur? Ne gibi sakıncaları vardır?

1. Konfigürasyonun zorlaşması: Scriptte bir değişlik yapmanız gerekiyor; farz edelim mysql username değişti, ne yapmalısınız? Bağlantı yaptığınız her yerde username’i değiştirmelisiniz. Bunun için bir fonksiyon yazdınız ise nispeten şanlısınız sadece fonksiyonun içinde değiştirmeniz sizi bundan kurtaracaktır ya da bağlantı parametrelerini değişkenlere yüklendiniz ise sadece bunları değiştireceksiniz.

2. Kaynakları boşa harcama: Diyelim ki fonksiyon yazdınız, fakat bunu her ihtiyacınız olduğunda çağırarak tekrar bağlantı açılmasına neden oluyorsunuz bu da size zaman ve kaynak kaybı olarak geri dönecektir. Yani bir bağlantı harcadığınızda 1ms geçiyorsa 10 bağlantı için 10 ms geçecektir. Neyse ki php coderlari bunu düşünmüş ve kazın ayağı tam olarak böyle değil, bağlantı açıldığında eğer daha önce aynı parametreler ile bir bağlantı açılmışsa php yeni bir bağlantı açmayacak ve var olan bağlantıyı kullanacaktır, fakat bu durumda da mysql_select_db icin halen bir kayıp söz konusu. Aynı zamanda mysql_close yapıyorsanız veya bağlantı açarken link_identifier belirti iseniz. php yeni bağlantılar açacaktır yani yukarda verdiğim 1’e 10’luk örnek geçerli olacaktır. Bu kayiplar ms’ler mertebelerinde olduğu için pek önemsenmez. Döngü içinde 10.000, 100.000, 1 milyon bağlantı açıyorsanız bu ms’ler önem kazanmaya başlar, tabiki bu durumda kod yazarlığınızdan şüphe etme vakti gelmiştir.

Kod yazarken olabildiğince kodu tek bir noktada toplamaya çalışmalısınız, mesela bir bağlantı fonksiyonu yazdınız, bu fonksiyonu header.php, init.php gibi tek bir dosyada bir kez çağırdınız. Bu sizi her scriptinizde find/replace yapmaktan kurtaracaktır aynı zamanda bir (1) kez çağırmış ve yazmış olacaksınız.

Gmail Sınırsız E-posta Adresi

Gmail e-posta hesabınız varsa, sınırsız sayıda e-posta adresine sahip olduğunuzu biliyor musunuz? İşi web ile ilgili olan çoğu kişi bunu şimdiye kadar öğrenmiştir, yani çoğu kişinin bildiği bir şey yazıyorum. Neyse önce konuyu anlatayım daha sonra ahkam keserim neden yazdığım ile ilgili.

Konu gmail adresinizin sonuna + ekleyerek sınırsız sayıda farklı e-posta adresi oluşturabilirsiniz. Mesela eposta adresinizin tarkan.tevetoglu@gmail.com olduğunu varsayar isek, tarkan.tevetoglu+fans@gmail.com eposta hesabına gönderilen maillerde tarkan.tevetoglu@gmail.com adresine teslim edilecektir. Sizin ayrıca birşey tanımlamanıza ya da yapmanıza gerek yok bu şekilde sınırsız adres kullanabilirsiniz. Okuduğum kadarı ile noktanın da benzer bir etkisi var fakat tam olarak bu şekilde kullanılamaz.

Gmail hesabınızda etiketler(label) oluşturarak bu mail adresine gönderilen iletilerin
otomatik olarak kategorilendirilmesini de sağlayabilirsiniz. Mesela farklı e-posta bültenlerine üye olduğunuzu varsayalim, tarkan.tevetoglu+hurriyet_haber@gmail.com diyerek hürriyet haber sitesi üyeliklerinden gelen, tarkan.tevetoglu+n11_alisveris@gmail.com diyerek de n11 alisveriş sitesinden gelen iletilerin otomatik olarak kategorilendirilmesini sağlayabilirsiniz.

Evet konu bu, bunu çok uzun zaman önce bir yerlerde okumuştum, şimdi neden yazmak ihtiyacı duyduğumu anlatayım. İşimiz yüzünden çok hızlı bir şekilde geziyoruz, okuyoruz. Bunu o kadar çok yapıyoruz ki artık okuduklarımızın kendi problemlerimizi çözebileceğini bile görmüyoruz. Çok uzun zaman önce okumuştum, iyi güzel kullanırız deyip geçmiştim.

Problemim agaclar.net’in kod yazarlarından biri olmam sebebi ile testler için farklı üyeliklere ihtiyacım olması idi. vbulletin.com/forum üye olurken verilen mail adreslerinin daha önceden tanımlı olup olmadığına bakıyor ve eğer bu mail adresi forumda tanımlı ise bir üyelik açılmasına izin vermiyordu. Sonuçta 2/3 tane mail adresim var, onları da kullanınca artık gidip oluşturduğum üyeliği silmek ya da başka birilerinden rica etmek gerekiyordu. Okunan bir bilgiyi başka bir yerde kullanmak aklımın ucundan neden geçmiyordu acaba? Sanırım tez zamanda etkin okuma kurslarına kaydımı yaptırmam gerekiyor.

Neyse fazla uzattım ki, sevdiğim bir şey değildir, artık sınırsız e-posta adresim var. Okuduğum yorumlar web sitelerinin email adresinde + işaretini kabul etmediğini söylüyor. biz agaclar.net’de kabul ediyoruz, sizi de bekleriz. Bu arada Tarkan hakkında bilgi arayanlardan özür dilerim, aşağıdaki linkler yardımcı olur umarım.

http://www.tarkan.com/
http://tr.wikipedia.org/wiki/Tarkan_Tevetoğlu
http://www.google.com/search?as_q=tarkan+teveto%C4%9Flu&hl=tr&rls=en&num=10

İlgili linkler
http://labnol.blogspot.com/2006/09/gmail-easter-eggs-dot-blindess-email.html
http://mail.google.com/support/bin/answer.py?ctx=%67mail&hl=en&answer=10313

PHP Versiyon 1 Duyurusu

Rasmus Lerdorf c ile yazdığı ilk php versiyonu 8 Haziran 1995 tarihinde comp.infosystems.www.authoring.cgi usenet haber listesinde duyurmuş.

php 1.0 özellikleri kısaca

. Log Dosyaları tutma/izleme
. Günlük ve toplam erişim sayaçları
. Bağlananları banlama
. Şifre korumalı sayfalar
. Erişimler izleme
. Server side include’lar, server desteklemese bile
. Web formları oluşturma

şeklinde. Rasmus Lerdorf php’yi GNU lisansı altında yayınlamasaydı, ben ne iş yapıyor olurdum diye merak ettim. Birilerinin verdiği karar, hayatımızı nasıl etkiliyor. Herhalde kendisi bu kadar büyüyeceğini, yayılacağını düşünmemiştir, sonradan katkıda bulunanların etkisi de en az onunki kadar büyük.

Aşağıda tam duyuru ve duyuruyu aldığım yerin linki bulunuyor.

These tools are a set of small tight cgi binaries written in C.
They perform a number of functions including:

. Logging accesses to your pages in your own private log files
. Real-time viewing of log information
. Providing a nice interface to this log information
. Displaying last access information right on your pages
. Full daily and total access counters
. Banning access to users based on their domain
. Password protecting pages based on users’ domains
. Tracking accesses ** based on users’ e-mail addresses **
. Tracking referring URL’s – HTTP_REFERER support
. Performing server-side includes without needing server support for it
. Ability to not log accesses from certain domains (ie. your own)
. Easily create and display forms
. Ability to use form information in following documents

Here is what you don’t need to use these tools:

. You do not need root access – install in your ~/public_html dir
. You do not need server-side includes enabled in your server
. You do not need access to Perl or Tcl or any other script interpreter
. You do not need access to the httpd log files

The only requirement for these tools to work is that you have
the ability to execute your own cgi programs. Ask your system
administrator if you are not sure what this means.

The tools also allow you to implement a guestbook or any other
form that needs to write information and display it to users
later in about 2 minutes.

The tools are in the public domain distributed under the GNU
Public License. Yes, that means they are free!

For a complete demonstration of these tools, point your browser
at: http://www.io.org/~rasmus


Rasmus Lerdorf
ras…@io.org
http://www.io.org/~rasmus

http://groups.google.com/group/comp.infosystems.www.authoring.cgi/msg/cc7d43454d64d133

Web Tasarımında Renk Araçları

Tasarımda kullanacağınız renkleri seçmekte zorlanıyorsanız veya benim gibi 2 rengi bir araya getiremeyen bir kod yazarı iseniz bu araçlar size yardımcı olabilir.

Normalde olması gereken kod yazarına tasarımların gelmesi ve onun kodları tasarımlara entegre etmesidir. Burada bir parantez açarak tasarımcılara hayran olduğumu söylemeliyim, nasıl oluyor da güzel ve birbiri ile uyumlu sayfalar hazırlayabiliyorlar aklım almıyor. Neyse, olması gerekenin dışında çoğu zaman kod yazarları da renk seçmek zorunda kalıyorlar. Özellikle yönetim panellerinin müşteriye güzel gözükmesi gerekiyor, aksi takdirde “şuraya resim koyalım”, “biraz daha canlı birşeyler yapsana”, “fazla basit olmuş” gibi sinir edici yorumlar gelebiliyor. Öte yandan çalışırken yönetim panelinin güzel gözükmesi çalışma şevkini arttırıyor.

Aşağıdaki yardımcı araçların çoğu tarayıcı üzerinden çalışıyor, bunları kaydedip kendi bilgisayarınızdan çalışabilirsiniz, bazılarlını indirip kurmanız gerekiyor. Bu araçlar size süper tasarımlar yaptırmayacak fakat 2 rengi güzel bir biçimde bir araya getirebileceksiniz.

Renk Seçiciler
Iconico ColorPic
Color Schemer Color Pix
ColorZilla Firefox eklentisi
Nattyware Pixie
Colorjack DHTML Color Picker

Uyumlu Renk Üreticiler
http://www.colorschemer.com
http://hlrnet.com/colormatch
http://www.wellstyled.com/tools/colorscheme2/index-en.html
http://www.dhtmlgoodies.com/scripts/color-schemer/color-schemer.html
http://www.rentadabo.nl/colorschemer.htm
http://www.colorjack.com
http://www.defencemechanism.com/color/
http://www.limov.com/colour/schemes.lml
http://dev.sessions.edu/ilu/ilu_1.html
http://www.easyrgb.com
http://www.themaninblue.com/experiment/Technicolor/

Karıştırıcılar
http://meyerweb.com/eric/tools/color-blend/
http://www.colormixers.com/mixers/cmr/
http://colorblender.com
http://www.telecable.es/personales/alberto9/color/index.htm

Renk Paletleri, Renk Sevici Web Siteleri
http://www.colourlovers.com
http://pourpre.com/colordb/
http://www.visibone.com/colorlab/
http://beta.dailycolorscheme.com
http://www.december.com/html/spec/colorshades.html
http://kuler.adobe.com
http://www.colorjack.com
http://slayeroffice.com/tools/color_palette/

Fotoğrafdan Renk Paleti Üreteçleri
http://www.degraeve.com/color-palette/index.php
http://jrm.cc/color-palette-generator/
http://www.colorhunter.com

Renkler Hakkında
Türkçe
http://tr.wikipedia.org/wiki/Web_renkleri
http://www.fotografya.gen.tr/cnd/index.php?id=225,0,0,1,0,0
http://www.gaxxi.com/buzz/yazi/renkler-1
İngilizce
http://www.d.umn.edu/itss/support/Training/Online/webdesign/color.html
http://en.wikipedia.org/wiki/Web_colors
http://en.wikipedia.org/wiki/List_of_colors
http://del.icio.us/tag/color

Kaynaklar
http://www.bildirgec.org/yazi/css-renk-paletleri
http://www.furilo.com/archivos/recursos-de-color/
http://ceyhunaksan.com/tasarimda-uyumlu-renk-kullanmak/

Türkü Algoritması

Programcı adam sıkılırsa türkü algoritması yazar herhalde, bir arkadaşım bana türkü algoritması linkini gönderdiğinde güldüm biraz.

Bugün aynısını Python ile yazayım dedim.

PHP


<?php

for ($i = 1; $i <= 14; $i++)
 {
   if (!(($i > 4) && ($i <14))) {
     printf("%d mumdur\n", $i);
   }
 }

printf("Bana bir bade doldur\n");
printf("Bu ne güzel düğündür, ");

for ($i = 1; $i <= 3; $i++)
 {
   printf("Ha ninnah ");
   if ($i != 2) printf("\n");
 }

?>

Python

-*- coding: utf-8 -*-

print "".join(["%s mumdur\n" % d for d in range(1,5)]+['14 mumdur'])
print "Bana bir bade doldur"
print "Bu ne güzel düğündür, Ha ninnah"
print "Ha ninnah " * 2

Not 1: Php algoritmasında basit bir hata vardı ya da yapılmak istenen başka bir şeydi...
Not 2: Python mu döver, PHP mi döver tartışmasına gireni kovalarım.

Forum Çöplüğü

İnternetin ilk zamanlarında kişisel sayfalar vardı. Bu işlere biraz yatkın olanlar ücretsiz alan sağlayan (geocities,freeservers,8m) sitelerde kişisel sayfalar açıyordu. Benim de böyle bir sayfam vardı geocities’de.

Aslında o yıllarda kişisel siteleride çöplük olarak değerlendirenler vardı ama ben seviyordum, çünkü insanlar ilgili oldukları konularda kendince birşeyler yapıp, fikirlerini paylaşabiliyorlardı ve özgürdüler (şu aralar geocities yasaklı 5 Eylül 2008). Geocities’de yaptığım sayfaya yorum geldiğinde yaptıklarım birilerine ulaştı diye ne kadar sevinmiştim. Neyse konunun özü insanlar birşeyler üretiyorlardı, bu yüzden şu an blogları daha çok seviyorum, bir yerde o kişisel sitelerin devamı benim için.

Şimdilerde bir şey arıyorum ve yüzlerce, binlerce birbirinin kopyası forum sitesi çıkıyor karşıma. Birileri altına hucum gibi forum sitesi açıp duruyor herhalde ve aynı içeriği siteden siteye kopyalıyor ya da bu içerikler biryerlerde hazır duruyor hepsi kendi sitesine koyuyor. İçeriğinde bir sürü reklam ve işe yaramaz linkler, hatta linki görebilmeniz için bir de üye olmanız gerekiyor. Altında paylaşım için sağol yazıları, ben mi birşeyler kaçırdım zaman içinde, paylaşım bunun neresinde. Bir başka sitedeki hazır yazıyı kopyalamanın ya da aynı içerikle yeni site açmanın adı ne zamandan beri paylaşım oldu?

Bu forum yazılımlarının çoğu vbulletin, yani ücretli bir forum yazılımı, 180$ para verip bu yazılımı satın aldıklarını sanmıyorum, o forum yazılımı da bir yerlerden araklama.

Google birşeyler yap kurtar beni bu çöplükten.