Gogs ile Kişisel GitHub-benzeri Depo Kurmak

 

Versiyonlama ve kod deponuz için, ya da emekleyen projeleriniz için özel bir depo mu istiyorsunuz? Buna ekstra para vermek içinizden gelmiyor mu? Self-hosted servislere meraklı mısınız, size daha mı çok güven veriyor? GitHub ‘daki kodunuzun bir kopyasını yerel tutmak mı istiyorsunuz? Sadece Git iyi güzel, ama hoş bir arayüzün, kullanım kolaylığının, ekstra fonksiyonların eksikliği hissediliyor mu sizde de? Demek ki kendi GitHub ‘unuzu kendiniz kurmanın vakti gelmiş. Üstelik -hemen hemen- tüm avantajlarıyla birlikte!

Bu işi yapabilen birden çok yazılım var, tüm ihtiyacımız olan ise 7/24 açık bir sunucu. İlla dışarıdan bir hizmete gerek yok, ben bunun için kendi Raspberry Pi sunucularımı kullanıyorum. GitLab ve Gogs, self-hosted GitHub kurmak isteyenler için iki büyük alternatif, ikisi de hızlı gelişiyor ve kendi çapında popüler. GitLab bu işte fonksiyonel anlamda sanki bir adım daha önde, ama konu RasPi gücünde bir sunucuda bu işi yapmaya gelince Gogs ‘un eline kimselerin su dökebileceğini sanmıyorum, üstelik son derece de temiz arayüzlü ve stabil. Bu sebeple ben Gogs ‘u tercih ettim ve tercihimden çok memnun kaldım, herkese de öneriyorum.

Peki Gogs ile neler yapabiliyoruz? Gogs son derece kolay şekilde GIT depoları oluşturmaya ve paylaştırmaya imkan tanıyor, çok sayıda kullanıcının aynı anda kullanması mümkün, sosyal araçları da buna hazır. Elbette bu depoları ve commit kayıtlarını görselleştirebiliyor, diff (fark) alabiliyor, dosyaları görüntüleyebiliyor, kolayca paylaşmaya da imkan tanıyor. Sadece bunlar da değil, diğer Git depolarında -misal GitHub- tuttuğunuz kodunuz için yansı depolar oluşturup belli aralıklarla yedekleyebiliyor, depolarınız için Issue Tracker (Kayıt Takibi) sunabiliyor, kodun belli bir durumundan Release oluşturmanıza imkan tanıyor ve muhtemelen benim sayamadığım daha bir çok işi yapıyor. Daha da güzeli, bütün bunları Raspberry Pi 2 üzerinde ışık hızında, hiçbir yavaşlama olmaksızın yapıyor. Daha ne isteyebilirsiniz ki bir Git sunucusundan? Bana kalırsa self-host etmeye istekli her geliştiricinin alet çantasında çoktan yerini almasını gereken bir çözüm Gogs, desteklerinizi de bekliyor. Türkçe dil desteğinin de Crowdin.com üzerinde topluluk desteğiyle sağlanmaya çalışıldığını ve yardımcı olabileceğinizi belirtmekte fayda var. (Henüz %30 civarı bitmiş çevirinin, bu haliyle resmi diller arasında yer almıyor)

Gogs ‘un geliştirilmesi ben bu satırları yazarken süratle devam ediyordu, adından ipucunu alabileceğiniz üzere Go dilinde geliştiriliyor. Fonksiyonel eksikleri olmasına rağmen stabil çalışması, temiz arayüzü ve hızıyla bitmiş bir ürün hissini çok iyi veriyor, ki özgür yazılım projelerin genellikle aşil topuğu burası olur. Gelecek major sürümde benim farkına vardığım tek eksiklik olan Wiki fonksiyonunun da eklenmesi planlanıyor, ihtiyacınız varsa şimdilik bunun için ayrı bir depo, veya DokuWiki gibi hafif bir çözüm değerlendirebilirsiniz.

İlginizi çektiyse gelelim Raspberry Pi üzerinde biraz zahmetli kurulumu ve birkaç ufak tefek ayarına:

Devamını oku…

Pushbullet nedir? SSH ve Transmission ile Pushbullet Kullanmak

pushbullet

Pushbullet, tamamen ücretsiz bir push notifikasyon servisi. Google hesabınızla kayıt olup giriş yapabildiğiniz Pushbullet sayesinde, bir metni, dosyayı ya da bağlantıyı, birden çok tanımlı hedefe ulaştırabiliyorsunuz, kendi bildirimlerinizi yapabildiğiniz gibi, bu sayede tarayıcınızdan iPhone ‘unuza bir dosya göndermek de son derece kolay.

Ben Pushbullet ‘i kendi push notifikasyonlarım için aylardır kullanıyorum, bir bildirim oluşturduğunuzda bu bildirimi, Pushbullet sizin için bir iPhone ‘a, Android ‘e, Windows ‘a, Firefox tarayıcıya veya ağdaki başka bir arkadaşa ulaştırabiliyor. Tabii asıl kullanışlılık sizin Pushbullet.com ‘a girip oradan diğer cihazlarınıza bir şey  göndermenizle oluşmuyor, asıl kullanışlı olduğu yer, API sayesinde otomatik bildirimler oluşturabilmeniz.

Kendi kullanım alanlarımdan örnekle, aşağıdaki durumlarda bir bildirim iPhone ‘uma gönderiliyor:

  • SSH üzerinden bir bağlantı kabul edildiğinde
  • Sunucu üzerindeki bir servis başarısız olduğunda
  • Transmission üzerinden bir Torrent ‘in indirilmesi tamamlandığında
  • Belli aralıklarla IP kontrol edilip, sunucunun IP’si değiştiğinde

Bunlar sadece birkaç örnek, bunlar gibi pek çok bildirim oluşturabiliyorsunuz. Mesela SMARTD, bir diskinizde sorun tespit ettiğinde bildirim alabilirsiniz, ya da herhangi bir yazılımınıza entegre ederek olaylardan haberdar olabilirsiniz, bir RSS feed ‘i takip edebilirsiniz, kargo takibinize entegre edebilirsiniz, gibi.

Bunun için ben, aşağıdaki örnekteki gibi, bir curl komutu kullanıyorum, tek komutta bildirim gönderilmiş oluyor:
Devamını oku…

Bir Harfi Fazla Yazmak ve PHP5 Oturum Çöp Toplayıcısı

1778_large

Bugün, MeeGo Türkiye’ye göz attığımda bir gariplik fark ettim. Forum başlıklarının tasarımı bozuk görünüyordu. Tabii bu durumda ilk suçlayacağınız muhtemelen tarayıcıdır. Önce bir CTRL + F5, sonra da iPhone ‘dan girdiğimde tasarımdaki aynı sıkıntı hala önümde duruyordu.

Bu noktada yönetici hesabıma giriş yaptım. Daha iyisi, ben giriş yapar yapmaz sağ barın kaybolduğu gibi sayfalar da bozuldu. İşte buradan sonra o can sıkıcı yarım saati okuyorsunuz:

İlk önce Drupal ‘in Cache temizleyicisini denedim. Birkaç dakikalığına işe yaradı da, sonra yeniden bozuldu. Daha sonra Drupal ‘in tüm hataları ve olayları kaydettiği DBLOG ‘a (Yakın zamanlı kayıtlar) ‘a girdim. DBLOG ‘un avantajı, sunucunuza giriş yapıp logları elle kontrol etmeden, buradan PHP hata kayıtlarını görebiliyor oluşunuz. Burada kolaylıkla dikkat çeken PHP hatalarından birine tıkladığımda ise:


taxonomy.module dosyası 21 satırında Can't create/write to file '/tmp/#sql_36a_0.MYD' (Errcode: 28)

Devamını oku…

How Linux is Built

The Linux Foundation tarafından yapılmış, kısa, çoğumuzun bildiği ama yine de ilginç bir çalışma. Böyle daha çok materyal olsa, daha iyi anlatılsa ya Linux.

Casablanca | Raspberry Pi için Yönetim Paneli

casablancacasablancadev
Casablanca, Raspberry Pi için PHP tabanlı bir yönetim/izleme paneli. Kendi Pi ‘m için, PiWWW tabanlı (Atouk ‘un) yazmıştım, paylaşmaya karar verdim. MySQL, veya ekstra bir başka şey gerektirmiyor. Yalnız ilk kurulumda yapmanız gereken bir takım düzenlemeler var, bunları README dosyasında bulabilirsiniz, hatta söylemek gerekirse; o dosyayı okumazsanız Casablanca çalışmayacak. Panel kendi kullanımım için olduğundan menülerde ve arayüzde sizin işinizi görmeyecek şeyler olabilir (sol tarafi Status barında ve üstteki menülerde özellikle), kolayca değiştirmeniz mümkün.

Özellikleri:

  • Parola korumalı
  • Sunucu/Port durum bilgisi
  • Syslog, Message-log, Services çıktısı, tüm PHP oturumlarını sonlandırma
  • Sistem bilgileri: Genel durum, Uptime, Sistem ısısı, CPU/OS/USB bilgileri, DMESG çıktısı, Hafıza kullanımı ve en çok kullananlar, GPIO durumu (Atouk  ‘un, WiringPi gerektirir), Ağ durumu, Disk kullanımı, Turbo durumu, Voltajlar, Frekanslar, Kodekler.
  • Javascript ile yenileme (Sayesinde 3 satır daha JS öğrendim)
  • Tatlı görünüyor olması, bu da bir özellik

Geliştirmeler, yamalarınız ve bilgi almak için: İletişim

Koda ulaşmak için: svn.aranelsurion.org/casablanca

Sublime Text 2: Hayalimdeki IDE

Arabalara, balıklara, hatta posta pullarına ilgi duyabilecekken, evet şu bir gerçek ki benim hobilerimden biri IDE’ler. Hatta bazı günler, ortaya bir iş çıkarmaktansa sadece açıp onların arayüzüne bakmak, sağını solunu kurcalayıp çalışmayı takdir etmek geliyor içimden. Öyle ya, rahatınıza düşkünseniz, hesap makinesi yazmak için bile, a ile b ‘yi toplamak için bile rahat bir koltuğa, 23″ er inç iki ekrana, üst seviye mouse/klavye ikilisine, hızlı bir bilgisayara ve Linux’unuzun üzerinde koşan sağlam bir IDE’ye ihtiyaç duyabiliyorsunuz. Her ne kadar göze takım elbiseyle araba tamir etmek gibi gelse de gerçek bu, uğraştığınız işi eğlenceli bir aktiviteye dönüştürmenin yolu, içine birazcık lüks katmaktan geçiyor.

Sadece bunlar da değil, sanırım bugüne kadar piyasaya çıkmış, bir şekilde birileri tarafından kullanılmış çoğu editörü denemişimdir; NetBeans, Geany, Eclipse, Qt Creator (bunun amacı farklı tabii), hatta Kate, Nano ve kısa süreliğine Vim de, bunların arasına Windows ‘da kullandıklarımı, bir gün kurcalayıp attıklarımı, bugünlerde yeni yeni sayıları artan WebIDE ‘leri de eklerseniz, evet, IDE kurcalamak bence bir hobi. En azından geçen birkaç haftaya kadar böyle düşünüyordum.

Ve sonra.. Ve sonra hayatıma Sublime Text girdi, anladım ki IDE değiştirmek bir hobi değil, bir arayış. Yukarıda saydığım kamyon yüküyle editör, pek çok farklı amaca ve kullanıcıya hizmet peşinde, Nano bu listedeki belki de en özelliksiz, sade editörken, NetBeans ‘in özelliklerinin %10 ‘u kadarını keşfettiğimi sanıyorum. Hepsini bağlayan ortak nokta nedir? Hepsi kötü görünüyor! Yazılım da yazsanız, roman da yazsanız (niye romanı bir editörde yazacağınız bu yazının konusu değil) bu editörlerin arayüzleri bir felaket. Üstelik hepsi çok ağır, açılışları da, çalışmaları da, hantallığı illa ki hissediyorsunuz. Hantal olmayanları da neredeyse hiçbir özelliğe sahip değil, şanslıysanız sentaks renklendirme yapıyorlar sadece, gerisi size kalmış. Sadece bunlar da değil, bu editörler kendi aralarında kamplaşmış gibiler, ya özelliksizler, ya da korkunç karmaşık arayüzleri ve işlevsellikten tamamen uzak yaklaşımlarıyla özelliklerini kullanasınız gelmiyor bile.
Devamını oku…

myTinyTodo ile Yapılacakları Yönetmek

Yaklaşık 3 gündür, yapılacak listesi sorunuma bir çözüm arıyordum. Bunun bir sorun halini almasının asıl sebepleri; hem N9’daki TO-DO uygulamalarının yetersizliği, hem de benim bu alanda hiçbir çözümü tam olarak benimsememem oldu. Uygulamaların kimi yetersiz, kimi fazla yeterli/karmaşık, kimisi de fazlasıyla “fantastik” geldiler ki, kendi basit liste tutma amacıma hizmet ettiremedim bunları. myTinyTodo ise, şimdiye kadar bulduğum en iyi çözüm, ve her anlamda işimi görüyor. Peki, yapılacaklarımızın listesini tutacaksak, neden myTinyTodo?

myTinyTodo, basit bir PHP betiği. Sunucunuza kurup, dileğinize göre SQLite veya MySQL üzerinden kullanabiliyorsunuz. İlk avantajı da burada, diğer bir çok çözümün aksine, Web ‘de çalıştığınız için platform-bağımsız çalışabiliyorsunuz, üstelik tüm veriler sunucunuzda saklanıyor, ve kodlar açıkta olduğu için kendinize göre bir yön verme şansınız mevcut. Son derece basit bir kurulumdan sonra, myTinyTodo ile hemen çalışmaya başlamak mümkün, üstelik oldukça da yetenekli.

  • Ayrı listeler ve etiket mümkün. İsterseniz benim gibi, tüm yapılacaklarınızı Genel adında bir listede toplayabileceğiniz gibi, çok yapılacak işiniz varsa, bunları farklı listelere dağıtabiliyorsunuz. Daha önemlisi, her yapılacak notunuza bir etiket verip, etikete göre arama yapabiliyorsunuz. Mesela “Blog”, “MeeGo”, “ITStuff”, “Angarya” gibi etiketler yaratıp, basitçe sadece angaryaları, veya blog işlerini takip edebiliyorsunuz.
  • Bütün yapılacak maddelerine bir deadline verebiliyor, öncelik belirtebiliyorsunuz. Verdiğiniz bitiş süresi size “3 gün içinde”, “yarın” gibi mantıklı kelimelerle sunuluyor. Önceliklerde ise daha da mantıklı bir şekilde, +2, +1, 0 ve -1 seçenekleri mevcut. Böylece neyin önemli olduğunu bildiğiniz gibi, neyin önemli olmadığını da bilip, dikkatinizi dağıtmamış oluyorsunuz. İsterseniz maddelere not eklemeniz de mümkün.
  • Yapılacaklar size son derece sade bir arayüzde, gerekli her şeyi (öncelik,madde,bitiş tarihi ve not) tek satırda, renklendirilmiş şekilde veriliyor. Anlamak için bir bakış yeterli.
  • Listelerinizi isterseniz parola korumalı hale getirebiliyorsunuz, ayrıca yine isterseniz, bazı listeleri halka açık hale getirmek, hatta RSS üzerinden besleme vermek de mümkün. Böylece, kapalı kapılar ardında kalması gerekmeyen işlerinizi, etrafınızdakilerle paylaşmanız mümkün hale getirilmiş.
  • MyTinyTodo ‘nun harika uyumlu bir mobil versiyonu da var, http://kurulumunuz.com/?pda yapıp, akıllı cihazlarınızdan bu kullanımı son derece kolay arayüze erişebiliyorsunuz ki, büyük bir artı. N9 için konuşursam, şimdiye kadar gördüğüm en iyi TO-DO web arayüzü bu yazılımda. Daha da iyisi, arayüzün tamamı dinamik, sayfalar arasında gezinmiyorsunuz. Üstelik eklediğiniz yeni maddelerde “/” işaretiyle akıllı özellikler kullanmak mümkün. Mesela, “/+1/ MyTinyTodo’dan bahset /Blog/” yazıp, Blog etiketine +1 öncelikte bir madde eklemek mümkün.
  • Bunların dışında, myTinyTodo, isterseniz yapılacaklarınızı sıralama ve CSV veya iCalendar olarak dışa aktarma yeteneğine de sahip. Türkçe dil desteği de myTinyTodo ‘da mevcut.

Özetlemek gerekirse; myTinyTodo son derece sade, pratik, oldukça fonksiyonel ve de güvenli. Üstelik senkronizasyon derdiniz olmadığı gibi, mobil kullanmak da mümkün.

Beni myTinyTodo ‘ya kadar getiren yol oldukça sıkıcıydı, açıkçası MTT ‘ye de fazla güvenmemiş, kurduktan sonra kendime göre yeniden dizayn etmeyi düşünüyordum. Biraz kullandıktan sonra, işin gerçeği şu ki, bu küçük web yazılımında ihtiyacım olan her şey, fazlasıyla iyi düşünülmüş ve entegre edilmiş bile!  myTinyTodo,  yaklaşık 1 yıldır yeni sürüm vermemiş olmasına rağmen, benim nezdimde en başarılı TO-DO uygulaması.

Demo ve indirmek için:  myTinyTodo.net

Python Mechanize ile Hayatı Kolaylaştırmak

3-5 satır Python yazmayı bilen herkesin ilk öğrenmesi gereken şey, bana kalırsa Mechanize kütüphanesi. Mechanize hem hızlı, hem etkili, hem çok kolay hem de Python üzerinde kullanıyorsunuz, ki bu da onu daha da kolay yapıyor. Peki nedir Mechanize? Mechanize, -daha çok benim onu kullandığım ve öğrendiğim haliyle- web tabanlı işlemlerinizi, 10 satırlık kodlarla otomatikleştirebileceğiniz bir araç. Tamamen metin tabanlı, sisteminize en ufak bir etki etmeden, bir tarayıcıymış gibi sayfalara bağlanıp, istediğiniz yerlere tıklıyor, formları doldurup gönderebiliyor.

Kullanım alanları neredeyse limitsiz. Mesela bir veriyi sürekli kontrol etmeniz gereken bir sayfa var, Mechanize ile otomatik bağlanıp o veriyi her seferinde kontrol ettirebilir, basit bir Python koduyla değişmeleri günlükleştirebilir, kendinize mail atabilir, wall komutu (ve KDE’nin wall komutlarını okuması) yardımıyla tek satır kodla uyarı kutuları oluşturabilirsiniz. Sadece değişimleri takip etmek ya da bir  veriyi okutmak değil, onu bir monitoring aracı olarak da kullanabilirsiniz. Ya da sizin için ısrarla bir sayfayı zorlayıp, formları doldurmasını sağlayabilirsiniz, mesela dershanelerde, üniversitelerde vardır bu, gecenin bir saati açılan sistemlere uyumaksızın girip ders almak. Mechanize sizin için gecenin bir saatine kadar bekler, defalarca kez ardı ardına dener ve diğer adaylar tek tek formu doldururken, formu saniyede doldurup gönderir, ne isterseniz onu almış olursunuz. Ki bu da neredeyse her daim çöken devlet sitelerinde sizin baş yardımcınız olabileceği demek oluyor.

Bunlar sadece bazı örnekler. Bir başka örnek olarak, benim N900 için yazdığım VodaSMS, Mechanize  yardımıyla Vodafone’un sitesine giriş yapıp bedava SMS hizmetini tüm o menüler, reklamlar arasında dolaşmadan tek tıkla yapabilmenizi sağlıyordu mesela. Bu basit bir örnek, isterseniz mechanize ile fatura detaylarını okutursunuz, isterseniz onu bir site için istemci yapmakta kullanırsınız. Gzip sıkıştırma, cookieler, HTTP refresh gibi badireleri sorunsuz atlattığı gibi, isterseniz User-agent ‘ı bir satırla değiştirir, kendisini bir Firefox veya Chrome olarak göstermesini sağlarsınız ki, ısrarlı denemeleriniz loglarda göze çok batmasın. Örnek arttırılabilir, bir web örümceği de yapmaya çalışabilirsiniz, YemekSepeti’nden sipariş de verdirebilirsiniz.

Övülebilecek daha çok yanı var, sağolsun hayatımı birden fazla kez kurtardı şimdiye kadar, göz önünde olmayışına daha  fazla izin veremezdim. Mechanize ile ne yapılamaz/yapması 10 satırdan fazlasını alır derseniz, aşırı JavaScript’li sayfalar, Flash, CAPTCHA gibi olaylar mechanize’ın kabiliyet alanının dışına çıkıyor. En büyük artısı, neredeyse hiç zamanınızı almadan, masal yazar gibi kod yazıp hayat kurtaran sonuçlar alınabilmesi, ki benim Python ‘a bakış açım zaten bu yönde olduğu için, ne kadar memnun olduğumu anlatmaya kelimeler yetmez. Hazırda karman çorman bir örnek olarak VodaSMS ‘in kodlarını inceleyebilirsiniz,  Vodafone Türkiye sitesini değiştirmediyse halen çalışıyor olmalı.

PTT E-Posta ile Kargo Takip Betiği

PTT’nin kargo durumunu belirten e-posta bildirimleri yok. Haliyle paketinizdeki değişikliklerden haberdar olmanız için sizin sürekli olarak takip yapmanız lazım, çünkü bilgilendirilmiyorsunuz. Ben de PHP’de ufak bir şey yapmak istedim bunun için, hayatımdan 15 dakikayı CURL ve fwrite(),fopen() için harcamış oldum, sonra onları birleştirip ufak bir betik yaptım. Betik şuan yurtdışı PTT gönderilerine ayarlı, barkod kısmına numaranızı, $to değişkenine posta adresinizi yazarak çalışıyor. ancak siz adres ve POST alanlarını değiştirerek bunu ister yurtiçi yaparsınız, ister başka siteler için kullanırsınız. Bunu sunucunuza atıp, belli bir sürede bir çalışmaya ayarlı bir crontab oluşturun, klasörde yazma izni vermeyi de unutmayın. Sayfada bir değişiklik yapıldığında size e-posta ile sayfanın yeni halinin kaynağını gönderecektir.

Basit oldu ama işlevli oldu bence :) İşinize yarar ya da sağına soluna minik hackler eklerseniz yorum olarak bırakın.

Devamını oku…

OpenSOZLUK

“Tomorrow is the only day in the year that appeals to a lazy man.” ~Jimmy Lyons

Bilmeyenler için; OpenSOZLUK benim kendimi geliştirme amaçlı giriştiğim bir PHP (dolayısıyla CSS/HTML/SQL ve istemeye istemeye JS) projesi, amacı açık kaynaklı, patlayıp çatlamayan, saçmasapan lisans problemleri olmayan bir interaktif sözlük yazılımı oluşturmak, yani “kendi minik ek$i-sözlük  klonlarımızı host etmek” amacı var diyebiliriz.

OpenSOZLUK üzerine sonunda çalışmaya başlayabildim, hatta sallantıda diyebileceğimiz CSS bilgim ve yeni yeni geliştiğim Gimp ile (öyle bir yetenek düşmanıyımdır ki, Gimp’le bunları yapabildiğime halen inanamıyorum diyeyim, büyüksün Gimp!) default şablon adayı bile hazırladım ona, biraz fazla devlet dairesi gibi oldu, aslında aklımdaki tasarım çok renkli, canlı, web2.0 bir şeydi ama oturup çizebilecek bir adam olmadığımdan en azından şimdilik basit bir şey yapmayı tercih ettim. Şablon desteği sayesinde belki ileride daha farklı tasarımlar da çıkarabilirim ortaya (aslında renkleri değiştirsem bu da canlı görünebilir), ya da bu işi benden daha iyi yapabilecek birileri el atabilir de. Her şekilde, “teorik olarak” çalışan bir tasarıma bakıp bu benim eserim diyebilmek zevkli oluyormuş.

Sıfırdan bir şeylere girişmenin gerçekten yorucu olduğunu farkettirdi bana OpenSOZLUK, ve hazır bir sistemi alıp dayayıp döşemek, düzenlemek gibi olmuyor gerçekten, gönüllü bir projede uğraşmak misli misli zor geliyor insana. Bunun yanında, bazı şeylerle de aramı iyileştirmemi sağladı tabii. Mesela PHP’de neredeyse hiç kullanmadığım fopen() -öğrenmesi 10sn falanmış tabii-, .htaccess ve mod_rewrite, “tasarımla kod nasıl ayrılır”, ” fonksiyon neden yazıyoruz ki”, ” ne demek o kadar SQL sorgusu yavaşlatır yeaa” gibi olayları hafif hafif çözdüm diyebilirim. Freenode’daki ##php kanalındaki arkadaşlar da beklemediğim kadar (RTFM veya Let me google it for you linki bekliyordum) yardımcı oluyorlar sağolsunlar :)

Bir kaç not olarak; IDE olarak Netbeans iddiamda kararlıyım, gerçekten her anlamda etkili bir yazılım bu, işleri çok kolaylaştırıyor. XHTML’in ömrü dolmaya yakın diyorlar, XML ile aranız yoksa HTML 4/5 en iyisi. XHTML 2 sanırım iptal edilmiş, HTML 5’in de ne kadar kapsamlı olduğuna bakılırsa haksız bir iddia sayılmaz. CSS’de ufak bir hackle footerı en aşağı kaydırabiliyorsunuz. (SVN’deki style.css’de bir örneği var) Daha aklıma gelmeyen şeyler de vardır bir sürü.

Projeye yardım etmek, bana akıl vermek (“Knowledge is power. Guard it well.”), şunu olmamış bunu yapamamışsın bik bik etmek (bunun da faydası oluyor bir anlamda) isteyenler çekinmesin, her yönden bana ulaşabilirsiniz.

SVN ve Proje takibi: projeler.aranelsurion.org