Woman and Forgive

Women don’t forgive;they just stop blaming.

Share

The Worst

The worst side of misunderstanding is making you desperate.

Share

Python ile TCP ve UDP Server

TCP ve UDP server, sizin tarafınızdan TCP veya UDP protokolleri yoluyla gönderdiğiniz verileri alıp bununla belirlenen işleri yapan mekanizmalardır.Yani bir serverın en temel işlevi DİNLEMEKTİR.Biz bugün bu dinleme ve verileri alma işleminin pythonda nasıl yapıldığını göreceğiz.

import socket                             #Socket modülümüzü dahil edelim

server = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #AF_INET:IPv4,SOCK_STREAM:TCP

server.bind(('localhost',3004))       #localhost:3004 adresini kullanıyoruz.

server.listen(5)                           #dinlemeye başlıyoruz.

conn,addr = server.accept()         #socket bağlantıyı kabul ediyor.
#conn:bağlantı değişkenimiz,addr:adresimiz
print 'bagli',addr                         #hangi IP ile bağlandığımızı görelim.
while 1:
    data = conn.recv(1024)          #1024 byte uzunluğunda veri uzunluğunu al.
    if not data: break                  #data geçerli bir yapıya sahip değilse çık
    print data                            #geçerli ise datayı yaz
    conn.send(data)                   #server cevabını döndürelim.
conn.close()                            #bağlantıyı kapatalım.

UDP serverda ise tek fark socket kurarken SOCK_STREAM yerine SOCK_DGRAM kullanacağız.Böylece UDP datagramlarını alabilir ve UDP Server sahibi olabiliriz.

Share

Fox Toolkit Ders-2

Fox Tollkit’te “ne ne işe yarar” ve “nasıl kullanılır?” konusunda bir yazı yazalım dedim.Şimdi sırasıyla bazı önemli elementleri açıklayalım.Bir lemanı oluşturmak için C++ ta klasik olan new anahtar kelimesini kullanırız.

    FXText *yaziAlani = new FXText  (this,NULL,0,TEXT_READONLY|LAYOUT_FILL_X|LAYOUT_FILL_Y);

Burada FXText nesnesinin içinde bazı önemli özelliklerimiz var.Text sadece “okumak için”(readonly) kullanılır.X ve Y ekseninde tamamıyla doldurma işlemi yapılır. en başta yazdığımız “this” kelimesi en temelde bulunan çerçeviyi kasteder.

FXHorizontalFrame *frame1= new FXHorizontalFrame(this,LAYOUT_SIDE_TOP|LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_SUNKEN|FRAME_THICK,0,0,0,0, 0,0,0,0);

FXHorizontalFrame :
Burada ise en temel yerleşim nesnelerinden birisi oluşturulur.Bu yatay bir frame oluşturulur.Bu frame temel çerçevenin üstüne inşa edilmiş yeni bir yatay çerçevedir.”this” kelimesi yine en temel frame’in üstüne inşa edildiğini gösterir.

     new FXLabel(buttonFrame,"Button Frame",NULL,JUSTIFY_CENTER_X|LAYOUT_FILL_X);

Yeni bir label(etiket) kurduğunuz zaman bunun hangi temel “frame” bağlanacağını sorar.Burada buttonFrame adlı bir çerçeveye bağlamışız.İçindeki yazı “Button Frame” x düzleminde ortlamış ve yaymışız.Böylece nesnemizi oluşturduk.

Share

PIC ile Motor Kontrol Dersleri-1

Belki de en merak edilen konular arasındadır robotik.Bu konuların temelini de motor kontrol oluşturur diyebiliriz.Biz bu derslerin ilkinde bir motoru durdurup çalıştırmayı öğreneceğiz.Bunu PIC 16F877A mikrodenetleyicisinde yapalım.Programalama dili olarak da PIC C kullanalım.Başlayalım  o  zaman.Şematik üzerinden gidelim.

Şimdi burada gördüğümüz ilk şey tabi ki PIC16F877A ama bunun dışındaki öğeleri incelersek,mesela sağ altta bir bir entegre daha görüyoruz.Bu entegre L298 motor sürücü entegre.

Bu entegre ne işe yarıyor?

PIC çıkışında lojik işaret dediğimiz çok düşük bir akım değerli işaret veriyor.Bu kadar düşük akım değerine sahipbir lojik işaretle motoru yerinden oynatamayacağımız için bir akım yükselteci entegre kullanıyoruz.Bu entegre akımı tam bir motorun istediği düzeyde tutuyor.Yani motor sürüyor,o yüzden motor sürücü entegre diyoruz adına.

Peki Bu Devre Ne İş yapıyor?

Bu devrenin B portunda bir butonlu giriş var devre buradan bir giriş alıyor.Eğer bu giriş alırsa(yani butona basılırsa) motor entegrenin bağlı olduğu her iki giriş 1 oluyor.Bu da motorun uçlarındaki potansiyel farkı sıfır yapıyor ve motor duruyor.Basılı değilse sadece bir ucu 1 yapıyor,diğer uç sıfırda kalıyor.Böylece motor hareket ediyor.Yani buton “stop” tuşu aslında.

Kodlar

#include <16f877a.h>
#use fast_io(d)
#use fast_io(b)
#use delay(clock=400000)
int main()
{
   set_tris_d(0x00);
   for(;;)
   {
      output_d(0x01);
      if(input(pin_B0)== 1)
      {
         output_high(pin_D1);
      }

   }
   return 1;
}

Şematik,Kaynak Kod ve hex dosyası.Buradan indirebilirsiniz

Share

Fox Toolkit -1

You need to install or upgrade Flash Player to view this content, install or upgrade by clicking here.

Derste bahsettiğim gerekli bazı dosyalar.Tıkla

Share

C#’da Veri Türleri-2

Char Veri türü
16 bit Unicode bir veri tipidir.Karakter kodlamasında kullanılır.(‘) işareti ile kullanılır.
Örnek:

char veri = 'A';
char veri = (char) 45;

String Veri Türü
Önemli bir veri türüdür.Çünkü Windows Form Elemenlerinin bir çoğu string ile çalışır.C++ olduğu gibi problemli değildir.Bir char dizisi halinde düşünülebilir.
Örnek:

string s1 = "Hello";

En güzel özelliği ise stringlerin toplanıp bir cümle veya söz öbeği haline getirilebilmesidir.
Örnek:

string s1 = "Hello";
string s2 = "World";
string obek = s1 + s2;//obek="HelloWord"

Object Türü
Aslındakalıtımda konusunda göreceğiz.Bazen tek bir ana sınıf veya tür vardır.Diğer bütün türler bu temel türün kalıtımıyla yapılır.İşte buradaki bütün türlerinde türediği bir tür var.O da object.Bu türün en önemli özelliği ise diğer türler arası dönüşüm yapılırken bazen bu temel türe geçilir.Diğer türlere bu temel türlerden geçilir.Bu işleme “boxing” işlemi denir.

Share

PowerShell’de Mail Gönderme

Şimdi Windows PowerShell kullanarak basit biremail gönderme scripti yazalım.

$smtpServer = "smtp.gmail.com"
$smtpUser = "emailaddress@gmail.com"
$smtpPass = "password"
$mail = New-Object System.Net.Mail.MailMessage
$mail.From = New-Object System.Net.Mail.MailAddress($smtpUser)
$mail.To.Add("sendtoemail@hotmail.com")
$mail.Subject = "Hi"
$mail.Body = "Hello World!"
$smtp = New-Object System.Net.Mail.SmtpClient -argumentList $smtpServer
$smtp.Credentials = New-Object System.Net.NetworkCredential -argumentList $smtpUser,$smtpPass
$smtp.Send($mail)
Share

Python’da Koşul ifadeleri

Her programlama dilinde belli koşul ifadeleri vardır.Bunlara genelde if/else özellikleri deriz. Şimdi Python dilinde bu koşul ifadeleri nasıl oluşturulur bunu görelim.

IF/ELSE

İngilizcedeki eğer kelimesinin karşılığı olifelsean if ve diğer demek olan else programlamada en çok kullanılan yapılardan biridir.Burada if/else C türevi dillerden biraz daha farklı bir söz dizimi(syntax)a sahiptir.

if a == b:
    print 'a ve b esittir!'
    else:
    print 'a ve b esit degildir!'

Bunun dışında bizim C türevi dillerde kullandığımız bir anahtar kelime daha var ki o da “else if” bu da bunun dışında şu olursa  anlamını taşır.Ama burada anahtar kelimemiz de değişti.

ELIF

“Else if”in yerine elif geçer ama aynı görevi yapar.Örnek olarak:

if a > 100:
    print 'a yuzden buyuk'
  elif a > 50
    print 'a elli ile yuz arasinda'

Bu son örnekten de anlaşılacağı gibi aslında python ufak tefek söz dizimi değişiklikleri dışında diğer programlama dilleriyle aynı özelliklere sahip.

Share

Microsoft Learning

Birçok arkadaşım programlamada kaynak sıkıntısından yakınıyor.Nereden başlasak uygun olur diye soruyor.Bazıları da programlama konusunda kitapların yetersiz veya sıkıcı olduğunda yakınıyor.Burada bence en güzel çözümlerden biri Microsoft firmasının öğretim için hazırladığı Microsoft Learning.Üstelik bu sayfa için ayrıca kayıt olmanız da gerekmiyor. Windows Live ID(yani msn hesabınızdan) giriş yapıyorsunuz.İçinde ücretli veücretsiz olan eğitimler var.Ücresiz eğitimleri deneyen bir yazılımcı olarak benden tam puan aldığını söylebilirim.Özellikle ücretsiz eğtimlerin bulunduğu Clinic sayfasını denemelisiniz.Sertifiklara ve sınavlar konusunda da bütün gerekli bilgilerin bulunduğu bu sayfayı ziyaret ederek profesyonel olma yolunda önemli adımlar atabilirsiniz.

Not:Sayfayının verimli çalışması için Internet Explorer kullanmanızı öneririm.

Share