image

Nalan Ulusoy

Hello, Briefly I can tell about me. I have graduated from the computer engineering department at Canakkale Onsekiz Mart University.I have graduated my master's in information technologies department at Galatasary University. I took my language education in Toronto for 7 months. I have been working for over 2 years in Akbank as an Android Developer. I can describe myself as an enthusiastic, self- motivated, quick learner and a good team player. I am interested in developing mobile applications.


EDUCATION
Galatasaray University

Information Technology

2021

Canada English Collage

Engilish

2018

Çanakkale On Sekiz Mart University

Computer Engineering

2015


TECHNICAL SKILLS
Android Programing
Kotlin
Java
Object Oriented Programing
Git
MY POSTS

VMWARE İLE KALİ LİNUX KURULUMU

ÇoÄŸumuz Linux yada Windows tabanlı bazılarıda Unix tabanlı sistemler kullanıyor.Kullandığınız  sistemin aÄŸ komutlarının yetersiz kaldığını düşünüyorsanız  yada bu konulara meraklınız varsa mutlaka bilgisayarınızda olması gereken ÅŸey  kali linux dur. Kali linux 2013 yılında pek çoÄŸumuzunda bildiÄŸi backtrack sisteminin yapımcıları tarafından oluÅŸturulmuÅŸ aÄŸ güvenlik kontrol sistemidir.Kali linux iÅŸletim sistemini mevcut iÅŸletim sisteminin yanına yada live olarak kurabildiÄŸiniz gibi sanallaÅŸtırma teknolojisinin  nimetlerinden faydalanarakta kurabilirsiniz.
Ben sizlere sanallaştırma yöntemiyle kurulumundan bahsedeceğim.
SanallaÅŸtırma için İki methodumuz  var. Biri Vmvare player  diÄŸeri ise Virtualbox kurarak kurulum yapmak.
Ben vmvare player ile kurulumu anlatacağım.
Öncelikli olarak verdiÄŸim linkteki sistemlerden sizin sisteminiz  için uygun olanı seçip indiriyoruz.
https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/5_0|PLAYER-504|product_downloads
Daha sonra indirme iÅŸlemi tamamlanınca sırayla   ekran görüntülerini  takip ediyoruz.

Sanal Makine OluÅŸturma

vmware

Bu aÅŸamada  ilk olarak yapmamız gereken 64 bit yada 32 bit kali linux iso disc indirmek  bu iÅŸlemi bu linkten https://www.kali.org/downloads/
yapıyoruz.








Burası çok önemli eğer işletim sistemine doğru versiyonu seçmezsek krulum esnasında siyah ekran hatası alıyoruz.O yüzden kali linux un debian tabanlı olmasını göz önüne alarak kurulum yaptığım iso ya uygun versiyonla ilerliyorum.

vmware















Bu kısımda çok önemli eğer kurulum yapacağımız yeri gösterme konusunda bir sıkıntı olur ise 2. ekran görüntüsündeki hatayı alabilirsiniz. Ve kurulumunuz yarıda kalabilir.



vmplayer











kali linux


İso diskimiz vmvare playera ekleme işleminden sonra kuruluma başlayabiliriz.Eklenen sanal makinayı açıyoruz.

kalilinux


Daha sonra karşımıza aşağıdaki gibi bir seçim menüsü geliyor.Burda size tavsiyem Graphical ınstall seçeneğini seçmeniz grafif bir arayüzle kolayca kurulum yapabiliyoruz.Ve eklenecek yapılandırmaları daha iyi anlayabiliyoruz.

kali linux
















Gelen sorularda location kısmını iÅŸaretleyip dil ve klavye seçeneklerini belirliyoruz.Bizden bir root paralosı belirlememizi istiyor.Bizde belirlediÄŸimiz root paralosını oluÅŸturuyoruz.Root parolanız  unutmamanız gereken sisteminiz için Ã¶nemli bir bilgidir.



kali linux













Daha sonra disk bölümlendirmeleri ve ağ yapılanması gibi bir kaç ayardan sonra sistem kur seçeneği geliyor.



kali linux












Kurulum tamamlanınca kullanıcı adı ve parolası belirleyip kali linux ile tanışabilirsiniz.



kali linux

SON DÖNEMLERDE ARTAN VİRÜSLÜ MAİLLER VE SİBER SALDIRILAR HAKKINDA

Bir kaç aydır yazı yazmadığımı farkettim son dönemlerde sık uğraştığım hepimizide korkutan bir konu hakkında yazmak istedim.
Bu yılın baÅŸlangıcından beri dünya çapında oldukça fazla siber saldırı yapılmaya baÅŸlandı.Bunlardan birkaç tanesini hatırlatayım.Bu yılın Åžubat ayında FBI ve DHS çalışanlarının özel bilgilerinin bir kısmının internet üzerinden paylaşılması ve bu saldırının 16 yaşındaki bir çocuk tarafından yapıldığının ortaya çıkması baya yankı uyandırdı.Bunun yanı sıra ÅŸu sıralar gündemde olan her ne kadar yöneticiler tarafından kabul edilmese de yahoo gmail dropbox gibi hesaplarından milyon kıvamında hesap bilgisi çalındığı idda edilliyor.Tüm bu olaylara ek olarak Rusya ve Türkiye arasındaki gerginliÄŸin geçtiÄŸimiz aylarda gerçekleÅŸen siber saldırı savaşına dönüşmesi ardından birçok bankanınn internet ÅŸubesine uzun süre erÅŸilememesi diÄŸer yandan milli savunma bakanlığı ve TSK gibi Kamu kurumlarının internet sitelerinin de çökmüş olduÄŸunu hatırlarsınız. Tüm bu olanlar  Thomas Risenpart 'ın hiç bir sistem tamamen eriÅŸilemez deÄŸildir sözünü kanıtlar nitelikteydi.Ve böylece gerek kurumsal gerek bireysel herkes bu saldırıları yaÅŸar hale geldi.
 Son zamanlarda ise  ptt,türktelekom,turkcell gibi firmaların adını kullanarak sanki fatura mailiymiÅŸ gibi mailler yada kargo teslimatı bilgi maili gibi görünen mailler aldık bir çoÄŸumuz bu maillerin beraberinde içerik olarak linke tıklayın yada .exe,zip,mdoc,txt,rar vb uzantılı sanki fatura uzantısıymış gibi görünen ama tıklandığında bilgi hırsızlığı yapan fidye virüsleri kullanıcı hesap bilgileri çalan casus yazılımlar gizli oluyor. Bu virüslerden en tehlikelisi cryptologger virüsü açıldığında çözülmesi mümkün olmayacak  bitler bütüklüğünde ÅŸifrelerle bilgisayarınızdaki belgeleri ÅŸifreleyip uzantılarını deÄŸiÅŸtirerek kontrolü ele geçiriyor.Ve malesef ÅŸifreyi vermek içinde oldukça yüklü bir fidye istiyor. Bu tarz tehlikelerle karşılaÅŸma ihtimalinide düşünerek önemli verilerimizi bilgisayarımızda tutmanın çokta akıllıca olduÄŸunu söyleyemiyeceÄŸim.Önemli verilirenizi mutlaka yedeklemelisiniz.
 Gelen maillerin virüslü mail olduÄŸunu anlamak için ilk önce gelen mailin gönderici adresine bakmalıyız.Gönderici adresinden şüphelendikten sonra mailin içeriÄŸi şüphe uyandırıcı ve yukarıda bahsettiÄŸim gibi sizi bir baÄŸlantıya yada bir dosyayı açmaya itiyor ise maili kesinlikle açmayın yukarıda anlattığım yöntemlerle  emin olamıyorsanız  ise  Ã¼cretsiz bir servis olan https://www.virustotal.com/ da ilgi maili yükleyerek tarattığınızda size virüslü olup olamdığı bilgisini veriyor.Bu noktada maili silip bilgisayarınızı güvenilir bir virus programıyla taratmakta fayda var.
 Tüm bunların yanında  bazen kaynağı kendiniz olan yada arkadaÅŸ listenizden biriymiÅŸ yada  yukarıda bahsettiÄŸim büyük firmaların adresinden de geliyormuÅŸ gibi görünen gönderici adresinin maskelendiÄŸi mailleri de gönderebiliyorlar.Tüm bu olası  durumların içinde anlayamadığınız bir maili açmış dahi olabilirsiniz böyle bir durumda virüs programlarının bile baÅŸarılı olmadığı görülmüştür bilgi güvenliÄŸiniz için en doÄŸru yol birden fazla antivirüs programıyla bilgisayarınızı taratıp temizlemek mail parolanızı güçlü bir parola ile deÄŸiÅŸtirmek  hatta bilgisayar telefon yada tabletinizi fabrika ayarlarına döndürmek en doÄŸru yol olacaktır.



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


ANDROİD PROJESİNDEKİ DOSYA YAPISI



Yeni bir Android projesi yarattığımızda standart bir Java projesinden farklı olarak birtakım yeni klasör ve xml dosyası görürüz.Bu dosya yapısını kavramak projeyi geliştirmeden önceki en önemli adımdır.Temelleri iyi oturtup neyi neden ve hangi dosyadan yaptıgımızı anlamak çok önemli.



android



















src klasörü: Kaynak dosyaları burada yer alır. Bu klasörün içinde Java dosyalarını tutacağız.src nin altında MyActivity dosyası var burda uygulama ile ilgili kodları yazıyorum.Ve yine Android Manifest.xml dosyası var burda uygulama ile ilgili her türlü bilgiyi barındırır.Android programı çalışırken kendisini oluşturan elemanlar arası iletişimi bu dosya üzerinden sağlar.
AndroidManifest.xml dosyası üzerinden uygulamanın cihaz üzerinde erişebileceği kaynaklar(internet erişimi, konum bilgisi ve klasörlere erişim gibi) belirlenir.

gen klasörü: Android tarafından otomatik oluÅŸturulan dosyalar burada bulunur. Biz uygulamaya yeni kaynaklar ekledikçe bu sınıf da ADT tarafından otomatik olarak güncelleniyor. Bu sınıf, appt(Android Asset Packing Tool) tarafından oluÅŸturuluyorBuradaki R.java dosyası projede kullandığınız her türlü tasarım, resim ve metin dosyasının tanımlayıcılarına (ID) referans içerir. Bu dosya otomatik olarak oluÅŸturulur ve dışarıdan müdahale edilmemesi önerilir. 

assets klasörü: Uygulamada kullanacağımız destekleyici dosyaları burada tutabiliriz. Örneğin, sqlite veritabanı oluşturduysak ve uygulamayla beraber sqlite dosyasını da göndermek istiyorsak, dosyanın bu klasör içinde bulunması gerekir. Yada uygulamamız ile birlikte paketlenmesini istediğimiz dosyalar varsa(tar.gz gibi) bunları koymamız gereken klasördür.

bin klasörü: Uygulamanın derlenmiÅŸ hali bu klasörde tutulur. 

libs klasörü: EÄŸer uygulamamızda Android SDK içinde yer almayan bir Java kütüphanesi (örneÄŸin AdMob) kullanıyorsak, ilgili jar dosyalarını bu klasöre atmamız gerekir. Ancak bir jar dosyası ekledikten sonra dosyaya saÄŸ tuÅŸla tıklayıp Add To Build Path seçeneÄŸini seçmeyi unutmamalıyız. Aksi takdirde derleyici jar dosyasını göremez. 

res klasörü: Uygulamayla ilgili her türlü kaynak bu klasörde tutulur. Burada tutulan dosya tipleri resim dosyaları, ekran tasarımları ve metin dosyaları olabilir. Şimdi bu klasörü biraz daha detaylı inceleyelim;

drawable klasörleri: Bu klasörler uygulamada kullanılan resim dosyalarını içerir. Bu dosyalar PNG ya da JPEG formatında olabilir. Klasörün yanındaki hdpi (high dpi), ldpi (low dpi), mdpi (medium dpi) ve xhpi (extra hight dpi) cihaza özel ekran çözünürlüklerine göre dosya çağırmamızı saÄŸlar. ÖrneÄŸin uygulamanın çalıştığı cihaz eski modelse ve ekranı düşük çözünürlük destekliyorsa ldpi klasörü içindeki resim dosyaları kullanılacaktır. Ama uygulama yeni nesil geniÅŸ ekran bir cihazda çalışıyorsa ona uygun olarak yüksek çözünürlüklü bir klasörde bulunan dosyalar kullanılır. EÄŸer uygulamanızda düzgün bir tasarım varsa ve geniÅŸ yelpazede cihazlar destekliyorsanız tasarımcınızdan uygun formatlarda dosyalar istemenizi öneririz. 

layout klasörü: Burada ekranlara dair tasarım dosyaları bulunur. xml formatındaki bu dosyalar her ekrana ait tasarımları barındırır. Bir ekran Activity ile oluÅŸturulduÄŸunda onCreate metodu içinde ilgili layout çağırılır ve ekranda yer alacak öğeler oluÅŸturulur. Ve içerisindeki main.xml dosyasını bulundurur main.xml dosyası design kısmı ve bu objelere id ve name gibi özeliklerinin verildigi text kısmı bulunuyor.bu dosya bize uygulamamızda kullanıcagım  button , textview radiobutton ,textbox gibi tasarım objelerini sunar.


android











values klasörü: Uygulamada kullanılan sabit deÄŸiÅŸkenler burada saklanabilir. strings.xml dosyası uygulamada kullanılan ve ekranlarda kullanıcıya gösterilen her türlü metni saklar. Anahtar – veri mantığıyla saklanan bu deÄŸerler kod içinde ya da layout dosyalarında çağırılır. Aynı zamanda bu deÄŸerler R.java dosyasında iÅŸaretlenir. Bunun dışında colors.xml dosyası layout dosyalarında kullanılacak önceden tanımlanmış renkleri içerir. styles.xml dosyası ise ekranlarda kullanılan ve yine layout dosyalarından çaÄŸrılan stilleri içerir. values klasörünün bir baÅŸka özelliÄŸi de cihazın ayarlanmış ana diline göre yerelleÅŸebilmesidir.Ve cihaza çoklu dil seçenegi eklerkende yine bu dosyadan yararlanıcagız.   
 


AndroidManifest.xml dosyası: Bu dosya uygulamanın kalbidir. AndroidManifest.xml dosyası android uygulamalarının hepsinde bulunması zorunlu olan çok önemli bir dosyadır. Bu dosya android uygulamasının root klasöründe bulunur ve uygulamanın çalışabilmesi için mutlaka dosya adının "AndroidManifest.xml" ÅŸeklinde olması gerekir.Uygulamayla ilgili her türlü özellik ve uygulamanın iÅŸletim sisteminden talep edeceÄŸi bütün izinler burada tanımlanır. Aynı zamanda uygulama içinde kullanılan her ekran burada kaydedilip tanımlanmak zorundadır.Ve burda sdknın versiyon bilgileri var cihaz ile ilgili biruyumsuzluk söz konusu oldugunda bu dosyadan bu versiyonu düşürebiliriz.


Proguard-project.txt:Uygulama kodlarına bir dizi performans optimizasyonu yapar.Kodun şifrelenmesini ve lisanslanmasını da sağlar.

.properties uzantılı dosyalar: Uygulamanın derlenip cihaza gönderilmesi sırasında çalışan ‘Ant’ scripti tarafından kullanılan özellik dosyasıdır.Burada uygulamanın hangi SDK versiyonu ile çalışacağı tutulur. Yazdığımız uygulamanın cihaza gönderilip çalışması sırasında arka planda kullanılan dosyadır. Elle deÄŸiÅŸtirilmesi genelde tavsiye edilmez.




LİNUX İÇİN ANDROİD SDK VE İNTELLİJ KURULUMU


Öncelikle her nekadar kolaymış hissi versede kurulumu dogru yapmadıgınızda aldıgınız hatalar saç yoldurtucu kıvama getiriyor insanı.O yüzden kurulumu en dogru şekilde kurmanızı tavsiye ederim.

1.adım: İlk olarak http://www.jetbrains.com/idea/download/ bu linkten intellij son sürümünü bilgisayarıma indiriyorum.Ve zipli halinden kurtarıyorum.

android 










2.adım: Daha sonra  oracle  jdk kurulumu yani java geliÅŸtirme paketi kurulumu yapıcagız.http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html bu linkten bilgisayarınıza uygun olanı seçip indirin.Yada terminalden ÅŸu komutu yazarakta inditrebilirsiniz.

$sudo  apt-get install oracle -java7-installer


 3.adım: Daha sonra zipli halinden kurtarıyorum.Bu noktada sdknın ayarlarını yapıyorum ben apı 19 için tüm paketleri indirdim.Siz diger seçenekleri  kurabilirsiniz.Zaten diger kurulumlarıda yapınca intellijde yazdıgım uygulamaya run yapınca   cihazımla arasında uyuÅŸmazlık oluyorsa yani ÅŸu uyarıyı alıyorsanız  Failure [INSTALL_FAILED_OLDER_SDK]
 apı degerini Android manifest.xml dosyasında yazılı olan sdk versiyonunu buradan düşürün ve  telefonunuzun android sürümüne uygun hale getirin.

 Ayarları yapmak için sdk yı terminalden açıyorum.

$cd sdkdosyasınınyolu
 $cd /tools
$./android


 android




sdk
 

  4.adım: Ve son olarak  terminalimi açıyorum. bu klasörün içine giriyorum.Ve inteliji kurduktan sonra açarken bu yolu izlicem.
$cd klasörünyolu

$cd /bin

$./idea.sh 
 


  android



  5.adım: En son sdk  ile ilgili kurulumu yaptıgım için yeni proje açıp  sdknın yolunu  belirtiyorum

sdk