21 January 2009

Anahtar Tabanlı SSH Bağlantısı için Açık (public) Anahtarınızı En Kolay Nasıl Paylaşırsınız?


Eğer internette ssh bağlantıları için anahtarlama kullanımı konusunda biraz araştırma yaptıysanız karşınıza çıkacak dökümanların çoğunda açık anahtarınızın hedef makinada ~/.ssh/authorized_keys dosyasına nasıl ekleneceği, bu dosyanın ve .ssh dizininin hangi kullanıcı ve grup yetkilerine sahip olacağı konusunda bilgi verildiğini göreceksiniz.

İlgili dökümanlarda bahsedilen herşey doğru olmakla birlikte ssh programı bütün bu adımları sizin için layığıyla gerçekleştiren bir komut satırı programıyla birlikte geliyor. ssh-copy-id isimli bu program ne yazık ki birçoğumuzun dikkatinden kaçıyor.

ssh-copy-id programı ne yapar?

  • Açık anahtarınızı hedef makinada  kullanıcı dizini altındaki yetkili anahtarlar dosyasına ekler ( ~/.ssh/authorized_keys)
  • ~/.ssh dizinini ve ~/.ssh/authorized_keys dosyasının yetkilerini düzenler.

Aşağıdaki örnek  komutta herhangi bir kimlik belirtmediğimiz için varsayılan açık anahtar ( ~/.ssh/id_rsa.pub dosyasının içeriği) hedef.makina.com makinasındaki ali kullanıcısının  home dizinine yüklenir.

$ssh-copy-id ali@hedef.makina.com

Eğer birden çok anahtarınız var ise hedef makinaya göndermek istediğiniz açık anahtarı -i parametresiyle belirtebilirsiniz.

$ssh-copy-id  -i  ~/.ssh/ikinci_anahtar.pub ali@hedef.makina.com

Kıssadan hisse tek bir komutla açık anahtarınızı hedef bir makinaya yükleyebilirsiniz.  :)

İyi çalışmalar



20 January 2009

PANEL : İnsan Hakları ve Anayasa Açısından İnternet Yasakları ve İletişim Özgürlüğünün Kısıtlanması


Türk Hukuk Kurumu tarafından düzenlenecek ve  Pardus Kullanıcıları Derneği Fahri Başkanı, Bilkent Üniversitesi öğretim üyesi Doç. Dr. Mustafa Akgül tarafından yöneticilecek olan  “İnsan Hakları ve Anayasa Açısından İnternet Yasakları ve İletişim Özgürlüğünün Kısıtlanması” konulu panele, Pardus Kullanıcıları Derneği Yönetim Kurulu Başkanı Av. Nihad Karslı da konuşmacı olacak katılacaktır. Günümüzde sık sık uygulanan İnternet yasaklarının hukuksallığının [...]

19 January 2009

Linux Komut Satırında İnternetten Dosya İndirme


Linux makinanıza bir dosya indirip kuracaksınız diyelim.

Bunun için önce grafik arayüzü olan bir yerden Firefox gibi bir tarayıcı veya Filezilla gibi bir ftp istemcisi ile bağlanıp dosyayı indirip sonra bunu tekrar ftp, scp gibi bir program kullanarak dosyaya asıl ihtiyacımız olan yere kopyalamak büyük bir zaman kaybı olacaktır. (İstemci olarak linux kullanan arkadaşların kaşlarını çattıklarını görür gibiyim. Diyelimki kişi linux değil de başka bir işletim sistemi kullanıyor ve grafik arayüzü yüklü olmayan bir linux sunucusu var)

Bunun yerine wget komutunu kullanarak bu dosyayı bir web sitesinden direkt istediğimiz klasöre indirebiliriz.

En basit kullanımıyla

wget http://www.ornekwebsite.com/dosya.zip

Dosya gelsin ama ben bir yandan konsolu kullanıyım diyorsanız bu işlemi backgrounda atabilirsiniz. İşlemin sonucunu logdosyasi.log adlı dosyaya yazacaktır.

wget -o logdosyası.log http://www.ornekwebsite.com/dosya.zip &

Büyük bir dosya indiriyorsunuz ve kesiliyor o zaman aşağıdaki komut size yardımcı olacaktır.

wget -c http://www.ornekwebsite.com/buyukdosya.zip

Bazen bir sitedeki toplu dosyaları indirmek istiyorsunuz diyelim. Burada dikkat etmeniz gereken şey bu komut o sayfa içinde geçen .zip isimli dosyaları indirecektir.

downloads.html yerine bir klasör ismi yazarsanız ancak klasör gezinme (directory browsing) yetkisi sunucuda açıksa o şekilde dosyaları indirebilirsiniz aksi taktirde ya o klasörde bir index.html dosyası varsa o dosyada geçen ilgili dosyaları indirmeye kalkar yada “ERROR 403: Forbidden” şeklinde bir hata ile karşılaşırsınız.

wget -r -nd -np -l1 -A '*.zip' http://www.ornekwebsite.com/downloads.html

Şu an hattınız yavaş diyelim yada çalışırken indirme işlemi yüzünden yavaşlamasını istemiyorsunuz. Tamam bizde yattıktan sonra başlayacak şekilde ayarlarız, mesela saat 1′de başlayacak şekilde.

echo 'wget http://www.ornekwebsite.com/dosya.zip' | at 01:00

Tahmin edeceğiniz gibi at aslında bir zamanlama komutu bunu kullanarak birçok işinizi cron’a yazmadan zamanlayabilir ve zamanı geldiğinde çalışmasını sağlayabilirsiniz. En kısa sürede at komutu ile ilgili de bir ipucu hazırlayacağım.



18 January 2009

Oturumumuz Süresinde Kullandığımız Komutları ve Sonuçlarını Otomatik Olarak Nasıl Kaydedebiliriz?


Hepimizin başına gelmiştir. Bir problemle uğraşırken veya yeni bir program kurarken not almaya çalışırız. Ama bir noktadan sonra kendimizi yaptığımız işe kaptırır işi bitirdiğimizde;

Tüh bak yaptıklarımı not almayı unuttum. Ne yapmıştık? Hangi komutları kullanmıştık? Karşımıza hangi mesajlar çıktı ve biz neyi seçtik?

diye hayıflanırız.

Kendimizi işimize vermişken bizim adımıza birisinin tüm komutlarımızı ve bu komutların ürettiği mesajları, terminalimize yansıyan çıktıları otomatik olarak kaydetmesi hoş olmaz mıydı?

Linux script komutu bu konuda derdimize derman oluyor.

script komutu aracılığıyla terminalize yansıyan tüm çıktıları bir dosyaya kaydedip daha sonra tekrar inceleyebilirsiniz.

Bir örnek ile nasıl çalıştığına bakalım;

ali@ali-laptop:~/temp/scriptNot$ script -f otomatikDokumantasyon
Script started, file is otomatikDokumantasyon
ali@ali-laptop:~/temp/scriptNot$ pwd
/home/ali/temp/scriptNot
ali@ali-laptop:~/temp/scriptNot$ whoami
ali
ali@ali-laptop:~/temp/scriptNot$ ls /tmp/
domains genel.xls  gdl              kde-alisPik0Fj  
ksocket-alisSBnyBl  orbit-root  plugtmp-1   
Registration_Form_WBG.pdf  Tracker-alis.7358
fbug               hsperfdata_alis  keyring-YXOiJM  
 
ali@ali-laptop:~/temp/scriptNot$ exit
Script done, file is otomatikDokumantasyon

Yukarıda script komutunu başlattığımız nokta ile komutu CTRL+D tuş kombinasyonu aracılığıyla sonlandırdığımız nokta arasında oluşan ekran görüntülerini görüyorsunuz. Şimdi script komutunun yukarıdaki etkileşim sonucunda bizim için oluşturduğu otomatikDokumantasyon dosyasına bakalım.

ali@ali-laptop:~/temp/scriptNot$ more otomatikDokumantasyon
Script started, file is otomatikDokumantasyon
ali@ali-laptop:~/temp/scriptNot$ pwd
/home/ali/temp/scriptNot
ali@ali-laptop:~/temp/scriptNot$ whoami
ali
ali@ali-laptop:~/temp/scriptNot$ ls /tmp/
domains genel.xls  gdl              kde-alisPik0Fj  
ksocket-alisSBnyBl  orbit-root  plugtmp-1   
Registration_Form_WBG.pdf  Tracker-alis.7358
fbug               hsperfdata_alis  keyring-YXOiJM  
 
ali@ali-laptop:~/temp/scriptNot$ exit
 
Script done on Sun 18 Jan 2009 01:59:44 PM CET
ali@ali-laptop:~/temp/scriptNot$

Yukarıda gördünüz gibi script komutu terminalimize yazılan herşeyi bizim için kaydetti. Bir problemle uğraşırkan ayrıca kopyala&yapıştır aksiyonlarıyla kendimizi germemize gerek yok.

İyi çalışmalar.



16 January 2009

Sürekli Akan Logları İzleme


Eğer birşeyler ters gidiyorsa hemen loglara bakarız çünkü soruna ait bütün ipuçları oradadır.

Bazen bu logları oluştukları anda anında izlemek istediğimizde her linux kullanıcısının ilk öğrendiği komutlardan birini kullanırız

tail -f /var/log/messages

Ama bu komutun şöyle bir dezavantajı var loglar orda akıp giderken birşey gözünüze takıldı ne yapacaksınız ctrl+c ve logun akmasını keseceksiniz ya ekranda kalan kısımdan logun gördüğünüz kısmına bakmaya çalışacaksınız yada more yada vi gibi komutları kullanarak dosyanın içine girip o satırı aramaya çalışacaksınız.

Peki size bunun daha kolay bir yolu var desem. Evet less komutu. Nasıl mı kullanacağız? Çok basit.

less /var/log/messages

Shift+F tail -f ile aynı işi görür loglar akmaya başlar

Ctrl+C ile istediğiniz yerde logun akmasını durdurabilirsiniz

B ve F tuşları logun içinde ileri geri gitmenizi sağlar

Q ile işiniz bittiğinde logdan çıkarsınız

Logların siz komutu yazdığınızda direk akarak başlamasını istiyorsanız komutu aşağıdaki gibi kullanabilirsiniz.

less +F /var/log/messages

Yada daha önce yazdığımız Kendi Komutunuzu Oluşturun ipucumuzu kullanarak less +F için akanlog diye bir alias yaratabilir ve komutu direkt olarak

akanlog /var/log/messages

şeklinde de kullanabilirsiniz ;)



15 January 2009

Periyodik Olarak Bir Programı Çalıştırma ve Çıktısını Takip Etme


Sizin de hiç ihtiyacınız oldu mu bilmem ama bu tür bir şeye çok sık ihtiyacım olunca biraz araştırdım ve bu komutu buldum o günden beri de en sevdiğim linux komutlarından biri oldu.

Nasıl kullanılır?

watch [seçenekler] komut

-n Komutun kaç saniyede bir tekrar edileceğini, ekran çıktısının kaç saniyede bir yenileneceğini belirtir. Kullanılmazsa her 2 saniyede bir anlamına gelir.

-d Ekran çıktısında oluşan değişiklikleri beyaz olarak boyar böylece değişim olan yerleri daha rahat gözlersiniz

Ne için mi kullanıyorum?

  • Bir klasördeki dosya sayısındaki değişimi gözlemlemek için örn: postfix aktif kuyruktaki mail sayısını
    watch -d 'wc -l | ls -l'
  • Disklerin doluluk oranlarını gözlemlemek için örn: Kapasite sıkıntısı olan bir diskte log yazma oranı dengesiz bir proses çalıştırdığımda diskte yer sıkıntısı oluşmasın diye
    watch -d 'df -k'
  • Hafıza kullanım oranını gözlemlemek için
    watch -d 'free -m'
  • Bir klasöre muratz kullanıcısı ile eklenen yada silinen dosyaları gözlemlemek için
    watch -d 'ls -l | fgrep muratz'

Başka nerelerde kullandığınızı sizde bizimle paylaşırsanız sevirim.



14 January 2009

VM Imajının Kopyasını Aldım Ethernet Bağlanmıyor


Bu sıkça başıma gelen konulardan biri sizinle paylaşmak istedim. Bazen kullandığım vm imajını bir vmware serverdan (gsx) başka bir vmware servera taşıdığımda veya aynı vmware server üzerinde kopyasını aldığımda yeni imajın ethernet bağlantısı çalışmayabiliyor.

Bunun genelde sebebi ethernet kartının vmware tarafından yeniden yaratılmasıdır.

Eski kartı silip yeni kartı eklediğinden kartın id’si eth0′dan eth1′e değişiyor. Eğer ip tanımlarınız statik yapılmışsa /etc/network/interfaces dosyanızda da yeni ethernet id sine göre düzenleme yapmanız gerecektir.

O anki id’yi bulmanın en pratik yollarından biri de /proc/net/dev dosyasının içine bakmak. 

Bu dosyanın içi aşağıdaki gibi.

  Interface	Receive bytes	packets errs drop fifo frame
  eth0:		161543042	916321    0    0    0     0

Unutmayın eğer bu sorunla karşı karşıya iseniz; ifconfig komutu sisteme /etc/network/interfaces dosyasında tanıttığınız kartları gösterecektir. O yüzden siz ifconfig diye baktığınızda eth0′ı görürken /proc/net/dev altında eth1 görüyor olacaksınız.



Ubuntu VirtualBox ve KVM çakışma problemi


Virtualbox sanallaştırma uygulamasının son versiyonunu kurduysanız KVM çekirdek modulleri  yüklü makinalarda Virtualbox sanal makinalarınızı  ayağa kaldırmak istediğinizde aşağıdaki hatayı verip kapanacaktır.

VirtualBox can’t operate in VMX root mode. Please disable the KVM kernel extension, recompile your kernel and reboot.
VBox status code: -4011 (VERR_VMX_IN_VMX_ROOT_MODE).

Result Code:
0×80004005
Component:
Console
Interface:
IConsole {d5a1cbda-f5d7-4824-9afe-d640c94c7dcf}

Problemlemin çözümü için VirtualBox kullanacağınız zaman KVM çekirdek modullerini hafızadan kaldırmanız gerekecek.

Öncelikle hafızada hangi kvm modülünün yüklü olduğuna bakıyoruz.

$lsmod | grep kvm
kvm_intel              49728  0
kvm                   142912   1 kvm_intel

Hafızada yüklü olan kvm modülü işlemcinize bağlı olarak değişecektir. Intel tabanlı sistemimizde yüklu olan modül kvm_intel isimli modül.. Aşağıdaki komutla kvm modülünü hafızadan kaldırıyoruz.

sudo rmmod kvm_intel

Eğer VirtualBox’ı tekrar başlatırsanız sanal makinalarınızın sorunsuz olarak çalışmaya başladığını göreçeksiniz.

İyi çalışmalar.



13 January 2009

Sanallaştırma ve Beraberinde Getirdiği Sürprizler


Trendleri takip eden herkes yakından tecrübe ediyordur ki sanallaştırma ve faydaları her düzeyde konuşuluyor tartışılıyor. Son yılların en sıcak konularından biri, son 2 senedir de Türkiyenin gündemindeki ağırlığını her geçen gün arttırıyor.

Hemen hemen her şirkette  AR-GE çalışması, test sistemi olarak sanal makinalar uzun yıllardır kullanılıyor.  Son dönemdeki tartışmaların farklı boyutu sanal makinaların artık üretim ortamlarında kullanılmaya  başlanması.

Ne yazık ki heyecan dalgasına kapılıp sörf yapmaya başlayan IT yöneticilerimiz sadece artı eksi hesabının artı boyutuna bakıyorlar. Fakat madalyonun bir de diğer yüzü var.

Sanallaştırma sayesinde çok kolay yeni bir sistemi ayağa kaldırabiliyorsunuz. Var olan bir sistemin yeni bir kopyasını alabiliyorsunuz. Eğer belli bir planlama ve kontrol olmazsa (ki baslangıçta hiç bir sanallaştırma projesinde ne yazik ki olmuyor) göz açıp kapayana kadar organizayonun yapısına gore 10 larla veya 100 lerle ölçülen sanal makinalara ulaşmanız hiç de şaşırtıcı olmaz.

Sanallaştırma her fiziksel makinanın nerdeyse ayrı bir datacenter gibi davranmasına imkan sağlıyor.

Bu noktada sanallaştırma projesi gerçekleştiren veya gerçekleştirmeyi planlayan IT yöneticilerimizin kendilerine aklıma ilk gelen şu soruları sormaları gerekiyor.

Sanal makinalarınızın yama yönetimini nasıl yapacaksınız?
Eskiden Sanal makinaları barındıran fiziksel makinenin yamalarını yapmak zorunda kalırken sanallaştırma sonrasında bu fiziksel makine üzerindeki her bir sanal makinanın ayrı olarak yamanması gerekiyor.

• Sanal ortamlarda veri güvenliği konusunda ne kadar bilgi sahibisiniz?
Fiziksel makinanızı datacenter’a kilitliyorsunuz ama sanal makinanız ağ üzerinden datacenter dışına kaçabilir.

Sanal makinaların loglarını nasıl takip edeceksiniz?
Sanal makinalarınızın loglarını nasıl takip ediyorsunuz? Sanallaştırmanın sistem yöneticilerine getirdiği ekstra yük nedir? Yeni yasal düzenlemelere uyum kapsamında sanal makinaların kullanımı size ne gibi yükümlülükler getiriyor?

Her bir sanal makinadaki kullanıcı ve yetki yönetimini nasıl yapacaksınız?

Sanal makinalarınızın kaynak kullanımlarını nasıl izliyorsunuz?

Lisansların yönetimi nasıl yapacaksınız?

Yedekleme için ne tür bir altyapı düşünüyorsunuz?

Takip eden yazılarda her bir başlık için linux platformunda çalışan açık kaynak kodlu veya ücretsiz çözümleri, alternatif senaryoları incelemeye çalışacağız.

Sizlerin de bu konudaki görüş ve tecrübelerini duymaktan mutluluk duyarız.

Sanallaştırma tecrübelerinizi, ürettiginiz yaratıcı çözümleri duymak için sabırsızlanıyoruz.

İyi çalışmalar.



Dosyanın Sahipliğinin Değiştirilmesi


Eğer sizin de benim gibi root kullanıcısıyla çalışma takıntınız varsa (tüm yetki elimde olsun diye değil sadece sürekli sudo yapmayı sevmediğim için) dosya sahipliğiyle ilgili sıkça başınız ağrıyabilir.

Önce bir dosyanın sahipliğini görmek için ne yapmalıyız ona bakalım.

ls -l merhaba.c

Komutu çalıştırdığımızda aşağıdaki gibi bir sonuç elde ederiz.

-rw-r–r– 1 operator web1   151 2008-02-09 14:46 merhaba.c

Buradaki operator bize dosyanın kullanıcısını web1 ise dosyanın grubunu verecektir.

Şimdi aynı dizindeki başka bir dosya için aynı işlemi yapalım

ls -l selam.c

Aşağıda göreceğiniz gibi bu dosyanın kullanıcısı ve grubu root:root olmuş.

-rw-r–r– 1 root root 265 2008-02-09 14:56 selam.c

Benden sonra bu dosyaya operator olarak ulaşmak isteyen diğer kullanıcılar yetki hatasıyla karşı karşıya kalacak ve dosyayı açamayacak yada değişiklik yapamayacaklar.

Gelin şimdi bunu nasıl düzelteceğimizi görelim.

chown operator:web1 selam.c

Bu kadar kolay. Tekrar dosyayı kontrol ettiğimizde kullanıcısının ve grubunun değişmiş olduğunu görürüz.

ls -l selam.c

-rw-r–r– 1 operator web1 265 2008-02-09 14:56 selam.c

İyi Çalışmalar



12 January 2009

pidgin ile msn protokolü sorunu ve çözümü


15 numara MSN protokolünü kullanan tüm client’ların MSN’e bağlanamaması ile ilgili hatayı “libpurple” yerine “msn-pecan” kütüphanesini kullanarak aşabilirsiniz.

Ubuntu, Debian, Mint:

apt-get install msn-pecan

Archlinux:
Arch’ın depolarında yok ama AUR’da var,

yaourt -Sy msn-pecan

Daha sonra pidgin’den MSN protokolünü WLM ile değiştirirseniz sorun çözülecektir.
Kolay Gelsin.



10 January 2009

eDergi 5. Sayı Hazırlıkları Devam Ediyor


Yılbaşında 4. sayısını duyurduğumuz Pardus-Linux.org eDergi'nin 5. Sayısı için hazırlıklar devam ediyor. İlk sürprizimiz ise hazır : Bu sayımızda Özgür Yazılım Vakfı'nın kurucusu Richard Micheal Stallman'a gittik ve bakın bize ne dedi :
"I've heard it(Pardus) contains and promotes non-free software. That goes against the whole purpose of GNU, which is to give users freedom; it leads users astray."
İşte bu yüzden buradayız : "Pardus'un Özgürleşmesi!" Siz de hazırlıklara katılmak isterseniz buradan buyurun ;) Önceki sayılarımız için : www.pardus-edergi.org

07 January 2009

Pardus 2008.2 Beta Sürümü Duyuruldu


Pardus 2008.2 ‘ye giden yolda ikinci beta sürüm duyuruldu. Kullanıcıları deneme sürümde hatalarla karşılaşabilecekleri yönünde uyarıyoruz, indirmek isteyenleri kurulan cd için [1], çalışan cd için [2] adresine yönlendiriyoruz. [1] ftp://ftp.pardus.org.tr/pub/pardus/kurulan/2008.2 [2] ftp://ftp.pardus.org.tr/pub/pardus/calisan/2008.2/

Forum sunucu sorunu


Forum sunucumuzda oluşan bir disk problemi sebebi ile forumumuz belli bir süre devre dışı kalacaktır.

03 January 2009

Operatörler


Operatörler aritmetik operatörler, ilişkisel operatörler ve mantıksal operatörler olarak üçe ayrılır. Aritmetik operatörler matematiksel işlemlerde kullanılır. Ayrıca toplama (+) operatörü string değerleri birleştirir. Aşağıdaki tabloda Java ve Python programlama dillerine ait aritmetik operatörler bulunmaktadır.       Toplama Çıkarma Çarpma Bölme Mod Alma Java + - * / % Python + - * / %          İlişkisel operatörler programdaki iki değeri karşılaştırmak için kullanılır. Aşağıdaki tabloda Java ve Python programlama dillerine ait ilişkisel operatörler [...]

31 December 2008

Pardus-Linux.org eDergi 4. Sayı Yayımlandı


Pardus-Linux.org eDergi’lerinin 4. Sayısı uzun bir aradan sonra yayımlandı. Emeği geçen herkese teşekkür eder, dergiyi indirmek isteyenlere buradan[1] sunarız. [1] http://www.pardus-edergi.org

28 December 2008

Zemberek-server Firefox Türkçe yazım denetim eklentisi


Daha önceki bir yazıda Ahmet hunspell sözlükleri oluşturarak Firefox'ta yazım denetimi yapılabilmesi için olan çalışmalarından bahsetmişti. Şimdi ise uzun zamandır düşündüğüm ve yapılabileceğini bildiğim bir çalışma Rail ALİEV tarafından başlatıldı. Firefox, Thunderbird 3 ve Xulrunner 1.9 yeni yazım denetim motorlarının yazılabilmesine ve eklenti olarak paketlenebilmesine olanak veriyor. Bu alanda yapılmış olan örnek bir çalışma da var aslında. Voikko Fince yazım denetim kütüphanesi için mozvoikko adında bir eklenti var. Ancak bunun yapılabileceği bilinmesine rağmen daha önceden uğraşan olmamıştı. Rail ise tam da bu boşluğu doldurdu. Eklenti kodu şu anda Pardus ekibi tarafından geliştirilen ve Zemberek-server kullanan yamayı baz alıyor ve üstüne eklenti eklenti olarak paketlenebilmesi için gereken altyapıyı ekliyor. Şu an deneysel aşamada olsa da çalışır durumda. Eklenti Firefox eklenti sitesinden[1] indirilebilir, eklentinin kodlarına da SVN deposundan[2] erişilebilir. Rail'e eline sağlık diyor, Zemberek şemsiyesi altındaki çalışmalarının devamını bekliyoruz.

Not: Eklenti şu anda tamamen deneysel aşamada olduğundan testiniz ve geri bildirimleriniz ciddi katkı sağlayacaktır.

1: https://addons.mozilla.org/en-US/firefox/addon/10183
2: http://zemberek.googlecode.com/svn/trunk/mozzemberek/

14 July 2008

Denetim Deyimleri


3.5. DENETİM VE DÖNGÜ DEYİMLERİ 3.5.1. Denetim Deyimleri   Denetim deyimleri, koşulun mantıksal durumuna göre programın akışını değiştiren yapılardır. 3.5.1.1. If deyimi If deyimi belirli bir koşul sağlandığında yapılacak işleri belirlememizi sağlar. Java ve Python programlama dillerinde if deyiminin kullanımı [...]

16 February 2008

Matematiksel Fonksiyonlar


    Uzun zamandır blog’umuza yazı eklemiyorduk. Tezimizin içeirği hazır sayılır fakat tüm tezi siteye hemen ekleyemiyoruz. Ama matematiksel fonksiyonlar bölümünü eklemenin zamanı geldi.     Matematiksel fonksiyonlar programlama yaparken çeşitli matematik işlemlerini yapmamızı kolaylaştırırlar. Aşağıdaki tabloda Java ve Python programlama dillerine ait matematiksel fonksiyonlar yer almaktadır. İşlevi Java Python x argümanının mutlak değerini hesaplama abs(x) fabs(x) x’i kendisinden büyük en [...]

06 November 2007

Değişkenler ve Temel Veri Tipleri


Değişkenler, programlarda saklamak istediğimiz değerleri tutarlar. Programlama dillerinde değişkenler tutabilecekleri veri cinslerine göre sınıflandırılmıştır. Java’da değişken tanımlamak için eşitliğin sol tarafına değişkenin veri tipi ve değişkenin adı, sağ tarafına ise değeri yazılır. Açıklama : Örnek : int degiskenadi = değer; int a=4; Java programlama dilinde boolean, char, byte, short, int, long, float ve double temel veri tipleridir. Boolean mantık değişkenidir ve [...]

21 September 2007

2 Kere “Merhaba Dünya”


Bu siteyi bitirme tezimizin konusu olan “Java ve Python Programlama Dillerinin Karşılaştırılması” için oluşturduk. Arkadaşım Emel OKAY (japanese) ve ben Uğur SAMSA (JaMaL), bizler gelişme gösterdikçe, gelişmeleri buraya aktarıyor olacağız. Sitenin adresinin python-tr.com olmasına aldanmayın. Bu sitede Java da anlatılacaktır, Python da. Tezimizi erken bitirebilirsek Python ile bir uygulama yapmayı düşünüyoruz. Tabi bunlar zamanla olacak [...]

05 August 2007

Python’da Klavye Girişleri


Her programlama dilinde olduğu gibi klavye girişleri, kullanıcıdan bilgi alınmak istendiğinde kullanılır. Python’daki kullanımı şöyledir: karakter girişlerinde “raw_input”, sayısal değer girişlerinde “input” kullanılır. Şimdi de bunu örnekler üstünde görelim. Örnek 1 : –>raw_input(”yaz bir şeyler:”) yaz bir şeyler:Bugün hava çok güzel veya –>kelime=raw_input(”Bir kelime giriniz:”) #Kullanıcının yazdığını kelime adlı değişkene atadık Bir kelime giriniz:Bulut –>kelime #kelime adlı değişkenin değerini istiyoruz “bulut” Örnek 2 : –>input(”Bir sayı [...]

12 July 2007

Python’da Karakter Dizilerini Birden Fazla Satırda Yazmak


Yazımızı satırlar halinde yazarak görsellik kazandırmak istediğimiz durumlar vardır. İşte bunu yaparken Python’un bize sunduğu bir çok yoldan birini kullanabiliriz. Bunun nasıl yapıldığını her biri için örneklerle görelim. a => değişken olsun (Python’da değişkenleri kullanırken önceden tanımlama yapmamıza gerek olmadığını hatırlayalım) Örnek 1 : a=”Muhabbet bağına girdim bu gece\ Açılmış gülleri derdim bu gece” Örnek 2 : a=”Muhabbet bağına girdim bu [...]

11 July 2007

Java’da Sınıf Oluşturma


Java Programlama Dili’nde sınıf oluşturmak çok basittir. Tabi önemli olan bu sınıfı ne şekilde ve nasıl kullanacağımızdır. Aşağıda Java’da sınıf oluşturma kodunu görüyorsunuz. public class sinifadi{ //gerekli tanımlar } Burada “sinifadi” sınıf adının değişkenidir ve programcıya göre şekillendirilir. “public” komutunun buradaki amacı ise bilgilerin diğer sınıflar tarafından da kullanılabilmesidir.

08 July 2007

Python’da Değişken Tanımlamak


Aslında bu başlık yanlış, doğrusu “Python’da Değişken Tanımlamamak” olacaktı. Çünkü Python’da değişken tanımlanmıyor, değişkenlerin tipleri atandıkları ilk değere göre belirleniyor. Bu da bize kullanım rahatlığı sağlıyor. Değişkene değer atama yaparken sayıları direkt, string ifadeleri ise tırnak içinde yazıyoruz. Tek ya da çift tırnak kullanabiliriz, aynı anlama geliyor. Örnek 1 : değişken=değer a=5 b=”ali” k=’veli’ Örnekten anlaşılacağı gibi program a’yı integer, b ve [...]