Translate

10 Aralık 2016 Cumartesi

Yapay Zeka ve Alt Başlıkları

    Yapay zekâ, bilimsel adıyla mantıksal analiz robotu ; bir bilgisayarın veya bilgisayar kontrolündeki bir robotun çeşitli faaliyetleri zeki canlılara benzer şekilde yerine getirme kabiliyetidir.

    Gelecekte yapay zekâ araştırmalarındaki tüm alanların birleşeceğini öngörmek zor değildir. Sibernetik bir yaklaşımla modellenmiş bir Yapay BeyinSembolik bir yaklaşımla insan aklına benzetilmiş bilişsel süreçler ve Yapay Bilinç sistemi, insan aklı kadar esnek ve duyguları olan bir İrade ( Karar alma yetisi ), Uzman sistemler kadar yetkin bir bilgi birikimi ve rasyonel yaklaşımın dengeli bir karışımı sayesinde Yapay Zekâ, gelecekte insan zekâsına bir alternatif oluşturabilir.
Bilginin hesaplanması matematiksel gelişme ile mümkün olabilir. Çok yüksek döngü gerektiren NP problemlerin çözümü, satranç oyununda en iyi hamleyi hesaplamak veya görüntü çözümleme işlemlerinde bilgiyi saymak yerine hesaplamak süreti ile sonuca ulaşılabilir.
Yeni matematik kuantum parçacık davranışlarını açıklayacağı gibi kuantum bilgisayarın yapılmasına olanak verir .
kaynak : https://tr.wikipedia.org/wiki/Yapay_zekâ

Örüntü Tanıma (Pattern Recogniton)
    Örüntü tanıma, sürekli devam ve tekrar eden şekiller olan örüntüleri tanımaya yarayan bir teknolojidir. Bir şeklin orantılı olarak büyütülüp veya küçültülmesine ise fraktal denir.
Problem alanıUygulama
Doküman analiziDoküman görüntüsü kullanılarak optik karakter tanıma (harf, rakam vs. karakterlerin tanınması)
Biometrik tanımaYüz, iris, imza, parmak izi, avuç izi gibi giriş örüntüleriyle kişi tanımlama/ yetkilendirme
TıpMikroskobik görüntüler alınan meyve görüntüleriyle meyvelerin (örn. kalite derecesine göre) sınıflandırılması
kaynak : https://tr.wikipedia.org/wiki/Örüntü_tanıma


Makine Öğrenimi
   
    Makine öğrenimi
bilgisayarların algılayıcı verisi ya da veritabanları gibi veri türlerine dayalı öğrenimini olanaklı kılan algoritmaların tasarım ve geliştirme süreçlerini konu edinen bir bilim dalıdır. Makine öğrenimi araştırmalarının odaklandığı konu bilgisayarlara karmaşık örüntüleri algılama ve veriye dayalı akılcı kararlar verebilme becerisi kazandırmaktır.
kaynak : https://tr.wikipedia.org/wiki/Makine_öğrenimi


Veri Madenciliği

    Basit bir tanım yapmak gerekirse veri madenciliği, büyük ölçekli veriler arasından bilgiye ulaşma, bilgiyi madenleme işidir. Ya da bir anlamda büyük veri yığınları içerisinden gelecekle ilgili tahminde bulunabilmemizi sağlayabilecek bağıntıların bilgisayar programı kullanarak aranmasıdır. Veri madenciliği deyimi yanlış kullanılan bir deyim olabileceğinden buna eş değer başka kullanımlar da literatüre geçmiştir. Veritabanlarında bilgi madenciliği (İng. knowledge mining from databases), bilgi çıkarımı (İng. knowledge extraction), veri ve örüntü analizi (İng. data/pattern analysis), veri arkeolojisi gibi.
Bunların arasındaki en yaygın kullanım Veritabanlarında Bilgi Keşfi (İng. VBK - Knowledge Discovery From Databases - KDD)'dir. Alternatif olarak veri madenciliği aslında bilgi keşfi sürecinin bir parçası şeklinde kabul görmektedir. Bu adımlar:
  1. Veri temizleme (gürültülü ve tutarsız verileri çıkarmak)
  2. Veri bütünleştirme (birçok veri kaynağını birleştirebilmek)
  3. Veri seçme (yapılacak olan analizle ilgili olan verileri belirlemek )
  4. Veri dönüşümü (verinin veri madenciliği tekniğinden kullanılabilecek hale dönüşümünü gerçekleştirmek)
  5. Veri madenciliği (veri örüntülerini yakalayabilmek için akıllı metotları uygulamak)
  6. Örüntü değerlendirme (bâzı ölçümlere göre elde edilmiş bilgiyi temsil eden ilginç örüntüleri tanımlamak)
  7. Bilgi sunumu (mâdenciliği yapılmış olan elde edilmiş bilginin kullanıcıya sunumunu gerçekleştirmek).
Veri madenciliği adımı, kullanıcı ve bilgi tabanıyla etkileşim halindedir. İlginç örüntüler kullanıcıya gösterilir, ve bunun ötesinde istenirse bilgi tabnına da kaydedilebilir. Buna göre, veri madenciliği işlemi, gizli kalmış örüntüler bulunana kadar devam eder.
kaynak : https://tr.wikipedia.org/wiki/Veri_madenciliği


13 Kasım 2016 Pazar

Azure ile Blob, Queue, Table Storage nedir ?

Blob Storage nedir?
    Azure Blob Storage; HTTP veya HTTPS aracılığıyla dünyanın her yerinde erişilebilen metin veya ikili veriler gibi büyük miktarda yapılandırılmamış nesne verilerinin depolanması için bir hizmettir. Verileri genel olarak herkese açık kullanıma sunmak veya uygulama verilerini özel olarak depolamak için Blob Storage’ı kullanabilirsiniz.
Blob Storage’ın yaygın kullanımları şunlardır:

  • Görüntülerin veya belgelerin doğrudan bir tarayıcıya sunulması
  • Dağıtılan erişim için dosyaların depolanması
  • Video ve ses akışları
  • Yedekleme ve geri yükleme, olağanüstü durum kurtarma ve arşivleme için verilerin depolanması
  • Şirket içi veya Azure barındırılan hizmetle analiz için verilerin depolanması
( kaynak : https://azure.microsoft.com/tr-tr/documentation/articles/storage-dotnet-how-to-use-blobs/ )


Kuyruk Depolama nedir?
Azure Kuyruk depolama, HTTP veya HTTPS kullanan kimlik doğrulaması yapılmış çağrılar aracılığıyla dünyanın her yerinden erişilebilen çok sayıda iletinin depolanması için bir hizmettir. Tek bir kuyruk iletisinin boyutu 64 KB’ye kadar olabilir ve bir kuyrukta, depolama hesabının toplam kapasite sınırına kadar milyonlarca ileti bulunabilir.
Kuyruk depolamanın yaygın kullanımları şunlardır:
  • Zaman uyumsuz olarak işlemek için kapsamı oluşturma
  • İletileri Azure web rolünden Azure çalışan rolüne geçirme
( kaynak : https://azure.microsoft.com/tr-tr/documentation/articles/storage-dotnet-how-to-use-queues/ )






Tablo Hizmeti nedir?
Azure Table Storage hizmeti büyük miktarlarda yapısal veriyi depolar. Bu hizmet, Azure bulutunun içinden ve dışından gelen kimliği doğrulanmış çağrıları kabul eden bir NoSQL olmayan veri deposudur. Azure tabloları, yapılandırılmış ve ilişkisel olmayan verilerin depolanması için idealdir. Tablo hizmetinin genel kullanımları şunları içerir:
  • Web ölçekli uygulamalara hizmet verebilen yapılandırılmış verilerin TB depolaması
  • Karmaşık katılımların, yabancı anahtarların veya depolanan yordamların gerekmediği ve hızlı erişim için normal olmayabilen veri kümelerinin depolanması
  • Kümelenmiş dizin kullanarak hızlı veri sorgulaması
  • WCF Veri Hizmeti .NET Kitaplıklarıyla OData protokolü ve LINQ sorgularını kullanarak verilere erişilmesi

Yapılandırılmış ve ilişkisel olmayan verilerin büyük kümelerini depolamak ve sorgulamak için Tablo hizmetini kullanabilirsiniz; tablolara talep arttıkça da ölçekleneceklerdir.
( kaynak : https://azure.microsoft.com/tr-tr/documentation/articles/storage-dotnet-how-to-use-tables/ )


Grupça hazırladığımız örnek storage videosu;

 

API nedir ? Web API nedir ?

Programlamada "uygulama programlama arayüzü" (API), yazılım uygulamaları inşa etmek için takip
edilen rutinler, uygulanan protokoller ve kullanılan araçlar bütünüdür. API bir yazılımın işleyişi,
girdileri, çıktıları ve altında yatan türleri açısından bunu ifade eder. Bir API kendi uygulamalarından
bağımsız olan işlevsellikleri tanımlar. İyi bir API programın bütün yapıtaşlarını (building blocks)
sağlayarak program geliştirmeyi kolay hale getirir. Sonrasında da programcılar blokları bir araya
getirir. Daha basit bir şekilde anlatmaya çalışırsak API'lar yani Uygulama Programlama Arayüzleri
iki ayrı veritabanının/yazılımın sorunsuz ve hızlı bir şekilde konuşmasını sağlayan yapılar bütünüdür.


Web API

Web API'ları, etkileşimlerin kuruluş ve uygulamalar arasında gerçekleştiği tanımlanmış arayüzlerdir.
Bir API yaklaşımı programlanabilir arayüz sağlayarak farklı tip tüketici topluluklarına hizmet eden farklı
uygulamaların bulunduğu servisleri sağlayan mimari yakaşımdır. Web geliştirme bağlamında ise bir





API tipik olarak Hypertext Transfer Protocol (HTTP) istek mesajları ile Extensible Markup Language
(XML) ya da JavaScript Object Notation (JSON) formatında olan tepki mesajları yapısının bir tanımıdır.
API'ları paylaşma pratiği web toplumlumuna kendisi ve uygulamalar arasında içerik ve data paylaşımı
için açık bir mimari yaratmasını sağlamıştır. Bu şekilde, bir yerde oluşturulan içerik dinamik olarak
internetteki birçok konuma gönderilebilir ve güncellenebilir.
  • Flickr ve Photobucket gibi sitelerden paylaşılan fotoğraflar Facebook, MySpace gibi sosyal
    ağ sitelerinde paylaşılabilir.
  • İçerik sayfaya gömülebilir. Örneğin, SlideShare'deki bir sunum LinkedIn profiline gömülebilir.
  • İçerik dinamik olarak gönderilebilir. Facebook hesabında canlı tweet paylaşımı API'lar sayesinde
    sağlanmaktadır.
  • Başka sunucuların hizmetiyle sitelere video içeriği gömülebilir.
  • Eğer içerik fiziki dünyanın direkt bir temsilcisiyse (mesela Dünya'da bir konumun sıcaklığı);
    API, EPI (Environmental Programming Interface) olarak adlandırılır.
Gözümüzde API'ı daha somut hale getirebilmek için gerçek bir API örneğini ele alalım. İnternet
üzerinden otobüs bileti alırken online seyehat servisi, seçtiğimiz kriterlere göre bize birkaç otobüs
firmasının bulunduğu seçenekler listesi çıkartır. Bize bu verileri sağlayabilmek için tüm şirketlerin
API'larından bilgi almalıdır. Girilmiş olan kriterlerle birlikte otobüs firmasından sefer bilgilerini ister.
Otobüs firmaları ise istenen veriyi online seyahat sağlayıcısı siteye gönderir. İşte bu örnekteki
gibi uygulama, veri ve cihazlar arasındaki pek çok etkileşim API ile sağlanır.
İşletim sistemleri, uygulamalar veya websiteleri için birçok farklı API çeşidi vardır. Örneğin
Windows'un sistem yazılımı ve donanımı tarafından kullanılan birçok API grubu vardır. Bir
uygulamadan diğerine kopyala-yapıştır yaparken bunun gerçekleşmesine API izin verir.
Başta gelen API'lara FacebookGoogle MapsTwitterYouTube ve AccuWeather'ı örnek verebiliriz.

Grup olarak AZURE'dan bir web uygulaması hazırladığımız ve yayına aldığımız
video serisi : 
https://youtu.be/FigArAvf76k
Kaynakça:

9 Ekim 2016 Pazar

BULUT BİLİŞİM ve SANALLAŞTIRMA NEDİR ?

    Bulut bilişim, sahip olduğumuz tüm verilerimizin sanal bir sunucuda yani bulutta depolanması anlamına gelmektedir. İnternete bağlı olduğunuz herhangi bir ortamda kullanmakta olduğunuz cihazlarınız aracılığıyla bu bilgilere, verilere yada programlara kolayca ulaşabilceğiniz hizmetlerin bütününe Bulut Bilişim veya Bulut Teknolojisi denir. Yani harddisklerinizde depoladığınız verilerin internet ortamında sanal sunucularda saklanması işlemidir. Uzmanlar tarafından internetin geleceğinin bulut bilişimden geçtiği öngörülmektedir. Buna göre gelecekte, bilgisayar harddisklerin yerine çevrimiçi bulutların kullanılacağı ön görülür.


Bulut Bilişimin Avantajları;

Düşük Donanım Maliyeti
Gelişmiş Performans
Düşük Yazılım Maliyeti
Anında Güncelleme
Sınırsız Depolama Kapasitesi
Artırılmış Veri Güvenliği
İşletim Sistemleri Arasında Geliştirilmiş Uyum
Artırılmış Dosya Formatı Uyumu
Grup Çalışması
Gizlilik ve Güvenlik

Dezavantajları
Sabit İnternet Bağlantısı Gerektirmesi
Düşük Hızlarda Düzgün Çalışmaması
Uygulamanın Yavaş Çalışması
Güvenlik Açıkları
Sistem Güncellemeleri
Deneyimsiz bulut operatörü
Kullandığınız Programın Özellikleri
Bulut depolama hizmetlerine en iyi örnekler:
Bulut bilişimin çeşitli modelleri, tipleri ve yapıları bulunmaktadır. Bu bilişimin 4 ayrı tipi vardır. Bunları kısaca açıklarsak:

Public Cloud (Genel Bulut): Kendi sistemimizi genel yapıyı tamamen buluttan faydalanarak kuruyoruz. Yani bu demektir ki sistemimizi üçüncü şirket üzerinde kiralayacağımız kaynaklar üzerinde kuruyoruz. Elektronik postalarımızı buna örnek olarak verebiliriz. Public Cloud basit tabiriyle ne kadar kullanıyorsanız o kadar ödeme yapıyorsunuz. Bunu genellikle küçük ve orta ölçekli şirketler daha çok kullanıyor.

Private Cloud (Özel Bulut): Private Cloud daha büyük şirketler ve bilgileri daha önemli olan şirketlerin tercih ettiği bir bulut tipidir. Private Cloud kişisel kurduğumuz yapı olduğu için tüm bilgiler bizim elimizin altındadır.

Hybrit Cloud (Melez Bulut): Private Cloud ve Public Cloud'un birleşmesinden ortaya çıkan yapılardır. Güvenlik ve gizliliğin daha önemli olduğu ve tedbirin yüksek tutulması gereken yerlerde Private Cloud kullanılır. Fakat güvenlik tedbirinin daha düşük düzeyde tutulabileceği alanlarda Public Cloud kullanmak daha mantıklıdır.

Cummunity Cloud (Topluluk Bulut): Çok fazla kullanılan bir bulut teknoloji tipi değildir. Bulut üzerinde aldığımız bir hizmeti eğer bir kaç şirket ile ortak kullanıyorsak buna Cummunity Cloud denir.



 BULUT SERVİS MODELLERİ

SaaS (Software as a Service): 

Web tabanlı yazılımların tek bir hosting merkezinde barındırılıp, internernet aracılığıyla kullanıcıların hizmetine sunulduğu bir yazılım dağıtım modelidir. Saas modelinin sağladığı en önemli avantajlar operasyonel donanım ve lisans maaliyetlerini en aza indirgemesidir.
Servis olarak yazılım hizmeti; kullanıcıların ihtiyaç duyduğu ERP, CRM finans ve muhasebe yazılımları gibi programları bulut üzerinden sağlar. Farklı lokasyonlarda faaliyet gösteren firmalar için SaaS ekstra yazılım maaliyeti oluşturmayarak ciddi ekonomik avantaj sağlar. SaaS için en uygun örnek Gmail'dir. Google'ın sunduğu bu hizmet ile email gönderebilir, dökümanları hızlı düzenleyebilir ve dosyalarınızı yedekleyebilirsiniz. Bunun içinde yazılım bilginiz olmasına gerek olmadan gerçekleştirebilirsiniz. SaaS'ın avantajları ; gelişmiş uygulamalara erişim hakkı elde etme, yalnızca kullandığın kadar ödeme, ücret istemci yazılımı kullanma, uygulama verilerine her yerden erişme gibi avantajları vardır. SaaS'ı kullanmamızın en önemli nedenleri  diye bir soru sorulduğuna aslında verilecek birden fazla cevap vardır. Hızlı ve kolay geçiş, her zaman güncel ve yeni özelliklere hazır,esnek çözümler, düşük maaliyet, daha az sorumluluk daha çok iş, istediğiniz yerden çalışma özgürlüğü, yok denecek alt yapı maaliyeti gibi bir çok cevap verilebilir.

PaaS (Platform as a Service): 

 Tipik bir bilgisayar platformu dahilinde bilgisayarın mimarisini, işletim sistemini, programlama frameworklerini ve kullanıcı arayüzünü içerir.
Basit bir düz mantık ile cevap verirsek Platform As A Service yukarıda bahsettiğimiz platformların servis olarak sunulmasından başka bir şey değildir. PaaS size uygulama dizaynı, uygulama geliştirme, hosting, test işlemleri için ihtiyacınız olan platformu sağlar. Tabi ki bu platformu cloud işlem vasıtası ile hızlı bir şekilde konfigure edebilir ve kendi ihtiyacınız doğrultusunda anında işlem yapacak hale getirebilirsiniz.
PaaS size altyapı üzerine kurulmuş hazır bir platform sunar. Örneğin Microsoft Azure buna bir örnektir veya yukarıda bahsettiğimiz gibi Google App Engine. IaaS ise daha temel bir seviye olarak sadece altyapıyı sunar yani altyapı üzerine çalışacak platformu kendiniz oluşturmak zorundasınız. 
Daha basit bir anlatımla Plartform hizmeti, uygulama geliştiricilere donanım ve yazılım katmanları sunarak projelerini geliştirme imkanı sağlar. Bu hizmet sistem yönetimi, işletim sistemi,programlama dili ortamı, veritabanı vs. gibi platformlar sunar. Sistem yönetimi hizmet sağlayıcı tarafından gerçekleştirildiği için siz sadece uygulamaları ve verilerinizi yönetebilirsiniz. Örneğin PHP ile bir yazılım kodladınız. Kodladığınız yazılımın SQL ve web sunucu alt yapısı ile uğraşmak zorunda kalmazsınız. PaaS sadece yazılımınızın çalışması gereken platformları sağlar.
PaaS hizmetinin bize sunacağı faydaları aşağıdaki gibi listeleyebiliriz:
  • Teknik anlamda altyapı ile uğraşmazsınız.
  • Kendi platformunuzu oluşturmak için risk almazsınız.
  • Altyapı maliyetine ücret ödemezsiniz  ve platform hizmetini kullandığınız kadar ödersiniz.
  • Dakikalar içerisinde elinizde hazır bir platform olur.
  • Diğer web servisleri ile entegre çalışabilirsiniz

IaaS (Infrastructure as a Service): 

   Alt yapı hizmeti , bulut bilişimin en temel hizmetidir. IaaS ile sanal sunucu oluşturulup kullanıcılara bulut sunucu hizmeti sunulmaktadır. Bulut alt yapısı ile sanal sunucu kaynakları size özel olarak tahsis edilir. IaaS ile esnek alt yapıya sahip olursunuz. Örneğin tatil organize eden web sitelerinde tatil sezonların başlangıcına yakın sunucu kaynak ihtiyaç artar. Kullanılan kaynaklar, bulut bilişim'in esnek yapısından faydalanılarak istendiği zaman artırılıp azaltılabilir. Başka bir anlatışla uzaktaki sunucularda sizin adınıza sanal bir sistem oluşturuluyor ve siz bu sistem üzerinde istediğiniz manipülasyonu yapabiliyorsunuz. (Örneğin: bir işletim sistemi yükleme gibi ). Bu servis türüne Amazon ECS ve RackSpace Cloud ortamları örnek verilebilir.



SANALLAŞTIRMA

Sanallaştırma; işletim sistemleri, depolama aygıtları ya da ağ kaynaklarından herhangi birinin aslını kurmak yerine  onları sanal olarak kurmaktır. Bilişim sektöründe, sanallaştırma bir kaynağın özellik ve fonksiyon olarak daha farklı biçimde kullanılmasıdır. Bu bir sunucunun birden fazla sunucu gibi işlemesi, birden fazla sunucunun tek bir sunucu gibi işlemesi ya da bir sunucunun değişik platformlardaki sunucu yeteneklerini barındırarak işlem yapması gibi üç farklı şekilde basitçe örneklendirebiliriz. Birden fazla sunucu ihtiyacı olan herhangi bir bilgi işlem merkezi sanallaştırma teknolojisinden tamamiyle faydalanabilir. Ek olarak, farklı işletim sistemlerinde çalışma zorunluluğu olanlar için de tek bir sunucu üzerinden işlemlerini gerçekleştirmek ayrı bir kilit noktadır.
Genel olarak çoğu zaman sanallaştırmanın güvenlik zafiyetine sebebiyet verebileceği gibi bir izlenim var. Aslında sanallaştırma sayesinde bilginin güvenliliği ve gizliliği parçalandığı için artar.

  • Ağ sanallaştırması(Network virtualization); ağdaki uygun kaynakların, uygun bandwidth’lerin herbiri birbirinden bağımsız ve belli bir sunucuya ya da aygıta atanmış kanallara taksim edilerek bir araya getirilmesi metodudur.  Sanallaştırmadaki  mantık,  tıpkı bölümlere ayrılmış sürücünüzün dosyaları daha kolay  yönetmesindeki  gibi, ağın yönetilebilir bölümlere ayrılarak  gerçek karmaşıklığının gizlenmesidir.
  • Yedekleme sanallaştırması(Storage virtualization); merkezi konsoldan yönetilen tek  bir depolama aygıtıymış gibi görünen birçok ağ depolama aygıtının fiziksel yedekleme birleştirilmesidir.
  •  Sunucu sanallaştırması(Server virtualization); bireysel sunucuların, işletim sistemlerinin ve işlemcilerin numaralar ve kimlik bilgileri gibi  sunucu  verilerini, sunucunun kullanıcılarına karşı maskelemektir. Buradaki amaç; artan kaynakların paylaşımı, kullanımı ve kapasitenin sonradan arttırılacak şekilde korunmasını sağlarken kullanıcının, sunucudaki karmaşık ayrıntıları bilmesi ve sunucuyu yönetmesini önlemektir.