MOZİLLA FiREFOX 3.6 KODLARINI DERLEME
09 Åžubat 2010 – 13:11 Yazar: adminMerhaba deÄŸerli okuyucular. Bu yazımızda hepinizin sıkça kullandığı internet tarayıcısı Mozilla Firefox 3.6 versiyonunu Windows Vista iÅŸletim sisteminde derlemeyi göstereceÄŸim. Tabii baÅŸlangıç için zor bir seçim olacaktır çünkü Firefox kaynağında binlerce satır kod barındırmaktadır ve bu kod üzerinde binlerce programcı çalışmaktadır. Bu yüzden kodlardan bir ÅŸey anlamamanız gayet normal. Daha küçük projelerden baÅŸlayabilirsiniz.
Sistem gereksinimleri:
*Pentium III veya ona eşdeğer bir işlemci, 1GHz ve üstü
* 512 MB RAM, 1 GB veya üstü
* 1.5 GB NTFS veya 3 GB FAT disk alanı, veya fazlası
* Windows 2000SP4 ve üstü
Gerekli yazılımlar:
*MicroSoft VC9 (Visual Studio 2008)
*Microsoft Windows SDK
*MozillaBuild
*7-zip veya Winrar
Linux’te program derleme işlemlerine aşina olanlarınız vardır.Kaynak kodunu açtığınızda karşınıza configure, install, readme, makefile gibi dosyalar gelir. Kaynak kodunu bu dosyaları kullanarak derleriz ve programın kullanımı hakkında bilgi sahibi oluruz. Temel olarak birkaç adım standarttır fakat Firefox için birçok ekstra işlem yapmak gerekir. Bu adımlar configure, build, install olmak üzere genelde bu sıra ile gider.
Önce benim kullandığım sistem hakkında fikir vereyim.
İşletim sistemim henüz hiçbir güncellemesi yapılmamış Windows Vista SP1.
Derleyicim MicroSoft Visual Studio 2008 Professional Edition.
Kullandığım SDK Microsoft Windows 7 SDK.
Bu yazılımlar ile test edilip Pentium T3200 2 GHz işlemci, 2 GB RAM ile toplam 1.5 saat sürmüştür. Dolayısıyla makale bu sistem baz alınarak yazılmıştır. Farklı sürümler ve işletim sistemleri için test etmediğimden sadece yüklemeniz gereken güncelleme veya yazılımların ismini vereceğim.
Bir Visual Sudio derleyicisi edindikten sonra bu linkten
|
http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-1.4.exe |
Tasarım Desenleri : Abstract Factory
24 Ocak 2010 – 18:45 Yazar: Volkan ALBAYRAKBu desen Factory Method desenine çok benzer. Amaç yine aynıdır. Sistemden nesnelerin oluÅŸma iÅŸini soyutlar. Abstract Factory benzer özellikleri olan nesne fabrikalarını gruplar. İçinde birden fazla fabrika vardır.
ÖrneÄŸimizde birden fazla türde database’de kaydetme ve sorgulama iÅŸlemlerini gruplamak için soyut fabrikayı kullanıyoruz : 
Kısaca kodlarına da bakalım :
Read the rest of this entry »
Tasarım Desenleri : Factory Method
23 Ocak 2010 – 20:38 Yazar: Volkan ALBAYRAKBu tasarım deseni nesne oluÅŸturma iÅŸini sistemden ayırır ve aldığı parametreye göre nesneleri oluÅŸturarak kullanıcıya geri döner.
Bir örnek verecek olursak düşünün ki gezmeye giderken farklı yöntemleriniz olsun. Ben ÅŸimdilik iki tane kullanacağım : Araba ve Bisiklet. Bu iki sınıf “Yöntem” arayüzümüzden türemiÅŸler. Bir adet de YöntemFabrika’mız var.
{
void Gez();
}
Araba.cs
{
{
MessageBox.Show(”arabayla geziyorum”);
}
}
Bisiklet.cs
{
{
MessageBox.Show(”bisikletle geziyorum”);
}
}
YöntemFabrikası.cs
{
{
return new Araba();
else if(opt==”bisikletle”)
return new Bisiklet();
return new Araba();//if’lere girmezse
}
}
ve kullanacağımız yer
Yöntem y = new YöntemFabrikası().yöntemYarat(parametre );
y.Gez();
Tasarım Desenleri : Singleton
23 Ocak 2010 – 20:31 Yazar: Volkan ALBAYRAKTürkçe’ye Tek Nesne olarak çevrilen bu tasarım desenindeki ana amaç bir nesnenin yalnızca bir kez oluÅŸturulabilmesidir. Buna neden ihtiyaç duyarız sorusuna gelince mesela bir baÄŸlantıyı dinleyen nesneniz olsun. Bunu ikince kez yaratmak kimi zaman sorunlara yol açabilir. Sonuçta bunlar sonsuz threadlerdir. Onun yerine bu nesne bir kez yaratılsın ve ihtiyaç duyulduÄŸu zaman daha önce oluÅŸan nesne oraya gitsin ve iÅŸlerini halletsin isteriz.
Şimdi biz bu örnekte bir adet RandomSayiVerici oluşturduk. Özellikle Random sınıfını kullandım çünkü özellikle yani başlan bir çok kişi bu sınıfın sürekli aynı sayı ürettiğini düşünüyor. Ama kaçırdıkları şey sınıfı sürekli baştan yaratmaları. Ve bunun bir döngü içinde olduğu düşünülürse mikro saniyeler seviyesinde sayı değişimi çok da fazla olmayacaktır. İstenilen yerde :
Windows 7 GodMode On
23 Ocak 2010 – 17:40 Yazar: Volkan ALBAYRAKHani oyunlarda ÅŸifreler olur ya bu da windows’un enteresan ve kullanışlı bir ÅŸifresi diyebiliriz. Yazdığınızda bütün ayarların tek bir elde toplanması bayağı bir iÅŸe yarıyor.
Şİmdi bir klasör oluşturun ve adını :
koyun. Göreceksiniz ki simgesi değişecek. İçine girdiğinizde ise normal yollardan bulunması çok zor olan bir çok ayar artık elinizin altında.
MasterPage Kavramı
20 Ocak 2010 – 01:29 Yazar: Volkan ALBAYRAKDüşünün ki 100′lerce sayfadan oluÅŸan bir siteniz var ve hepsinde belli yerler sabit. Örnek verecek olursak menüler genelde sabit olur ya da en altta yer alan açıklamalar vs. gibi. Bunların içinde bir yerde deÄŸiÅŸiklik yapmanız gerektiÄŸinde hepsini tekrar düzenlemeniz gerekiyordu önceleri. Fakat masterpage kavramının gelmesiyle bu sorun ortadan kalktı. Artık sabit olan tarafları masterpage içinde yaratıp normal içerik sayfaları bu masterpage’i kullanarak türeyebiliyor. Sanki yeni gibi anlatıyorum ama bu çıkalı bayağı bir oluyor
hemen küçük bir örnekle konumuzu özetleyelim :
MasterPage.master
Defalut1.aspx
Default2.aspx
Java ile Inheritance (Kalıtım) Yapma Örneği
17 Ocak 2010 – 01:56 Yazar: Basak KOLDASJava ile kolay bir kalıtım örneÄŸi yapalım. Car isminde bir arabanın sahip olabileceÄŸi temel özelliklere sahip bir ana class yaratalım ve bu classtan kalıtımla türettiÄŸimiz özelleÅŸmiÅŸ arabalar oluÅŸturalım. Öncelikle Car classımızı yazalım. Temel olarak bir arabaya hız, fiyat ve renk özelliklerini kazandıralım.
Â
public class Car {
   int speed;
   double regularPrice;
   String color;
  Â
//constructorda bu deÄŸerleri initialize edelim
   public Car(int speed,double regularPrice,String color){
       this.speed=speed;
       this.regularPrice=regularPrice;
       this.color=color;
   }
Â
//main fonksiyonunda arabanın fiyatına erişebileceğimiz bir metod yazalım
   public double getSalePrice(){ return regularPrice; }
Â
}
Â
Â
Daha sonra bu classtan türetilmiş kendi içinde farklı özellikleri olan farklı arabalar (subclasslar) üretelim.
Bir tane Car classını kalıtımla alan Sedan tipinde araba classı üretelim. Bu araba tipinde temel araba özelliklerinin yanında bir de uzunluğunu belirleyebilelim ve sedanın fiyatını, uzunluğu 20den büyükse 5% indirimli değilse %10 indirimli hale getirelim.
Java Swing Örneği
16 Ocak 2010 – 16:18 Yazar: Volkan ALBAYRAKKısaca bir bakalım neymiÅŸ bu “swing” kütüphanesi. Aslında windowsform’larda sıkça karşılaÅŸtığımız button, label vs. gibi objeleri barındıran bir kütüphanedir. Biraz da kodlayalım bakalım :
Â
 //Gerekli kütüphaneleri ekliyoruz
 import java.awt.EventQueue;
 import java.awt.FlowLayout;
 import javax.swing.JButton;
 import javax.swing.JFrame;
 import javax.swing.JLabel;
 import javax.swing.WindowConstants;
Â
 public class SwingExample {
    public static void main(String[] args) {
Â
       EventQueue.invokeLater(new Runnable() {
           @Override
           public void run() {
               //Penceremizi oluşturuyoruz
               JFrame f = new JFrame(”swing örnek”);
Windows DLL’leri ile Pencere Kontrolü
16 Ocak 2010 – 15:35 Yazar: Volkan ALBAYRAKÅžimdi asıl olay ÅŸu yaptığımız bir programdan diÄŸer açık olan program pencerelerini nasıl kontrol ederiz? Tabiki user32 DLL’i ile
[DllImport("user32.dll")]
public static extern int FindWindow(
string lpClassName, // class name
string lpWindowName // window name
);
Bu fonksiyon bizim açık olan programı buluyor ve bize onun Windows altındaki ID’sini veriyor. Tabiki “windows name” parametresine programın tam adının yazılması gerekli.
[DllImport("user32.dll")]
public static extern int SetForegroundWindow(
int hWnd // handle to window
);
Burası ise biraz önceki ID deÄŸerini alarak, bu ID’ye sahip olan pencereyi ön tarafa getiriyor.
[DllImport("user32.dll")]
public static extern int SendMessage(
int hWnd, // handle to destination window
uint Msg, // message
int wParam, // first message parameter
int lParam // second message parameter
);
Bu fonksiyonla ise açık olan pencereye mesaj gönderebiliyoruz. Mesela klavyeye dokunmadan notpad’i aktif yapıp oraya birÅŸeyler yazabiliriz ![]()
Gerisi sizin hayal gücünüze ve yapmak istediklerinize kalmış. Sormak istediğiniz bir şey varsa çekinmeyin hemen sorun. Mümkün olan en kısa sürede cevaplamaya çalışacağım.
İyi çalışmalar..