Python ve Mail Gönderme

Bir çalışma için bir dizinin alt dizini içerisindeki dizinlerin toplam boyutunu bulmam ve bu boyut bilgisini yöneticinin posta adresine atmam gerekti. Linux ortamında bunu hızlı bir şekilde yapabilmek için hemen Python'a sarıldım. Kolayca aşağıdaki çalışan kodu yazdım:

Yukarıdaki kodu çalıştırdığınız zaman aşağıdaki çıktıya benzer bir çıktı elde etmelisiniz:

Ve aşağıdaki gibi bir postanın size ulaşması gerekiyor:



import commands,sys,os
def RepositorySize(rep):
try:
#Parametre olarak verilen dizinin boyutlarini bulacagiz
#Boyut 1024 byte'in katlari seklinde
komut = commands.getstatusoutput("du -ks "+rep)
#komut[0] komutun durumunu, komut[1] ciktisini sakliyor
print komut[1]
#Posta gondermek icin sendmail kullanalim
mail = os.popen("/usr/sbin/sendmail -t", "w")
mail.write("To: root@localhost\n")#sistem yoneticisine
mail.write("Subject: Size summary\n")#dizin boyut bilgisi gonderilecek
mail.write("\n") # baslik bilgisi mail govdesinden ayrilsin
mail.write(komut[1])#du komutunun ciktisini gonderelim
sts = mail.close()#sendmail kapansin
#basarili degilse hatayi ekrana yazalim
if sts != 0:
print "Sendmail exit status", sts
except:
print "Unexpected error:", sys.exc_info()[0]
raise
#Programi calistiralim
if(len(sys.argv)>1): RepositorySize(sys.argv[1])
else: RepositorySize("/home/emre/*")
sys.exit()

Flash aktivasyon problemi

Web sitenizde flashın aktive edilmesi için bir kaç kere tıklamanız gerekiyor veya etrafında ilginç bir çerçeve ile karşılaşıyorsunuz şu bağlantıdaki çözüm işinize yarayabilir.

Phishing nedir?

Son zamanlarda çokça karşılaştığım bir terim "Phishing". Balık avlamayı anımsatıyor bana, "fishing" kelimesine bir vurgu var sanırım; oltaya takılanlar bu sefer bizler oluyoruz ama.

--------
Phishing, kötü niyetli kişiler tarafından kimlik bilgileri, kart numarası gibi kişisel bilgilerin ele geçirilebilmesi amacıyla sahte e-posta ve Web sayfalarının kullanılması yöntemidir. Phishing'de dolandırıcılar, tüketicilere tanınmış bir firmadan geliyormuş izlenimi verilmiş bilgi güncelleme talebi vb. içeren e-postalar göndermektedir. Bu e-postalarda genellikle cevap için e-postanın içindeki linkin (Web sayfası için kısa yol) tıklanarak gerekli siteye geçilebileceği belirtilmektedir. Ancak, verilen talimat uygulandığında gidilen site dolandırıcılar tarafında hazırlanmış ve gerçeğini taklit eden sahte bir Web sayfası olmaktadır. Bu sahte sitede elde edilen bilgiler mahiyetine göre daha sonra çeşitli dolandırıcılık faaliyetlerinde kullanılabilmektedir. Phishing yönteminde köklü bankaların kimliğinin kullanmasının yanında mağazalar veya e-ticaret kurumlarının ve İnternet servis sağlayıcıların kimliklerinin de kullanıldığı görülmektedir.
--------

Kaynak ve ilgili bağlantılar ve daha detaylı açıklamalar:
http://www.telepati.com.tr/ekim04/finans1.htm
http://www.olympos.org/article/articleview/1403/l/2/

LinuxBIOS İçeren İlk Masaüstü Bilgisayar Anakartı

Gigabyte'ın M57SLI-S4 Anakartı LinuxBIOS desteğine sahip. Duyurulur. Tamamen özgür bir bilgisayar toplamak isteyenler için. Bu açıkçası Özgür yazılımın bir başarısı olarak görülebilir.

Kaynak: http://permalink.gmane.org/gmane.linux.kernel/496453

LinuxBIOS Desteklenen Anakart Listesi

Windows2003 Server IIS çalıştırma sorunu

Her zamanki gibi sunulacak içerik klasörünü alıp wwwroot altına attım ve IIS içerisinden gerekli ayarları yaptım. Ama "localhost" a bile erişemiyordum.

Windows2003 Server IIS mantığını biraz değiştirmiş, daha doğrusu ek güvenlik özellikleri eklemiş. ASP v.b. çalıştırılabilir veya "script" dosyalardan oluşan web sitenizi yayınlayabilmek için 2000 sunucularında yapılan ayarlara ek olarak IIS yönetim paneli içerisindeki "Web Hizmeti Uzantıları" seçeneği içerinde bulunan "Sunucu Tarafı İçermeler", "WebDAV", "Internet Veri Bağlayıcısı" v.b. ayarlardan ilgili olanları çalıştırma izni vermeniz gerekiyor.

DHCP ile kapsamdaki bilgisayarlara DNS, Gateway v.s. ayarları dağıtmak

Linux üzerinde kullanma fırsatım olmadı ama bir Windows ağında, istemci makinaların doğru çalışabilmesi için bilmesi gereken DNS, Gateway gibi ana bilgisayar bilgilerini DHCP de nasıl tanımlayacağımızı öğrendim.

DHCP, DNS, Active Directory gibi yazılımların kurulu olduğu ağın yönetici makinaları, DHCP de yapılacak ayarlar ile (domain)kapsam dahilindeki tüm bilgisayarlara gerekli bilgi açılışlarında gönderilebilir.

DHCP yönetim panelinde "DHCP Scope Options" bölümü bulunarak Router, DNS Servers, DNS Domain Name, WINS/NBNS Servers ve bunlar gibi yüze yakın parametre tanımlanarak kapsamdaki bilgisayarlara gönderilebilir.

Örneğin:

Option Name Vendor Value Class
003 Router Standard x.x.x.x None
006 DNS Servers Standard x.x.x.x, y.y.y.y, z.z.z.z None
015 DNS Domain Name Standard xdomain.com None
044 WINS/NBNS Servers Standard x.x.x.x None
046 WINS/NBT Node Type Standard 0x8 None

Mors alfabesi

Mors alfabesi hakkında ayrıntılı bilgiye http://www.mors.gen.tr/ adresinden ulaşabilirsiniz. Alfabeyi nasıl öğreneceğinizden bu alfabeyi latin alfabesine çeviren bir çeviriciye kadar her şey var bu sitede.
Mors alfabesini öğrenmek ileride hayat kurtarabilirmiş gibi geliyor ama tabi teknolojinin bu kadar geliştiği bir dünyada bu kadar basit bir şey nasıl işimize yarayabilir diye düşünebilirsiniz.

Bağlantılar:
http://tr.wikipedia.org/wiki/Mors_alfabesi

Yararlı bir site - danismend.com

İş dünyasındaki kariyer, yükselme ve yönetici olma gibi kavramlar çok itici gelir bana. Bunların amaç edinilmesi çoğu zaman boşa harcanmış hayatları getirir.
Yönetim bilgileri ve yöntemleri ise ilgi çekici olabilir, çünkü en basiti kendi hayatımızı yönetmemiz gerekir. Bu konuda işimize yarayabilecek bir site bulmuştum, paylaşmak isterim: www.danismend.com

Kariyeriniz için de bakabilirsiniz tabi; kullanmak istediğiniz alan size kalmış.

Dosya Çevirici

Dosya biçimlerini birbirine çevirmek için arada sırada çevrimiçi (online) bir çevirici bulmam gerekiyor. Böyle aramalarımın sonunda "media convert" sitesiyle karşılaştım. İncelediğim kadarıyla bir çok biçimi destekliyor. Ben odt -> doc biçim çevrimini denedim. Başarılı bir şekilde gerçekleştirdi.

Bir İşlem

Şu adreste karşılaştığım Bir İşlem yarışmasının genetik programlama ile çözümü yazısı sayesinde şimdiye kadar yazdığım genetik algoritma yazılarına örnek bir java projesi yapabileceğimi farkettim. Bir kaç haftadır üzerinde az az uğraştığım projeyi tamamladım. Bu yazıyı yaptığım projeyi anlatmak için yazmaya karar verdim. Sonunda eksikliğini farkettiğim Java Genetik Programlama örneğini yapmış olacağım.

Gelelim projeye,

Bir İşlem yarışması TRT'de bir ara yayınlanan Bir Kelime Bir İşlem yarışmasındaki işlem sorularını çözmeye yönelik bir proje. Yarışmadan hatırlayacağınız gibi 1-10 arasında 5 sayı ve 10,25,50,75 veya 100 sayılarından biri (toplam 6 sayı) verilerek bir hedef sayıya sadece 4 işlem kullanarak ulaşmaya çalışıyoruz.

Örnek: Hedef sayı 200, Hesaplamada kullanılacak sayılar : 1 3 4 8 10 100
Çözüm: 8/4 = 2, 2*100 = 200
(evet çok kolay bir örnek oldu ama amacı anladınız :D )

Projede kullanıcılar bu sayıları rastgele üreterek genetik hesaplamayı başlatıp en yakın çözümü bulmaya çalışabilirler, bunu resimlerle gösterelim:

Başlangıç Ekranı:

Hesaplama yapılmış bir örnek (Aşağıdaki java çıktıları incelenerek hangi nesilde sonuca ulaşıldığı görülebilir):
Programın kullanımı oldukça kolay. Rastgele sayı üretebilirsiniz veya elinizdeki girdileri uygun olarak girebilirsiniz. Biçimli metin alanı kullandığım için basamak sayısını uygun şekilde girmeniz gerekiyor. Yazdıklarınız silinebiliyor.

Proje ile ilgili önemli ayrıntılar:
Genetik algoritmanın başarımını (performans) arttırmak için aşağıdaki sezgi diyebileceğim özellikler gerçekleştirildi, kaynak kodlarda gözünüze çarpabilir:
- Hesaplama sayılarının çarpımları eğer hedef sayıdan küçük ise hedef sayıya asla ulaşamayız. Bu durumda hesaplama yapmaya gerek yok.
- Eğer hesaplama yapılırken hedef sayıya tüm operatörleri uygulamadan ulaşırsak hesaplamayı erken bitiriyoruz
- Bölmelerde tam sayı sonuç olmuyorsa o bireyi kötü birey olarak değerlendiriyoruz.

Projedeki yorumların yapılan işi anlatmaya yeteceğini düşünüyorum. Burada ayrıca anlatmaya gerek yok. Bu sitedeki genetik algoritma yazılarını okuduysanız kodu incelediğiniz zaman yapılan işi de anlayacaksınız. Aşağıdaki bağlantılardan ilgili dosyaları indirerek inceleyebilirsiniz. Ayrıca yazdığım birim testleri de (junit) inceleyebilirsiniz. Testlerde neyi test etmeye çalıştığım sizin kendi testleriniz için de bir örnek oluşturacaktır.

Kaynak Kodlar

Güncelleme: Java kaynak kodları ve çalıştırılabilir JAR dosyası JDK 1.5 ile uyumlu hale getirildi.

softwarefreedom.org

Özgür yazılım dünyasının geliştirdiği uygulamaların lisans ve patent haklarını savunan ve sorgulayan bir topluluk öğrendim bugün: Yazılım Özgürlüğü Hukuk Merkezi.

Fazlamesai de geçen habere göre; Moodle gibi açık kodlu ve özgür yazılım olarak geliştirilen e-öğretim projelerini de tehdit eder hale gelen Blackboard firmasının bu alanda patent alması ve rakiplerine dava açması ile Yazılım Özgürlüğü Hukuk Merkezi konuyla hemen ilgilenmiş ve gerekli hukuki süreçleri başlatmış.

Kendi yazılımlarımızı da korumak için birgün ihtiyacımız olabilir bu topluluğa.

Üç Boyutlu Binaların Web Üzerinde Otomatik Olarak JOGL ile Modellenmesi

Akademik Bilişim 2007'de "Üç Boyutlu Binaların Web Üzerinde Otomatik Olarak JOGL ile Modellenmesi" makalemiz kabul edilmişti, Eray arkadaşımız gidip sunumu yaptı. İlgililer, şu bağlantıyı inceleyebilirsiniz.

Dosyalar:
Makale (Yansı)
Sunum (Yansı)

Zemberek

OpenOffice için zemberek işe yarar bir eklenti. Kurulum için şu adresi takip edebilirsiniz.

Dario'nun Yolculuğu

Antakya'ya yolu düşen bir Arjantinli olan Dario'yu kardeşimden öğrendim. Orta doğuda araştırma ve öğrenme amaçlı bir gezi yapmakta olan Dario'nun yolu bizim eve de düşmüş. Her ne kadar günlüğü İspanyolca olsa da çeviri yardımıyla bir şeyler anlaşılabiliyor. Bu kadar kapsamlı gezi yapan birini görmek insanı imrendiriyor. Ta Güney Amerika'dan gelen bir insanın Ortadoğu hakkındaki izlenimlerini okumak ayrı bir deneyim olacaktır (Anlayabilirsek :) ). Neyse lafı fazla uzatmayayım, linkleri vereyim:
Antakya Yazısı (İngilizce ama çok da iyi çevrilmiş sayılmaz :P)
İnsanın canı bir yerlere gitmek istiyor yazıları okuyunca :(