Millet -nedense- Eclipse’i öve öve bitiremiyor. Bence çok uyduruk bir IDE. Neymiş, eklentilerle habire genişliyormuş. İyi de, herşeyi yapmaya çalışıp, hiçbirşeyi düzgün yapamayan bir aracı ne yapayım? Eğer Java kodu yazmak istyorsanız, NetBeans harika bir IDE, hatta RAD!

PHP IDE’lerin hepsini -Linux sürümleri olmayanları Windows altında denedim. Hatta, beleş ve PHP desteği de var diye, Aptana’yı kurdum. Aptana, çekirdek ve RAM’e doymadı ama, örneğin “f” yazdığımda, f ile başlayan kod tamamlama penceresinin açılması bir sigara içimi kadar vakit alıyor! 10 satır yazana kadar, başka bir dil öğrenmeniz olası.

Geany’den memnun kaldım.

Geany, epey uyduruk gibi görünen bir arayüze sahip; lakin kullandıkça, arayüzün akıllı tasarlandığını görüyorsunuz. Kodları çok iyi tarıyor ve örneğin fonksiyonları, değişkenleri ve diğer ıvır zıvırı, güzelce guruplayıp ekranın solunda gösteriyor. Kod tamamlama, bazen tuhaf şeyler yapsa da, sanırım PHP’deki her türlü ıvır zıvırı tanıyor ve Aptana’nın aksine ışık hızıyla çalışıyor.

Gelelim en sevdiğim taraflarından birine; kodu çalıştırmak için browser açmak zorunda değilsiniz. İtiraf edeyim, bunu tesadüfen keşfettim! Visual Studio’da F tuşları ile program çalıştırma-derleme-durdurma-step yapmaya alıştığım için, gayrı ihtiyari F5′e bastım ve kod küçük bir pencerede çalışıverdi! Süper.

 Kısacası, PHP için Visual Basic’inki gibi olağanüstü bir RAD ortamı aramaktan vazgeçin. ZEND’i denemedim ama zamanında 1500 dolar olan Komodo filan da Eclipse’e benziyordu. Geany, 1-2 saatlik bir alışma süresinden sonra her işinizi görür. HTML kodu da yazayım derseniz, Linux altında işiniz çok ama çok zor (imkansız demiyorum, kasan yapar ama açıkçası Dreamweaver varken diğer bütün editörler yalan)

Bir zamanlar, biryerlerde TWIX diye birşeyden bahsetmiştim. TWIX şu: Linux sisteminizin kontrol paneli ve “ince ayarları” yapan bir araç.

Pozitif Linux’a dair hödük ve salakça bazı tepkiler, bu ülkede işe yarar Bir şey yapmaya çalışmanın zevzekçe bir çaba olduğunu iyiden iyiye kanıtladı bana. Cuma gecesi, TWIX dosyasını tekrar açtım ve yepyeni bir proje haline getirdim. Birsürü tasarım planım da değişti.

TWIX’de artık GAMBAS ve shell scriptlerinden eser yok. GAMBAS ile yazdığım kodu, hard disklerden birinin kuytu bir köşesine atıp yeni baştan başladım. Bu sefer, PHP ile. Bunun bazı avantajları var: Sistem gereksinimleri çok az, web tabanlı uzaktan kontrol mümkün ve artık AJAX sayesinde güzel görünen akıllı arabirimler oluşturmak çok da zor değil.

Zordan başlayıp, ağdan girdim. Bir miktar kod yazdım; açıkçası şu an yazdığım kod, beni bile şaşırtan bir hızda çalışıyor. Şu an itibariyle, sistemin tüm ağ ayarlarını okuyup, belli koşullara göre ayarları sorunsuz yapabiliyorum (network kısmından bahsediyorum tabi). Şimdilik memnunum; çünkü KDE ile gelen denetim masasından ya da SUSE ile gelen YAST, ya da Mandriva tabanlı dağıtımlarla gelen DRAK’tan daha iyi çalışıyor. Öte yandan, çok ciddi bir sorun var…

Sorun şu: Linux ortamında, sayısız özel ayar olası. “Ne gibi?” derseniz çok kısa bir cevap vereyim; örneğin bir ethernet kartına birden fazla IP adresi atayabilirsiniz. (Şimdiye kadar gördüğüm kontrol panelleri bunu yapamıyor) Örnekler çok ama şu an verecek ruh halinde filan değilim; bu sorunu wizard’lar sayesinde aşacağım.Açıkçası başka pratik bir yolu da yok; zira Linux’un ağ kısmı, dipsiz ve karanlık bir kuyu. Üstüne üstlük, konfigürasyon dosyaları tam bir mezbelelik. Aşırı plansız, düzensizler. Bu konuda, KDE geliştiricilerini -kısmen- kutluyorum. KDE’nin yapılandırma dosyaları son derece kötü -hatta hiç- dokümente edilmiş olmasına rağmen, resmen askeri nizama sahip! Dolayısıyla, TWIX’in KDE ayarları modülünü yazmak, benim için tatil gibi Bir şey olacak.

Fazla detaya girmek istemiyorum, çünkü şu aşamada elimde çalışan 7 tane, tamamen sıfırdan yazdığım fonksiyon var. Bunları düzgün bir arabirimde bir araya getiremedim, çünkü tasarım konusunda hayli zayıfım. (Kendi yaptığım deneysel arabirim çok uyuz göründüğü gibi, adam gibi de çalışmıyor; ama PHP tabanlı yönetim kodları işlerini mükemmel ve hızlı yapıyorlar) Üstelik, JavaScript’e herzaman şüpheli baktığım için, AJAX güçlü olduğum bir konu değil. Keşke GFXDesign gibi üstadlar bir el atsa!

Arada birkaç “eşantiyon” PHP fonksiyonu da yazdım, bunlarda CPU bilgisi, PCI kartlar gibi bilgileri topluyorlar. Aslında bunları PhpSysInfo projesinden araklamayı düşünmüştüm; ama yazdıkları kodu anlayana kadar, yenisini yazmak daha kolay ve hızlı oldu.

Amaçlarımı, gelişmeleri ve kodu ayrı bir sayfada -muhtemelen pozitifpc.com altındaki başka bir subdomainde- hem İngilizce, hem Türkçe olarak anlatacağım zaten. Yurtdışından katılım bekliyorum; zira kod çok temiz, basit anlaşılır oldu. Yapı içinde aynısını söyleyebilirim; ama web sayfalarının tasarımı beni kasacak. Temiz bir template sistemi ve okunabilir AJAX -Javascript- kodları için, ya kendimi bu alanda bir miktar eğitmem, ya da bu becerilere sahip birini bulmam gerekecek.

Neden PHP?

Aslında Python’da daha iyiyim. (Son PHP kodunu yazdığımda, sanırım 2000′de bile değildik!) Ama Python’u sevmiyorum ve bir kontrol paneli için, yanlış bir seçim. Zibilyon tane Python modülünü, ister Debian olsun, ister Red Hat tabanlı olsun, herhangi bir dağıtım altında sorunsuz ve az yer kaplayacak şekilde kurmak haddinden fazla zor. PHP çok daha az yer kapladığı gibi, Zend ile birlikte kullanıldığında, Python’a nal toplatıyor (bunu birgün söyleyebileceğimi hayal bile edemezdim!)

Üstelik PHP bilen daha çok insan var ve düzgün, “enterprise” düzeyde modül ve fonksiyonlara sahip. Pythoncular kızmasın ama bana biraz oyuncak gibi geliyor.

Bir başka alternatif Perl idi, Perl’e çoğu insanın olduğu gibi, benim de kanım ısınmadı. Üstelik, Perl bilgim çok sınırlı. Perl’in bir sıkıntısı, dağıtımlar arasındaki kurulumunun Python’dan daha problemli olması. Örneğin, Mandriva, kendi kontrol paneli başka dağıtımlarda çalışmasın diye, uyduruk Perl paketleri hazırlamış. Mandriva Control Center’in çok kısıtlı bir kısmını, Ubuntu üzerinde, deveye hendek atlatarak (Perl’in logosu da deve,ne tesadüf!) çalıştırmayı başardım. Bu kayda değer bir başarı da değildi; üstelik Mandriva Control Center’ın çalışma hızı, devenin yürüyüş temposu civarında.

YAST da ayrı bir macera. Birileri, YAST2′yi Ubuntu üzerinde çalıştırmak için 2 sene harcamışlar ve aldıkları mesafe ürkütücü derecede az. Kısa bir denemenin ardından, YAST sevdasından da vazgeçtim. Kaldı ki ayar modülleri filan çalışsa bile, RPM ile entegre olan kısımları yeni baştan yazmak gerek; zira RPM ile kullanılabilen fonksiyonları, böyle kapsamlı bir program içinde DPKG ile çalışır hale getirmenin kısa ve kolay bir yolu yok.

PHP ile hazır gelen sayısız modül olsa da, TWIX ile bunların çoğunu kullanmayacağım. Hatta, hazır gelen bazı fonksiyonları bile kullanmayacağım. Mümkün mertebe, standart fonksiyonları kullanmanın bariz avantajları var; kodu herkes anlıyor, kaynak sıkıntısı yok, kurulum paketi küçük oluyor ve genelde daha hızlı çalışıyor. Şimdiye kadar, kaçamadığım bir tek Regular Expressions oldu; bir de KDE için XML kütüphanelerini kullanmayı planlıyorum. Amacım, Mandriva Control Center ya da SUSE’nin YAST2’si aksine, 100 MB gibi bağımlılıklar gerektirmeyen, 3-5 MB tutan, ama herşeyi yapabilen bir kontrol paneli yazmak. Web tabanlı yönetim ve embedded cihazlarda bile kullanılabilecek kadar küçük olması en büyük avantajları (tabi embedded cihazlarla çalışması için 300K’lık browser, lighthttpd ve JavaScript’in çıkarılması gibi modifikasyonlar gerekecek; şu an için iki sürümü paralel götürebilirim gibi görünüyor)

Debian, Ubuntu, Kubuntu ve Pozitif Linux, apt-get ya da synaptic ile depolara bağlanıp paket indiremiyorsa, bunun oldukça sofistike bir nedeni olduğunu söyleyeyim. Aslında çözümü çok basit ve çok sık sorulan sorulardan biri bu.

ubuntu apt-get ve synaptic sorunu 1.0.0.0Komik gelebilir, ama sorun kullandığınız ADSL modem / router ile ilgili. Eğer Linux tabanlı bir ADSL router/modem kullanıyorsanız, içinde muhtemelen dproxy adında bir program çalışıyordur. Dproxy, eğer linux makinanızda DHCP çalışıyorsa, DNS adresi olarak router’ın kendi IP adresini yolluyor. Buraya kadar bir sorun yok; zira bu hatanın karakteristik özelliği, Firefox gibi programlarla Internet’e bağlanabilirken, apt-get ve synaptic’in çalışmamasıdır. Aslında sorun biraz apt-get kaynaklı.

Üstesinden gelmekse kolay:

sudo nano /etc/resolv.conf

komutuyla, resolv.conf dosyasını açın. Ubuntu kullanıyorsanız muhtemelen nano yüklü değildir, gedit gibi başka bir editör kullanabilirsiniz.

resolv.conf dosyasında DNS sunucularının adresleri bulunmaktadır. Tüm DNS sunucularını silin ve eğer ADSL kullanıyorsanız, şu satırı ekleyin:

nameserver 195.175.39.39

Dosyayı kaydedin ve çıkın.

Şimdi, bilgisayarınıza DHCP’den IP almak yerine, sabit bir IP vermelisiniz. (Eğer DHCP kullanmıyorsanız dokunmayın!)

sudo ifconfig eth0 192.168.1.3 netmask 255.255.255.0        

192.168.1.3 yerine, router adresiniz ile aynı subnette olan ve kullanımda olmayan bir IP vermelisiniz. Sözgelimi, eğer router adresiniz 192.168.3.4 ise, IP adresi yerine 192.168.3.5 gibi bir sayı verebilirsiniz (router’ın kendi adresini ya da ağınızda mevcut herhangi bir IP adresini vermeyin; IP çakışması olur)

Son olarak, yaptığımız ayarların geçerli olması için, network servisini tekrar başlatacağız (IP adresini değil de, sadece resolv.conf’u değiştirdiyseniz bu işleme gerek yok!)

sudo /etc/init.d/networking restart

 

Bu işlemleri, KDE ya da GNOME altında denetim masasından da yapabilirsiniz. (Ekranda görüldüğü gibi)

*Eğer Türk Telekom dışında bir ADSL hizmeti alıyorsanız, ya da dialup bağlanıyorsanız, kullandığınız servisin DNS adreslerini öğrenerek buraya geçerli bir DNS adresi yazmalısınız. Eğer yazdığınız DNS adresi doğru değilse, Internette hiçbir yere bağlanamazsınız. Sorun değil; DNS adresini bulmak üzere tekrar Internet’e çıkmak için, demin girdiğimiz nameserver yerine, ADSL modem/router adresini yazın. Bu genelde, 192.168.1.1′dir, ama marka ve modele göre değişiklik gösterir. Örneğin, 10.0.0.1 gibi adresler kullanan routerlarda mevcut.