Volkan Atasever

Founder of inhoftec Solutions - Bilgisayar Mühendisi - Yazılım Uzmanı & Danışmanı - PCWorld Dergisi Yazarı - INETA User Group Lead - Technologist - Speaker - Technology Researcher

Yapay Zeka Programlama Dilleri ve PROLOG

clock Aralık 8, 2009 17:17 author Volkan Atasever tarafından yayınlanmıştır

Yapay zeka programlama dillerinin en ünlüleri LISP ve PROLOG’tur. Bu bağlamda PROLOG yapay zeka programlama dili incelenecektir. PROLOG, yapay zeka içeren sistemler yaratmamızı sağlar. Günlük sıradan cümleleri belli bir yapıda kabul edip bunların sonuçlarına varabiliriz. Standart programlama dillerinden çok farklı yapıya sahiptir.

Bir prolog programı;

 

  male(james1).

  male(charles1).

  male(charles2).

  male(james2).

  male(george1).

  female(catherine).

  female(elizabeth).

  female(sophia).

  parent(charles1, james1).

  parent(elizabeth, james1).

  parent(charles2, charles1).

  parent(catherine, charles1).

  parent(james2, charles1).

  parent(sophia, elizabeth).

  parent(george1, sophia).

 
Sorgulamalarımızı nasıl yapmamız gerekiyor? Bunları burada formülize ediyoruz.
 
     George I, Charles I’in ailesimidir ? 
              Query: parent(charles1, george1). 
     Charles I’in ailesi kimdir?
              Query: parent(charles1,X). 
     Charles I’in çocuğu kimdir?
              Query: parent(X,charles1).

 

Aile yapımız inputlara göre şöyle olmaktadır;

 
                              James I
                                 |
                                 |
                +----------------+-----------------+
                |                                  |
             Charles I                          Elizabeth
                |                                  |
                |                                  |
     +----------+------------+                     |
     |          |            |                     |
 Catherine   Charles II   James II               Sophia
                                                   |
                                                   |
                                                   |
                                                George I

 

 

Bu sorguları elimizdeki inputlar oranında daha da fazlalaştırabiliriz.

Düşünsenize bir database’inizin elinizde olduğunu ve bu tür sorgulamaları database üzerinden yapabildiğinizi! Veritabanının çok geniş içeriklerde veri içerdiğini ve bu verileri çok hızla işleyebildiğimiz PROLOG diliyle sorgulama yapmamız bize avanatj kazandırabilmektedir.

 

.NET Ortamında PROLOG: PROLOG.NET Projesi!!!

.NET ortamına aktarılmaya çalışan ve .NET Framwork altyapısıyla birlikte PROLOG Programlama dilinin çalışması için bir proje sürmekte kişisel imkanlarla yürütülen bu projenin ismi PROLOG.NET. En son release tarihi 2006 yıllarına geldiği için rafa kalkmış bir proje diyebiliriz. Projenin sayfasını ziyaret etmek için: http://prolog.hodroj.net/downloads.html

Bu kadar olumsuzluklara rağmen süregelen .NET ortamına geçirme çalışmaları ve farklı projelerde mevcut.

Bunlardan bazıları;

P# adı altında .NET ortamı için prolog

Prolog for .net developers adı altındada çalımalar mevcuttur.

 

Kaynaklar:

http://www.cs.toronto.edu/~hojjat/384f06/simple-prolog-examples.html

 

 



Azure Servisleri Training Kit

clock Mart 3, 2009 03:42 author Volkan Atasever tarafından yayınlanmıştır

Azure Servisleri training kitini aşağıdaki linkten indirebilirsiniz.

İçerik: Windows Azure, .NET Servisleri, SQL Servisleri, ve Live Servisler

http://www.microsoft.com/azure/trainingkit.mspx



MOSS 2007 Nedir ? Ne Değildir ?

clock Ekim 31, 2008 01:46 author Volkan Atasever tarafından yayınlanmıştır

2008 Ekim Notu: Eski sitemde yazdığım bir yazı hala geçerliliğini korumakta. MOSS 2007 teknolojisi üstünde fazla bir çalışmam olmamasına rağmen Microsoft S2B Sharepoint eğitimi kapsamında bir bilgi deneyimim ve kullanma şansım olmuştur bu çalışmalarımı evden yürütmeme karşın piyasaya bir iş yapmış değilim. Piyasadaki araştırmalarım doğrultusunda kurumsal bazda  daha fazla kullanıldığını söyleyebilirim. Her zaman bu yolun seçilmesi belki maliyetli olabilir ama kaçınılmaz durumlarda da  hem yazılımcının hemde ekibin iş yükünü azalttığı bir gerçek. Çok fazla sayıda olmasada sağlam diyebileceğimiz firmalar bu teknolojiyi firmalara önermekte. Microsoft Zirve 2007'de MOSS üstünde çok fazla durulmuş idi. Meyvelerini verdiğini söyleyebilirim fakat Nezih Tınas ve Evren Ayan dışında çok aktif olan bir başka kişi ve bilgi paylaşımı yapan kişiyede rastlamadığımı söylemeden edemeyeceğim.

   Son zamanlarda adından sıkça sözettiren MOSS 2007 programlamaya ve yazılıma gönül vermiş kişiler tarafından sıkça araştırılan bir konudur. MOSS 2007 üzerinde yazılım geliştiren kişilerin azlığıda bunu tetiklemektedir. Öncelikle MOSS un açılımı üzerinde duracak olursak Microsoft Sharepoint Server 2007’nin kıslatması olduğunu göreceğiz.            Peki neden MOSS bizim için önemli ? MOSS ile duymaya başladığım WSS ve Workflowlar üstüne eğileceğim bu makalemde MOSS’a giriş seviyesinde bir bilgi aktarımı yapmış olacağım. MOSS 2007 yi aradığınızda WSS diye bir terimle karşılacaksınız ve bu uygulmanın ücretsiz olduğu için indireceksiniz. Fakat bu uygulama bir server uygulaması olduğu i,çin standart bir windows işletim sisteminde çalışmayacaktır. WSS’i MOSS 2007’nin kısıtlı bir versiyonu olarak düşünebiliriz.            Orta veya büyük ölçekli firmalarda MOSS bir devrim yaratmaktadır. Adı üstünde paylaşımlı servisler kullandığı için bir firmanın bütün ihtiyaçlarını karşılayabilmektedir.            Bu ihtiyaçlar neler olabilir?            Döküman yönetimi ve takibi.            Workflowlar.            Site koleksiyonları ve siteler.            Office Entegrasyonu.            Customize edilebilen yapısı.

Şahsi fikrim olarak saydığım bu birkaç kelime MOSS 2007 nin en önemli özelliklerinden olup en çok kullanılabilecek kısımlardır. Tabiki bununlada kısıtlı değil.

İsterseniz MOSS 2007 nin yapısını bir grafikle irdeleyelim;   Grafiktende görebileceğiniz gibi yapılabilecekleri 6 temel başlıkta inceleyebiliriz.

1-) Collaboration (İş birliği, Beraber Çalışma)           

Burada basit yönleri ile bloglarınızı tutabilir, Outlook ile entegre bir şekilde çalışabilirsiniz. Günümüzdeki popülerliği artan wiki leride bu bağlamda oluşturabilirsiniz.

2-) Business Intelligence (İş Zekası)           

Excel çalışma sayfaları ile belgeleri görselleştirebilir bunları export edebilir. Web Partslar oluşturabilirsiniz. KPI ile çalışanların patronlara sunabileceği anlaşılabilirlik açısından çok önemli olan kırmızı yeşil ve sarı simgelerle şirketinizin durumunu dakikalar mertebesinde yöneticinize sunabilirsiniz.

3-) Business Processes

4-) Content Management (İçerik yönetimi)           

Entegre döküman yönetimi yapabileceğini gibi MOSS ile birlikte gelen versiyonlama gibi hizmetlerden yararlanarak dökümanların son halini her zaman elinizin altında tutarsınız.

5-) Search (Arama)           

Kompleks bir arama yapısı ile istediğiniz dökümana, kişiye ve bilgiye anında ulaşabilirsiniz.

6-) Portal           

Portallar sayesinde site oluşturabilir bu sitede blog tutup wikiler yaratabilirsiniz. Aynı zamanda şirket içi olan olaylardan anında haberdar olup anketleri cevaplayabilirsiniz.

Central Administrator’dan bir görüntü;

 

Bu ekrandan MOSS ile ilgili işlemlerinizin %40 ‘ını halledebilirsiniz.



Dinamik olarak PowerPoint Sunusu oluşturmak

clock Ekim 29, 2008 05:53 author Volkan Atasever tarafından yayınlanmıştır

       Yine C# ile yazılmış küçük ve kullanışlı bir uygulama bir soru üstüne internetten bulmuştum bu kodu. Güzel bir uygulama gerçekten. eğer uygulamanızda dinamik bir şekilde powerpoint sunusu oluşturmak isterseniz işe yarıyor. Fazla söze gerek yok deneyimli geliştiricelerde çoğunlukla az söz çok iş derler :) Bu sınıfı kullanarak veya biraz daha geliştirerek iyi iş çıkartabilirsiniz. Kolay gelsin. 

 

using System;
using System.Collections.Specialized;
using Microsoft.Office.Core;
using PowerPoint = Microsoft.Office.Interop.PowerPoint;

namespace MSPPTApp
{

 public class PPTAuto
 {
  PowerPoint.Application objApp;
  PowerPoint.Presentations objPresSet;
  PowerPoint._Presentation objPres;
  PowerPoint.Slides objSlides;
  PowerPoint._Slide objSlide;
  PowerPoint.TextRange objTextRng;
  PowerPoint.TextRange objTextRng1;

 

  public PPTAuto()
  {

  }
  public void CreateFile(StringCollection array)
  {
   String strTemplate;
   strTemplate = "Template'in yolunu buraya yazın";

   // yeni sunum yaratma 
   objApp = new PowerPoint.Application();
   objApp.Visible = MsoTriState.msoTrue;
   objPresSet = objApp.Presentations;
   objPres = objPresSet.Open(strTemplate,
    MsoTriState.msoFalse, MsoTriState.msoTrue, MsoTriState.msoTrue);
   
   objSlides = objPres.Slides;

   // Slide ekleme 
   objSlide = objSlides.Add(1,PowerPoint.PpSlideLayout.ppLayoutTitleOnly);
   
  
   objSlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal,100,100,500,80);
   objSlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal,100,150,500,80);
   objSlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal,100,200,500,80);
   objSlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal,100,250,500,80);
   objSlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal,100,300,500,80);
   objSlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal,100,350,500,80);
   objSlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal,100,400,500,80);

   objTextRng = objSlide.Shapes[1].TextFrame.TextRange;
   objTextRng.Text = "These are my details";
   objTextRng.Font.Name = "Arial";
   objTextRng.Font.Size = 20;

   objTextRng = objSlide.Shapes[2].TextFrame.TextRange;
   objTextRng.Text =array[0] ;
   objTextRng.Font.Name = "Arial";
   objTextRng.Font.Size = 20;

   objTextRng = objSlide.Shapes[3].TextFrame.TextRange;
   objTextRng.Text =array[1] ;
   objTextRng.Font.Name = "Arial";
   objTextRng.Font.Size = 20;

   objTextRng = objSlide.Shapes[4].TextFrame.TextRange;
   objTextRng.Text =array[2] ;
   objTextRng.Font.Name = "Arial";
   objTextRng.Font.Size = 20;

   objTextRng = objSlide.Shapes[5].TextFrame.TextRange;
   objTextRng.Text =array[3] ;
   objTextRng.Font.Name = "Arial";
   objTextRng.Font.Size = 20;

   objTextRng = objSlide.Shapes[6].TextFrame.TextRange;
   objTextRng.Text =array[4] ;
   objTextRng.Font.Name = "Arial";
   objTextRng.Font.Size = 20;

   objTextRng = objSlide.Shapes[7].TextFrame.TextRange;
   objTextRng.Text =array[5] ;
   objTextRng.Font.Name = "Arial";
   objTextRng.Font.Size = 20;

 

//   // Slide'ın üstüne iki şekil ekle 
//   PowerPoint.Shape objSquareShape = objSlide.Shapes.AddShape
//            (MsoAutoShapeType.msoShapeRectangle,
//             0, 0, 100, 100);
//   PowerPoint.Shape objTriangleShape =  objSlide.Shapes.AddShape
//            (MsoAutoShapeType.msoShapeRightTriangle,
//              0, 150, 100, 100);
//
//
//   PowerPoint.TextFrame = objSlide.Shapes.AddShape(
//         (MsoAutoShapeType.msoShapeRectangle,
//          0, 0, 100, 100);

//   objTextRng1 = objSlide.Shapes[2].TextFrame.TextRange;
//   objTextRng1.Text = "My Sample Presentation";
//   objTextRng1.Font.Name = "Arial";
//   objTextRng1.Font.Size = 20;

  


  }

 }
}



Java Öğrenmek !

clock Ekim 27, 2008 02:40 author Volkan Atasever tarafından yayınlanmıştır
Java diline başladığımı twitter'ımda kısaca değinmiştim. Bu yolda önüme çıkanları ve izlediğim yolu sizlerle paylaşarak nereden başlanır veya nereden başlamalıyım sorularına ve kullandığım IDE ve sistem hakkında kısa bilgi vermek isterim. Sun'ın sitesinden öncelikle JDK yani java development kit paketini kurmanız gerekmekte. IDE yani geliştirme ortamı olarakda karşıma iki seçenek çıktı bunlar NETBEANS ve ECLIPSE. Bu işi profosyonel anlamda yapanların çoğunluğu ECLIPSE'i önerdi. Fakat dilin özelliklerini öğrenmek için NETBEANS IDE'si de oldukça yeterli. Daha önceden object oriented yani nesne yönelimli bir dile hakimseniz çok hızlı yol kat etmeniz olası. Nesne Yönelimli Programlama mantığı hemen hemen aynı bunun için dili öğrenmede yeni başlayanlara göre konsolda daha az vakit geçireceğiniz muhakkak. Yazılım camiasında geçiş Java'dan C#' a doğru ilerlerken ben tam tersi bir mantık ile işi girdim hemde çok karmaşık bir şekilde profosyonel manada ilk öğrendiğim dil C ardında C# ve C++ ile devam etti. Java ile ilgili önümüzdeki günlerde yaşayacağım ilginç izlenimleride sizlere aktaracağım.


Volkan Atasever Kimdir ?

E-Mail: volkan@volkanatasever.com

Founder of inhoftec Solutions
Bilgisayar Mühendisi
Yazılım Uzmanı&Danışmanı
PCWorld Dergisi Yazarı
DeveloperMania.Net Topluluk Lideri
Technology Speaker
Teknoloji Uzmanı&Danışmanı





Kitapları

Sosyal Ağlarım

    

 

Twitter

Calendar

<<  Mayıs 2012  >>
PaSaÇaPeCuCuPa
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

View posts in large calendar

Son Yorumlar

Comment RSS

Son Yazılar

Yasal Bilgi

Sitedeki yazıları,kodlar ve diğer materyaller Volkan Atasever'e aittir. Yazarı ve siteyi kaynak göstererek yazıları paylaşabilirsiniz.  Copyright(c)2008-2011

Giriş

Yazılım