Küçük ve Hızlı Bir Linux Dağıtımı : XPud

    Geçtiğimiz günlerde Linux üzerinde uygulama geliştirmeye dair araştırma yaparken XPud adlı bir Linux dağıtımıyla karşılaştım. 64 Mb boyutunda ve boot süresi 5-10 saniye arasında. Özellikle bilgisayarı sadece internete girmek, müzik dinlemek gibi işler için kullanan arkadaşlara ilaç gibi gelebilir . Düşük boyutu ve hızıyla netbook kullanıcılarını Windows işkencesinden kurtarabilir :)
    Güncellemeler, virüsler ve daha fazlasından arınmış bir internet deneyimi sunabilir.
    XPud'u kullanmak için harddiskinizde bir bölüm ayırmanıza ya da Windows'u silmenize gerek yok şayet USB belleğiniz varsa. Lili USB CreatorLiLi USB Creator ile boot edilebilir bir USB oluşturup bilgisayarınızı harddisk yerine USB'den çalıştırıp XPud'u kullanabilirsiniz.
Link

Google Maps API Kullanımı


Google'ın harita görüntüleme sistemi olan Google Maps'in nasıl kullanılacağına dair Türkçe bir döküman hazırladım umarım sizlere faydası dokunur.

Öncelikle Google Maps ile uygulama geliştirmek için temel seviyede Javascript bilgisine sahip olmanız faydanızadır ancak Javascript bilmeseniz de Google'ın kendi dökümantasyonunda çok güzel örnekler var, bu örnekleri gözden geçirerek temel Javascript bilgisine de sahip olabilirsiniz.

Öncelikle hazırladığınız Google Maps uygulamasını internet sitenize ekleyebilmeniz için API Key'e sahip olmanız gerekiyor (Gmail hesabına sahip olmanız yeterli ). Ancak ücretsiz olarak aldığınız API Key'de bazı sınırlamalar var. Örneğin günlük 25.000 sayfa görüntüleme gibi. Bu sınırı ücret karşılığı arttırabilirsiniz ya da "Bussiness Licence" alabilirsiniz (Bu türden lisansın teknik destek gibi ayrıcalıkları var.)

Google Maps'in geliştirilmekte olan ve önerilen versiyonu v3 tür. Buradaki örneklerde de bu versiyonu kullanacağım.

Temel HTML etiketlerini yazdıktan sonra <head> tagları arasına
<script type="text/javascript"
      src="http://maps.googleapis.com/maps/api/js?&sensor=true">
</script>
kodlarımızı yazarak uygulamamızda Google API kullanacağımızı belirtiyoruz. Şuan için sayfamızı yayınlamayacağımızdan API Key gibi parametrelerini eklemiyoruz adrese. Daha sonra yine head tagları arasına

<script type="text/javascript">
function initialize() {
var myOptions = {
zoom: 8,
center: new google.maps.LatLng(41.042074,28.954468),
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map"), myOptions);
}
</script>

</head>
<body onload="initialize()">
<div id="map" style="width:100%; height:100%"></div>
</body>

kodlarımızı ekliyoruz. Açıklamasını yaparsak,

Kullanıcı sayfamızı açtığında yüklenmek üzere bir initialize metodu oluşturuyoruz. Daha sonra haritanın özelliklerini belirliyoruz.
center: new google.maps.LatLng(41.042074,28.954468): Haritamızın merkezini belirtiyoruz. LatLng methodu enlem(latitude)  ve boylam (longitude) olmak üzere iki parametre alır. Bu iki parametre Geocode denilen bunun gibi bir siteden öğrenebileceğiniz rakamlardan oluşur.
mapTypeId: google.maps.MapTypeId.ROADMAP: Harita türünü belirtir. Bunu ortaokuldan hatırlayacağınız siyasi harita, coğrafi harita gibi düşünebilirsiniz. ROADMAP bunlardan bir tanesi ancak siz uygulamanıza göre HYBRID, ROADMAP, SATELLITE ya da TERRAIN seçeneklerinden birini kullanabilirsiniz.
zoom: Haritanın belirtilen koordinatlara ne kadar yaklaşacağını belirtir. 0-20 arasında bir değer verebilirsiniz. 0 en uzak , 20 en yakındır. Uygulamanıza göre değiştirebilirsiniz.


var map = new google.maps.Map(document.getElementById("map"), myOptions);

kod parçası ile de ID si "map" olan tag da çalıştırılamsını istiyoruz.
Bu işlemler sonrasında tam ekran ve İstanbul'u merkez kabul eden bir harita elde edebilirsiniz.

MARKER: Harita üzerinde bir noktayı gösteren simge.


Haritayı oluşturduktan sonra bu harita üzerinde istediğimiz bir noktayı nasıl göstermek için marker denen nesneleri kullanıyoruz.


var marker1= new google.maps.Marker(
{
icon: image.png,
position: new google.maps.LatLng(40.75817996357442 , 30.34700452880861),
map: map,
title: "deneme2!",
draggable: true
});

Yukarıdaki şekilde bir marker oluştuşturarak istediğimiz bir noktaya işaretçi koyabiliriz.
icon: standart Google Maps simgesi yerine istediğiniz bir simge koyabilirsiniz.
title: Simgenin üzerine gelindiğinde yazacak yazıyı belirtir.
draggable: Bu özelliğin true olması halinde simgeyi sürüklenebilir yapar ancak varsayılanı false'dur. Bu nedenle hiç kullanmayabilirsiniz.

INFOWINDOW: Marker (işaretleyici) nesnesine tıklandığında çıkacak bilgi kutusu

var infowindow1 = new google.maps.InfoWindow({
content: 'Bur bir işaretçi'
})
InfoWindow'un pek bir özelliği yok content dışında. Content ile InfoWindow'da yazacak metni belirleyebilirsiniz. Tek tırnak (') lar arasında yazacağınız bu metni html taglarıyla zenginleştirebilirsiniz ('<b>Bur bir işaretçi</b> ile kalınlaştırabilirsiniz örneğin). Ancak bu işaretçiye tıkladığınızda size bir bilgi kutusu göstermez. Bilgi kutusunu görebilmek için bir Listener (dinleyici) oluşturuyoruz. Aşağıda oluşturulmuş Listener ile marker nesnesine tıklandığında (click olayı) function() içerindeki kodlar çalışacaktır.

google.maps.event.addListener(marker,'click',function(){

infowindow1.open(map,marker);
})

Tüm bunlar Google Maps'in kendi dökümantasyonundan yararlanılarak oluşturulmuştur. Türkçe kaynak sıkıntısı çekenlere umarım bir faydası dokunmuştur. Daha fazla bilgi için aşağıdaki kaynaklara göz atmalısınız.

Google Maps Kullanan Site Örnekleri

Basit Örnekler

Google'ın Maps Ana Dökümanı

Bunların dışında Google Maps'i bir masaüstü uygulamasında nasıl kullanabilirim tarzında sorularla karşılaştım. Benzer soruları olanlar için şayet .Net kullanıyorlarsa webBrowser nesnesi ile bunu yapabilirler sanırım.





QT - MySQL Bağlantısı


Bir kaç gündür QT platformu üzerinde uygulama geliştirmeye çalışıyorum. Bu süre zarfında edindiğim tecrübelerden bazılarını aktarmak istiyorum.


Console Application'da Basit Bir MySQL Bağlantısı

(4.7.4 sürümünü kullanıyorum, Windows üzerinde çalışıyorum)

QT Creator'ü çalıştırıp New File or Project>>Other Project >> Qt Console Application adımlarını izleyip next, next.. biçiminde projeyi açıyoruz.
Veritabanı bağlantısı gibi işlemleri gerçekleştirebilmemiz için Project menüsündeki projeismi.pro dosyasına 

QT += sql

komutunu yazıyoruz.

Daha sonra main.cpp dosyasını açıp bağlantı için gerekli kodları yazıyoruz:












  1. #include <QtCore/QCoreApplication>
  2. #include <QDebug>
  3. #include <QtSql/QSqlDatabase>
  4. #include <QtSql>
  5. int main(int argc, char *argv[])
  6. {
  7. QCoreApplication a(argc, argv);
  8. QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
  9. db.setHostName("127.0.0.1"); //yerel sunucuya bağlandığımızdan hostname kısmına 127.0.0.1 ya da localhost yazdık.
  10. db.setDatabaseName("test"); //veritabanı adı
  11. db.setUserName("root"); //kullanıcı adı
  12. db.setPassword("*****"); //kullanıcı şifresi
  13. qDebug()<<QSqlDatabase::drivers();
  14. if(db.open()==1) //Bağlantı başarılıyla mesaj ver.
  15. qDebug()<< "Baglandi";
  16. else
  17. //Hata mesajı ver.
  18. qDebug()<< "Hata :" << db.lastError().text();
  19. return a.exec();
  20. }

"mysql.h" Dosyası Bulunamadı Hatası

Bu hatanın çözümü için bilgisayarınızda MySQL yüklü ise C:\Program Files\MySQL\MySQL Connector C 6.0.2\include konumundaki header dosyalarını QT klasörlerinin bulunduğu dizinde include\QtSql içerisine kopyalamanız sorunu çözecektir. "QMYSQL" Driver Yüklenmedi Hatası

Bu uygulamayı yaparken beni en çok uğraştıran kısım burası oldu. QT konusunda Türkçe kaynak sıkıntısı, platformdaki acemilik, problemin kütüphanelerden mi, Mysql'den mi ya da işletim sisteminden mi kaynakladığını bilemediğimden sorunu çözmek 2-3 saatimi aldı ama aldığım sonuç neden bu işi kendime meslek edinmek istediğimi bana bir kez daha hatırlattı.
http://adf.ly/1PDfOQ adresinden libmysql.dll dosyasını indirip C:\QtSDK\Desktop\Qt\4.8.1\msvc2008\bin (ya da sizde her nasılsa) içerisine kopyalayın. Halen sorunun kaynağını tam olarak anlayabilmiş değilim ancak bu şekilde sorunu giderdim, umarım sizin de işinize yarar.

C# ile Bilgisayarın Açılışından İtibaren İnternet Üzerinden Radyo Dinleme

Merhaba arkadaşlar.

Bugün tesadüf eseri bir radyo ile karşılaştım ve çok beğendim. Ancak her bilgisayarı açışımda ya da resetlememde yeniden internet tarayıcımı açıp radyonun adresine girmem biraz can sıkıcı geldi. Bilgisayar açılışında bu radyoyu açan bir program yapamaz mıyım, en nihayetinde yazılımcıyım :), dedim ve bilgisayar açıldığında linkini bildiğimiz bir radyoyu açacak bir program yazdım.  Uygulaması düşündüğümden çok daha kolay oldu ve sizlerle paylaşmak istedim.


Visual Studio'dan bir Console Application açıyoruz. Aşağıdaki kodu yazıyoruz.


Burada söz ettiğim radyo gördüğünüz üzere sky.fm (http://adf.ly/1PDeyl) :)


Programın kodlama kısmı bundan ibaret.Geri kalan kısmı bilgisayar açıldığında bu programı çalıştırmak. Programı kaydettikten sonra programımızın bulunduğu klasöre gelip ( C:\Users\Onur\Documents\Visual Studio 2008\Projects\ gibi bir dizindedir muhtemelen) Bin\Debug içerisindeki exe dosyasını kopyalıyoruz.


Başlat > Tüm Programlar > Başlangıç klasör simgesine sağ tıklayıp Aç diyoruz. Açılan klasöre kopyaladığımız exe yi yapıştırıyoruz

Bilgisayarı yeniden başlattığımızda varsayılan tarayıcınızla linkini verdiğiniz radyo açılacaktır.

Visual Studio Kod Ekranını Özelleştirme

Visual Studio kullanan yazılım geliştiriciler Visual Studio'nun standart beyaz kod ekranını bilir. Uzun süreli çalışmalarda beyaz arkaplan gözün yorulmasına neden olabileceğinden ya da değişiklik isteyenler kod ekranının arkaplan rengini değiştirebilirler.

(2008 ya da 2010 fark etmiyor, ben 2008 için anlattım)

Bunun için Visual Studio 2008  > Tools  > Options > Environment > Fonts and Colors adımlarını izleyerek Item foreground ve Item background kutularından yazı rengi, arkaplan rengi ve yazıtipi gibi özellikleri değiştirebilirler. Ya da internette .vssetting uzantılı bu tür hazır şablonlar var. Bunları Belgelerim > Visual Studio 2008 > Settings klasörünün altına atıp Tools > İmport and Export Settings ' ten adımları izleyerek bu dosyaları da kullanbilirsiniz.