12 Ekim 2017 Perşembe

Test Case Örneği

Risk: Level Yüksek
Amaç: Kullanıcının sisteme giris eyleminin test edilmesi amaçlanmaktadır.
Girdiler: Kullanıcı adı bilgisi,Kullanıcı parola bilgisi,Kullanıcı giris butonunu tetiklemesi
Beklenen çıktılar: Kullanıcının sisteme basarılı bir sekilde giris yaparak ana ekranına yönlendirilmesidir.
Kriterler: Kullanıcının parola alanına büyük/küçük harf ve tek basamaklı dogal sayılardan olusan parola degeri belirtmesi. Belirtilen kullanıcı adı ve parola degerlerinin sistemde kayıtlı olan degerler ile eslesmesi. Kullanıcının kullanıcı adı ve parola alanına uygun degerler dısında deger belirtmesi.
Hata Kriterleri: Belirtilen degerlerin sisteme kayıtlı degerlerle eslesmemesi. Sistemin herhangi bir teknik nedenle veri tababu baglantı islemini gerçeklestirmemis olması
Test Prosedürü: Test kullanıcısı, yazılımı, desteklenen sistem ve cihazlarda çalıstırarak belirtilen girdilerle testi gerçeklestirmelidir. Test islemini tamamladuktan sonra test sonucunu Geçti/Kaldı olarak belirterek nedenleri ile birlikte raporlamalıdır.

Aşağıda başka bir test case örneği verilmiştir.


29 Ağustos 2017 Salı

Processing Nedir?

Processing, hazır fonksiyon ve nesneleri kullanarak görsel odaklı geliştirilen basit seviyede bir programlama dili ve tümleşik bir geliştirme ortamıdır. Programlamanın temellerini görsel bir yaklaşımla öğretmek için kullanılır. Aynı zamanda elektronik bir eskiz defteri görevi de görmektedir.
-Açık kaynak kodludur, 100 den fazla kütüphane içermektedir.
-Java üzerine kurulmuştur. Her ne kadar Java ya benzerliği dikkat çekse de grafikler ve iletişim metodları üzerine özel niteliklere sahiptir.
-Geliştirme arayüzü processing development envirioment (PDE), processing için özel olarak tasarlanmış basit, sade ve kolay bir arabirimdir.
-Video, resim, ses gibi çoklu ortam türleriyle sorunsuz olarak çalışabilmektedir.
-Genel olarak öğrenciler, sanaçılar ve tasarımcılar tarafından kullanılmaktadır.

Tarihçesi
2001 yılında Casey Reas ve Benjamin Fry tarafından oluşturulmuş bir programlama dilidir. Türkiye'de çok yaygın olmasa da yurtdışında görsel sanatçıların sıklıkla kullandığı bir programlama dilidir.

Processing ile Neler Yapabiliriz ?

-Arduino ile etkileşimli çalışabilecek programlar yazmayı sağlar.
-Temelde hızlı  prototip çıkarma ve eskiz çalışması yapma için geliştirilmiştir. Daha sonraları programlama temellerini anlayabilmek ve anlatabilmek için programlamaya giriş eğitim aracı olarak da kullanılmaya başlanmıştır. Çünkü bilgisayar mimarisine girmeden temel programlamayı kavrayabilme olanağı sağlamaktadır.
-Kağıt üzerine çizdiğiniz herhangi bir karakteri kolaylıkla programa aktararak onu canlandırmamızı sağlar.

Örnek-1) Meteor stream simulation
Örnek Amacı :  Uzaktan bize doğru yaklaştıkça boyutları büyüyen, sürekli kendilerini yenileyen, hızlarını mouse ile kontrol edebileceğimiz cismler oluşturmak.


Örnek Kodu :
star[] stars = new star[400];
float speed;

void setup() {
  size(400, 400);
  for(int i=0; i< stars.length; i++) {
     stars[i] =new star();
  }

}

void draw() {
  speed = map(mouseX, 0, width, 0, 50);
  background(0);
  translate(width/2, height/2);
  for(int i=0; i< stars.length;i++) {
     stars[i].update() ;
     stars[i].show();
  }
}

class star {
  float x;
  float y;
  float z;
 
  float pz;
 
  star() {
    x = random(-width, width);
    y = random(-height, height);
    z = random(width);
    pz = z; 
  }
 
  void update() {
    z = z - speed;
    if(z < 1) {
      z = width;
      x = random(-width, width);
      y = random(-height, height);
      pz = z;
    }
  }
 
  void show() {
   fill(255);
   noStroke();
  
   float sx = map (x / z, 0, 1, 0, width);
   float sy = map(y / z, 0, 1, 0, height);
  
   float px =  map (x /pz, 0, 1, 0, width);
   float py = map(y / pz, 0, 1, 0, height);
  
   pz = z;
   stroke(255);
   line(px, py, sx, sy);
  
  }
}


İçerik Hazırlayan: Melisa Öztürk

18 Ağustos 2017 Cuma

ANDROİD TABANLI SAĞLIK UYGULAMASI

Egzersiz yapmakta zorlanan, spor salonuna gidemeyen ya da ne yapacağı konusunda fikir sahibi olmayan kişiler için spor yapmanın en kolay yolu yürümektir. Düzenli bir şekilde yürüyüş yapmanın kalp rahatsızlığı, damar tıkanıklığı gibi hastalıklara iyi geldiği bilinmektedir. Ayrıca günlük yapılan yürüyüşler kilo kaybı ve daha zinde bir vücut da sağlayabilir. Uzmanlar düzenli, tempolu yürüyüşün hastalıklardan koruduğu, günde ortalama 10 bin ile 15 bin adım atmanın insan sağlığına faydalı olduğu görüşündeler. Bu düşüncelerden yola çıkılarak android tabanlı sağlık uygulaması olan Fitness Club geliştirildi. Fitness Club, kullanıcıların, android işletim sistemine sahip akıllı telefonlarından rahatça girebilecekleri, kullanımı kolay bir sağlık uygulamasıdır. Fitness Club’da kullanıcılar GPS teknolojisi ile konumlarını bulabilir, yürüdükleri mesafeleri görebilir,  boy ve kilo değerlerini girerek vücut kitle indeksini, ideal kilosunu, toplam vücut suyunu, vücut yüzey alanını, yağsız vücut ağırlığını, vücut kitle indeks sınıfını ve varsa fazla kilo miktarını, buna bağlı olarak da harcamaları gereken kalori değerlerini hesaplayabilmektedir. Ayrıca akıllı telefonlarda yer alan hareket sensörü yardımıyla kişilerin attığı adımlar sayılır, adım sayısına göre yakmış oldukları kalori miktarı hesaplanır ve hedef kaloriye ulaşılıp ulaşılmadığı hakkında bilgi verilir. Kullanıcıların gün boyu yapmış oldukları aktiviteler kayıt altına alınır, istendiğinde haftalık ve aylık raporlar görsel bir şekilde kullanıcıya sunulur. Fitness Club sayesinde sporun daha eğlenceli bir hale getirilmesi ve aktivitelerin disipline edilmesi amaçlanmıştır.

Projeyi Hazırlayanlar:  Tuğba Çırdaklı, Sema Bayri

Play Store Adresi: Yükleme Adresi

28 Temmuz 2017 Cuma

Space Escape (Multimedia Fusion 2.5) Game

Space Escape oyunu; Multimedia Fusion Developer platformu kullanılarak, kod yazılmadan, olaylar tanımlanarak geliştirilmiştir. Oyunun amacı uzay aracını meteorlardan mümkün olan en uzun süre korumaktır. Oyunda kalınan her saniye başına skor elde edilmektedir. Oyunda 3 adet can bulunmaktadır. Can adedi bittiğinde oyun son bulur ve elde edilen skor gösterilir. Oyunun görselleri için ücretsiz olan resim dosyalarından ve oyunu geliştiricisinin hazırladığı resimlerden yararlanılmıştır. Oyunun müzik dosyası free music arşivinden alınmıştır. Oyunda herhangi bir reklam bulunmamaktadır.

Android işletim sistemi için geliştirilen oyunun indirme adresi: Play.store 




Oyun Geliştiricisi: Ahmet Furkan Keleş


24 Temmuz 2017 Pazartesi

One Cube (Unity Game)


One Cube oyunu; Unity oyun motoru ve C# dili kullanarak gelistirilmiştir. Oyunun amacı kübün üzerine hızla gelen belirli topları alarak skor elde etmek. Bunu yapmaya çalısırken kırmızı toplardan kaçılması gerekiyor. Kırmızı toplara değmeniz veya zamanın bitmesi durumunda oyun son buluyor ve elde edilen skor size gösteriliyor. Ekstra olarak da bonus toplar var. Bu topları yakalayarak farklı özellikler elde etmek mümkün. Oyunun görselleri için Unity assetinden, ücretsiz olan resim dosyalarından ve oyunu geliştirenlerin hazırladığı resimlerden yararlanılmış. Oyunu müzik dosyası ise free storedan alınmış.

Android işletim sistemi için geliştirilen oyunun indirme adresi: Play.store



Oyunu Geliştirenler
B.Emre Gürkan
Mehmet Aslan

7 Temmuz 2017 Cuma

DbPatters ile Kendi Veritabanınızı Oluşturun


Dbpatterns ile veri tabanı şeması oluşturabilir, oluşturulan veri-tabanın şemalarını, farklı veri tabanlarının tablolarına dönüştürebilirsiniz. Dbpaterns'in web adresi http://dbpatterns.com Dbpatterns ile oluşturulmuş örnek bir veri-tabanı aşağıda verilmiştir.





6 Temmuz 2017 Perşembe

Kodlama Öğrenimi için Kullanılabilecek Yabancı Kaynaklar


Kodlama öğrenimi için kullanılabilecek ve oldukça yararlı 3 farklı yabancı kaynak aşağıda verilmiştir.

1. Coursera: Pek çok farklı tanınmış üniversitenin derslerine erişim için kullanabileceğiniz güzel bir web sitesi https://www.coursera.org/

 2.Codecademy: Sıfırdan kod öğrenimi için kullanılacak bir kaynak. Web sitesi https://www.codecademy.com/



3.Udacity Sıfırdan kod öğrenimi için kullanılacak bir kaynak. Temel dersler ücretsiz. Web sitesi https://www.udacity.com/


29 Haziran 2017 Perşembe

2017 Yılının En Popüler Programlama Dilleri

Farklı kurumlar tarafından  yazılım programlama dilleri ile ilgili yapılmış listeler bulunmaktadır. İş arama, ücretler ve yeni geliştirilen teknolojiler gibi farklı alanların sıralandığı bu listelerin, 2017 yılında yapılanlarına baktığımızda, farklı programlama dillerinin listelerde olduğu görülmektedir.
Yapılan araştırmalardaki sıralamalar çeşitlilik göstersede; Java programlama dili, Phython programlama dili, JS programlama dili ve R programlama dili pek çok listede üst sıralarda görülmektedir. Listede bulunan diğer popüler programlama dillerinden bazıları ise şunlardır; C++, C#, C, Objective-C, Swift, Ruby, PHP, Perl, Go, Scala, Shell


Kaynaklar:

Yarn ( Js için Paket Yöneticisi)

Java Script (JS) ile kod geliştirenler tarafından yıllardır paylaşılan yüz-binlerce satır kod bulunmaktadır. JS ile proje geliştirenler daha önceden geliştirilmiş bu kodları kullanarak farklı uygulamalar oluşturmuştur. Kendi geliştirdiğimiz projeler içerisinde kullandığımız ve başkaları tarafından geliştirilen her bir kod satırı yüzünden geliştirdiğimiz programlar daha önceden geliştirilen kod parçalarına bağımlı olmaktadır. Örnek olarak JS geliştiricileri tarafından bilinen ve en popüler paket yöneticisi olan npm içerisinde 300.000'den fazla paket bulunmaktadır ve 5 milyondan fazla mühendis tarafından kullanılmaktadır. Bu kadar fazla kişi tarafında geliştirilen ve kullanılan npm'nin özellikle büyük sistemlerde güvenlik ve performans sorunlarına yol açabileceği görülmüştür. Exponent, Google ve Tilde tarafından geliştirilen Yarn ile npm kullanılsa da paket yönetimi, paket oluşturma, kurulum ve sistem güvenliği gibi konular daha etkin bir şekilde kullanılmaktadır.

REDIS (Farklı Bir Veri Tabanı)

Redis açık kaynak kodlu bir veri-tabanıdır. Remote dictionary servers kelimelerini baş harflerinin bir araya gelmesi ile oluşturulmuştur. VMWare desteği ile 2013 yılında Salvatore Sanfilippo tarafında geliştirilmiştir. Redis'te bütün veri setleri (datasets) bellekte saklandığından verilere çok hızlı bir şekilde ulaşılarak okuma ve yazma işlemleri gerçekleştirilebilir. Datasetler diskte saklanabilir. Redis içerisinde büyük veri işlemleri için alt süreçler oluşturulabilir. Pek çok farklı veri yapısını desteklemektedir (örnek olarak strings, hashes, lists, sets, sorted sets, bitmaps, hyperloglogs ve geospatial indexler.).  Dünya çapında bilinen Twitter, Instagram, Stackoverflow, Flickr, Github, Blizzard gibi pek çok farklı şirket tarafından kullanılmaktadır. Redis'in temel amaçlarından biri sistemlerde oluşacak karmaşıklığın giderilmesidir. Hızlı olmasının yanı sıra, geniş çaplı bir kullanım desteği bulunan Redis güvenilir ve sistemi yormayan bir yapıya sahiptir

20 Haziran 2017 Salı

Dünyanın En Hızlı Bilgisayarlarının Listesi

Top500.org tarafından Dünya'nın en hızlı 500 bilgisayarının listesi yayınlandı. Yayınlanan listede ilk iki sırayı Çinli  Sunway TaihuLight ve Tianhe-2 (MilkyWay-2) bilgisayarları aldı. İlk on sıra içerisinde Amerika'dan beş, Çin'den iki, İngiltere, Japonya ve İsviçre'den ise birer  bilgisayar bulunmakta.


İlk sırada bulunan  Sunway TaihuLight bilgisayarının özelliklerine bakacak olursak; bilgisayarın 10,649,600 çekirdeği (Core) bulunmakta. 15,371 kW enerji tüketen bilgisayarın, RAM değeri ise 1,310,720 GB. Sunway TaihuLight isimli bilgisayarın işlemci hızı ise 93,014.6 TFlop/s. Bilgisayarın Sunway Raise OS 2.0.5 adında bir işletim sistemine sahip. Geliştirilen bilgisayar hesaplama işlemlerinin çok yoğun olduğu big data işlerinde kullanılmakta.

TFlop Nedir?
Floatingpoint Operations Per Second (Flop); kayan nokta hesaplamalarında ya da bilimsel hesaplamalarda kullanılan bir metriktir ve noktadan sonraki rakamları işaret eder. TFlop ise saniyede kayan nokta işlemlerini ölçmek için kullanılır. 1 TFlop 10 üzeri 12 Flops'a eşittir. Bu ölçü birimi sayesinde bir CPU'nun saniyede kaç işlem yapacağı hesaplanabilir.

Terragen ile Kendi Manzara Resimlerinizi Oluşturun

Terragen; oldukça gerçekçi mekanlar oluşturabileceğiniz bir yazılımdır. Kişisel kullanım için ücretsiz olan araç ile gerçekçi mekanlar oluşturulabilir. Terragen ile sadece resim dosyaları değil aynı zamanda videolarda oluşturulabilirsiniz. Dosya boyutu olarak sadece 2Mb lık bir program olmasına rağmen oldukça güçlü özelliklere sahiptir. Oluşturulan mekanlar içerisine katmanlar halinde kaya parçaları, su, bulut, ışık, vb eklentiler yapılabilir. Oluşturulan ortam  objeye dönüştürerek istenilen bir programlama dili içerisinde kullanılabilir.

Programın indirme adresi Terragen(indirme linki)
Terregen Kullanımı



Terragen ile oluşturulmuş sanat eseri gibi gözüken (bazıları bilim kurgu filmlerinden çıkmış gibi gözüken) resimlerden bazıları aşağıda verilmiştir. Resimlerin üzerine tıklayarak çizim detaylarını görebilirsiniz.

 







Java 3D Terragen Kullanımı (Kaynak kodları verilmiştir.)

 


15 Haziran 2017 Perşembe

Full Calender

Full Calender; JS ile oluşturulmuş bir etkinlik takvimi uygulamasıdır. Açık kaynak kodlu bir yapıya sahip olan Full Calender https://fullcalendar.io/download/ sitesinden indirilebilir. jQuery kullanımı sürükle bırak özellikleri ve açıklayıcı yardımcı dökumanlara sahip olan bir uygulamadır. Full Calender'ı kendi oluşturuduğunuz web uygulamaları içerisine kolayca ekleyebilirsiniz.


13 Haziran 2017 Salı

Android Uygulamaları Bilgisayarınızdan Çalıştırın

Geliştirilen mobil uygulamaları test etmek için kullanılan en güzel araçlar emulatorlerdir. Bu emulatorler arasında gelişmiş ve farklı özellikleri ile öne çıkan ve Dünya'da 130 milyondan fazla insanın kullandığı BlueStack emulatorünü ücretsiz olarak http://www.bluestacks.com/ adresinden indirebilirsiniz. Normalde kullandığımız emulatorlerde olmayan konum bilgisi alma, uygulamayı tam ekran çalıştırma gibi pek çok ek özelliği yanında barındıran bir emulatordür. Windows ve Mac PC'lerde çalışan BluseStack emulatorü ile mobil uygulamaları cep telefonuna ya da tablete gerek olmadan kullanabilirsiniz.



Unity ile Oyun Geliştirin

Günümüzde hızla gelişen oyun sektöründe farklı firmalar tarafından oluşturulan oyun geliştirme platformları bulunmaktadır. Bunlar arasında sahip oldukları oyun motorları, gelişmiş arayüzleri ve platform bağımsızlığı özellikleri ile Unreal Engine, Unity ve CryEngine'ın öne çıktığını söyleyebiliriz. Bu üçlü arasında oyun geliştirme açısından ücretsiz olan ve C# yada JS (Java Script) ile oyun geliştirmemize imkan veren Unity'yi ayrı bir kategoride değerlendirilebilir.

Kişisel kullanım için ücretsiz olan Unity ile; 2D yada 3D oyunlar geliştirilebilir. Yüksek optimizasyon gücü ve Rander kabiliyeti ile öne çıkan Unity pek çok farklı platformu desteklemektedir. Unity ile oluşturduğunuz oyunları aşağıdaki resimde de gösterilen 27 farklı platformda oynayabilirsiniz. 


Unity ile geliştirilen oyunlara örnek olması için Hamza Kapucu tarafından geliştirilen KO isimli oyuna bakabilirsiniz. KO oyunu kendi içerisinde envanter ekleme, obje toplama, vb özellikleri içermektedir. Oyunun kodlarına yandaki Github linkinden erişilebilir.



Unity ile geliştirilen farklı bir örnek için aşağıdaki videoya da bakabilirsiniz. Unity 3D FPS Multi Mode



Unity eğitimi için Türkçe ve İngilizce eğitim videoları

Microsoft Açık Akademi Unity Eğitimi

YouTube Eğitim Video Serisi -1

YouTube Eğitim Videosu Serisi-2




12 Haziran 2017 Pazartesi

Nasa'nın Geliştirdiği Yazılımlarının Kaynak Kodlarına Ulaşın

Daha önceden geliştirdiği yazılımlar ile ilgili bazı metrikleri erişime açık hale getiren Nasa; şimdiye kadar geliştirdiği pek çok farklı yazılım projesinin kaynak kodlarınıda erişime açık hale getirdi. Erişime açık hale getirilen yazılımların kataloğu yan tarafta verilen linkte bulunmaktadır. Açık Kaynak Kodlu Projeleri

Bu yazılımlara ait kodları indirmek için yapmanız gereken https://software.nasa.gov/ sitesine kayıt olmak. Kayıt olduktan sonra istediğiniz yazılım için istek göndermeniz mümkün. İstek gönderme süreci biraz  uzun sürmektedir ve isteyin kabul edilmesi  sistem yoğunluğundan dolayı biraz vakit almaktadır.


En çok indirilen yazılım projelerinden bazıların isimleri aşağıda verilmiştir.

  • NASA/Air Force Spacecraft Charging Analyzer Program (NASCAP-2K), 
  • Mars Global Reference Atmospheric Model (Mars-GRAM) 2010 Design and Integration Tools
    System Identification Programs for AirCraft (SIDPAC)
  • Orbital Debris Engineering Model (ORDEM), Version 3 Environmental Science
  • OVERFLOW 2: Over set Grid  Computational Fluid Dynamics (CFD) Flow Solver with Moving  Body Capability Design and Integration Tools
  • Chimera Grid Tools, Version 2.1 Aeronautics
  • Multi-Attribute Task Battery (MATB-II) Event File Builder (EFBt) Crew and Life Support
  • Schedule Test and Assessment Tool (STAT), Version 5.0 Business Systems and Project Management
  • Knife, Version 1.0 Design and Integration Tools 
  • Project Cost-Estimating Capability

Google'ın Yapay Zeka Oyuncakları

Google'ın AI (Yapay zeka) çözümleri ile çizimlerinizi profesyonel hale getirin. Tek yapmanız gereken Google'ın güçlü makine öğrenim algoritmalarını kullanan https://www.autodraw.com/ sitesini açmak. Arkasından bir nesne düşünüp, açılan ekranda Paint'te çizim yapar gibi çizmek. Autodraw siniz ne çizmek istediğinizi algılayıp, ekranın üst kısmında  bulunan alternatifleri sıralamakta. "Do you mean" yazısının sağ tarafında görülen ve profesyoneller tarafından çizilmiş alternatiflerden her hangi birine tıkladığınızda, sizin çiziminizi bu çizim ile değiştirmekte.



AutoDraw sisteminden farklı olarak bize çizmemiz için çeşitli nesneler söyleyen sistemde amacımız 20 saniye içerisinde QuickDraw'ın çizmemizi istediği nesneleri AutoDraw'daki gibi ekranın içerisine çizmek. QuickDraw'ı kullanarak AutoDraw'ın yapay zekasını gelişmesine yardımcı olabilirsiniz.


Google Lens
Google'ın geçen ay duyurusunu yaptığı Google Lens Uygulaması ile cep telefonları kameralarına yapay zeka teknolojileri geliyor. Uygulama sayesinde, çektiğiniz bir fotoğrafta bulunan bir çiçeğin, hangi çiçek olduğunu bulabilir yada çektiğimiz fotoğraftaki bir lokantanın nasıl bir lokanta olduğunu öğrenebiliriz. 2017 yılı içerisinde kullanıma sunulması düşünülen uygulamanın bazı ek özellikleri de barındıracağı söylenmekte.


Aiexperiments
Google tarafından hazırlanan diğer yapay zeka çözümlerinden bazıların yer aldığı diğer bir site ise;





2 Haziran 2017 Cuma

İşletim Sistemleri Tarayıcıda

Pcjs sitesi; eskiden kullandığımız pek çok farklı işletim sistemini, kuruluma gerek olmadan online olarak, browser üzerinden çalıştırmamıza izin veren güzel ve kullanışlı bir web sitesidir. Site içerisinde onlarca işletim sistemi bulunmaktadır. İşletim sistemini açmak için tek yapmanız gereken sitenin web adresini tıklamak ve web sayfasının alt kısmında görülen işletim sistemlerinden birini seçmek.

Örnek olarak Windows 95 işletim sistemini açabilirsiniz. İşletim sistemlerinin yüklenmesi 5 ila 10 saniye arası vakit alacaktır. Diğer işletim sistemlerinden örnekler aşağıda verilmiştir. Linkleri tıklayarak istenilen işletim sistemlerinden birini açabilirsiniz.

  1. Windows 1.0 
  2. Windows/386 2.01 
  3. Windows 3.0 
  4. Windows 3.1 
  5. IBM PC 5150 (İlk kişisel bilgisayarlardan biri olarakta bilinmektedir.) IBM PC 5150 hakkında daha detaylı bilgi almak ve o dönemin bilgisayarlarını tanımak için OldComputers sayfasınıda ziyaret edebilirsiniz.

Windows 95

Windows 3.1

İşletim sistemi ekranından çıkmak için ESC tuşuna basabilirsiniz. Ekranın sağ tarafında bulunan Full Screen butonu kullanılarak işletim sistemini tam ekran olarak kullanabilirsiniz. Her ne kadar tarayıcı üzerinden çalışan javascript kodları ile yazılmış olsada kullanım ve görsellik açısından pek çok ihtiyaca cevap verebilecek durumdadır.

Virtual Desktop uygulaması ise aynı amaç için kullanılabilecek başka bir web sitesi adresidir. Aşağıda siteden alınan Macos 10 4 Tiger işletim sistemi görülmektedir.

30 Mayıs 2017 Salı

Online IDE

Bilgisayarınıza gerekli programları kurmadan, farklı programlama dillerinde geliştirilen kodları online olarak çalıştırabilirsiniz. Tek yapmanız gereken aşağıdaki online ide sitesine gidip, hangi programlama dilinde kod yazacağınıza karar vermek. Yazdığınız kodları çalıştırmak için sitenin sağ alt koşede bulunan yeşil Run tuşuna tıklamak. Yazdığınız kodlarda hata yaksa, kodlarınız direk o site üzerinden derlenerek çalışacaktır.

Sitenin desteklediği programlama dillerden bazıları:Pascal, C, Perl, C#, PHP, C++, Python,  C++14, Python 3, Haskell, Ruby, Java, SQLite,  Objective-C, Swift, Pascal, Ada95,  Common Lisp,  Prolog, Assembler 32bit, Common Lisp,  Python,    Assembler 32bit,    D, Python 3 nbc, Assembler 64bit, Lua, Racket, AWK, Dart,    Nemerle, Rust, BC, Elixir, Nice, F#, Scheme, C++ 4.3.2

Online ide:  https://ideone.com/





Sculptris

Sculptris programı ile 3D mekanlar yada 3D karakterler oluşturabilirsiniz. Oluşturudğunuz karakterleri Unity gibi oyun geliştirme platformlarına ekleyebilirsiniz. Diğer 3D karakter yada mekan oluşturma programlarına daha göre kolay bir kullanışa sahip olan programı internetten ücretsiz olarak indirebilirsiniz. Programın internet adresi http://pixologic.com/sculptris/gallery/

 


Örnek olarak aşağıdaki iki eğitim videosuna bakabilirsiniz.






VB C# kod Dönüşümü

Telerik sitesi; VB.net kodlarını C#'a, C# kodlarınıda Vb.net'e dönüştürmek için kullanılacak bir web sitesidir. Sitenin internet adresi:http://converter.telerik.com/
 



Yazılım Lisans Anlaşmaları

Tldrlegal sitesi; GNU, BSD gibi pekçok farklı lisans anlaşmasının detaylarını (Quick Summary özelliği sayesinde) görebileceğimiz ve lisans kapsamı içerisinde hangi haklara sahip olduğumuzu gösteren bir web sitesi. Hızlı ve kolay bir arama imkanı sunan bu web sitesinin internet adresi: https://tldrlegal.com/



15 Mayıs 2017 Pazartesi

Yazılım Mühendisliği Uygulamaları (Tez Dersi Dökümanları)


Tez Öneri Formunun Gönderim Tarihi 1 hafta ertelenmiştir. Tez öneri formu (II.Öğretim 25 Mart -I.Öğretim 26 Mart tarihine kadar)  cbuyzm4101@gmail.com adresine gönderilecek ayrıca çıktı alınıp derste teslim edilecektir.)

1-)Tez Önerisi Şablonu (Öneri Formu)

2-)Tez Şablonu (Boş Hali)

3-)Örnek Tez (Örneğin ufak tefek eksiklikleri var, örnek tam olmasada elinizde bulunsun. )

27 Nisan 2017 Perşembe

Extreme Programing Nedir?


Extreme Programing  (XP): Kent  Beck  tarafından  bir  yazılım  geliştirme  disiplini olarak  XP  ortaya  çıkarılmıştır ve grup  içi  iletişime  çok  önem  veren  bir  yazılım  geliştirme  yöntemidir. XP ile proje  yaşam döngüsü (life cycle) çerçevesinde proje geliştirimi sağlanır. Proje  yaşam döngüsü bazı uygulamalara (practices) bağlıdır. Yazılım geliştirmede kolaylığı ve esnekliği sağlamak için; XP 12 farklı uygulamayı öngörür.

Extreme Programing Avantajları

Hata oranını azaltma
Yazılımın erken safhasında somut gelişmeler sağlaya bildiğinden, oluşan hataların farkına varabilir.Bu hataları da kendi içerisinde oluşturduğu küçük yaşam döngüleri ile telafi edebilir.
Projenin gelişme süresini kısaltır.
Artırımsal yaklaşım sayesinde hızlı bir şekilde genel planın oluşması sağlanır.Burada aynı bütün ekip tarafından proje süresi tahmini de yapılır.
Değişikliklere izin verir.
Esnek iş yürütme ve fonksiyonellik sayesinde, işletmenin değişen ihtiyaçlarına cevap verir
Yazılımsal olarak ortaya çıkabilecek tıkanıklıkları azaltır.
Müşteriler ile birlikte monitörlerden programcılar ve müşteriler ortak bir şekilde test yaparak ileride tıkanıklıkların ortadan kaldırılmasını sağlarlar.




Extreme Programing 4 Temel Noktası

İletişim
XP in ilk temel taşı iletişimdir. Projelere baktığımızda ortaya çıkan önemli problemlerin insanların birbirleriyle tam olarak anlaşamaması nedeniyle olduğunu görünür. Bazen programcılar sormaları gereken doğru soruyu soramazlar. Bazen de projenin yapısıyla ilgili önemli bir gelişmeyi söylemezler. Bu yüzden projelerde çeşitli tıkanma noktaları olabilir. Bazen de proje yöneticileri programcılara belirtmeleri gerekenleri tam olarak belirtemezler. Bu da projenin gelişme sürecilerini olumsuz etkiler. XP de iletişim yüz yüze olmalıdır. İletişim sürekliliği olmalıdır. Yazılım ekibi ile yazılımı kullanacaklar arasında sıkı bir iletişim bağı olması esastır. Bu sayede sorunlar erken fark edilir.


Basitlik
XP in ikinci temel taşı basitliktir. Aslında basitlik sağlanması zor olan bir konudur. Basitlik, zorunlu işlerin yapılmasıdır. Gerekli olmayan bir şey varsa, kesinlikle bu konu XP basitlik ilkesi içerisinde olmamalıdır. Dünyadaki en zor şey gelecekte ne gibi ihtiyaçlarla karşılaşacağımızı bilmemektir. Bu nedenden dolayı oluşturulacak yapı, gelecekte ne gibi isterlerin ortaya çıkacağını tam olarak bilmeden oluşur. Buna göre esnek zaman ve maliyeti göz önüne alınmış bir yapı oluşturmak gerekmektedir. XP en iyi şekilde bu basitliği sağlamak için, bu günün ihtiyaçlarını hedef alarak esnek ve basit bir sistem gerçekleştirmeye çalışır. 


Geri Besleme
Sistemlerin geri dönüşümü olması sistemler için paha biçilemez bir fırsat yaratır. Geri dönüşüm sayesinde optimizasyonun oluşmasına engel olan tehlikeler ortadan kaldırılır. Öncelikle programcılar bütün sistemin mantıksal yapısını içeren bölüm testleri oluşturur. Programcılar sistem hakkında somut bilgiler elde ederler. Müşteriler yeni bir “stories” hikâye ile geldikleri zaman, programcılar hemen bu yeni gelen hikâyenin gerçekleşmesi ile ilgili çalışma yapıp bu “stories” e uygun bir çalışma gerçekleştirirler.


Cesaret
XP in dört temel noktasından en zoru cesarettir. Projelerin üzerine yılmadan gidilmesi projelerin geliştirilmesi açısından son derece önemlidir. Cesaretin olmadığı projelerde korku gelişir ve gelişen bu korku projeyi başarısızlığa iter. Yazılım işlerindeki başarısızlık ise; yazılımın çöpe gitmesidir ve maalesef genel duruma da baktığımızda yazılımların büyük bir kısmının çöpe gittiğini görünyorur. Başarısızlık, genel tabiat içerisinde olan bir durumdur. Başarısızlıktan korkmak yerine başarısızlığı oluşturan nedenler üzerine gitmek yerinde olacaktır. Başarısızlıkla mümkün olunan en kısa sürede karşılaşmak, daha sonra telafi etme şansını arttırır.

Extreme Programing 12 Uygulama
Planlama Oyunu
Ekipte müşteri
Müşteri Testi
Basit Tasarım
Çiftli Programlama
Sürekli Tümleştirme
Kısa sürümler
Yeniden yapılandırma
Ortak sahiplenme
Metaphor
Kodlama standardı
Kırk saat haftada  



Extreme Programing  Çalışma Mantığı

 


 









Riskler ve Risk çözümleri

Extreme Programing Korkmadıkları
Kodlama
Değişen fikirler
Geleceği bilmeden yol alabilmek
Çalışan bir sistemin yapısının değişmesi
Testler yazılması



Extreme Programing Roller
Müşteri
Yazılım geliştirme sorumlusu
Test sorumlusu
Ölçüm sorumlusu
Koç
Danışman
Yönetici

Agile Sistemler

Agile sistemler klasik methodlara duyulan eleştiriler nedeniyle ortaya çıkmıştır.

Klasik Metotlara Olan Eleştiriler

Sürüm yani çalışan program çok geç ortaya çıkıyor.
Sürüm çok geç çıktığı için hatalar çok geç anlaşılıyor.
Verimli değil.
Esnek değil, yeni gelen isterler doğrultusunda kendi yapısını değiştiremediği için yeni isterleri karşılayamıyor.
Değişiklik geç ve zor yapılıyor.




Agile Metodolojiler

Extreme Programing
Scrum
Crystal Family
Rup

17 Nisan 2017 Pazartesi

Milli İmkanlarla Üretilen Bilişim Sistemleri

1-)Linux Tabanlı İşletim Sistemi Pardus



2-) Mini Bilgisayar Poyraz



3-) Virüs Programı Chomar



Web Sayfası: https://www.chomar.com.tr/en/page.aspx


4-) Mount & Blade 2




10 Nisan 2017 Pazartesi

GitHub Kodları & GitHub Kullanımı



Git bir versiyon kontrol programıdır. Git sayesinde proje içerisinde bulunan dosyaların gelişimi takip edilebileceği gibi aynı zamanda eski versiyonlara kolayca erişilip o versiyonlar üzerinden değişiklikler yapılabilir.

---- Git Kurulum----
Git Kurulumu oldukça basittir.Kullandığınız Windows yada Linux işletim sistemine göre https://git-scm.com/downloads sitesinden ücretsiz olarak bilgisayarınıza Git programını indirebilirsiniz.
Kurulum sırasında sadece "Use Git from Git Bash only" seçeneğinin seçili olduğunu kontrol edin.



----Git ilk Kullanım----
Git programı MS Dosta bulunan CMD ekranına benzeyen ve Git Bash adı verilen bir konsol ekranına sahiptir. Git Bash programını kullanmak için aşağıdaki temel komutları bilmemiz gerekmektedir.




----Gitte Kullanılan Temel Komutlar----
pwd  (Bulunan dizinin pathini listeler)
ls   (list kelimesinden üretilmiştir. Hangi dosyaların çalıştırılan klasörde olduğunu gösterir.)
ls -la  (klasördeki gizli dosyalarıda gösterir.)
cd Deneme  (Deneme isimli klasörün içerisine girilmesi için kullanılır.(örnek cd Deneme) Bu komutun doğru çalışması için bulunan dizinde Deneme diye bir klasörün bulunması gerekmektedir. (Ms Dos taki aynı komut cd .. diyerek üst klasöre geçilebilir.))
git --version (Kullanılan Git'in versiyonu öğrenilir.)
git init (Seçilen dosyada Git'in kullanılacağı söylenmiş olunur.)
git add . (Seçilen klasörün içerisindeki her şeyi Git kullanımına ekle)
git commit -m "ilk mesajı ekle" (ilk mesajı ekle yazısı git içerisine kim tarafından oluşturulmuşsa o kişi ile ilgili bir log olarak Git'e eklenir. Bu komut sayesinde zamanda bir kayıt oluşturmuş olunur bu sayede eğer projede geri dönmek istersek kolay bir şekilde o noktaya geri dönebiliriz.)
git diff (Dosyanın içerisindeki farklı kısmı gösterir. Listelerde çıkan kırmızı olan yazılar silinen yeşil olan yazılar ise mevcut yada yeni eklenen yazıları göstermektedir. Özetle git diff çalışan sürüm ile represorory arasındaki farktır.)
git diff --staged (represorory ile staged arasındaki farklı gösterir.)
git rm dosyaadi.uzantisi (örnek rm deneme.txt) (deneme.txt isimli dosyayı diskten siler.)
git mv home.txt first.txt (home.txt adını first.txt olarak değiştirir.)
git mv home.txt deneme/first.txt (home.txt dosyasını deneme isimli klasörün içerisine first.txt olarak kayıt eder.)
exit (Ekrandan çıkış.)
clear (Ekranı temizleme)
git log (Daha önceden kayıt edilen mesajları listeler)
git log --authour="Murat" (Murat adı ile yapılan mesajları listeler)
gir status (Mevcut durum hakkında bilgi verir.)
git checkout --Dosya.uzantısı (Çalışan dosyayı en son kayıtlı haline getirir. Yeni yapılanları siler.)
git commit -am "Veriler kurtarıldı" (Mesajı dierk olarak çalışan dosyaya ve repository ye mesaj kaydı olarak ekler.)
git reset HEAD dosya.txt  (Dosyayı eski çalışan haline resetleyererk geri getirir.)
Eski versiyonları geri getirmek
git log (Eski alınan kayıtlara bakmak için git komutu kullanılarak komutlar listelenir. Listelenen komutlardan git checkout komut mumarasının ilk 5-6 hanesi yazılarak (Örnek checkout e292939) o zamanki hali tekrardan yüklenmiş olur.
Dosyaları Github'a yüklemek
Github üzerinden açacağınız bir hesaba dosya eklemek için hesap açıldıktan sonra bir repository oluşturmanız gerekmektedir. Oluşturulan repositoryye dosya eklemek için
git remote add githubsf (githubsf sizin tarafınızdan oluşturulacak isim) https://github.com/sizin hesabınız/sizin repositoryniz.git
(Örnek $ git remote add githubsf https://github.com/Yazilimcilardunyasi/SF.git)
Oluşturulan repositoryye uzaktan bağlantı için
git remote sizin repositori adınız
(Örnek $ git remote githubs)
Dosyalar göndermek için
git push -u sizin reporisotory isminiz master
(Örnek $ git push -u githubsf master)
Enter dedikten sonra kullanıcı adınızı ve şifrenizi girmeniz için bir ekran çıkacaktır. Şifre bilgileri doğru olarak girildikten sonra dosyalarınız githubın sistemine yüklenmeye başlayacaktır.
Bu işlemin sonucunda StreetFigther isimli oyunun kodları github sitesine eklenmiş olacaktır.
Eklenen kodların bulunduğu repository https://github.com/Yazilimcilardunyasi/SF

--------Github-GUI-------
Github Bash haricinde Github GUI programı kullanılarakta Githuba dosya yüklenebilir.


----www.github.com Kullanımı----
İstenirse www.github.com sitesinde yüklenen repository üzerinde kopyalar oluşturulabilir. Proje ile ilgili web adresi varsa o adrese link verilebilir. Başka kullanıcıdan gelen değişiklikler yada güncellemeler sisteme eklenebilir.




Bir ekip halinde aynı proje üzerinde çalışılabilir. Görevler eklenip kişilere ataması yapılabilir.Başkalarının geliştirdiği github projelerine katkı yapılabilir yada önerilerde bulunulabilir.Projeyi geliştiren kişilerle karşılıklı mesajlaşılabilir.

-----Git Eğitimi-----

25 video videoların uzunluğu 5-10 dk (Eğitim dili İngilizce)



 23 video (Eğitim dili Türkçe)


---Git Türkiye İstatistikleri---

Programlama Dillerine Göre İl Bazlı Dağılım


Detaylı Bilgi https://alpcanaydin.github.io/github-stats-for-turkey/#/