30 Eylül 2010 Perşembe

Web Öldü, Yaşasın Uygulamalar

Bu makalemizde “Wired” dergisinde kapak başlığı olmuş (Web is dead, long live internet) ve Bloomberg Bussinessweek dergisinde yayınlanmış[2] bir konudan bahsedeceğiz. “Web öldü yaşasın uygulamalar” başlığı ile ele alınan aslında günümüzde teknolojinin eğilimlerini ve bu eğilimlerin yaşam kültürüne yansımalarını farklı bir bakış açısıyla anlatmaktadır.
Derginin bu kapağı yapmasının nedeni son dönemde gördüğümüz ve önemini anlamaya başladığımız “Uygulamalar” ve “Uygulama Kullanma” eğilimidir. Wired dergisinin genel yayın yönetmeni Chris Anderson bu gelişmeyi şöyle anlatıyor:
  • Sabah kalktınız ve e-postalarınızı iPad’den kontrol ettiniz. Yani bir uygulama kullandınız.
  • Ardından kahvaltı sırasında Facebook, Twitter ve New York Times’a göz attınız. Üç uygulama daha kullandınız.
  • Ofise giderken akıllı telefonunuzdan bir podcast dinlediniz. Bir uygulama daha.
  • İşyerinde bir okuma programı üzerinden RSS bilgilerini taradınız ve Skype ile birkaç görüşme yaptınız.
  • Akşam saatlerinde eve geldiniz ve akşam yemeğini hazırlarken bir yandan Pandora’da müzik dinlemeye başladınız, yemekten sonra XBox Live oynadınız ve Netflix’den birkaç dizi seyrettiniz.
Aslında tüm günü internette geçirdiniz ama ‘web’de değildiniz.” Son birkaç yıl içinde, dijital dünyanın en önemli değişimlerin biri, direk browserdan erişmektense uygumlalar yardımı ile bilgileri taşıma şeklindedir.
Geçmişte, Google gibi arama motorlarından önce istenilen bilgiyi etkili ve kısa zamanda bulmak büyük bir külfet idi. Google web’in düzenlenmesi görevini üstlendi ve kısa zamanda rakiplerine büyük bir fark attı. Web büyüyor fakat Google dışında kalan herhangi bir şirket ciddi bir para kazanmıyordu.
Web’in para beklenen ivmeyi sağlayamadığı bu ortamda web’e bir alternatif oluşturulması gerekliliği ortaya çıktı. Burada da kapalı sistemler üzerinden ürünü veya hizmeti satmanın çok daha mantıklı bir model olduğu görüldü. Steve Jobs’un iTunes ile adını koyduğu bu model belki web gibi özgür, açık ve sosuz genişleme hevesinde değildi ama basit bir soruya cevap veriyordu: Para kazanabilir miyim? Evet. İyi bir oyun, bir verimlilik programı yazan bunu binlerce, on binlerce kişiye satıyor ve payını alıyordu. Üstelik Anderson’a göre web mühendisler tarafından tasarlanmıştı ve bilgiyi veya içeriği sunma yönünden çok da ve temiz etkili değildi. Buna karşın uygulamalar, kullanıcının arzu ettiği bilgiyi kolay, temiz ve şık ara yüz ile etkili biçimde veriyordu. Bu yüzden birçok insan web yerine oradaki birçok uygulamayı konsolide eden uygulamalara yöneldi. Bugün bu dünya hızla ve gelir modeli sağlam biçimde büyüyor.
Tüm bu gerçekler bir noktayı işaret ediyor: İnternetin gelecekteki merkezi uygulamalar olacak.
Kaynaklar:
  1. Bloomberg Bussinessweek dergisi, 2010, Serdar Turan, 5-18 Eylül, Sayfa: 32
Armağan DÖKER

28 Eylül 2010 Salı

SMO (SQL Server Management Objects) Nedir?

SMO, Microsoft SQL sunucularını uzaktan yönetmek için tasarlanmış objelerdir. SMO kütüphanesini pojemize referans olarak ekleyerek SSMS (SQL Server Management Studio) ile yapabileceğimiz çoğu işlemi uygulamamızdan yapabiliriz.
SMO, Distributed Management Objects(SQL-DMO) yerine gelmiştir. SMO, SQL-DMO’ ya göre daha performanslı ve kolay kullanımlıdır. SMO çoğu SQL-DMO işlevselliğini içerir, yeni sınıflarlada SQL server yeniliklerini destekler. SQL-DMO bir COM objesidir, SMO ise bir .NET bileşenidir.
SMO, SQL Server 2000, SQL Server 2005 ve SQL Server 2008 sürümlerini destekler. SQL Server 2000 öncesi versiyonları desteklememektedir.
SMO sınıfları iki türlüdür: Instance sınıfları ve Utility sınıfları. Instance sınıfları sunucular, veritabanları, tablolar, triggerlar ve prosedüreler gibi SQL objelerini ifade eder. Veritabanı sunucusunun hiyerarşisini ifade eden bir yapısı vardır. Utility sınıfları belirli işlemleri gerçekleştiren objelerdir. Veritabanı şemasını veya datayı başka veritabanına taşıma, yedekleme ve geri yükleme ve  scripting sınıflarını ifade eder.

Smo ile çalışmak için öncelikle SQL kurulu klasörde bulunan SMO .dll dosyalarını projemize ekleriz.
Aşağıda Smo Server objesi ile çalışmayı örnekleyen VB.Net kodlar var.
Server nesnesi yaratmak için :
Imports Microsoft.SqlServer.Management.Smo
Imports System.Collections.Specialized
Dim SqlServer As New Server
SqlServer.ConnectionContext.ServerInstance = "MSSQLSERVER"
SqlServer.ConnectionContext.StatementTimeout = 3600
SqlServer.ConnectionContext.LoginSecure = True
SqlServer.ConnectionContext.Connect()
Bir veritabanı nesnesine erişmek istiyorsak bir database objesi yaratırız:,
Dim sqlDB As Database = SqlServer.Databases("msdb")
Veya
Dim sqlDB As Database(SqlServer,"msdb")
Bir stored procedure scripti elde etmek için :
Dim sp As StoredProcedure = sqlDB.StoredProcedures("")
Dim script As StringCollection
script = sp.Script()
Bir tablo yaratmak için:
Dim Table As New Table(sqlDB, "NewTable")
Dim ID As New Column(Table, "ID", DataType.Int)
Dim Name As New Column(Table, "Name", DataType.NVarChar(20))
Dim Phone As New Column(Table, "Phone", DataType.NVarChar(11))
Dim PK = New Index(Table, "PK_NewTable")
PK.IndexedColumns.Add(New IndexedColumn(PK, ID.Name))
PK.IsClustered = True
PK.IsUnique = True
PK.IndexKeyType = IndexKeyType.DriPrimaryKey
ID.Identity = True
Table.Columns.Add(ID)
Table.Columns.Add(Name)
Table.Indexes.Add(PK)
Table.Create()
Bir tablo silmek için:
Dim lstTable As New List(Of Table)
If Not lstTable.Contains(sqlDB.Tables("NewTable")) Then
sqlDB.Tables("NewTable").Drop()
End If
Bir script çalıştırmak için:
Dim ds As DataSet
ds = sqlDB.ExecuteWithResults("select * from newtable")
sqlDB.ExecuteNonQuery("delete from newtable")
Serap PARLAK

26 Eylül 2010 Pazar

Qlikview’e İlk Adım (Örnek Uygulama)

Önceki yazılarımızda iş zekâsının günümüzdeki öneminden bahsetmiş ve bu tür uygulamaların farklı platformlar kullanılarak gittikçe yaygınlaştığını dile getirmiştik. Daha sonra da bu tür uygulamaları geliştirebilmek için dikkat edilmesi gereken önemli noktalardan bahsetmiş ve son olarak da farklı bir altyapı ile yeni nesil bir iş zekâsı platformu olan Qlikview’in özelliklerini paylaşmıştık. Bu yazımızda artık Qlikview platformuyla tanışarak küçük bir uygulama gerçekleştireceğiz.
Qlikview de profesyonel olarak uygulama geliştirmek için lisanslı ürünü temin etmeli ve tüm özelliklerinin kullanılabildiği versiyonu kullanmalıyız. Ancak sistemi genel hatlarıyla tanımak ve örnek raporlar hazırlayabilmek için “Qlikview Personel Edition” versiyonunu hazırlamış. Bu versiyonu http://www.qlikview.com/ adresinden “downloads” bölümü altından indirip kurabilirsiniz. Kurulum tamamlandıktan sonra uygulamayı çalıştırdığınızda karşınıza başlangıç sayfası gelecek. Bu sayfada son yapılan uygulamalar, Qlikview versiyonu ile ilgili bilgiler mevcut.
image
Bir rapor uygulamasına başlamak için menüden New seçeneği ile yeni bir Qlikview sayfası yaratılır. Ekrana gelen bu boş sayfa raporun görsel kısmının tasarlanacağı alandır. Raporun kullanacağı veriyi oluşturmak ve/veya veri kaynaklarından veriyi ilgili verileri almak için menüden “Edit Script” seçilmelidir. Açılan script ekranında aşağıda görüldüğü gibi varsayılan tanımlamalar yapılmıştır. Dikkat ettiyseniz değişkenlere yapılan atamalar “SET” anahtar kelimesiyle yapılıyor.

image
Qlikview bir çok farklı tipte kaynağına uygulama üzerinden erişmeye imkan veriyor. Ekranda görüleceği gibi veritabanlarına, bir dosya (text,excel vs) üzerinde verilere, internet üzerindeki verilere veya kendi oluşturacağı farklı raporlardaki verilere ulaşmak mümkün. Ancak biz örnek raporumuzda SQL Server üzerindeki bir veriyi alarak devam edeceğiz. Bunu yapabilmek için ekrandaki “Connect” butonu ile OLEDB kaynakları içinden “Microsoft OLEDB Provider for SQL Server” seçmeliyiz. Bu seçimle birlikte karşımıza klasik SQL Server bağlantı penceresi gelecek. Pencereden hangi server’a bağlantı yapacağımızı, kullanıcı adı, şifresi ve kullanacağımız veritabanı bilgilerini girerek bağlantı seçimlerini tamamlayacağız. Bu işlem sonrasında script editörümüze bağlantı bilgileriyle ilgili aşağıdaki gibi başlayan ve devam eden bir script otomatik olarak eklenecektir.
CONNECT TO [Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa . . . . . .
Raporda kullanacağımız veri kaynağına bağlantı sağladıktan sonra yapacağımız ikinci adım bu veri kaynağında bulunan hangi verilerle işlem yapacağımızı seçmektir. Bunu da yine editör ekranında bulunan “Select” butonu yardımıyla yapacağız. Butona bastığımızda karşımıza ilk önce tekrar bağlantı bilgileri ekranı gelir ve burayı standart şeklinde tamamladığımızda bir sonraki adım olan veri seçimi ekranı açılır. Açılan ekranda aşağıda görüldüğü gibi müşteri tablosundan bazı alanlar seçilmiştir. Bu seçimin Qlikview de saklanması için otomatik olarak oluşturulan script de yine ekranın alt kısmında görüntülenmektedir.
image
Yapılan seçim tamamlandıktan sonra ekranda görüntülenen script olduğu gibi script editöre aktarılır. Yaptığımız bu işlem rapor dosyamıza veri kaynağında bulunan müşteri tablosundan kayıtları çekecek ve kendi içinde saklayacaktır. Qlikview’i diğer platformlardan ayıran özelliklerinden biri olarak bellek içi veritabanından bahsetmiştik. İşte bu özellik burada devreye giriyor. Bir kere raporu oluşturup kaydettikten sonra bir daha bu veri kaynağına ulaşma gereği duymayacaktır. Bu aşamada script editörü menüsünde “Reload” butonuna tıkladığımızda editörde bulunan tüm scriptler çalışarak belleğe yüklenir. Yazılan script’e elle müdahale etmiş isek veri kaynaklarından birer kayıtlık örnekler üzerinden çalışacak olan “Debug” butonuna basarak tüm scriptin tamamen hatasız olduğunu anlayabiliriz. Aksi halde hatalı script son satırda olsa bile önceki tüm veriler yüklenir ama hatadan dolayı tamamen bitiremez. Büyük verilerde belleğe yüklemek uzun sürebileceği için önce debug ile script kontrol edilmeli sonra reload ile çalıştırılmalıdır.
Belleğe yüklenen verilerden rapor yapmak için script editörümüzü kapatıp rapor ekranımıza geri dönüyoruz. Sayfada sağ tıklayarak açılan menüden “New Sheet Objects” seçeneğinden eklenecek bir nesne seçiyoruz.
image
Seçtiğimiz nesnenin belleğe yüklenen hangi veriyi göstereceğini nesne özelliklerinden tanımlayacağız. Örnek olarak “List Box” seçelim. Seçim yaptığımız anda açılan pencerede bu listbox üzerinde bellekteki hangi alanın görüntüleneceğini, numerik bir değerse formatlarını, font ve yazı tiplerini gibi birçok özelliğini değiştirebiliyoruz.
image
Script editörümüzde müşteri tablosundan bazı alanları seçmiştik bualanlardan TXTUNVAN TXTMUSTERIGRUPKOD TXTMUSTERIEKGRUPKOD alanları için birer tane listbox ekleyelim. Eklenen tüm listeler kendi içinde tek olan kayıtları listelerler. Müşteri kaydı tek olacağından anlaşılması kolay ancak müşteri ek grubu için düşünürsek tüm müşterilerde tanımlı olan ek grup listesi “DISTINCT” şekilde gelir. Artık bu noktadan sonra eklenen bu üç nesne birbiriyle ilişkili şekilde çalışacaktır. Müşteri listesinden bir müşteri seçildiğinde, müşteri grubu ve müşteri ek grubunda o müşterinin dahil olduğu gruplar seçili olarak belirecektir. Aynı şekilde bir müşteri grubu veya ek grubu seçtiğimizde de o gruba ait müşteriler ve o müşterilere ait diğer grup seçili hale gelecektir. Dolayısıyla ilişki tek yönlü değil anlık olarak çift yönlü şekilde çalışmaktadır. Bir örnek verecek olursak hiç seçim yapılmamış rapor şu şekildedir;


image
Bir müşteri seçtikten sonraki görüntü ise şu şekildedir;
image
Seçim yapılan listedeki kriter farklı renkte gösterilirken o kayıt ile ilgili diğer listelerdeki kayıtlar da farklı bir renkte belirtilmiştir. Bu şekilde birbirinden bağımsız tablolar ve kayıtlarla ilişkisel sonuçlar çok hızlı ve pratik şekilde oluşturulabilir.
Qlikview’de uygulama geliştirmek görüldüğü gibi hızlıdır ancak yapılan çalışmanın amacı, hedefi ve istenen sonuçlar iyi analiz edilerek bu çalışmaya başlanmalıdır. Örneğimizde sadece liste nesnesi kullandık. Diğer nesneleri ve veri kümesiyle ilişkili kayıtlarla bütün olarak bir işlem yapmak mümkündür. Qlikview’de ilk raporumuzu yaptık :) , bir sonraki yazımızda daha birçok nesnenin kullanıldığı bir rapor yapacağız.
Mustafa ERŞAHİN

22 Eylül 2010 Çarşamba

eTohum Nedir?

Etohum girişimcilerin eksiklerini kapatarak kendi internet şirketlerini kurmasına yardımcı olmak amacını güden yatırımcı girişimci buluşmasıdır.
Etohum yeni ekonomi konusunda bilgi ve fikir sahibi, kendi internet şirketini kurmak isteyen girişimcilerle; şirketleri, yatırımcıları ve profesyonelleri bir araya getirmeyi amaçlar.
Etohum platformunda belirli dönemlerde fikirleri ile başvuran girişimciler arasından seçilen ekip “internet girişimciliği kampı” na katılır. Bu kampta koçluk, yönlendirme yapılıp girişimcilerin kurumsal yatırımcı ve şirketlere fikirlerini sunmaları sağlanır. Girişimciler için ofis yeri, yazılım desteği, internet erişimi, danışmanlık gibi birçok konuda yardımcı olunur. Ancak etohum bir yarışma ya da para ödülü kazanılabilecek bir yer değildir.
Amaç
  • Yatırımcı ile girişimciyi bir araya getiren bir pazar yeri oluşturmak,
  • Yeni ekonomi girişimcilerine yönlendirici koçluk yapılması,
  • Internet pazarında yaratıcı, enerjik, bilgili, yetenekli insan kaynağı havuzunun oluşması,
  • Internet girişimciliğini destekleyici iş ortamı kültürünün geliştirilmesi.
Etohum Gelişimi
Etohum projesi 2008 yılında başlamıştır. E-Fikrim yarışmasının daha geliştirilmiş bir modelidir. Eylül 2008’den Ocak 2009’a kadar üniversite, şirketler ve diğer ortamlarda paneller, forumlar gibi toplantılar düzenlenip Ocak 2009’da 15 girişimci açıklanıp Şubat ayında bu girişimcilerle kamp düzenlenmiştir. Bunun sonrasında da şirketlerle beraber çalışılmaya başlanmıştır.
Seçilen 15 girişimci yine Şubat ayında internet girişim kampına davet edileceklerdir. Bunun sonrasında da başarılı internet şirket kurucuları, teknoloji ve diğer konularda başarılı profesyonellerle bir araya gelinilecektir. Nisan ayı sonuna dek iş planları çıkartılıp katılan şirket ve kişilere gösterilecektir.
Etohum’da 2010 sürecinde seçilmiş girişimler;
  • Roodbox.com,
  • Anneysen.com,
  • Tvdegordum.com,
  • Karniyarik.com,
  • Balerin.com,
  • YollaYolla.com,
  • DersVerilir.net,
  • Filoline.net,
  • Grupanya.com,
  • Ofansif.com,
  • Bogazharbi.com,
  • Dressar.com,
  • Sopido.com,
  • Nefius.com,
  • Lorientalis.org
Etohum’da 2009 sürecinde seçilmiş girişimler;
  • Cvyolla.com,
  • Gercekten.com,
  • Ideshot.com,
  • Kartguru.com,
  • Kimgelsin.com,
  • Kolokyum.com,
  • Ogrence.net,
  • Pabbuc.com,
  • Sunumax.com,
  • Userspots.com,
  • Cepkod.com
Seminerler
Etohum toplantıları olarak kafe toplantıları, üniversitelerde girişimcilik panel ve konferansları, herkese açık girişimcilik kampları ve hafta sonu toplantıları sayılabilir.
http://www.etohum.com/blog adresinden etohum toplantılarını ve etkinlikleri takip edebilirsiniz.
Referanslar
Nimet SÖZERİ