Erciyes Linux Dergisi



Benzer belgeler
İnternet Programcılığı

Php Programlama Dili MySQL Uygulamaları

İNTERNET PROGRAMCILIĞI HAFTA MYSQL - PHPMYADMIN. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Mysql Nedir.

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Php İle Mysql Veritabanından Bilgi Çekme

Açık Kaynak Kodlu Yazılım

BLGM 354 DENEY 1 * GİRİŞ

1.PROGRAMLAMAYA GİRİŞ

Öğr. Gör. Serkan AKSU 1

PHP 1. Hafta 2.Sunum

C# ile e-posta Göndermek

İşletim Sisteminin Temel İşlemleri

Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz.

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

Bu makalede 2003 sunucu, Windows 2003 Server anlamına gelmektedir. Aşağıda yapılan işlemler 2003 R2 sunucu üzerinde denenmiş ve çalıştırılmıştır.

RPMNET WOLVOX REPORTER

Bölüm 10: PHP ile Veritabanı Uygulamaları

MongoDB. Doğan Aydın. Eylül, 2011

Exchange Server Kurtarma (PowerControls)

HESAP MAKİNASI YAPIMI

İÇERİK YÖNETİM SİSTEMİ (CMS) Bir web sitesi yayınlamak için yapılması gerekenler:

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. 26 Şub Öğr. Gör.

Örnek bir kullanım ve bilgisayar ağlarını oluşturan bileşenlerin özeti

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Linux Kurulumu (Sürüm 1.52) İçindekiler


EndNote Web Hızlı Başvuru kartı

PHP ile İnternet Programlama

BİL BİLGİSAYAR PROGRAMLAMA (JAVA)

SUBVERSION VE TRAC A GİRİŞ

Veri Tabanı Yönetim Sistemleri Bölüm - 3

ÇANKAYA ÜNİVERSİTESİ WEBMAIL KULLANIM KLAVUZU

PHP I PHP I. E. Fatih Yetkin. 26 Eylül 2011

Spring Giriş Eğitimi

1. PROGRAM KURMA 1.1 LİNUX PROGRAMLARINI KURMA Yazılım Merkezi ile Program Kurma

Wolvox Kapı Ekranı. AKINSOFT Wolvox Kapı Ekranı Yardım Dosyası. Doküman Versiyon :

Bolum 9. Konu Başlıkları

JAVA API v2.0 Belge sürümü: 2.0.2

İNTERNET PROGRAMCILIĞI - II

OMNET Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

Veri Tabanı Yönetim Sistemleri Bölüm - 02

AKINSOFT. Eofis NetworkAdmin. AKINSOFT EOfis NetworkAdmin Kurulumu Bilgi Notu. Doküman Versiyon : Tarih : Copyright 2008 AKINSOFT

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

CYGWIN KURULUMU ve KULLANIMI

Kabuk Programlama (Bash)

08217 Internet Programcılığı I Internet Programming I

Android Ders Notları

İMAGE (SİSTEM GÖRÜNTÜSÜ) ALMA VE YÜKLEME NASIL YAPILIR. İmage nedir?

Yazılım/Donanım Farkı

1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA

Değerli Datasoft Kullanıcısı;

Temel Bilgisayar (Basic Computer) Yazılım (Software)

Openoffice.org Özgür Ofis Yazılımı

IceWarp kurulumu. IceWarp Server kurmanız için yapmamız gereken adımlar şunlardır:

Hızlı Başlangıç Kılavuzu

Sistem Nasıl Çalışıyor: Araç İzleme ve Filo Yönetim Sistemi

WAMP SERVER KURULUMU

ACCESS DERS Tablolarda Düzenleme

FABREKA YAZILIM ELEKTRONİK DANIŞMANLIK TİC. LTD. ŞTİ.

Kurulum 14 FTP ye Bağlanmak ve Dosyaları Atmak 14 Veritabanı Oluşturulması ve Bağlanıp Kurulumun Tamamlanması 15

BEUN VPN Hizmeti. VPN Nedir?

1. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

Üst Düzey Programlama

Bazı MSDOS komutları BAZI DOS KOMUTLARI

Microsoft SQL Server 2008 Oracle Mysql (Ücretsiz) (Uygulamalarımızda bunu kullanacağız) Access

Çalınan Laptopuzunun Peşini Bırakmayın!..

Veritabanı Uygulamaları Tasarımı

Java Programlamaya Giriş

Proticaret Exclusive Versiyon Yükseltme Dokümanı(v.3.0'dan v3.1.0'a)

ENFORMATİK Dersin Amacı

PROGRAMLAMA DERSİ 1. İNTERNET

Denetim Masası/Programlar/Windows özelliklerini Aç/Kapat

Subversion. KimTutarBizi bilgi takımı adına, Ahmet KAKICI

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

MOODLE UZAKTAN ÖĞRETİM SİSTEMİ

Coslat Monitor (Raporcu)

1. Hafta MS SQL Server 2008 Kurulum ve Tanıtımı BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: Kurulum:

PERKON PDKS Kurulum ve hızlı başlangıç rehberi

Turquaz. Açık kodlu muhasebe yazılımı Turquaz Proje Grubu

SGK Otomasyon Tanıtım ve Kullanım Kılavuzu

Genel Programlama II

JasperReports Server ve Ireport raporlama Sistemi Kurulumu / Kullanımı 1. Bölüm 2. Bölüm 1- JasperReports Server ve Ireport Nedir?

Bilindik engelleme yöntemlerinin dışında olan, kurumsal web filitreleri nasıl aşılır?

U y g u l a m a A i l e s i (Abakus 360, T-Panel, T-CRM) Tarayıcı Ayarları. IPera İletişim Teknolojileri

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

BİLGİ İŞLEM DERS 1. Yrd Doç Dr. Ferhat ÖZOK MSGSU FİZİK BÖLÜMÜ MSGSU FİZİK BÖLÜMÜ

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.

Fotolia Microsoft PowerPoint Eklentisi Kurulum Kılavuzu Versiyon 1.0


=A1+A2-A3, =A1*A2/A3,

JAVA PROGRAMLAMAYA GİRİŞ

Akademik Dünyada Özgür Yazılım. Akademik Dünyada. Onur Tolga Şehitoğlu

İnternet Uygulamaları. FATİH Projesi PARDUS Temel Eğitim Kursu

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Fotolia Microsoft Word Eklentisi Kurulum Kılavuzu Versiyon 1.0

Google Dokümanları Kullanmak

EYLÜL 2012 İŞLETİM SİSTEMLERİ. Enformatik Bölümü

vsphere Client(viClient) ile ESXI Kontrolü

GOOGLE DRİVE KULLANARAK FORM OLUŞTURMA

Transkript:

Erciyes Linux Dergisi 1

Erciyes Linux Dergisi Erciyes Linux Dergisi 6. Sayısı İçindekiler: Dergi Editörü Niyazi SIRT Dergi ve Kapak Tasarımı: Niyazi SIRT Gimp Yazarlar: Celil SIRMA Ümran ONAY İrfan EVRENS Niyazi SIRT Dergiye teşekkürler. özveri herkese göstererek yazan yazı Celil SIRMA: PHP İrfan EVRENS: Subversion Ümran ONAY: Office Savaşalrı Niyazi SIRT: C++ Ümran ONAY: Gimp 2 : 3 Subversion : 7 PHP : 11 C++ : 15 Office Savaşları : 18

Erciyes Linux Dergisi GIMP ile okuyup yazılabilen resim formatları: Dosya Formatı AA AVI BMP C FITS FLI GIF H HRZ HTML JPEG GIMP (GNU IMAGE MANIPULATION PROGRAM) MIFF Çoğumuz internet ya da yerel ortamlarda resimlerimizi kullanır, bunları editlemek MPEG ve esimlerimize bazı özellikler eklemek isteriz. Kuşkusuz bilgisayar kullanıcılarının PCX birçoğunun başvurduğu ve bilgisayarlarında bulundurduğu programlardan bir PIX tanesi de resim düzenleme programıdır. PNG Mevcut birçok resim düzenleme programlarından bir tanesi de GİMP dir. GNU PNM dünyasının bizlere armağanlarından bir tanesi olan Gimp, özgür yazılım PSD dünyasının iddialı ve gözde programları arasındadır. Linux un en gelişmiş grafik PSP programı ve esas kullanım alanı görüntüleri tasarımlamak ve düzenlemek olan PS Gimp in, çoklu platform desteği ile Linux, Windows ve MacOS işletim SGI sistemlerinde çalışan sürümleri vardır. SUNRAS TGA Gimp: TIFF WMF *Sürekli geliştirilen, açık kaynak kodlu, özgür XBM *Kullanıcıların zorlanmadan işlemlerini halledebileceği bir ara yüze sahip *Gelişmiş el yazısı desteği sunan XCF *Sınırsız sayıda ileri geri alma XDW *İstenilen değişimin, dönüştürme araçlarıyla yapılabildiği XPM *Hemen hemen grafik işleme ile ilgili bütün dosya biçimlerini destekleyen... *Farklı formatları birbirine dönüştürebilen *Seçim araçları ve eklenti desteği ile kullanıcı seçeneğini artıran özellikleriyle gücünü göstermiş bir yazılımdır. *Birçok dosya formatının desteklediğinden bahsetmiştik. Peki, nedir bunlar? 3 Açılımı ASCII ART Audio video interlave Bitmap C Source Flexible Image Trans. Sys. Autodesk FLIC Animation Graphics Interchange Format C header file Slow scan television Formatted table Joint photo exper group Magic image file format Motion picture exper group PC paintbrush Inset systems Bitmap Portable network graphics Portable anymap Photoshop document Paint shop pro PostScript Silicon graphics Sun raster Targa Bitmap Tagged image file format Windows Meta File X Bitmap GIMP Native X Windows Dump X Pixmap Okuma Desteği Yok Yok Yok Yok Yazma Desteği Yok Yok Yok Yok

Erciyes Linux Dergisi Kurulum: yeni yeni ilgilenmeye başlayanlar için güzel bir başlangıç ve hoş bir çalışma ortamı olacağını düşünüyorum. Bazılarının çok hoşuna giden, ilgi çeken bir uygulama olsa da bazı kullanıcılar için gereksiz görülebilmektedir. Grafiklerinizi ve fotoğraflarınızı " şekillendirebileceğiniz " diğer bir resim editörü olan Photosop u daha önce kullananlara bu ara yüz alışılması zor ve gereksiz gelebilir. Bu kullanıcıların, Gimp ortamında yabancılık çekmemeleri için Photoshop un Gimp e bürünmüş hali olan Gimpshop mevcuttur. Photoshop ile yapılan birçok şeyi Gimp ile yapmanız mümkündür. Fakat Photoshop u profesyonel anlamda kullananlar Gimp i yeterli bulmayabilirler. Ancak Photoshop ile yapılan hemen hemen birçok şeyi Gimp ile yapmak mümkündür. Kurulumda işimiz çok kolay. Paket yöneticinizle birlikte gelen Gimp i kurmak için paket yöneticinizden Gimp i buluyor ve paketi kur seçeceğiyle kurulum işlemini gerçekleştiriyoruz. Kurulumdan sonra sizi çok farklı bir ara yüz bekliyor. Farklı grafik düzenleme programları ile uğraşan kişiler bu ara yüzü çok farklı ve alışılmadık bulabilirler. Farklı karşılanabilir olmasının nedeni Gimp in çok parçalı yapıda olmasından kaynaklanmaktadır. Yazılımın ilginç olan yönlerinden bir tanesi de bu bence GIMP IN EN TEMEL YAPISI 1) Ana araç kutusu 2) Araç seçenekleri 3) Resim penceresi 4) Katmanlar diyalogu 5) Fırçalar/desenler/gradyanlar Yazılımın, kullanıcılara sağladığı farklılıklardan bir tanesi de belirli bir standardı olmamasıdır. Gimp, esnek yapısı sayesinde kullanıcılara, programı istedikleri şekilde modifiye etme imkânı sunmaktadır ve bu da her kullanıcının kendisine özel bir Gimp oluşturmasını sağlamaktadır. Görüntü tasarımı ve düzenlemeyle 4

Erciyes Linux Dergisi Bazı GIMP Uygulamaları * Basit Layer Çalışmaları * Flu Resimlerin İyileştirilmesi * Resim Ölçeklendirme * Tek Renk Tonları ile Çalışma * Resim temizleme * Basit duvar kâğıdı hazırlama GTK(GIMP Toolkit GIMP Araç Seti) Gimp programının yazılmasıyla geliştirilmeye başlanmış olan GTK, grafik ara yüzü oluşturmaya yarayan bir kütüphanedir. Nesneye yönelik olan GTK; Bir Gimp araç setidir. Özgür yazılımdır. Çoklu platform araç takımıdır. GNU projesinin bir parçasıdır. HTK, tamamen C dilinde yazılmıştır fakat sınıflar ve gösterici fonksiyonlar sayesinde birçok dile çevrilebilmektedir. Tasarımında geniş bir dil grubunun desteklenmesi amaçlanan GTK, C/C++, Perl ve Python ile hızlı ve etkili bir geliştirme ortamı sunar. ÖZELLİKLERİ Platformdan bağımsız İlk olarak Windows için geliştirilmiş olan GTK, daha sonra diğer sistemlerde de kullanılmaya başlanmıştır. Bugün kullanıldığı platformlar; 1. GNU/Linux and Unix 2. Windows 3. Mac OS X Kararlı Yüksek performansı ile uygulama geliştirebileceğimiz GTK, çok geniş bir topluluk tarafından geliştirilmektedir. Mobil GNOME bileşenlerinin mobil ve gömülü kullanıcı platformlarında kullanım, 5

Erciyes Linux Dergisi geliştirilme ve ticarileştirilmesi alanında ilerlemektedir. GTK, GTK takımı tarafından geliştirilmiş üç kütüphane üzerine kurulmuştur. Glib: C için uygun veri yapısını, çalışma zamanı işlevlerini, bağlı listeleri yönetmek ve işlemek için gerekli ek işlevleri içerir. Pango: GTK bu kütüphaneyi metin işleme ve çıktı işlemlerinin uluslararasılaştırılması içi kullanır. ATK: Erişilebilirlik için ara yüzlerin ayarlanmasında kullanılan kütüphanedir. Benzer yazılımlarından farklı ve hoş bir arayüze sahip Gimp ile eğlenceli ve başarılı çalışmalar dileğiyle Ümran ONAY umran@linux.erciyes.edu.tr 6

Erciyes Linux Dergisi Subversion Bu makalede Subversion'a [http://subversion.tigris.org] giriş yapacağız. Öncelikle bu aracın ne olduğundan bahsedeceğiz, sonra ne amaçla kullanıldığından ve bize ne gibi yararlar sağladığından bahsedeceğiz. Konuyu anlatırken örnek üzerinden anlatmaya çalışacağız. Örneğimizde Google Project Hosting [http://code.google.com] kullanacağız. Son olarak ise projemizi bir ekip ile yaptığımızda Subversion'ın bizim için ne kadar kullanışlı bir araç olduğundan bahsedip makeleyi bitireceğiz. Makale içindekiler 1 Subversion'a Giriş 1.1 Subversion nedir? 1.2 Subversion ne işe yarar? 1.3 Subversion'un faydaları nelerdir? 2 Subversion'ı Kullanalım 2.1 Kurulum aşaması 2.2 Google'da yeni proje oluşturalım 2.3 Projemizi bilgisayarımıza taşıyalım 2.4 Proje dosyamızı oluşturalım 2.5 Proje dosyamızı güncelleyelim 3 Sonuç 4 Kaynaklar 1.3 Subversion'un faydaları nelerdir? Subversion, bir projeyi ekip ile yapmak istediğinizde size bir çok kolaylıklar sağlar. Bunlardan en önemlisi ekibinizin projeye olan katkısını maksimum seviyede tutarsınız. Bir çok açık kaynak kodlu proje kendini yazılım konusunda özgür hisseden insanlar tarafından geliştirilmektedir. Bu yüzden proje çok sağlam ve güncel bir şekilde her an kullanılabilir bir yapıda gelişmesine devam etmektedir. İster bir ekip ile isterseniz de tek başınıza bir proje üzerinde çalışıyor olun, Subversion ile projenizde mutlaka kullanmaya çalışın. Çok küçük projelerde etkinliğini pek farketmeyebilirsiniz. Ama orta ve büyük ölçekli projelerinizde, farkı projenizin ilerleyen safhalarında mutlaka göreceksinizdir. Örnek olması açısından açık kaynak kodlu projelerin geliştirme ekiplerine katılabilirsiniz. 2 Subversion'ı Kullanalım 2.1 Kurulum aşaması Pardus paket yöneticisinden ''Yeni Paketleri Göster'' dedikten sonra, ''Ara'' kısmına ''subversion'' yazdığımızda subversion paketi listelenecektir. Paketi seçtikten sonra ''Paketleri Kur'' diyerek seçtiğimiz subversion paketini ve varsa bağımlılıkları kurulacaktır. Diğer işletim sistemleri için subversion kullanmak isterseniz, subversion'ın anasitesini [http://subversion.tigris.org/getting.html#binary packages] ziyaret edebilirsiniz 1 Subversion'a Giriş 1.1 Subversion nedir? Subversion ücretsiz ve açık kaynak kodlu bir version kontrol sistemidir. Yani projenizdeki kaynak kodlarınızın versiyon takibini otomatik yaparak, proje gelişimini somut olarak izleyebiliriz. 1.2 Subversion ne işe yarar? Projemizin geliştirilmesi aşamasında istediğiniz bir anda önceki versiyonlara kolayca dönebilirsiniz. Böylece projenizde geçmiş bir tarihe giderek çalışmanızın üzerinde sorunları düzenlemeye çalışarak fazla zaman harcamak zorunda kalmazsınız. 7

Erciyes Linux Dergisi Labels: örnek, java, jframe, subversion 2.3 Projemizi bilgisayarımıza taşıyalım Projemizi oluşturduktan sonra projemizi geliştirmeye başlayabiliriz. Projemizin bizi ilgilendiren kısmı şimdilik, http://code.google.com/p/ornek proje/source/checkout adresidir. Bu adres herkes tarafından ziyaret edilebilir ve projenin kaynak kodlarını alabilirler. Ancak bizden başka kimse proje kodlarımızı değiştiremeyecektir. Ancak projeye yeni kişi eklersek, eklediğimiz kişi proje üzerinde değişiklik yapmaya yetki kazanacaktır. Projemizi bilgisayara aktarmak için konsolda aşağıdaki kodu uyguluyoruz, siz kendi projeniz için gerekli adres değişikliğini yapmalısınız. Çünkü bu işlemde siz şifre sorulacaktır. Şifreniz; http://code.google.com/hosting/settings 2.2 Google'da yeni proje oluşturalım adresinde bulunmaktadır. Bu aşamada aşağıdaki kodu konsolda yazdıktan sonra <Enter> diyelim. Projenin kaynak kodlarını çekmek için şifre sorulacaktır. Google proje hosting servisini kullanmak için bir google hesabınızın olması yeterlidir. Üye olduğunuzu ve giriş yaptığınız varsayıp ilerleyelim. Öncelikle aşağıdaki sayfayı açıyoruz. Svn checkout https://ornek proje.googlecode.com/svn/trunk/ornek proje http://code.google.com/hosting Bu işlem neticesinde aşağıdaki gibi bir çıktı görmemiz gerekcek; ''Create New Project'' bağlantısı ile açılan sayfada projemizin bilgilerini giriyoruz. Örnek projemizin adları aşağıdaki gibi olacak. Checked out revision 1. Çıktının ifadesi projenin revizyon [projede yapılan değişiklik sayısı] numarasının 1 olduğudur. Project Name: ornek proje 2.4 Proje dosyamızı oluşturalım Summary: Bu proje örnek bir projedir. Projemizin bilgisayarındaki dizinine yeni bir ''Main.java'' dosyası oluşturun ve editörünüz ile açın. İçerisine; Description: Subversion ile ilgili bir makale yazarken örnek olarak bu projeyi yapmıştık. Bu projede Java ile bir JFrame'nin üzerindeki düğmeye tıklayınca "Merhaba Dünya" şeklinde bir mesaj veren uygulama yapacağız. //bu dosya projemizin ana dosyasıdır. şeklinde bir yorum satırı yazabilirsiniz. Böylece projemizdeki ilk dosyayı oluşturmuş olduk. Ancak şu an için sürüm takip Source code license: GNU General Public License v3 8

Erciyes Linux Dergisi import java.awt.event.mouseevent; import java.awt.event.mouselistener; sisteminin bu dosyadan haberi yok. Bunun için; svn add Main.java import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.joptionpane; Bu komut sonrasın ilk dosyamızı sürüm yönetim sistemine tanıtmış olduk. Bu işlem neticesinde aşağıdaki ekran çıktısını almamız gerekiyor; A public class Main { Main.java public static void main(string[] args) { Buradaki ''A'' nın anlamı, sürüm takip sistemine yeni bir dosya eklendiğidir. Bu dosyanın ise ''Main.java'' olduğunu görmekteyiz. JFrame benimframe = new JFrame("Başlık"); benimframe.setdefaultcloseoperation(jframe.exit_on_close ); Şimdi bu değişikliği google'a gönderelim ve proje ekimiz ve projeyi takip eden kullanıcılar ile yaptığımız değişikliği paylaşalım. Bunun için konsola; benimframe.setlayout(null); JButton benimbutton = new JButton("Tıkla Bana"); benimbutton.setbounds(20, 20, 120, 30); svn commit m projemizin ana dosyasını oluşturduk. benimbutton.addmouselistener(new MouseListener() { yazalım. Burada kullanılan ''commit'', projemizde değişiklik yaptığımız dosya ve dizinleri sunucuya göndermek istediğimizi bildirir. '' m'' ise '' message'' anlamındadır ve sonrasında gelen açıklama bu ''commit'' işlemini özetler nitelikte olmalıdır. Böylece bu ''commit'' işleminin neden yapıldığı ekipteki diğer kişiler tarafından daha kolay kavranacaktır. Bu işlem neticesinde aşağıdakine benzer bir çıktı almamız gerekiyor; Adding @Override public void mouseclicked(mouseevent e) { JOptionPane.showMessageDialog(null, "Merhaba Dünya"); @Override public void mouseentered(mouseevent e) { // TODO Auto-generated method stub Main.java Transmitting file data Comitted revision 2 @Override public void mouseexited(mouseevent e) { // TODO Auto-generated method stub Projemizin google'daki haline bakacak olursak aşağıdaki adresi kullanabiliriz; http://code.google.com/p/ornek proje/source/browse/trunk/main.java @Override public void mousepressed(mouseevent e) { // TODO Auto-generated method stub 2.5 Proje dosyamızı güncelleyelim Proje dosyamız üzerinde değişikliklere devam edelim. Örnek kodlar aşağıdaki gibi olabilir; @Override public void mousereleased(mouseevent e) { 9

Erciyes Linux Dergisi // TODO Auto-generated method stub 3 Sonuç Büyük projelerde revizyon numaralarına bakarsanız çok büyük olduğunu görürsünüz. Bunun anlamı kısacası, ilgili projenin geçmişinin ne kadar büyük olduğudur. Ne kadar revizyon o kadar kalite denilebilir. Tabi bu durum projenin ciddi bir proje olmasına bağlıdır. ); benimframe.add(benimbutton); benimframe.setsize(160, 100); benimframe.setvisible(true); Dosyamızı yeni hali ile kaydettikten sonra konsola; Bu tür araçları ekip ile kullandığınızda projenizin kalitesi ve ifade ettiği anlam farklı boyutlar kazanmaktadır. Etkinliği sağlayarak üretkenliği artırıp daha sağlam projeler geliştirebilirsiniz. svn status; 4 Kaynaklar komutunu uygularsak; http://articles.slicehost.com/subversion M http://www.yolinux.com/tutorials/subversion.html Main.java şeklinde bir mesaj alırız. Buradaki ''M'' ifadesi Main.java dosyasının değiştirildiğini ifade etmektedir. Proje dosyamızı yeni hali ile gönderelim ve 3. revizyonu yapalım. Bunun için; http://svnbook.red bean.com svn commit m projemizin ana dosyasını oluşturduk ve projemiz calışmakta http://code.google.com/p/ornek proje Bu işlem neticesinde ekranda aşağıdaki bilgilerin görünmesi gerekir; http://swc.scipy.org/lec/version.html http://showmedo.com/videos/series?name=bfni2x3xg http://tr.pardus wiki.org/nasil:subversion_kullan%c4%b1m%c4%b1 Sending Main.java Transmitting file data Comitted revisizon 3 İrfan EVREN irfan@linux.erciyes.edu.tr Böylece projemizin 3. revizyonunu da yapmış olduk. Proje dosyamızın son hali için; http://code.google.com/p/ornek proje/source/browse/trunk/main.java 2. ve 3. revizyonda yapılan değişikliklerin neler olduğuna bakmak için; http://code.google.com/p/ornek proje/source/diff?path=/trunk/main.java adresine bakabilirsiniz. 10

Erciyes Linux Dergisi PHP Daha önceki sayılarımızda yazmış olduğumuz Php konularında, Php' ye giriş yapmıştık ve formlardan gelen bilgileri farklı iki yoldan almıştık. Kısacası Php' nin temel konularına değinmiştik ve konular ilerledikçe detaylara da yavaş yavaş zamanı geldikçe değineceğimizi belirtmiştik. İşte o detaylardan bir tanesi de Php ile veritabanı kullanımı. Artık hemen hemen her web sitesinin olmazsa olmazı durumunda bulunan veritabanları kullanıcı ile etkileşimi artırmada kullanılan script dilleri sayesinde bize dinamik web içeriği sunmaktadırlar. Php denilince ve veritabanından bahsedilince aklımıza hemen Mysql gelmektedir. Artık bütünleşen, birbirinden ayrılmayan kardeş programlar olarak görülen Php ve Mysql ikilisi gerçekten de iyi bir performans gösterdiklerinden dolayı bu zamana kadar bu ikiliden kimse şikayet etmemiş ve güvenirlikleri de gün geçtikçe artmıştır. Ayrıca bu ikiliyi tam olarak bütünleyen diğer ekip elemanlarını da unutmamak gerekmektedir. Linux, Apache, Mysql, Php (kısaca LAMP) olarak adlandırılan bu grup gerçekten de iyi işler çıkartmışlardır ve çıkartmaktadırlar da... Mysql' de veritabanı oluşturmak ve yönetmek için Pardus depolarında görsel programlarını bulabilirsiniz. Ben size, bu işi Web arayüzü ile yapan phpmyadmin uygulamasını tavsiye ederim. Phpmyadmin ve Mysql' in nasıl kurulduklarını daha önceki sayılarımızda sizlere anlatmıştım. Hatırlamayanlar eski sayılarımıza tekrar göz atsınlar çünkü fazla zaman kaybetmeden hemen Mysql geçmek istiyorum. Başlamadan önce şunu belirtmem gerekir ki; burada sizlere Sql dilini anlatmayacağım ve Sql dilinin bilindiğini varsayarak anlatımıma devam edeceğim. Phpmyadmini kurduktan sonra tarayıcımızın adres satırına localhost/ phpmyadmin yazıp entera bastığımızda karşımıza phpmyadmin gelir ve bizden kullanıcı adı ve şifre sorar. Kullanıcı adımız varsayılan olarak root' tur. Kurduktan sonra herhangi bir şifre belirtmemişsek şifre yazmadan direk giriş yapılır. Size ayrıca phpmyadminin kullanımı da anlatmayacağım. Çünkü Sql bilen ve az çok veritabanı ile uğraşan bir kişinin hemen çözeceğine inanmaktayım. Hemen komutlarımıza geçelim... Php birçok veritabanına destek verdiği halde iyi anlaşmalarından dolayı en çok veritabanı fonksiyonunu Mysql' e vermiştir. Bu fonksiyonların birçoğu özel durumlar için kullanılırken yaklaşık olarak 10 tanesi sık kullanılan komutlar arasındadır. Php kullanarak Mysql veritabanına bağlanmak için; mysql_connect( localhost, kullanıcı_adı, sifre ); 11 komutu kullanılır. Burada adı geçen localhost kelimesi aslında web sunucusunun IP adresidir. Bizim Apache ile elde ettiğimiz host ip adresimiz ise aslında 127.0.0.1' dir. Localhost kelimesi ise aslında bu ip adresine karşılık gelmektedir. Diğer girdiler ise Mysql' e giriş için kullandığımız kullanıcı adı ve şifremizdir. Eğer Mysql' e herhangi bir şifre ataması yapmadıysanız şifre kısmı boş geçilebilir. Fakat sitenizi internette yayınlamaya başladığınızda ise böyle bir davranış güvenlik tehdidi oluşturacaktır. Mysql sunucusuna bağlandıktan sonra şimdi sıra veritabanımıza bağlanmaya geldi. Phpmyadmin içerisinden oluşturduğumuz örnek veritabanını burda kullanıma açalım: mysql_select_db( ornekveritabani ); Aklıma gelmişken burada hata mesajlarının denetlenmesi olayına da biraz değinmek istiyorum. Şöyle ki; eğer verdiğimiz komut Mysql sunucusuna veya veritabanına bağlanma sırasında herhangi bir sorunla karşılaşırsa kullanıcıya bir hata mesajı verir. Bu hata mesajını istersek kullanıcıya göstermeyiz veya istersek kendi yazacağımız mesajın gösterilmesinin sağlayabiliriz. Eğer komutlarımızın başına @ işareti koyarsak oluşabilecek herhangi bir hata durumunda hata mesajı kullanıcıya bildirilmez. @mysql_connect( localhost, root, sifre ); Burada eğer Mysql sunucusuna bağlanma sırasında herhangi bir sorun yaşarsak Php' nin vereceği hata mesajı kullanıcıya bildirilmez. Eğer hata durumunda bizim istediğimiz mesajın kullanıcıya gösterilmesini istiyorsak die komutunu kullanırız. Bu komut bizim belirttiğimiz mesajı ekrana basar ve Php' nin çalışmasını durdurur. Aynı şekilde kullanılan fakat herhangi bir mesaj vermeden sayfanın çalışmasını durduran diğer bir komut exit komutudur. @ komutu ise sayfanın işletilmesini durdurmaz sadece hata durumunda hata mesajının ekrana basılmasını önler. İleriye yönelik olarak bu komutların kullanımı yeri geldikçe anlatılacaktır fakat şimdilik die komutuna az biraz değinelim. mysql_connect( localhost, root, sifre ) or die ( Mysql sunucusuna bağlantı sağlanamadı ); Burada Php' ye şunu dedik: Mysql sunucusuna bağlan veya bağlantı sağlayamazsan şu mesajı ver ve sayfanın çalışmasını durdur. Hata durumunda ekrana sadece bizim belirttiğimiz mesaj yazar. Aynı şekilde veritabanına bağlanırken veya aşağıda belirteceğimiz diğer Mysql fonksiyonlarını kullanırken bu komutları kullanabiliriz. Mysql' e sorgu göndermeden önce örnek olması amacıyla basit bir veritabanı oluşturalım. Veritabanımızın ismi ornekdb olsun. İçerisinde ogr isimli tablomuz olsun ve bu tabloda no, name, surname, uni, city, age isminde

Erciyes Linux Dergisi 6 alanımız olsun. Bu veritabanına bağlanma ve sorgu gönderme işlemlerini şu şekilde sıralayabiliriz. bizim tablomuzda bulunan alanların isimlerinden başka bir şey değil. Bunun nasıl olduğunu tam olarak aklınızda canlandıramıyorsanız phpmyadmini açın ve herhangi bir tabloya tıkladıktan sonra gözat diyin. Nasıl ki veriler satır şeklinde alt alta görüntülenmişse mysql_fetch_array() fonksiyonu da verileri bu şekilde satır ve sütun şeklinde tablodan çekerek bize sunar. mysql_connect( localhost, root, ) or die ( Mysql sunucusuna bağlantı sağlanamadı ); mysql_select_db( ornekdb ) or die ( Veritabanına bağlantı sağlanamadı ); $sql = SELECT * FROM ogr ; @mysql_query($sql); Burada durumu biraz daha açmak gerekecek. Eğer yukardaki mysql_fetch_array() fonksiyonu tablomuzdan tek bir satırlık bilgi çekecelse bu şekilde kullanılabilir. Şayet geri dönen veriler birden fazla ise bu şekilde kullanmak işimizi görmeyecektir. Tablodan çekilen birden fazla satırı ekranda listelemek için while döngüsü kullanılabilir. Mysql sunucusuna ve veritabanına bağlandıktan sonra $sql değişkenine sql sorgumuzu yazdık ve bu sorguyu mysql_query() fonksiyonu ile çalıştırdık. Sql yazımında oluşabilecek herhangi bir hata durumunda ise kullanıcıya hata mesajı gösterimini engelleyen @ belirtecini ise fonksiyonumuzun başında kullandık. Kısaca Mysql' e sorgu göndermek için kullanacağımız komut mysql_query() komutudur diyebiliriz. Arada değişken kullanmayarak da sorgu gönderebilirdik; $student = @mysql_query($sql); while ($row = @mysql_fetch_array($student)){ echo $row[name] $row[surname] <br> ; Birden fazla satır sonucunun olduğu durumlarda while döngüsü bu yapıda kullanılabilir. While döngüsü sql sonucu geri dönen satır sayısı kadar döner ve bu satırlardaki name ve surname indislerindeki değerlerini ekrana basar ve <br> html tagı ilede her satırı alt alta yazar. Bu sonuçları daha net bir şekilde anlamanız için bu denemeleri kendiniz yapmalısınız. mysql_query( SELECT * FROM ogr ) or die ( sorgu gönderilemedi ); Burada yine tüm kullanıcı bilgilerinin tablodan çekilmesini sağlayan sorguyu gönderdik. Aynı zamanda hata durumunda da kullanıcıyı bilgilendirerek sayfanın çalışmasını da durdurduk. Yukarda belirttiğimiz mysql fonksiyonları en sık kullandığımız ve veritabanına bağlantı sağlamak ve basitçe veri çekmek için kullanılan fonksiyonlardır. Bunlardan başka sık kullanılan diğer mysql komutları ise şunlardır: Mysql' e sorgu gönderilmesi ile tablodan çekilen verilerin kullanıcıya gösterilmesi için mysql_fetch_array() fonksiyonunu kullanırız. Bu fonksiyon çektiğimiz alanları bir dizi gibi satır satır çekilmesine imkan verir. Örneğin yukardaki tablomuzu kullanırsak; mysql_close() Mysql bağlantısını kapatır. mysql_insert_id() Veritabanına herhangi bir kayıt eklendiğinde, eklenen son kaydın otomatik veri değerini verir. Bu otomatik veri değeri dediğimiz değer, tablo oluştururken primary key olarak belirttiğimiz alanın auto_increment ile otomatik artan sıra değeridir. mysql_connect( localhost, root, ) or cindekiler 4 Kaynaklardie ( Mysql sunucusuna bağlantı sağlanamadı ); mysql_select_db( ornekdb ) or die ( Veritabanına bağlantı sağlanamadı ); $sql = SELECT * FROM ogr ; $student = @mysql_query($sql); $row = @mysql_fetch_array($student); echo $row[name] $row[surname] ; mysql_num_fields() Veritabanındaki herhangi bir tablodan çekilen verilerin alan sayısını verir. Görüldüğü gibi ilk önce $sql ile oluşturduğumuz sql cümlesini mysql_query() ile çalıştırdık ve dönen verileri mysql_fetch_array() ile almaya çalıştık. Gelen veriler $row değişkenine aktarıldı ve yine aynı değişkenin dizi şeklinde kullanılmasıyla veriler ekrana yazdırıldı. Dizi indisi olarak verilen name ve surname değerleri mysql_num_rows() Çekilen verilerin toplam satır sayısını geri döndürür. mysql_error() 12

Erciyes Linux Dergisi öğrencileri numaraya göre //sıralayarak 0,20 arasındaki kayıtları çek. $sql = SELECT * FROM ogr WHERE uni = 'Erciyes' ORDER BY no LIMIT $x, 20 ; Mysql fonksiyonlarının kullanımında oluşabilecek hatalarda hata mesajı gösterimi için kullanılır. Mysql bağlantılarında ve sorgulamalarında kullanabileceğimiz mysql hata mesajları fonksiyonu mysql_error() fonksiyonudur. Bu fonksiyon daha önce kullanımını anlattığımız die komutuna parametre olarak verilebilir. //sql cümlesinde kullandığımız LIMIT $x, 20 ifadesi çekilecek verilere bir sınırlama //getirir. Bu şu anlama gelir; $x' nın değerinden itibaren başlayarak 20 kayıt çek. mysql_connect( localhost, root, ) or die (mysql_error()); mysql_select_db( ornekdb ) or die (mysql_error()); $sql = SELECT * FROM ogr ; $student = mysql_query($sql) or die(mysql_error()) ; //sorgumuzu çalıştırdık $student = mysql_query($sql) or die(mysql_error()) ; //çekilen verileri ekrana basalım while ($row = @mysql_fetch_array($student)) { //çekilen sonuç tablosundaki bu alanlara ait değerleri ekrana yaz ve bir //sonraki satıra geç. Son satıra yani 20. satıra ulaşınca while döngüsünden //çıkılır. echo $row[no] $row[name] $row[surname] $row[city] $row[age] <br> ; Özellikle tasarım ve test aşamasında bize çok yardımı olan mysql_error() fonksiyonunu yapılan uygulamanın test aşaması bitip son kullanıcıya teslim edileceği sırada kaldırılması ise yararlıdır. Çünkü herhangi bir hata durumunda gerek komutları ve değişkenleri gerekse veritabanımızın tablo ve alan adlarını açığa çıkarmasından dolayı son kullanıcıya bu haliyle değilde die( bizim hata mesajımız ) şeklinde hata mesajlarını bizim yazıp da vermemiz güvenlik açısından önemlidir. $x = $x + 20; Yukardaki örnek veritabanımızı ve tablomuzu birkaç örnek yapmak için kullanalım. Veritabanımız : ornekdb Tablomuz : ogr Alanlarımız : no, name, surname, uni, city, age Örneğimizde bu tablodan çekeceğimiz verileri sayfa başına 20 satır gösterecek şekilde 0 20 satırlarını ilk sayfada listeleyelim ve kullanıcı sonraki linkine tıklayınca bir sonraki sayfada 20 40 arasındaki satırları listeleyelim. /* sonraki 20 linkine tıklandığında $x değişkenimize adres satırı aracılığıyla k değişkenimizin değeri verilecek ve değeri 20 olacaktır. Sql sorgusuna girdiğimizde ise $x değişkenimizin değeri bu sefer 20 olacağından LIMIT $x, 20 değeri, 20' den itibaren 20 kayıt çeker ve 20-40 arasındaki kayıtları veritabanından çekerek kullanıcıya gösterir. */ echo <a href =\ listele.php?k=$x\ >Sonraki 20</a> ;?> Bir diğer örneğimiz ise php manual de bulunan bir örnek; <?php //mysql sunucusuna ve veritabanına bağlantı yapıldı. mysql_connect( localhost, root, ) or die (mysql_error()); mysql_select_db( ornekdb ) or die (mysql_error()); <?php // veritabanı bağlantısı yapıldı $link = mysql_connect("mysql_host", "mysql_user", "mysql_password") or die("could not connect : ". mysql_error()); echo "Connected successfully"; mysql_select_db("my_database") or die("could not select database"); /* listelemenin başlayacağı satır değerini belirten değişkenimiz. Bu değişkenin değeri adres satırından gelecektir. sayfamız ilk açıldığında tanımsız olacağı ve bu durumda sql de hata oluşacağı için tanımsız olduğu durumlarda değişkenin değerini varsayılan olarak 0 yaptık. */ $x = $_GET[ k ]? $_GET[ k ] : 0; /* Performing SQL query */ $query = "SELECT * FROM my_table"; $result = mysql_query($query) or die("query failed : ". mysql_error()); //ogr tablosunda yer alan Erciyes üniversitesinde okuyan 13

Erciyes Linux Dergisi while ($row = @mysql_fetch_array($student)) { echo $row[no] $row[name] $row[surname] $row[city] $row[age] <br> ; /* Burada dikkatinizi çekmek istediğim konu burasıydı. Php ve html komutlarının bütünleşik bir şekilde nasıl kullanıldığını buradan görebilirsiniz. Bu yapıyı detaylı incelemenizi ve bol örnek yapmanızı tavsiye ederim. */ echo "<table>"; while ($line = mysql_fetch_array($result)) { echo "<tr>"; foreach ($line as $col_value) { echo "<td>$col_value</td>"; echo "</tr>"; echo "</table>"; $x = $x + 20; echo <a href =\ listele.php?k=$x\ >Sonraki 20</a> ;?> include_once() veya aynı görevi yapan require_once() fonksiyonları dışardaki php dosyasını işlem yapılan dosya içerisine dahil etmede kullanılır. Böylece ortak kullanılan fonksiyon veya değişkenler her seferinde tek tek yazılmamış olur. Burada da mysql sunucusuna ve veritabanına bağlantı fonksiyonları import edilerek kullanılmıştır. /* veritabanından alınan sonuçların atandığı hafızayı boşaltır */ mysql_free_result($result); Php dili yapısı ve fonksiyonları hakkında detaylı bilgi almak için php manual kitabını kullanabilirsiniz. Bu kitaba internet üzerinden erişmek için şu linke tıklayabilirsiniz; http://www.monster submit.com/resources/docs/php/ Mysql fonksiyonları ve sabitleri hakkında bilgi almak isterseniz yine aynı dokümanın şu alt sayfasına bakabilirsiniz. http://www.monster submit.com/resources/docs/php/en/ref.mysql.html /* veritabanı bağlantısını sonlandırır. */ mysql_close($link);?> Son söylenecek söz olarak şunu da belirtmek isterim. Mysql sunucusuna veya veritabanına bağlanmak için kullandığımız komutları veya uygulamamızda kullanacağımız ortak fonksiyon veya değişkenler için her sayfada bunları tekrar tekrar yazmak yerine ortak kullanılan bir dosyaya bu komutlar yazılarak diğer dosyalara dahil edilir. Örneğin; Bir sonraki yazıda görüşmek dileğiyle... dahil_edilecek_ortak_dosya.php <?php mysql_connect( localhost, root, ) or die (mysql_error()); mysql_select_db( ornekdb ) or die (mysql_error());?> Celil SIRMA celil@linux.erciyes.edu.tr listele.php dosyamızın içeriği <?php include_once ( dahil_edilecek_ortak_dosya.php ); $x = $_GET[ k ]? $_GET[ k ] : 0; $sql = SELECT * FROM ogr WHERE uni = 'Erciyes' ORDER BY no LIMIT $x, 20 ; $student = mysql_query($sql) or die(mysql_error()) ; 14

Erciyes Linux Dergisi C++ Merhaba arkadaşlar yeni bir sayıda tekrar beraberiz. Bu yazımda pointerlarla ilgili basit örnekler, fonksiyonlara referans yoluyla parametre gönderme ve referans değer döndüren fonksiyonlardan bahsedeceğim. Ama önce şunu bildirmekte fayda görüyorum. Bu yazımızda itibaren gcc 4.3 kullanacağım ve gcc 4.3 sürümünden itibaren biraz değişiklik olduğunu söylemek istiyorum. Gcc 4.3 de bazı hataları gidermek ve çalışma zamanını artırmak için köklü değişiklikler yapıldı. Bu yüzden yazacağım kodlar gcc 4.3 ile uyumlu çalışacak şekilde yazmaya dikkat edeceğim. Ön bilgilerde verildikten sonra yazımıza başlayabiliriz. Öncelikle basitten zora doğru gidelim. Bir pointer değişken hem adresi tutabiliyordu hem de adresin işaret ettiği değeri tutabiliyordu. İlk örneğimizde ilgilendiğimiz dört adet değişkenimiz var. a, b, a_point ve b_point değişkenleri a ve b normal tanımlanmış değişkenler fakat diğerleri pointer değişkenler 11 16 satırlar arası a ve b değişkenlerimiz için dışarıdan değer istiyoruz. Aldığımız değerlerin adreslerini pointer değişkenlerimize aktarıyoruz. Artık aktardığımız adreslerin değerleri teorik olarak pointer değişkenlerin değerleri olması lazım. Bu durumun gerçekleşip gerçekleşmediğini 20 21 satırlarda yaptığımız toplama işlemleriyle kontrol ediyoruz. Normal tanımlanmış değişkenlerin toplamı t1 değişkenine aktarılmış ardından pointer değişkenlerin değerleri ve t1 değişkenin toplamı t2 değişkenine aktarılmış. 23 30 satırları arasındaki ekrana yazdırma komutlarıyla t1 ve t2 değişkenleri, a ve b değişkenlerinin adresleri, pointer değişkenlerin taşıdığı adresleri ve değerleri yazdırılmış. Bu arada dikkatinizi çekmek istediğim şey pointer değişkenlerinin taşıdığı adresler değişkenlerin kendi adresleri değil. Sadece hedefe ulaşmak için akıllarında tuttukları bir şey gibi düşünün. Böylece olayı daha çabuk anlarsınız. İkinci örneğimizde çok kullandığımız dizileri tanımlamak için kullandığımız isimlerin, aslında bir pointera benzer bir yapısı olduğunu vurgulamak 15

Erciyes Linux Dergisi Başlangıçta bir normal olarak tanımlanmış dizimiz birde pointer değişkenimiz var yukarıda da bahsettiğim gibi aslında diziye verdiğimiz isim, pointer değişken gibi davranan bir yapıdır. Dizinin ramde tutulacağı adresin başlangıcını tutuyor. Bu durumda dizi değişkenimize pointermış gibi davranacağımızı gösteriyor. Yukarıdaki örneğin ilk for döngüsünde dizimiz ilk değer atıyoruz. Ardından dizimizin adresini tutan dizi değişkenini pointer değişkenimize atıyoruz. Bundan sonra artık pointer değişkenimiz olan baslangic_point değişkeni dizinin adresleri ve değerleri ile ilgilenebilir pozisyona sokmuş bulunuyoruz. Bu durumu kabul edilebilir hale getirdikten sonra baslangic_point ile dizinin değerleriyle oynuyaruz. cout<<dizi[k]; koduyla diziyi yazdırdığımızda dizini değerlerinin değişmiş olduğunu görüyoruz. Referans Değişken Alan Fonksiyonlar Her programcının bilmesi gereken kestirme bir yol olarak tanımlayabiliriz bir fonksiyona referansla değer atamayı. Mesela yaptığımız bir programda bir değişiklik yapmamız gerekti, değişiklik yaptıktan sonra yaptığımız değişikliği beğenmedik ve yaptıklarımızı eski hale getirmek istedik nasıl yapacağız bunu. Referans yoluyla argüman atamayla. Referanslar bu gibi şeylerde kullanılabilir. Bu sadece bir fikir. Şunu bildirmek isterim ki her değişkenin kendine ait bir adresi bulunur. Pointerların bile başka değişkenlerin adreslerini tutmasına rağmen kendilerine ait bir adresleri vardır. İşte bu bilgiden yola çıkarak her scope arasında oluşturulmuş değişkenlerin değerleri dışardan gelmelerine rağmen içerdeki adresleri farklıdır. Yukarıdaki örnekte olduğu gibi referansatanmisfonk() daki i'nin değeri, ana fonksiyondaki i'nin değeri aynı fakat adresleri farklı. Uyarmak isterim ki referansatanmisfonk() isminden dolayı bu örnek referans yoluyla parametre örneği sanılmasın. Bu örnek sadece farklı scopelardaki derğişkenlerin farklı adresleri olduğudur. Bir fonksiyona referans yoluyla argüman yolladığınız da fonksiyona uğraşması için bir değer değil de pointer gibi bir şey vermiş oluyorsunuz. Bir pointerın uğraşılacak yani üzerinde işlem yapılacak neyi var? bir adres bir de o adrese denk gelen bir değeri var. Aslında bir de kendi adresi var ama biz onunla bir işlem yapmayacağız. Referanslarla işlem yapmanın yanı referansının argüman olarak yolladığınız değişkenin adresinin yanında değeriyle de oynayabilmeniz. Bu şöyle bir şeye neden oluyor teorik olarak bir fonksiyonun döndürdüğü değer 16

Erciyes Linux Dergisi birdir. Fakat biz fonksiyona referans gönderdiğimiz için değeriyle oynamış oluyoruz. İşte bu yüzden referans değişkenin sayısı kadar değer döndürüyor. bir olan dönüş değeri program yazarken kontrol açısında güzel olabiliyor. Arkadaşlar bu sayımızda elimden gelen bu kadar oldu. Umarım işinize yaramıştır. Bol kodlu günler dileğiyle kolay gelsin. Yukarıda ki örnekte gönderdiğimiz referanslar sayesinde ana fonksiyonda ki değişkenlerin değerleriyle oynadığımızı görebilirsiniz. Burada ana fonksiyonda tanımlanmış birsayi ve diğersayi değişkenlerinin adreslerini değiştir fonksiyonuna gönderiyoruz ve burada bu değişkenlerin değerlerinin yerlerinin değiştiriyoruz. Değiştir fonksiyonun içinde değerlerinin yerlerinin değiştirdiğimiz zaman ana fonksiyondaki değerleri de değişiyor. Çünkü degistir fonksiyonu ana fonksiyonda birsayi ve diğersayi değişkenlerinin adresleriyle ilintili. Sonuç olarak bu örnekte degistir fonksiyonunun iki adet dönüş değeri vardır. Aşağıdaki örnekte ise bundan biraz daha farklı bir durum söz konusu. Referans yoluyla argüman aktarılan fonksiyon bir dönüş değeri olması gerekiyor fakat referans yoluyla aktarılan argümanları içinde barındırdığı için bir dönüş değeri yerinde aktarılan referans argüman sayısı artı bir tane dönüş değeri vardır. Artı 17 Niyazi SIRT nyzsirt@linux.erciyes.edu.tr

Erciyes Linux Dergisi OPEN OFFICE Her yazılımın avantajları olduğu gibi muhakkak dezavantajları da vardır. Kullanıcılar bu yazılımları seçerken programların, sistem gereksinimlerini, avantajlarını, dezavantajlarını, yapacağı işlemleri ve bileşenlerini göz önünde bulundururlar. İsterseniz MS Office, Open Office ve Koffice programlarını bu özellikleri bakımından inceleyelim. KOFFICE MICROSOFT OFFICE Bilgisayar kullanıcılarının kuşkusuz olmazsa olmazlarından, onlara çalışmalarında kolaylık sağlayan, bilgisayar ortamında her daim dostlarından ve yardımcılarından birisi Office programı... Office programları, her bilgisayarda ve her kullanıcının elinin altında olması gereken önemli yazılımlar arasındadır. Uygulamalarınıza zenginlik ve görsellik katacak, sizlere tam manasıyla ofis ortamı sunacak ve işlerinizi halletmenize yardımcı olacak, her kullanıcının gereksinimlerine cevap verecek birçok ofis programı mevcuttur. OPENOFFICE.ORG Özgürce çalışabileceğiniz, işlemlerinizi yapabileceğiniz ve ihtiyaç duyulan yazılımları içeren Office paketi YAZILIMIN İÇERDİĞİ PARÇALAR OFFICE PROGRAMLARI OpenOffice.org Koffice Microsoft Office AbiWord Ability Office AppleWorks Applixware Office Ashampoo Ofis Axene Corel WordPerfect CrossOver Office EasyOffice 2001 Gnome Office GoBe Productive Hancom Office Lotus SmartSuite Ragtime Siag Office Softmaker Office StarOffice SOT Office TeX, LaTeX ThinkFree Office WordPerfect Office WorkDesk Office 602 Pro PC Suite Writer (Metin ve HTML düzenleyici) Calc (Excel tarzında bir uygulama) Draw (Vektörel çizim modülü) Base (Veritabanı istemi Impress (Sunum programı) Math (Formül düzenleyici) Neden bu yazılımı tercih etmeliyim diye düşünenler için işte cevap: 18 İlk söyleneceklerden bir tanesi açık yazılım oluşudur. Bu özelliği sayesinde sürekli gelişim ve değişim içerisindedir. Herkes kolayca ve ücretsiz edinebilir. Bu yazılım birçok platformda çalışabilmektedir.(linux, Microsoft Windows ve Sun Solaris) Office dosyalarını ve birçok belgeyi OOo ile açabilir, ister kendi formatında isterseniz de farklı formatlarda kaydedebilirsiniz. Bu sayede Microsoft Office, HTML, XML, WordPerfect biçiminde belgeler üretebilir ve bu türde oluşturulmuş belgeleri açabilirsiniz. Bileşenlerinin kullanım kolaylığı ve kullanıcı ara yüzünün sadelik ve görselliği ile yeni başlayanların kolayca kavrayacağı bit ortam sunması

Erciyes Linux Dergisi Biri Türkçe olmak üzere 40 ve hatta daha fazla dil ile kullanıcılarına geniş dil seçeneği sunmaktadır. Uygulamalar birbiri ile uyum içerisinde çalışmaktadır. Math ile hazırladığınız uygulamalarınızı rahatlıkla writer ile oluşturduğunuz belgelerde kullanabilirsiniz. Bir bileşenin diğer bileşenlerden etkilenmeden ayarlarının yapılabilmesi ile bileşenlerin birbirinden bağımsız çalışması Kivio Bu yazılımın özellikleri ve kullanıcıya kazandırdığı artıları nelerdir? SİSTEM GEREKSİNİMLERİ GNU/Linux Kernel versiyonu 2.2.13 ve glibc 2.2.0 Solaris sürüm 8 veya daha yükseği Microsoft Windows 98, Windows ME, Windows 2000 (Servis Pack 2 veya daha üstü), Windows XP veya Windows 2003 Kurulum aşamasında kullanılan geçici dosyalar(kurulumdan sonra otomatik olarak silinecektir) için 40 MB ile 80 MB arasında boş alan, 190 MB ile 250 MB arasında kullanılabilir alan, En az 256 renk modunda, 800x600 veya daha yüksek çözünürlükte ekran KOFFICE İçinde ofis yazılımı için gerekli tüm yazılımı barındıran, KDE için düşünülmüş bir ofis yazılımıdır. KOFFICE İN İÇERDİĞİ YAZILIMLAR: Linux ofis programlarının bir diğeri KOFFİCE, openoffice gibi açık yazılımdır ve ücretsizdir. Çok platformlu oluşu ile Unix/X11, Windows ve Mac OSX gibi platformlarda çalışabilmektedir. Koffice, bu üç farklı sistem için ayrı sürümlerine gerek kalmadan her platformda çalışabilme özelliği ile diğer ofis yazılımlarından kendini ayırıyor ve bu özelliği yazılımı farklı kılıyor. Önemli özelliklerinden bir tanesi ODF formatındaki dosyaları açıp yine bu formatta oluşturulan dosyaları kaydedebilmesidir. Text içerisine rahatlıkla resim ve sunumlar kaydedilebildiği gibi hareketli resimlere müzik de eklenebilir. MS Office ve OpenOffice ile hazırlanmış dosyalarınızı kolaylıkla açabilir ve png ya da pdf formatında kaydedebilirsiniz. Sistem gereksinimlerine bakmadan önce belirtmek istediğim bir nokta: Koffice programı Kde ile bütünleşik çalıştığından dolayı sisteminizde KDE nin kurulabilir olması gerekmektedir. KDE kurulum sırasında Koffice kurulumunun yapılıp yapılmayacağı sorulmaktadır. Yazılımın kurulmasını istediğiniz takdirde KDE ile birlikte Koffice de kurulacaktır. SİSTEM GEREKSİNİMLERİ KOffice Workspace Kformula Karbon14 Kword Krita Kspread KChart Kpresente Kugar Kexi 64 384MB RAM Unix/X11, Windows ve Mac OSX Peki, bu yazılımların eksiği yok mu derseniz tabi ki birçok yazılımda olduğu gibi bu yazılımlarda da eksikler(kimine göre eksik olarak görülmeyen) ve karşılaşılan sorunlar vardır. Elektronik potsa istemcisinin olmaması eksiklik olarak görülebilir. Destek alınabilecek formlar, elektronik kitaplar ve yardım dosyalarının tamamen Türkçeye çevrilmemiş olması da kullanıcılar için birer eksikliktir. OpenOffice.org birkaç eksiğiyle de olsa belirtilen avantajlarından dolayı birçok ev ve iş kurumlarında tercih edilen bir yazılımdır. KPlato MSOFFİCE 19

Erciyes Linux Dergisi MS OFFİCE yazılımının özellikleri: Zaman ve mekân gözetmeksizin birlikte çalışabilme imkânı Kullanıcıların birlikte daha kolay ve verimli bir şekilde çalışabilmesi İşletmelerin bilgiye kolay ve güvenli yoldan ulaşarak gerekli çalışmalarını etkili bir şekilde yapabilmesine olanak sağlaması Birçok ofis paketiyle kullanıcıların seçeneklerinin artırılması Çok çeşitli iş sorunlarının çözümünde rahatlıkla kullanılabilen, birlikte çalışan bileşenler sağlaması Kullanıcılara sağladığı ara yüz ile çalışmaların sorunsuzca ve kolaylıkla yapılabilmesi Microsoft Office Professional 2007 için sistem gereksinimleri: Microsoft tarafından yazılan Microsoft Office, Microsoft Windows ve Apple Macintosh işletim sistemlerinde çalışabilmektedir Microsoft Office Yazılımları 500 MHz ya da daha yüksek hızda işlemci 256 MB ya da daha yüksek RAM 1,5 GB(indirdiğiniz paketi diskten sildiğinizde alanın bir bölümü boşalacaktır.) CD ROM ya da DVD sürücü 1024x768 ya da daha yüksek çözünürlüğe sahip monitör Microsoft Windows XP Service Pack (SP) 2, Windows Server 2003 SP1 veya daha ileri bir işletim sistemi MS Office yazılımı, birçok kişinin tercih ettiği, kolaylıkla kullandığı ve çoğu isteğine cevap bulabildiği bir yazılımdır. Access Entourage Excel FrontPage InfoPath InterConnect Live Meeting MapPoint OneNote Outlook PhotoDraw PowerPoint Project Publisher Schedule+ Student Visio Wordpad OpenOffice ve KOffice yazılımları, MS Office in ücretsiz alternatifi olarak görülmektedir ve MS Office ile yapılan birçok şeyi bu yazılımlarla yapmak mümkündür. Seçeneklerin ve imkânların artması, işlerimizi son derece kolaylaştırmakta ve birçok soruna çözüm üretilmesini sağlamaktadır. Ofis programlarının çeşitliliği de kullanıcıların seçeneğini artırmakta ve onlara farklı ofis ortamları sunmaktadır. Tercih ettiğiniz yazılımla keyifli çalışmalar dileğiyle 20