anov

asp.net, c#, javascript, css, php ve blogengine.net deneyimleri.

google insanlığımı sorguladı :-)

clock January 1, 2010 06:06 by author Necat Bolpaça

Google gruplar üzerinde bir konuyu araştırırken, sorry.google.com alt alan adına yönlendim ve google otomatik sorgu yapan bir bot olup olmadığımı anlamak için karşıma bir resim doğrulaması çıkarttı.

 

Dikkatimi çeken kısım, butonda yazan "Ben insanım!" ifadesi oldu. Bu esprili tavrı her yerde karşımıza çıkıyor.



Unobtrusive Javascript "ayrık,katıştırılmamış" mantığı

clock December 23, 2009 07:43 by author Necat Bolpaça

Önemli not: Gökhan'ın önerisi üzerine yazıya kod örnekleri tam olarak eklenecek ve çalışma anındaki ekran görüntüleri eklenecektir. Bir de çalışan haline bağlantı konulacak.

Unobtrusive Javascript, kısaca işaretleme dili (markup) arasına "katıştırılmamış" betikler için kullanılan bir terimdir. Jquery gibi javascript framework leri ve FCKEditor gibi kütüphaneler, katıştırılmamış javascript kullanımına önem verirler.

Javascript kodu, genellikle html içine doğrudan tamamıyla yazılmaz. Örneğin bir "button" için onclick olayına onclick="function(){}" diyerek tüm fonksiyon orada tamamlanmaz. Şimdiye kadar gördüğüm yazım şekli, fonksiyonu <script> etiketinin içinde (tercihen ayrı bir dosyada) tutmak fakat fonksiyona çağrı yapan kodu onclick, onmoueover gibi olaylara html işaretleme içinde yazmaktır.

 Unobtrusive yazdığınız zaman, olay tutucuya fonksiyonu iliştirme işlemini de javascript içinde yaparsınız. Bunun için window.onload olayını kullanabilirsiniz, örnek bir olay tutucusu atamayı birlikte inceleyelim:

<input type="button" id="buton_1" value="Tıkla"/>

 

Bu butona onclick olayında alert('katışıksız'); yazdırmak isteyelim. Dahil edeceğimiz javascript dosyası içinde yazmamız gereken şudur:

window.onload = function() {
     var buton = document.getElementById('buton_1');
if(buton.onclick) {
buton.onclick = function(){ alert('katışıksız');}
}



}

 

Birden fazla elemente olay atamak istediğimiz zaman id gibi tek olan bir özellik değil, class, rel, title gibi birden fazla elementte aynı değeri alabilen bir belirleyici ile html elementlerini gruplayabiliriz. Javascript tarafında ise getElementsByTagName metodunu kullanıp, gelen kontroller içinde istediğimiz şartı sağlayanlar için uygun olaylarına (onclick, onmouseover gibi) fonksiyonlarımızı atayabiliriz.

Örnek :

<input type="button" class="tik" value="Tıkla"/>
<input type="button" class="tik" value="Tıkla"/>
<input type="button" class="tik" value="Tıkla"/>

 

Bunun için yazacağımız javascript kodu:

window.onload = function() {
    var butonlar = document.getElementsByTagName('input');
    for(buton in butonlar) {
        if(buton.className!="tik") continue; //eger class="tik" değilse, 
        //bir sonraki adımdan devam et
        if(buton.onclick) {
            buton.onclick = function(){alert(this.value);}
        }
    }
}

Benzer şekilde, ihtiyacımız olan tüm parametreleri html işaretleme (markup) içinde bir şekilde anıp, sonra javascript içinden uygun özellikle çekeriz. Örneğin tıklanan nesnelerin isimleri veya css sınıfları dahi bu şekilde javascript kodunu tetiklemek için bir işaretleyici görevi görür.

Tüm yazdığınız kodlar bu kadar basit olmayacaktır, ancak prensip bu kadar basittir. Aynı dosyayı farklı bir projeye kattığınız zaman, javascript olayları sizin belirlediğiniz html özelliklerini bulacak ve o olaylara kendini ekleyecektir.

Eksik/hatalı anlatım ve görüşleriniz için yorumlarınızı bekliyorum. Teşekkürler.

Kaynakça ve detaylı bilgiler:



Çatallandırma (ikisi farklı şeyler)

clock October 12, 2009 03:56 by author Necat Bolpaça

Elimde birbirinden farklı iki kavram olduğunu varsayıyorum.

İkinci kavramı birincisinden türettiğim zaman, ikisi aynı köke sahipse çeşitliliği arttırmış oluyorum.

Bu kavramları birbirinden tam olarak ayırdığım zaman, ikisinin farkını vurgulamış olmaz mıyım?

Bu konu şu anda herkesin görebileceği bir şekilde ancak taslak olarak kalsın. Yorumları yazıyı tamamladıktan sonra aktif hale getireceğim. Çünkü şu haliyle somut bir örnek içermiyor.

Bu "çatallandırma" sözünü ben uydurdum. Yerleşik bir karşılığı varsa, felsefede iyi bilinen bir karşılığı varsa iletişim bölümünden bildirecek arkadaşa şimdiden teşekkür ederim.

Kavramı ilk uygulayacağım alan, fikirlerimin, yazılarımın organizasyonunda birden fazla hedef belirlediğim içeriklerde, aynı temele sahip içeriğin nasıl farklı alanlarda farklı özelliklerle yayabileceğimi araştırmak olacak. Daha önce uygulanmış fikirleri incelerken, aynı köke ve düşünce özüne sahip birden fazla düşüncenin (partiler, mezhepler, örgütler) nerelerde ayrıldığını inceleyeceğim. Ancak bu incelemelerim içinde mümkün olduğu kadar tarafsız kalacağım. ("Mümkün olduğu kadar tarafsız" nasıl olunuyorsa)

 



Panel tarzı CSS (Geri kalan genişliği kullanmak)

clock July 21, 2009 09:26 by author Necat Bolpaça

Aykut Önen in yorumu üzerine örneği düzeltmeye vakit bulamadım... Çalışan bir örnek bulmak için lütfen yorumları kontrol ediniz...

 

Panellerin genellikle şu tip bir yapısı vardır :

+----------------------------------------------------+
|                                                    |
|         başlık                                     |
+----------------------------------------------------+
| sabit   |  içerik                                  |
| genişlik|                                          |
| menü    |                                          |
|         |                                          |
|         |                                          |
|         |                                          |
|         |                                          |
|         |                                          |
|         |                                          |
|         |                                          |
|         |                                          |
+----------------------------------------------------+

Bu tip bir yapı için şöyle bir html kodu yazıyorum:

<div id="baslik"></div>
<div id="kapsayici">
    <div id="menu"></div>
    <div id="icerik"></div>
</div>

 

CSS kodunu da şöyle yazıyorum:

div#baslik {background-color:gray; height:100px; width:100%;}
div#kapsayici
{
    padding-left:150px; /*Dikkat : Sol menünün genişliği ile aynı*/
    width:100%;
}
div#menu
{
    height:auto;
    margin-left:-150px; /*Kendinden önceki padding i yok sayması için*/
    width:150px; /*Genişliği*/
}
div#icerik
{
    width:100%;
}

 

Böylece, “geri kalan genişliği kullanma” meselesine ana nesnenin padding değeri ve genişliği sabit nesnenin negatif margin kullanması ile bir çözüm üretmiş olduk.



Dürtmeden gitmeyen insan modeli = Ben

clock April 2, 2009 07:39 by author Necat Bolpaça

Bu yazının bir benzerini çok kısıtlı sayıda insanın erişimi olan bir yerde de yazmıştım. Ancak kopyala&yapıştır yok, düşüncelerim değişmediğinden aynı şeyleri yeniden yazıyorum haliyle...

Hayatımda iki tip insanla karşılaşıyorum veya iki tip insandan biri oluyorum.

Birinci tip, bir şeyi "yapacağım" dediği zaman yapan insanlar. Ama zamanında ve kimsenin ona görevini hatırlatmadan yapan insanlar. Sorumluluğunun farkında olanlar. Yerine getirmediği sözlerin başkalarını ne kadar zor durumda bırakacağının bilincinde olanlar. Bu kişileri seviyorum. Böyle adamlar(veya kadınlar) ile çalışmak benim için onurdur.

İkinci tip, bir şeyi "yapacağım" dediği halde sorumlu olduğu kişiyi sürüncemede bırakan, acaba yaptı mı yapmadı mı oldu mu olmadı mı diye ıstırap çektiren insanlar. Sorumluluğunun farkında olmayanlar. Onların sorumsuzluğu yüzünden diğer insanlar hep sıkıntı çektiler. Çekeceklerdir de.

Bu yazıda çizgiyi böylece ortadan çektiğime göre, birinci tip insanların başka iyi yönlerinden de bahsedeyim. İnisiyatif alırlar. Evet, sorumluluklarının bilincinde oldukları için, "acaba ne yapabilirim" diye sürekli uğraşırlar. Sizin onlara ne yapacağını söylemeniz gerekmez.

Burada bir şeyi itiraf etmek için yazıyorum. Ben gitgide ikinci tip insanın hareketlerine benzer hareketler yapmaya başlıyorum. Sorumsuz, inisiyatif almayan, aynı halde bıraksan bir elli sene daha duracak bir "insan müsveddesi" halini alıyorum. Umarım, bu durumdan kurtuluşum mümkün olduğu kadar kısa olur.

Not : Bu yazı 1 Nisan şakası değildir.

Not.Not : Sadece siyah veya beyaz yok. Gri tonlar da var elbette, bir insan illa #000000 veya #ffffff olamaz. Çeşitli konularda değişik tepkiler verir farklı önem dereceleri atfederler konuya.



Recent comments

Comment RSS

About the author

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in  anyway.

© Copyright 2008

Sign in