C# Olay tetikleme

Bilindiği üzere kullanığımız componentlerin olayları var. Örneğin Button nesnesinin click eventi butona tıkladığımızda yapılacak işleri yapar. Bazı zamanlarda aynı işi başka yerde yapmak zorunda kalabiliriz. Aynı metodu tekrar yazacağımıza butonun click eventine çağırabiliriz. Farzedelim bir nesne üzerinde çalışıyoruz ve Button1’in click olayında yapılacak işi yapmamız gerekti, aşağıdaki kodla bunu halledebiliriz.

Button1_Click(Page,e);

Koddaki Page kısmı Button’un sender’ı, üzerinde çalıştığımız nesne. ‘e’ ise EventHandler’ı.

SQL tablodaki iki alanı tek alan olarak alma

SQL’de alanlar arasında belli işlemler yaparak kullanmak, kullanmak zorunda olana kadar aklıma gelmemişti. Yapacağım işlem ad ve soyad adında iki farklı alanı bir alan gibi gÖstermekti. Aşağıdaki kodla bu işlemi gerçekleştirdim.

select ID,(Adi +' '+ Soyadi) as isim from PERSONEL

Burada PERSONEL tablosundan ID ve isim olarak iki alan alınıyor. İsim alanı normalde tabloda yok, Adi ve Soyadi alanlarının birleştirilmesiyle oluşturuldu ve iki alan arasında bir karakter boşluk bulunmaktadır.

Etme – Mevlana – Mevlana’nın Şems’e Özlemi

Duydum ki bizi bırakmaya azmediyorsun, etme.
Başka bir yar, başka bir dosta meylediyorsun, etme.

Sen yadeller dünyasında ne arıyorsun yabancı?
Hangi hasta gönüllüyü kastediyorsun, etme.

Çalma bizi, bizden bizi, gitme o ellere doğru.
Çalınmış başkalarına nazar ediyorsun, etme.

Ey ay, felek harab olmuş, altüst olmuş senin için…
Bizi öyle harab, öyle altüst ediyorsun, etme.

Ey, makamı var ve yokun üzerinde olan kişi,
Sen varlık sahasını öyle terk ediyorsun, etme.

Sen yüz çevirecek olsan, ay kapkara olur gamdan.
Ayın da evini yıkmayı kastediyorsun, etme.

Bizim dudağımız kurur sen kuruyacak olsan.
Gözlerimizi öyle yaş dolu ediyorsun, etme.

Aşıklarla başa çıkacak gücün yoksa eğer;
Aşka öyleyse ne diye hayret ediyorsun, etme.

Ey, cennetin cehennemin elinde oldugu kişi,
Bize cenneti öyle cehennem ediyorsun, etme.

Şekerliğinin içinde zehir zarar vermez bize,
O zehiri o şekerle sen bir ediyorsun, etme.

Bizi sevindiriyorsun, huzurumuz kaçar öyle.
Huzurumu bozuyorsun, sen mahvediyorsun, etme.

Harama bulaşan gözüm, güzelliğinin hırsızı.
Ey hırsızlığa da değen hırsızlık ediyorsun, etme.

İsyan et ey arkadaşım, söz söyleyecek an değil.
Aşkın baygınlığıyla ne meşk ediyorsun, etme.

Mevlana Celaleddin Rumi

md5 Hash Fonksiyonu

Geçenlerde şifrelemeyle alakalı birkaç makale okudum. Md5 hash fonksiyonu da bu amaçla kullanılıyor. Tek yönlü olması, yani md5 sonucu elinizde olan bir veriye erişmenizin imkansıza yakın olması ilgimi çekti. Ben de ufak bir araştıma yaptım. Öğrendiklerimi paylaşmak istiyorum. Öncelikle md5 bir şifreleme yöntemi değil, hash fonksiyodur. Hash fonksiyonları ise bilindiği üzere bir veri topluluğundan verileri ayrı ayrı temsil edebilecek maksimum eşitsizlikte id çıkarma işlemidir. Peki bu fonksiyonun ismi neden md5? Çünkü bunun md4, md2, md gibi versiyonları da var. Bu son versiyon MIT’de profesör olan Ron Rivest tarafından, 1991 yılında md4 versiyonu geliştirilerek yapılmıştır. Md kısmının açılımı ‘Message Digest’ tır. Peki bunun karşılığı nedir derseniz, Türkçe’ye çevirince çok da anlamlı olmuyor açıkçası. Yani md5 fonksiyonunun temeli Message Digest Algoritması’na dayanmaktadır. Bu algoritmanın amacı ise değişik uzunluklardaki verileri işleyip, sabit uzunlukta veri elde etmektir. Md5 hash fonksiyonunda da işlenen veri 128 bit veriye dÖnüştürülür. Bu da 32 adet hexadecimal karakter yapmaktadır. Mantığına baktığımızda bu fonksiyonu sonsuz tane veri girdirebiliriz ama sonucunda hep 32 hex karakter çıkacağına göre, bazı verilerin md5 dönüşümleri aynı olacaktır. Olasılık çok küçük olsa da,farklı veriler için aynı sonuçları verecek olması güvenlik açısından biraz sıkıntı oluşturabilir. Ama bu sıkıntı da birkaç küçük işlemle giderilebilir. Açıkçası bu fonksiyonun algoritmasını tamamiyle öğrenmedim ama ilgilenenler internetten ulaşabilirler. Yakında bloğuma bu konuyla alakalı küçük bir eklenti yapmayı da düşünüyorum.

Bayramımız kutlu olsun..

ramazan_bayrami

Ömrümüzden bir ramazan ayını daha  geride bıraktık. Bize hep anlatılan yazın ortasında oruç tutmayı yaşamaya başladık bu sene. Tam olarak yazın ortasına gelmese de, büyükler abarttığınız kadar da yokmuş hani.:) Şaka bir yana fiziksel gücün ön planda olduğu işlerde insanların zorlandıkları açık. Ama ne yapalım zorluğu arttıkça kıymeti de artıyordur. Gerçekten hoş bir ramazan ayı idi. Hem ramazan olmasa birçok tanıdıkla aynı sofraya bir ay içerisinde nasıl oturacaktık. Bereket ayı deniyor ya hani..gerçektende öyle. Bu ay içerisinde yediklerimizi başka ne zaman yiyoruz? 🙂 Acısıyla tatlısıyla demiyorum, çünkü ramazandan geriye güzellikler kaldı hep. Bu sene de uğurladık. Eee şimdi bayram zamanı… Bayramınızı en içten dileklerimle kutluyorum. Nicelerine ulaşmayı nasip etsin. Selametle… 😉

Kifayetsiz muhterisler ve ‘cahil cesareti’‏

New York Stern School of Business’te görevli psikologlar Justin Kruger ve David Dunning’in tarihe geçmelerine vesile olan bulguları, yani Dunning-Kruger Etkisi adıyla literatüre geçecek olan teorileri de,Türk sağduyusunun yüzyıllardır “cahil cesareti” dediği şeydir aslında.Journal of Personality and Social Psychology’nin Aralık-99 sayısında yayımlanan teorileri özetle, “cehalet, gerçek bilginin aksine, bireyin kendine olan güvenini artırır” der.
Metin çözme, araç kullanma, tenis oynama gibi çeşitli alanlarda yapılan araştırmaların sonucunda şu bulgulara ulaşılmıştır:
-Niteliksiz insanlar ne ölçüde niteliksiz olduklarını fark edemezler.

-Niteliksiz insanlar, niteliklerini abartma eğilimindedir.


-Niteliksiz insanlar, gerçekten nitelikli insanların niteliklerini
görüp anlamaktan da acizdirler.

-Eğer nitelikleri, belli bir eğitimle artırılırsa, aynı niteliksiz
insanlar, niteliksizliklerini n farkına varmaya başlarlar.
Değerlendirme zaafı
İki uzman daha sonra, bu teorilerini test etme fırsatı da buldular. Cornell Üniversitesi’ nden 45 öğrenciye bir test yaptılar, çeşitli sorular sordular. Ardından öğrencilerden “testin sonucunda ne kadar başarılı olacaklarını tahmin etmelerini” istediler.En başarısızların (yani sadece yüzde 10 ve daha az doğru cevapverenlerin), testin yüzde 60’ına doğru cevap verdiklerine, ayrıca iyi günlerinde olsalar yüzde 70’e ulaşabileceklerine inandıkları ortaya çıktı.En iyilerin (yani en az yüzde 90 doğru sonuç alanların) en alçakgönüllü denekler olduğu (soruların yüzde 70’ine doğru cevap verdiklerini düşündükleri) görüldü. (Not: Dunning ve Kruger bu çalışmalarıyla 2000 yılında Nobel de kazandılar.)İki uzman psikolog bu bilinçsizliği, “kronik kendi kendini değerlendirme (auto-evaluation) yeteneksizliğ ine” bağlıyorlar. Çalışan, kendi kapasitesini değerlendirmekten ve eksikliğini teşhis etmekten acizdir. Ama asıl vahim olan, bu “yetersizlik + haddini bilmeme” kokteylinin, mesleki açıdan, karşı koyulmaz bir itici güç oluşturması. Kariyer açısından bir eksiyken, artıya dönüşmesi.İşinde çok iyi olduğuna yürekten inanan “yetersiz”, kendini ve yaptıklarını övmekten, her işte öne çıkmaktan ve haddi olmayan görevlere talip olmaktan en küçük bir rahatsızlık duymayacaktır.Aksine bunu bir “hak” olarak görecektir. “Uyanıklık” bilecektir.Bu arada, gerçekten bilgili ve yetenekli insanlar ise çalışma hayatında “fazla alçakgönüllü” davranarak kendilerine haksızlık edecekler, öne çıkmayacaklar, yüksek görevlere kendiliklerinden talip olmayacaklar, kıymetlerinin bilinmesini bekleyecekler (ve bilinmeyince için için kırılacaklar ve kendilerini daha da geriye çekecekler) ve muhtemelen üstleri tarafından “ihtiras eksikliği” ile suçlanacaklardır.Üstleri de zaten, genelde “aynı yoldan geçmiş” insanlardır.Buna, insan kaynaklarının, iki benzer CV arasından, “kendine güvenen ve iyi sonuç alma olasılığı yüksek” adayı tercih edeceği gerçeğini de eklerseniz, Dunning-Kruger Sendromu’nun Peter Prensibi’nin yatağını yaptığı da ortaya çıkar.Sonuçta, “kifayetsiz muhterisler” her zaman ve her yerde daha hızlı yükselecekler ve daha yukarılara çıkacaklardır. Etrafınıza bir bakın, uzmanlara hak vereceksiniz.

Peter Prensibi: Her çalışan, iş ortamında yetersiz olduğu noktaya kadar yükselir, der. Bunun doğal sonucu olarak, yüksek makamlar daima yetersiz insanlar tarafından işgal edilir.

Kifayetsiz muhterisi nasıl tanırsınız?


1- Gücünü delegasyon bahanesinden alır. Ekibinin orkestra şefi havalarına girer.

2- Çok gürültü patırtı eder, çok şey yapıyormuş havası estirir.
3- Koridorlarda hızlı hızlı, düşünceli edayla yürür.
4- “Beşer şaşar” diye düşünür. Ama genellikle şaşan beşer başkası değil, kendisidir.
5- Ne olursa olsun, hazırlıklıymış, olacakları önceden biliyormuş gibi davranır.
6- Üstlerine karşı son derece kibardır; altındakilere (özellikle de en çok ihtiyaç duyduklarına) kötü muamele eder. 
7- İktidar ilişkileri ve göstergeleri onun için çok önemlidir. Astlarına kimin üst olduğunu hatırlatmayı sever.
8- İlk denemede başarılı olamazsa, başarısızlığının belgelerini yok etmeyi unutmaz.
9- Talimatlarını post-it ile, e-postayla verir böylece astlarıyla yüzleşmekten kaçar.
10- Toplantılarda son sözü mutlaka o söyler, gerekirse başkasının sözünü tekrarlamak pahasına..
Mehmet Aydın Erceiş

Trigger nedir , nasıl kullanılır ?

Bilindiği üzere trigger’lar tetikleyici olarak adlandırılırlar. Peki tetikleyici ne demek; veri tabanınız üzerinde herhangi bir transactional işlem yani delete, insert, update işlemi yaptığınız anda veri tabanınızın istediğiniz başka bir işlemi otomatik olarak kendisinin gerçekleştirmesidir. Varsayalım veri tabanımızdaki tablolardan biri, bir diğerine bir sutünla bağlı. Bu sütundan bir veri silindiğinde diğer tablomuzda bu silinen verilerin bulunduğu kayıtların da silinmesi isteniyor. Böyle bir durumda yapacağımız olay ilk tablomuz için bir trigger yazmaktır. Böylelikle bu tablodan bir veri silindiğinde, trigger otomatik olarak çalışacak ve diğer tabloya gidip ilgili kaydı silecektir. Trigger’lar işlerimizi kolaylaştırabileceği gibi karmaşık bir veritabanı için çok iyi kontrol edilmezlerse, çok büyük sıkıntılara da yol açabilirler. Trigger’ların yazım şekli aşağıdaki gibidir. Trigger oluşturuluyorsa CREATE, oluşturulmuş bir trigger değiştiriliyorsa ALTER deyimi kullanılır. AFTER deyiminden sonra ise tabloya yapılacak hangi işlemden sonra bu trigger’ın tetikleneceği belirtilir.

( tsql )

CREATE / ALTER TRIGGER   trigger’a vereceğimiz isim
ON    trigger’ı kullanacağımız tablo
AFTER INSERT/UPDATE/DELETE
AS
BEGIN
trigger’ın çalışması halinde yapılacak işlemler
END

İlk bilgisayar Bug’ı

Programlamayla alakası olan insanlar debug kelimesini yakından tanırlar. Yazılan programın hatalardan arındırılması demektir. Yalnız bug’ın kelime manasına bakıldığında hatalardan arındırma olayına anlam verilemeyebilir. Çünkü bug’ın kelime anlamı böcektir.Peki bu anlam bu kelimeye nasıl kazandırılmıştır bakalım. Cobol dilinin geliştiricisi Grace Hopper ve arkadaşları Harward Üniversitesi’nde ilk bilgisayarlardan Mark II üzerinde çalışırlarken ilk bilgisayar böceğini yani bug’ını buldular. Bu bug test sırasında sistem içerisine girmiş bir güveydi, yani harbiden böcekti. Operatörler bunu bilgisayar log’unun bulunduğu sayfaya bantladılar ve ilk gerçek bug bulma vakası olarak 9 Eylül 1945 tarihiyle birlikte not düştüler. Bir süre sonra bug sözcüğü bilgisayar terminolojisinde hayli popüler oldu. O tarihten sonra bir bilgisayar programını hatalarından ayırma işlemi için ‘debugging’ terimi kullanılmaya başlandı. Bu ilk bilgisayar ‘bug’ı Virginia eyaleti Dahlgren kentindeki ABD donanmasına ait Naval Surface Warfare Center Computer Museum’da sergileniyor. Aşağıda ilk bug’ın resmini görebilirsiniz.
bug 
Kaynak:Anı ve Fotoğraflarla Bilişim Tarihimiz – Akdoğan Özkan