13 Ocak 2009 Salı

ETOHUM HAFTASONU BULUŞMASI


etohum yıllık planı dahilindeki ilk büyük buluşmasını 31 Ocak'ta İTÜ Maçka İşletme Fakültesi'nde İşletme Mühendisliği Kulübü'nün katkılarıyla gerçekleştiriyor. Saat 11:00 ve 17:00 arasında gerçekleşecek buluşmada etohum'a başvuru yapan girişimciler arasından seçilen 15 proje sahibi açıklanacak. Ayrıca detayı daha sonradan açıklanacak bir panel de program dahilinde olacak. Etkinlik Temmuz ayından itibaren 2 haftada bir Perşembe günleri yapılan buluşmalardan sonra İstanbul için ilk haftasonu etkinliği. Çeşitli nedenlerden dolayı gelemeyenler için bu haftasonu toplantısı bir fırsat olacak diye düşünüyorum.

Etkinliğe katılmak isteyenler buradan kaydını yapabilir.

31 Ocak'ta görüşmek üzere :)

09 Ocak 2009 Cuma

BENJAMIN BUTTON'IN TUHAF HİKAYESİ

Sinemada film izlerken 3 önemli şey nedir. Birincisi gittiğin film iyi seçilmiş olacak , ikincisi vizyona girdiği dönemde gideceksin, üçüncüsü de tanıdığın insanlarla gideceksin. Warner Bros Türkiye yaklaşık 2 aydır blog yazarlarına özel ön gösterimler düzenliyor ve bu 3 kriteri sağlıyor. Şimdiye kadar 4 film organize edildi. "Mustafa", "Yalanlar Üstüne", "Bay Evet" ve son olarak dün "Benjamin Button'un Tuhaf Hikayesi". Özellikle son film hakkında birkaç cümle söylemek istiyorum. Film şimdiden bu yılın "en iyi film" Oscar'ı için en iddialı aday olarak gösteriliyor. Eğer oyunculuklar bu kadar iyi olmasaydı, film yönetmeni David Fincher olmasaydı bile ana hikaye nedeniyle izlenmesi gereken bir yapım.

Sinema ve tiyatro senaryoları için öykü bulma tekniklerinden birisi "... olursa ne olur" şeklinde sorular sormaktır. "Bir erkek, bir sabah kadın olarak uyanırsa ne olur?", "Dünyayı dev arılar istila ederse ne olur?" gibi öykülerle birçok film yapılmış. F. Scott Fitzgerald'ın 1921 yılında yazdığı kısa öyküsünden uyarlanan Benjamin Button'ın bu tuhaf hikayesi de "Bir bebek yaklaşık 80 yaşında doğup, giderek gençleşirse ne olur" sorusuyla başlar. Bir de 1. Dünya savaşı sırasında doğumundan hemen sonra babası tarafından bir eve bırakılırsa. Bir tarafta garip bir çocukluk, diğer tarafta da garip bir yaşlılık.

Film vizyona girmediği için film hakkında çok fazla yorum yapmak istemiyorum. Sadece özellikle dramatik film kurgularında komedi unsurlarının serpiştirilme dengesi son derece önemlidir, bu yüzden David Fincher'ı tekrar tebrik etmek gerekiyor.

Warner Bros Türkiye'den Duygu Kutlu'ya bu periyodik buluşmalara davet ettiği ve arkadaşlarla bu güzel seyir zevklerini yaşattığı için tekrar teşekkür ediyorum.

Fim hakkında detaylı bilgi.

08 Ocak 2009 Perşembe

GENÇLİĞE HİTABE


Ey Türk gençliği ! Birinci vazifen, Türk istiklâlini, Türk Cumhuriyeti’ni, ilelebet muhafaza ve müdafaa etmektir. Mevcudiyetinin ve istikbalinin yegâne temeli budur. Bu temel, senin en kıymetli hazinendir. İstikbalde dahi, seni bu hazineden mahrum etmek isteyecek dahilî ve harici bedhahların olacaktır. Bir gün, istiklâl ve Cumhuriyet’i müdafaa mecburiyetine düşersen, vazifeye atılmak için, içinde bulunacağın vaziyetin imkân ve şerâitini düşünmeyeceksin! Bu imkân ve şerâit, çok namüsait bir mahiyette tezahür edebilir. İstiklâl ve Cumhuriyetine kastedecek düşmanlar, bütün dünyada emsali görülmemiş bir galibiyetin mümessili olabilirler. Cebren ve hile ile aziz vatanın bütün kaleleri zaptedilmiş, bütün tersanelerine girilmiş, bütün orduları dağıtılmış ve memleketin her köşesi bilfiil işgal edilmiş olabilir. Bütün bu şerâitten daha elîm ve daha vahim olmak üzere, memleketin dahilinde, iktidara sahip olanlar gaflet ve dalâlet ve hattâ hıyanet içinde bulunabilirler. Hattâ bu iktidar sahipleri, şahsî menfaatlerini, müstevlîlerin siyasi emelleriyle tevhid edebilirler. Millet, fakr ü zaruret içinde harap ve bîtap düşmüş olabilir.
Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi vazifen, Türk istiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!

Gazi Mustafa Kemâl ATATÜRK
20 Ekim 1927

04 Ocak 2009 Pazar

NORMALİZE TABLODAKİ DEĞERLERİ BİRLEŞTİRMEK

Normalize tasarlanmış bir database'de çoklu seçim alanlarını tek bir alan olarak birleştirilmiş şekilde gösterme ihtiyacı olabilir. Örneğin kullanıcı tablosu var, kullanıcı için o alanın değer tanımlarının olduğu (propertyid,propertyName) şeklinde bir itmProperty tablosu var ve bir kullanıcı için n satır olmak üzere kullanıcıya ait property değerlerinin tutulduğu (userid,propertyid) şeklinde bir userProperty tablosu var. Bizim istediğimiz ise kullanıcıları listelediğimiz sorguda kullanıcıya ait property değerlerinin isimlerini virgülle ayrılmış şekilde tek bir alanda getirmek. Önce aşağıdaki kullanıcı tanımlı fonksiyonu oluşturmak gerekiyor.

CREATE FUNCTION [dbo].[fnGetPropertyList] (@userid bigint)
RETURNS VARCHAR(8000)
AS
BEGIN
DECLARE @propertyList VARCHAR(8000)
SET @propertyList = ''
DECLARE @rslt VARCHAR(8000)
SET @rslt=NULL
SELECT @propertyList = @propertyList + propertyName + ','
FROM itmProperty
WHERE propertyid in
(select propertyid from userProperty where userid=@userid)
ORDER BY propertyName

IF LEN(@propertyList)>0
SET @rslt= LEFT(@propertyList,(LEN(@propertyList) -1))
ELSE
SET @rslt= NULL

RETURN @rslt
END

Bu fonksiyonu sorgu içerisinde aşağıdaki şekilde kullanabiliriz.

Select *,
fnGetPropertyList(U.userid)
from tblUser U

12 Aralık 2008 Cuma

İKİ FİLM BİRDEN

Her şey "seks satar" kuramıyla birlikte, "aşk da satar" yan kuramının bulunmasıyla başladı. Dizilerde, sinema filmlerinde ve reklamlarda hep aşk teması kullanıldı. Anlattığınız hikaye ister darbe dönemi anlatımı olsun, ister kurtuluş savaşı olsun, ister Pearl Harbor olsun mutlaka bir aşk hikayesi barındırdı. Karşımıza hep güzel ve yakışıklı "oyuncu" lar çıkarıldı. İnsanlar kendilerinden birşeyler bulmaya başladı. Sonra bayan ürün tüketim sanayisi büyüdü, sonra sıra erkeklere geldi. O ekonomi de yavaş yavaş büyümeye başladı. Sonra etrafta bazı bayanlardan "ortalıkta da doğru düzgün erkek kalmadı, metroseksüel olmasın, adam gibi olsun" veryansınları duyulmaya başlandı.

Şimdi bu oluşan boşluğu da nasıl doldurabilirsiniz? Şöyle; Recep İvedik ve Muro gibi karakterleri sevimli hale sokarak. Böyle yapınca ne olur? Az önceki veryansında bulunan bayan arkadaşlar "oh be, işte böyle doğal adamlar lazım" şeklinde mutlu olurlar. Erkekler ne der peki; "Vay be ne ayı adamlar varmış, ben o kadar da odun değilmişim" diyerek mutlu olur. Hani bir diğer araştırma sonucu "insanlar kendileri etrafında fakir insanlar olunca daha mutlu oluyormuş" sonucundaki gibi bir mutluluk içlerini kaplar. Bu filmleri sinema yönünden eleştirmeye değer bulmuyorum. Muro'nun abuk sabuk (altında farklı çıkarlar olan) siyasi duruşuna da hiç girmiyorum.

Şimdi ne oldu peki? Bir tarafta eğitimli, yakışıklı ve kibar erkekler kızların aşık olacağı "obje" haline getirildi, diğer taraftan da Recep İvedik ile Muro ve ekibi idol gösterildi. İkisi de sattı mı?, sattı.

Galiba insanlar artık hikayelerde kendilerinden birşey bulmak istemiyor. Artık erişemeyecekleri şeyleri izlemekten mutlu, daha iyi konumda olduğu şeyleri izlemekten gururlu olmaya başlamşlar.

ETİKET ANALİZ PROBLEMLERİ

Etiketleme kavramı web 2.0'ın en temel yeniliklerinden birisi. Bir içeriğin tanımlanmasında kategori yapısına göre daha esnek ve kolay bir kullanıma sahip. Fakat etikleme konusunda belli başlı bir kaç problem ortaya çıkmakta. Bu problemleri sıralarsak;

* Çoklu çağrışım : Bir kelimenin birden fazla kavramı çağrıştırması.
Örneğin "fasulye" kelimesi hem sebze olarak , hem de yerli bir film ismi olarak kullanılmış olabilir. Bu durumda aynı etiket tamamen alakasız içeriklerde kullanılmış olacaktır.

* Eş anlamlı kelimeler : Aynı kavramın farklı kelimelerle kullanılabilmesi.
Örneğin farklı içeriklerde etiketlenmiş "yaşlı" ve "ihtiyar" kelimeleri aslında anlam olarak birbirleriyle aynı olarak kabul edilebilir, fakat 2 ayrı etiket gibi davranacaklardır.

* Farklı formlarda kullanım : Kelimelerin farklı şekillerde kullanılması, fiil zamanları, kısaltmalar. Kelimelerin özne veya zamana göre farklı şekillerde kullanıldığı durumlardır. Aynı fiilin farklı zaman kullanımlarında farklı şekilde yazılması veya bazı kelmelerin günlük konuşma dilindeki halleriyle kullanılması yine aynı anlamda fakat farklı etiketler oluşturacaktır.

* Farklı dillerde kullanım : İngilizce dışındaki dillerde bazı terimler yaygın olarak ingilizce karşılıklarıyla dil içinde kullanılmaktadır. Özellikle Türkçe'de teknik konularda bu durumun had safhada olduğunu söyleyebiliriz. Örneğin iki içerik, "veritabanı" ve "database" olarak farklı kelimelerle etiketlenebilir. Yine aynı etiketler farklıymış gibi davranacaktır.

* Yazım hataları : Diğer nedenlerin mantıklı birer açıklaması olmasına rağmen bu durum tamamen ya o anki yazım hatasından veya yazan kişinin o kelimeyi yanlış bilmesinden kaynaklanabilir. Örneğin "yalnız" kelimesi "yanlız" olarak etiketlenebilir.

Bu problemlerin hepsinin "semantic tags", yani iki etiket arasındaki ilişkinin fiziksel değil de anlamsal olarak sağlanması yöntemiyle çözülebileceğini söyleyebiliriz. Zemanta ve DBpedia altyapısı kullanarak hazırlanan faviki "semantic tags" konusuna odaklı bir çözüm sunuyor.

09 Aralık 2008 Salı

SEMANTİK ARAMA MOTORLARI


Bir taraftan fiziksel arama yapan klasik arama motorlarının yerini yavaş yavaş semantik arama yapan yenileri almaya başlayacak, diğer taraftan da varolan klasik arama motorları kendilerini bu yeniliğe uygun bir şekilde değiştirmeye başlayacaklar. Klasik arama motorlarına karşı semantik arama odaklı geliştirilen belli başlı servisleri listelemeye çalışacağım. Hemen hepsi hala geliştirme aşamasında olduğu için kalite konusunda herhangi bir ayrım ve sıralama yapmadan gözüme çarpanları listeliyorum.

1- Hakia : Türk Ceo'su ve çok sayıda Türk çalışanlı Hakia arama motorunun odaklandığı konu popüler yerine kaliteli içeriğe ulaşmak. Aramalar temel olarak 3 kritere bağlı olarak yapılıyor. Kütüphaneciler tarafından önerilen güvenilir web siteleri, en güncel olarak tespit edilen içerikler, ilgili içerikler.

2- Powerset : Bir kaç ay önce Microsoft tarafından satın alındı. Konu, cümle ve sorulara wikipedia içeriğini kullanarak en doğru şekilde ulaşmayı hedefliyor

3- swoogle : Ontoloji, döküman ve terimler içerisinde arama yapan bir semantik arama motoru.

4- quintura : Etikete dayalı bir görsellik sunuyor. Klasik arama motorlarıyla arasındaki fark için de "Dos-Windows" benzetmesini yapıyor. Fark yaratan özellikleri "All-in-one approach", "Context management", "Dynamic data clustering", "Visual semantic cloud", "Easy search" şeklinde listelenmiş.

5- stumpedia : Kendilerini "Human Powered Search Engine" (İnsan odaklı arama motoru) şeklinde konumlandırıyorlar. Site içerisinde arama sonucu gelen sonuçları listeleyip onları oylatabiliyor, istenilen terime ait linkler de kullanıcılar tarafından eklenebiliyor.

6- evri : Kişi, ürün ya da aranılan herhangi birşey ile alakalı yazı, resim ve video içeriklerini listeliyor.

7- Gnod : Kitap, müzik, film ve kişi aramalarına ait sonuçları kullanıcıların ilgilerine göre oluşturuyor. Her birinin neden farklı domainlerde olduğu konusunda bir fikrim yok. Bu sitelere müzik , kitap, film, kişi linklerinden ulaşabilirsiniz.

8- boxxet : Yine kullanıcı ilgilerine göre en iyi içeriği sunmayı hedefliyor

RWW'te yaklaşık 1,5 yıl önce tartışılan Is Google a Semantic Search Engine? konusu hem semantik arama motorlarını anlamak konusunda, hem de klasik arama motorlarının muhtemel geçişi hakkında daha detaylı bir bilgi verecektir, okumanızı tavsiye ederim.

05 Aralık 2008 Cuma

SQL SERVER 2008 PROGRAMLAMA YENİLİKLERİ

Nedense database yönetim sistemlerinin yeni versiyonları çıktığında bizde çok heyecan yaratmıyor. Nedeni de çok az yeni özellikle gelmeleri. Bunun nedeni ilişkisel veritabanı kavramının yaygın olması sebebiyle yeni özellikten ziyade varolan servislerde performans artışına odaklanılması. Bu sebeple de her yeni versiyonda yüzde olarak performans kazançları belirtilir. Sql Server 2008'de de çok yeni özellik olmasa da ben özellikle veritabanı programlama ile ilgili hoşuma giden birkaç küçük yeniliği yazmak istiyorum.

* Değişken tanımlama
Benim çok canımı sıkan bir durumdu bu. Önce değişkeni tanımlayıp, sonra başlangıç değerini atamak zorunda olmak.

Declare @userid int
Set @userid=999

Geç de olsa bu özellik eklenmiş

Declare @userid=999

* Toplu insert
Daha önce bir kolaylık olarak yazdığım toplu insert konusu union cümlesine gerek kalmadan çözülmüş

insert into user(firstName,lastName,status)
select "Ali","Yazar",1 union all
select "Veli","Okur",0 union all
select "Veysel","Bakar",1

şeklindeki ifade

insert into user(firstName,lastName,status)
values
("Ali","Yazar",1),
("Veli","Okur",0),
("Veyseş","Bakar",1)

bu şekilde yazılabiliyor

* Merge

İki tablonuz olduğunu düşünün. Biri gerçek kullanıcılarınızın olduğu "user" tablosu, diğeri de herhangi bir kaynaktan topladığınız yeni kullanıcılarınız olan "newUSer" tablosu. Yapmak istediğiniz userid bazında bakıp, olmayanları eklemek, olanların ise bilgilerini güncellemek.

Aşağıdaki cümleyle bu işlem yapılabiliyor

Merge user as u
using newUser as n
on u.userid=n.userid
when not matched by target then
insert(firstName,lastName,status)
when matched then
update set
firstName=n.firstName,
lastName=n.lastName,
status=n.status

* Grouplama Setleri
Bu özellikle de birden fazla gruplama alanına göre sonuçlar aynı select cümlesi içinde toplanmış. Msdn sitesindeki örnek bu ihtiyaç için çok uygun olduğu için direk aynısını kullandım.

Select Region,Country,Store,SalePerson,Sum(TotalDue) as TotalSales
from SalesData
group by grouping sets
(
(Region,Country,Store,SalesPerson),
(Region,Country),
(Country),
(Region)
()
)

şeklinde yazılan sorgu sonucu aşağıda şekilde listelenir



Daha fazla bilgiye buradan ulaşabilirsiniz.