29 Şubat 2012 Çarşamba

Prism - Web sitesi masaüstü programı üreteci

Mozillalabs da denk geldiğimiz bir proje şöyle diyor : "Prism is an application that lets users split web applications out of their browser and run them directly on their desktop" Yani diyor ki ; Prism, web uygualamalarını browser'dan ayırarak masaüstüne taşıyan, ve doğrudan masaüstünden çalışmasını sağlayan bir uygulamadır.   Denedim, şöyle çalışıyor. Mozillalabs ın projesi olduğundan yani bir mozilla ürünü diyebiliriz. ilk önce 2 yol var. birincisi firefox a eklenti olarak kurabilirsiniz. (Zaten yavaş olan firefoxunuzu daha da yavaşlatırsınız böylece) İkincisi de, ayrı bir uygulama (standalone application) olarak indirirsiniz bilgisayarınıza . (indirmek için tıklayınız) ben 2. yoldan devam ettim. daha sonra indirdiğiniz zipi açarsanız, içinde prism.exe dosyasını çalıştırınca önünüze aşağıdaki pencere açılacak. Url kısmına istediğniz web sitenizi, isim kısmına da kısayolda kullanacağınız ismi yazmanız yeterli olacaktır. Diğer ayarlar da browserdaki adres çubuğunu, vb yi açmak kapatmak içindir, deneyip görebilirsiniz.   Masaüstü programı oluşturup sadece o siteye girmenize izin veren bir browser edasında çalışıyor, zaten içinde de firefox motoru vardır. (Kendi , javascript frameworku ile yazdığımız sitelere girdiğimizdeki yavaşlıktan anladım.)   Yine de, mantıklı, kullanılabilir, değişik bir şey. Deneyin! Devamı için : Prism - Web sitesi masaüstü programı üreteci

28 Şubat 2012 Salı

mysql ortalama (avg) fonksiyonu

Çok basit bir konu olan ortalama alma, mysql içinde tek bir fonksiyon (avg fonksiyonu) ile yapılabilmektedir. Her veritabanında muhtemelen vardır zaten. Aklımızda bulunsun, aranınca da bulunsun.. Örnek : Bir blogumuz olsun ve içinde yazılarımıza puan verenlerin tutulduğu bir sütunumuz olsun.
select avg(point) from posts;
point sütunundaki değerin ortalamasını almak manasına gelmektedir. query yapılan tablodaki sorgu sonucu için ilgili sütunun ortalamasını döndürür. Devamı için : mysql ortalama (avg) fonksiyonu

25 Şubat 2012 Cumartesi

Bir klasordeki optimum dosya sayisi (optimum file count in a directory)

Bir serveriniz varsa, içerisinde bir sürü accountunuz varsa, veya 1 serverdaki birden çok accountu yönetiyorsanız, bu anlatacağımen çok size. Herkes için de fayadalı bir bilgi tabiki. Bir yazılımda cache, temp,vb gibi klasörler olmaktadır. Yalnız bu klasörlerin içeriği dinamik olarak kısıtlanmadığından, veya kısıtlanmasının maliyetinden dolayı, klasördeki dosya sayısı çok dinamik olarak artacaktır. Normalde bir klasöre elle de çok fazla dosya atmış olabilirsiniz. Bu da benzer bir durumdur. örneğin bir ürün kataloğunuz var ve resimleri katalog klasörünün altına koydunuz. Bu noktada önerimiz bir klasör içine 3000-5000 den fazla dosya koymayın. Bu tabi direkt bu sayı olarak söylemem zor ama yine de 10000'den kesinlikle fazla olmasın. Alt klasörden bahsetmiyorum, dosyadan bahsediyorum. Burada alternatif olarak katalog klasörünün içine 01/, 02/ diye klasörler açıp 500 500 koymakta yarar var. Kendinizi işletim sisteminin yerine koyun. Elinizde bir adres var, içinde yığınla insan var. Siz içlerinden daha önce tanışmadığınız birini arıyorsunuz, kendisinden bir bilgi alacaksınız. Bulmanız çok zor. Özellikle bu içerideki kişilerin isimlerinin ilk birkaç karakteri aynı ise, o zaman iş daha da zorlaşır. Bu noktada belirtilen adreste odalar koysanız, insanları da alakalı oldukları yere göre odalara koysanız, (odalar burada klasör manasına geliyor, yapılan işlem de klasör oluşturarak manuel indeks oluşturmak) aradığınız şeyi hangi odada arayacağınızı bildiğiniz sürece işlemini hızlanacaktır. Ki zaten klasör ismini biz veriyorsak, olumlu etki edecektir. Benim gibi bir cache klasöründe 40000 tane dosya oluşmasını ve hatayı tespit etmek için serverda cirit atmanız gerekmeden bu bilgiyi öğrenebilirseniz ne güzel. 40000 dosya (zend_cache dosyası) içinden php, ilgili dosyayı load edesiye kadar mysqlden çekse çok daha hızlı olacaktı halbuki. (cache tamamen ters bir mantığa dönmüştü). Dinamik bir cache mantığı vardı. Olayı da şöyle tespit ettim ; mysqlde doğru düzgün query düşmüyordu. Serverda top komutu çalıştırdığımızda httpd isteklerinin normalden 2-3 kat cpu harcadığını gördük, connection sayısı da normalden azdı. Biz de ilk önce mail serveri veya yedekleme ile ilgili bir sorun oluştuğunu düşündük fakat, gelen isteklerin yoğunluk yaratan accountlarından birinin cache klasörüne girip baktığımda bu tabloyla karşılaştık. Bu dosyaları temizlediğimizde ise makinadaki stres tamamen gitti. (Bu konuda yazılım geliştirmesi ile görev oluşturduk, ve gelişimi için gerekli aşamalara başladık.) Bu bilgiyi tecrübe ederek öğrenmemeniz dileğiyle, iyi çalışmalar dilerim. Devamı için : Bir klasordeki optimum dosya sayisi (optimum file count in a directory)

21 Şubat 2012 Salı

php include pathe ekleme yapmak (append include_path)

phpde çoğu zaman include ettiğimiz dosyalar genel bir klasörün altındadır. Ve include_path dediğimiz kavram php.ini içinde olduğundan , standart web hostinglerde vb bu kısma erişemezsiniz. Bu noktada işinizi kolaylaştırmak için çalışma anı için include ettiğiniz dosyalar için klasörünüzü ayarlayabilirsiniz. örnğein aşağıda bir üst dizini
  $path = "../";//bir üst dizini include path e ekler,  $path = "d:/www/proje1/"; // d:/www altındaki proje1 klasörünü dahil eder, vb..vb..    set_include_path(get_include_path() . PATH_SEPARATOR . $path);  
Ayrıca bu işlem bir framework kullanırken felan da sıkça lazım olur. index.php nizin en tepesinde yazıp, sonra diğer işlemlerinizi rahatça yapmanızı sağlar. ileride bu include edilen dosyaları içeren klasörün yeri değişirse de toplamda 1 satır kod düzenleyeceksiniz. Bu da işin avantajı olacaktır. Devamı için : php include pathe ekleme yapmak (append include_path)

20 Şubat 2012 Pazartesi

php 5.3 goto ozelligi

Herkesin c dilinde döngüleri öğrenmeden önce ilk öğrendiği anahtar herhalde kelimedir goto. nedir goto? bir etiket verirsiniz, bir yerde de goto etiket dersiniz. kod bloğu etiketin olduğu satıra sıçrayıp oradan akmaya devam eder. Fakat hocalarımız dahi kızar goto kullananlara puan vermez sınavalrda. Çünkü yazılım ve kod mantığına aykırıdır goto. Peki php 5.3 te neden dahil edilmiş goto? açıkçası sebebini bilmiyorum. 3 yıldır üzerine çalışılan bir şey olmasa gerek. Commit edilmesi php5.3 olması, bunu düşündürtüyor ama herhalde değildir. goto'nun syntax'ını da öğrenip kullanmamanız için anlatmıyorum :) zor değil zaten. Önerilerim : * goto kullanmayın * goto kullanacak kod yazmayın. * goto ihtiyacı doğduysa kodunuzu silin baştan yazın. * illa da gerekiyor ama diyorsanız, bilgisayarınıza format atın, nikah şekeri işine girin. Herkese iyi çalışmalar dilerim. Devamı için : php 5.3 goto ozelligi

17 Şubat 2012 Cuma

Mysql Got error 28 from storage engine hatasi

Mysql ile çalışan bir sisteminizde Got error 28 from storage engine hatası alıyorsanız eğer, harddiskinizde işlem yapacak en ufak bir yer kalmamış demektir. basit bir select sorgusunda bile, (diska bir şey yazılmıyor zannediyorsanız, mysql-cache açıksa bunu cachelemek için diske yazar) bu hatayı alabilirsiniz. Diskinizde bir miktar yer açarsanız yani kısaca mysql için çalışma alanı oluşturabilirseniz, problem çözülecektir. Genelde tmp klasörü içindekiler silinebilir. ama doğrudan problem bu klasörün dolması demek değildir, disk'inizin dolmasından dolayıdır. Amaçsızca bir şeyler silmeyiniz :) Devamı için : Mysql Got error 28 from storage engine hatasi

linux nohup komutu (command) - arka planda komut calistirma

Çoğu zaman bir uzak sunucuya ssh üzerinden bağlanırız. Bir shell (terminal, veya kabuk artık ne diyorsanız) komutu çalıştırığınızda ve daha sonra çıkış işlemi yaptığınızda, işlem veya komut kapatılır (kill edilir). Bazı işler ise öyle 1-2 dakikada bitmez, uzun bir süre çalışması gerekir. Bu durumda, çıkmanız da gerekiyorsa, ne yapacaksınız? nohup ön komutunu kullancaksınız.
nohup komut_adi &
şeklinde bir kullanımı var. sonundaki ampersant işareti (&) arka planda çalışmasını sağlar. nohup ise çıkış yapıldığında kill edilmesini engeller. yani normalde de
komut &;
şeklinde kullanıp ssh içinde gezerken arka planda bir işlem yapabilirsiniz.
  • SSH ile uzak sunucuya giriş yapın
  • bir işlem çalıştırın. örneğin nohup uzun_surecek_bir_komut &
  • CRTL + D tuşuna basarak logout olun.
Tekrar ssh tan girip çalışan komutlara baktığımızda o arka planda uzun süre çalışacak komutun çalışıyor olduğunu görebiliriz. bunun için ps aux yazmamız yeterli olacaktır. Not : Nohup komut önceliğini (nice değerini ) değiştirmez, onu yine komutu verirken siz istiyorsanız parametre vererek yapabilirsiniz. Devamı için : linux nohup komutu (command) - arka planda komut calistirma

14 Şubat 2012 Salı

dubluve.net yazılarımız hakkında

dubluve.net adlı sitede 4 aydan fazla süredir, arayıp da zor bulabileceğiniz verileri türkçe olarak paylaşmaya çalışıyoruz. Bu noktada yazılarımız çok kısıtlı sürelerde yazılmaya çalışılan ve 3-4 defada bitirilen yaazılar olabiliyor. Ayrıca bazı araştırmalarımız gösteriyor ki aramış olduğunuz anahtar kelimeler ile sitemizi bulan kişilerden bazıları, aradıkları şeyden alakasız bir yazımızı görüyorlar. Bu konuda bu tarz bir aramada doğru içeriği bulması adına biz o içeriğin de doğrusunu araştırıp eklemeye çalışıyoruz. Yani yeni postlarımızı bunlar da belirleyebiliyor. Bu konuda, bir yazımıza denk geldiniz ve "bu ne alaka?" dediyseniz, bunları da eklemeye çalışacağız zaman içerisinde. Ülkemizde türkçe kaynak konusunda bariz bir ihtiyaç vardır. Bu konuda aradığınız konuyu, denk geldiğiniz konuyla ilgili yorumlara eklerseniz, bunları değerlendireceğiz, ve araştırıp yazılar yazmaya çalışacağız. Herkesin bilgisine sunarım.     Devamı için : dubluve.net yazılarımız hakkında

11 Şubat 2012 Cumartesi

Mozilla Firefox Arama Motorunu Değiştirme

Firefox'ta arama yapmak için aslında özel bir alan mevcut: Arama Alanı. Ancak, adres çubuğundan da arama yapılabilmekte. Chrome kullanmaya alışmış birisi olarak arama alanını kullanmak epey zor geliyor bana :) Arama alanında arama motorlarını yönetmek ve geçiş yapmak gayet kolay. Zaten Firefox kullanıcılarının orayı kullanmasını istiyor sanırım. Öncelikle kısaca arama alanının arama motorunu değiştirmekten bahsedeyim. Resimde gördüğümüz arama motoru alanın solundaki küçük oka tıkladığımızda solda bir menü açılıyor. Bu menüden istediğimiz arama motorunu seçebiliyoruz. Arama motorlarını yönet'e tıklayarak listede görünmesini istemediğiniz kayıtları kaldırabilir ya da yeni arama motorları ekleyebilirsiniz. Şimdi gelelim benim de alışkanlığım olan adres alanından arama yapmaya. Adres alanına yazdığınız ve bir internet sitesine yönlenmeyen tüm girdiler varsayılan arama motorunda arama sorgusu olarak kullanılıyor. Şimdi de burada kullanılan arama motorunun nasıl değiştirileceğinden bahsedelim (Mozilla neden arama alanındaki motorun kullanılmasını sağlamıyor anlayamadım). Arama alanına:
about:config
yazıyoruz. Dikkatli olmamız konusunda yapılan uyarıyı dikkate alıyoruz ve söz veriyoruz :) Karşımıza Firefox'un hemen tüm ince ayarları çıkıyor. Siz benim belirttiğim ayar dışında pek birşeyi kurcalamayın derim. Listeden keyword.URL girdisini buluyoruz ya da pencerede çıkan arama alanına yazıyoruz. Daha sonra girdiye çift tıklayarak (ya da sağ tık menüsünde çıkan Değerini Değiştir ile) açılan pencereye istediğimiz arama motoru girdisini yazıyoruz. Önemli arama motorlarının değerleri şu şekilde:
  • Google: http://www.google.com/search?&q=
  • Yahoo: http://search.yahoo.com/search?p=
  • Bing: http://www.bing.com/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q=
Artık adres alanına yazdığımız (aaa.com veya ccc.net gibi web adresi kalıpları hariç) herşey belirlediğimiz arama motorunda aranmaya başlayacaktır. Hayırlı uğurlu olsun :) Devamı için : Mozilla Firefox Arama Motorunu Değiştirme

10 Şubat 2012 Cuma

Aptana Studio 3 - Could not initialize class com.kenai.jaffl.* Hatasi

Aptana Studio 3 yüklediyseniz ve açılışta Console ekranında başlıktakine benzer hatalar alıyorsanız, sorun bilgisayarınızın işletim sisteminin yerel ayarlarının Türkçe olmasından kaynaklanıyor. http://jira.codehaus.org/browse/JRUBY-5896 Yerel ayarlarınızı İngilizce olarak değiştirdiğinizde Aptana Studio'nun problemsiz çalıştığını göreceksiniz. Ayarlarınızı Windows 7 'de değiştirmek için:
  • Denetim Masası\Saat, Dil ve Bölge ekranına girin.
  • Bölge ve Dil ekranını açın
  • Biçimler sekmesinde İngilizce (Amerikan) seçin.
  • Aptana Studio eğer açıksa kapatıp tekrar açın.
  • Eğer bu şeklide de sorun yaşıyorsanız, yine Denetim Masası\Saat, Dil ve Bölge  ekranında Yönetimsel sekmesine gelin.
  • "Sistem yerel ayarlarını değiştir" seçeneğine tıklayarak geçerli sistem ayarının İngilizce (Amerikan) seçin.
Devamı için : Aptana Studio 3 - Could not initialize class com.kenai.jaffl.* Hatasi

6 Şubat 2012 Pazartesi

En Kolay Linux - Turnkey Linux

Eğer PHP ile web yazılımı geliştirmiş ve ya geliştirme altyapısını merak etmişseniz, mutlaka kendi bilgisayaranıza Ubuntu ve ya herhangi başka bir linux dağıtımı kurup Apache-MySQL-PHP kurulumları yapmayı denemişsinizdir. Bu macera kimi zaman hüsranla ve "bununla uğraşılmaz" nidalarıyla, kimi zamansa yorgun gözler ama başarmış olmanın gururu ve bilgi birikimi ile biter. Ben bir zamanlar ikisini de yaşamış ve sonunda kurulum yapmıştım :) Geçen aylar içerisinde yine bir yazılım geliştirme platformu kurma ihtiyacım doğduğu için, önce kendi bilgisayarıma dual-boot ile xubuntu kurarak, LAMP (Linux Apache MySQL PHP) platformunu kurmaya başladım. Başlarda biraz zorlansam da, takıldığım noktaları eski tecrüblerimden hatırlayarak aşabildim ve Ubuntu'nun da artık daha kolaylaşmış yapısı sayesinde kurulum yapabildim. Fakat arkadaşım Arda Başoğlu'nun beni uyarmasıyla, tekerleği tekrar keşfetme hatasına düştüğümü gördüm (bunun için kendisine ayrıca teşekkürler). İhtiyacım olan proje, benzer problemler yaşayan bazı insanların hazırladığı bir proje olan Turnkey Linux ile işte böyle tanıştım. Turnkey Linux, belirli bir ihtiyacı karşılayan ufak linux sistemlerinden oluşuyor. Bu linux sistemlerinde, ihtiyacımız olan platform ile ilgili uygulamalar kurulmuş ve genel ayarları yapılmış şekilde bulunuyor. Ayrıca bu sistemler ister direkt kurulum için ISO formatında, ister sanallaştırma için ODF ve VMDK gibi formatlarda dağıtılıyor. Turnkey Linux projesinde kullanabileceğimiz birçok kategori ve birçok uygulama bulunuyor, örneğin web yazılım geliştirme kategorisinde LAMP, Ruby On Rails, Google App Engine gibi platformları içeren sistemler mevcut. Sadece veritabanına ihtiyaç duyuyorsanız, MySQL ve PostgreSQL veritabanı sistemlerini de indirip kullanabilirsiniz. Örnek olarak aşağıda LAMP (Linux Apache Mysql PHP) platformunun VirtualBox ile sanal makina olarak Windows işletim sistemine sahip bir makinada kurulmasını anlattım.

Kurulum

Turnkey Linux anasayfasına girin ve Apps menüsünden Web Development kategorisinde LAMP Stack isimli uygulamayı bulun. Detaylarda indirme linklerinden More Builds(OVF) linkini tıkladıktan sonra açılan indirme ekranında ismi ovf.zip olarak biten dosyayı indirin. Bir yandan VirtualBox programının son sürümünü Windows işletim sistemi için indirip kurun. VirtualBox kurulumun yaptıktan sonra indirilen arşiv dosyasını bir klasöre açın. VirtualBox programında File->Import Appliance diyerek Appliance Import Wizard'ı açın. Az önce arşivden çıkarttığınız dosyalardan .ovf formatındaki dosyayı bu ekranda seçin ve devam edin. Sonraki ekranda VirtualBox  bu sistem  için geçerli sanal makina ayarlarını gösterecektir. Bu ayarlardan sadece Virtual Disk Image ayarını değiştirmenizi tavsiye ederim, varsayılan olarak  C:\ diskini kullandığı için ve eğer bu diskte yeterli yeriniz yoksa sorun olabilir. Diğer ayarları değiştirmeden Import derseniz yeni sanal makina başlatmaya hazır oluyor. Oluşan yeni sanal makinayı VirtualBox Manager ekranındaki listeden artık görebilirsiniz. Şimdi bu makinayı başlatmak ve bazı ayarlarını yapmak gerekiyor. Sanal makinayı seçtikten sonra start derseniz sanal makina açılmaya başlayacaktır. Makinamız açılırken  Turnkey Linux Hub platformu sayfasına gidin ve kayıt olun. Kayıt olmak zorunlu değil,  her bir sanal makina için dinamik DNS hizmetinden faydalanmayı sağlayacağı için kayıt olmanızı tavsiye ederim. Ayrıca eğer isterseniz sanal makinaları Amazon Elastic Cloud (EC2) sisteminde otomatik olarak yedekleme şansınız olacak. Turnkey Linux Hub platformu OpenID desteklediği için Google hesabınızla bile kayıt olabilirsiniz. Kayıt olduktan sonra giriş yaptığınızda User Profile ekranına girin, Login Details sekmesinde API Key alanını göreceksiniz. Bu bilgiyi birazdan kullanacağız. LAMP platformunu içeren sanal makina  hazır ve root şifresini soruyor olacak. Bu şifreyi çok dikatli seçin, hem zor olsun hem de unutmayın. Sakın 123456 vermeyin :) Root şifresini ssh ile shell girişi yaptığımızda da kullanacağız. Root şifresini belirledikten sonra MySQL root şifresini soracaktır. Bu şifre için de zor ama unutmayacağınız bir şifre seçin. Root kullanıcısı MySQL sisteminde her şey yetkili tek kullanıcıdır. Bu iki şifreyi belirledikten sonra sistem az önce belirttiğimiz API Key bilgisi soracaktır. Bu bilgiyi vermek ve ya kayıt olmak zorunda değilsiniz. Eğer API Key bilgisini yazarsanız sonraki ekranda otomatik yedekleme için gerekli shell komutunu gösterecektir, fakat yedekleme sadece Amazon ile gerekli entegrasyonu hesabınızda yaparsanız sağlanıyor. Komutu gösteren ekrandan sonra, dinamik DNS hizmeti için sizden bir internet adresi isteyecektir. Burada seçeceğimiz adres {sunucumunadresi}.tklapp.com formatında olmak ve daha önce kimsenin seçmediği bir adresi olmak zorunda. Eğer bu şartları sağlıyorsa, bundan sonra internetten bu adresi yazan herhangi birisi makinanıza erişebilecektir. Üstelik IP adresiniz değişse bile, bu adres otomatik olarak sanal makina her başladığında güncellenecektir. Güncelleme yazılımının detaylarına erişmek isterseniz şu adresi kontrol edebilirsiniz. İnternet adresi belirledikten sonra, sistem güvenlik güncellemeleri yapacağını belirtecek ve sizden onay isteyecektir. Güvenlik güncelleştirmelerini geçmeyin ve güncellemelerin bitmesini bekleyin. Güncelleştirmeler de bittiğinde karşınıza gelen ekranda sistemimizde erişebileceğimiz linkleri gösteren bir ekran gelecektir. Gördüğünüz gibi sanal makina ağda kendisini yeni bir istemci olarak göstererek  otomatik olarak farklı bir IP adresi aldı. Şu an sanal makina yerel ağdan artık erişilebilir duruma geldi. Ayrıca ekrandaki linklerde bir yönetim paneli linki de göreceksiniz, bu yönetim paneli daha önce belirlediğiniz root şifresi ile giriş kabul ediyor ve sistemin tüm ayarlarını bu görsel web arayüzü üzerinden de yapabiliyorsunuz. Oldukça rahat değil mi :) Sanal makinanın  internetten de erişilebilmesi için sadece ona dinamik dns atamak yeterli değil. Ayrıca bazı router ayarları da yapmak gerekiyor. Şu adresten router markanızı bulup, 80 portunu sanal makinanın IP adresine yönlendirirseniz, internetten de erişilebilir duruma gelecektir. Dikkat edilmesi gereken başka bir nokta da, sanal makinanıza atadığınız internet adresini yerel ağınızdan denemeyin. Mesela telefonunuzdan 3G ile internet adresini açmayı deneyin. Eğer yerel ağınızdan denerseniz router sayfasına yönlenirsiniz :) Bazı Turnkey Linux uygulamaları konusunda  daha detaylı yazıları ileride yazacağım.  Yeni Linux sunucunuz hayırlı olsun ! Devamı için : En Kolay Linux - Turnkey Linux

4 Şubat 2012 Cumartesi

Google Alerts - Güncel Arama Sonuçları Bildirimi

Bilmiyorum daha önce haberiniz var mıydı ama benim çok yakın zamanda tesadüfen haberim oldu. Google Alerts sayesinde, belirttiğiniz bir sorguyla ilgili arama sonuçlarını belirttiğiniz periyotlarda email adresinize gelmesini sağlayabiliyorsunuz. Google'ın Alerts hakkındaki açıklamasını verelim hemen;

Google Alerts'ün kullanışlı yönlerinden bazıları şunlardır:
  • gelişen bir haberi izleme
  • bir rakip veya sektör hakkında güncel bilgilere sahip olma
  • bir ünlü veya etkinlikle ilgili en son bilgileri alma
  • sevdiğiniz takımlarla ilgili gelişmeleri takip etme
google alerts örnek kullanımı Örnekte gördüğümüz üzere, dubluve.net'i arama sorgusu kısmına yazarak, dubluve.net ile ilgili google aramalarında yeni çıkan herşeyin, çıkar çıkmaz, istediğimiz email adresine gönderilmesini sağlayabiliyoruz. Daha sonra iş Google'a kalıyor zaten :) Devamı için : Google Alerts - Güncel Arama Sonuçları Bildirimi