Yii Framework Kurulum

Merhaba , zaman zaman Yii framework hakkında sayfamda bazı konulara yer vermiştim. Ancak yeni başlayacaklar için ve düzenli bir kaynak olması açısından bu bölümü oluşturmak istedim. Bu bölüm altında Yii Framework ile ilgili A’dan Z’ye bütün detayları adım adım paylaşmaya çalışacağım.
Devamı

Öncelikle Yii Framework ile kendi tanışmama gelecek olursak;
Yii ile aramızdaki ilişki bundan yaklaşık 2,5 – 3 yıl öncesine dayanıyor, Bir Php framework
üzerine yogunlaşmaya karar verdiğimde karşıma birbirinden güzel seçenekler geldi, Lavarel, CodeIgniter, Zend, Symfony bunlardan başlıcalarıydı.
Tabiki bu yol ayrımına geldiğinizde bir tercih söz konusu oluyor ve hemen araştırmaya başlıyorsunuz;
Hangi Framework daha iyi? gibi sorularla ortalıkta gezinmeye başlıyorsunuz.
O dönemde benim yaptığım karşılaştırmada çıkardığım sonuc Yii’nin performans ve Güvenlik konusunda diğer framework’lere göre daha cazip gelmesiydi.

Bu yazıyı yazarken’de üşenmedim gittim sizin için Yii’nin performans testini getirdim.

 

yiiFrameworkPerformanceComparison

 

Herneyse, biraz tanımak gerekirse Yİİ → Yes, it is, ‘den geliyor ismi. İsminden de anlaşılacağı gibi Yii’ framework’ün ortaya çıkış sürecinde mükemmellik aranmış olacak ki böyle bir isme sahip olmuş.

Bir zamanlar ülkemizde yapılan bir reklamı canlandırabilirsiniz gözünüzde ;

Bu değil, bu da değil, Bu hiç değil, Evet Bu!.. 🙂

Haydi bakalım şimdi de Yii Framework’ü indirip bilgisayarımıza kuralım.

Derslerimiz Yii-1 üzerine olacak http://www.yiiframework.com/download/ adresine gidip son versiyonu bilgisayarımıza indiriyoruz.

Yii Framework Versiyon

dosyaları htdocs altında yii isminde bir klasör oluşturup (yada tercihinize göre) buraya çıkartıyoruz.

 

yii-dizin

 

Burada Yii Framework’ün çalışabilmesi için bazı özellikler var bunları http://localhost/yii/requirements/ adresine giderek bir kontrol ediyoruz.

 

 

yii-requirements

 

 

Resimde de gördüğünüz gibi benim devam etmem için bir problem yok, Oracle ve MSSQL konusunda birkaç uyarı var sadece bunlar bizim için önemsiz.

Devam edelim.

Çıkarttığımız dizini incelerken “demos” klasörünü göreceksiniz. Burada 4 farklı yii framework örnek projesi mevcut.

Bunlardan Demo Blog prijesini inceleyerek başlayalım ve daha sonra kendi blog sayfamızı oluşturalım.

Linux paket güncelleme Komutları

apt-get komutu linux dağıtımlarında kullanılan tanımlanmış paket kaynaklarından yeni paketleri indirme, bağımlılık kurma, yükseltme ve güncelleme gibi işlemleri yerine getirmek amacıyla kullanılan bir komuttur.

Linux Güncelleme Komutları:

apt-get update / apt-get upgradeapt-dist-upgrade nedir? Farkları nelerdir?

Linux da apt paket yöneticisi kullanan bir işletim sistemine sahipseniz “apt-get update”, “apt-get upgrade”, “apt-dist upgrade” komutlarını tanıyorsunuz demektir.

Peki bu komutlar ne işe yarar? Farkları nelerdir? Bu sorulara cevap bulalım.

Devamı

Hepsiden önce bir ön bilgi; Linux sistemler kendisini güncel tutabilmek için paket dopalarına ihtiyac duyarlar ve bu paket depolarının listesini “/etc/apt/source.list” dosyasında tutarlar.

(bu paket listesine: cat/etc/apt/source.list komutuyla erişebilirsiniz.)

apt-get update:

Bu komut üstte bahsettiğimiz paket depoları ile sisteminizde bulunan paketlerin versiyonlarını / farklılıklarını karşılaştırır ve mevcut listeyi günceller. (herhangibir kurulum söz konusu değildir, sadece listeyi günceller)

apt-get upgrade:

apt-get update komutu ile güncellediğiniz listeye göre sisteminizde bulunan paketler en güncel sürüme yükseltilir.

Sadece sistemde mevcut kurulu paketleri günceller, Mevcut hiçbir paket silinmez.

apt dist-upgrade

apt sistemindeki en fazla yetkiye sahip komuttur. Mevcut paketlerin güncellenmesi, sistemde olmayan yeni bağımlılıkların kurulması, gerek kalmayan bağımlılıkların silinmesi ve sorunlu olan bağımlılıkların çözümü ve sisteminizin güncel kernel sürümüne yükseltilmesine kadar birçok görevi üstlenir.

(Sisteminizde paket kurulumlarından kaynaklı hatalarda başvurabileceğiniz bir komuttur.)

Sisteminizi yeni bir dağıtıma yükseltmez.

 

Java-Mysql Bağlantısı (Eclipse)

Merhaba arkadaşlar, bu yazımızda Eclipse ile java uygulamamıza mysql veri tabanı bağlama ve örnek tablomuzdan veri çağırma işlemlerine değineceğiz. Faydalı olması dileğiyle.

Bilgisayarınızda Eclipse ve Mysql kurulu ve aktif olmalıdır.

Öncelikle Eclipse geliştirme ortamımızda

File→New→JavaProject

adımları ile yeni projemizi oluşturuyoruz.

 

 

Devamı

Şimdi mysql ‘imizin aktif olduğunu düşünürsek java ve mysql’imizi tanıştırmamız gerekecek. Bunun için ikisinin de dilinden anlayan bir aracıya ihtiyacımız var.

Hemen mysql Connector adresine giderek kendimize bir aracı buluyoruz.

mysql_connector

https://www.mysql.com/products/connector/

Java için aracımız “JDBC Driver for MySQL (Connector/J)” ‘ı bilgiayarımıza indiriyoruz.

O indirilirken biz projemize dönüp proje dizinimize sağ click yaparak

New→Folder yolu ile exteral_lib

 

extarnal

klasörümüzü oluşturuyoruz.

Daha sonra indirdiğimiz ve zipten çıkarttığımız “Jmysql-connector-java” klasörümüzde bulunan

mysql-connector-java-5.1.40-bin.jar” (versiyon farklı olabilir) dosyamızı kopyalayıp Eclips üzerinde olşturduğumuz external_lib klasörümüze yapıştırıyoruz.

 

externallib

Daha sonra

mysql-connector-java-5.1.40-bin.jar dosyamıza

sağ click →Build Path→Add to build Path

işlemlerini uyguluyoruz.

Mysql connectorumuzu projemize dahil ettik son olarak Referenced Libraries klasörü altına gelen

mysql-connector-java-5.1.40-bin.jar dosyamıza yine

sağ click yaparak→Buid Path→Configre Build Path

işlemlerini uyguluyoruz.

Hepsi bu kadar artık uygulamamız ve mysql birbirini alyabiliyor. Hadi bunu bir örnekle test edelim.

 

Projemize main class’ımızı oluşturuyoruz.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class main {
public static void main(String [] args)
{

try
{
Connection conn=DriverManager.getConnection(“jdbc:mysql://localhost/testjava”, “root”, “”);
//System.out.println(“Bağlantı Sağlandı”);
String query=”Select * From Personeller”;
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(query);
while(rs.next())
{
System.out.println(“ID:”+rs.getString(“id”)+”ADI:”+rs.getString(“adi”));
}

}catch(Exception e)
{
System.err.println(e);
}
}
}

Programlama Dilleri ve Özellikleri

Programlama dili, programcıların algoritmalarını ifade etmek için kullandıkları standartlaşmış notasyonlardır. Programcılar komut yazmak için farklı rogramlama dillerini kullanabilirler. 2500 den fazla programlama dili mevcuttur.

Programlama dilleri insan algılamasına ve makine diline yakınlığına göre 3 Grupta incelenir.

  Devamı

Alt Seviyeli Programlama Dilleri:

Makine koduna yakın olan programlama dilleridir. Öğrenmesi diller gruplara kıyasla daha zordur. Bu grupta yer alan dillerde diğer gruplara kıyasla donanıma hükmetme daha fazladır.

Orta Seviyeli Programlama Dilleri:

Bu dillerde esnek yapıları ile hem orta seviye hem alt seviye programlama yapmak mümkündür. Alt seviyeli dillere göre anlaşılabilir ve buna bağlı olarak örenilmesinin kolaylığı bu dilleri Orta Seviyeli Programlama Dili yapar.

Üst Seviye Programlama Dilleri (Olay tabanlı programlama dilleri):

Bu programlama dilleri sadece belirli fonksiyonlar çerçevesinde çalışırlar, öğrenmesi çok daha kolaydır. En etkili ve en hızlı programlama dilleri bu grupta yer alır.

Yüksek seviyeli programlama dillerinde yazılan programın çalışabilmesi için makine diline çevrilmesi gerekir. Bunun için program hangi yüksek seviyeli dil ile yazıldıysa o dilin derleyicisi kullanılır. Böylece yüksek seviyeli programlama dili ile yazılmış olan kaynak program, makine dilindeki amaç programa dönüştürülmüş olur. Kaynak programın içeriğinin değiştirilmesi mümkündür, ancak derlenmiş olan amaç programın içeriğine müdahale etme imkanı yoktur.

 

 

 

 

 

Python Programlama Dili

Pyhthon, 1990 yılında Guido Van Rossum tarafından Amsterdam’da geliştirilmeye başlanmış nesne yönelimli, yorumlanabilen , modüler ve etkileşimli yüksek seviyeli programlama dilidir.

Devamı

Neden Python:

  • Derleme gerekmeden çalışabilir,
  • Öğrenmesi kolaydır,
  • Başkasının yazdığı bir kodu okumak diğer dillere nispeten daha kolaydır,
  • Birçok sistem üzerinde çalışabilir (Çapraz platform desteği)
  • Masaüstü, web, mobil programa yapılabilir,
  • Python insan beynindeki düşünme olayı temel alınarak tasarlanmıştır. Yani bir şeyin nasıl olması gerektiğini düşünüyorsanız, Python o şekilde gerçeklenimini sağlar,
  • Python, içerisinde barındırdığı Garbage Collector (çöp toplayıcı) sayesinde uygulamanızın bellek kullanımını optimize eder. Bu durum uygulamanızın kararlılığını ve performansını arttıracaktır.
  • Python, tamamı ile nesne yönelimli bir programlama dilidir. Popüler OOP dilleri ile yarışacak seviyede bir altyapıya sahiptir.
  • Python, Java ve .NET platformları ile entegre biçimde çalışma yeteneğine sahiptir,
  • Hepsinden önemlisi Python “özgür” bir dildir.

An error occurred, please run package manager

Ubuntu güncellemeleri sırasında oluşan ve bilgisayarınızı kullanılmaz hale getiren
“An error occurred, please run package manager” hatasının çözümünü altta veriyorum, sorun yaşayan arkadaşlara yardımcı olması dileğiyle.
Devamı

 

ubuntuhata

ekranın sağ üst kısmında kırmızı uyarı iconuna tıkladığınızda hatanın hangi paketten dolayı oluştuğu hakkında size bilgi verecektir. Genel olarak yapabileceklerinize gelince:

 

Eğer hatanızda ;

Google chrome and the geany ide are the only sofware I have installed since installing linux.

detayı varsa

ilk olarak terminalimizi açıyoruz

sudo apt-get remove google-chrome-stable 

komutunu çalıştırıyoruz.

ve
sudo apt-get update && sudo apt-get upgrade

komutlarıyla sistemimizi güncelliyoruz.

sudo apt-get clean

komutuyla indirilmiş paketleri temizliyoruz.

sudo apt-get autoremove

komutuyla da sistemimizden gereksiz olan paketleri kaldırıyoruz.

son olarak da

sudo dpkg --configure -a

komutuyla tüm paketlerimizin kanfigrasyonunu yapıp

sudo apt-get install -f

paketlerimizi sabitliyoruz.

işte bu kadar ;)








 

 

 

 

Kali Linux ile web açıkları tarama

Merhaba, bu konumuzda Kali Linux nedir ve Kali üzerinde bir web sitesinde bulunan açıklar nasıl taranır? sorularına cevap bulacağız.
Devamı

Kali Linux; Offensive Securit tarafından geliştirilen web, mail, sunucu gibi güvenlik test araçlarını barındıran debian tabanlı bir linux dağıtımıdır.
Önceki adı Back Track olarak bilinse de Kali Linux Back Track dağıtımının bir versiyonu değildir. Back Track Ubuntu üzerinde geliştirilen bir sürümdü.

Başka yazılarda kurulumu ve kali üzerinde bulunan araçların tanıtımına de ğineceğiz.

Bu yazımızda kali üzerinden bir web sayfasındaki açıklar nasıl taranır onu öğrenelim.

Termali açalım ve şu komutu girelim

Kod:

uniscan

uniscan’ı başlattık daha sonra:

Kod:

uniscan -u http://www.taranacaksite.com/ -d

komutunu çalıştırıyoruz. ve uniscan tarmaya başlıyor.

buradak -d tarama türü için verdiğimiz bir parametredir. Uniscan ile kullanabileceğiniz diğer paramatreler;

-d Dizin
-w Dosya
-e Robots.txt dosyası
-d Sistemde bulunan açıklar (Xss,RFI,Backup Fies)
-s Sistemde bulunan diğer açıklar (SQL, XSS, RFI)
-r Site php bilgileri

gibi parametreler ile farklı raporlar alabilirsiniz.

Uniscan taramayı tamamladıtan sonra ilgili sonuçları raporlayarak

Usr/Share/uniscan/report/

klasörü altına html dosyası olarak raporlayacaktır.

Ubuntu-Program yavaşlama sorunu

Ubuntu üzerinde kullandığınız programlarda bir anda yavaşlama ve açılmama gibi problemlerle karşılaşıyorsanız

sudo apt-get update

komutu ile paket lisenizi güncellemeniz önerilir. Bu işlem programınız için yeterli
olmadıysa

sudo apt-get upgrade
ve

sudo apt-get dist-upgrade

komutlarını çalıştırarak sistem veya güncellemelerden kaynaklı program sorunlarınızı
giderebilirsiniz.

Yapay Zeka (Artificial Intelligence)

DUYABİLECEĞİMİZ EN GÜZEL DUYGU, BİLİNMEYEN

KARŞISINDAKİ HEYECANDIR. (A.EİNSTEİN)

Yapay Zeka

Yapay Zeka

(Artificial Intelligence)

Bilişim ve teknoloji hakkında az çok bilgiye sahip olup yapay zeka konusunda merakı olmayan insan olduğunu zannetmiyorum. Ya da bilim kurgu seneryolarından etkilenmeyen.

Bu yazıda yapay zeka nedir? Nasıl Çalışır? sorusuna cevap bulmaya çalışacağız.

Herşeyden önce eğer bir konunun üzerine fikir yürütmek istiyorsak geçmişini ve bugününü iyi bilmemiz gerekir.

Yapay zekanın tarihçesine bir göz atalım;

Fikirler toprağın altında duran tohumlara benzer, ortaya çıkmak için uygun koşulların oluşmasını beklerler.

Eğer uygun ortam oluşmuşsa ben buradayım derler ve sonrası sizin onunla ne kadar ilgilendiğinizle ilgili bir durumdur”.

Bu düşünce şeklinden yola çıkarak yapay zeka tarihine gidecek olursak “Yapay Zeka” tanımının ortaya çıkması için uygun koşulların oluştuğu ilk modern bilgisayarların ortaya çıktığı 1930-1940 ‘lı yıllara yolculuk yapmamız gerekir.

Devamı

Yapay zekanın fikir babası olan Makineler düşünebilir mi? sorusunu ilk ortaya atan ve makina zekası gibi konuları tartışmaya açan matematikçi Alan Mathison Turing dir.

Fikir o yıllarda oldukça ilgi toplamış ve bu konuda bir çok farklı çalışma yapılmıştır. Bu çalışmalar ile birlikte yapay sinir ağları kavramı ortaya çıkmıştır.

İlk yapay sinir ağı modeli 1943 yılında, bir sinir hekimi olan Warren McCulloch ile bir matematikçi olan Walter Pitts tarafından gerçekleştirilmiştir

İlk olarak yapay zeka tanımını ortaya çıkması ise 1956 yılında John McCarthy tarafından Dartmouth Konferansında gerçekleşmiştir.

Artık yapay zekanın tarihi hakkında az çok bilgi sahibi olduğumuza göre bugünü ve geleceği üzerine fikir yürütmeye başlayabiliriz.

Yapay Zeka kavramını ele aldığımızda ortaya çıkan en uygun tanım; makinalara düşünme, karar verme,

analiz etme gibi fonksiyoların kazandırılması diyebiliriz.

Bu tanım üzerinden hareket edecek olursak;

Geliştirilen bir çok icat, teknoloji doğada var olan örneğinin analiz edilmesi ve benzerinin yapılması ile ortaya çıkmaktadır.

Bunun en güzel örneklerinden birisi olarak kasklar üzerinde yapılan ve “Nasıl daha koruyucu bir kask

yapabiliriz?” sorusundan yola çıkarak sn de 25 kez ağaç kabuğunu gagalayarak parçalayan ağaçkakan

kuşunun kafatası yapısı inceleyip bu yapıya uygun modellenmiş kaskların oluşturulması örneğini verebiliriz.

Düşünme, karar verme ve analiz etme fonksiyonlarını göz önüne aldığımızda örnek almamız gereken model

şüphesiz insan olacaktır.

Yeni dünyaya gelmiş bir çocuğu düşünelim. Ona verilen içgüdüler dışında hiçbir bilgiye sahip değilken

dünyaya gözünü açtığında çevresinde gerçekleşen olaylarla birlikte zamanla bir takım gelişimler gösteriyor.

Sıcak, soğuk, acı, tatlı gibi kavramları farketmeye başlıyor. Diğer adıyla ÖĞRENME başlıyor.

Bu noktada eğer İnsanda bulunan Öğrenme yeteneğini model alarak bir makina tasarlamak istiyorsak

Öğrenme yeteğinin fonksiyonlarını ayrıntıları ile bilmemiz gerekir.

Bu ayrıntılar için lise yılarına dönüp en ön sırada oturup biyoloji dersi dinlememiz gerekecek.

Öğrenme; beyin hücrelerinde(Nöronlarda) gerçekleşen kimyasal ve elektriksel değişikliklerdir.

Öğrenme süreci: Beynin duyular yoluyla tarayıp algıladığı bilgileri depolayarak gerektiği zaman

çağırabilmesidir.

Karşımıza 4 farklı kavram daha geliyor. O halde öğrenebilmek için

Tarama : Input (Giriş)

Algılama : Entegrasyon(İşlem)

Depolama :Bellek(Depolama)

Geri çağırma :Output(Çıkış)

süreçleri gerekiyor.

Örnek üzerinden süreci işlemek gerekirse bir çocuğun sobayı tutmaması gerektiğini öğrendiği sürece

bakalım.

Sıcak sobaya dokunuyor burada 5 duyu organımızdan birisi olan deri tarama(input) görevini üstleniyor ve

ilgili hissi patronu olan beyine gönderiyor. Beyin kendisine gelen his doğrultusunda

işlem yaparak(Entegrasyon) bu hissin nasıl sonuçlar doğurabileceği ihtimallerini işleyerek çıkan sonucu

ilgili duyu organında bulunan kaslara eylem(eli sobadan çek) emri olarak gönderirken(Output) aynı

zamanda çıkan sonucu depoluyor(Bellek).

Artık çocuk sıcak sobaya dokunması halinde elinin yanacağını ve bundan acı duyacağını biliyor.

Bu örneğimizde odaklanmamız gereken en önemli kısım Entegrasyon(İşlem) süreci.

Bu süreçte beyin hücreleri(Nöronlar) arası elektriksel ve kimyasal iletişimi sağlayan sinapsların sayıları artar

ve her yeni öğrenmede bu sinaps sayıları karmaşıklaşarak artmaya devam eder.

Biyolojik sinir hücresinin(Nöron) yapısını incelemek gerekirse:

noron

Dendrit: Görevi diğer sinir hücrelerinden iletilen sinyalleri, sinir hücresinin çekirdegine iletmektedir.

Bu yapi basit gibi görünse de günümüzde dendritlerin görevlerinin daha kompleks oldugu yolunda söylemler

hakim olan görüstür. Hücrenin çekirdegi ile herbir dendrit arasinda farkli bir iletisim söz konusudur.

Bu sebeple bazi dendritlerin etkilesimde ağirlikli (dominand) pay sahibi,digerlerininde pasif (resesif) oldugu

gözlenmektedir. Bu ise disaridan alinan sinyallerde seçicilik gibi önemli bir olgunun sinir hücresi tarafindan

gerçeklestirilmesi anlamini tasimaktadir.

Hücre Çekirdeği : Dendritler yoluyla iletilen tüm sinyalleri alip toplayan merkezdir. Biyolojik olarak hücre

çekirdegi (nükleus) olarak da bilinen yapidir. Çekirdek gelen toplam sinyali diger sinir hücrelerine

göndermek üzere, bilgiyi aksona iletir.

Akson: Hücre çekirdeginden aldigi toplam bilgiyi bir sonraki sinir hücresine dagitmakla görevlidir.

Ancak akson bu toplam sinyalin ön islemden geçirilmeden diger sinir hücresine

aktarilmasina engel olur. Çünkü akson ucunda sinapsis denilen birimlere bilgiyi aktarir.

Bağlantılar(Sinapslar): Aksondan gelen toplam bilgiyi ön islemden geçirdikten sonra diger sinir

hücrelerinin dendritlerine iletmekle görevlidir. Sinapsın ön islem ile gerçeklestirdigi görev çok önem

tasimaktadir. Bu ön islem gelen toplam sinyalin, belli bir esik degerine göre degistirilmesinden ibarettir.

Böylece toplam sinyal oldugu gibi degil, belli bir araliga indirgenerek diger sinir hücrelerine iletilmis olunur.

Bu açidan, her gelen toplam sinyal ile dendrite iletilen sinyal arasinda bir korelasyon (iliski) olusturulur.

Öğrenme yeteneğinin biyolojik boyutunu gördüğümüze göre artık bunu model alarak bir makinaya nasıl

uygulayabileceğimize bakabiliriz.

Bu aşamada modelimizde yer alan beyin hücreleri (Nöronlar) ‘ın model alındığı yapay zekanın tarihçesinde

de karşımıza çıkan Yapay Sinir Ağlarını oluşturmamız gerekiyor.

Yapay Sinir Ağları: İnsan beyninin temel birimi olan nöronların model alınarak benzer şekilde yapay

nöronların farklı ağ modelleri ile birbirine bağlanması ile oluşan karmaşık sistemlerdir.

Yapay zekada öğrenme yine örnek model olarak alınan biyolojik öğrenme ile aynı çerçevede

gerçekleşmektedir.

  • İnput
  • Entegrasyon
  • Depolama
  • Geribildirim

süreçleri yapay zeka yapısı için de geçerilidir.

Biyolojik öğrenme örneğimizde de olduğu gibi yapay sinir ağları da yapay sinir hüçrelerininin sinapslar

aracılığıyla birbirine bağlanması ile oluşan yapılardır.

Yapay sinir hücresi yapısı:

yapaysiniragi

Şekilde de yapay sinir hücresinin yapısı verilmştir.

Burada Girdirler (dentritler)

Çekirdek

Eşikleme (akson)

Çıktı (Sinapslar)

olarak görülebilir.

Bu yapının işleyişine bakacak olursak herbir dentrit için bir ağırlık katsayısı (Önem derecesi) yer almaktadır.

Çekirdek kendisine gelen tüm girdi sinyallerinin ağırlıklı toplamlarını elde ederek . Tüm toplam sinyali bir

sonraki sinir hücresine iletmekle görevli olan sinpta bulunan eşitleme fonksiyonuna girdi olarak gönderir. Bu

fonksiyondan çıkan sonuc bir sonraki hücrenin dentritine iletilir.

Bu süreç yapay zekada öğrenme sürecidir.

Genel anlamda yapay sinir ağları, ileri beslemeli ve geri beslemeli ağlar şeklinde iki ana grupta düşünülebilir.

İleri beslemeli ağlarda nöronlar; girdi, saklı ve çıktı olarak adlandırılan katmanlar vasıtasıyla organize

edilir. Herbir katmandaki nöronlar, bir sonraki katman nöronları ile bağlantılı ağırlıkları vasıtasıyla ilişkilidir.

Ancak katmanların kendi aralarında herhangi bir bağlantı yoktur. Bilgi, girdi katmanından çıktı katmanına

doğru ilerler. Buna aktivasyon yönü de denilir. Bu tür ağlar Ögretmenli öğrenme teknikleriyle eğitilir.

Yapay sinir agi modellerinin temel iki islevi vardir.

  1. Ögrenmek
  2. ögrendiginin sorgulamasi yapildiginda buna yanit vermek.

Öğrenmek 2 şekilde gerçekleşir.

  • Ögretmenli öğrenme (Supervised learning):
  • Kendi kendine öğrenme(unsupervised learning):

Öğretmeli öğrenme de yapay sinir ağının dışardan etki ile eğitimlesi söz konusudur ve ne tür bir çıktı

vermesi gerektiği önceden bilinmektedir.

Kendi kendine öğrenme de yapay sinir ağı dışardan etki olmaksızın aldığı bilgileri kendi içinde kıyaslama

yaparak sınıflandırması ile oluşur.

Sorgulama: Daha önce gerçekleşen öğrenmenin sorulanmasıdır. Bu aşamada dikkat edilmesi gereken nokta

daha önce öğrenmediği bir sorguyu öğrendiklerinden birisine benzeterek sonuç üretmeye çalışır. Bu yapı ile

yapay sinir ağı modelleri hata töleranslı mekanizmalar olarak bilinir.

Uygulma Alanları:

Günümüzde yapay zekanın binlerce uygulama alanı bulumakdır bunlardan bazıları uçuş similasyonları,

otonom kontrolü ve askeri uygulamalar, sensör sonar sistemleri, bilgisayar oyunları ve robotik hayvanlar gibi

eğlence dünyasına kadar geniş bir yelpazededir. Bunun yanında bankacılık, sağlık ve sigorta şirketlerinde
müşteri davranışları ve trend tespiti gibi çok fazla miktarlarda bilgi işlenmesi gereken alanlarda da

kullanılabilir. Bu örneklerde yer alan özellikle müşteri davranışlarının algılanması ve bu davranışlar üzerine

yeni pazarlama stratejilerinin oluşturulması gibi süreçler ticari alanda büyük önem taşımaktadır.

Yapay zekanın geleceği:

Günümüz teknolojik gelişmelerini göz önüne alığımızda insan ihtiyaçlarının minimum sürede, zahmetsizce

ve hatasız olarak karşılanabilmesi anlayışı üzerine her geçen gün birçok yeni teknoloji karşımıza çıkmakta ve

bu alanlarda bir rekabet ortamı oluşmaktadır.

Teknolojik gelişmelerdeki bu hız kısmen de olsa dünün bilim kurgularını bugünün imkanları haline

getirmektedir. Bugünün bilim kurguları da yarının imkanları olabilir.

DEVAM EDECEK..

Fatih BURGAZ.

Bootstrap Nedir?

Başlığı görünce öyle hemen Karayip Korsanlarından Bootstrap Bill Turner esprisi yapmayalım lütfen zira kötü bir espiri olduğu gibi konumuzla da alakasız olacaktır 🙂

Bizim Bootstrapımız  HTML,CSS, JS barındıran framework yapısı,

Twitter tarafından geliştirilen ve açık kaynak kodlu(Open source) olan Bootstap Framework dosyalarını linkten indirebilirsiniz.

peki neden böyle bir yapıya ihtiyaç duyulmuş?

Bu sorunun cevabını CSS ve Framework yapılarını irdeleyerek bulabileceğimizi sanıyorum. Bi deneyelim 😉

CSS (Cascading Style Sheets) : Türkçe adıyla Stil sablonları biraz daha açacak olursak herhangi bir yapıyı oluştururken /kurarken

o yapının herbir elemanı için tanımlanan biçim özellikleri diyebiliriz.

Yada canlı üzerinden örneklemek gerekirse

Bir canlıya baktığınızda gözle görebildiğiniz elin şekli, göz ve iki göz arası mesafe, burun şekli gibi tüm kriterleri bir yapı olarak adlandırırsak bu yapıyı destekleyen sistem de iskelet sistemi olacaktır her ne kadar renk gibi kavramlar bu örnekte pasif kalsa da  CSS ‘i kaba haliyle iskelet sistemine benzetebiliriz.

Framework : Uygulama geliştiricisi için önceden hazırlanmış ve içerisinde kütüphaneler barındıran yapılardır (Framework konusuna daha sonra başka bir yazıda detaylı yer vereceğiz).

Geldiğimiz noktaya bakacak olursak Bootstrap  uygulama geliştiriciler için bir araya getirilmiş stiller topluluğu diyebiliriz.

Uygulama geliştiriken kullandığımız butonlardan , inputlara , form yapılarından uyarı pencerelerine kadar birçok stil yapısı

bootstrap içeriğinde hazır tanımlanmış olarak geliyor. Sizin tek yapmanız gereken ilgili elemanınıza gidip özelliklerini buradan al demek kalıyor. (tabiki bu stilleri özelleştirmek tamamen hayal gücünüze kalmış)

Bu da uygulama geliştiriciler için zaman kazancı sağlamanın yanında birçok farklı stil özelliğini uygulamanıza dahil etmenize olanak sağlıyor.

Bootstrap için bu özelliklerin en önemlisi Responsive (Duyarlı/Uyumlu) olmasıdır.

Web uygulamalarında responsive konusuna değinecek olursak; Bir uygulamanın bilgisayar ekranında göze hitab eden ve kullanışlı görünümünün  tablet, telefon gibi mobil cihazlarda da aynı şekilde kullanışlı olarak uyumluluk sağlaması diyebiliriz.

Örn, bir web sitesi yaptınız  ve yayınladınız bilgisayar ekranında herşey tam istediğiniz gibi tasarımlar yerli yerinde fontlar ideal ölçüde eğer css yapınız responsive yapıyı desteklemiyorsa siteniz mobil cihazlarda da bilgisayarda gördüğünüz gibi açılacaktır. Doğal olarak sitenizin içeriğini okuyabilmek için zoom yapmak gerekecek ve kullanıcıya ilk bakışta vermek istediğiniz mesajlarınız çok arka planlarda kalacaktır.

Responsive css yapısı ile oluşturduğunuz uygulamalar görüntülendiği ekran çözünürlüklerine göre stil özellikleri kullanarak görselliği kullanıcının o an görüntülediği cihazda en ideal şekilde kullanabilmesini amaçlar.

Görsel örneklemek gerekirse:

Anasayfamızda yan yana 3 div kullandığımızı düşünelim.

responsive tasarım

Bilgisayar akranında üstteki gibi gördüğümüz tasarım Mobil cihazlarda

 

responsive tasarım div

gibi görüntülecektir. Bu sadece basit bir örnektir bu kısımda da uygulayabileceğiniz şartlarda herhangibir sınır yok.

Örn bilgisayar ekranında görüntülenen bir div için belirli bir çözünürlüğün altındaki cihazlarda görüntülenmesin gibi şartlar eklemek tamamen hayal gücünüze ve ihtiyaçlarınıza kalmış.