5 Şubat 2018 Pazartesi

Django Debug Toolbar Nedir? Nasıl Kurulur?


    Django Debug Toolbar,  request/response (istek/yanıt)'larda arkada yapılan işlemlerin ne olduğunu hangi verilerin tutulduğu gibi çeşitli bilgilerin gösterildiği bir paneldir.

 

12 Şubat 2017 Pazar

AKADEMİK BİLİŞİM 2017



Türkiye'de yapılan en güzel, en yararlı etkinlik: Akademik Bilşim.

Bu sene Aksaray Üniversite'sinde düzenlendi.

Tek cümleyle: "Motivasyon kaynağım".

Geçen sene  AB'de tanıştığım 35 yaşlarında bi abi "Buraya ne kadar erken gelirsen gel, hep geç kalmış olduğunu hissedersin" demişti.

Gene de daha fazla geç kalmadan gelin!



20 Nisan 2016 Çarşamba

Geleceği Görmenin Formülü

  İnsanlığın hayallerinden birisi; geleceği görebilmek. Yapılıp yapılmayacağı profesörlerden köylü Mehmet’e kadar herkesi iştahlı tartışmalara sokan ender konulardan biri.

 Yapılınca kimsenin geleceğine bakmak istemeyeceği de tartışma konularından biri. Ancak şimdilik biz bunları bir kenara bırakalım ve geleceği görebileceğimiz tüm teknolojiye sahip olduğumuz bir zamanda yaşadığımızı varsayalım.

  Teknolojik  aletlere sahibiz ama bunu doğru bir şekilde harmanlamalıyız. Yemek yapar gibi.
 Peki! Neye ihtiyacımız olurdu?
    Geleceği görecez  ama nasıl? Ol diyince olmadığını bilmemiz lazım. Arkasında bir ilim olması gerekiyor!
    Gelin bir simülasyon yapalım:
Karşımızda bir yol olduğunu hayal edin. Az sonra orda bir kaza olacak. Bunu nasıl bilebiliriz? Veya kaza olup olmayacağı nelere bağlı?
Benim bulabildiğim bunlar tabi liste sadece bu kadar değildir. (Yorum yaparak listeyi çoğaltmama yardımcı olabilirsiniz)


  •           Arabayı süren kişinin ruh hali
   1.   Hava durumu
    2.  Karakteri
    3. Görev ve sorumlulukları
  ....     

  •           Amacı(toplantıya geç kalmış olabilir)
  •         Refleksleri
  •           Yolun önce ki kaza raporu(yol sabıkalı olabilir)
  •           Arabanın bakımı
  •           İnsan psikolojisi
  •       ....
              
   Ayrıca kazaya karışan yayanın ve ortamdaki tüm kişilerin bu durumlarının bilinmesi gerekir. Belki şoförün oğlu o an ters bişey yapıp şoförün dikkatini dağıtmış olabilir. Burda çocuğunda az sonra ne yapacağını bilmemiz gerek.

Bunların tamamını bilip doğru şekilde analiz edersek geleceği görebiliriz. En azından ben öyle düşünüyorum.

Tabi şu anda bu bilgilerin tamamını tutacak hafıza ve bilgilerin tamamını analiz edecek teknolojinin çok uzağındayız belki hiç varamayabiliriz. Ancak varamayacağımız hayalini kuramayacağımız veya üzerinde çalışamayacağımız anlamına gelmez.Değil mi?

25 Mart 2016 Cuma

Recursive Fonksiyon - Farklı Bir Örnek


  Recursive fonksiyon örenekleri diye Google amcaya sorduğumuzda karşımıza çıkan sadece bir kaç tür örnek oluyor;recursive fonksiyon ile, faktöryel hesabı ve Fibonacci sayı dizisi yapmak.

  Geçenlerde ihtiyaç duyduğum wordlists dosyasını netten indirmek yerine kendim yapmaya karar verdim.Recursive fonksiyon kullanmam gerektiğine karar verip yaptım.

  Nette de böyle bi eksik olduğunu bildiğim için paylaşma gereği hissettim.

  Recursive fonksiyonun ne olduğundan ziyade yaptığım programın nasıl çalıştığını anlatmak istiyorum.Umarım başarılı olurum.

  Öncelikle ne yapmaya çalıştığımızdan bahsedeyim.Kendisine gelen metne sırayla farklı bir karakter ekleyip 45 farklı metin üreten bir fonksiyon yazacağız.Ardından bu 45 metni tekrar fonksiyona gönderip her birinden 45'er tane daha metin elde edeceğiz.Bu böyle 12 karakterle oluşabilecek  tüm permitasyonlar tamamlanıncaya kadar devam etmeli.

 Sadece 12 karakterle oluşacak metin sayısı; 45^12 (68952523554931640625) tane ve bizim buna ulaşmamız için öncesinde 1,2,3,4,...,11 karakterli metinleri oluşturmuş olmamız gerekiyor.


Wordlist oluşturma mantığı

    Kodu pythonda yazdım,zaten kısa bir kod bakınca python bilmeseniz dahi anlayacağınızı düşünüyorum.

#wordlist.py 
import string

character= string.ascii_lowercase + string.numeric + "."

chtr_list = list(character)

file = open("wordlist.txt","w") 

def harf(text):
    
    if len(text)>12:
        return 0
    else:
        for i in chtr_list:
            new_text = text
            new_text += str(i)
            if len(new_text) >7 :
                file.write("\n"+new_text)
            harf(new_text)


i=""
harf(i)

file.close()

  Kodları tek tek açıklamak gerekirse;


chtr_list = list(character)
 Tüm karakterleri listeye atamış olduk(['a','b','c',...'0','.'] şeklinde ).

file = open("wordlist.txt","w") 
ürettiğimiz metinleri kaydedeceğimiz belgeyi açtık.(belge yoksa yenisini oluştur varsa tamamını silip baştan yazar).

Gelelim fonksiyonumuza;

if len(text)>12:
        return 0

Gelen metnin uzunluğu 12'den büyükse fonksiyonu durdurur.Recursive fonksiyonların olmazsa olmazı; ortamda sürekli aşırıya kaçmaya izin vermeyen arkadaş gibidir.

else:
        for i in chtr_list:
            new_text = text
            new_text += str(i)
            if len(new_text) >7 :
                file.write("\n"+new_text)
            harf(new_text)

  Geldik en önemli kısma;for ile tüm karakterleri tek tek "i"değişkenine atıyoruz.Gelen texti yeni oluşturduğumuz değişkene atıyoruz.Aksi taktirde "ab" geldiğini varsayarsak, "a" eklediğimizde text "aba" olacaktır sonra ki kısımda "abb" yi üretmemiz gerekir ancak metin artık "aba" olacağından bunu yapamayız.

  Yeni değişkenimize her for döngüsünde yeni bir karakter ekleyip sonrasında oluşturduğumuz metinlere tekrar karakter eklensin diye fonksiyonumuza tekrar gönderiyoruz.Yani anlayacağınız fonksiyonun tek yaptığı gelen texte bir harf takıp tekrar kendisine göndermek.

if len(new_text) > 7 ifadesi ise 8 ve 8'den büyük olan metinleri file.write ile dosyaya atıyoruz.

i=""
harf(i)

file.close()
Boş(boşluk değil!) bir metin değişkeni oluşturup fonksiyona atıyoruz.

   Kod üzerinde fazla çalışamadım,fonksiyonun karmaşıklığını azaltacak önerileriniz ,ekleme yapmak istediğiniz yerler veya makalenin şurası fazla olmuş sil dediğiniz yapıcı eleştirilerinizi beklerim.

 Fonksiyonun aynısını başka dillerde yazıp göndermek isterseniz ayrıca mutlu olurum.

  Not:Yorum yapmak için hiç bir şart yoktur.