ÇoMaK Toplantısı

13 Aralık 2010 Pazartesi 00:28 Gönderen Merve Yüzbaşıoğlu 0 yorum
Haftanın ilk gününe bir blog yazısıyla başlayalım:) Tabi ki konu başlığından da anlaşıldığı üzere blog yazım bu yılki bitirme projemiz olan Çomak hakkında olacak. 9 Aralık gecesinde Necdet Hocanın eşliğinde ben dahil 11'i öğrenci ve 1'i Bilgisayar Mühendisi olmak üzere 13 kişi İstanbul'a doğru yola çıktık. Amacımız Çomak projesinin gidişatı, kullanacağı teknolojileri ve belirsiz olan bir çok şeyi belirlemekti. Bunların yanında geliştiricilerle tanışmak, çalışma ortamlarını görmek ve tabi ki Meltem - Metin - Mete üçlüsünü bir arada görmekte bu toplantının güzel yanlarından birkaçı=) Toplantıda yediğimiz kuru pastaları ve tabi yemeklerin güzelliğini burada anlatmaya kalksak baya uzun sürecektir:)

Birazda toplantıdan bahsedelim.. Toplantı temel olarak 2 kısımdan oluşmuştu.İlk olarak Erkan Tekman, Onur Küçük, Gökmen Göksel ile geliştiricilerin gözünden özgür yazılım ve bir özgür yazılım projesine destek vermek hakkında konuştuk. Konuştuk dediğime bakmayın aslında çoğumuz sustuk:) Ama Onları dinlemek ve yaptıkları işlerden bu kadar heyecanlı ve severek bahsetmeleri beni oldukça heveslendirdi doğrusu(Çok pis gaza geldim denebilir.) Muhteşem yemek arasından sonra Pardus Geliştiricilerinin çalıştığı bölümü gezdik..Nasıl çalıştıklarını gördük ve çok sevdik=) Ardından toplantı odasına dönerek, toplantımızın ikinci kısmına geçtik. Bu bölümde ilk olarak qt mi gtk mı konusu gündemdeydi ve bu konuda Gökmen Göksel'in tişörtünü gördükten sonra tüm ekip Qt olmasına ikna oldu:) Projenin gerçekleştiriminde izleyebileceğimiz adımları önümüze çıkabilecek engelleri ve projenin 2 bölüm üzerinden yürümesi gerektiği gibi konular konuşuldu. Çok faydalı ve eğlenceli bir gün geçirdiğimizi düşünerek ve herkesin aklında projeyle ilgili düşüncelerle toplantıyı sonlandırdık. Bir kez daha ofise giderek 3M ye veda ettik..

Toplantı kısmı bitmiş olabilir ancak benim İstanbul Maceram bitmedi:) Ertesi gün Özgürlük için ekibinden Gizem Belen , İrem Çobanoğlu ve Ali Işıngör ile görüşmeye gittik. Ekibimizde eksiklikler vardı ancak bir çoğumuz oradaydık ve onlarla keyifli bir röportaj yaptık her ne kadar bulunduğumuz yer biraz gürültülü olsa da:)( Ofise sığamadık çok kalabalık olmamız sebebiyle) yaklaşık 2.30 saatlik sohbetin sonucunda röportaj bitti ve tabi 42. özgürlük için podcast'inde bizi dinleyebilirsiniz.(biraz şaşkın cevaplar vermiş olabiliriz şimdiden affola...)

Son olarak tüm Pardus ekibine, rahatsız olduğu halde bizi yalnız bırakmayan Necdet Hocamıza ve tabi ki Özgürlük için ekibine sonsuz teşekkürler...



UML

8 Aralık 2010 Çarşamba 14:04 Gönderen Merve Yüzbaşıoğlu 0 yorum
TEMELLERİ
Sınıf diagramının amacı sistem içinde modellenen türleri göstermektir.UML modelleri en çok
bu tipleri içerir;
  • Sınıf
  • Arayüz
  • Veri tipi
  • Bileşen(component)
UML bu tipler için özel bir isim kullanır:"Sınıflandırıcılar(classifiers)."Genel olarak sınıflandırıcıları sınıflar gibi düşünebiliriz, Fakat teknik olarak sınıflandırıcı, yukarıdaki diğer 3 terimede referans sağlayan genel bir terimdir.
Sınıf İsmi
UML diagramları genel olarak şekil 1'deki gibi tanımlanır. 3 bölmeden oluşur ve En üstteki kutuda sınıfın ismi ,orta bölgede sınıfın nitelikleri listelenir, son bölümde ise sınıfın işlemleri listelenir. Bir sınıf diagramı oluştururken sınıf ismi oluşturmak gerekir ancak diğer iki bölüm isteğe bağlıdır.Şekil 1 de bir havaalanı uçuşları ile ilgili UML modellenmiştir.

Şekil 1

Sınıf Özellikleri Listesi

Bir sınıfın özelliklerinin listesi(ortadaki bölme), sınıfın niteliklerini ayrı ayrı satırlarda listeler. Bu listenin yazımı için ağağıdaki format kullanılır.

name : attribute type (özelliğin ismi : özelliğin tipi)
Örneğin; flightNumber : Integer

Business sınıf diagramlarında, diagramı okuyacak olana göre de değişen farklı özellik tipleri kullanılabilir(minutes, dollars, gibi). Ancak genel olarak bir programlama dilinin kabul edeceği özellik tipleri yazılması daha uygundur.

Bazen bir özellik varsayılan bir değere sahip olduğunda bunu belirtmek gerekebilir(Örneğin, bir banka hesabı uygulamasında yeni bir banka hesabının sıfır bakiye ile başlamasını istiyoruz.) UML özellikleri aşağıdaki notasyonu kullanarak özellik listesi bölümünde varsayılan değerlerini tanımlamamızı sağlar:

name : attribute type = default valueÖrneğin; balance : Dollars = 0

Özelliklerin varsayılan değerini göstermek isteğe bağlıdır; Şekil 2'de, Banka Hesabı sınıfı.


Şekil 2

Sınıf Operasyonları Listesi

En alt bölümde belirtilen sınıf metotları yine sınıf özellikleri gibi satır satır aşağıdaki gibi belirtilir;

name(parameter list) : type of value returned

Şekil 1 deki metotlarıda inceleyebilirsiniz.

Miras

Nesneye yönelik tasarımda Miras kavramı oldukça önemlidir. Bir sınıftan miras alarak onun açık olan metotlarını kullanabilirsiniz ve miras alan sınıfa bu metotlar dışında yeni metotlarda ekleyebilirsiniz.
Bir sınıf diagramında miras 'ı modellemek için, çocuk sınıftan ana sınıfa içi doldurulmamış,düz bir ok çizilir. Şekil 3 te CheckingAccount ve SavingsAccount, BankAccount sınıfından miras almıştır.


Şekil 3

Yukarıda miras alan sınıflardan ayrı ayrı iki ok çizilmiştir. Bunu bir şekilde daha ifade edebiliriz.
Şekil 4' te ağaç yapısı şeklinde miras alan sınıfları görebiliriz.


Şekil 4

Soyut sınıflar ve işlemleri

Dikkatli okuyucular Şekil 3 ve 4 te BankAccount sınıfının italic olarak yazıldığını görecektir. Bu BankAccount sınıfının soyut bir sınıf olduğunu "withdrawal" metodunun ise soyut bir metot olduğunu gösterir. Başka bir deyişle BankAccount sınıfı,"withdrawal" soyut metodunun imzasını sağlar ve BankAccount sınıfını miras alan sınıflar bu soyut metot için kendi versiyonlarını uygular.

Bununla beraber süper sınıf , soyut bir sınıf olmak zorunda değildir. Standart bir sınıfında süper sınıf olması normaldir.

Birleşmeler(Associations)

Bir sistem modellediğimizde, belirli nesnelerin diğerleriyle ilişkisi olacaktır, bu ilişkilerin açık bir şekilde ifade edilmesi için gereklidir. 5 tip birleşme vardır. Bu bölümde -tek ve iki yönlü birleşmeler - olmak üzere ikisine göz atacağız. Bu birleşmelerle ilgili olarak çok fazla ayrıntıya girilmeyecektir. Temel olarak amaçları ve şekille nasıl gösterileceğinden bahsedeceğiz.

Çift yönlü(standart) ilişki

İki sınıf arasında bir çizgi varsa buna ilişki diyoruz. İlişkiler daima çift yönlü olarak kabul edilirler; Bunun anlamı, iki sınıfın birbirlerinden haberdar olduğudur ve başka bir ilişki tipi olmadığı sürece bu şekilde kabul edilir. Flight örneğinden devam edelim, Şekil 5 Flight ve Plane sınıfları arasında standart bir ilişki tanımlamasını gösterir.


Şekil 5

İkili ilişkiler düz bir çizgi ile ifade edilir. Çizgilerin sonunda, bir rol ismi ve çoklu değerler yer alır. Burada Flight ve Plane sınıfları ilişkili ve Flight sınıfının bu ilişkiden haberi var. Bu ilişkide, Plane "assignedPlane" rolunu alır, Çünki Plane sınıfının yanında rol ismi olarak "assignedPlane" yazıyor. Plane sınıfına gelen 0..1 çoklu değerinin anlamı, Bir Flight örneği oluşturulduğunda , Ya bir Plane örneği ile ilişkilidir yada onunla ilgili hiç bir Plane örneği yoktur. Aynı zamanda Plane sınıfıda Flight ile olan ilişkisinden haberdardır. Bu ilişkide Flight sınıfı "assignedFlights" rolünü alır; Plane, ya hiçbir Flight ile ilişkili değildir(Örneğin; yeni marka bir uçak), yada uçuş sayısı sonsuza kadar olabilir(Uçak,Son 5 yıldır görevlendirilmiştir.) Çoklu değerlerle ilgili olarak aşağıdaki tabloya göz atabilirsiniz.


Tablo 1

Tek Yönlü İlişkiler

Tek yönlü ilişkilerde, sadece bir sınıf ilişkinin var olduğundan haberdardır. Şekil 6 buna örnektir.


Şekil 6

Tek yönlü ilişki olduğunu göstermek için açık bir ok kullanılır(kapalı ve içi dolu olmayan ok miras için kullanılıyordu).Bu ok bilinen sınıfa doğru düz bir çizgi olarak çizilir. Standart ilişkiler gibi tek yönlü ilişkilerde rol ismi ve çoklu değer kısmını içerir, farklı olarak burada sadece bilinen sınıf için bu değerler belirtilir. Bizim örneğimizde "OverdrawnAccountsReport" ,"BankAccount" sınıfını tanıyor ve "BankAccount" sınıfı "overdrawnAccounts" rolünü oynuyor. "BankAccount" sınıfının diğer sınıfla ilişkisi olduğundan haberi yok.[NOT: "BankAccount" sınıfının diğer sınıfı bilmiyor olması garip gelebilir. Bu nesne kalıplarını gevşetir ve sistemi değişikliklere uyumlu hale getirir.]
NOT: 3 tip ilişki daha bulunmaktadır. Bu ilişkiler; Basic aggregation,
Composition aggregation, Reflexive associations
Bu ilişkiler ile ilgili olarak daha fazla bilgi almak için Çevirinin yapıldığı kaynak bölümüne bakabilirsiniz.

Görülebilirlik(Visibility)


Tablo 2

Kaynak

www.Ibm.com

Kaynağa gitmek için Tıklayınız..

KIcon

9 Kasım 2010 Salı 06:13 Gönderen Merve Yüzbaşıoğlu 0 yorum
KIcon, QIcon sınıfından türetilmiş bir sınıftır. Yapıcıları hariç tüm metotları QIcon' dan miras alınmış. KDE simge özelliklerini sağlayan(destekleyen) QIcon sınıfının bir sarmalayıcı sınıfıdır. KIcon,Yükleme ve kaplama(grafik) performansına uygun bir KIconEngine ile Qicon oluşturmak için uygun bir sınıftır.

KIcon Constructors:

KIcon(const QString &iconName, KIconLoader *iconLoader, const QStringList &overlays) : Bir KDE stil ikonu ismini ve isteğe bağlı olarak özel bir ikon yükleyici alan yapıcıdır.
  • iconName : yüklemek için Kde ikonunun ismi
  • iconLoader : Bu ikonun yüklemesinde kullanılan yükleyici, ya da yerel ikon yükleyiciyi ön tanımlı olarak kullanabilmek için "null" olur
  • overlays : Bu ikonları uygulamak için overlays'lerin bir listesi
KIcon(const QString &iconName, KIconLoader *iconLoader) : Kolaylık sağlamak için aşırı yüklenmiş üye fonksiyondur. Yukarıdaki fonksiyonlardan tek farkı kabul ettiği parametredir.
KIcon(const QString &iconName) : Yukarıdaki yapıcı gibi aşırı yüklenmiş fonksiyonlardan biridir.
KIcon(const QIcon &copy) : Herhangi bir Qicon'u kopyalayan yapıcı
KIcon() : Boş bir ikon yapıcısı
~KIcon() : İkonu yok etmek için

Ek olarakta:

operator=(const KIcon &other)

Bu Yapıcıların kullanımını görmek için: kicon.cpp

Yönetici ailesinde KIcon kullanımı ile ilgili olarak:

  • widget = self.makeItemWidget(id_, name, description, type_, kdeui.KIcon(icon), state)
  • self.pushToggle.setIcon(kdeui.KIcon("media-playback-stop"))
  • self.labelIcon.setPixmap(kdeui.KIcon("document-encrypt").pixmap(48, 48))
  • self.labelIcon.setPixmap(kdeui.KIcon("document-decrypt").pixmap(48, 48))
  • self.pushToggle.setIcon(kdeui.KIcon("media-playback-start"))
  • self.pushEdit.setIcon(KIcon("preferences-other"))
  • self.pushDelete.setIcon(KIcon("edit-delete"))
Buradaki KIcon kullanımı nerdeyse birbiriyle aynı icon isimleri verilerek KIcon oluşturulmuş. Bunların içinde en göze çarpanı pixmap(48,48) metodu. Bu metod ise QIcon sınıfında aşırı yüklenmiş bir fonksiyondur.

QPixmap QIcon::pixmap ( int w, int h, Mode mode = Normal, State state = Off ) const


QSize(w, h) 'ın pixmap'ini geridöndürür. pixmap, beklediğimizden küçük olabilir ama daha büyük olmaz.

Not: QSize(w,h) fonksiyonu yükseklik ve genişliğin verilmesiyle bir boyut yapıcıdır.

Sonuç olarak KIcon'un kullandığı tüm metodlar için QIconu gönül rahatlığı ile kullanabiliriz.

Kaynaklar:

KApplication

8 Kasım 2010 Pazartesi 12:25 Gönderen Merve Yüzbaşıoğlu 0 yorum

KApplication, şekilde de görüldüğü üzere QApplication ve KInstance' dan miras alınarak oluşturulmuş bir sınıftır.

Tüm KDE uygululamaları için, bilgi sağlar ve kontrol eder.Bu sınıfın bir nesnesi sadece bir uygulamada örnek olabilir. Bu örneğe daima 'kapp' yerel değişkeni üzerinden erişilebilir.

Bu sınıf tüm KDE uygulamaları için servisleri takip edebilmeyi sağlar.
  • Olay kuyruğunu kontrol eder(bknz:QApplication)
  • Hızlandırıcılar,ortak menü girişleri, bir KConfig nesnesi gibi KDE kaynaklarıyla uygulama sağlar.oturum yönetimi olayları,yardım vb..
  • Zombi çocukları('Zombie Children' tam olarak ne demek istediğini anlamadığım için olduğu gibi çevirdim.) önlemek amacıyla SIGCHLD sinyali için bir sinyal işleyicisi yüklenir. Eğer bu sinyali kendimiz yakalamak istersek yada hiç yakalamak istemezsen, Kapplication yapıcısını çalıştırdıktan sonra yeni bir sinyal işleyicisi(ya da SIG_IGN) düzenleyebiliriz
  • installSigpipeHandler() kullanılarak SIGPIPE sinyali için boş bir sinyal işleyici yükler.Eğer Bu sinyali kendimiz yakalamak istersek, Kapplication yapıcısını çalıştırdıktan sonra yeni bir sinyal işleyicisi düzenleyebiliriz.
  • Yeni servisler çalıştırılabilir.
Başlatılmış bir service durumu, servisin masaüstündeki 'X-DCOP-Servistipi' girişine bağlı olur:

üç ihtimal var:
  • X-DCOP-ServiceType=None (default), Daima yeni bir servis baştır,dcop ile servis kayıtlarına kadar beklemez.
  • X-DCOP-ServiceType=Multi , Daima yeni bir servis başlatır, dcop ile servis kayıtlı olana kadar bekler.
  • X-DCOP-ServiceType=Unique , Eğer başlatılmamış ise sadece servisi başlatır, dcop ile servis kayıtlı olana kadar bekler.

KApplication, miras aldığı sınıfların metotlarını kullandığı kadar kendi metotlarınada sahip(bknz:KApplication). Anca manager ailesinde benim görebildiğim kadarıyla miras aldığı QApplication sınıfındada bulunan bir metot kullanıyor.

Manager' lardaki kullanım olarak:

app=KApplication()
...
app.exec_()

Burada sonuç itibariyle bakılması gereken yer app.exec_() bu metod ile, fare'nin hareket olayları, yeniden boyutlandırma, düğmeye basma olayları gibi bütün olayları kabul eder. Bu döngü son pencere kapatıldığında biter.
QApplication ve KApplication sınıfları içinde manager'daki exec_() metodu exec() olarak bulunuyor.
Peki neden farklı yazılmış?

Bunun sebebi exec'in zaten bir python keyword'ü olması. Bu nedenle exec yerine exec_ kullanılmış.

Bu durumda KApplication yerine QApplication kullanabiliriz diye düşünüyorum.

Kaynaklar

Veee Bitirme Projesi

26 Eylül 2010 Pazar 12:18 Gönderen Merve Yüzbaşıoğlu 0 yorum
İşte beklenen yıl ve işte beklenen proje=) Bu yıl malum son senem ve okulu bitirebilmek adına vermem gereken bir bitirme projem var. Geçen senede okulun bilgi işleminde birlikte çalıştığımız kadim ve değerli dostum Aydan ile bitirme projesi yapabiliceğimi düşünmüştüm ve onada bunu teklif ettim. Aydanında kabul etmesiyle tabikide projemizi 1 yıl boyunca yanında çalıştığımız Necdet Hocamızla yapmak istedik ve bunun üzerine okulun başlamasıyla bilgi işleme gitmemiz bir oldu=)

Bizim ne yapabileceğimizle ilgili pek bir fikrimiz yoktu ama elbette Necdet hoca'nın vardı. işte beklenen an.. Proje nedir?

Bu yıl bitirme projesi olarak ekibe sonradanda eklenen kalabalık bir ekip ile Gnome'u Pardusa geçirioruz. Bu kadar Gnome sever varken Pardusta gnome hiç mi çalışmıyor diye sorduğunuzu duyar gibiyim ve cevabım elbette var. Ancak pardusta gnome kullananların işi pekte kolay değil bizim asıl projemizde bunu kolaylaştırmak işte.. KDE de bulunan kaptan, service manager, network manager gibi araçlar QT ile yazıldığından gnome da kullanılamıyor. Bunun sebebi ise Gnome'un GTK yı desteklemesi. Bizde Pardus-gnome severlerin işini kolaylaştırmak ve elbette güzel bir şeyler yapmış olmak adına bitirme projesi olarak QT ile yazılmış olan servis araçlarını GTK ya çevirerek gnome'un bu halinin pardus depolarına girmesini sağlamak. Necdet Hoca zaten Pardus ile görüşmelere başlamıştı bu konuda ve bu projede ilerleme kaydetmemiz üzerine okulumuzda bu konu üzerine Pardus ile yeni bir anlaşma imzalayacak. Çok heycanlı ve güzel bir işe adım atmanın sarhoşluğu ile çalışmalara hazırlık başladı. İlk iş olarak tüm araçların kodlarının okunup anlaşılması ve anlaşılabilmesi için de Qt yi temel olarak öğrenmekle başladık.

Proje ile ilgili gelişmeleri vakit buldukça ve Hocamız bizi bu konuda yazmamız gerektiği ile ilgili uyardıkça yazacağım ve tabi Projedeki diğer arkadaşlarımın yazılarını ve benim proje ile ilgili yazılarımı okumak için:

http://kdetognome.blogspot.com/

bu bloğu takip edebilirsiniz.

Proje Ekibi

Danışmanımız: Necdet Yücel

Aydan Taşdemir
Ben=)
Gökhan Akgün
Özge Barbaros
Mustafa Sertaç Türkel
Tayfur Yılmaz
Mehmet Zahit Şamat

Yine, yeni, yeniden....

24 Eylül 2010 Cuma 01:35 Gönderen Merve Yüzbaşıoğlu 0 yorum
Bir dönemin daha ilk haftasını geride bıraktık. Yeni derslerimizi rezil bir şekilde seçme çabalarımız sonlanıyor. Hala kaydımı tamamlayamamış olsam da bugün kaydımı yapabileceğimi umuyorum.

Yine bilgi işlemde ve bu kez farklı bir işle uğraşmaya başlamadan blog içinde biraz zaman ayırmak gerektiğini düşündüm=) Ancak çok uzun sürmeyecek.. Şimdilik bu kadar gençler yaptığım işlerle ilgili fırsat buldukça yazmaya devam edeceğim çok umutlu olmasam da belkide farklı bir blogtan da bitirme projemizle ilgili bilgileri yazabiliriz henüz pek bir şey kesinleşmedi açıkçası ama bu yıl bomba gibi bir yıl olacağa benziyor. Görüşmek dileğiyle:P

Google Maps Javascript API V3 Services

11 Temmuz 2010 Pazar 22:22 Gönderen Merve Yüzbaşıoğlu 1 yorum
GEOCODING

google.maps.Geocoder

Geocoding, haritadaki pozisyonda yada markerların yerlerinde kullanabileceğin coğrafi koordinatlar("enlem 37.423021 ve boylam -122.083739" gibi) içindeki adres dönüştürme sürecidir.( "1600 Amphitheatre Parkway, Mountain View, CA" gibi).

Google Maps API,kullanıcının girdiği dinamik geocoding adresleri için bir geocoder sınıfı sağlar.Bunun yerine static geocoding isterseniz,adresleri bilin ve geocoding web service dökümanına bakın.

GEOCODING İSTEKLERİ

Google Maps API,harici bir sunucuya çağrı yapması gerekene kadar,geocoding servisine erişim asenkrondur.Bu nedenle,isteklerin tamamlanması üzerinde çalışmak için geri çağrı metoduna geçmek gerekir.Bu geri çağrı metodu sonuçları işler.Bu geocoder'ın birden fazla sonuç döndürdüğünü unutmayın!!!

Google.maps.Geocoder nesnesi yoluyla kodunuz içinden Google Maps API geocoding servisine erişebilirsiniz. Geocoder.geocode () metodu,yanıt aldıktan sonra geri çağırma metodunu çalıştırmak için ve girdi koşullarını tam anlamıyla içeren bir GeocodeRequest nesnesine geçen bir geocoding servis isteğini başlatır.

GeocodeRequest tam anlamıyla aşağıdaki alanları içerir;

Bu alanlar aşağıda açıklanmıştır;

address (gerekli) — geocode için istediğiniz adres.*
latLng (gerekli*) — İnsanların okuyabileceği adreslere en yakın hale getirebilmek için kullanılır.
bounds (isteğe bağlı) — LatLngBounds ,geocode sonuçlarının daha belirgin bir şekilde olmasını sağlar.
language (isteğe bağlı) — geri döndürülen sonucun dili.
region (isteğe bağlı) — IANA language region subtag gibi özel bölge kodları.Çoğu durumda,bu etiketler bilinen ccTLD iki-karakterli değerler

*NOT:Arama için ya address'e yada latLng ye geçebilirsiniz.(Eğer latLng'ye geçilirse,geocoder,ters geocode olarak bilinen şekilde gerçekleşir.Daha fazla bilgi için Reverse Geocoding 'e bakın)
bounds ve region, geocoderdan gelen sonucu tam olarak kısıtlamayacak sadece etkileyecektir.

GEOCODING YANITLARI

Geocoding servisi,geocoding sonuçlarının alımı üzerinden çalışmak için bir geri çağrım metodu gerektirir.Bu geri çağrım, sonuçları ve o anki durumu tutmak için iki parametre vermelidir. Geocoder birden fazla sonuç geri döndürdüğünden,GeocoderResults nesnesi bir dizidir.

Geocoding Sonuçları

GeocoderResults nesnesi tek bir geocoding sonucu gibi temsil edilir ve aşağıdaki gibidir.

Bu alanların açıklaması şöyledir;

types[] ,geri dönen sonucun tipini gösteren bir dizidir.Bu dizi, geri dönen sonuçta bir veya daha fazla belirlenmiş taglar kümesi içerir.Örneğin; "Chicago" nun coğrafik kodu, "Chicago" nun bir şehir olduğunu gösteren "locality"(mekan,yer) ve üstelik onun siyasi varlığını gösteren bir "political" geri döndürür.
formatted_address, bu yerin okunabilir adresini içeren bir string'dir.Genellikle bu adresler şehirden şehire değişen "posta adres"lerine eşdeğerdir.(Büyük Britanya gibi bazı ülkelerin, gerçek posta adreslerini lisans kısıtlamaları nedeniyle dağıtım izni vermediğini unutmayın).Bu adres genellikle bir yada daha fazla adres bileşenlerinden oluşur.Örneğin "111 8th Avenue, New York, NY" adresi ;"111 8th Avenue"(sokak adresi),"New York"(şehir) ve"NY" (ABD devlet) için ayrı bir adres bileşenleri içerir.Bu adres bileşenleri aşağıda belirtilmiştir(adres bileşenleri tipleri hakkında daha fazla bilgi için "types" a bakın)

address_component[],yukarıda açıklandığı gibi ayrı adres bileşenlerini içeren bir dizidir.
geometry,aşağıdaki bilgileri içerir.
location,coğrafi kodlanmış enlem, boylam değerini içerir.Bu yeri string formatında değil latLng nesnesi gibi geri döndürdüğünü unutmayın.
location_type,belirtilen yer hakkında ek veri depolar.Aşağıdaki değerler şu anda desteklenmektedir:
google.maps.GeocoderLocationType.ROOFTOP,geri dönen sonucun kesin bir coğrafi kod yansıttığını gösterir.
google.maps.GeocoderLocationType.RANGE_INTERPOLATED, geri dönen sonucun iki hassas nokta arasındaki yaklaşık interpolasyonunu yansıttığını gösterir.Çatı coğrafi kodları sokak adresleri için kullanılmadığından genellikle aralıklı sonuçlar geri döndürür.
google.maps.GeocoderLocationType.GEOMETRIC_CENTER, geri dönen sonucun polygon yada polyline gibi, bir sonucun geometrik merkezi olduğunu gösterir.
google.maps.GeocoderLocationType.APPROXIMATE, geri döndürülen sonucu yaklaşık olarak gösterir
viewport,geri döndürülen sonuç için tavsiye edilen viewport'u depolar.
bounds (isteğe bağlı olarak geridöner),geri dönen sonucu tamamen içeren LatLngBounds u tutar.Bu bounds'ların tavsiye edilen viewportla eşleşmeyebileceğini unutmayın.(Örneğin; San Fransisco,teknik olarak şehrin bir parçası olan Farallon adalarını içerir fakat viewportta geri dönmemiş olabilir.)


Adres Bileşen Türler

Types[], geri dönen sonuç içinde adres tipini gösteren dizidir.Bu tür ayrıca address_components[] diziler içinde belirli bir adres bileşeninin tipini göstermek için geri döndürülerbilir.Geocoder içindeki adresler çoklu tiplere sahip olabilir;tipler,"tags" olarak kabul edilmiş olabilir.Örneğin birçok şehir, "political" ve "locality" tipi ile taglenmiştir.

Aşağıdaki tipler HTTP geocoder tarafından geri döndürülür ve desteklenir:

street_address,kesin bir sokak adresi belirtir.
route, isimlendirilmiş bir route içerir.("US 101" gibi)
intersection,önemli bir kesişim gösterir,genellikle de iki önemli yolun..
political,siyasi bir özelliği gösterir.Genellikle bu tip bazı sivil idarelerin bir polygonunu gösterir.
country,ulusal siyasi varlığı gösterir ve geocoder tarafından geri döndürülen en üstün düzendir.
administrative_area_level_1,aşağıda ülke düzeyinde birinci dereceden sivil bir varlık gösterir.Amerika Birleşik Devleti içerisinde bu idari seviyeler eyaletlerdir.Bütün ülkeler bu idari düzeyde sergilenmemektedir.
administrative_area_level_2, aşağıda ülke düzeyinde ikinci dereceden sivil bir varlık gösterir.Amerika Birleşik Devleti içerisinde bu idari seviyeler ilçelerdir.Bütün ülkeler bu idari düzeyde sergilenmemektedir.
administrative_area_level_3,aşağıda ülke düzeyinde üçüncü dereceden sivil bir varlık gösterir.Bu tür küçük bir sivil bölünme gösterir.Bütün ülkeler bu idari düzeyde sergilenmemektedir.
colloquial_area, varlık için yaygın olarak kullanılan alternatif bir isim gösterir.
locality,bir anonim şehir yada kasabanın siyasi varlığını gösterir.
sublocality,locality(yerleşimin) altında birinci dereceden sivil bir varlık gösterir.
neighborhood, isimlendirilmiş bir mahalle gösterir.
premise, isimlendirilmiş yerleri gösterir,genellikle bir bina yada ortak olarak isimlendirilmiş binalar topluluğudur
subpremise,location altında birinci düzeyde bir varlık gösterir,genellikle ortak adlandırılmış binalar topluluğunun içindeki tekil bir binadır.
postal_code ,ülkenin içinden posta adreslerinde kullanılan posta kodunu gösterir.
natural_feature ,önemli doğal bir özelliği gösterir.
airport,bir havaalanını gösterir.
park, isimlendirilmiş bir parkı gösterir.

Ayrıca,adres bileşenleri aşağıdaki tiplerde de görülebilir;

post_box ,belirli bir posta kutusunu gösterir.
street_number ,kesin olan sokak numarasını gösterir.
floor, bir bina adresinin zeminini gösterir.
room, bir bina adresinin odasını gösterir.

Durum Kodları

Status(durum) kodları aşağıdaki değerlerden birini geri döndürebilir;

google.maps.GeocoderStatus.OK ,geocode'un(coğrafi kod) başarılı olduğunu gösterir.
google.maps.GeocoderStatus.ZERO_RESULTS geocode'un başarılı olduğunu fakat sonuç geri döndürmediğini gösterir.Eğerki geocode var olmayan bir adresi yada uzak bir yerde latLng gösteriyorsa bu durum oluşabilir.
google.maps.GeocoderStatus.OVER_QUERY_LIMIT ,kotanızın bittiğini gösterir.
google.maps.GeocoderStatus.REQUEST_DENIED ,bazı sebeplerle isteğinizin reddedildiğini gösterir.
google.maps.GeocoderStatus.INVALID_REQUEST ,genellikle sorgunun(adres ve latLng) kaybolduğunu gösterir.

Bu örnekte,enlem ve boylamın geri döndürüldüğü bir marker'ın yerini ve adresini coğragi kodladık.işleyicinin anonim bir fonsiyon gibi aktardığını unutmayın!!


Örneği görüntüle..

TERS GEOCODING(Adres Arama)

Geocoding terimi genel olarak,harita üzerindeki bir yerin okunabilir bir adrese çevrilmesi anlamına gelir.Tersini alma işlemi,okunabilir bir adrese haritada yer tahsis etme,geocoding'in tersi olarak bilinir.

Geocoder,direkt olarak geocoding'in tersini destekler.Metinsel bir adresin tedarik edilmesi yerine, latLng parametresinde virgülle ayrılmış enlem/boylam çifti olarak tedarik edilir.

Aşağıdaki örnek bir enlem boylam değerini coğrafi kodlar ve biçimlendirilmiş bir adres ile bilgi penceresine verdiği o yeri haritaya odaklar.(merkezler)İlkinden daha az belirli olan ikinci sonucu geri döndürürüz.


Önceki örnekte ikinci sonucu gösterdiğimizi unutmayın!!!!(results[1] tarafından seçilen).geocoder'ın tersi genellikle birden daha fazla sonuç geri döndürür.geocodding
"addresses" sadece porsta adresleri değildir,fakat bir yeri coğrafi olarak isimlendirmenin başka yolu yoktur.Örneğin; chicago şehrindeki bir nokta coğrafi kodlandığında, coğrafi kodlanmış nokta bir sokak adresi,şehir adresi(chicago), onun eyaleti(Illinois) yada bir ülke(Amerika Birleşik Devletleri) gibi işaretlenmiş olabilir.Tamamıda geocoder için "addresses"'dır.Ters geocoder bu sonuçların tamamını geri döndürür.

Ters geocoder siyasi varlıklar, sokak adresleri ve posta kodları ile eşleşir.

Bir önceki sorguda geri döndürülen adreslerin tamamının listesi aşağıda gösterilmiştir;


Adresler en az eşleşme için en iyi sırada geri döndürülmüştür.Bu durumda olduğu için daha kesin adres, en önemli sonuçtur.En belirli sokak adreslerinden mahalleler,şehirler,ilçeler,eyaletler vb. kadar az belirli siyasi varlıklara kadar farklı adres tipi geri döndürdüğümüzü unutmayın..Eğer daha genel bir adres eşleşmesi istiyorsak, results[].type alanlarını incelemek isteyebilirsiniz.

Not:Ters coğrafi kodlama kesin bir bilim değildir.Geocoder,belirli bir tolerans ile en yakın adreslenebilir yeri bulmaya kalkışacaktır.

Örneği görüntüle..

VIEWPORT KUTUPLANMASI

Ayrıca belirli bir viewport içerisindeki tercih edilen sonucu Geocoding servisine talimat verebilirsiniz.(sınırlayıcı bir kutu gibi ifade edilmiş)Bu viewportun sınırlarını tanımlamak için GeocodeRequest nesnesinin bounds parametresiyle ayarlamalar yapabilirsiniz.

Örneğin,"Winnetka" için olan bir geocode genellikle Chicago'nun kenar mahallesi olarak geri döndürülür.


Bununla birlikte,bu yerde "Winnetka"adındaki mahalleyi geri döndüren geocode'daki Los Angeles'ın San Fernando vadisi için tanımlanan sınırlayıcı kutuyu bounds parametresi belirler:


BÖLGE KODU KUTUPLANMASI

Ayrıca belirli bir bölgeyi kullanan region parametresine sonuçları geri döndürebilmek için Geocoding servisi ayarlayabilirsiniz.Bu parametre,IANA language region subtag gibi belirli bir bölge kodu alır.Çoğu durumda,bunlar örneğin "co.uk" daki "uk" gibi bilinen ccTLD(üst-düzey alan) iki-karakterli değerler için doğrudan haritaya etiketler.Bazı durumlarda,bölge etiketi
bazı ccTLD değerlerinden farklı ISO-3166-1 kodlarını destekler.(örneğin;"Great Britain" için "GB")
Geocoding isteklerine, ana Google Maps uygulamalarındaki önerilen coğrafi kod her alan için gönderilmiş olabilir.
Örneğin;"Toldeo" için coğrafi kod, Geocoding Hizmet için varsayılan etki alanının ABD'ye ayarlandığı gibi bir sonuç geri döndürür:


'es'(ispanya) olarak ayarlanmış bölge alanı ile "Toldeo" için geocode İspanyol şehrini geri döndürecektir.



Çevirmen Notu:Bu yazının devamı en kısa sürede çevirilip yayınlanacaktır.Services kısımlarından önceki bölüm için "http://dogankadriye89.blogspot.com/" ve "http://blog.alihalukseven.com/" bloglarına göz atabilirsiniz.. Çeviri hatalarım olmuştur bunlar için herkesten özür diliyorum ve orjinal metin'e ulaşmak için: "http://code.google.com/intl/tr-TR/apis/maps/documentation/javascript/services.html" adresini kullanabilirsiniz..

ve dönem biter...

2 Haziran 2010 Çarşamba 05:16 Gönderen Merve Yüzbaşıoğlu 0 yorum
Bir dönem daha bitti ve bir sınav dönemini daha sağ salim denebilecek şekilde atlattım.Yorucu ve faydalı bir dönemin ardından 05.06.2010 Cumartesi harika bir pikniğe katılıyorum=)Bölüm hocalarımızında katılacağı piknik için Ayazma'ya gidiyoruz.Bu piknik dönemin yorgunluğunu çıkarmak için iyide bir fırsat olacak.

Dönem bitti ama ne yazık ki bana tatil yok..Bu yaz 2 staj yapmak gibi bir zorunluluğum var tabi bunda biraz benimde eşekliğim söz konusu=)
Yorucu ve faydalı bir yaz geçiririm diye umuyorum.Sınavları biten bitmeyen herkese İyi Tatiller diyorum=)

Benim yerime de tatil yapar mısınız?

Tatil

26 Nisan 2010 Pazartesi 11:43 Gönderen Merve Yüzbaşıoğlu 0 yorum
Vizelerin bitmesinin ve 3 saatlik bir otobüs yolculuğundan sonra kısacık tatilim başladı.Aslında eve gitmeyi hiç düşünmesemde uzun zamandır görmediğim küçük teyzeminde gelmesi sebebiyle tatilime başladım.Oldukça yorucu bir o kadarda eğlenceli geçen tatilimde sınıf arkadaşım Büşra'da bana eşlik etti.Havalarında sıcak olması sebebiyle gezmeye fırsatımız oldu=).
İLK GÜN
Tatildeki ilk durağımız Ayvalıktaki Şeytan Sofrası oldu harika manzarası ile insanı etkileyen bu yer misafirlerimizide oldukça etkiledi.Şeytan sofrasında ayağa benzeyen büyük bir şekil var.Buda şeytanın ayağı olduğu kanısına varılarak bu tepeye şeytan sofrası adı verilmiş.Bu hikaye saçma olsa da kafanızı ne yöne çevirseniz gördüğünüz o muhteşem manzarası her şeye değer.Ayrıca birde peçetelerden oluşan bir dilek ağacı var.=)
Şeytan sofrasından sonraki durak Ayvalık merkezde küçük bir gezi ve mideyi doldurmakla geçti.Buradan benim çok sevdiğim Cunda adasına geçtik.Harika manzaraları,temiz havası ve eski taş evleriyle her zaman çok sevdiğim yerlerden biri olmuştur.Öncelikle Cunda'nın en yüksek yerinde bulunan değirmenine(aynı zamanda kütüphane,aynı zamanda kilise..) gittik.Burası eskiden Agios Yannis Kilisesi'imiş.Şimdilerde ise Sevim ve Necdet H. Kent Kitaplığı haline getirilmiş.Harika manzarası ile görülmeye değer yerlerden biridir.Buradan Cunda'nın eski evlerinin süslediği daracık sokaklarından geçerek çarşısına ve balık restaurantlarının bulunduğu sahil kısmına geçtik.Deniz kenarındaki dinlendirici yürüyüşümüzden ve çokta sağlam olmayan bir iskeledeki fotoğraf çekme merakımızın ardından Cunda'ya da veda ettik ve ertesi güne hazırlanmak,dinlenmek için evimize döndük.Cunda dan bir kare..
İKİNCİ GÜN
Dinlenerek geçirdiğimiz bir geceden sonra ikinci güne balkonda yapılmış harika bir kahvaltı ile başladık.Herkes sıradaki durağı merakla bekliyordu.Hazırlıklar yapıldı ve yolculuk başladı.İstikamet Bergama idi.Bergama'ya gitmek için önümüzde iki şeçenek vardı.Zeytin ve çam fıstığı ağaçlarının bulunduğu Bergama ya 55km bir yol ve bir de izmir yolu üzerinden gidilecek 70 km civarındaki monoton bir yol.Tabikide ormanlık yolu tercih ettik ve yolculuğumuza başladık.İnanılmaz güzellikteki bu yol üzerinde çok sayıda köy vardı.Köyler oldukça bakımlı ve temizdi.Köylü civardaki ağaçlara da oldukça iyi bakmıştı.Yol üzerindeki bir kaç çeşmede durarak ve annemin harika esprilerine ve konuşmasına gülerek geçirdiğimiz yolculuğumuz Bergama'ya varmamızla maalesef sona ermişti.İlk olarak yüksek bir dağa kurulmuş olan Akropol'de gezimize başladık.


"Pergamon kentinin Akropol'ü ("kentin yukarı bölümü"), Bakırçayı'nın suladığı ovaya egemen bir tepenin üzerinde yer alır. Büyük bir kale görünümündeki Akropol’ün ana kapısına varmadan solda Heroon'un kalıntıları vardır. Heroon, Eski Yunan'da bir kahraman ya da yarı tanrı adına yapılmış ve çevresi sütunlu bir galeriyle çevrili kutsal yerlerin adıydı. Heroon’da, dinsel törenin yapıldığı oda (kült odası) geniş bir ön galerinin arkasındaydı. Heroon’un kuzeyinde Helenistik dönemden kalma bir dizi dükkândan oluşan uzun bir yapı bulunuyordu.

Kentin koruyucusu sayılan akıl ve savaş tanrıçası Athena adına yapılan Athena Tapınağı, Akropol'ün en önemli mekânıydı. Tiyatro terasının üzerinde bulunan bu tapınak, Dor düzeninde yapılmıştı. Kazılarda Athena Tapınağı’nın birçok parçası Berlin'e götürülerek aslına uygun biçimde orada yeniden kurulmuştur. Pergamon'da ise yalnızca temelleri kalmıştır.

Athena Tapınağı'nın kuzeyinde dört salonlu bir kütüphane vardı. Burası Helenistik dönemin en büyük kitaplıklarından biriydi. Kütüphanede "Pergamon derisi" olarak adlandırılan parşömen üstüne yazılmış 200 bin kitap bulunduğu bilinmektedir. Romalı asker ve devlet adamı Marcus Antonius, İ.Ö. 41'de kitapların tümünü Mısır Kraliçesi Kleopatra'ya armağan etmiştir.

Athena Tapınağı’nın güneyindeki bir terasta Zeus Sunağı yer alıyordu. Zeus Sunağı da Berlin'e götürülmüş ve onarılarak oradaki Pergamon Müzesi'ne (Pergamon Museum) koyulmuştur. Helenistik dönemi mimarisinin en güzel örneği olan sunağın Pergamon’da yalnızca temelleri kalmıştır. Zeus Sunağı'nın güneyinde Yukarı Agora bulunur. Agora, güney ve kuzeydoğudan Dor düzeninde sütunlu galerilerle çevriliydi. Agora'da toplanan halk, siyaset ve ticaretle ilgili konuları yönetimle görüşüp konuşuyordu. Agora’nın kuzeybatısında Agora Tapınağı bulunuyordu. Akropol'ün en yüksek yerinde Pergamon krallarının sarayları yükseliyordu. Günümüze bu sarayların yalnızca zemini ve temelleri ulaşmıştır. Sade görünümlü bu yapılarda odalar sütunlu bir avlu çevresine sıralanıyordu.

Athena Tapınağı'nın batısındaki dik yamaçta, yaklaşık 10 bin kişilik bir tiyatro yer alır. Helenistik dönemde yapılan tiyatronun uçuruma bakan ön tarafı setlerle sağlamlaştırılmıştı. Tiyatronun ahşap bir sahnesi vardı ve bu sahne sökülüp takılabilecek biçimde yapılmıştı. Akropol’ün bir başka tapınağı olan Dionysos Tapınağı, tiyatro terasının kuzeyindeydi. 25 basamakla çıkılan bir podyum üzerinde bulunan tapınağın yalnız ön yüzünde sütunlar vardı."

Buradaki Antik gezimizden sonra epey yorulduk.Koca bir şehri gezdik nede olsa:)Buradan sonra dinlenmek için küçük bir ara verdik ve ardından bergama'nın merkezindeki küçük bir müzeyi gezdik.Burada da antik kalıntılar,heykeller,mezar taşları ve mezarlar vardı.Ardından Kızıl avlu adını verdikleri.eskiden şehrin girişinin buradan olduğunu tahmin ettiğimiz bölgeye gezmeye koyulduk.Burası şehre gelen ziyaretçilerin alındığı kısım imiş.Oldukçada büyüktü.

Burayı da gezdikten sonra bacaklarımızda derman kalmamıştı.Ama son yer olan Aslepion'a doğru yol aldık.Bir yandan uyku,bir yandan yorgunluk ve diğer yandan kollarımdaki güneşten dolayı oluşan kızarıklar nedeniyle Asklepion'u gezemedim.Sadece girişine kadar gidebildim ama burasıda oldukça büyükmüş ve burada antik tiyatro ve uyku odaları denilen yer altında bazı odalar bulunuyormuş.Göremediğim için sonradan oldukça pişman oldum açıkcası.




















Aslepion'a geldiğimizde artık derman kalmayınca bulduğumuz ilk yere oturduk=)Diğer resimde de Asklepion'nun girişi..

Son olarak Bergama dönüşünde uyuklayarak geçirdiğimiz kısa yolculukla Dikili'ye vardık.Burada deniz kenarında güneşin batışıyla süslenmiş çay sefasından sonra sonunda eve dönüş başladı.

Tatil artık sona ermek üzereydi,çok yoğun ve zaman zamanda yorucuydu ama her şeye rağmen güzeldi.

Artık proje,ödev ve ders zamanı=)

Başlangıç

14 Nisan 2010 Çarşamba 05:31 Gönderen Merve Yüzbaşıoğlu 1 yorum
Sonunda benimde bir blogum oldu..Ne kadar zaman ayırabilirim bilmiyorum bekleyip görücez=)
Bir merak aldım hesap bakalım neler olacak.Göründüğü kadar da kolay değilmiş buraya bişiyler yazmak 40 saat düşünüyo insan şunu mu yazsam yok bunu mu yazsam diye..Farklı konularda görüşmek dileğiyle:P