Thursday, March 11, 2010

Google Visualization Api - Interactive charts ve UTF-8 Karakter Sorunu

Visualization Api içinde "Interactive charts" son derece pratik ve gelişmiş bir şekilde grafik sunum ihtiyaçlarınızı karşılıyor. "Image Charts" için herhangi bir js kütüphanesi yüklemenize gerek olmazken bunda Google jsapi ile Visualization Api yi yükletiyorsunuz sayfanıza. Detay : http://code.google.com/apis/visualization/documentation/using_overview.html

Ben de harita üzerinden ağırlık dağılımını göstermek için kullandım şu şekilde

<script type="text/javascript" charset="utf-8" src="http://www.google.com/jsapi">
</script>
<script type="text/javascript" charset="utf-8">
    google.load('visualization', '1', {
        'packages': ['geomap']
    });
    var temp = 0;
    google.setOnLoadCallback(drawMap);


    function drawMap() {

        var data = new google.visualization.DataTable();
        data.addRows(81);
        data.addColumn('string', 'City');
        data.addColumn('number', 'Kelime Sayisi');

// ...
        data.setValue(4, 0, 'İstanbul');
        data.setValue(4, 1, 57);

        data.setValue(5, 0, 'Ankara');
        data.setValue(5, 1, 42);
// ...

var options = {};
   options['region'] = 'TR';
   options['colors'] = [0xA493FF, 0x4C51CD, 0x00065E]; // colors
   options['dataMode'] = 'regions';
   options['width'] = '540px';
   options['height'] = '348px';
 
   var container = document.getElementById('map_canvas');
   var geomap = new google.visualization.GeoMap(container); 
  
   var ikinci_sehir="";
   var ilk_sehir="";
   
  google.visualization.events.addListener(geomap, 'regionClick', function(e) {   
   sehir=e['region']; // tıklanan sehri su sekilde getirir : TR-06   : TR-PLAKA  
 });
 
 geomap.draw(data, options);
 
    };


Çok da güzel oldu aslında.



Fakat tek sorun Türkçe karakterlerde.
Tam şurada şehir adlarını eklediğim yerde :
  
        data.setValue(4, 0, 'İstanbul');
        data.setValue(4, 1, 57);
        data.setValue(5, 0, 'Ankara');
        data.setValue(5, 1, 42);

Bu grafiğin aynısı google analytics'de de var ve fakat orada Türkçe karakter sorunu yok. Yani çözümsüz bir şey değil fakat henüz çözüm bulamadım.

Mesela neler yaptığımı da yazayım, "şunu yap bunu yap öyle dene" demeyin yani :

1. Sayfanın karakter kodlaması gerçekten de UTF-8 mi diye kontrol ettim
2. header ('Content-type: text/html; charset=utf-8'); yaptım üstüne bir de
3. javascript tagına charset="utf-8" ekledim
4. google jsapi'ye karakter kodlaması parametresini utf-8 verdim bir d eöyle yüklettim
5. Gelen şehir isimleri "string" değerlerimi veritabanından doğrumu çekiyorum
6. iconv ile utf-8 gelen şehir adlarını bir de iso formatına çevirdim.
7. 6 dakininin tam tersini yaptım
8. bıktım usandm bıraktım
9. google araması yaptım
10. uykum geldi bu yazıyı yazdım


Çözüm bulur bulmaz yazacağım buraya. Fakat lurda okuyan bir bilinçli internet kullanıcısı çözümü biliyorsa yorum olarak yazsa ne güzel olur?

Saturday, March 6, 2010

Google Maps Api : Adresten haritaya

<!-- Açıklama yaz :) -->

 <script src="http://maps.google.com/maps?file=api&v=2&key=ApiKeyinizBurayaYazılacak&sensor=true"
        type="text/javascript"></script>
       
    <script type="text/javascript">
 var geocoder;
 var map; 
 function initialize() {
 var geocoder = new GClientGeocoder();
 var map = new GMap2(document.getElementById("map_canvas"));
   geocoder.getLocations("Ankara , TURKEY", function(result){
          if (result.Status.code != 200) {
            alert('Could not geocode "' + result.name + '"');
            return;
        }
          place = result.Placemark[0];
          point = new GLatLng(place.Point.coordinates[1],
                              place.Point.coordinates[0]);
          map.setMapType(G_HYBRID_MAP);
          map.setCenter(point, 8);
          marker = new GMarker(point);
         map.addOverlay(marker);
         alert("OK");
          marker.openInfoWindowHtml(place.address);
    
   });
 
 }
  
    $(document).ready(function(){
     initialize(); 
    });

    </script>


Konuyu irdeleyin:
geocoder.getLocations : 
 - http://www.google.com.tr/search?hl=tr&rlz=1C1GGLS_trTR355TR355&q=geocoder.getLocations&btnG=Ara&meta=&aq=f&oq=
- http://www.developer.com/tech/article.php/3615681/Introducing-Googles-Geocoding-Service
google maps api ref. : 
- http://code.google.com/apis/maps/documentation/reference.html

Friday, March 5, 2010

jquery ile akıllı liste çözümleri

<ul> veya <ol> bir listeniz vardır uzunca, belki dinamik oluşmuştur, genişliği değişkendir fakat genişliğine göre sayafda sütunlara bölünmesini istiyosunuz. Bu sadece görsel bir durumdur. İşte bu durumda şunu ve bunu kullanabilirsiniz.


Konuyu iredeleyin
http://plugins.jquery.com/project/makeacolumnlists
http://www.sohtanaka.com/web-design/smart-columns-w-css-jquery

Bir Teknik Eleman için Askerlik Öncesi "To Do" listesi

Sadece askerlik öncesi değil aslında, eğer bir süreliğine işlere ara verecekseniz, mesela kısa olmayan bir tatile çıkacaksanız da bu liste önemli.

Ben bir süre işlere ara vermem ile bu listede yapmam gerekip de yapmadığım bir çok şey olduğunu anladığımda oldukça gerilmiştim.

Teknik Kişi İçin Askerlik Öncesi To Do
(bu listeyi bir kağıda yazın. yanlarına da birer kutucuk koyun, aman atlamayın hiç birini)
  1. Inbox Düzenlemesi
    • Gmail
      1. Düzenli gelen maillerin neler olduğunu not al
      2. Düzenli gelen maillerin her biri için ayrı bir filtre oluştur ve etiket aç ("Skip inbox" demeyi de unutma) 
      3. Bir "otomatik cevap" oluşturmayın. Sonra üye olduğunuz tüm gruplara da ha bire bu mesaj gider durur. Can sıkıcı.
      4. Üye olduğunuz mail gruplar için de filtre ve etiket yapın. Glen kutusuna düşmemesini sağlayın.
      5. Gmail şifreni değiştirin.
    • Outlook
      1. Tüm verilerin yedeğini al. glen mailleri sunucudan gmailine yönlendir. 
      2. Gmail için yazılan  1, 2 ve 3. maddeleri uygula
  2. Abone Olduğunuz Dergiler
    • Adresine gelebilecek olan dergiler için birini tembihle o dergilerin posta kutusunun üstünde veya yerde zedelenmesine mani olsun veya dağıtım adresini bir arkadaşının adresi olarak değiştir.
  3. FTP bilgileri vs
    • FTP bilgileri kağıda yazma (bunu zaten yapmayın)
    • Eğer bilgileri birisine illede vermek gerekiyorsa yeni ftp hesabı açıp ver
    • Eski şifrelerini değiştir
    • Ftp client daki kayıtlı şifrelerini sil! Hepsini.
    • Zend, Dreamweaver gibi programlardaki kayıtlı hesap bilgilerini sil!
    • İnternet tarayıcılarında kayıtlı ftp şifrelerini sil!
  4. Müzik & Film
    • Bu çok önemli bir madde. Tüm müzik arşivini lütfen DVD lere çek önce.
    • Tüm müzik ve film arşivinin indeksini oluştur. Bunu yapan programlar var (veya Windows'ta tree komutu ile de yapabilirsin.)
  5. Browser
    • Browser a kayıtlı şifrelerini koruma altına al (Firefox ile bu mümkün)
  6. Blog
    • Bloguna "askere gittiğine" veya "tatile çıktığına" dair bir yazı yazmayı unutma. İnsanlar neden yazılarına ara verdiğini bilsin.

    Thursday, February 4, 2010

    Search Engine Optimization Toolkit Nedir?

    TAVSİYE EDİYORUM

    Bir arkadaşımın tavsiyesi ile denediğim bir çeşit SEO analiz aracı. Bir siteyi dernilmesine tarayarak bulduğu her sayfadaki (SEO ile ilgili) sorunları, html hatalarını listeleyor güzelce. Raporlaması güzel.

    Aslında tek başına çalışan bir uygulama değil. IIS bileşeni. Bu nedenle sisteminize bu aracı kurarken IIS'i de otomatik olarak kuaracak. Deneme için mecbur kurdum.

    Eğer sisteminizde IIS yoksa kurulum sonrası sistem yeniden başlatmak gerekcektir.



    Kurar kurmaz denedim. 7 dakikada 1617 sayfamı tarayarak 5367 uyarı verdi. Benzer uyarıları içeren sayfalar gruplanmış olarak listeleniyor.




    Sevdiğim yanları
    Sayfaardaki hataların yanı sıra performasn raporu da sunuyor.
    Ummadığım hatta hiç bağlantı vermediğimi düşündüğüm sayfaları dahi taradı. Taram oldukça derin.
    Raporlar çok detaylı.
    Taranan tüm sayfa verilerini yerel diskte saklayabiliyor.
    Analiz sonuçlarını sorgulayabiliyorsunuz. Detaylı ve geniş analizler sonuçlarında filtremele, arama yetenekleri başarılı.


    Sanırım sevdim bu uygulamayı.

    Konuyu irdeleyin:
    detay : http://www.iis.net/expand/SEOToolkit
    download : http://go.microsoft.com/?linkid=9695987

    Monday, January 25, 2010

    mysql - bir tablodan başka tabloya kopyalamak zor değil korkmayın

    Bazıları çok canını sıkıyor bu işlem için. Daha geçen gördüm adamcağız bir tablodan aynı veri yapısından olmayan başka bir tabloya verileri kopyalamak icin ömründen bir gecesini yedi. Zor değil efendim. Bakın işte örnek

    INSERT INTO yeni_tablo(farkli_id_sutun, ilce , il) SELECT id, ilce , il FROM kaynak_tablo

    Thursday, January 14, 2010

    google wave için sansür robotu denemesi

    Belirlenen kelimeler yazılıp gönderildiğinde istenen alternatifleri ile değiştiren robottur.
    (yazılıp gönderilmeden önce yazılır yazılmaz da yapılabilir ancak çok yavaş oldu o zaman).

    Hızlıca ilk adımları atlıyorum
    (Google App Engine Launcher sahibi olmalısınız ki zatn bedava bir uygulama onu bir indirin. Bu uygulamayı öyle deploy ediyorum ben)
    1. Google App Engine bir uygulama oluştur (ben tayyarrobotfiltre yaptım)
    2. waveapi (python) indir
    3. tayyarrobotfiltre dizini içine waveapiyi kopyala
    4. App.yaml oluştur :
    application: tayyarrobotfiltre
    version: 1
    runtime: python
    api_version: 1
    
    handlers:
    - url: /_wave/.*
      script: main.py
      
    - url: /assets
      static_dir: assets
     
    - url: /argo.txt
      static_files: argo.txt
      upload: argo.txt
    

    5. argo.txt diye bir dosya (ana dizine) oluşturun. İçinde "dict" oluşturun şunun gibi (içeriğini arttırın tabi. bu bir deneme) :

    'salak': 's****', 'salakca':'s****', 'aptal':'a*****'

    (aslında xml ile yapmak isterdim ama python çok yeni bir dil bana. siz isterseniz genişletebilirsiniz.)


    6. ve python kodumuz da şöyle main.py


    # -*- coding: utf-8 -*-
    #!/usr/bin/python
    # Copyright (C) 2010  Hasan Tayyar BEŞİK
    # tayyar.besik@gmail.com
    
    
    import re
    import urllib2
    
    
    from waveapi import events
    from waveapi import model
    from waveapi import robot
    from waveapi.document import Range
    
    
    
    def replace_all(text, dic):
        for i, j in dic.iteritems():
            text = text.replace(i, j)
        return text
    
    
    def OnBlipSubmitted(properties, context):
     """Invoked when a Blip is submitted to the wave."""
     blip = context.GetBlipById(properties['blipId'])
     contents = blip.GetDocument().GetText()
     dic1 = {'manyak':'m***k','okuz':'o***z','aptal':'a***l','mongol':'****','yalaka':'******','salak':'******'} 
    
     response = urllib2.urlopen('http://tayyarrobotfiltre.appspot.com/argo.txt')
     #dic = eval('{%s}' % open("/argo.txt","r").read())
     dic = eval('{%s}' % response.read().encode('utf-8'))
    
     newcontents = replace_all(contents,dic)
     if newcontents != contents:
      blip.GetDocument().SetText(newcontents)
     #blip.GetDocument().SetText(dic)
     #blip.GetDocument().SetText(response.read())
     
    def OnDocumentChanged(properties, context):
            """Invoked when the document is edited."""
            pass
    
    def OnRobotAdded(properties, context):
            """Invoked when the robot has been added."""
            root_wavelet = context.GetRootWavelet()
            root_wavelet.CreateBlip().GetDocument().SetText("Merhaba; Ben bir robotum. Konuşmalardaki kötü ifadeleri kaldırırım.  ;)")
    
    if __name__ == '__main__':
            myRobot = robot.Robot('Tayyar Robot Filtreleme',
                            image_url='http://tayyarrobotfiltre.appspot.com/assets/icon.png',
                            version='2',
                            profile_url='http://tayyarrobotfiltre.appspot.com/assets/profile.html')
            myRobot.RegisterHandler(events.BLIP_SUBMITTED, OnBlipSubmitted)
            myRobot.RegisterHandler(events.DOCUMENT_CHANGED, OnDocumentChanged)
            myRobot.RegisterHandler(events.WAVELET_SELF_ADDED, OnRobotAdded)
            myRobot.Run()
    
    
    

    Wednesday, January 13, 2010

    python populer utf8 meselesi

    Python ole cok yasanan sorun UTF-8 kod dosyası ve UTF-8 harici dosyadan veri okumakdir.


    1. Dosuynin en basina şu satırı eklemek yeterli

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


    2. Ayrica veriyi okurken de

    sock.read()..encode('utf-8')

    Wednesday, January 6, 2010

    wget ile cookie

    TAVSİYE EDİYORUM

    Mesela rapidshare'den dosyaları wget ile çekmek istedik. işte burada wget ile evvela cookileri yüklemek gerek. Rapidshare in sadece bir satı bir cookie bilgisi var.

    (Önce rp panelinden "direct download" aktif hale getirilmeli)
    Daha sonra rp'e giriş yapınca elinizdeki cookie'yi bir metin belgesine saklayın (mesela rpcookie.txt içine).

    .rapidshare.com TRUE / FALSE 1122334455 user 111111-%20%20%20%20%20%20%20%20

    ve sonrasında şu kod yeterli olacaktır

    wget --load-cookies=rpcookie.txt http://rapidshare.com/files/319105750/Debut.rar
    

    (rapidshare linki örnektir :) )




    konuyu irdelemek için
    http://www.g-loaded.eu/2007/09/15/use-wget-or-curl-to-download-from-rapidshare-premium/

    Tuesday, December 29, 2009

    MSSQL Error : String or binary data would be truncated. The statement has been terminated.

    Hayatta yapmadığım şeyi yaptım ve veri tipini nvarchar() olarak tanımlarken büyüklüğü hakkında hiç düşünmeden "10" dedim. nvarchar(10)


    sonra olan oldu ve
    String or binary data would be truncated. The statement has been terminated.

    Aradan sinir dolu dakikalar geçince gördüm ki hata veri alanın yetersiz olmasından. nvarchar(50) yaptım ve hatadan kurtuldum

    Siz siz olun verilerinizin olası büyüklüğü hakkında değerlendirme yapmadan alanlarınızı tanımlamayın.

    Monday, December 28, 2009

    asp.net - gridview hücrelerindeki verileri html olarak formatlasın

    Zaten ne demeye varsayılan olarak html formatlamıyorsa anlamadım.
    Şöyle yapmak gerekebilir :

    protected void raporGrid_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                e.Row.Cells[index].Text = Server.HtmlDecode(e.Row.Cells[index].Text);
            }
        }


    yok yok ben neden yıllardır asp.net'ten uzak durduğumu şimdi anladım. işim biter bitmez php ile devam!

    Tuesday, December 22, 2009

    asp.net repeater içinde kayıt numarası

    Kayıtın kaçıncı kayıt olduğunu (indisini) böyle alabilirsiniz : Container.ItemIndex

    yani :

    <asp:repeater id="Repeater1" runat="server">
            <itemtemplate>
                    Kayıt : <%# Container.ItemIndex %>
            </itemtemplate>
            <separatortemplate>
                    <br />
            </separatortemplate>
    </asp:repeater>
    

    Tuesday, December 1, 2009

    Wordpress Kategori Hariç Etmek

    YENİ ÖĞRENDİM

    Wordpress template fonksiyonlarını yeni yeni irdeliyorum.
    Wordpress'de yazıları listelemek için query_posts kullanırız. query_posts ile istediğim kategorileri listelerken istemediğim kategorileri de "kategori id" başına "-" (eksi işareti) koyuyorum.

    query_posts("cat=1,2,-3,-8");

    Saturday, October 17, 2009

    web içeriğini sql cümleleriyle sorguluyorum

    TAVSİYE EDİYORUM

    php ile web içerikleri çekerken sql sorular gibi içerik sorgulamak için bunu kullanıyorum. Yani istediğim elemanları seçmek için oldukça fantastik bir class : htmlSQL
     "a PHP class to query the web by an SQL like language"


    Örnek üzerinden deneyerek karar veirn : http://www.jonasjohn.de/lab/htmlsql/?url=2&q1=1&q2=8&q3=0


    --


    Kısa süreli deneyimim sonrasında gördüm ki oldukça işlemci yoran ve çok yavaş bir yöntem. Ancak hala "tavsiye ediyorum" etiketini kaldırmadım çünkü bir o kadar da eğlenceli.

    Saturday, September 26, 2009

    server-side değil "Client-side PHP"





    Yine bir gün stumble yaparken şu js kütüphanesi ile karşılaştım : http://phpjs.org/

    Asıl amacı php fonksiyonlarını client-side çalışır yapabilmek. Bir de kılıfı var; diyor ki : PHP.JS kullanarak, client-side teknolojiler ile çok uğraşan PHP geliştiricilerini hızladırabilir.

    Bir de özetle şöyle demişler :
    "PHP.JS is an open source project in which we try to port PHP functions to JavaScript. By including the PHP.JS library in your own projects, you can use your favorite PHP functions client-side."

    İlk bakışta eksik yanı mutlaka çok olacaktır, ancak meseleyi irdeleyince php.js kullanan bir kütüphane daha buldum ki o daha tatmin edici geldi : http://www.harmony-framework.com
    Harmony henüz beta ve kendilerini şöyle özetliyorlar :

    Harmony's goal is to bring php in the browser, thus developing on the server and on the client side using only one language. PHP, which is simple to use and known by thousands, is a perfect fit. No needs to learn javascript any more. The conversion between the two language is instantaneous! (Learn what you cannot do).



    Konuyu irdelemek için
    http://phpjs.org
    http://www.harmony-framework.com/

    Friday, September 18, 2009

    jquery09 spotlights at slideshare

    NOT DÜŞTÜM

    slideshare.net de dokümanları gezerken ana sayfada jquery09 spotlights altında ilgi çekici bir kaç sunu buldum. Birisini de geçen hafta ben eklemiştim. Bir çırpıda jquery deneyimi yaşatan, başlangıç için heveslendiren bir sunuydu. Şöyle göz atın bence. Hatta indirip jquery kullanmasını tavsiye ettiklerinize gönderiverin. Diğer seçilmiş sunular da şu adreste : http://www.slideshare.net/tag/jquery09


    Bu sununun yazarı :
    • Kyle Bradshaw
    Front End Web Developer
    • Blog - http://somedirection.com
    • AIM - kyledbradshaw
    • Twitter - @ky

    Thursday, September 17, 2009

    php ile pdf işlemlerimi artık tcpdf ile yapıyorum

    ÖĞRENDİM
    TAVSİYE EDİYORUM

    PHP ile pdf işlerim için bunca zamandır pdfb (fpdf+barcode) kullanıyordum ama artık daha iyi olduğunu düşündüğüm bir sınıf var : TCPDF

    TCPDF'de de barkod özelliği eklenmiş.
    Ayrıca örnekleri incelediğimde pdfb den eksik kalır yanı olmadığını gördüm.

    Yapılabilecekler örnekleri ile şöyle sıralanmış :

    1. Simple PDF with default Header and Footer: [PHP] [PDF]
    2. Simple PDF without Header and Footer: [PHP] [PDF]
    3. Custom Header and Footer: [PHP] [PDF]
    4. Cell stretching: [PHP] [PDF]
    5. Multicell: [PHP] [PDF]
    6. WriteHTML and RTL support: [PHP] [PDF]
    7. Independent columns with WriteHTMLCell: [PHP] [PDF]
    8. External UTF-8 text file: [PHP] [PDF]
    9. Image: [PHP] [PDF]
    10. Multiple columns: [PHP] [PDF]
    11. Colored Tables: [PHP] [PDF]
    12. Graphic Functions: [PHP] [PDF]
    13. Graphic Transformations: [PHP] [PDF]
    14. Javascript and Forms: [PHP] [PDF]
    15. Bookmarks (Table of Content): [PHP] [PDF]
    16. Document Encryption: [PHP] [PDF]
    17. Independent columns with MultiCell: [PHP] [PDF]
    18. Persian and Arabic language on RTL document: [PHP] [PDF]
    19. Non unicode / Alternative config file: [PHP] [PDF]
    20. Multicell complex alignment: [PHP] [PDF]
    21. writeHTML alignment: [PHP] [PDF]
    22. CMYK colors: [PHP] [PDF]
    23. Page Groups: [PHP] [PDF]
    24. Object Visibility: [PHP] [PDF]
    25. Object Transparency: [PHP] [PDF]
    26. Text Clipping: [PHP] [PDF]
    27. Barcodes: [PHP] [PDF]
    28. Multiple page formats: [PHP] [PDF]
    29. Set PDF viewer display preferences: [PHP] [PDF]
    30. Colour gradients: [PHP] [PDF]
    31. Pie Chart Graphic: [PHP] [PDF]
    32. EPS/AI vectorial image: [PHP] [PDF]
    33. Mixed font types (TrueType Unicode, core, CID-0): [PHP] [PDF]
    34. Clipping masks: [PHP] [PDF]
    35. Line styles with cells and multicells: [PHP] [PDF]
    36. Text Annotations: [PHP] [PDF]
    37. Spot Colors: [PHP] [PDF]
    38. NON-embedded CID-0 CJK font: [PHP] [PDF]
    39. HTML Justification: [PHP] [PDF]
    40. Booklet (double-sided pages): [PHP] [PDF]
    41. File attachment: [PHP] [PDF]
    42. Image with Alpha Channel Transparency: [PHP] [PDF]
    43. Disk caching: [PHP] [PDF]
    44. Move and delete page: [PHP] [PDF]
    45. Table Of Content with Bookmarks: [PHP] [PDF]
    46. Text hyphenation: [PHP] [PDF]
    47. Transactions and UNDO: [PHP] [PDF]
    48. Table header and rowspan: [PHP] [PDF]
    49. TCPDF methods in HTML: [PHP] [PDF]
    50. Experimental 2D Barcode: [PHP] [PDF]
    51. Full page background: [PHP] [PDF]
    52. Digital Signature Certification: [PHP] [PDF]
    53. Javascript functions: [PHP] [PDF]
    54. XHTML Form: [PHP] [PDF]



    Tuesday, September 15, 2009

    gmail kullanıcı dostudur, size öneriler sunar

    Gmail kullanmayı seviyorum. Çünkü her zaman pratik ve kullanıcı dostu.

    Geçen yeni bir özelliğini fark ettim.
    Sürekli mesaj attığım bir grup mail adresi var. Bir kere de bu grubun sadece bir bölümüne mesaj atacaktım ki gmail bana "şunları da ekleyebilirsin" diye gruptaki diğer adresleri gösterdi.

    Friday, September 11, 2009

    Hızlı Yol Tarifi Formu

    TAVSİYE EDİYORUM

    Eğer oldukça pratik bir şekilde google maps yol tarifi vermek isteseydim bir form koyardım ve bu formu google maps e post eylerdim. Şöyle ki:

    <form action="http://maps.google.com/maps" method="get">
       Konum <input type="text" id="saddr" name="saddr" />
       <input type="hidden" id="daddr" name="daddr" value="Ankara, Türkiye" />
       <input type="submit" value="Yol Tarifi Al" />
    </form>
    


    İsterseniz hemen deneyin:

    Konum

    Saturday, September 5, 2009

    javascript kullanarak iphone, android, blackberry uygulamalar

    ÖĞRENDİM
    TAVSİYE EDİYORUM


    Sadece javascript bilgimle iphone uygulaması geliştirmenin bir yolunu daha buldum : http://phonegap.com
    Henüz denemedim. Videolarına baktım ve dökümanları inceldim. Tam aradığım bir geliştirme kiti.

    Aslında bizim jquery john bundan bahsetmiş aylar evvel. Ancak ben epey geriden geliyorum anlaşılan.