The Worst
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.
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.
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
Fox Toolkit -1
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.
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)
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ığı ol
an 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.
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.



