image

Nalan Ulusoy

Merhaba,Kısaca kendimden biraz bahsedeyim.Çanankkale On Sekiz Mart Üniversitesi Bilgisayar Mühendisligi mezunuyum.Yazılm geliştirmek yeni teknoloji ve trendleri takip etmek bu noktada da ögrendiklerimi sizlerle paylaşmayı seviyorum.


EGİTİM
Çanakkale On Sekiz Mart Üniversitesi

Bilgisayar Mühendisligi

2015


PROJELER

YETENEKLER
Nesne Yönelimli Programlama
Java
Objective C
Git
Sql
YAZILARIM

LİNUX KULLANICILARI İÇİN BAZI SORUNLARIN ÇÖZÜMÜ

Öncelikle merhaba yazı yazmayalı baya olduğunu farkettim.Geri dönüşüde not defterime kaydettiğim başıma gelen bazı olabilitesi yüksek sorunlarla yapmak istedim.

1.sudo apt-get update komutunu terminalde çalıştırdığımda aldığım bir sorun ve çözümü
sudo apt-get update komutunu terminalde çalıştırdığımda update yapmıyordu http hataları alıyordum ve komut tamamlanınca çıktıda verdiği hata
E:Bazı indeks dosyaları indirilemedi.Bu dosyalar yok sayıldılar ya da önceki sürümleri kullanıldı.
Siz siz olun komut satırınıza sonucunu tahmin edemediğiniz komutlar çalıştırmayın diyip uyarımı yaptıktan sonra bu sorunu çok basit birşekilde aşabilirsiniz.İşletim sisteminin update ve upgrade yaptığı depoların serverlarını değiştirmekle halledebiriz.Ayarlardaki yazılım güncelleştirmeleri kısmındaki serverı  kendinize uygun server olarak ayarlamanız bu hatanın çözümün ulaştırıyor.
ubuntu









2.Linux işletim sistemini yükledikten sonra karşılaşacağınız bir hata ekran driver problemi
Linuxta yükleme yaptığınızda driver yüklemeyle uğraşmanıza gerek kalmaz normal standartlarda ama bazı alternatif durumlar hariç kurulumu yaptıktan sonra fare imlecinizin titrediğini yada yanıp söndüğünü farkederseniz ozaman ekran driverınızla ilgili ayarlarda sorun vardır.Peki bu sorunu nasıl aşarız.
İlk olarak lspci komutunu komut satırında çalıştırıp driverlarımızla ilgili bilgilere bakalım.Bu komut çıktısını doğru analiz etmek çok önemli 
$lspci | grep VGA


linux

 Daha sonra ekran driverımıza uygun güncelleme ve yüklemeleri sürüm ve modeline göre indirebiliriz.
Ekran kartı nvdia olanlar için;
$sudo apt-get purge nvdia*
$sudo apt-get install nvidia-331-updates-dev
Diğer ekran kartı modelleri için bu adresten yararlanabilirsiniz.
 https://help.ubuntu.com/community/BinaryDriverHowto/Nvidia

3.Linux işletim sisteminizi yeni kurdunuz ve localhostu çalıştımak ve onunla ilgili bazı işler yapmak istediniz diyelim ozaman sisteminize apache web sunucusu kurmalısın yoksa tarayıcnızdan localhost yazmanız anlamsız olucaktır.
$sudo apt-get install apache2

apache








Yazıp çalıştırınca yukarıdaki ekran görüntüsünü elde etmeliyiz.


Web ile ilgili işlem yapıcak arkadaşlara son tavsiyem php ve mysql de kurmalarıda gerekli.
$sudo apt-get install php5 php5-mysql mysql-server burdada mysql parolası belirlemek dışında başka bir geri dönüş almadan işlemleri tamamlarsınız.

apache








ANDROİD DOSYA OLUŞTURMA VE DOSYAYA YAZI YAZMA İŞLEMLERİ


Android de dosya oluşturmak ile ilgili oldukça fazla alternatif var ve hiçbir sıkıntı çekmiyoruz.Ama şu noktada bir sıkıntı oluşabiliyor.Eğer dosya ismimiz her dosya oluşturduğımuzda farklı olsun istiyorsanız yada dosya adımız oluşturduğumuz saat ve tarih bilgilerinden oluşsun ve daha anlaşılır olur diye bir düşünceniz varsa ve dosyaya yazı yazdırma işlemlerindeki  ile ilgili uzun kod satırlarından kaçmak istiyorsanız.Bu yazımda aradığınızı bulabileceğinize inanıyorum.
İlk olarak sistem zaman bilgimizi tarih saat formatına göre simledateformat sınıfına ait format () metodu yardımıyla alıp dosya asını tutan filename değişkenine atıyoruz.Daha sonra string tipinde oluşturduğumuz dosya adını file sınıfının kullanıldığı File_create metodunu göndererek oluşturuyorum.Burada hem dosya  oluşturdum hedme yazma işlemini gerçekleştirdim.
Artık oluşturduğum dosyanın içerisinde Merhaba Dünya ! yazıyor.Kodlar aşağıdaki şekilde;
String dosyaadı=new SimpleDateFormat("yyyy-MM-DD hh-mm-ss'.txt"").format((new Date));
//Dosya adını o anki sistem saatine göre oluşturuyorum.
public void File_create(String dosyaadı){
File dosya =File(Envoriment.getExternalStorageDirectory().this.dosyaadı;
//Buarada dosyamızı oluşturuyoruz.
String yazı ="Merhaba Dünya !";
try{
fos=new FileOutputStream(dosya);
fos.write(veri);
//Burada oluşturduğumuz dosyaya yazı yazıyoruz.
fos.flush();
fos.close();
}
catch(FileNotFoundException e){
catch(IOException e){}
catch(FileNotFoundException e){}
catch(IOException e){}
}
Küçük bir hatırlatma Android uygulaması yaparken en çok dikkat edilmesi gereken şey kuşkususz izinler dosyalara yazma işlemi yapabilmemiz için dosya yazma okuma iznine sahip olmak lazım Android Manifest içerisine aşağıdaki izinleri eklemelisiniz.Yada izinler yerine aşağıdaki kod blokları ekleyebilirsiniz.
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
public boolean isExternalStorageWritable(){
String state=Environment.getExternalStorageState();
if(Environment.MEDIA_MOUNTED.equals(state)){
return true;
}
return false;
}public boolean isExternalStorageReadable(){String state=Enviroment.getExternalStrorageState();
if(Environment.MEDIA_MOUNTED.equals(state) || Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)){
return true;
}
return false;
}

                                                 

LİNUX KULLANICILARI İÇİN GİTHUB KULLANIMI






  Yazımda linux kullanıcıları için github kullanımından bahsedicem.Bu yazıda githuba nasıl kayıt olunur kısmının anlatmıcam github hesabınız olduğunu düşünüyorum ,eğer yoksada o kısmı anlatımını beğendim başka bir adrese http://ecylmz.com/107/github-kullanimi/yönlendiriyorum .Ben Githubın yazılımcıların twitterı olduğunu düşünüyorum sizde bu bakış açısıyla bakarsanız kavrama açısından daha güzel olur .Githubta herkesin bir profili var.Bu profilleri takip edebiliyor paylaşımlarını yıldızlayabiliyor hatta yorum bile yapabiliyorusunuz.Bu profilde birden çok kavram söz konusu ilk olarak depo kavramına değineceğim.Depoda github üzerinde proje geliştirmemiz yada bitmiş bir projenizle de olabilir isimlendirerek ortak bir çalışma alanı yapıyorsunuz.Bu depo sayesinde hemde bilgisayarınızda geliştirdiğiniz projenizi korumuş oluyorsunuz Allah korusun bilgisayarınız çökse yada herhangi bir sıkıntı yaşasanız kodlarınızın peşinden yas tutmaya gerek kalmaz.


github













 Depoyu github üzerinden oluşturduktan sonra bilgisayarımızada uzak depodan çekiyoruz.




github













 Çekerken terminalde resimdeki  komutları tek tek çalıştırmak yeterli.Eğer deponuzu silmek isterseniz ise
Github arayüzünde ayarlar bölümü var oradan rahatça silebilirsiniz.

Şimdi depo kavramını anladıysak üzerinde yapıcağımız işlemler nasıl ve neden olucak onu anlatayım.Deponuza projenizin eklemek istiyorsunuz işte buna github ağzıyla commit diyoruz.Terminal de şu komutları çalıştırıyorsunuz.

$git clone uzak sunucu adresi
 Bu komutla deponuzu bilgisyarınıza çekiyorsunuz.

$git add göndericeğiniz dosya adı 
Bu komutla uzak depoya dosya ekliyoruz.

$git commit -m "tırnak içerisine açıklama yazıyoruz dosya ile ilgili olabilir yada siz ne isterseniz" Gönderdiğimiz dosyaya açıklama ekliyoruz.

$git push -u origin branchadı
Burda ise branch  üzerinden dosya üzerinde yapılan değişiklikleri  gönderiyoruz.

Branch bahsetmek istediğim diğer bir kavram.Branch ile projemizi birden çok dalla yada isterseniz tek dal üzerinden de yapabilirsiniz yönetiyoruz.Böylelikle proje dallara ayrılıyor yani depoyu ağaca benzetirsek   branch ağacı dalları gibi düşünebilirsiniz projeye eklediğimiz dosyalar veya değişiklikler bu dal üzerinde oluyor.
Ana brancımız masterdır.Master branchı depoyu oluşturduğumuzda varsayılan olarak bulunuyor.Yeni brach eklemek isterseniz ise bu komutla depomuza ekleyebiliyoruz.
$git branch branch adı  

Eğer oluşturduğunuz yeni branca geçmek istiyorsanız.

$git checkout yenidal ismi

Birden fazla  branchım oldu bu değişiklileri birleştirmek istersem 
$git merge branchadı

Brancı silmek içinde
$git branch -D branchadı

 Peki projemdeki bir dosyayı silmek istiyorum.O zaman bu komutu çalıştırıyorum;

GİTHUB $git rm -r dosya adı

Ve yaptığımız bu silme değişikliğinide uzak depoya göndermek için
$git push -u origin branchadı

$git status 
 Şuanda github da ne konumda olduğunuza bakmak istiyorsanız.Bu komut ile localiniz de ki klasörünüz de değişen,eklenen ve silinen dosyaları görürsünüz.


 Bu komut ile de nerde değişiklik yaptıysanız satır satır gösterir.
$git diff dosyaadı

$ git pull
Son olarak bu komut ilede projede yapılan değişiklileri kendi bilgisayarınıza çekebiliyorsunuz.Yani arkadaşlarınızın proje üzerinde yaptığı değişiklerden haberdar oluyorsunuz.

BEN ROBOT FİLMİ FARKIYLA:YAPAY ZEKA VE GELECEKTE BİZİ NELER BEKLİYOR

Yapay zeka, bir bilgisayarın veya bilgisayar kontrolündeki bir robotun çeşitli faaliyetleri zeki canlılara benzer şekilde yerine getirme kabiliyeti.Yapay zekanın sözlükteki karşılığı bu nitelikte, piyasada bu konuyu işleyen birden çok film var ama  I,robot gerçekten kafanızdaki soruların bir nebzede olsa da cevap bulabilmesi açısından oldukça doğru bir tercih olacağını söyleyebilirim.
   Birçoğumuzun aklında sürekli bizi farklı düşüncelere iten sorular sorduran bir gelecek merakı var. Ve çoğumuz teknolojiyi takip edip en son çıkan ürünleri kullanmak istiyoruz.Peki hepimize ait birer robot olsa ve günlük hayatımızda bize birçok konuda yardımcı olsa işte bu tamda bir çoğumuzun isteyeceği şey değil mi ? Teknoloji okadar çok ilerlediki  uzay çağı bile yaklaştı denirken herkese bir robot düşebileceği yıllar ve hatta yapay zeka içeren robotlar artık aklımızın alamıyacağı şeylerden değil.Filmde tamda bundan bahsedilmiş.2004 filmi olmasına rağmen oldukça iyi bir görselliği var şimdiki filmlere kafa tutar nitelikte.

 Filmimizdeki olay örgüsü 2035 yılında gerçekleşiyor. Başrollerinde Will Smith, James Cromwell  ve Susan Calvin  yönetmen koltuğunda Alex Proyası görüyoruz.Filmde üç ana karakter var dedektif spooner (Will Smith) robotları sevmeyen kuşkucu ve zeki biri ,yapay zeka alanında uzman ve başarılı bir doktor Allfered Lanning(James cromwell),ve onun yardımcısı  bridget  maynohan(susan calvin). Olaylar doktorun esrarengiz ölümüyle başlıyor. Bu gizem ardında da birden çok  ipucu bırakıyor ,kuşkucu ve robotlardan hoşlanmayan dedektifimiz ile  doktorun yardımcısı  ve doktorun icad ettiği Sonny adlı robotun yardımlarıyla gizem yavaş yavaş çözülüyor. Sonny yapay zeka ile çalışan bir robot ve doktor Allfered Lanning tarafından tasarlanmış diğer robotlardan oldukça farklı Cpu ve onu filmdeki diğer robotlardan üstün kılan farklı özelliklere sahip.Filmde verilmek istenen bir çok mesaj var bu mesajlara geçmeden önce,filmde sıksık vurgulanan üç robot yasasından bahsediceğim.Tüm teknoloji nerdeyse bu temel üzerine kurulmuş gibi de gösteriliyor.

Kural 1: Bir robot asla bir insana zarar vermez ya da bir insanın zarar görmesine izin vermez. 
Kural 2: Bir robot insanlara mutlaka ve her koşulda itaat etmelidir. 
Kural 3: Bir robot birinci ve ikinci kurala karşı gelmemek kaydı ile varlığını muhafaza etmekten sorumludur.
Ayrıca filmde ısrarla durulan başka bir konu ise bu üç kuralın asla birbiriyle çelişemeyeceğiydi.Bu kurallarla  insanların emrinden çıkmayan robotların üretildiğini kanıtlamaya çalışıyorlar.

 Bunun dışında filmde yapay zeka kullanılmış robotlar, sistemlerin kontrolünü sağlayan sensörlü kameralar ,hologram adında bir donanım var benim çok ilgimi çekti içerisinde bir  yazılım yüklü ve de bu cihaz geçmişten kayıtlar içeriyor hatta sorulan sorulara sanki kişinin  kendisiymiş gibi cevaplar bile veriyor ,yapay organ nakli ,oluşabilecek trafik kazalarını önlemek için tasarlanmış mekanizmalı arabalar,arabaların içerisinde yapay zeka kullanılmış bilgisayar ve akıl almayacak veritabanları  tamam 2035 yılındayız  diyebiliyoruz.

 Teknoloji o kadar yerleşmiş ve savunuluyor ki ikna ediyor sizi ve bende filmde yaşayan insanların bu ikna edici düşüncelerini çok haklı buluyorum.Bugün çıkıp biri dese ki akıllı telefonlar insanlığı tehdit ediyor kaçımız telefonumuzu iade ederiz  gülmekten ölürüz herhalde ,şaka bir yana  bu duyguyu gerçekten hisettirmişler.Aklıma da şu soru geliyor olur olmaz cep telefonumuz,akıllı saatlerimiz,tabletimiz yada bilgisayarımız olmadan kaç saat yokluklarını hissetmeden yaşayabiliriz? Yoksa teknolojiye bağımlı mı yaşıyoruz?

İşte filmde bir çok soru ve aynı zamanda birçok cevap var  ;yapay zeka ile oluşturulmuş bilgisayarlar yada robotlar bizim yerimizi de alır mı korkusu yada robotlar insan duyguları hissetse ve insanlar gibi karar verebilseler durum nereye kadar gider bunlar hepimizin aklını kurcalıyor.Robotların çok kullanıldığı bir dünyada yaşasak sanki onlar yinede insanoğluna muhtaç olurlarmış diye düşünüyoruz birçoğumuz ya onlarda gelecekte bizim sahip olduğumuz özelliklere sahip olslar bu mümkün olabilir mi ?Bu kısım hepimiz için düşündürücü değil mi sanki?

 Filmde insani duyguların robotlara kazandırılmasını ve teknolojinin nekadar ilerleme kaydediceğini hissediyorsunuz.Kendinize çokça soru soran biriyseniz en azından fikir edinebileceğiniz güzel bir film tavsiye ederim.Hepinize iyi seyirler.

FİLM KAHRAMANIMIZ SONNY FARKIYLA :AGENT KAVRAMI 

 Yapay zeka dersinde hocamızın bu hafta anlattığı bazı kavramlardan bahsediceğim ve bu kavramlar aracılığıyla filmimizdeki yapay zeka kullanılmış robotumuz Sonny üzerinde bu kavramları açıklayacağım.
Agent: Akıllı yazılımlara denir.Dahada açarsam sensörleri yardımıyla çevreyi algılayan efectorlerı (gövde,kol vs) yardımıyla da hareket eden araçlara verilen genel isim.Yani yapay zeka dili ile konuşursak Sonny bir agentdır.Agentları 4 bileşende tarif edebiliriz;

1.Performence measure:Performans ölçümü
2.Prior knowledge and enviroment:Agent o andaki çevre ile ilgili bildiği değerler
3.Actions :sensör hangi hareketleri yapıyor
4.Sensors: Algılama işlemini gerçekleştirir.

Task envoriment: (ortam değişkenleri)Ve yine Agentları tanımlarken yardımcı bir diğer kavram ;

1.Observable:Agent gözlem kabiliyetini derecelendiriyoruz.(Fullyobservable(tamamını gözlemleyebilen),partional(herşeyi gözlemleyemeyen belirli bir kısmı görebilen))
2.Agents:Single agent(ortamda bir tane varsa),Multiple agent(birden fazla ise)
3.Deterministic,stochastic:Deterministic ortamdaki bir sonraki durum şuandaki durum üzerinden belirleniyorsa(Bulutlu bir hava varken yağmur yağıcağı düşüncesi),Stochastic (taxi driving)
4.Episodic,Sequential:Episotic yaptığı bir hareketinden ilerideki durumları etkilemezse,Sequential sürekli bir durum söz konusu
5.Static,Dinamic:Static agent görevlerini yaparken ortam değişmiyorsa,Dinamik değişiyorsa(taxi driving)
6.Discreate,Continus:discreate sınırlı sayıda belirtilmiş durum varsa(keyboard entry of finding),Continus(taxi driving)


Action Type Performence measure Prior Knowledge and
Envoriement
Actuators Sensörs
İnsan duygularının bir kısmını öğrenmiş ve gözlemlediği davranışları öğrenebilen,karar verebilen,kendisini koruma içgüdüsü bulunan insan taklidi robot insan davranışlanış ve duygularını öğrenme Öğrenmesi için daha önce öğreneceği bilgileri yada davranışları gözlemlemiş olmalı gözlemleyerek öğreniyor görme hissetme ve konuşma diyebiliriz Ekran,sorular,temas Görme ,hissetme ve ses algılamayı sağlayan sensörle
Task enviroment Observable Agents Deterministic Episodic Static Discreate
İnsan duygularının bir kısmını öğrenmiş ve gözlemlediği davranışları öğrenebilen,karar verebilen,kendisini koruma içgüdüsü bulunan insan taklidi robot Fully observable Single stochastic sequential dynamic continus