Herşey Linux ile başladı.

Pardus deneyimlerim

Mart, 2009 için Arşiv

Pardus-Xfce

Yazan: okursat Mart 24, 2009

Geçenlerde denediğim masa üstü Xfce’ yi 4.6 sürümüne güncelledim. Depoya ekleyenlerin ellerine sağlık. Denemek için oturum kapatıp, girişdeki oturum menüsünden xfce seçilerek masa üstünü başlattım. Gerçekten 4.6 sürümünde güzel gelişmler olmuş. Çoklu simge seçimi gibi. Biraz kullandıktan sonra tekrar Kde 3.5.10′ a döneyim dedim. Döndüm dönmesine ama menü altüst olmuştu. Masa üstündeki ev dizini ve sistem simgeleri çalışmıyordu. Dosyaları açmak için ön tanımlı olan program seçenekleri uçmuştu.
İnternette biraz araştırma yaptıktan sonra

kbuildsycoca

komutunu buldum. Hemen bir konsol açıp komutu yazdım. Ve işlem tamam, Pardus artık eskisi gibi. Buraya da yazayım ki bir daha böyle bir olayla karşılaştığımda kolayca komutu hatırlarım. Hoş bu dalgınlıkla buraya yazdığımı da unuturum. :)

Yazı kategorisi: Pardus | Etiketler: , , , | » yorum bırak;

Python-PyQt-QT4 Türkçe Kaynaklar

Yazan: okursat Mart 15, 2009

Python ve PyQt ile ilgili galiba en çok Türkçe kaynak bulmak konusunda zorlanıyorum. Bulduğum kaynakları burada paylaşayım ki hem ben unutmam hem de meraklısı olanlar da kullanır.

Python ve PyQt için buraya, özellikle PyQt’ ye giriş için güzel bir kaynak.

Python ve Tkinter için internette gördüğüm en geniş Türkçe kaynak için buraya. Şuanda Python 3.0 bölümü eklendi.

Şimdi vereceğim adres bir kurs sitesi, sakın reklam yaptığımı sanmayın, bu siteyi eklememin amacı kod örnekleri olmasındandır. Göz atmak için buraya.

Resmi olmayan Python grubunun yeri için buraya.

Python Türk sitesi için buraya.

Belgeler.org içindeki Python belgeleri için buraya.

Python ile ilgili yazıların olduğu güzel bir blog, giriş buradan.

Ömer Ücel adlı vatandaşımızın günlüğüde bakılmaya değer bilgiler içeriyor. Buradan.

QT4 Türkçe kaynak için buraya.

Yazı kategorisi: Python | Etiketler: , , , | » yorum bırak;

Math Modülü-Python

Yazan: okursat Mart 10, 2009

MATH MODÜLÜ

Python’ da matematiksel fonksiyonları math modülü ile kullanmaktayız. Şimdi math modülümüzün içeriğine bakalım. Unutmadan modülümüzü çalışmamıza çağıralım.

import math

Bu komut ile modülümüzü çalışmamıza dahil etmiş olduk. Şimdi içerdiği fonksiyonları aşağıdaki komutu vererek görelim.

dir(math)

['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp', 'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log', 'log10', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh']

Modülümüzün içeriğini de gördüğümüze göre şimdi kosinüs, sinüs, tanjant, pi, karekök, üslü ifadeler gibi fonksiyonlarla ilgili örneklerle kullanımını anlamaya çalışalım.

Yazının devamını oku »

Yazı kategorisi: Python | Etiketler: , , , , , , , , , , | » yorum bırak;

Özel Eğitim Semineri

Yazan: okursat Mart 9, 2009

Bugün bir hafta sürecek olan Özel Eğitim Semineri’ ne başladık. Önceki görev yaptığım Bitlis ilinde bu semineri almak istememe rağmen bir türlü denk gelmemişti. Kısmet memlekete imiş. Gerçi bu seminerde anlatılanları gerçekleştirmek kolay değil, fakat en azından çabalamak, öğrencileri kazanmak gerekir.

Yazı kategorisi: Genel | » yorum bırak;

Sayısal-Random-Python-QT4

Yazan: okursat Mart 6, 2009

Bir önceki yazıda belirttiğim Sayısal(Altılı da olabilir ismi) için küçük bir arayüz tasarladım. Ortaya aşağıdaki gibi bir görünüm çıktı.

rasgele

rasgele1

Aşağıdaki kodları bir dosya içerisine kopyalayıp rasgele.py adı ile kadederek, konsolda python rasgele.py komutunu vererek çalıştırabilirsiniz.

Yazının devamını oku »

Yazı kategorisi: Python | Etiketler: , , , , | » yorum bırak;

Random Modülü-Python

Yazan: okursat Mart 5, 2009

Geçenlerde Python.org dökümanlarında random modülü gözüme çarptı. random kelimesinin Türkçe karşılığı rasgele anlamına geliyor. Yani rasgele yapılacak işlemlerde random modülünü kullanabiliriz.Hemen aklıma gelen iki örneği vermek istiyorum. Birincisi müzik oynatıcılardaki rasgele müzik çalma, ikincisi ise rasgele sayı üreteci, sayısal çekilişlerinde kullanılmak üzere. Tabiki verdiğim örnekler ne kadar doğru ya da kullanılabilir bilmiyorum. sadece aklıma ilk gelen fikirler bunlar. Şimdi random modülü ile ilgili bir kaç örnek vereyim.

import random

Bu satır ile random modülünü programımıza davet ediyoruz.

random.choice(['okursat', 'kursat', 'orsel', 'python', 'pardus'])

Bu satır ile oluşturduğumuz listeden herhangi bir liste ögeyi seçmesini sağlaya biliriz. Bu arada choice seçim anlamına gelmektedir.

random.sample(xrange(50), 10)

Bu satır da ise sample fonksiyonunu kullandık. sample örnek anlamına geliyor. İçerisinde ise xrange kullandık; range kelimesi dizmek, değer kümesi anlamına geliyor. Bu kodla ise 50′ ye kadar olan sayılardan 10 tane örnek seçmesini söyledik. İşte bu örneği sayısal gibi oyunlar için kullanabiliriz diye düşünüyorum. Birde arayüz tasarlandımı olur gibi.

random.randrange(50)

Bu kod ile değer kümesinden rasgele tamsayı seçmeye yarıyor. 50′ ye kadar olan sayılardan rasgele birini seçiyor.

Şimdi yukarıda bahsettiğim sayısal mıydı, altılı mıydı ismi tam bilmiyorum ama, hatırladığım kadarı ile 50′ ye kadar olan sayılardan 6 tane seçip kupona yazıyorlardı. Aşağıdaki kodlarla bu işlemi bizim yerimize Python yapsın.

#/usr/bin/env python
#-*- coding:utf-8 -*-

import random
rasgele = random.sample(xrange(50), 6)
print rasgele

Bol şanslar. :)

Yazı kategorisi: Python | Etiketler: , , , , , | 2 Yorum »

İlk PyQt Arayüz Çalışmam-Qt4

Yazan: okursat Mart 4, 2009

İlk arayüz çalışmamı yaptım ve hemen paylaşmak istedim. Arayüz çalışmasını QT4 ile gerçekleştirdim. Bu gerçek anlamda ilk QT4 deneyimim. QT4′ ün tasarımcıya çok büyük kolaylıklar sağlayan arabirimi ve kullanışlılığı sayesinde arayüz tasarımım 5 dakika gibi kısa bir sürede bitti. Zaten işin QT4 kısmı basit ve zevkli. İşin zor bölümü  ise tasarladığınız arayüz ile yazdığınız kodların entegre edilmesi. Bütün bu işlemleri yapabilmemiz için bildiğiniz üzere sistemimizde Qt4 ve Python kurulu olmalıdır.

QT4 ile arayüz çalışmalarından görüntüler aşağıdaki gibi olacak.

qt1

Yukarıda görüldüğü gibi gerekli bileşenleri formumuza sürükleyerek ekliyoruz.

qt3

Ve düğmelere fonksiyon atayarak arayüz çalışmamız burada bitiyor. Bu arada arayüz çalışmaları ile ilgili pek fazla bir açıklama yazmadım. Bunu bir kaç sebebi var. Birincisi daha yeni öğreniyorum, yeterli bilgim yok. İkincisi en iyi öğrenme yollarından biri deneme yanılmadır. PyQt ile ilgili buradaki örneklere bakabilirsiniz. Anlatımı çok güzel.

Arayüzü oluşturduktan sonra sıkıntılı olan (benim için) Python kodları ile entegre etme işlemini yaptım. Kodların son hali aşağıdaki gibi oldu.

# -*- coding: utf-8 -*-

from PyQt4 import QtCore, QtGui
from datetime import date
import sys
class ogren:
def __init__(self, ui):
self.ui = ui

def bilgi(self):
global bugun
global dg
global yas
bugun = date.today()
ui.label_6.setText(u”Bugün :”)
ui.label_7.setText(str(bugun))
ui.label_5.setText(u”Alanları doldurup Öğren tuşuna tıklayın.”)
yol = int(ui.lineEdit.text())
ay = int(ui.lineEdit_2.text())
gun = int(ui.lineEdit_3.text())
dg = date(yol, ay, gun)
yas = bugun – dg
ui.lineEdit.clear()
ui.lineEdit_2.clear()
ui.lineEdit_3.clear()
ui.label_4.setText(str(yas))

class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(“MainWindow”)
MainWindow.resize(438, 387)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(“centralwidget”)
self.lineEdit = QtGui.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(70, 80, 113, 29))
self.lineEdit.setObjectName(“lineEdit”)
self.lineEdit_2 = QtGui.QLineEdit(self.centralwidget)
self.lineEdit_2.setGeometry(QtCore.QRect(70, 110, 113, 29))
self.lineEdit_2.setObjectName(“lineEdit_2″)
self.lineEdit_3 = QtGui.QLineEdit(self.centralwidget)
self.lineEdit_3.setGeometry(QtCore.QRect(70, 140, 113, 29))
self.lineEdit_3.setObjectName(“lineEdit_3″)
self.pushButton = QtGui.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(20, 240, 131, 28))
self.pushButton.setObjectName(“pushButton”)
self.pushButton_2 = QtGui.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(150, 240, 106, 28))
self.pushButton_2.setObjectName(“pushButton_2″)
self.label = QtGui.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(30, 80, 62, 19))
self.label.setObjectName(“label”)
self.label_2 = QtGui.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(30, 110, 62, 19))
self.label_2.setObjectName(“label_2″)
self.label_3 = QtGui.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(30, 140, 62, 19))
self.label_3.setObjectName(“label_3″)
self.label_4 = QtGui.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(30, 210, 231, 19))
self.label_4.setObjectName(“label_4″)
self.label_5 = QtGui.QLabel(self.centralwidget)
self.label_5.setGeometry(QtCore.QRect(10, 20, 421, 20))
self.label_5.setObjectName(“label_5″)
self.label_6 = QtGui.QLabel(self.centralwidget)
self.label_6.setGeometry(QtCore.QRect(260, 50, 62, 19))
self.label_6.setObjectName(“label_6″)
self.label_7 = QtGui.QLabel(self.centralwidget)
self.label_7.setGeometry(QtCore.QRect(320, 50, 111, 19))
self.label_7.setObjectName(“label_7″)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 438, 27))
self.menubar.setObjectName(“menubar”)
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName(“statusbar”)
MainWindow.setStatusBar(self.statusbar)

self.retranslateUi(MainWindow)
self.ogren = ogren(self)
QtCore.QObject.connect(self.pushButton_2, QtCore.SIGNAL(“clicked()”), MainWindow.close)
QtCore.QObject.connect(self.pushButton,QtCore.SIGNAL(“clicked()”),self.ogren.bilgi)
QtCore.QObject.connect(self.lineEdit_3, QtCore.SIGNAL(“returnPressed()”), self.pushButton.animateClick)
QtCore.QMetaObject.connectSlotsByName(MainWindow)

def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QtGui.QApplication.translate(“MainWindow”, “Kaç Gün Yaşadın”, None, QtGui.QApplication.UnicodeUTF8))
self.pushButton.setText(QtGui.QApplication.translate(“MainWindow”, “Öğ&ren”, None, QtGui.QApplication.UnicodeUTF8))
self.pushButton_2.setText(QtGui.QApplication.translate(“MainWindow”, “&Kapat”, None, QtGui.QApplication.UnicodeUTF8))
self.label.setText(QtGui.QApplication.translate(“MainWindow”, “Yıl”, None, QtGui.QApplication.UnicodeUTF8))
self.label_2.setText(QtGui.QApplication.translate(“MainWindow”, “Ay”, None, QtGui.QApplication.UnicodeUTF8))
self.label_3.setText(QtGui.QApplication.translate(“MainWindow”, “Gün”, None, QtGui.QApplication.UnicodeUTF8))
self.label_4.setText(QtGui.QApplication.translate(“MainWindow”, “…”, None, QtGui.QApplication.UnicodeUTF8))
self.label_5.setText(QtGui.QApplication.translate(“MainWindow”, “Alanları doldurup Öğren tuşuna tıklayın.”, None, QtGui.QApplication.UnicodeUTF8))
self.label_6.setText(QtGui.QApplication.translate(“MainWindow”, “Bugün :”, None, QtGui.QApplication.UnicodeUTF8))
self.label_7.setText(QtGui.QApplication.translate(“MainWindow”, ” “, None, QtGui.QApplication.UnicodeUTF8))
app = QtGui.QApplication(sys.argv)
window = QtGui.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(window)

window.show()
sys.exit(app.exec_())

Ve son olarak dosyayı python ogren.py komutu ile konsoldan çalıştırdığımda aldığım ekran görüntüleri aşağıda.

datetime1datetime2datetime3datetime4

Mutlu son. Tabiiki program çok ilkel, ne de olsa yeni başladım. Vakit buldukça arayüz denemelerine devam edeceğim ve paylaşacağım.

Yazı kategorisi: Python | Etiketler: , , , , , | » yorum bırak;

Pardus 2009 OCR

Yazan: okursat Mart 4, 2009

Gece günün ilk saatlerinde Özgürlük için Rss’ sine Pardus 2009 Geliştirici Toplantısı ile ilgili bir haber düştü. Haberin bir kısmında Uğur TUTAR ile ilgili olarak aşağıdaki kısım yazılmış.

Uğur TUTAR tarafından hazırlanacak Türkçe destekli OCR programının ise yetişirse 2009.1 sürümünden sonra projeye dâhil edilebileceği öngörüldü.

Bu güzel haberi sizlerle paylaşmak istedim. İnşallah değerli geliştiricimiz bu güzel programını en kısa zamanda bitirerek, bizlerin beğenisine sunar. Heyecanla bekliyorum. Galiba artık Pardus’ ta kendi ürünümüz olan uygulamaları daha fazla göreceğiz.

Kaynak : www.ozgurlukicin.com

Pardus markası ve logotipi TÜBİTAK’ın tescilli markasıdır.

Yazı kategorisi: Pardus | Etiketler: , , | » yorum bırak;

Python DateTime Modülü

Yazan: okursat Mart 2, 2009

Python’ da DateTime modülünün kullanımı ile ilgili küçük bir çalışma.

#/usr/bin/env python
#coding:utf-8 -*-

from datetime import date   #datetime modülünden date fonksiyonunu çektik.
bugun = date.today()      #bugun adlı bir değişken oluşturup, günün tarihini gösteren fonksiyonu atadık.
print “Bu günün tarihi”, bugun #günün tarihini ekrana yazdırdık.
a = input(“Lütfen doğduğunuz yılı girin:”) # a isimli bir değişken tanımlayıp, kullanıcıdan integer olarak doğduğu yılı girmesini istedik.
b = input(“Lütfen doğduğunuz ayı girin:” # b isimli bir değişken tanımlayıp, kullanıcıdan integer olarak doğduğu ayı girmesini istedik.
c = input(“Lütfen doğduğunuz günü girin:”) # c isimli bir değişken tanımlayıp, kullanıcıdan integer olarak doğduğu günü girmesini istedik.
dg = date(a, b, c) # dg isimli bir değişkene date fonksiyonunu atadık.
yas = bugun – dg   # yas adlı değişken oluşturarak, bugun adlı değişkenden, dg adlı değişkeni çıkardık.
print yas # ve son olarakta yas değişkeninin sonucunu ekrana yazdırdık. Böylelikle kaç gündür yaşadığımızı öğrenmiş olduk.

Bu arada Python kodları ile ilgili  soru sormazsanız sevinirim. Ben de yeni yeni öğreniyorum. Kodlarla ilgili olarak ingilizcesi olanlar aşağıdaki  adrese bir göz atabilirler.

http://www.python.org/doc/current/

Yazı kategorisi: Python | Etiketler: , , , , , | » yorum bırak;

Kuvvet ve Python

Yazan: okursat Mart 1, 2009

Hani fizikte klasik kuvvet soruları olur. İki kuvvet, aradaki açının kosinüsü ve bileşke kuvvet bulunur. Python’ da matematiksel fonksiyonların kullanımını bilmiyordum. Sağolsun wiki’ nin yeni servisi WikiKitap imdadıma yetişti. Bu servis çeşitli dillerde mevcut, tabiiki Türkçesi de var ama içerik yok denecek kadar az. Ben ingilizcesinden Python’ da matematiksel ifadelerin kullanımı ile ilgili bölüme ulaştım, içerik güzel bakmak isteyenler buradan buyursun. Türkçe için ise buradan.

Her neyse lafı uzatmadan Python’ daki matematiksel işlevleri kullanabilmek için math modülünü çağırmamız gerekiyor. Bunuda aşağıdaki gibi yapıyoruz.

import math

math modülünün içeriğini dir(math) komutu ile görebiliriz.

math

Burada bizim işimize ‘cos’ ve ’sqrt’ fonksiyonları yarayacak. ‘cos’ ifadesi anlaşılacağı üzere kosinüsün kısaltması, sqrt ise karekök fonksiyonu. Bileşke kuvvet formülümüz aşağıdaki gibi.

R²=f1²+f2²+2.f1.f2.cos(θ)  Tabiiki burada basit bir Python çalışması yapıyorum. Amacım fizik dersi vermek değil. :)

Formülümüzüde bildiğimize göre şimdi geldi kodlarımızı kwrite gibi bir metin editörü içerisine yazmaya.

#/usr/bin/env python

#-*-coding: utf-8 -*-

#Basit bir kuvvet probleminin çözümü
import math
f1 = input(“Lütfen birinci kuvveti giriniz:”) #Birinci kuvvet değişkenini tanımladık.
f2 = input(“Lütfen ikinci kuvveti giriniz:”#İkinci kuvvet değişkenini tanımaldık.
a = input(“Lütfen aradaki açıyı giriniz:”#Aradaki açıyı tanımladık.
R = math.sqrt((f1 * f1) + (f2 * f2) + 2 * f1 * f2 * math.cos(a)) #Bileşke kuvveti tanımladık.
print “Bileşke kuvvet:”, R #Sonucu ekrana yazdırdık.

kodumuzu yazıp kaydettikden sonra, konsolda:

chmod a+x dosyaadı ve python dosyaadı komutlarını vererek programımızı çalıştırabiliriz. Bu arada yavaş yavaş ben de Python öğrenmeye çalışıyorum.

Not: Sisteminizde Python kurulu olmalıdır.

Yazı kategorisi: Python | Etiketler: , , , , , , | » yorum bırak;