Android "Id cannot be resolved or is not a field" Hatası

Böyle bir hata alıyorsanız ilk olarak xml ve drawable dosyalarında bir hata olup olmadığını kontrol edin. Daha sonra Project->Build Automatically'nin seçili olmadığından emin olduktan sonra projeyi clean edin ve tekrar build edin. Hata devam ediyorsa Activity dosyalarında import andorid.R; satırı mevcutsa bu satırı silin. Kendi problemimi bu yolla çözdüm ama sizin probleminiz farklıysa tek çare stackoverflow.com :)

Visual Studio Jquery Intellisense

Geçtiğimiz günlerde bir proje oluşturmaksızın Visual Studio'da javascript yazarken JQuery intellisense özelliğini kullanmak istedim ve bunun için bulduğum yöntemi buraya not düşüyorum.

 Visual Studio'da JQuery intellisense özelliğini kullanmak için ihtiyacımız olan tek şey  "jquery-vsdoc.js" dosyası.
Bu dosyayı elde etmek için şu adımları izledim:

  1. Bir "ASP.Net Empty Web Site" oluşturdum (Başka bir proje de oluşturabilirsiniz).
  2. Paket Yöneticisi (View -> Other Windows ->  Package Manager Console)'ne "Install-Package jQuery-vsdoc" yazarak projeye bu dosyayı ekledim
  3. Daha sonra Solution Exlorer'da bu projeye sağ tıklayıp "Open Folder In File Explorer" seçeneğiyle projeyi dosya dizininde görüntüleyerek jQuery-vsdoc.js dosyasının bulunduğu dizine giderek bu dosyayı kopyaladım.
Kopyaladığım dosyayı üzerinde çalıştığım (deneme.js olsun) dosya ile aynı dizine yapıştırdım (Örneğin masaüstünde ise bu deneme.js dosyası, jQuery-vsdoc.js dosyası da masaüstünde).

deneme.js dosyasını Visual Studio ile açarak en üste şu kısmı ekliyoruz :

/// <reference path="jquery-2.0.3-vsdoc.js" />
(Versiyon farklılığı olabilir)

Adımlarda hata olmadıysa bu işlemlerin sonunda intellisense özelliğini kullanabiliyoruz.

Java'da Line2D ile üçgen ve dörtgen çizdirme - Draw triangle and ractangle with Line2D function in java



import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Line2D;
import javax.swing.JFrame;
import javax.swing.JPanel;


public class FrameDemo extends JFrame{
        //Kurucu fonksiyon
public FrameDemo(){
JPanel panel = new JPanel();
getContentPane().add(panel);
setSize(500, 500);
setTitle("Title");
}

public void paint(Graphics g){
super.paint(g);
Graphics2D g2 = (Graphics2D) g;

//ilk parametre doğrunun x eksenindeki başlangıç noktasını,ikinci paremetre y eksenindeki başlangıç noktasını
//üçüncü parametre x eksenindeki bitiş noktasını, dördüncü parametre ise y eksenindeki bitiş noktasını gösterir.

               //first parameter is x coordinate of the start point,
               //second parameter is y coordinate of the start point,
               //third parameter is x coordinate of the end point,
               // fourth parameter is y coordinate of the end point

                //üçgen - triangle
g2.draw(new Line2D.Double(50,150,150,150)); //üçgenin tabanı - bottom
g2.draw(new Line2D.Double(100,100,50,150)); //sol taraf - left line
g2.draw(new Line2D.Double(100,100,150,150));//sağ taraf - right line

                //dörtgen - rectangle
g2.draw(new Line2D.Double(50,150,150,150)); // üst taban - top
g2.draw(new Line2D.Double(50,150,50,250));//sağ kenar - right line
g2.draw(new Line2D.Double(150,150,150,250)); //sol kenar - left line
g2.draw(new Line2D.Double(50,250,150,250)); //alt taban - bottom
}

public static void main(String args[]){
FrameDemo f = new FrameDemo();
f.setVisible(true);
}
}

PhpMyAdmin "Http error 404. the requested resource is not found" Hatasının Çözümüne Yönelik Bir Yöntem

Seyrek aralıklarla kullandığım PhpMyAdmin'i çalıştırmak istediğimde "Http error 404. the requested resource is not found" hatasıyla karşılaştım. Hatanın çözümü biraz zamanımı aldığından bir daha uğraşmamak için buraya not düşüyorum. C:\wamp\bin\apache\apache2.4.2\conf dizinindeki "httpd.conf" dosyasını not defteri ile açıp "Listen 80" yazan kısmı "Listen 8080" olarak değiştirip kaydedin. Sayfa görüntülemek için ise "http://localhost/phpmyadmin/" yerine "http://localhost:8080/phpmyadmin/" URL ini kullanıyoruz. Eğer sorun çözülmediyse WampServer'i kaldırıp bilgisayarı yeniden başlatıp tekrar kurarak adımları tekrarlamak sonuç verebilir. Bir başka sorun kaynağı IIS ayarları olabilir.

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.