Windows (7) üzerinde C/C++ geliştirme nasıl yaparım ?

September 12th, 2010

Windows 7 üzerinde c/C++ geliştirme yapmak için benim izledeğim iki ayrı yol oldu. Kısaca bu iki yoldan bahsedeyim.
    1. Eclipse CDT, gcc
İlk olarak ücretsiz olduğu gnu-gcc derleyicisi üzerinde araştırmalar yaptım. Kısa bir araştırma ardından gnu’nun windows üzerinde taşınmış hali olan MinGW ye ulaştım. MinGW’yi burdan indirebilirsiniz. Tabi iş bununla bitmiyor bir de IDE gerekiyor :) Sonunda kurtarıcı siteyi buldum: MingW Setup Guide
Burada c/c++ için windows platformu ve eclipse kullanarak nasıl ilerleneceği gayet detaylı anlatılmış. Bütün adımları sırası ile izledikten sonra elinizde c/c++ kodları derleyip çalıştırabildiğiniz bir platfom oluşuyor.
    2. Microsoft ürünleri
Yukarıdaki araştırmalarım sırasında ms’un ücretsi olarak sunduğu yazılımlara rastladım. Benim ilgilendiğim yazılım Microsoft Visual C++ 2010 Express idi ve onu indirdim. Buradan bu yazılımlarla ilgili detayları alabilirsiniz. Her şey çok güzel derken, yazdığım kodun testi aşağıdaki sorun ile karşılaştım :
    Can't load IA 32-bit .dll on a AMD 64-bit platform
Bir süre sonra yukarıda yaptığım işlemler sonucu ancak 32-bit destekli kod üretebildiğimi anladım, ve 64-bit için ikinci bir yazı yazma ihtiacı ortaya çıktı. Bunun üzerine aşağıdaki yazıyı kaleme aldım.
    Windows 7 üzerinde 64-bit uyumlu C/C++ geliştirme nasıl yaparım ?
    Umarım işinize yaramıştır.
Serkan Taş

Windows mavi ekran ve sistem sorunlarınızın çözümü yönünde öneriler

September 12th, 2010

Merhabalar,

Windows kullanırken mavi ekran çıkması hiçbirimizin hoşuna gitmez, ancak sorunu çözebilmemiz için gerekli bilgilere bu ekran sayesinde ulaşabiliyoruz.

Mavi ekranda yazılan yazıların aslında daha detaylı bilgileri içeren dosyaları genelllikle (Win 7 için) aşağıdaki dizinde bulabilirsiniz :

C:\Windows\Minidump

Burada bulunan dosyalar .dmp uzantılıdır. Bu dosyaları açıp içinde neler olduğuna bakıp sorunu anlamak istiyorsanız, bunun nasıl yapacağınızı detayları ile anlatan aşağıdaki blog’u okumanızı öneririm ( tabi ingilizce bilmeniz gerekiyor) :

http://windows7themes.net/how-to-open-dmp-files-in-windows-7.html

Genelde bilgisayar ile ilgili mavi ekran problemimiz olduğunda şunları yapıyoruz :

1. Sorunun irq sorunu olduğu düşünüp, çoğunlukla son yüklenen aygıt sürücülerini kaldırarak sorunu çözebiliyoruz.

2. Dişsk problemi olduğunu düşünüp türlü disk kontrol ve onarım araçlarını kullanıyoruz

3. İşletim sistemimizi yeniden kuruyoruz.

Geçen hafta şirket bilgisayarlarından birinde yaşanan benzer sorun nedeni ile yaptığım çalışma sonucu elde ettiğim deneyim sonrasında benim önerilerim ise şunlar :

1. İlk iş olarak önce mavi ekran detay dosyalarını incelemek çok önemli. Çoğunlukla burada hata ile ilgili mesajlar var, ya da internetde bir araştırma ile bulunabilirler.

2. Eğer yukarıdaki araştırma sonucu sorun irq ile ilgli ise, ilgili aygıt sürücüsü kaldırılmalı

3. Eğer sorun sabit disk ile ilgili ise, muhakkak üretici firma tarafından sağlanan ya da internetden indirilen test programları aracılığı ile disk test edilmeli, ben seagate’in yazılımını kullandım.

4. Eğer sorun hafıza sorunu ise, windows 7 içinde hafıza sorunlarını tespit eden bir yazılım var, onu kullanabilirsiniz. Bunun yanında yıllarca önce yazılmış ama hala çok işe yarayan Memtest86+ programı da kullanabilirsiniz.

Adres : http://www.memtest.org

Kolay gelsin…

Serkan Taş

Türkiye de Veri Ambarı ve Veri Madenciliği

January 27th, 2010

2000 li yılların başlarını hatırlıyorum. Aslında bu vakitler Türkiye de Veri Ambarı ve Veri Madenciliği  çalışmalarının da ilk kez yapılmaya başlandığı vakitlerdi. SAS ve SPSS Türkiye de daha yeni yeni ofis açıyor pazar bulmaya çalışıyorlar, büyük şirketler de  veri’leri bir merkezden raporlamanın veriden yeni bilgiler elde etmenin önemini daha yeni iş süreçlerine sokuyorlardı.  Uygulama geliştirici olarak IT dünyasına adım atan bizler gibi pek çok arkadaş da MIS bolumleri, Yonetim raporları, Terabayt’lar gibi kelimeleri ilk kez duymaya basliyordu. Şirketlerde önceleri küçümsenen ve raporlama bölümü denen ilk veri ambarı bölümleri kısa bir süre sonra şirketin
omurgası, olmazsa olmazı, stratejisine yön veren projelerin kaynağı haline geleceklerdi.

Veri ambarı projelerinin yüksek donanım, yazılım, işgücü maliyetleri,  Ülkemiz de en rekabetçi üç ana sektör Telekom, Bankacılık ve Sigorta alanlarında ilk kez bu projelerin yapılmasına izin verdi. Halen de bu konuda yani diğer sektörlere yaymada çok ilerlediğimiz söylenemez.

Veri’den bilgiye bu hızlı değişim ve dönüşüm dönemini Türkiye de Telekom sektöründe geçirmiş olmak, en yakından ilk sıkıntıları, ilk ödülleri,  ilk yaklaşımları hissetmek bana da gelişimim açısından da büyük katkı sağladı. Özellikle telekom seköründeki hızlı değişim,  bitmeyen rekabet ortamı, sürekli yenilenmek, her gün yeni servislerin çıkması adını her organizasyon değişikliğinde  değiştirdiğimiz bu bölümlerin insan kaynağı ve bütçe olarak büyümesine, öneminin ve kritikliğinin artmasına neden oldu.  Bu bölümlere neler demedik ki; MIS (Manegement Information System) , Raporlama bölümü ,  BIS (Business Intelligence Systems),  IMS(Information Management Systems)  DWH&DM (Datawarehouse ve Datamining) ve en sonunda İş Zekası..

Bu süreçte ilk yer alan şirketler ülkemiz de bu alanda yerli bir ürün olmayışı ve uzman işgücü’nün azlığı nedeniyle
gerek ürün gerekse uzmanlık anlamında yüksek rakamlar vererek dışarıdan destek aldılar. 2010 yılında baktığımda
artık uzmanlık olarak az da olsa bizimde iyi kaynaklarımızın olduğunu görüyorum. Ürün konusunda ise tamamen dışa bağımlıyız.

Tabi her değişim süreci gibi bu süreç de çok sancılı geçti. Pek çok yönetici başarısız olduğu gerekçesiyle işinden oldu,
raporlar çıkmadı, raporlar uymadı, şirketler bu kez de rapor çıkarmanın yeterli olmadığını raporların doğruluğunun da  çok önemli olduğunu anladılar. Veri ambarının veriyi kaynaktan alıp veri tabanına aynen yazmak demek olmadığının, veriyi çok iyi tanımanın önemini, bu alanda bir ürünü almanın yeterli olmadığının ürünü en iyi şekilde kullanmanın önemini anladılar. Ya da hala anlıyorlar!
Bu ilk genel yazımda size Veri ambarı ve veri madenciliği sektörümüzden 10 yıllık genel bir panaroma sunmaya çalıştım. İlerleyen yazılarda detaylarına gireceğiz.

Sevgiler.

Büyük şirketlerde, verinin bilgiye dönüşmesi – I

January 20th, 2010

Merhaba,

Ağırlıklı olarak Telekom sektöründe uzun yıllardır çalışmakta olan birisi olarak, büyük şirketlerdeki verinin ilk çıkış noktalarından, raporlarda yer alması ve karar destek sistemlerinde görünmesine kadar giden süreçler hakkında önemli bir bilgi birikimim oldu. Bu bilgi birikimi farklı noktalardan bakışı gerektirir ve az sayıda profesyonel, bu bakışa sahip olma ayrıcalığını taşır. Sürekli değişen Bilgi Teknolojileri (BT) araçları ve yüksek rekabet ortamı içinde bu bilgi ve tecrübeyi sürekli güncel tutmakta ayrı bir gayret gerektirir.

Tabii ki bu tecrübede kullanılan araçların yeri yadsınamaz. Atalarımız alet işler el övünür derken haklı bir noktaya temas etmişler. Fakat bu bizde, aletin işin en önemli parçası olduğu şeklinde bir yanılsama yaratmasın. Peki, işin en önemli kısmı nedir öyleyse? Bu soruya yanıt vermeden önce sürece biraz yakından bakmakta fayda var.

Gerçekte birbirine benzeyen büyük şirket yada kurumlarda (yazının devamında şirket/kurum/organizmalar kelimelerini birbiri yerine kullanacağız) temel kavramlar ortaktır fakat o şirketin/kurumun kültürü yada birikimi olarak adlandırabileceğimiz iş yapma tarzı farklılıklar arzeder. Bunun  nedenleri arasında;

  • yönetim anlayışı farklılıkları,
  • zorunluluklar,
  • kaynak bolluğu yada kısıtları,
  • çalışan ekibin sinerji yaratıp yaratamadığı,
  • yapılan işlerde önceliklerin nasıl belirlendiği

gibi birçok faktör yer alır. Doğası itibarı ile zaten karmaşık olan iş süreçleri ancak;

  1. ön analiz,
  2. detaylı analiz,
  3. dizayn,
  4. geliştirme
  5. test
  6. üretime alma.

safhalarından geçtikten sonra kurum yada şirket açısından faydalı bilgiler üretir. Tabii burada unutulmaması gereken önemli bir nokta, çıktılarından yararlanılan bir projenin gerçekte asla bitmediğidir. Eğer bu bir gerçekse, bir projenin başlangıcında en az bazen hiç düşünülmeyen kısmı olan operasyon adımı projelerde en uzun süre devam eden adım olarak görülebilir.

Soruyu unuttuğumu sanmayın. “Peki, işin en önemli kısmı nedir öyleyse?” Vücudun yaşaması için gerekli olan kanın, vücut için gördüğü işlev ne ise verinin kurumlar içinde ki yeri ve önemi aynıdır. Hayatidir. Yani bir tool/alet olmadan da işlerinizi yapmanın bir yolunu zorda olsa bulabilirsiniz, ama veri olmadan asla! Bu hayatilik verinin üretildiği noktalardan, kullanılacağı noktalara ulaştırılması konusunda günümüzün en zor BT problemlerini önümüze çıkarır.

İnsan vücudunu organizasyonlar için bir prototip olarak alırsak kavramları daha iyi oturtabiliriz. Vücudumuzda organlarımız bir organizasyondaki departman veya bölümler ile benzer özellikler taşır. En önemli özellikleri bir konuda uzmanlaşmış olmalarıdır. Uzmanlaşma, organizmayı ilgilendiren birçok diğer konudan ya az bilgi sahibi olmayı yada hiç bilgi sahibi olmamayı birlikte getirir. Gelişmiş organizmalarda bu temel bir özelliktir. Az gelişmiş organizmalarda bir organ birden fazla işlev görür fakat genelde hiç birinde çok iyi değildir yada az kapasite ile işlevlerini yerine getirir. Uzmanlaşmayı bu şeklide temel bir özellik olarak ortaya koyduğumuzda kaçınılmaz olarak iletişim ikinci sırada konumlanır ve hemen ardından ihtiyaç ve isteklerin karşılanması gelir. Bu üçlü, bütün büyük organizmalarda birlikte işler ve ne kadar iyi işlediğine paralel olarak organizma büyümeye ve/veya gelişmeye devam eder.

  1. uzmanlaşma
  2. iletişim
  3. ihtiyaç ve isteklerin karşılanması

Uzmanlaşan organ ne ile uğraştığını bilir ve günlük hayatına bu şekilde devam eder. Bu açıdan bakıldığında, Pazarlama bölümleri müşteri sayısını arttırmaya çalışırken, Finans bölümleri müşterilere yapılan satış veya hizmetlerden elde edilmesi gereken gelirleri toplamaya, doğru şekilde kayıt altına almaya çalışır. Teknik bölümler ise diğer bölümler temel işlevlerini yerine getirirken ihtiyaç duydukları teknik altyapıyı kurmak, geliştirmek, ve bakımını yapmakla yükümlüdür. Bu anlamda Finans bölümü organizasyonun müşteri sayısını arttırmayı günlük işleri açısından öncelik olarak ele almaz, yada Pazarlama bölümü verilen hizmetlerden kazanılması gereken gelirlerin toplanması konusunda fikir yürütmez. Toplam rakamlar yada kırılımlarla ilgilenmez demiyoruz bununla, sadece müşteri aldığı hizmetin bedelini ödeyecek mi diye bir kaygısı öncelikli değildir. Teknik kısımlarda benzer şekilde teknik altyapı ile ilgilenirken, finans ve pazarlamanın gerçek hassasiyetlerinin farkına varmaz çoğu zaman. İşe yukarıdan bakıldığında ise bölümler ne kadar iyi işlerse müşteri ve hizmet kalitesinin artmasına dolayısı ile gelirlerin artmasına olumlu yönde katkıda bulunurlar.

Bu resme bakınca, organizmanın gelişip büyümesinin doğal olarak amaçlarda farklılığı da beraberinde getirdiğini görüyoruz. Bu farklılıklar, verinin kurum/şirket içinde aldığı yol, geçirdiği aşamalar açısından en çok dikkat etmemiz gereken noktadır. Bu şekilde sloganımıza erişmiş oluyoruz. Veri öyle bir değerdirki “doğru şekilde, doğru zamanda, doğru kişiler” e ulaştırıldığında nitelikli bilgiye oradanda kazanca dönüşebilir. Yani üç doğruyu yapmak zorundayız;

  • Doğru veri,
  • Doğru zamanda,
  • Doğru kişiler/sistemlerde.

olursa organizma sağlıklı bir şekilde işleyebilir. Bundan sonraki yazımızda bu üç doğru üzerinde duracağız.

Sağlıcakla kalın.

Hakan Sarıbıyık

Java : HTML e-posta atarken, içine resim nasıl eklenir ?

January 20th, 2010

Java ile e-posta atmak çok basit bir işlem ancak, işin içine HTML ve resim olunca işler biraz değişiyor.

Aşağıdaki örnekde nasıl olduğunu görebilirsiniz.

Kodu metin olarak indirmek için EmailSender.java den alabilirsiniz.

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.util.ByteArrayDataSource;

public class EmailSender {
String username = “”; // e-mail server username ile değişecek
String password = “”; // e-mail server password ile değişecek
private class SMTPAuthenticator extends javax.mail.Authenticator {

public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}

}
public static void main(String[] args) {
EmailSender emailSender = new EmailSender();
Properties props = System.getProperties();
SMTPAuthenticator authenticator = emailSender.new SMTPAuthenticator();
props.put(“mail.smtp.host”, “email server”); // E-posta sunucusunun
// adresi ile değişecek
props.put(“mail.smtp.auth”, “true”);
Session session = Session.getDefaultInstance(props, authenticator);
MimeMessage message = new MimeMessage(session);
try {
message.setFrom(new InternetAddress(“from”)); // gönderen adresi
// ile
// değiştirilecek
message.addRecipient(Message.RecipientType.TO, new InternetAddress(“TO”)); // alıcı
// adresi
// ile
// değiştirilecek
message.setSubject(“subject”); // Konu ile değiştirilecek
message.setSentDate(new Date());
message.setContent(emailSender.prepareHTMLMailWithImage());
Transport.send(message);
} catch (AddressException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

private Multipart prepareHTMLMailWithImage() throws MessagingException, URISyntaxException {
Multipart multipart = new MimeMultipart(“alternative”);
// Hazırladığımız HTML i kabul etmeyen client için ek olarak plaintext gönderiyoruz
MimeBodyPart mimeBodyPartPlain = new MimeBodyPart();
// Düz metin
String mailText = “Message text”;
mimeBodyPartPlain.setDataHandler(new DataHandler(mailText, “text/plain; charset=UTF-8 “));
multipart.addBodyPart(mimeBodyPartPlain);
// Düz metin sonu
MimeBodyPart mimeBodyPartHtml = new MimeBodyPart();
String mailHtml = “HTML H1 HTML Message Text/H1 img src=cid:1@deneme align=\”right\” width=100 height=35/HTML”;
mimeBodyPartHtml.setContent(mailHtml, “text/html; charset=UTF-8 “);
MimeBodyPart mimeBodyPartImage = new MimeBodyPart();
URL url = this.getClass().getResource(“/img/your.jpg”);
// com ile aynı düzeyde olacak bir dizin
try {
mimeBodyPartImage.setDataHandler(new DataHandler(new ByteArrayDataSource(url.openStream(), “image/jpg”)));
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
mimeBodyPartImage.setHeader(“Content-ID”, “<1@deneme>”);
multipart.addBodyPart(mimeBodyPartHtml);
multipart.addBodyPart(mimeBodyPartImage);
return multipart;
}
}

Veri kalitesi işlemlerinde bulanık mantığın (Fuzzy logic) kullanılması

January 15th, 2010

Bulanık mantık (Fuzzy Logic) üzerine 1995 yılında bitirdiğim yüksek lisans tezinde, bulanık mantık ile çalışan bir uzman sistem yapmıştım. O zamanlar bulanık mantık, bilişim teknolojileri alanında yeni yeni emekleme dönemindeydi. Özellikle veritabanlarında bilgi keşfi çalışmaları için kullanılması yönünde oldukça çok akademik çalışma yapılmaktaydı. Günümüzde Bilgi Teknolojileri (BT) sektöründe bulanık mantık dahil diğer bilgi belirsizliği modellerini, BT profesyonelleri  “kullanıyor” dememiz zor. Fakat en zor alanlardan biri olan ve gün geçtikçe önemi artan veri kalitesinin arttırılması konusunda yapılan çalışmalarda, bulanık mantık terimi oldukça sık ismi geçen bir terim haline geldi. Bu nedenle yazımızın konusu bu terimin genel anlamından çok veri kalitesinde kullanımı konusunda olacak.

Veri kalitesi çalışmalarında fuzzy logic kelimelerini ilk duyduğumda kelimelerin bulanık küme teorisinde kullanılması geldi. Örneğin; çok gürültülü kelimesinin bulanık kümesinin kurulması sürecini aklıma getirdim. Önce gürültü kelimesi için küme oluşturulacak, daha sonra pekaz, az, orta, çok, pekçok gibi bunun niteleyicileri olan kelimelerin bu küme üzerindeki operasyon işlemleri tanıtılacak vb. Fakat konuyu biraz araştırınca veri kalitesi literatüründe geçen fuzzy logic kelimesinin farklı bir şekilde kullanıldığını anladım ve bu konuda uygulama da yapma imkanım oldu.

Yöntemin temel adımlarını sizlerle paylaşmak istiyorum.

Örnek olarak bir veritabanında olan isim ve soyadları başka bir veri tabanında olan isim ve soyadlar ile karşılaştırma problemini ele alalım. Bu problemin çözümü ilk bakışta basit olmakla birlikte gerçekte zor bir problemdir. Bu problemin daha zoru, bir veritabanında bulunan adres bilgilerinin düzeltilmesi, yanlış yada eksik adreslerin tespit edilmesi gibi problemler olabilir. Bu ve benzer problemleri çözmek için kullanılan teknikler genel olarak dört adımlıdır.

  1. Frekans alma,
  2. Standartlaştırma,
  3. Eşleme ( matching)
  4. Çıkarım yapma.

Bu adımların detayını inersek;

1. Frekans alma : Tablodaki ilgilenilen alanda geçen tüm kelimelerin frekansının alınması işlemidir. Tablonun satır sayısına ve alanın büyüklüğüne bağlı olarak uzun bir işlem gerektirebilir. Bu işlem sonucunda elde edilen frekans tablosu bize kelimelerin ne kadar sıklıkla kullanıldığı açısından matematiksel bir ölçüm verir. Tabii burada hayatı zorlaştıran faktörler devreye girer. Yanlış yazılan kelimeler ,örnek olarak hakan kelimesinin bilerek yada hata olarak farklı yazılışları hkan, hkn, haka, hakn bu listede görülecektir. Bu liste ile karşılaşan bir kişinin yapacağı iş ikinci adıma geçmektir.

2. Standartlaştırma: Bu aşamada frekansları alınan kelimelerden, birbirine benzeyen kelimeler içinden gerçekten aynı olan kelimeler gerçek karşılığı ya da uygun görülen bir kodlaması ile yer değiştirilir. Yani hkan kelimesi hakan ile yer değiştirir. Bu işlemler zor ve zahmetlidir ve hataya açıktır. Bu nedenle uzmanlık gerektirir. Bu işlemin alternatifi de vardır ama daha karmaşıktır ve matematiksel teorilere dayanır. Hamming Distance fonksiyonu kullanma yöntemi bunlardan birisidir. Bu yöntemlerde normalde standartlaştırmak için gerekli olan uzman ve harcanan zamandan tasarruf edilir fakat teknik olarak anlaması daha zordur. Benim açımdan matematik mühendisi olmamın avantajı ile hiper uzayda nesneler arasında uzaklık fonksiyonu tanımlamaya dayanan bu yöntemler anlaşılır ama yüksek matematik bilgisi olmayan bir kişi için anlaması zordur. Bu nedenle buralarda bu iş için geliştirilmiş yazılımlardan faydalanılabilir. Bunu daha sonraki bir yazıda açabiliriz belki.

3. Eşleme: Frekansı alınan ve standartlaştırma işlemi yapılan alanlar eşleme işlemi için hazırdır. İki farklı kaynakta (veritabanında vb) da bu işlemlerin yapılmış olması gereklidir. Eşleme işlemi iki alandaki cümlelerin (burada ad soyad bilgileri) kelime kelime diğer alanda aranmasına dayanır. İşte bu aşamada iki alanda da aynı kelimelerin olmaması durumunda devreye fuzzy logic matching olarak adlandırılan yöntem girer. Burada cümle bir bulanık küme olarak kabul edilir ve bulanık kümelerde kümenin elemanı olma [0,1] aralığında herhangi bir reel sayı olabilir tanımı doğrultusunda bir sayıya karşılık getirilir. Bu işlem ile benzer cümlelerin bulanık ölçüsü 1 e ne kadar yakınsa o kadar birbirine benzemektedir, yani benzerliğin bir ölçüsü tanımlanmış olur. Tabii kelimelerin bazen tam eşleşmemesi de bazı teknikler kullanılarak bu ölçüye katılır. Örneğin; HakanSarıbıyık olarak tanımlanan bir kelimede Hakan ile benzerlik için 0.5 ölçüsü alınabilir. Bu kesin bir ölçü değildir ve tecrübe ile uygulanan problem alanına özgü değişik yorumlamalar yöntemde ufak bazı değişiklikler yapabilir.

4. Çıkarım yapma: Her bir kayıt için bulunan [0,1] aralığındaki fuzzy logic değerlerini birbirleri ile karşılaştırıp galibi ilan etme bu aşamada yapılır. Görüldüğünden zordur. Çünkü bazen 0.89 ile 0.76 arasında tercih yapmak bizi doğrudan sonuca götürmeyebilir. Bu noktada belirsizlik ölçme yöntemlerinden faydalanılabilinir.

Bu aşamalar sonucu elde edilen eşleştirmeler “Veri kalitesi işlemlerinde bulanık mantığın (Fuzzy logic) kullanılması” olarak nitelendirdiğimiz işlemler sonucunda elde edilen sonuçlar olarak kullanılır. Bu sürece beşinci bir aşama olarak hata minimizasyonunu da ekleyebiliriz. Hatayı minimize etmek yanlış eşleştirmeler ile, elde edilen kazanım arasında bir ödünleşme yapmamız açısından önemlidir.

Aklımızda tutmamız gereken önemli bir noktadan bahsederek yazıyı bitirelim. Bu yöntem, bir insanın yaptığı bir işi, otomatik olarak bir insan yapar gibi yapmasıdır. Bu nedenle ülkemizde yapılan genel bir yanlışa dikkat çekmekte fayda görüyorum. Veri kalitesi konusunda ne kadar uzman olursa olsun Türkçe bilmeyen yabancı uyruklu bir kişi  Türkiye de ad soyad yada adres düzeltmesini ne kadar yapabilirse, ülkemizde ticari ürün olarak kullanılan Türkçe yi bilmeyen ürünlerde o kadar düzeltme yapabilir. Bu nedenle bu konuda önemli olan uzmanın ve kullanılıyorsa ürünün Türkçe yi bilmesidir. Benzer durum text mining olarak olarak adlandırılan metin madenciliğinde daha da önemlidir. Yani Türkçe bilmeyen bir metin madenciliği yazılımı türkçe metinleri doğru olarak işleyip sonuçlar üretemez yani Türkçe bilmeleri esastır.

Sevgilerimle

SAS nedir?

January 13th, 2010

Anthony Barr, James Goodnight, John Sall ve Jane Helwig isimli dört kişi tarafından 1976 yılında Statistical Analysis System ismi ile kurulan fakat yazılım alanında ürettiği ürünlerle bu sınırları aşan SAS (SAS Institute) günümüzde borsaya açık olmayan dünyanın en büyük yazılım şirketlerinin başında geliyor. Hiç kuşkusuz bu dörtlüden en önemlisi, Harvard Business School tarafından* 20 inci yüzyılın en önemli iş liderleri listesinde gösterilen ve aynı zamanda şirketin CEO su olan James “Jim” Goodnight dır. İstatistik alanında doktorası olan Goodnight ayrı bir yazı konusu olmayı hakeden renkli bir kişilik.

SAS denince ilk akla gelen öncelikle istatistik ve iş zekası alanlarında marketin önemli oyuncularının başında gelen ve “Bilmenin gücü (Power to know)” nü uzun yıllardır müşterilerinin hizmetine sunan Amerika Kuzey Karolayna merkezli dev bir yazılım şirketi olduğudur. Detaylarda ise  genetik, tarım, finans, telekom, uzay, ilaç, kimya, bankacılık gibi birçok farklı sektörde binlerce müşterisi olan ve veriden bilgi üretme konusunda 30 yıldan fazla bir zamandır çalışan bir şirkettir.

Kendine özgü dördüncü kuşak diller sınıfında yer alan SAS programlama dili ile, profesyonel yazılımcı olmayanların çok az gayret ve biraz programlama bilgisi ile veri işlemeye yönelik programlar yazabilmesini sağlamak SAS ı ilginç bir noktaya yerleştirmiştir.  Bu sayede istatistiği çok iyi bilen bir kişi konvansiyonel programlama dillerini (örneğin C )  bilmeden kendi başına, istatistik algoritmaları kodlama imkanı elde etmiştir. Geliştirdiği algoritmaları sadece arayüzler vasıtası ile parametre seçerek yapan kullanıcı, algoritmaları değiştirebilme kabiliyeti elde etmiştir. Çünkü SAS programlama dili bir çok dile göre kullanımı kolaydır. Tabii bunu söyleyerek,  detaya inildikçe işlerin kolay olacağı anlamını çıkarmayın sakın. Zaman içinde programlama konusunda kullanıcı talepleri o kadar artmıştır ki, SAS programlama dili üzerine bir metadil olan SAS makro dili geliştirilmiştir. Şu anda SAS programlama yapan profesyoneller göreceli olarak az sayıda oldukları için olsa gerek dünyada PL/SQL bilenlere göre iş bulma şansları daha fazladır.  SAS programla konusunu ayrı bir yazıda ele alacağız.

SAS şu anda Türkiye de özellikle üç sektörde yoğun olarak kullanılıyor; bankacılık, sigorta ve telekom. Bazı devlet kuruluşlarında da kullanıldıklarını biliyoruz. SAS ı kullanmak değişik kişi ve kuruluşlar için farklı anlamlara gelmektedir. Bazı kuruluşlar SAS ı sadece tahminleme, veri madenciliği gibi belirli alanlarda özel çözüm olarak kullanırken, bazıları tepeden tırnağa tüm veri ambarını ve raporlamasını ve İş Zekası uygulamalarını  SAS da yapabilmektedir.SAS ın geniş ürün yelpazesi bu farklı kullanıma izin vermektedir.

SAS ın en güçlü olduğu alan veri madenciliğidir. Bu konuda dünya devleri olan ve herkesin bildiği; IBM, Microsoft, Oracle gibi firmalar ile ciddi rekabet içindedir.  Fakat bu rekabet gün geçtikçe zorlaşmaktadır. En son 2009 yılında IBM in SAS ın veri madenciliğinde rakibi durumda olan SPSS firmasını satın alması ile SAS, IBM ile doğrudan rakip olmuştur. Raporlama konusunda da benzer satın almalar SAS ı benzer rekabet içine sokmuştur. Burada detaya giremeyeceğimiz bu rekabet SAS için hem pazar payının azalması açısından bir tehlike hem de bir fırsattır. Jim Goodnight lı SAS ın yıllardır uyguladığı yazılım satmaktan çok kiralama stratejisi, diğer rakiplerin de bu davranışa girmesi ile ilginç bir noktaya gelmiştir.  Bu müşteriyi tutmanın herzamankinden daha zor olduğu bir dünya demektir.

2010 un ekonomik kriz dolayısı ile zor geçecek olması, her sektörde ekonomik kararların iş zekasını zorunlu hale getirmesi SAS ı ve diğer iş zekası çözümleri üreten firmaları kıyasıya zorlu bir rekabete sokacaktır. Bu rekabette iyi olan kazanacaktır.

*20th Century American Leaders, Harvard Business School http://www.hbs.edu/leadership/database/

Veri nedir?

December 10th, 2009

Çok kısa olarak tanımlamak istersek, veri işlenmemiş ham bilgilerdir. Verinin bilgi haline dönüşmesi için sıklıkla kullanılan ambar kelimesi ise daha sonra işleyip kullanmak için saklama anlamına gelmektedir. Bu hali ile ‘Veri Ambarı’ kelimesinin ingilizce karşılığı Data Warehouse verinin belli yazılım tekniklerine göre organize edilmiş hali için kullanılır. Veri depolama nın ingilizce karşılığı Data Storage ile fiziksel olarak saklama teknikleri için kullanılır.
1980 li yıllara kadar bilgi teknolojileri -BT (Information Tecnologies – IT) nin temel uğraş alanları bilgi depolama yönünde olmuştur. 1990 lı yıllarda depolanan bilgi miktarları o kadar artmıştırki sanal dünyada oluşan veri dağlarının yüksekliği everest i çoktan aşmıştı. Bu nedenle veriyi saklamaktan daha önemli olan ikinci aşamaya hızla geçildi. Veriyi bilgiye dönüştürmek. Yani Veri -> Bilgi ( Data -> Information ). Tabii bu daha önce de yapılan bir işti fakat teknik ve çalışan işgücü olarak veri depolama kadar rağbet görmüyordu daha önce. 1990 lı yıllarda ise bu işe şirketler, uzmanlar, devletler büyük yatırımlar yaptılar. Bilgiye dönüştürme sanıldığından büyük yatırım gerektiriyordu. insanoğlunun satranç oynayan bilgisayar yapmak ve bunun dünya satranç şampiyonunu yenmesi hayali, Kasparov un 12 Mayıs 1997 de IBM in Süperbilgisayarı Deep Blue ya 3,5 – 2,5 yenilmesi ile sanıldığından çabuk ulaşılınca herşeyin böyle çabuk olacağı sanıldı. On yıl sonra bugün bilgiye dönüştürmenin hala emekleme aşamasında olduğunu söyleyebiliriz. Fakat bu bile eskiden hayal bile edilemeyen bazı işlerin kolayca yapılabilmesine olanak sağladı.

Bu fırsatı bize veren Yapay Zeka (ing. Artificial Intelligence) tekniklerinin yetkinlik kazanmasıdır. Veri dünyasında yapılan herşeyin öncelikle akademik olarak yapay zeka dünyasında olgunlaşmış olması bunun göstergesidir.

Burada duralım ve veri dünyasında dolaşacağımız ve çeşitli bilgileri ve tecrübelerimizi paylaşacağımız yazılarımızın ilkini yazmış olalım. Gelecek yazıda buluşmak üzere.

Merhaba !

December 9th, 2009

Sizlerle buradan bilgilerimizi paylaşmaktan mutluluk duyacağız. Bizi takip etmeye devam edin.