Selobantın ucunu bulamayanlar müjde!

Bir ev kadını geliştirdiği bu yöntemle, soruna çözüm buldu. Çoğumuz bir şeyi asmak veya yapıştırmak amacıyla kullandığımız selobantın ucunu bulamayıp sinir krizlerine girmişizdir. Hadi abartmayalım ama biraz olsun sinirlenmişizdir. Bir ev kadını, geliştirdiği pratik bir alet sayesinde selobantın ucunu bulamayanların sinirlerini yatıştırıyor.

48 yaşındaki Sarah Thorp, bebekler için hazırlanan silecek kutularının tırtıklı kapaklarından yararlanarak hazırladığı bu pratik icatı, eşinin de desteğini alarak Sellotape firmasına götürüyor ve o günden sonra hayatı değişiyor.

Bu pratik buluşun patentini de alan Sarah'ın 'selobant ucu bulucu' aletine 'Easy Star' ismini veren marka, tanesi 4 dolardan bu kullanışlı malzemeyi satışa çıkarmaya başladı bile.

Yetenekli ev kadını, selobantın ucunu bulmak konusunda hayatı boyunca sorun yaşadığını ve bunun kabusa dönüştüğünü anlatırken, yaptığı icadı şöyle anlatıyor:"Eski kredi kartı veya hap kutularından parçalar kesip onları selobantın üzerine yerleştirdim. Sistematik bir yol izledim. Bebek silecek kutusunun tırtıklı kapağını alt tarafa yerleştirerek bantın ucunu oradan çıkardım. Bu iki parçayı bir araya getirince selobant için hazırladığım bu garip alet çıktı. Patenti bana ait olmadığı için öncelikle kimseye anlatmadım"

Dünyaca ünlü süpermarketlerden Tesco'da satılan Sarah'ın 'Easy Star'ı, basit bir alet olarak görünse de, aslında hayatı kolaylaştıran ayrıntılar arasında yerini çoktan aldı bile.


Kaynak:Habercem

C# Asp.Net'te URL'yi yeni Pencerede Açmak

Genelde C# ile kodlama yaparken yeni bir web sayfasında yönlendirme yapmak gerektiğinde aşağıdaki kodu kullanırız:


Response.Redirect("www.ekolay.net");


Ama bu şekilde bir kullanımda sayfa aynı pencerede açılacağı için önceki sayfamız kaybolur. Eğer yeni navigasyon penceresiyle birlikte kaynak sayfasınında çalışmasını istiyorsanız o zaman aşağıdaki biçimde bir kullanım sorununuzu çözecektir.

string navigateURL = "www.ekolay.net";
string target="_blank";
string windowProperties="status=no, menubar=yes, toolbar=yes";
string scriptText="window.open('"+navigateURL+"','"+target+"','"+windowProperties+"')";

Page.ClientScript.RegisterStartupScript(this.GetType(),"eşsizAnahtar",scriptText ,true);


navigateURL: Açmak istediğiniz sayfanız yolu
target: Açılacak sayfanın pencere biçimini belirler.
windowProperties: Açılacak pencerinin özellikleri (yes=göster / no=gösterme)

Böylece C# code behind sayfasından yeni sayfanın farklı bir pencerede açılmasını sağlayabiliriz. Bunların hepsi güzel ama pop-up block'lara da hazır olun.

Visual Studio ile ASP Kodu Yazma

visual studio logo Visual Studio'nun HTML IDE'si çok güçlü bir web development aracıdır. HTML kodlarını geliştirmekte ciddi bir kolaylık sağladığını söylemek yanlış olmaz. Bu güçlü arayüzü sadece .NET uygulamaları kullanmak zorunda değilsiniz. Eğer ASP sayfalarınızı da VS ile geliştirmek istiyorsanız yapmanız gereken aşağıdaki kodu sayfanızın en üst satırına yazmaktır. Böylece ASP için kod tamamlama (code completion), kod renklendirme (syntax highlight) özelliklerini de rahatça kullanabilirsiniz. Hızlı bir ASP kodu geliştirmesi için çok cazip diyebilirim.

    <%@Page Language="VBScript">
    <% ASP konuzu server tagları arasına yazınız %>


Ayrıca eklemek isterim bu kod Visual Studio 2008'te işe yaramamaktadır. Ayrıca satırı ekledikten sonra sayfanızı kapatıp yeniden açmanız gerekmektedir.


Twitter! O da ne?

twitter logo

İşte nurtopu gibi yeni furyamız Twitter. Facebook çılgınlığından sonra eşin,dostun yeni oyuncağı. Zaten facebook sürekli-çatlayıp patlayarak, özensiz ve anlamsız uygulamalarla canımızı sıkmaya başlamıştı.


Peki bu twitter nedir?

Ben bu soruya ancak kendimce cevap verebilirim. Yani tamamen öznel bilgimi sizlere aktaracağım. Twitter; kısacası Web 2.0 çılgınlığının son noktasıdır. İnsanların özel hayatlarını herkesle paylaşma arzusunun son popüler halkasıdır. İşlevsellikte ise o anda ne yaptığınızı birkaç cümleyle yazdığınız, eş-dost,çoluk çocuğun okuyabildiği bir uygulamadır. Sitenin sloganı What are you doing? yani Ne yapıyorsun?. Bu yüzden buraya yazılan kısa yazıları ukte olarak adlandırıyorum. Çünkü sonuçta ne yapıyorsun sorusu aslında aklından neler geçiyor sorusunun cevabını da içermektedir. Neyse; sitenin çok sade bir arayüzü olduğunu belirtmeliyim. Ayrıca siteye kayıt olurken gerekli gereksiz bir ton formuda doldurmuyorsunuz. Şimdi özelliklerini öyle detaylı detaylı anlatmayacağım. Merak ediyorsanız siteyi inceleyip kolayca bu özelliklerin neler olduğunu öğrenebilirsiniz.Şimdilik sadece hoşuma giden bir özelliğini paylaşarak bu konuyu geçeceğim :)

Blogger'ınıza Twitter RSS Beslemesi Ekleme

Eğer kendinizi ifade etmek ve bunu RSS ile yayınlamak istiyorsanız,twitter'ın bu konuda işlerinizi oldukça kolaylaştıracağını söylebilirim. twitter'daki kısa yazılarınızı blogunuzda çıkmasını istiyorsanız yapmanız gereken birkaç basit adım var. Bu adımları anlatmadan önce twitter'ın gömülü olarak blogger.com'a hizmet verdiğini söylemeliyim. Ama ne hikmetse ben ayaralamaya çalışırken hata verdi. Bende B planını devreye soktum. B Planı şöyle işliyor:
Kontrol Panelindeyken Yerleşim > Sayfa Öğeleri > Gadget Ekle > HTML/JavaScript adımlarını takip ederek widgetinizi ekleyin. İçeriğine de aşağıdaki kodu kopyalayıp Kaydet dedin mi, twitter ukteleriniz anında blogger widgetınızda çıkmaya başlayacaktır.



<div id="twitter_div">
    <ul id="twitter_update_list"></ul>
    <a id="twitter-link" style="display:block;text-align:center;"
      href="http://twitter.com/lokmandefterli">Devamı Twitter'da
    </a>
</div>
<script src="http://twitter.com/javascripts/blogger.js" type="text/javascript"></script>
<script src="http://twitter.com/statuses/user_timeline/lokmandefterli.json?
      callback=twitterCallback2&count=5" type="text/javascript"></script>

Kırmızı ile belirttiğim alan sizin twitter hesabınızı ifade eder. Bu kelimeleri kendi hesabınızın(twitter kullanıcı adı) adıyla değiştirin. Ayrıca count parametresi ile RSS beslemesine gelecek ukte adedini belirleyebilirsiniz.

Biri, Türk Telekom'a rakip oluyor

biri logo Türk Telekom'a yeni rakipler geliyor. İşte en güçlü aday...
Yeni markalar, hem ADSL hem de sesli görüşme imkanı sunacaklar. İşte o rakiplerin en yenisini.

Türk Telekom, ülkedeki tüm kablo altyapısının kendisine ait olması nedeniyle rakipsiz gibi görünüyor. Çok ciddi bir rekabetin olabilmesi için, yeni firmanın kendi kablo altyapısını sunması şart. Teknolojinin gelişmesi ve kablolu altyapıların alternatiflerinin oluşması ile beraber, Türk Telekom'un verdiği hizmetlerin aynısını çok daha uygun fiyata sunmak isteyen firmaların sayısı da artıyor.

Telekom'un Rakibi Biri mi?

Bu rakiplerden en yenisi, Koç Grubu'na ait olan "Biri" markası. Telekom'a en ciddi rakip.

Visual Studio Proje Listesini Düzenleme

Visual Studio programını çalıştırdığınızda karşınıza açılış sayfası olarak Start Page gelir. Tabi eğer varsayılan ayarları değiştirmediyseniz. Bu ekranda listelenen projeleri düzenlemek isteyebiliriz. Mesela artık kullanmadığımız bir projeyi listeden silmek isteyebiliriz. Bunun için şu adımları takip etmeliyiz.

  1. Start > Run (Başlat > Çalıştır) seçerek regedit yazarak OK (Tamam) butonuna basınız.
  2. Sırasıyla şu klasörleri açın:
    My Computer > HKEY_CURRENT_USER > Software Microsoft > VisualStudio
  3. VS'nin farklı versiyonları bilgisayarınızda olabilir.
    • VS 2003 için : 7.1
    • VS 2005 için : 8.0
    • VS 2008 için : 9.0
    klasörlerinden düzenlemek istediğiniz VS versiyonunkini seçin.
  4. Son olarak ProjectMRUList klasöründe bulunan File (Dosya) düzenleyebilir/silebilirsiniz
  5. Değişiklikleri VS'yi yeniden başlatarak görebilirsiniz.

Blogger Blogunuzu Google Analytics ile İzlemek

Google Analytics Sayfa İzleme Kodunun Alınması
  1. Google Analytics sayfasından http://google.com/analytics/ google hesabınızla giriş yapın.
  2. Web Sitesi Profili Ekle» linkine tıklatınız. Karşınıza yeni domain eklenmesine izin veren form açılacaktır.
  3. Yeni etki alanı için bir Profil Ekle seçiniz.
  4. Lütfen izlemek istediğiniz sitenin URL’sini verin. alanına blogunuz adresini yazın.
  5. Eğer doğrusu seçili değil ise bulunduğunuz ülkeyi(saat dilimini belirler) seçerek Son butonunu tıklatınız.
  6. Google Analytics; size sayfalarınızın içine gömebileceğiniz javascript kodu üretecektir.(Yeni izleme kodu:ga.js)
  7. Metin alanında bulunan bütün kodu seçerek clipboard'a kopyalayın.(Sağ Klik> Kopyala veya Ctrl-C / Command-C.)
Google Analytics Kod Bloğunu Blog Sayfalarınıza Eklemek
  1. http://www.blogger.com/ adresinden blogununuzun Kontrol Paneline giriş yapın.
  2. Analytics kodunu eklemek istediğiniz blogunuzun Yerleşim linki tıklatınız.
  3. Açılan menüde HTML’yi Düzenle tab linkini tıklatınız.
  4. Bu alandaki kodları görerek korkmanıza gerek yok. Bu alan sayfanızın yerleşim bilgilerini ve stillerini tutar. Metin alanın en sonuna geliniz.
  5. Şablonun en sonuna geliniz. Şu metinleri göreceksiniz:

    </div> </div>
    <!– end outer-wrapper –>
        (Google Analytics Kodunu buraya yapıştırın!)
    </body>
    </html>

  6. Kodunuzu örnekte belirtildiği gibi </body> tagından öncesine yapıştırın.
  7. Son olarak Şablonu Kaydet butonunu tıklatınız

Bu şekilde blogunuzu Analytics kullanarak izleyebilecek ve istatistiklerini görebileceksiniz. Ama son bir iş olarak herşeyi doğru biçimde emin olmak için aşağıdaki adımlarıda takip edelim. Böylece eğer bir yerde hata yaptıysak bunu bütün adımları tekrarlayarak düzeltme şansımız da olur.

İşlemlerin Doğru Yaptık mı? İşte Kontrolü...
  1. Google Analytics kodunu doğru bir biçimde blogunuza eklediğinizden emin olmak için http://google.com/analytics/ sayfasına geri dönün.
  2. Giriş yaptıktan sonra blogunuzun adresinin yanındaki durum kolonunda ya İzleme Yüklendi veya İzleme Yüklenmedi ibarelerini göreceksiniz
  3. İzleme Yüklendi ibaresini görüyorsanız işlemleri doğru yaptınız demektir. 24 saat içinde istatistikleriniz hazırlanmış olacaktır.
  4. Eğer İzleme Yüklenmedi ibaresini görüyorsanız Durumu Kontrol Et linkine tıklatarak google'ın tekrardan sitenizi kontrol etmesini sağlayabilirsiniz
  5. Veri Bekleniyor.Analytics, başarılı bir şekilde yüklendi ve şu anda veriler toplanıyor. ibaresini gördüyseniz işlemleri doğru yaptığınızdan emin olabilirsiniz.
  6. İzleme Yüklenmedi ibaresini görüyorsanız, yukarıdaki anlatıldığı biçimde tekrardan izleme kodunu eklemeye deneyiniz. En sık yaşanan sorunlardan birtanesi kodun kopyalarken değişmesidir.

Server Variables (Sunucu Değişkenleri)

javascript:void(0) Değişken Adı Açıklaması Örnek Çıktı
ALL_HTTP HTTP Header içinde yer alan bütün değişkenler ve değerleri. Header adlarının önünde “HTTP_” öneki vardır. HTTP_CACHE_CONTROL:max-age=0 HTTP_CONNECTION:keep-alive HTTP_KEEP_ALIVE:300 HTTP_ACCEPT:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 HTTP_ACCEPT_CHARSET:ISO-8859-1,utf-8;q=0.7,*;q=0.7 HTTP_ACCEPT_ENCODING:gzip,deflate HTTP_ACCEPT_LANGUAGE:tr HTTP_HOST:localhost:1646 HTTP_USER_AGENT:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
ALL_RAW HTTP Header içinde yer alan bütün değişkenler ve değerleri. Header adları ve değerleri istemci Browser’ın verdiği şekilde gösterilir. Cache-Control: max-age=0 Connection: keep-alive Keep-Alive: 300 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Accept-Encoding: gzip,deflate Accept-Language: tr Host: localhost:1646 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
REMOTE_ADDR İstemcinin Host’unun (ISS’inin) IP’si 127.0.0.1
QUERY_STRING İstemcinin gönderdiği bilgi kümesi cid=1529&pid=test
APPL_MD_PATH Web Server’ın ISAPI.DLL dosyası için varsaydığı kök dizin
APPL_PHYSICAL_PATH Web Server’ın varsaydığı kök dizinin gerçek yolu C:\Documents and Settings\ldefterli\My Documents\Visual Studio 2008\Projects\
AUTH_PASSWORD Kullanıcı Web Server’a kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanılan parola
AUTH_TYPE Kullanıcı Web Server’a kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanılan yetkilendirme yöntemi NTLM
AUTH_USER Kullanıcı Web Server’a kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanıcı adı DOL\ldefterli
LOCAL_ADDR İstemcinin IP numarası 127.0.0.1
LOGON_USER İstemci Windows NT sisteminde ise oturum açma adı DOL\ldefterli
PATH_INFO Çalışmakta olan ASP’nin göreli yolu ve adı /Projects/ServerVariables.aspx
PATH_TRANSLATED Çalışmakta olan ASP’nin gerçek yolu ve adı C:\Documents and Settings\ldefterli\My Documents\Visual Studio 2008\Projects\ServerVariables.aspx
SERVER_PROTOCOL Server’ın çalıştırdığı HTTP’nin sürümü HTTP/1.1
SERVER_SOFTWARE Server programının adı ve sürümü URL Şu anda geçerli URL
SERVER_PORT_SECURE TCP kapısı güvenli ise 1, değilse 0 0
SERVER_PORT Sunucuya bağlantının geldiği TCP kapı numarası 1646
SERVER_NAME Sunucu’nun adı localhost
SCRIPT_NAME Çalışmakta olan ASP’nin adı /Projects/ServerVariables.aspx
REQUEST_METHOD İstemciden bilgi isteme yöntemi (GET veya POST) GET
REMOTE_USER İstemcinin gerçek adı DOL\ldefterli
REMOTE_HOST İstemcinin Host’unun (ISS’inin) adı 127.0.0.1
CERT_COOKIE Kullanıcı siteye bağlanmak için yetkilendirme sertifikası kullanıyorsa kendisine verilen kimlik (ID)
CERT_FLAGS Sertifikanın varlığını gösteren bit değeri
CERT_ISSUER Sertifika varsa veren kurum
CERT_KEYSIZE Secure Socket Layers kullanılıyorsa, bağlantı için anahtar değeri
CERT_SECRETKEYSIZE Özel anahtar değeri
CERT_SERIALNUMBER Sertifika seri no.
CERT_SERVER_ISSUER Sertifikayı veren merci
CERT_SERVER_SUBJECT Server Sertifikasının “konu” alanı değeri
CERT_SUBJECT İstemci Sertifikasının konu alanı değeri
CONTENT_LENGTH İstemcinin gönderdiği bilgi yumağının boyutu 0
CONTENT_TYPE Ziyaretçiden gelen bilgilerin GET veya POST metoduna göre edindiği tür
GATEWAY_INTERFACE Web Server’ın ziyaretçi ile etkileşim arayüzünün adı ve sürümü. Genellikle: CGI/1.1 HTTPS Ziyaretçi ile bağlantı güvenli ise ON, değilse OFF
HTTPS_KEYSIZE Secure Sockets Layer için bağlantı anahtar sayısı
HTTPS_SECRETKEYSIZE Özel Server sertifikasının gizli anahtar sayısı
HTTPS_SERVER_ISSUER Özel Server sertifikasının veren merci
HTTPS_SERVER_SUBJECT Özel Server sertifikasının konusu
INSTANCE_ID Web Server’ın aynı anda kaç kere çalışmakta olduğu
INSTANCE_META_PATH Şu anda çalışmakta olan Web Server’ın Meta yolu

Özgürlük için bir adım daha: Pardus 2008

Pardus 2008

Pardus projesinin en yeni teknolojiler ve en güncel yazılımlarla güçlendirilmiş yeni sürümü Pardus 2008 yayımlandı. Daha önceki tüm sürümleri gibi bir özgür yazılım olan Pardus 2008, GNU Genel Kamu Lisansı (GPL) ile özgürce dağıtılıp çoğaltılabiliyor. Pardus projesinin temel hedefleri olan kolay kurulum ve kullanım yönünde, gerek altyapı ve gerekse kullanıcı arayüzü düzeyinde önemli yeniliklere sahip olan Pardus 2008 aynı zamanda geniş donanım desteği, kararlı ve güvenilir Linux altyapısı ve tek bir CD ile gelen çok çeşitli uygulamaları ile masaüstü kullanıcılarına yepyeni bir özgürlük deneyimi yaşatmayı vaat ediyor.

Pardus 2008 ile gelen yenilikleri öğrenmek için Sürüm Notları sayfasını inceleyebilir ya da CD görüntüsünü indirmek için İndir sayfasına gidebilirsiniz.

Pardus 2008 ile daha özgür günler...

Kaynak:pardus.org.tr

Javascript ile div Gizleme ve Gösterme

Çok sık ihtiyaç duyduğumuz bir html kontrolünden bahsedeceğim.Bazen sayfa üzerindekli bazı panelleri (div) gizleme ve bir kontrolden sonra gösterme ihtiyacı duyabiliriz. Bunun için oldukça kullanışlı ve bir o kadar da basit bir javascript kullanabiliriz. Gizlemek istediğimiz bütün içeriği bir (div) içerisine koyun. Sonrasında bu (div)'e bir ID verin. (Div)'i gizlemek için

function hidemenu(elmnt)
{
     document.getElementById(elmnt).style.display="None"
}

Tekrardan görünür hale getirmek için;

function showmenu(elmnt)
{
     document.getElementById(elmnt).style.display=""
}

javascriptlerini kullanabilirsiniz."elmnt" parametresi tahmin edebileceğiniz gibi gizlemek istediğiniz (div)'in ID'si olacaktır

Hindistan'dan Bir Garip Reklam


Hindistanlıların bu ağır çalışma koşullarındaki kanaatkarlığını takdir ettim vallahi ;)

Enterprise Library Kullanarak Veritabanından Veri Çekmek

Eğer bilgisayarınıza Enterprise Library kurduysanız, yaşamınızı kolaylıştıracak özelliklerini de kullanmak isteyeceksenizdir. Bu yazımda EL(Enterprise Library)'yi kullanarak veritabanından veri çekme konusunu ele alacağım.

EL'yi kullanabilbek için öncelikle aşağıdaki referanslarımıza eklememiz gerekiyor.
  • Microsoft.Practices.EnterpriseLibrary.Common
  • Microsoft.Practices.EnterpriseLibrary.Data
  • Microsoft.Practices.EnterpriseLibrary.Data.Configuration.Design

EL'yi yüklediğimiz zaman, web config dosyasını arayüz aracılığıyla ayarlama (config) opsiyonuna sahip oluruz. Bunun için tek yapmamız gereken web.config dosyasını sağ tıklatıp "Edit Enterprise Library Configuration" seçiyoruz.
Karşımıza web.config dosyası üzerinde detaylı global tanımlamarı da yapabileceğimiz arayüz ekranı gelecektir. Bu örneğimizde sadece data konusunu inceleyeceğim. Diğer Application Block tanımlamalarına bu yazımda deyinmeyeceğim. Genelde Data Access Application Block varsayılan (default) olarak tanımlı gelir. Data manipulasyonunda bu block kullanılır. Eğer yok ise projemize yeni bir veritabanına erişim cümleciği eklemek için sağ klik yapıp menüden New > Data Access Application Block seçiyoruz.
Application Block'u tanımladıktan sonra Connection Strings elementini sağ tuşla tıklatarak açılan menüden New > Connection String'i seçiyoruz. Bu sayede web config dosyamıza EL'nin veri tabanına erişim için kullanabileceği bir connection string tanımlamış oluyor.
Tanımladığımız Connection Stringin Ayarlar (Properties) sekmesinde bağlantı detaylarını ayarlamamız gerekmektedir. Provider Name için kullandığınız veritabanına uygun olan bağlantı şeklini seçiniz. Eğer Microsoft SQL Server kullanıyorsanız System.Data.SqlClient seçmemiz gerekmektedir. Connection String propertysini manuel giribileceğimiz gibi bağlantı sihirbazını da kullanabiliriz. Bunun için |...| tıklatınız.
Buradan bağlantı yapacağınız veritabanın bağlantı bilgilerini (server,username,password,database) belirterek Tamam (OK) butonuna basınız. Hepsi bu kadar. Sadece arayüzleri kullanarak veritabanına erişim cümleciğini config dosyamıza ekledik. Bu şekilde birden fazla veritabanı tanımlamasını yapabiliriz. Bu örneğimizde AdventureWorks veritabanını kullandım.
Şimdi ayarlarımızı yapıp EL'nin arayüzünü kapatıp web.config dosyasının içeriğini görüntüleyelim. Böylece eklenen cümleciği görebiliriz. Aşağıda da göreceğiniz üzere arayüz, erişim cümleciğini bizim için hazırlayarak config dosyasına ekledi. name property'sine belirttiğimiz adı kod tarafında veritabanı oluştumak için kullanacağımız için anlamlı bir isimlendirme yapmanızı tavsiye ederim.
Örneğin;yorum VTsi(veritabanı) için DBYorum,puanlama VTsi için DBPuan gibi...
Çektiğimiz veriyi görebilmek için için HTML'ye bir gridview ekledim. Referans kütüphanelerimizi eklemeyi unutmayalım:
  • using Microsoft.Practices.EnterpriseLibrary.Data;
  • using Microsoft.Practices.EnterpriseLibrary.Data.Sql;
  • using System.Data.Common;
Sayfanın açılışında çektiğimiz veriyi göstersin diye Page_Load metodunda veriyi bağladım. Bunun için ayrı bir fonksiyon tanımladım: GetProductsInCategory(int ProductModelID). Basitçe anlatmak gerekirse;ürünün kategorisini alarak ilgili ürünleri getirme işlevine sahip.
using System;
using System.Data;
using Microsoft.Practices.EnterpriseLibrary.Data;
using Microsoft.Practices.EnterpriseLibrary.Data.Sql;
using System.Data.Common;
using System.Text;
using System.Xml;
namespace Denemeler2008
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            GridView1.DataSource = GetProductsInCategory(3);
            GridView1.DataBind();
        }


        public static DataTable GetProductsInCategory(int ProductModelID)
        {
            Database dbContent = DatabaseFactory.CreateDatabase("ConnectionString");
            DataSet dsData = null;
            DbCommand cmdData = dbContent.GetStoredProcCommand("GetProductsByCategory");
            dbContent.AddInParameter(cmdData, "@ProductModelID", DbType.Int32, ProductModelID);
            dsData = dbContent.ExecuteDataSet(cmdData);
            return dsData.Tables[0];
        }
    }
}

Veriyi çekebilmek için önce bir Database tanımlanmalıdır. Tanımlama esnasında web.config'teki bağlantı cümleceğimizi kullanıyoruz. Stored prosedürünün EL ile birlikte kullanımı örneğimizdeki gibidir. Parametre eklenmesi ve Command'ın tanımlanması sadece 2 satır koddan ibarettir. Ayrıca veriyi direkt dataset olarak okuyabilmekteyiz.

Kodumuzu hatasız yazdıktan sonra veriyi istediğimiz gibi kullanabiliriz. Aşağıdaki sonuç gridview'ının görüntüsü bulunmaktadır.
Benim tavsiyem Database tanımlamalarını global yapmanız. Böylece VT erişiminlerinde tekrar tekrar tanımlayarak performanısın düşmesini önleyebiliriz.
Enterprise Library bize Hata yakalama (Error Handling),Caching,Loglama,Şifreleme için kullanabileceğimiz kullanışlı birçok kod bloğu sunar. Bu yazıda yalnızca Data Application Block'una değindim. EL'nin diğer özellikleri için gelecek yazılarımı bekleyin...

Ayda 9,99 YTL'ye ADSL

Turkcell grup şirketi Tellcom, Superonline işbirliği ile ADSL bağlantısında bir kampanya başlattı.
Tellcom, bugün başlayan yeni kampanyası kapsamında, Superonline ADSL hizmetini ayda 9,99 YTL’ye sunacak. Şirket’ten yapılan açıklamaya göre 9 Ekim 2008 tarihine kadar süreceği bildirilen kampanyada abone başına 29 YTL olan bağlantı ücreti alınmayacak. Ayrıca talep eden müşterilere, istendiği takdirde kablosuz ya da kablolu modem de ücretsiz olarak hediye edilecek.

Kampanyanın detayları içinhttp://www.tellcom.com.tr/bireysel/kampanyalar/9-99.aspx

WEB Teknolojilerinin Tarihçesi

Web teknolojilerinin gelisimi son senelerde oldukça siklasti. Peki bu hizli gelisimde ortaya çikan yeni teknolojilerin tarihçesi nedir? Gelin beraberce bu teknolojilerin üzerinden kronolojik olarak geçelim, özette nedir bir bakalim.
1987
PERL
1991
LINUX
1994
CSS
PHP
JAVA
1995
COLD FUSION
1996
XML
1997
SMIL
DHTML
1998
SOAP
1999
RSS
2000
ACTION SCRIPT ASP.NET XHTML XFORMS
2002
W3C DOM
2004
RUBY ON RAILS
2005
AJAX
WEB Teknolojileri Tarihçesi 1987

PERL Perl programlama dili ayni zamanda "Practical Extraction and Report Language" (Pratik Çikarim ve Raporlama Dili) ve "Pathologically Eclectic Rubbish Lister" (Hastalikli Derecede Eklektik ve Saçma Listeleyici ) olarak da bilinir. ;) 1987 yilinin 18 Aralik günü Larry Wall tarafindan dünyaya armagan edilmistir. C, sed, awk, sh ve baska pek çok dilin önemli ve güçlü özelliklerini bünyesinde barindirmaktadir. Yogun sekilde metin isleme ve görüntü tanima söz konusu oldugunda kullanilabilecek en güçlü ve pratik programlama dilidir. 17 yildir gelistirilen ve özgür yazilim çerçevesinde kaynak kodu açik olarak sunulan Perl programlama dili hemen hemen tüm isletim sistemlerinde çalismaktadir. Perl ile ilgili sloganlardan biri: Perl programlarinin %90'i zaten yazilmistir! Bunun sebebi CPAN yani Comprehensive Perl Archive Network olarak isimlendirilen ve Perl ile ilgili binlerce hazir modülü barindiran sistemdir. Bu madde yazildigi esnada CPAN bünyesinde 3739 Perl gelistiricisi, 6646 Perl modülü bulunmaktadir. 2421 MB yer kaplayan sistemin 247 yansisi bulunmaktadir. Bunun anlami sudur: Yapmayi düsündügünüz bir isle ilgili modül, fonksiyon, sistem, vs. büyük bir olasilikla zaten yazilmistir, hazir olarak alip kullanabilirsiniz.

1991

LINUX Linux, Linus Torvalds'in Helsinki Üniversitesi'nde bir ögrenci iken Intel'in yeni islemcisi 80386'nin korumali mod mimarisini denemek üzere gelistirmeye basladigi Unix (aslen Minix) tabanli bir isletim sistemi çekirdegidir. Yani Linux, Linux dagitimlarinin bel kemigini olusturmaktadir. Internette yaptigi duyuru sonucunda tüm dünyadan birçok programcinin da destegi ile hizla gelismis ve halen ayni destek ile gelismekte olan açik kaynak kodlu, özgür bir yazilimdir. Hizli bir sürecin sonunda Linus'un gelistirdigi çekirdek, GNU hareketinin bir meyvesi ve ayni zamanda tasiyicisi haline gelmistir. GNU için yazilmis özgür yazilimlar çok kisa süre içerisinde Linux çekirdegi ile uyumlu çalisabilecek hale getirilmis ve ortaya güçlü, kararli, esnek ve açik kaynak kodlu bir isletim sistemi çikmistir. GNU/Linux olarak anilmasi gereken isletim sistemi zaman içerisinde telaffuz kolayliklarindan ötürü Linux olarak anilmaya baslanmistir. Açik kodlu bir yazilim olan Linux özgür gelisimi, yaraticiligi ve bagimsiz ilerlemeyi desteklemekte ve bilisim dünyasindan destek görmektedir.

1994

CSS Cascading Style Sheets (Türkçede Stil sablonlari) yani bilinen kisa adiyla CSS, HTML'e ek olarak metin ve format biçimlendirme alaninda fazladan olanaklar sunan bir web teknolojisidir. Internet sayfalari için genelgeçer sablonlar hazirlama olanagi verdigi gibi, bagimsiz olarak harflerin stilini; yani renk, yazi tipi, büyüklük gibi özelliklerini degistirmek için de kullanilabilir. Bu teknigin en önemli özelligi kullanimindaki esnekliktir. Bir web sayfasi içerisinde birbiriyle uyumlu birkaç renk ve birkaç yazi tip kullanilir ve bunlari her sayfada ayri ayri tekrar belirtmek yerine CSS yardimiyla bir sefer tanimlayip bütün web sayfalarinda ortak olarak kullanilabilir. Bu sekilde, sayfalarin hafizadaki boyutu epey küçüldügü gibi, güncelleme yapmak da kolaylasir. CSS kodlari; HTML kodlarinin içine yazilabildigi gibi harici bir CSS dosyasi olusturularak da islem yaptirilabilir. Türüne göre veya <HEAD> bölümlerinde yer alabilirler. CSS kodlarinin, HTML dosyasina eklenmesi temelde 3 farkli sekilde yapilabilir.

PHP

PHP,dinamik ve interaktif web sayfalari olusturmak için kullanilan güçlü bir sunucu-tarafli script programlama dilidir. Dil yazim kurallari açisindan C ve Perl e benzer ve genellikle herhangi bir isletim sistemi altinda Apache (web sunucu) ile birlikte kullanilir. Windows üzerinde microsoft ISS ile birlikte kullanmak da zorlu bir kurulum asamasindan sonra mümkün olmaktadir. PHP, "PHP: Hypertext Preprocessor" anlamina gelen özyineli bir tanimdir. Eski haliyle Personal Home Pages olan PHP, Rasmus Lerdorf tarafindan gelistirilmeye baslamistir. Daha çok dinamik web içerigi olusturmak için kullanilan PHP, son zamanlarda IBM, Oracle ve Zend'in girisimleriyle kurumsal yazilim gelistirme platformu haline getirmeye çalisilmaktadir. 2006 senesinin Kasim ayi itibariyla tüm dünya çapinda 25 milyondan daha fazla alanda kullanilmakta ve bu sayi giderek artmaktadir.

JAVA

Java, Sun Microsystems mühendislerinden James Gosling tarafindan gelistirilmeye baslanmis açik kodlu, nesneye yönelik, platformdan bagimsiz, yüksek performansli, çok islevli, yüksek seviye, adim adim isletilen (interpreted) bir dildir. Java ilk çiktiginda daha çok küçük cihazlarda kullanilmak için tasarlanmis ortak bir platform dili olarak düsünülmüstü. Ancak platform bagimsizligi özelligi ve standart kütüphane destegi C ve C++'tan çok daha üstün ve güvenli bir yazilim gelistirme ve isletme ortami sundugundan, hemen her yerde kullanilmaya baslanmistir. Su anda özellikle kurumsal alanda ve mobil cihazlarda son derece popüler olan Java özellikle J2SE 1.4 ve 5 sürümü ile masaüstü uygulamalarda da yayginlasmaya baslamistir. Java'nin ilk sürümü olan Java 1.0 (1995) Java Platform 1 olarak adlandirildi ve tasarlama amaçina uygun olarak küçük boyutlu ve kisitli özelliklere sahipti. Daha sonra platformun gücü gözlendi ve tasariminda büyük degisiklikler ve eklemeler yapildi. Bu büyük degisikliklerden dolayi gelistirilen yeni platforma Java Platform 2 adi verildi ama versiyon numarasi 2 yapilmadi, 1.2 olarak devam etti. 2004 sonbaharinda çikan Java 5, geçen 1.2, 1.3 ve 1.4 sürümlerinin ardindan en çok gelisme ve degisikligi barindiran sürüm oldu. Java SE 7 ise (kod adi: Dolphin) Sun'un üzerinde çalistigi, Java teknolojisinin gelecekteki sürümüdür. 13 Kasim 2006 da Java platformu GPL lisansiyla açik kodlu hale gelmistir.

1995

COLD FUSION ColdFusion;Bir web programlama dilidir.Daha çok web tabanli uygulamalar yazmakta kullanilir.JJ Allaire ve kardesi Jeremy Allaire tarafindan gelistirilen coldfusion,sonradan Macromedia ile Allaire firmalarinin birlesmesi sonucunda Macromedia bünyesine katilmistir.Coldfusion'un dili "Cfml"dir.

1996

XML Genisletilebilir Isaretleme Dili (XML; eXtensible Markup Language), hem insanlar hem bilgi islem sistemleri tarafindan kolayca okunabilecek dokümanlar olusturmaya yarayan, W3C tarafindan tanimlanmis bir standarttir. Bu özelligi ile veri saklamanin yaninda farkli sistemler arasinda veri alisverisi yapmaya yarayan bir ara format görevi de görür. SGML'in basitlestirilmis bir alt kümesidir. XML'in tasarimcisi, HTML'i de tasarlamis olan Tim Berners Lee'dir. Dilin düzenlenmesi de W3C'nin sorumlulugundadir. Günümüzde birçok yazilim, diger yazilimlarla veri alisverisini XML formati üzerinden yapmaktadir. Ayrica XML'i esas format olarak kullanan uygulamalara, veri tabanlarina rastlamak mümkündür. Microsoft'un gelistirdigi .NET teknolojisinde kullanilan DataSet nesneleri XML formatindadir. Ayrica XML, ofis uygulamalarinin alt yapisi haline getirilmistir. Içerigin, doküman yapisinin ve seklin birbirinden ayri ele alinmasi XML'i Içerik yönetim sistemlerinin ideal formati haline getirmistir.

1997

SMIL Real Networks tarafindan gelistirilen bir XML versiyonudur. Medya belgelerini daha etkilesimli kilmayi amaçlamaktadir.

DHTML

DHTML, yani Dinamik HTML; Javascript'in olay modelinin temelleri üstüne insa edilen CSS/Html teknolojilerinin yapisi için kullanilan kisaltmadir.

1998

SOAP Uygulamalarin XML araciligiyla iletisimini saglar.Bu senede W3C standarti haline geliyor.

1999

RSS RSS, genellikle haber saglayicilari, bloglar ve podcastler tarafindan kullanilan, yeni eklenen içerigin kolaylikla takip edilmesini saglayan özel bir XML dosya formatidir. Kullandigi dosya biçimleri .rss ve .xml'dir. Dan Libby(Netscape), XML'e dayanarak metin ve multimedya içereiginin kolaylikla iletilebilmesi için gelistirmistir. RSS kisaltmasinin açilimi ve zaman içinde gelisimi söyledir:

  • * Rich Site Summary (RSS 0.91)
  • * Really Simple Syndication (RSS 2.0.0)
  • * RDF Site Summary (RSS 0.9 and 1.0)
Internet kullanicisi RSS teknolojisi ile düzenli olarak içerik sunan sitelere abone olabilir ve çesitli RSS istemcileri sayesinde içerigi takip edebilir. Site yöneticisi veya sahibi bu hizmeti sunmak için bir takim teknik düzenlemeler yapmali ve uygun formatta XML'i RSS istemcisi talep ettiginde göndermelidir
2000

ACTION SCRIPT Flash ile çalisan Javascript benzeri bir yapiya sahiptir.

ASP.NET ASP.NET, Microsoft tarafindan pazarlanan bir web uygulama gelisimi teknolojisidir. Özdevinimli (dinamik) web sayfalari, web uygulamalari ve XML tabanli web hizmetleri yaratilmasina olanak saglar. Ayni isletme tarafindan gelistirilen .Net çatisi'nin (framework) parçasi, ve artik isletmece desteklenmeyen ASP teknolojisinin devamini teskil eder. Her ne kadar isim benzerligi olsa da ASP.NET, ASP'ye oranla çok ciddi bir degisim geçirmistir. ASP.NET kodu ortak dil çalisma zamani (ingilizce - common language runtime) altyapisina dayali çalisir, diger bir deyisle, yazilimcilar .Net çatisi tarafindan desteklenen tüm dilleri ASP.NET uygulamalari gelistirmek için kullanabilirler. Yani, Java teknolojisinde oldugu gibi, yazilimci tarafindan yazilan kod, çalistirilmadan önce sanal bir yazilim katmani tarafindan ortak bir dile çevirilmektedir.

XHTML

XHTML, açilimiyla Extensible HyperText Markup Language türkçesi Gelistirilebilir Büyütülmüs Metin Isaretleme Dili istemci tarafli(client side) bir metin isaretleme dilidir. XHTML 26 Haziran 2000'den beri bir web standartidir. Kodlama olarak oldukça büyük farklar yaratan bu dil için:'Xml sözdiziminin Html içinde kullanilmasi.' diyebiliriz. Html dilinin farkli tarayicilarda(Bknz. Internet Explorer, Firefox, Opera) farkli yorumlanmasi ve sözdiziminde fazla düzensizlik ve hata oldugu için XHTML W3C(World Wide Web Consortium - WWW) tarafindan önerilmistir. XHTML'nin diger bir özelligide kodlama yapanlari CSS teknolojisini kullanmaya özendirmesidir.

XFORMS

Standart HTML formlardan daha karmasik formlarin gelistirilmesinde kullanilir

2002

W3C DOM Dünya Çapinda Ag Birligi (World Wide Web Consortium ya da kisaca W3C) Ekim 1994'te Ag'in mucidi Sir Tim Berners-Lee tarafinan MIT ve CERN bünyesinde kurulmus uluslarasi Dünya Çapinda Ag (WWW) standartlarini belirleyen örgüttür.

2004

RUBY ON RAILS Ruby On Rails, Ruby diliyle yazilmis bir web(ag) uygulama gelistirme çatisidir (framework). Temeli Model-View-Controller paternine dayanmaktadir. Ortaya çikisi ile birlikte web uygulama gelistirme konusunda yeni yöntemler sunmustur. Ruby on Rails temel olarak Convention over Configuration ve Don't Repeat Yourself (DRY) felsefesi üzerine kurulmustur. "Convention over Configuration" ile, Ruby on Rails çatisi tarafindan daha önceden belirlenmis kurallara uygun yazilim gelistirilerek, çesitli konfigürasyonel ve yazilimla ilgili rutin islerin otomatik olarak Ruby on Rails çatisi tarafindan yapilmasi kastedilmektedir. En iyi örnek, Ruby on Rails'in Model altyapisini olusturan ActiveRecord yapisindan verilebilir. Rails'de yazilim gelistirmeye baslamadan önce, veritabaninda bulunan tablolar isimlendirilirken, Ingilizce çogul olacak sekilde verilirse (örnegin; customers, products vb.), kod içinde sadece customer.products seklinde yazarak iki tablo arasinda iliski saglanabilir ve müsterinin satin aldigi ürünlerin bilgisine baska herhangi bir kod yazmaya gerek kalmadan ulasilabilir. Yazilimi kolaylastirici benzer kurallar Ruby on Rails'de oldukça fazladir. Don't Repeat Yourself (DRY) felsefesi ise ayni uygulama içinde ayni isi yapan kod parçalarinin en aza indirilmesini öngürür. Örnegin, View altyapisinda kullanilan "partial" yapisi, yazilmis bir kod parçacigini, birçok farkli noktada kullanabilmeyi saglar. Rails, uygulamanin küçük parçalara ayrilarak, kod tekrarini önlemek konusunda oldukça basarilidir.

2005

AJAX AJAX (Ingilizce:Asynchronous JavaScript and XML), Internet sayfalarinda JavaScript ve XMLHttpRequest kullanimi ile etkilesimli uygulamalar yaratan teknigin adidir. Nasil okunmasi gerektigi konusunda bir genel uzlasma olmamakla birlikte çogunlukla yazildigi gibi 'ajaks' olarak okunurken, kimileri tarafindan ayni yazimli isme iye futbol takimi örnek gösterilerek 'ayaks' olarak okunmaktadir. Ingilizce'de 'ey-ceks' olarak okunur. En yaygin kullanim alani, sayfayi yeniden yüklemeye gerek kalmaksizin, sayfada görünür degisiklikler yapmaktir. XMLHttpRequest kullanilarak birden fazla bagimsiz islem yapilabilir. Bazi bilisim uzmanlari, AJAX'in HTML ve XML'den sonra en yenilikçi Internet yazilimi oldugunu ve Web 2.0.'i sonlandirip, 3. evrenin kapisini açtigini öne sürmüslerdir. Asynchronous JavaScript and XML sözcüklerinin kisaltmasi olan Ajax, etkilesimli (interaktif) web uygulamalari yaratmak için kullanilan bir web programlama teknigidir. Temel amaci arka planda sunucuyla ufak miktarda veri degisimi sayesinde sayfayi daha hizli güncellenebilen web sayfalari yapmak, dolayisiyla kullanicinin istedigi her anda bütün web sayfasini güncellemek derdinden kurtulmaktir. Bu da web sayfasinin etkilesimini, hizini ve kullanilabilirligini artirmak demektir. Ajax teknigi asagidaki teknolojileri kullanir:

  • Bilgiyi biçimlendirmek ve görüntüsünü degistirmek için XHTML (ya da HTML) ve CSS.
  • Görüntülenecek bilgiyi dinamik olarak göstermek ve onunla etkilesimli çalismak için özellikle JavaScript ve JScript gibi ECMAScript olan kullanici tarafindaki bir scripting dili yardimiyla erisilebilen DOM.
  • Web sunucusu ile bilgi degis tokusunda kullanilan XMLHttpRequest objesi. Bazi Ajax frameworklerde ve bazi durumlarda web sunucusuyla bilgi alisverisi için XMLHttpRequest yerine IFrame de kullanilir; diger uygulamalarda ise dinamik olarak eklenen JavaScript TAG'leri de kullanilabilir.
  • Kullaniciyla sunucu arasindaki bilgi alisverislerinde genelde XML formati kullanilir. Önceden hazirlanmis HTML, düz metin, JSON ve hatta EBML dahi olmak üzere herhangi bir format da kullanilabilir. Bu tip dosyalar sunucu tarafinda herhangi bir script (PHP, ASP vs.) ile bile üretilmis olabilir.
  • DHTML, LAMP ve SPA gibilerin aksine Ajax kendi basina bir teknoloji degildir, ancak terim birçok teknolojinin bir bütün olarak kullanildigini ifade eder.

SqlReader ile Grid doldurmak

Bu makalemde sık sık ihtiyaç duyduğumuz bir kontrolün çalışmasını ele alacağız. Veri tabanına erişerek stored procedure ile veri ceçekeceğiz. Kodun içerisine SQL cümleciklerini yazmaktansa stored procedure kullanmak daha güvenilir ve hızlı bir metodtur. Örneğimizde bir data gride veritabanımızdan okuduğumuz çalışanların listesini aktaracağız. Bunun için Page_Load eventından gridi dolduracağımız PopulateCalisanlarGrid(10);fonksiyonu çağırıyoruz. Buradaki "10" kaç adet verinin geri döneceğini göstermektedir.
protected void Page_Load(object sender, EventArgs e)
{
   if ( !IsPostBack )
   {
      PopulateCalisanlarGrid(10);
   }
}

Şimdide fonksiyonumuzu yazalım. "RowCount" değişkeni öncedende belirttiğim gibi stored proceduren geri döndereceği veriyi beliryecek bir parametredir. Bağlantı cümleciğimiz tanımlıyoruz. Sonrasında SqlConnection ve SqlCommand instance'larını tanımlıyoruz.
private void PopulateCalisanlarGrid(int RowCount)
{
   string connstr = @"Initial Catalog=<databasename>;" +
            @"Data Source=<server name>;" +
            @"User ID=<username>;" +
            @"Password=<password>";
   SqlConnection conn = new SqlConnection(connstr);
   SqlCommand comm = new SqlCommand();

Bu örneğimmizde stored procedure kullanacağımız için "CommandType" özellikle belirtmeliyiz. Command Type default olarak "Text" tanımlıdır. "CommandText" olarak stored prosedürün adını yazıyoruz. Ardından komutumuz ile bağlantımızı ilişkilendiriyoruz.
   comm.CommandType = CommandType.StoredProcedure;
   comm.CommandText = "sp_Get_CalisanlarListesi";
   comm.Connection = conn;

İşte geldik stored procedure parametre eklemeye. Bunun için SqlParameter tanımlayarak ta "SqlCommand.Add(SqlParameter)" tipinde de ekleyebilirdik. Ben kısa olduğunu düşünerek aşağıdaki yöntemi kullandım. Direkt olarak parametreyi constructor'da tanımladım. Bunun için parametrenin adını ve tipini belirtmemiz yeterlidir. Ardından parametrenin değerini atadık.
   comm.Parameters.Add("@RowCount", SqlDbType.Int);
   comm.Parameters["@RowCount"].Value = rc;

Bu örneğimde veriyi "SqlDataReader" ile okuyup kolon tanımlamasını kendi yaptığım bir "DataTable" ekledim. Aşağıda DataTable'ın tanımlanmasını görmektesiniz.
   DataTable dtbData = new DataTable();
   dtbData.Columns.Add("calisanID", typeof(string));
   dtbData.Columns.Add("Adi", typeof(string));
   dtbData.Columns.Add("Soyadi", typeof(string));

Veee geldik son aşamaya. Bağlantımızı açıp komutumuzu çalıştırıyoruz. Readerdan okunan verileri DataTable'ımıza aktarıyoruz. Bu şekilde yapmamın temel sebebi reader'dan veriyi okurken istediğimiz şekilde manüpüle edebiliyor olmamız.
   try
   {
      conn.Open();
      SqlDataReader dr = comm.ExecuteReader(CommandBehavior.CloseConnection);
      while ( dr.Read() )
      {
         DataRow drow = dtbData.NewRow();
         drow["calisanID"]= dr["EmployeeID"].ToString();
         drow["Adi"] =dr["Name"].ToString();
         drow["Soyadi"] = dr["Surname"].ToString();
         dtbData.Rows.Add(drow);
      }    }
   catch ( Exception )
   {
      throw ex;
   }
   finally
   {
      conn.Close();
   }
   grdCalisanListesi.DataSource = dtbData;
   grdCalisanListesi.DataBind();
}

Son olarakta elimizdeki datayı gridimize ekleyerek işlemimizi sonlandırıyoruz.

Perl : Özetle nedir?

İlk sürümü 1987 yılında çıkan Perl birçok büyük web sitesinin bileşenlerinden birisidir. Örneğin Yahoo!, kullandığı arama robotları ve arama robotlarının bulunduğu sayfaları veritabanına almak için Perl'ü kullanmıştır. Perl birçık sitenin HTML form verilerini işlemektedir ve özelliklede metinleri işlemekteki gücüyle ön plana çıkar. Eğer CGI script'ler hazırlanmak istenirse Perl en iyi seçeneklerdendir.

Her ne kadar Perl kullanımı kolay olan bir dil olarak bilinse de bu nesdeldir. HTML gibi dillere alışık olan kullanıcı Perl'ü gördüğünde büyük ihtimalle bir daha yanına yaklaşmak istemyecektir. Etkin bir dil olan Perl için, Perl uzmanları bile yazdıkları kodun tamamlanmasından ardından anlamakta zorluk çektiklerini belirtmektedirler.

Artıları:
  • Açık kaynak kodlu olması
  • Neredeyse her türlü platformda kullanılabilmesi
  • Metin ve form işlemediki gücü
  • Öğrenmenin nispeten kolay olması
Eksikleri:
  • Yeni başlayanlara göre olmamamsı
  • Kodlarının karmaşık olması(Kendi kodunuzu yazmak yerine başkasınınkini kullanmak daha kolay )
Daha fazlası için : Perl.com

Yaratıcı Yazılım Geliştirici Olmanın 14 Yolu

Kod yazmak, dünyanın en yaratıcı işlerinden bir tanesidir. Programcılık gerçek kontrol demektir. Sıfırdan bir şey yaratmak muhtemelen yaratcılığın en iyi örneğidir. Bir yazılım veya web sitesi, programcı nereye isterse oraya gider. Bir şeyi yapmanın bir çok yolu vardır. Bir web sitesi için programcının bir framework yazması gerekir. Ve bu noktaya ulaşmak için elinde olan tek şey bir fikirdir. Programcılar yaratıcı çözümler bulmak zorundalar, yoksa yaratamazlar. Programcılar sıradışı düşünmenin harika örneklerini sergilerler, çünkü sırayı onlar yaratır. Bakın yaratcılığımızı doruğa çıkarmak için programcılardan neler öğrenebiliriz:


1. Yeni Bir Dil Öğrenin
Programcılar sürekli yeni diller öğrenirler, bazen gerektiği için, bazen eğlenmek için. Kendinizi bildiklerinizle ve rahat kullandıklarınızla sınırlamayın, gidin ve yeni bir yetenek edinin.


2. Sıfırdan Başlayın
Eğer yazılım üretiyorsanız, işe yarı yoldan başlayamazsınız. Önce ilk adımı atmak zorundasınız. Bazen bir probleme yaratıcı bir çözüm bulmanın yolu en başa gidip tekrar ileri bakmaktır.


3. Her Şeyi Sorgulayın
Her şeyi sorgulamak, her kabullenmeyi yeniden ele alıp doğruluğundan emin olmak demektir. Programcılık tamamen, en temel varsayımları ele alıp bunların üzerine inşa etmektir. Eğer temelde bir yanlış varsa, yazılım düzgün çalışmaz. Yaratıcılık bazen kabullenmelerle sınırlıdır. Yeni çözümler varsayımları tekrar ele alıp yeni bakış açılarıyla yeniden başlayarak ortaya çıkar.


4. Keyif İçin Yapın
Eğer bir programcı tanıyorsanız bilirsiniz ki sürekli bir şeyler üretiyor. O günkü işini bitirse bile sırf zevk için daha saatlerce kod yazıyor. İşi aynı zamanda hobisi. Sürekli yeni fikirler ve çözümlerle uğraşmak angarya olmamalı. Bunu bir refleks olarak sürekli yapmalısınız. Ve bu sizi heyecanlandırmalı.


5. Denemenin Yollarını Arayın, Hiç Durmadan
Programcılar, yazdıkları kodun mümkün olan en etkili kod olduğuna emin olmak için onu sürekli değerlendirirler. En ufak bir değişiklik bile bir yazılıma diz çöktürebilir. Sürekli test etmek ve geliştirmek, yazılımın her parçası için çok önemlidir. Fikirler sürekli olarak titizlikle denenmeli ve ara ara gözden geçilirilmeli. Fikirleriniz zamanla değişir, az ya da çok. Onları sürekli denemek ve sadece üzerlerinde düşünmek, fikirlerinizi değerlendirmenin en iyi yoludur.


6. Tutkuyla Bağlanacağınız Bir Şey Bulun
Eğer bir programcıyla iki dakikadan fazla konuşma fırsatınız olmuşsa farketmişsinizdir ki programcılar işlerine tutkuyla bağlıdırlar. Programcılığı yerler, içerler ve solurlar. Kendi fikirlerinize ve projelerinize tutkuyla bağlı mısınız?


7. Araçlarınızda Uzmanlaşın
Programcılar kullandıkları araçlar hakkında sürekli bir şeyler öğrenir ve sürekli onları kullanmak konusunda uzmanlaşırlar. İyi bir programcı sürekli olarak ihtiyacı olan yazılımları daha etkili kullanmanın yollarını arar. Araç kutusunu sürekl i geliştirmeyen bir programcıya zor rastlarsınız. Yeteneğiniz ne olursa olsun, yaratıcılığınız kullandığınız araçlarla sınırlı. Onları kullanmak konusunda ne kadar uzmanlaşırsanız o kadar yaratıcı olursunuz.


8. Soyut İlişkiler Kurun
Bilgisayarı telefon olarak kullansaydınız ne olurdu? Bir web sitesini kelime işlemci olarak kullansaydınız? İnsanlar diğerlerinin tam şu anda ne yaptığıyla ilgilenirler miydi? Skype, Google Docs ve Twitter gibi projeleri yaratan insanların ortak bir özelliği var: Görünüşte soyut olan kavramları ilişkilendirebiliyorlar. “Şöyle bir şey olsa?”’ları alıp denemek, farklı ve yaratıcı düşünmek için mükemmel bir yol.


9. Yapıyı Bir Araç Gibi Düşünün, Bir Kısıt Gibi Değil
İnsanlar yaratıcılığı büyük bir boşlukla ilişkilendirip fikirlerini sınırlardan bağımsız oluşturmaya çalışırlar. Ancak bu, yaratıcılık konusunda büyük bir aldatma. Sınırlar her yerde. Onları görmezden gelemezsiniz, ancak onlarla çalışmayı umabilirsiniz. Programcı, kullanıdığı dilin ve araçların sınırlarını bilir ve onların etrafından dolaşır. Bu sınırlar onun, sınırlar etrafında dolaşan yapılar kurmasını sağlar. Bir şeyin etrafından nasıl dolanılacağını bulmak, bazen daha büyük bir fikir doğurur. Gereklilik, icadın yaratıcısıdır.


10. Hiç Bir Şeyi Denemeden Silip Atmayın
Anaokulu öğretmeniniz haklıydı: Aptalca soru diye bir şey yoktur. Eğer üçüncü kurala uyup tüm varsayımlarınızı sorguluyorsanız, bir şeyi denemeden çalışmayacağına emin olamazsınız. Çalışmasa bile, yeni bir fikir üretmenizi sağlayabilir. Bazen bir prototiple başlayıp onu denemek en iyisidir. Eğer çalışmazsa çöpe atın. Çalışırsa tebrikler: bir sonraki harika fikrinizi buldunuz.


11. Her Zaman Daha Basit ve Zarif Çözümler Arayın
İyi bir programcı en basit çözümün her zaman en iyisi olduğunu bilir. Karmaşık çözümler tek bir şey ortaya çıkarır: karmaşa. Pratik çözümler her zaman uzun vadede daha iyi çalışırlar. Fikirlerinizin yeniliğinin büyüsüne kapılıp pratikliğini unutmayın. Bir problemi çözmenin en iyi yolu, en basit olandır.


12. Başkalarının İşleri Üzerinde Çalışmaktan Çekinmeyin
İnternet’in güzelliği, her zaman aradığınız çözümü bir başkasının zaten bulmuş olmasıdır. Yeni bir yazılım üretirken her zaman mevcut kodları kullanmak iyidir. Tekrleği tekrar icad etmenin manası yok. Yeni bir fikri uygularken her parçasını baştan yapmak zorunda değilsiniz. Zaten bulunmuş fikirleri kullanın ve onları daha iyi bir şeye dönüştürün. Mükemmel bir fikir bazen yalnızca başka bir fikri değiştirmekten ibarettir. Gmail harika bir örnek. Klasik e – postaya yeni özellikler ekleyerek e – postayı baştan yarattılar.


13. İşbirliğinden Çekinmeyin
En iyi projeler, tek bir programcı tarafından değil, aynı amaç etrafında toplanmış bir çok harika programcıların ellerinden çıkmıştır. Müthiş bir ekip kurun, en iyi fikirleri kimden gelirse gelsin kullanın, ve herkesin katılmasını sağlayın.


14. En Basitten En Güzeli Çıkarın
Programcılar en basit kodları tekrar tekrar kullanırlar ve bu kod parçaları tek başlarına basit de olsa bir araya geldiklerinde harika bir ürüne dönüşürler. Hangi yaratıcı projede çalışırsanız çalışın, detaylara önem verin ancak en önemlisi, o detayların tüm resim üzerindeki etkisine dikkat edin.
bildirgec.org

Meta tag'ların Kullanımı ve Önemi

Meta tag’lar HTML kodunuzun HEAD bölümüne yerleştirilmiş bilgi etiketleridir. Arama motorlarına site ve içeriği hakkında bilgi sunar. Her ne kadar günümüzdeki arama motorlarının çoğu meta tag’lardaki bilgileri dikkate almayıp site içeriğini kendi tekniklerine göre indeksleseler de hala bu tag’lardan bazılarına kısmi destek verebiliyorlar. Sitenizin bu arama motorlarınca doğru bir şekilde gösterimi için bazı Meta tag’ları kullanmakta fayda var. Burada sıklıkla kullanılan meta tag’ları açıklamaya ve onları site kodu içerisine nasıl yerleştirebileceğinizi açıklamaya çalışacağım.

Title
Aslında bu bir meta tag değil. Ama arama motorlarında sitenizin görünüşü ile ilgili olması yanı sıra tarayıcıların buraya yerleştireceğiniz ifadeyi pencerenin başlığında ve sayfa sık kullanılanlara eklenmek istenildiğinde kullanmaları nedeni ile önemli. Gerçekte bir HTML kodu olan <title> ve </title> etiketleri arasına sayfa başlığınız açıklayıcı biçimde yazmanız gerekiyor. Bu kodu ayrıca oluşturmanıza gerek yok, zaten her sayfada bulunuyor.

Description
<meta name="description" content="XYZ"> Adından da anlaşılacağı üzere site içeriğinin tanımı için kullanılıyor. XYZ yerine sitenizin tanımını yerleştiriyorsunuz. Güncel arama motorları hala bu kısmı gözden geçiriyorlar. Bir cümle ile siteden bahsedebilirsiniz. Örneğin; “Blog’a yeni başlayanlara amatör ruhu ile destek :)”. Tanım kısmı, Google da dahil olmak üzere, bir çok arama motoru tarafından destekleniyor ve sitenizin arama sonuçları içinde düzgün bir şekilde sergilenmesi için kullanılıyor.

Keywords
<meta name="keywords" content="kelime X, kelime Y, kelime Z"> Bu da site indekslenirken hangi anahtar kelimelerin kullanılabileceğini belirtmek için kullanılıyor ama tahmin edersiniz ki Google, Yahoo! ve MSN gibi büyük arama motorları bu kısımla pek ilgilenmiyorlar. Anahtar kelimeleri “kelime X” şeklindeki ifadeler yerine virgülle ayırarak yazmak gerekiyor.

Robots
<meta name="robots" content="index,follow"> Bu tag, arama motorlarına site içeriği ile karşılaştıklarında nasıl davranmaları gerektiğini anlatıyor. Virgülün solundaki ifade sayfanın indekslenip indekslenmeyeceğine karar verilmesini sağlarken, sağındaki ifade sayfadaki linklerin takip edilip edilmeyeceğini belirtiyor. İndeksleme için seçenekler index (indeksle) ve noindex (indeksleme). Linklerin izinin sürülmesi ile ilgili seçenekler de follow (takip et), nofollow (takip etme) şeklinde. Bu tag özellikle indekslenmesini istemediğiniz bir sayfa varsa önem kazanıyor, çünkü robotlar sadece noindex değerini dikkate alıyorlar ve bu değer yoksa öntanımlı olarak siteyi indeksleyip linkleri de takip ediyorlar. Web sitenizdeki bir sayfanın indekslenmesini istemiyorsanız o sayfaya: <meta name="robots" content="noindex,nofollow"> Şeklinde bir tag yerleştirmeniz bunu sağlayabiliyor. Seçeneklerden sadece birer tanesi kullanılabiliyor. Örneğin; <meta name="robots" content="index,noindex,follow,nofollow"> dikkate alınmıyor. Bu kodun alternatifi ise robots.txt dosyası kullanmaktır.


Content-Type
<meta equiv="Content-Type" content="text/html; charset=UTF-8"> Bu tag önemli. Bu tag girilmezse öntanımlı olarak site içeriği ISO-8859-1 gibi düşünülüyor. Muhtemelen Türkçe bir içeriğiniz olacağına göre bunu UTF-8 olarak almak en iyisi.


MSSmarttagsPreventParsing
<meta name="MSSmarttagsPreventParsing" content="true"> Microsoft tabanlı programların siteyi indekslerken akıllı tag’lar oluşturmalarını engellemek için konuluyor. Gerçi Microsoft’a göre bu proje sonlandırıldı ama yine de bu tag bazı sitelerde (örneğin; Blogger ile hayat bulan tüm bloglar) öntanımlı olarak bulunuyor.

Generator
<meta name="generator" content="Blogger"> Site içeriğinin (HTML kodunun) hangi yazılım ile oluşturulduğu hakkında bilgi veriyor. Bu yazılımların popülerliği hakkında pazar araştırması oluşturmak için ortaya çıkarıldığı düşünülüyor :) Blogger’da öntanımlı meta bilgisi içerisinde MSSmarttagsPreventParsing ile birlikte mutlaka bulunuyor.

Refresh
<meta name="refresh" content="X"> Bu tag’da bulunduğu sayfanın “X” saniyede tarayıcı tarafından yenilenmesini sağlıyor. Eğer saniye ifadesinin yanında bir url verilirse bu kez tarayıcı belirtilen saniye sonunda sayfayı o url’ye yönlendiriyor. Örneğin; <meta name="refresh" content="X;URL=http://www.site-adi.org/sayfa.html"> Eğer url yönlendirmeyecekseniz ya da at yaırşı veya borsa bilgileri gibi içerik sunmayacaksanız blogunuzda buna ihtiyacınız olmayacaktır. Neticede 30 saniyede bir gönderi yollayacak değilsiniz :) Tag oluşturmak için web’de çeşitli kaynaklar mevcut. Örneğin; PageRank.net sitesinin
Meta Tag Generator‘u bu konuda iyi bir alternatif. Bu adreste sizin için uygun olduğunu düşündüğünüz tag’leri (title, description, keywords tag’larını mutlaka oluşturun. İhtiyacınız olduğunu düşünüyorsanız robots tag’ına da yer verebilirsiniz) oluşturduktan sonra site kodunuz içinde <head> şeklindeki ifadeyi arayın ve tag kodlarını altına yapıştırın. Tag kodları <head> ve </head> arasında olmalıdır. Eğer kodları <head> etiketinin hemen altına eklerseniz bunu garantiye alabilirsiniz.

Başlarken...

1 Ağustos 2008 tarihi itibariyle blog yayıncılığına adım atıyorum. Günlüğümde özellikle yazılım geliştirmede karşılaştığım hatalar karşısında bulduğum çözümlerin logunu tutmayı planlıyorum. Tabi gündeme kayıtsız kalmakta olmaz. Arada birde gündem hakkındaki yorumların, gelişen yeni teknolojiler ve nitelikli mizah burdaki gönderilerimde olacak.