Çoğu kez doğru işlerin kaynağı başkalarının aklı ile hareket etmek ise de en az bir o kadar yanlışın kaynağı da yine başkasının aklı ile hareket etmektir. Ancak
birincisinde övünç size ait değilken ikincide utanç size aittir.
İşte bu nedenle akıl akırken akıl verene iyi bakın, elinizde kalabilir. Akıl verirken de dikkat edin bu sitemin bir muhattabı da siz olabilirsiniz.
Suat Atan
Ay: Haziran 2012
Hayat kader kitabının kenarlarına kendimizce aldığımız nottan ibaret. Şerh edebildiğimiz kadar yaşarız.
Bazen başımıza gelenleri ki bunlar paragraflardır yanlış yorumlarız. Bazense okumadan geçeriz.
Sona doğru sayfalarda şu kelimeler daha çok geçer: ölüm, hüzün, kayıp…
Kitap sıkıcı olmaya başlar.
Her şey kapağı kapattığımızda aklımızda kalanlardan ibarettir.
Bir daha açılmamak üzere…
İşte o yüzden iyi okumalı.
Suat Atan
I want to use Google Spreadsheet as database-like. Normally, this is isn’t posibble at all. But not impossible. I coded a simple CRUD script for spreadsheet. You can use it for developing row-by-row logging apps.
Enjoy !
var belge=SpreadsheetApp.getActiveSpreadsheet();
var sayfa=belge.getSheets()[0];
function save(data1) {
var lr=sayfa.getLastRow();
var new_record_row=lr+1;
//generate id
var id=uid();
sayfa.getRange(new_record_row, 1).setValue(id)
sayfa.getRange(new_record_row, 2).setValue(data1)
return “Saved”;
}
function update(uid,new_value){
var lr=sayfa.getLastRow();
for(i=1;i
var okunan=sayfa.getRange(i,1);
var okunan_deger=okunan.getValue();
var snc=okunan_deger.indexOf(uid);
if(snc != -1){
var secili_satir=sayfa.getRange(i,2).setValue(new_value);
}
}
return “Updated”;
}
function remove_row(uid){
var lr=sayfa.getLastRow();
for(i=1;i
var okunan=sayfa.getRange(i,1);
var okunan_deger=okunan.getValue();
var snc=okunan_deger.indexOf(uid);
if(snc != -1){
sayfa.deleteRow(i);
}
}
return “Removed”;
}
function test(){
remove_row(“20125171339918788818”);
}
function uid(){
var dateObject = new Date();
var uniqueId =
dateObject.getFullYear() + “ +
dateObject.getMonth() + ” +
dateObject.getDate() + “ +
dateObject.getTime();
var uid=uniqueId.toString();
return uid;
}
function delete_record(uid){
var lr=sayfa.getLastRow();
for(i=1;i
var okunan=sayfa.getRange(i,1);
var okunan_deger=okunan.getValue();
var snc=okunan_deger.indexOf(uid);
if(snc != -1){
var secili_satir=sayfa.getRange(i,2).setValue("deleted”);
}
}
}
Google App Script ile kaynak tablo içinde(0) başka bir tablo içindeki(1) liste halindeki her bir veriyi alıp kaynak tablodan arayarak bulduğu takdirde,bulduğu satırdaki başka bir hücre verisini alıp, 1. tablodaki listenin yanındaki satırlara yazdıran acaibül garaip suat atan hayratı scipt.
Yanlız çalışınca çok CPU harcıyor. Hesaplamalar uzun sürüyor.
_______________
function goster(ifade){
Browser.msgBox(ifade);
}
function tara(aif){
var belge=SpreadsheetApp.getActiveSpreadsheet();
var sayfa=belge.getSheets()[0];
for(i=6;i
var okunan=sayfa.getRange(i,5);
var okunan_deger=okunan.getValue();
var snc=okunan_deger.indexOf(aif);
if(snc != -1){
okunan.setBackground(“red”);
var pcu=sayfa.getRange(i,20).getValue();
sayfa.getRange(i,20).setBackground(“cyan”);
var hq=sayfa.getRange(i,21).getValue();
}
else
{
okunan.setBackground(“white”);
}
}
return pcu;
}
function yaz()
{
var belge=SpreadsheetApp.getActiveSpreadsheet();
var sayfa=belge.getSheets()[1];
for(j=1;j
var kyn=sayfa.getRange(j,1).getValue();
var snc=tara(kyn);
sayfa.getRange(j,2).setValue(snc);
}
}
_______________
İstiyorsan hakka varmayı
Meslek edin gönül almayı
Bırak saraylarda mermer olmayı
Toprak ol bağrında güller yetişsin.
Mevlana
Kibir bele bağlanan taş gibidir, onunla ne yüzülür, ne uçulur. (Hacı Bayram-ı Veli)
Geçmişi hatırlamayanlar onu bir kere daha yaşamak zorunda kalır. (G.Santayana)
Çeşitli koordinat sistemleri arasında dönüşüm için aşağıdaki programı kullanabilirsiniz:
http://geoyazilim.blogspot.com/2008/12/koordinat-dnm-v42.html
Soru:
Cevap:
Merhabalar;
1) Google App Engine ile şahsi olarak aldığınız selcukokmen.com gibi bir adresle de kullanabilirsiniz. Malum olduğu üzere Google App Engine üzerinde sayfanızı yayınladığınızda şuna benzer bir url alırsınız: selcukoktem.appspot.com. selcukoktem.com adresini appspot.com uzantılı adrese yönlendirebilirsiniz. Bu CNAME kayıtları ile olmaktadır. Bunu sitenizi appspot.com alt domaini üzerinden yayınlandıktan sonra Dashboard’a girerek (kitapta dashbooard anlatılmıştır) oradan Administration->Application Settings menüsüne girdikten sonra Domain Setup isimli başık altından Add Domain demek suretiyle başlatırsınız.
Resmi:
Bu minval üzere sistem sizi yönlendirecek ve kullandığınız hosting firması üzerinde DNS ayarları üzerinden CNAME kayıtlarını ghs.google.com adresine yönlendirmeniz için talimatları açıklayacaktır.
Siz de hosting firmanızın paneline (genellikle cpanel) girerek bu yönlendirmeyi yaptıktan kısa bir süre sonra selcukoktem.com domaini üzerinden google app engine uygulamanızı kullanabileceksiniz.
2) Web servislerinden kastınız neydi? Eğer uygulamanızın JSON veya XML formatında API responseleri vermesini istiyorsanız bu mümkün. Ya da sözgelimi Youtube API’yi Google App Engine uygulamanız üzerinde mi çalıştırmak istersiniz? Bu da mümkün.
Saygılarımla
Google App ile excel tablolarının Google dökümanlardaki muadili olan Google e-tablolara entegre formlar yazabiliriz:
Aşağıdaki gibi:
Google App Script ile aşağıda yazdığım fonksiyonlarla A sütununda sıralanmış parasal tutarların risk değerleri için 1 ila 5 arası değerleme yapılıp B sütununa otomatik olarak yazdırılır.
İşte script:
function risk_test(tutar){
var x=tutar;
var risk=0;
if ((x>10000) && (x
risk=1;
}
else if ((x>100000) && (x
risk=2;
}
else if ((x>500000) && (x
risk=3;
}
else if ((x>1000000) && (x
risk=4;
}
else if (x>2000000){
risk=5;
}
else
{
risk=0;
}
return risk;
}
function risk_hesabi_yap_suat_atan_abi(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheets()[0];
for(i=2;i
var kaynak=sheet.getRange(i,1).getValue();
var hedef=sheet.getRange(i,2);
var sonuc=risk_test(kaynak);
hedef.setValue(sonuc);
}
Browser.msgBox(“Risk hesaplandı”);
}