Vineyard Cave Hotel In Cappadocia

Kategori: Php, Referanslar
Tarih: 24th Ocak 2012

Kapadokya nın güzide otellerinden Vineyard Cave Hotel

Aktüel Gazetesi

Kategori: Php, Referanslar
Tarih: 24th Ocak 2012

Kütahya aktüel gazetesinin web gazete sitesi

Delege – Event hakkında

Kategori: C#
Tarih: 19th Ocak 2012

Bu yapı benim aklıma hep mail listelerini getiriyor. Önce bir gurup oluşturursun sonra bir bilgiyi göndermek için sen bir sefer gönder dersin sonra sistem o bilgiyi listedeki herkese gönderir. Aslında Delege – Event yapısıda buna benzer. Önce bir delege oluşturursun (bunu bir kişi olarak düşün). Sonrada bir event oluşturursun. -bunuda bir liste olarak düşünebiliriz- Eventi istediğin kadar Delege ile doldurursun. İhtiyacın oluncada sen eventi çalıştırırsın, o da listedeki bütün delegeleri.

Delegeler fonksiyonları temsil eden yapılardır. Aslında bi işlem yapmazlar. Sadece bağlı oldukları fonksiyonları tetiklerler. Bir delegeyi aşağıdaki şekilde tanımlayabiliriz.

public delegate void BenimDelegem(int parametre);

Delegeler bağlı oldukları fonksiyonlar ile aynı yapıda olmalılardır. Yani yukarıdaki delegeyi bağlayacağınız fonksiyonda void türünde olmalı ve integer bir paratmetre almalı. İsterseniz Event olmadan da direk fonksiyonu delegeye bağlayabilirsiniz

BenimDelegem delege = fonksiyonAdi;

“delege” isminde bir delege oluşturduk ve fonksiyonAdi metoduna bağladık.

Eventler birden fazla -aynı türde- delegeyi barındıran yapılardır. Aşağıdaki şekilde oluşturulurlar.

public event BenimDelegem BenimEventim;

Bir evente aşağıdaki şekilde delege ekleyebilir ve çıkartabilirsiniz.

BenimEventim+= new BenimDelegem(delegenin bağlı olduğu fonksiyon ismi);

BenimEventim-= new BenimDelegem(delegenin bağlı olduğu fonksiyon ismi);

Senaryo şu çok odalı bir işletme düşünelim oda sayısıda dinamik olsun, sürekli yeni odalar eklenebliyor ve çıkabiliyor. Her odada bir buton var müdür gelince personelden birisi odanın butonuna basıyor ve her odada müdürün bulunduğu odanın numarası çıkıyor. Delege yapısı kullanmıyor olsak her oda için ayrı ayrı fonksiyon ( “müdürün bulunduğu odayı ekrana yaz” fonksiyonu) tetiklememiz gerekecekti. Yada odaları (formları) foreach ile okuyup  bu fonksiyonu tetikletebilirdik.

Delege – event yapısı bizim işimizi çok kolaylatıracak. 1 tane müdür geldi diye event oluşturacağız. Ve tüm odaları (delegeleri) bu evente ekleyeceğiz. Bunu görev listesi olarak düşünebiliriz. Evente, müdür hangi odaya geldi ise onun numarasını göndereceğiz. Sonra o bütün delegeleri çalıştıracak yani bütün formlara bizim yerimize müdür şu odada yazacak. İcraata geçelim.

Bir tane oda formumuz olsun. Bunun iki tane methodu olacak:

1.si ekranaYaz metodu. Delege bu methoda mürün kaçıncı odada olduğunu söyleyecek buda kendi formuna yazacak

2.si buttonClick metodu. Müdür bu odaya gelir ise personel bu butona basarak diğer odalara müdür bizim odada diye haber verecek.

Özetleyecek olursak hangi odadan basılırsa basılsın müdür bizim odaya geldi eventi tetiklenecek. Oda görev listesindeki bütün görevleri (yani delegeleri ve dolayısıyla delegelerin çalıştırdığı fonksiyonları) çalıştıracak böylece tek işlem ile bütün odalara bilgi yazılmış olacak. Proje dosyasını buradan indirebilirsiniz.

Yorumlar: 0 » tags: , ,

Yakında yeniyenikutahya…

Kategori: Php, Referanslar
Tarih: 16th Ocak 2012

Kütahyanın en çok satan yerel gazetesi yenikutahya.com yeni altyapı ve arayüzüyle yakında yayında olacak.

Yorumlar: 0 » tags: , ,

Codeigniter yapısı için kullanıcı girişi

Kategori: Codeigniter, Php
Tarih: 14th Ocak 2012

Bu sabah codeigniter üzerine yazılmış bazı blogları inceledim. Çoğusu resmen codeigniter’ın kullanım kılavuzunu bloguna koymuş. Ne yeni bir algoritma; ne yeni bir problem çözümü… Herhangi bir helper yada library üzerine birbirinin aynısı onlarca blog bulmak mümkün. Hiçbirisi yeni birşey yazmıyor. Bazılarında kullanılan değişken isimleri bile aynı. Velhasıl kılavuz çevirisi mahiyetinde kopya bloglar. Üstelik bazıları -nette- sanki bu işin piriymiş gibi ün(!) yapmış. Bu bilgi kirliği karşısında, şimdiye kadar yazmış olduğum -en azından bi işe yarayan- kodları paylaşmaya karar verdim. Bugün dinamik sistemlerin olmazsa olmazı kullanıcı girişni yazacağım.

 

Veri tabanı tabloları ve gerekli dosyaları buradan indirebilirsiniz. Dosyalarımızı projemize ekledikten sonra kullanıcı adı ve şifre ile kullanıcıya oturum açmak için sadece bir kaç satır kod yazmak gerekiyor:


$kullanici['kAd']='kullanıcı adı';
$kullanici['kSifre']='şifre';

$this->load->library('oturum',$kullanici);

$durum = $this->oturum->Ac();

Bu kod ile Kullanıcı adı/Şifre kontrol edildi doğru ise session atamaları yapıldı, (ipsi, tarayıcısı, işletim sistemi, giriş zamanı) giriş logu veritabanına kaydedildi ve durum değişkenine TRUE atandı yanlış ise de FALSE atandı. Sessionlara istediğiniz sayfadan $this->miknatis->Oku(‘session adı’) şeklinde erişebilirsiniz. Kullanabileceğiniz session adları aşağıdadır.

 

kId : veri tabanındaki id si
kAd: kullanıcı adı
ad: kullanıcının ismi
soyad: kulanıcının soyismi
mail: kullanıcının maili

 

Not: “deneme” kullanıcı adı ve “1234” şifresiyle deneme yapabilirsiniz. Şifreler veritabanına md5 ile şifrelenip kaydedilmiştir.

Yol işlemleri v1.0

Kategori: MapBasic - MapInfo
Tarih: 4th Ocak 2012

Mapbasic ile yazmış olduğum bu uygulama mevcut yollar üzerinden seçilen bir yolu inceleyerek kullanıcının istediği uzunlukta yeni bir yol oluşturuyor. Proje dosyalarını buradan indirebilirsiniz.


Önizlemeler

Program Kodları


include "mapbasic.def"
include "icons.def"

declare sub main
declare sub yolCiz
declare sub kozmetikTemizle
declare function yolSec(yollar() as string) as integer
declare function kkno(ByVal no as integer, ByVal tur as integer) as string

sub main
	create buttonpad "YolPad" as
		toolbutton calling yolCiz icon MI_ICON_ADD_NODE cursor MI_CURSOR_CROSS
End Sub

sub yolCiz

	'Pencere kontrol
	if WindowInfo(frontwindow(), win_info_type) <> win_mapper then
		note "Bu fonksiyon sadece harita penceresinde çalışır!"
		exit sub
	End If

	'Kordinat sistemini ayarla
	set CoordSys window FrontWindow()

	'Tıkladığı noktayı tespit et
	dim x, y as integer

	x = CommandInfo(CMD_INFO_X)
	y = CommandInfo(CMD_INFO_Y)

	'Bufer oluştur ve kozmetik katmanı temizle
	dim alan as object
	dim genislik as integer

	call kozmetikTemizle
	insert into kozmetik (obj) values (createpoint(x, y))

	'Zoom a göre buferı büyüt
	genislik = Int(MapperInfo(FrontWindow(), MAPPER_INFO_DISPLAY_ZOOM))
	genislik = genislik * 20

	if genislik = 0 then
		genislik = 50
	End If

	create object as buffer from kozmetik into variable alan width genislik units "m" resolution 25
	call kozmetikTemizle

	'Buferın deydiği yolları tespit et
	select * from koyyolu where obj intersects alan into tablo

	'Yol yoksa bitir
	if TableInfo(tablo, TAB_INFO_NROWS) = 0 then
		note "Seçtiğiniz noktada yol bulunamadı. Yola daha yakın tıklatınız."
		exit sub
	End If

	'Düzenlemek istediği yolu tespit et (buferın deydiği yollar listesinden)
	dim secim as integer

	if TableInfo(tablo, TAB_INFO_NROWS) = 1 then'Tek yol varsa onu seç
		secim = 1
	else

		'Listeyi diziye ata ve fonksiyona gönder
		fetch first from tablo

		dim liste(1), no as string
		redim liste(TableInfo(tablo, TAB_INFO_NROWS))

		dim i as integer
		for i=1 to TableInfo(tablo, TAB_INFO_NROWS)

			liste(i) = kkno(tablo.kkno, tablo.tur) + " - " + tablo.tanim
			fetch next from tablo
		Next

		'Listeyi fonksiyona gönder
		secim = yolSec(liste)

		'0 geldi ise iptal etmiştir
		if secim = 0 then
			exit sub
		End If

	end if

	dim basla, bitir, parcaListeStr(1) as string
	dim parca, pNo, parcaListe(1), j, x1, y1, x2, y2, rId as integer
	dim yol, bNokta as object
	dim uzunluk as float

	'Seçilen kayda git
	fetch rec secim from tablo

	yol = ConvertToPline(tablo.obj)

	'Haritada da kullanıcının istediği yolu seç
	rId = tablo.id
	select * from koyyolu where id = rId

	'Kullanıcıyı bilgilendirmek için yolların başına başlangıç burasıdır diye nokta at
	parca = ObjectInfo(yol, OBJ_INFO_NPOLYGONS)

	redim parcaListe(parca)
	redim parcaListeStr(parca)

	call kozmetikTemizle

	for i=1 to parca

		parcaListe(i) = ObjectInfo(yol, OBJ_INFO_NPOLYGONS+i)

		uzunluk = 0

		for j = 1 to parcaListe(i)-1

		x1 = ObjectNodeX(yol, i, j)
		x2 = ObjectNodeX(yol, i, j+1)
		y1 = ObjectNodeY(yol, i, j)
		y2 = ObjectNodeY(yol, i, j+1)

		if j = 1 then

			bNokta = CreatePoint(x1, y1)
			alter object bNokta Info OBJ_INFO_SYMBOL, MakeSymbol(67, RGB(0,48,255), 40)
			insert into kozmetik (obj, aciklama) values (bNokta, i + ". parça başlangıcı")
			Set Map Window windowId(FrontWindow()) Layer kozmetik Label Auto On

		End If

		uzunluk = uzunluk + SphericalDistance(x1, y1, x2, y2, "km")

		next

		parcaListeStr(i) = i + ". parca - " + uzunluk + "km"

	Next

	'Hangi parçanın ne kadar kısmı düzenlenecek onu tespit et
	dialog title "Yeni yatırım ekle"
		control statictext title kkno(tablo.kkno, tablo.tur) + " - " + tablo.tanim position 5, 5 width 220
		control statictext title "Toplam " + str$(SphericalObjectLen(tablo.obj, "km")) + " km" position 5, 15 width 220
		control statictext title "Başlangıç noktası (km)" position 5, 35 width 80
		control edittext value "0.0" into basla position 90,33 width 80
		control statictext title "Bitiş noktası (km)" position 5, 55 width 80
		control edittext value "1.0" into bitir position 90,53 width 80
		control statictext title "Parçalar " position 5, 75 width 220
		control listbox title from variable parcaListeStr into pNo position 5, 90 width 220 value 1
		control okbutton
		control cancelbutton

	'İptale bastı ise bitir
	if commandInfo(cmd_info_dlg_ok) = 0 then
		call kozmetikTemizle
		exit sub
	End If

	dim d1, d2 as float
	dim n1, n2 as integer

	d1 = Val(basla)
	d2 = Val(bitir)
	uzunluk = 0

	'Yol bilgilerini yazdır
	print chr$(12)
	print "Başlıyor..."
	print "Parça sayısı: " + parca

	if parca > 1 then
		for i=1 to parca
			print i + ". parça nod sayısı: " + parcaListe(i)
		Next
	End If

	print "Toplam node Sayısı: " + ObjectInfo(yol, OBJ_INFO_NPNTS)

	'Başlangıç nodunu bul
	n1 = 1

	do while uzunluk < d1

		x1 = ObjectNodeX(yol, pNo, n1)
		x2 = ObjectNodeX(yol, pNo, n1+1)
		y1 = ObjectNodeY(yol, pNo, n1)
		y2 = ObjectNodeY(yol, pNo, n1+1)

		uzunluk = uzunluk + SphericalDistance(x1, y1, x2, y2, "km")

		n1 = n1 + 1

	Loop

	'Bitiş nodunu bul
	n2 = n1

	do while uzunluk < d2

		x1 = ObjectNodeX(yol, pNo, n2)
		x2 = ObjectNodeX(yol, pNo, n2+1)
		y1 = ObjectNodeY(yol, pNo, n2)
		y2 = ObjectNodeY(yol, pNo, n2+1)

		uzunluk = uzunluk + SphericalDistance(x1, y1, x2, y2, "km")

		n2 = n2 + 1

	Loop

	print "Başlangıç nodu: " + n1
	print "Bitiş nodu: " + n2

	'İstenilen uzunlukta yolu oluştur
	yol = ExtractNodes(yol, 1, n1, n2, FALSE)

	'Çizgi sitilini belirginleştir
	alter object yol Info  OBJ_INFO_PEN, makepen(4,2,RED)

	'İstenilen özellikteki yolu katmana ekle
	'istenilirse sözel verilerle beraber başka bir tabloyada eklenebilir.
	call kozmetikTemizle
	insert into kozmetik (obj) values (yol)

	print "Başarılı!"

End Sub

sub kozmetikTemizle
	delete from kozmetik
End Sub

function yolSec(yollar() as string) as integer

	dim secilen as integer

	dialog title "Yol seç"
		control statictext title "Seçilen alandaki noktalar:" position 5, 5 id 1 width 200
		control listbox position 5, 15 title from variable yollar into secilen id 2 width 200
		control okbutton
		control cancelbutton

	if CommandInfo(CMD_INFO_DLG_OK) then
		yolSec = secilen
	else
		yolSec = 0
	End If

End Function

function kkno(ByVal no as integer, ByVal tur as integer) as string

	'integer kontrol kesim numarasını ###-# formatına dönüştür

	dim strNo as string
	strNo = Str$(no)

	if no < 10 then
		strNo = "00" + strNo
	end if

	if no < 100 and no > 9 then
		strNo = "0" + strNo
	End If

	if tur = 3 then
		strNo = strNo + "-2"
	End If

	kkno = strNo

End Function

Optimization WordPress Plugins & Solutions by W3 EDGE