Berker Peksağ.

17 Aralık 2009, Perşembe;

twitter için Python betiği

Saat: 13:47:29, Programlama

Konsolden twitter durumumu güncellemek için basit bir betik yazdım. status.py içerisine twitter profilinize ait kullanıcı adı ve parolasını girmek yeterli.

Betiğin kullanımıysa şöyle:

python status.py -s "Merhaba, Dünya"

Kaynak kod

Yorum yapılmamış.


18 Kasım 2009, Çarşamba;

Internet Explorer'daki setAttribute sorunu

Saat: 11:18:35, Programlama

Bugün, Internet Explorer'ın başa bela sorunlarından biriyle daha karşılaştım. Eğer, aşağıdaki gibi bir kodunuz varsa Internet Explorer'da çalışmayacaktır.

var
div = document.createElement('div');
div.setAttribute('style', 'border: 1px solid #ff0000');
div.innerHTML = 'Iron Maiden\'s gonna get all of you!';

QuirksMode sağolsun, Internet Explorer 8. sürümüne kadar setAttribute style niteliğini set etmiyormuş.

Çözüm için kodumuzda küçük bir değişiklik yapmak yeterli:

var div = document.createElement('div');
div.style.cssText = 'border: 1px solid #ff0000;';
div.innerHTML = 'Iron Maiden\'s gonna get all of you!';

2 yorum yapılmış.


25 Ekim 2009, Pazar;

Zend Framework Notları: Zend_Validate_Date

Saat: 23:03:47, Programlama

Bazen Zend Framework'den nefret etsem de işe yarayan anları da yok değil. Diyelim ki veritabanından gelen veya herhangi bir dosyadan okumanız gereken verinin YYYY-MM-DD formatında olması gerekiyor. İşte bu noktada Zend_Validate_Date olaya dahil oluyor.

Biraz önce bahsettiğim yyyy-mm-dd örneğiyle devam edelim:

$date = '1988-02-24';

$validator = new Zend_Validate_Date('yyyy-MM-dd');

if($validator->isValid($date)) echo 'Tarih geçerli bir formata sahip.';

Yorum yapılmamış.


17 Temmuz 2009, Cuma;

OpenSolaris notları: Network ayarları

Saat: 00:01:24, Programlama

VMware üzerinde OpenSolaris çalıştırıyorsanız, kurulum sonrası internet bağlantısında sorun yaşamamak için network ayarlarında, Use network address translation (NAT) seçeneğini işaretlemek gerekiyor.

Yorum yapılmamış.


14 Temmuz 2009, Salı;

Internet Explorer 6'dan kurtulmak için alternatif bir yöntem

Saat: 11:52:41, Programlama

Fatih Hayrioğlu'nun FriendFeed'deki Internet Explorer 6 konulu girdisinde, sadece IE6 kullanıcıları için tarayıcıyı kilitleyecek bir kod yazmayı önermiştim.

Bugün, uykusuzluğumu da gidermek amacıyla küçük bir çalışma yaptım. Aşağıdaki kod ile, sayfayı IE6 ile ziyaret ederseniz tarayıcı göçecektir :)

var IE6 = false /*@cc_on || @_jscript_version <= 5.7 @*/;
   
if(IE6) for(x in document.write) document.write(x); // [1]

[1] Wikipedia

4 yorum yapılmış.


24 Mayıs 2009, Pazar;

Google Translate Bookmarklet

Saat: 14:43:46, Programlama

Google Translate'in yayınladığı bookmarklet'ların sonucu aynı sekmede görüntülemesine sinir olduğum için küçük bir değişiklik yaptım. Artık seçilen metnin çevirisini yeni sekmede gösteriyor. Aşağıdaki örnek sadece Türkçe için geçerli. Diğer diller için aynı değişikliği kolayca yapabilirsiniz.

Türkçe

Bu arada, daha önce Google Translate için bir Firefox eklentisi olup olmadığını sormuştum. Kimseden ses çıkmayınca, "iş başa düştü deyip" yazmaya başladım. Bu sene içinde biter umarım :)

4 yorum yapılmış.


18 Ocak 2009, Pazar;

JavaScript'te bir alt satıra geçmek

Saat: 10:14:04, Programlama

Daha önce JavaScript'e yeni metodlar eklemiştik. Bu seferde new line(\n) karakterini otomatik olarak <br /> etiketine çevireceğiz.

String.prototype.nl2br = function() {
     return this.replace(/\n/g, "<br />");
};


Kullanımı:

var s = "Iron Maiden\n\nSteve Harris\nBruce Dickinson" +
"\nAdrian Smith\nDave Murray\nJanick Gers\nNicko McBrain"
;

document.write(s.nl2br());

Yorum yapılmamış.


12 Ocak 2009, Pazartesi;

Windows işletim sistemi üzerine APC(Alternative PHP Cache) kurulumu

Saat: 02:35:20, Programlama

APC(Alternative PHP Cache), PHP tarafından PECL eklentisi olarak geliştirilen bir cache sistemidir. Kurulumunun ve kullanımının kolay olması nedeniyle memcached yerine tercih edilebilir.

APC'yi Windows işletim sistemi üzerinde kulanmak için birkaç seçenek mevcut.

Ben üçüncü ve en hızlı çözümü seçtim.

Kurulum

Herhangi bir hata almadıysanız APC kurulumunu başarıyla tamamladınız demektir. Bundan sonraki yazılarımda APC'nin nasıl kullanılabileceğini anlatacağım.

1 yorum yapılmış.


28 Aralık 2008, Pazar;

Windows işletim sistemi üzerinde cURL kütüphanesini çalıştırma

Saat: 21:17:21, Programlama

Eğer Windows işletim sistemi üzerinde PHP'yi cURL kütüphanesiyle beraber kullanmak istiyorsanız, php.ini dosyasında ;extension=php_curl.dll satırını bulup başındaki noktalı virgülü kaldırmak yetmiyor.

Sorunu çözümü basit: PHP'yi kurduğunuz dizindeki libeay32.dll ve ssleay32.dll dosyalarını c:\windows\system32 içine atıp apache ya da iis'i yeniden başlatarak cURL kütüphanesini kullanabilirsiniz.

5 yorum yapılmış.


06 Ağustos 2008, Çarşamba;

PHP ile dosya uzantısını almak

Saat: 16:24:14, Programlama

Fırsat buldukça küçük ipuçları eklemeye devam ediyorum. Özellikle dosya yükleme işlemleri yaparken, dosya uzantısını almak gerekebilir. Çok çeşitli yöntemleri olsa da ben uzun zamandır aşağıdaki kodu kullanıyorum.

function
dosyaUzantisi($strDosya) {
      return ".".array_pop(explode(".", $strDosya));
}

1 yorum yapılmış.


04 Ağustos 2008, Pazartesi;

JavaScript'te trim fonksiyonunu kullanmak

Saat: 17:25:44, Programlama

Görevi, stringin baş ve sonundaki boşlukları temizlemekten ibaret olsa da pek çok programlama dilinin hayat kurtaran fonksiyonlarından biridir trim(). Ne yazık ki JavaScript'te bu fonksiyon bulunmuyor. Biz bu yazıda JavaScript'e bu fonksiyonu ekleyeceğiz.


String.prototype.trim = function() {
    s = this.replace(/^\s+/, "");
    return s.replace(/\s+$/, "");
};

Bu fonksiyonu biraz daha kısaltabiliriz.

String.prototype.trim = function() {
      return this.replace(/^\s+|\s+$/g, "");
};

Her iki fonksiyonu da "  sağ ve soldaki boşluklar silinecek   ".trim() şeklinde kullanabiliriz.

2 yorum yapılmış.


18 Mayıs 2008, Pazar;

IE7.js: Web standartlarına tam uyumlu Internet Explorer!

Saat: 06:59:13, Programlama

...ne yazık ki -halen- varsayılan olarak değil :)

Web geliştiriciliği yaptığım süre boyunca, Internet Explorer'ın her türlü uyumsuzluğunu zamanla kabullendiğimi söyleyebilirim. Ancak CSS seçicileri konusundaki uyumsuzluklarına gıcık olmadan edemiyorum.

Bu sebeple, uzun süredir Internet Explorer üzerinde tüm seçicilerin desteklendiği bir JavaScript kütüphanesi üzerinde çalışıyordum ki zaten benden önce yapıldığını tesadüfen gördüm!

Dean Edwards'ın geliştirdiği kütüphane ve kullanımı hakkında bilgi almak için proje sayfasını ziyaret edebilirsiniz. Ayrıca, uygulamalı özellik listesi içinde buraya* bakabilirsiniz.

Yorum yapılmamış.


25 Mart 2008, Salı;

PEAR versiyonunu güncellemek

Saat: 01:40:40, Programlama

Bundan böyle bulmak için çok zaman harcadığım -evet, unutkan biriyim- küçük detayları burada yayımlayacağım.

İlk olarak, bulmak için son 20 dakikamı harcadığım -tamam, henüz Google'ı kullanmayı bilmiyor olabilirim- bir problemin çözümünü yazacağım.

pear upgrade PEAR

Evet, 20 dakika harcamaya değmeyecek kadar kısa bir çözüm :) Yukarıdaki komutu, komut satırında(Win + R | cmd) çalıştırınca PEAR versiyonumuzu güncellemeye başlıyorsunuz.

Bir şekilde bu yazıyı okuyor ve PEAR ile ilgileniyorsanız, benim gibi kurulu paketlerinizin örümcek ağı tutma ihtimali mevcut :) Ki bu da zaman zaman paketler arasında uyumsuzluk yaratabiliyor (bkz: ben bugün bunu gördüm). Bunun içinde tüm paketlerimizi aşağıdaki komut yardımıyla güncelleyebiliyoruz:

pear upgrade-all

Bu arada, son olarak içimi dökmek istediğim bir konu var: Resmi PEAR ve Smarty dökümantasyonundan nefret ediyorum!

Yorum yapılmamış.


19 Mart 2008, Çarşamba;

jQuery ile autocomplete niteliğini web standartlarına uygun olarak kullanmak

Saat: 23:57:11, Programlama

Bildiğiniz gibi autocomplete niteliği tıpkı target gibi web standartlarına uygun değil. Bu günlük kullanımda pek bir sorun teşkil etmese de benim gibi web standartlarına takıntılı geliştiriciler için epey büyük bir sorun :)

Bunu aşabilmek için imdadımıza JavaScript yetişiyor. Biz jQuery kütüphanesini kullanacağız:

$("input[@class='autocomplete']").each(function(){
$(this).attr("autocomplete", "off");
});

Kullanımı:

<input type="text" class="autocomplete" name="frmAra" />

Bu şekilde niteliği class ve değeri autocomplete olan tüm input elementlerine autocomplete = "off" niteliği eklenir.

Tabii kullanım şekline göre gerekli değişiklikler yapılarak -örneğin tüm input elementlerine uygulanabilir- kullanılabilir.

Yorum yapılmamış.


17 Mart 2008, Pazartesi;

strftime() fonksiyonuyla tarih formatlamak

Saat: 10:45:26, Programlama

Bazen farklı bir formatta aldığımız tarih bilgisini, farklı bir formata çevirmemiz gerekir. Bunun için ya PHP'nin list() fonksiyonunu ya da data_parse() fonksiyonunu kullanıp çeşitli işlemler yapmışızdır(ki daha pek çok yöntemi de vardır).

Bu yazıda, strftime() fonksiyonunu kullanıp tarihimizi nasıl istediğimiz formata çevireceğimizi anlatmaya çalışacağım.

Sözdizimi

string strftime(string tarih_formatiniz [, int tarih ])

Sözdiziminde de görüldüğü gibi fonksiyonun ikinci parametresi kullanmak zorunda değiliz. Şayet kullanmazsak, belirtilen formata uyacak şekilde o anki tarihi döndürür. Ayrıca, opsiyonel olarak setlocale() fonksiyonunu kullanarak yerel ayarlara göre sonuç döndürmesini sağlayabilirsiniz(Örneğin ay ve/veya günü Türkçe olarak yazdırabiliriz). Ancak setlocale() fonksiyonu, IIS veya Windows işletim sistemi üzerinde Apache kullanıyorsanız çalışmayacaktır. setlocale() fonksiyonu bu yazının konusu olmadığından, PHP'nin çevrimiçi dökümantasyonundan konu hakkında ayrıntılı bilgi alabilirsiniz.

Kullanımı

Bu kadar konuştuktan sonra örneğimize geçelim :) Aşağıdaki örneğimizde, "Mon Mar 17 08:18:01 2008" formatındaki tarihimizi "2008-03-17 08:18:01" şeklinde yazdıracağız.


<?php

$formatlanacak_tarih = "Mon Mar 17 08:18:01 2008";

$yeni_tarih = strftime("%Y-%m-%d %H:%M:%S", strtotime($formatlanacak_tarih));

echo $yeni_tarih
;

?>

strtotime() fonksiyonu, karakter katarı(string) tipindeki değeri, UNIX Timestamp* tarih biçimine çevirir.

Yorum yapılmamış.


13 Mart 2008, Perşembe;

Symfony Kurulumu

Saat: 05:52:37, Programlama

Şu sıralar CodeIgniter'dan vazgeçip, Symfony'yi incelemeye başladım. Symfony, 2005 yılından beri geliştirilen, açık kaynaklı PHP MVC(Model-view-controller) framework'ü. Evet, başlangıç için gereğinden fazla basit bir açıklama olsa da Yahoo! geliştiricilerinin projeye destek verdiğini ve güzide sosyal imleme servisi del.icio.us'ın yeni versiyonunda Symfony'den yararlandıklarını söyleyerek projenin yeteneklerini bir nebze anlatabileceğini umuyorum.

Veritabanı işlemlerini, bir O/RM(Object/Relational Mapping, ORM, O/R mapping) frameworkü olan Propel yardımıyla gerçekleştiriyoruz. O/RM, ilişkisel veritabanlarında(RDBMS) bulunan tablolar ile uygulama tarafında bulunan nesnelerin biribiriyle ilişkilendirilmesine verilen bir terimdir. O/RM için, pek çok ihtimal göz önünde bulundurularak hazırlanmış frameworkler bulunmaktadır(Java platformu için Hibernate, .Net platformu için NHibernate ve LINQ) ancak megolamaninin sınırlarında gezen biriyseniz kendi frameworkünüzü de yazabilirsiniz. O/RM araçları, MVC hiyerarşisinde persistence layer(veri erişim katmanı) olarak adlandırılırlar. Fazla uzatmadan, O/RM araçlarının görevlerini(yani Symfony için Propel'in) şöyle açıklayabiliriz: Uygulama tarafında ilişkilendirdikleri(buna mapping diyorlar) nesneler arasında veri aktarımını, geliştiriciyi SQL sorgularıyla vs. uğraştırmadan sağlar.

Ayrıca, çok methedilen dökümantasyonunun pek okunabilir olduğunu söyleyemem. Bir süre sonra gözü epey yoruyor. Bunun yerine Symfony'yi yakından tanımak için hazırlanan örnek "My First Project"'i indirip incelemek daha faydalı olabilir.

Yazının devamını okumak için tıklayın.

5 yorum yapılmış.


Etiket bulutu;


Kategoriler;


Lab;


Ne yapıyorum? (twitter)

 

Son yorumlar


Sık kullanılanlar


Projeler


Takip ettiklerim


En son dinlediklerim (last.fm)

 

(c) Berker PEKSAĞ. 2004-2009

Yayımlanan yazılar, kaynak gösterildiği müddetçe kullanılabilir.
Yapılan yorumların sorumluluğu yazarına aittir.