13 Ağustos 2013 Salı

Java Eclips Satır Sayısını Gösterme -2


Satır sayılarını görmek için Eclipste
Window->Preferances->General->Editors->Text Editor  (Sol taraftaki) Show Line Numbers Menüleri kullanılır.

12 Ağustos 2013 Pazartesi

En Önemli Yazılım Hataları

Mariner 1 22 Haziran 1962

Fortran dilinde DO I = 1.10 yerine I=1,10 yazılması.

Yazılımındaki bir hata fırlatma sırasında roketin istenen yörüngeden ayrılmasına yol açtı. Kontrol yönetimi tarafından roket Atlantik Okyanusu’nda yok edildi.
Kazayla ilgili inceleme yapıldığında, bir kâğıda kurşun kalemle yazılmış bir formülün bilgisayara yanlış geçirilmiş olduğu ortaya çıktı. Böylece bilgisayar roketin yörüngesini yanlış hesaplamıştır.



1982 — Sovyet Gaz Hattı

CIA’e bağlı çalışan operatörler Sibirya gaz hattını kontrol etmek üzere satın alınan Kanada bilgisayar sistemine bir böcek yerleştirdiler. Bu böcek Sovyet incelemesinden geçecek, ama sonunda işletme anında başarısız kalacak bir ekipmanı araç olarak kullandı. Yerleştirilen böceğin hatalı çalışması sonucu gezegenin tarihinde en büyük nükleeer olmayan patlama meydana geldi.

1985-1987 — Therac-25 Tıp Kazası

Bir radyasyon terapi cihazı hatalı çalıştı ve çeşitli tıbbi tesislerde ölümcül düzeyde radyasyon verdi.
Daha önceki bir tasarım geliştirilerek yaratılmuş bulunan Therac-25 iki farklı tür radyasyon verilen “ileri” bir terapi sistemi idi. Ya düşük güçlü elektron ışını (beta parçacıklar) veya X-ışınları veriyordu.
Therac-25′in X-ışınları yüksek güçlü elektronların elektron silahı ile hasta arasına yerleştirilmiş bir metal hedefe çarptırılmaları ile yaratılıyordu. İkinci bir “ilerleme” de eski Therac-20 nin elektromekanik güvenlik bağlantılarının yazılım kontrolüyle yapılmasıydı.
Bu karara yazılımın daha güvenli olduğu düşüncesiyle varılmıştı. Mühendislerin bilmediği şey hem 20 hem 25′in hiçbir resmi eğitimi olmayan bir programcı tarafından yazılmış olduklarıydı. Bir görünmez hata nedeniyle, hızlı yazan bir klavye kullanıcısı kaza yaparak Therac-25′in elektron ışınını yüksek enerjili modda, fakat metal hedef yerinde olmadan, hastaya gönderecek şekilde çalışmasına yol açabilirdi. Böyle oldu ve en az 5 hasta öldü başkaları ciddi şekilde yaralandı.

1988 — Berkeley Unix Sisteminde Tampon Bellek Taşması:

Adına Morris Worm denen ilk İnternet solucanı bir tampon bellek yetersizliği sorunundan yararlanıp, bir günden az bir zaman içinde, 2000-6000 arası bilgisayara bulaştı. Bu konuyla ilgili kod gets() olarak ifade edilen bir standart girdi-çıktı kütüphanesi fonksiyonuydu. Bu fonksiyon ağ üzerinde bir metin satırı okur. Maalesef gets() fonksiyonunun girdiyi sınırlamayla ilgili bir kontrolü yoktur ve çok büyük bir girdi solucanın bağlanabildiği makinayı kontrolüne almasını sağlayabilir.

1988-1996 — Kerberos Rasgele Sayı Üreticisi Kazası:

Kerberos güvenlik sisteminin yazarları, programın rasgele sayı üreticisini uygun bir parametreyle beslemeyi ihmal edince, yetkilendirme için Kerberos’a dayanan bir bilgisayara izinsiz giriş yapmak mümkün hale geldi.

15 ocak 1990 — AT&T Bilgisayar Ağı Kazası

AT&T’nin #4ESS uzun mesafe şalterlerini kontrol eden yazılımının yeni sürümündeki bir görülmeyen bir hata, bu dev bilgisayarların komşu makinaların birinden belirli bir mesaj almaları durumunda çökmelerine neden oldu. Kısa süre sonra, her 6 saniyede 114 şalter çöküp yeniden çalışmaya başlar hale geldi. Böylece 9 saat boyunca 60 bin kadar kişi uzun mesafeli servis kullanamaz hale geldi. Sonuçta mühendisler yazılımın eski sürümünü yüklediler.

1993 - Intel Pentium İşlemcide Sorun

Bir silikon hatası Intel Pentium bilgisayar yongasının belli bir büyüklük aralığındaki ondalıklı sayıları bölerken hata yapmasına yol açıyordu. Örneğin 4195835.0 / 3145727.0 sonucu 1.33382 yerine 1.33374 olyordu. Bu yüzde 0.006 lık bir hataydı. Bu görünmez hata az sayıda kullanıcıyı etkiledi, ama halkla ilişkiler kâbusu yarattı. Piyasaya sürülmüş 3- 5 milyon arası yonga vardı. Başlangıçta Intel daha hassas hesaplamalara ihtiyacı olduğunu kanıtlayanlar için yonga değişişkliği yapmayı önerdi; ama sonunda teslim oldu, şikâyet eden herkesin yongasını değiştirmeyi kabul etti. Sonunda bu görünmez hata Intel’e 475 milyon dolara maloldu.

4 Haziran 1996 — Ariane 5 Flight 501

Ariane 4 roketinin çalışma kodu Ariane 5′te yeniden kullanılmıştı. Fakat Ariane 5′in daha hızlı olan motoru, roketin uçuş bilgisayarındaki bir aritmetik işlemde bir hatanın ortaya çıkmasına yol açıyordu. Hata, bilgisayar ifadeleriyle, 64 bitlik ondalıklı sayıyı 16 bitlik işaretli tam sayıya dönüştüren kodda idi. Daha hızlı motor 64 bitlik sayıların Ariane 5′te, Ariane 4 de olduğundan daha büyük olmasına yol açıyor ve böylece sayısal taşma durumu yaratıyor, o da uçuş bilgisayarının çökmesini getiriyordu. Flight 501′in destek bilgisayarı çöktü, 0.05 saniye sonra da ana bilgisayar çöktü. Çöken bilgisayarlar sonucu, roketin ana işlemcisi motorlara aşırı güç yüklenmesine yol açtı ve roket, fırlatıldıktan 40 saniye sonra, parçalandı.

Kasım 2000 — National Cancer Institute, Panama

Bir dizi kaza sonucu bir ABD firması olan Multidata Systems International tarafından yazılmış olan terapi planlama yazılımı, radyasyon terapisine girecek hastaya yollanacak uygun radyasyon dozunu yanlış hesapladı. Multidata’nın yazılımı bir radyasyon terapistinin, “blok” denen, sağlam dokuların radyasyondan korunmasını sağlayan metal kalkanın yerini bilgisayar ekranında belirlemesine olanak veriyordu.

F-18 çarpışması…

F-16 kullanılan similasyon progamındaki paremetrelerin düzgün olarak F-18 similasyonua aktarılmaması.

Yıl belirsizlikleri…

Mary Bandar 1992 yılında '88 doğumlu diğer çocuklarla birlikte, Winona, Minnesota bir anaokulu katılmak üzere davet aldı.
Mary 104 yaşında idi
----zaman.

Tarih,Zaman ve Tamsayılar

 A Washington D.C. Hastane bilgisayar sistemi çöktü 19 eylül, 1989.
tarih 01.01.1900 olarak değişti. 1979 yılında ABD'de, depremlere dayanacak şekilde bir nükleer santral tasarlandı. Ancak kullanılan bir simülasyon programındaki bir program hatası yüzünden reaktör kurulmadı.

Norwegian bank ATM…
10 kat para eksilen bakiye yok…
İngiliz bankası…
Bir yazılım kusuru yarım saat içinde yaptığı tek yönlü para trasferleri nedeni ile 2 milyar İngiliz sterlini kaybetti! Bankayı sonunda fon kurtarıldı.
Merkez bankası kur hesabı…
Avustralyalı bir adam, Sri Lanka Rupisini 104.500 $ değerine satın aldı. Ertesi gün 440.258 $ a bir başka bankaya sattı. İlk bankanın yazılım Rupi pozisyonda yanlış döviz kuru göstermişti. Bankanın açtığı davayı dolandırıcılık olmadığından  ilave olan 335,758 $ saklayabilirsiniz kararı verdi!





Hatalı Yazılımın Sonuçları

İletişim Kaybı.
Müşterinin yazılıma olan ilgisinin kaybı.
2 Taraflı güven kaybı.
Maliyet Artışı.
Zaman Aşımı
İlave hatalar.

Ulaşım: Ölümler, gecikmeler, ani hızlanma, fren yetersizlik.
Güvenlik kritik Uygulamalar: Ölüm, yaralanma.
Elektrik Güç: Ölüm, yaralanma, elektrik kesintileri, uzun vadeli sağlık tehlikeleri (radyasyon).
Para Yönetimi: Sahtekarlık, gizlilik ihlali, borsalar ve bankaların, negatif faiz oranları hesabı.
Yanlış sonuçlar seçimler kontrolü.
Hapishane Kontrolü: Kilitlerin açılması sonucu mahkumlar yanlışlıkla kaçması.
Kolluk: Yanlış tutuklamalar ve hapis cezaları

Hatalı Yazılımın Nedenleri

Geliştirilen program içerisinde kaç çeşit ve kaç tane hata vardır?
Tahmin imkanı var mı?
Kesin olarak bilinebilir mi?

Problemlerin Kaynağı
Gereksinimleri  Belirle: Hatalı, eksik, tutarsız gereksinim belirleme.
Tasarım: Yazılımın Temel tasarım hataları.
Uygulama: Kodlama, programlama hataları, kalitesiz programlama.
Test: Yetersiz ve eksik test.
Destek Sistemleri: Zayıf programlama dilleri, hatalı derleyici ve debugger'lar.
Yetersiz yazılım Testi: Eksik test, kötü doğrulama, hata ayıklama sorunları. 
Düzeltmeler: Yazılım geliştirme ya da bakım sırasında, bazı özellikleri geliştirmek isterken yapılan hatalar.(Düzeltmek içinyapılan çalışmalarda yeni kusurların ortaya çıkması.)
 Karmaşıklık katsayısının azaltılamaması.

Bug nedir?

1947 yılında Harvard Üniversitesi'nde bir oda büyüklüğünde bir bilgisayar (Mark II) olarak adlandırılan bir bilgisayar geliştirildi.
Mekanik röleler değiştirildi.
Bu arada parlayan vakum tüpler oldu.






Bug Çeşitleri

Defect = Bozukluk yada noksanlık.
Fault = Kusur,Hata,Arıza
Problem
Error
Incident = Olay
Anomaly

Variance = Değişiklik






2 Ağustos 2013 Cuma

Java'da Herşey Class ise İşte İlk Classlar -1

Eclipse kullanak Android işletim sistemi için uygulama geliştirmemek istersek Java dilini iyi düzeyde kullanmayı biliyor olmalıyız. Onun için temel anlamda Java dilinin temellerini öğrenmemiz gerekmektedir.
1-) Eclipse Programının Temel Kullanımı

File->New->Java Project (Eğer Listede Yoksa Project Kısmından Java) - > Proje Adı (İstediğiniz Bir İsim Olabilir) -> Class (Adı İstediğiniz Bir İsim Olabilir)

Sonrasında Aşağıdaki Kaynak Konu Yazılarak. Run Menüsünden Uyulama Çalıştırılır. Sonuç Aşağıdaki Konsol Bölümünde Gözükecektir.







İndirme Adresi:

İlk Android Uygulaması

Merhaba Dünya Programı (İndirme Adresi)
Öncelikle bir Android projesi açıp projemizin dosyalarını tanımaya başlayalım.
Eclipse’yi çalıştıralım. İlk çalıştırdığımızda bizden projelerimizi kaydetmemiz için klasör konumunu isteyecek. Değişiklik yapmazsak yeni projelerimiz default klasöre kaydedilecektir.
New Project alanından bir adet yeni proje açıyoruz.
Proje ismimizi Merhaba olarak belirtip Next diyoruz.

Application Name: Uygulamanızın ismidir. Play Store’da ve Ayarlar altındaki Uygulama Listesinde bu isim kullanılır.
Project Name: Proje dosyasının ismidir. Sadece Eclipse tarafından kullanılır. Workspace içerisinde benzersiz olmalıdır. Genelde Application Name ile aynı verilir.
Package Name: Kullanılan java paketinin gösterir.
Minimum Required SDK: Uygulamanın çalışacağı minimum Android SDK sürümüdür. Uygulamanız daha alt sürümlerde çalışmaz. Örnekte seçilen API 8 seviyesi markette bulunan telefonların ve tabletlerin %90’ından fazlasını destekleyeceğiniz anlamına gelir.
Target SDK: Uygulamanızı geliştirdiğiniz esas Android SDK sürümüdür.
Compile With:  Uygulamanızı derleyeceğiniz sürüm bilgisidir.
Theme: Uygulama için seçilecek temel temadır.

Daha sonra açılan pencerede Android 4.0.3 seçip devam ediyoruz. (2.1 de seçilebilir örneğin size bağlı)
Sonraki pencerese Package Name veriyoruz. Bu isim unique bir değer olmalıdır. Genellikle url’ler ters yazılarak belirlenir. com. merhaba şeklinde. Next deyip yeni projemizi açmış oluyoruz.

Sol kısımda Package Explorer kısmında projemizin dosyalarını görebiliyoruz.


Bu dosyaları tanıyalım:
src klasörü: Uygulamamızın kaynak kodlarını içerir. Burada bulunan kaynak dosyamız editörün bizim için yaratmış olduğu java uzantılı dosya.
gen klasörü: Burada bir R.java dosyası yer almaktadır. Biz uygulamamıza yeni kaynaklar ekledikçe bu dosya kendiliğinden otomatik olarak güncellenecektir. R sınıfını uygulamayı yazarken kullanırız.
assets: Uygulamamız ile birlikte paketlenmesini istediğiniz dosyaları koymamız gereken klasör.
res: içerisinde çok sayıda klasör barındırıyor. Buradaki layout’un altındaki main.xml projenin grafiksel görünümünü ve kod kısmını içerir. values klasörünün altında bulunan strings.xml dosyasında stringlerimizi belirleyebiliyoruz.
AndroidManifest.xml: Uygulama ve bileşenlerinin tanımlandığı XML dosyasıdır.
project.properties Projenin özellik dosyasıdır.
Merhaba Dünya uygulamasını yazmaya hazırız:
Package Explorer penceresine genel bir bakış attıktan sonra values klasörünün altında bulunan strings.xml dosyasına tıklayalım. Kod kısmına aşağıdaki kodu yazıp kaydedelim:?
<string name="text">Tıkla</string>
Daha sonra main.xml dosyamızı açacağız. Grafik sekmesinde sol bölümde uygulamamıza dahil edeceğimiz kontrollerimizi göreceğiz. Form Widgets kısmından bir adet Button’u sürükleyip bırakıyoruz. Kod kısmına geçiyoruz. Kodlarımızın görünümü aşağıdaki şekildedir:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:orientation="vertical" >
<Button
 android:id="@+id/button1"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="Button" />
</LinearLayout>
Butonun layout_width özelliğini değiştirelim:

android:layout_width="fill_parent"
Bunu buton tüm ekranı kaplasın diye yaptık.

android:text="@string/text" />
Bunu yazarak butonun textini değiştiriyoruz. Direk görüntülenmesini istediğimiz metni yazarsak uyarı alırız, doğru olan bu şekilde string tanımlayarak sonra bu stringi butonun textine vermek.
Grafik arayüz kısmında butona sağ tıklayıp Show In – Properties seçersek sağda kontrolümüzün özellik ve olaylarını gösteren bir pencere açılacak. Buraya kadar buton ekleyip butonun textini değiştirdik. Sıra geldi bu butona tıkladığımızda ekrana “Merhaba Dünya” yazdırmaya  

Button Properties penceresinden Onlick kısmına MerhabaClick yazalım. Daha sonra src klasörünün altında bulunan java dosyasını açalım. İlk hali bu şekilde olacak.
package com.yazilimciblog.merhaba;
import android.app.Activity;
import android.os.Bundle;
public class MerhabaActivity extends Activity {
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);
 }
 }
Buraya öncelikle metodumuzu yazacağız.
public void MerhabaClick(View v)
{
}
şeklinde olacak. ctrl+shift+o ile import android.view.View; ekleyeceğiz. Daha sonra scope alanına yazalım:
public void MerhabaClick(View v)
{
Toast.makeText(getApplicationContext(), "Merhaba Dünya", Toast.LENGTH_LONG).show();
}
Kaydedip uygulamayı emulatorde çalıştıralım. Bunun için üst kısımda bulunan yeşil Run tuşuna basıyoruz.


İlk uygulamamız bu kadar. Butona basıldığında başarı ile ekrana “Merhaba Dünya” yazdırmış olduk.




Android SDK ve Eclipse ADT Kurulumu – Ayrıntılı Anlatım

 Video Olarak Android ve Sdk Kurulumu: Aşağıdaki Linki Kullanarak Adım Adım Android Kurulumu Gerçekleştirebilirsiniz. http://www.youtube.com/watch?v=buGXaLNE4vw

Bilgisayarınızda JDK kurulu değilse, JDK indirip bilgisayarınıza kurmanız gerekir. Kurulum için http://java.sun.com/javase/downloads/index.jsp adresinden JDK indirilip kurulur. Kurulum yapılmazsa hatayla karşılaşılır. Sadece bilgisayarınızda JRE kurulu olması Android için yeterli değildir. JDK kurulumundan sonra SDK’nın kurulması gerekiyor. Bunun için Android SDK sayfasına gidilmesi gerekiyor. http://developer.android.com/sdk/index.html adresinden indirebilirsiniz. Recommended olan indirilirse, direk olarak exe dosyasından kurarsınız. C:\Program Files\Android\android-sdk-windows klasörü içine kuracaktır.
 
 

 Bu iki kurulumdan sonra Eclipse programının indirilmesi ve kurulması gerekir. Eclipse programını http://www.eclipse.org/downloads/packages/eclipse-classic-372/indigosr2 adresinden indirebilirsiniz. ZIP dosyasını programı çalıştırmak istediğiniz bir yere açınız. Eclipse programı kuruluma ihtiyaç duymaz, zaten kurulu olarak Eclipse isimli klasörde yer alır. Programı çalıştırmak için eclipse.exe tıklanır. Program açıldıktan sonra Eclipse’a ADT kurulumu yapılması gerekiyor. Böylece Android menü içerisinde görülebilecektir. ADT kurulumu için Help -> Install New Software seçeneği seçilir ve Work with kısmına http://dl-ssl.google.com/android/eclipse/ linki eklenir. Add tıklanarak açılan pencerede “Location” sekmesine de aynı adres yapıştırılır. “Name” kısmı önemli değildir. Yüklemeler tamamlandıktan sonra Eclipse programına Android eklenmiş olacaktır.

   

 Son adım olarak Android kütüphanelerinin tanıtılması gerekiyor. SDK yolunu (C:\Program Files\Android\android-sdk-windows) “Windows -> Preferences” seçeneğinde Android sekmesini seçerek “SDK Location” bölümüne yapıştırılır.


Gadget

Masaüstünde çalışan uygulamalar nasıl yapılır?
Bu sorunun cevabını barındıran basit bir gadget uygulama bu uygulamadan elde edilen bilgilerle kendi masaüstü gadget uygulamalarınızı yapabilirsiniz.

Proje İndirme İndirme Adresi
Ani Gif: