23 Şubat 2012 Perşembe

Shay günü




Ne yapardiniz? Karari siz verin.
Komik bir cümle beklemeyin, çünkü yok.
Yine de okuyun.
Sorum şu: Aynı kararı siz verir miydiniz?
Okuma ve öğrenme zorluğu çeken çocuklara özel eğitim veren bir okul icin bağıs toplama yemeğinde, çocuklardan birisinin babası katılımcılar tarafından asla unutulmayacak bir konuşma yaptı.
Okula kendini adamış öğretmenleri kutladıktan sonra şöyle bir soru sordu:
‘Dışardaki etkenler tarafından etkilenmedikçe doğa herşeyi mükemmel bir şekil ve sırada yapıyor. Ama yine de oğlum Shay, diğer çocukların öğrendikleri gibi öğrenemiyor. Diğer çocukların anlayabildikleri gibi anlayamıyor.
Oğlumda doğal olması gereken şeyler nerede?’
Bu soru karşısında dinleyiciler sessiz kaldılar.
Baba devam etti. ‘Ben inanıyorum ki, dünyaya fiziksel ve zeka engelli Shay gibi bir çocuk geldiğinde, gerçek insan doğası kendini gösterme fırsatını buluyor ve bu da insanların o çocuğa davranış şekillerinde kendini gösteriyor.’
Ve sonra aşağıdaki hikayeyi anlatmaya başladı:
Shay ve babası bir gün parkta Shayin tanıdığı birkaç çocuğun baseball oynadıklarını gördüler.
Shay sordu, ‘Acaba oynamama izin verirler mi?’
Shay’in babası çoğu çocuğun Shay gibi bir çocuğun takımlarında oynamasını istemeyeceklerini ama aynı zamanda eğer oğluna izin verirlerse oğlunun o çok ihtiyacını duyduğu, engellerine rağmen başkaları tarafından kabul edilmenin özgüveni ve sahiplenme duygusunu vereceğini de biliyordu.
Shay’in babası çocuklardan birinin yanına yaklaştı ve (fazla birşey
beklemeyerek) Shay in oynayıp oynayamayacağını sordu. Çocuk şöyle danışabileceği birilerine baktı ve sonra ‘Şu anda 6 sayı gerideyiz ve oyun sekizinci turunda. Herhalde takıma girebilir ben de onu dokuzuncu turda vurucu olarak sokmaya çalışırım’ dedi.
Shay büyük bir gayretle takımın yanına gitti ve yüzünde kocaman bir gülümseme ile takım t-shirtini giydi. Babası gözünde yaş, kalbi sıcak duygularla dolu onu izledi. Çocuklar oğlunun kabul edilmesinden dolayı babanın mutluluğunu gördüler. Sekizinci turun sonunda Shay’in takımı birkaç puan kazandı ama hala 3 sayı gerideydi. Dokuzuncu turun başında Shay eldiveni eline geçirdi ve sağ açık sahaya çıktı. Ona doğru hiç top isabet etmemesine rağmen oyunda olmaktan son derece mutluydu ve babasının ona tribünlerden el salladığını gördüğünde yüzünde kocaman bir gülümseme vardı.
Dokuzuncu turun sonunda Shay’in takımı yine puan kazandı. Şimdi bütün kaleler doluydu, oyunu kazanma şansı ortaya çıkmıştı ve topa vurma sırası Shay’e gelmişti.
Bu noktada Shay’in vurucu olmasına izin vererek oyunu kaybetme riskini mi almalıydılar? Şaşırtıcı bir hamleyle Shay’e sopayı verdiler. Herkes topa isabet ettirme şansının sıfır olduğunu biliyorlardı çünkü bırakın topa vurmayı Shay sopayı bile elinde tutmasını bilmiyordu.
Ama Shay sahaya çıktığında top atıcı, diğer takımın kazanma şanslarını bir kenara bırakarak Shay’e bu fırsatı tanıdıklarını görünce birkaç adım öne giderek yumuşak bir şekilde topu Shay’e doğru fırlattı. İlk topa Shay zorlukla sopayı savurdu ama ıskaladı. Atıcı tekrar birkaç adım öne doğru geldi ve topu yine yumuşak bir şekilde Shay’e doğru attı. Shay sopayı savurdu ve hafifçe topa dokunarak yere atıcıya doğru vurdu.
Oyun şimdi bitecekti. Atıcı topu yerden aldı ve ilk kaledeki adamına
kolaylıkla atabilecek ve Shay’i sobeleyerek oyunu bitirebilecekti.
Ama atıcı topu aldı ve ilk kaledeki adamının başının üzerinden diğer takım arkadaşlarının erişemeyeceği yere fırlattı.
Tribünlerdeki herkes ve iki takımda bağırmaya başladılar, ‘Shay, ilk kaleye koş, ilk kaleye koş!’ Shay hayatında hiç bu kadar uzağa koşmamıştı ama ilk kaleye gidebildi. Şaskınlıktan büyümüş gözleriyle yere çöktü.
Herkes bağırmaya devam etti, ‘İkinci kaleye koş, ikinci kaleye koş’ Nefes nefese Shay zorlukla ikinci kaleye koşabildi. Shay ikinci kaleye geldiği sırada açık sahada diğer takımdan biri topu almıştı … takımın en küçüğü olan bu çocuk kahraman olma şansını elinde tutuyordu. Topu ikinci kaledeki adamına atabilirdi ama top atıcısının niyetini anladığından o da kasıtlı olarak topu üçüncü kaledeki arkadaşının başının üzerinden attı.
Herkes bağırıyordu, ‘Shay, Shay, Shay, bütün yolu koş Shay’
Karşı takımdan birinin yardım ederek onu üçüncü kaleye doğru döndürmesiyle Shay üçüncü kaleye koşabildi, ‘Üçüncüye koş! Shay, üçüncüye koş!’
Shay üçüncüye gelirken diğer takımdakı çocuklar ve seyirciler ayağa
kalkmışlardı ve bağırıyorlardı, ‘Shay, hepsini koş! Hepsini koş!’ Shay
hepsini koştu ve oyunu takımı için kazanan bir kahraman olarak herkes tarafından alkışlandı.
‘O gün’, dedi babası, gözlerinden yaşlar aşağıya doğru süzülerek,
‘iki takımdaki çocuklar da dünyaya bir parça sevgi ve insanlık getirmeyi başardılar’.
Shay bir sonraki yaza yetişemedi. O kış  öldü. Bir kahraman olduğunu ve babasını mutlu ettiğini ve eve geldiğinde annesinin de gözyaşları içinde onu kucakladığını asla unutmadı.
Son NOKTA: E-mail ile hiç düşünmeden binlerce fıkra yolluyoruz, ama hayattaki seçimler konusunda mesaj olduğunda insanlar tereddüt ediyorlar.
Bunu size yollayan kişi hepimizin bir farklılık yapabileceği inancını taşıyor. Hepimizin her gün binlerce fırsatı olabiliyor ‘doğal olan şeyleri’ gerçekleştirmek için.
Bilgin bir adam bir zamanlar demişki: Her toplum, kendilerinden daha az şanslı olanlara nasıl davrandığıyla değerlendirilir.
Şimdi iki seçeneğiniz var:
1. Delete (Sil)
2. Forward (İlet)
Gününüz bir Shay günü olsun!
Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

17 Şubat 2012 Cuma

Sql Function Kullanımı



Sql Server da da aynı programlada olduğu gibi sık sık gerçekleştirdiğimiz işlemlerde kullanmamız gerekicek,bize yazdığımız sorgularda pratiklik sağlayacak fonksiyonlara ihtiyacımız olabilir.İşte tam burada   sql functionlar ile tanışmamız gerekiyor.İşin hikaye kısmını fazla uzatmadan hemen bir örnek üzerinden anlatıma geçmek istiyorum.


Bu örneğimizde bir web sitemiz olduğunu düşünelim ve bu sitemizde artık hemen hemen her sitede kullanılan seo url ler kullanılıyor olsun.Ara ara sitemizdeki sayfalarımız için veri tabanımızdaki belirli verileride kullanarak standart url kalıpları oluşturmak isteyebiliriz.Fakat her url güncellemesine ihtiyacımız olduğunda kullanmamızın gerekeceği url için belirlediğimiz metni standart url formatında düzeltecek bir fonksiyona ihtiyacımız olacak.Bu fonksiyonu konuyu fazla uzatmadan kodu görelim artık diyenler için aşağıya yazıyorum hemen :)


CREATE FUNCTION [MetaReplace]
(
@MetaUrl NVARCHAR(1000)
)
RETURNS NVARCHAR(1000)
AS
BEGIN
SET  @MetaUrl = REPLACE(@MetaUrl,' ','-')
SET  @MetaUrl = REPLACE(@MetaUrl,' ','-')
SET  @MetaUrl = REPLACE(@MetaUrl,'_','-')
SET  @MetaUrl = REPLACE(@MetaUrl,'ç','c')
SET  @MetaUrl = REPLACE(@MetaUrl,'Ç','c')
SET  @MetaUrl = REPLACE(@MetaUrl,'ş','s')
SET  @MetaUrl = REPLACE(@MetaUrl,'Ş','s')
SET  @MetaUrl = REPLACE(@MetaUrl,'İ','i')
SET  @MetaUrl = REPLACE(@MetaUrl,'I','i')
SET  @MetaUrl = REPLACE(@MetaUrl,'Ö','o')
SET  @MetaUrl = REPLACE(@MetaUrl,'ö','o')
SET  @MetaUrl = REPLACE(@MetaUrl,'Ü','u')
SET  @MetaUrl = REPLACE(@MetaUrl,'ü','u')
SET  @MetaUrl = REPLACE(@MetaUrl,'Ğ','g')
SET  @MetaUrl = REPLACE(@MetaUrl,'ğ','g')
SET  @MetaUrl = REPLACE(@MetaUrl,'+','')
SET  @MetaUrl = REPLACE(@MetaUrl,'&','')
SET  @MetaUrl = REPLACE(@MetaUrl,'--','-')
Return (SELECT @MetaUrl )
END


Şimdi biraz daha detay a girip fonksiyonları daha yakından tanıyalım :

Fonksiyon oluşturmak için "CREATE" anahtar kelimemizi kullandık eğer sonrasında bu fonksiyonumuzu düzenlemek ister isek " CREATE " yerine "ALTER" anahtar kelimesini kullanmamız yeterli olacaktır.
Bu fonksiyonumuzun kalıbına bakmak ister isek şu şekilde olacaktır :


CREATE FUNCTION FoksiyonAdıBurayaGelicek
(
--Tanımlanacak Parametreler.Örnek : @MetaUrl NVARCHAR(1000)
)

RETURNS DonusTipiBuraya  --Örnek metin dönüş tipi için ->NVARCHAR(1000)

AS
BEGIN--fonksiyonun başlangıcı

--fonksiyonun işlevlerinin bulunduğu kodlar

END --fonksiyonun bitişi


Şimdi Son olarak yazdığımız fonksiyonu bir sorguda kullanalım.

SELECT  MetaReplace((Marka + '- '+ UrunAdı + ' - ' + UrunKodu )) FROM Urun

Yukarıdaki sorgumuzda "marka - UrunAdı - UrunKodu" alanlarını birleştirip bir url formatına getirmiş olduk artık diler isek ürün sayfa url lerimizi bu şekilde güncelleyebiliriz .



Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

16 Şubat 2012 Perşembe

.Net dll i derlenip api olarak dağıtıldığında yada başka bir projede kulanılmaya başlandığında metod,özellik ve nesne açıklamaları görünmez ise


Böyle bir durumda Visual Studio 'daki projemiz üzerine Sağ Tuş yapıp "Property->Build ->Output " sekmesinden "XML Documentation file :" check kutusu işaretleyip bir xml dosya yolu belirtmeliyiz.Bu xml dosya yolu proje temel dizininden itibarendir.Yani örneğin "bin\Debug\TestProje.XML" şeklinde bir değer girebiliriz
Bu işlemi yapıp  kayıt ederek projemizi derler isek projemizin bin/debug dizini içerisinde "TestProje.dll" ve "TestProje.XML" şeklinde 2 dosya oluşacaktır ve dll imizi başka yerde kullanacağımız zaman bu iki dosyayı birlikte kullanmamız gerekecektir.

Umarım faydalı olmuştur.
Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

14 Şubat 2012 Salı

Yazılımcıya Sevgililer Günü Hediyesi




Bir yazılımcının sevgililer günü akşamı böyle olur :


Bugün sevgililer günü, izmir yağışlı, ve şu an saat 19:00 hala bir proje yayınlanması bekleniyor, hata vermesin diye dualar ediliyor :)
Eğer publish başarı ile tamamlanır ise kız arkadaş ile randevuya yarım saat gecikmelide olsa gidilebilecek.:)
Hadi canım oda nesi "Object reference not set to an instance of an object" hatası veriyor.Bu gece bitmez artık...

Yazılımcı olmak isteyen arkadaşları işte bunlar bekliyor.Tüm şirket mesaisini bitirsede yazılımcı işine olan aşkı yüzünden tüm gece çalışmayı göze alarak o hata için çalışmaya devam ediyor. . .
Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

13 Şubat 2012 Pazartesi

"A potentially dangerous Request.Form value was detected from the client " hatası ve çözümü


Asp.net ile çalışırken  textbox yada benzeri bir alan içerisine "<>" gibi bir html karakter girmeye çalıştığınızda bu hatayı alabilirsiniz.Bu hatayı engellemek için sayfanızdaki "<%@Page " kısmına  ValidateRequest="false"  kodunu eklemeniz yeterlidir.

Ekleme sonrası "<%@Page " kısmı aşağıdaki gibi olacaktır.

 <%@ Page Language="vb" AutoEventWireup="false" Codebehind="default.aspx.vb" ValidateRequest="false" %>
Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

"Operation is not valid due to the current state of the object." hatası ve çözümü


Asp.Net sayfalarında datalist nesnesinde 500 üzeri veri olduğunda sayfa hataya düşüyor ve "Operation is not valid due to the current state of the object." hatası veriyor ise web.config dosyasına aşağıdaki appsetting ayarını eklerseniz sorun çözülmektedir.Başta biraz hayret ettim o settings i kim okuyor nasıl böyle bir çözüm olur diye.Ama başka çözüm bulamayınca son çare yaptım ve oldu :)

İşte İlginç ve nitelikli kod parçası :

 <appSettings>
<add key="aspnet:MaxHttpCollectionKeys" value="9999" />
 </appSettings>
Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

9 Şubat 2012 Perşembe

WCF Services - "For TransferMode.Buffered, MaxReceivedMessageSize and MaxBufferSize must be the same value." hatası



Genelde bir wcf servisini referans olarak ilk eklediğimizde varsayılan olarak config dosyasında "maxBufferSize" ve "maxReceivedMessageSize" değerleri "65536" oluyor.Bu iki özelliğin değerini "6553600"  şeklinde değiştirirsek sorunumuz çözülmüş olur.

Eskisi :
maxBufferSize="65536" maxReceivedMessageSize="65536"

Yenisi :
maxBufferSize="6553600" maxReceivedMessageSize="6553600"
Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.