28 Kasım 2012 Çarşamba
Üniversitelerde Microsofta HAYIR
Merhabalar; Ön not : Uzun zamandır yapmam gerekeni ancak yaptığımı farkediyorum. Üniversitelerimizde hem gereksiz lisans ücreti, hem gereksiz tekelcilik hem de bilgi güvenliği ve virüs konularından dolayı Microsoft'a hayır kampanyası başlatıyoruz. Amacımız eğitimi daha ucuz hale getirmek, ve en önemlisi oluşturulan tekelciliği kırmaktır. Eğitimde bilinç seviyesini yukarı çekerek, bilinçsizce öğretilen Microsoft C#, Sql Server gibi gereçleri "ZORUNLU" olarak öğretilmesini istemiyoruz! Öğrenci ne öğreniyorsa, ileride de onu kullanmak isteyeceğinden dolayı, bu işi daha bağımsız hale getirmeliyiz. Linux dağıtımlarını hayatı boyunca kullanmamış kişiler Microsoft'un daha iyi olduğunu iddia edebiliyor. Burada belirli bir çıkar ilişkisi olup olmadığı geliyor akıllara. Bu kampanyamıza bir imza ile lütfen siz de katkıda bulunun, Türkiye'ye katkıda bulunun. Bizlere destek olun. İmza verin. Devamı için : Üniversitelerde Microsofta HAYIR
27 Kasım 2012 Salı
Chrome ve lanet olası onbellegi
Chrome tarayıcısı kullanan bir geliştirici iseniz, işiniz gerçekten zor. Burada, herşeyi önbellekleyerek, daha hızlı getirmeye çalışan bir aletten bahsediyoruz. Başlığı da gördüğünüz gibi, sinirliyim. Tüm ekip arkadaşlarım da sinirli bu konuda. Diyelim ki sitenizin ön yüzünde çağırdığınız bir image dosyasını aynı isimle değiştirdiniz. Veya css dosyanızda yazmış olduğunuz bir css kuralını düzenlediniz. Uyguladıklarınız : Sayfayı yeniden yükleme : Normalde developement ortamında expire cache kullanmıyorsunzdur. Bu noktada f5 yapınca içeriğin değişip değişmediğine göre yeniden yüklenmesi gerekir. Chrome bunu yapmıyor. Sayfayı CTRL + F5 (Pragma : no-cache) ile çağırmanız : Bu işlem ile server'a "dosya bende değişmese de illa yenisini gönder" demiş oluyoruz. Ancak gelin görün ki Chrome bunu da yemiyor. Çözüm: CTRL + Shift + Delete e basıp, tüm önbelleği temizlerseniz(bir süredir temizlemiyorsanız bu işlem yaklaşık 1 dk sürüyor benim) çözüme ulaşabiliyorsunuz. Ek olarak : Eğer geliştiriciyseniz, Chrome'da F12 ye basınca açılan geliştirici gereçlerindeki ayarlar kısmında (sağ alttaki dişli işaretine tıklayınca açılır) bu kısımdan çeşitli önbellekleme ayarlarını devre dışı bırakabilirsiniz. Ancak bu da sizi kesmeyecektir. Emin olun. Devamı için : Chrome ve lanet olası onbellegi
Php ignore_user_abort fonksiyonu
Çook uzun süren bir php fonksiyonu çalıştıran bir URL'niz var. Ancak istemci (tarayıcı-browser) kapansa bile bu işlemin devam etmesini istiyorsunuz. Örneğin 1 milyon datanın patchlenmesi işlemi (kim bunu URL'den tetikler ki?) Bir şekilde böyle bir ihtiyacınız var diyelim. Bu durumda, ne yapmalısınız? Öyleyse sizin
ignore_user_abort(true);komutuna ihtiyacınız var. Bu komut ile birlikte
set_time_limit(0);verirseniz de kodunuz; çalıştıran istemci veya süre kısıtlaması olmadan sonsuza dek çalışacaktır. http://php.net/manual/tr/function.ignore-user-abort.php adresinden de okumaya devam edebilirsiniz. Devamı için : Php ignore_user_abort fonksiyonu
26 Kasım 2012 Pazartesi
Zend guard license is not valid hatasi

23 Kasım 2012 Cuma
Linuxta Wget ile Ftp den klasor cekmek
Linux bir sistem kullanıyorsanız, FTP den bazı şeyleri düzenli olarak çekmeniz gerekiyorsa, aşağıdaki şekilde linux komut satırından bir ftp klasörünü topluca çekebilirsiniz. Aşağıdaki komutta 1.2.3.4 ipsinden ftp hesabındaki tüm klasörleri çekmesin söylüyoruz. (-r komutu recursive , yani klasörü içindekilerle birlikte çeker) Not : {username} ve {password} yerine size tahsis edilen bilgileri girmelisiniz.
wget -r ftp://1.2.3.4/ --user {username} --password {password}Devamı için : Linuxta Wget ile Ftp den klasor cekmek
20 Kasım 2012 Salı
Deloitte Teknoloji Fast 50 Turkiye 2012 Sonuclari

Maili Post ile gondermek - Cloudmailin

17 Kasım 2012 Cumartesi
network - LLDP (Link Layer Discovery Protocol) nedir?
Networklerde cihazların ilişkilerini bulabilmek için cihazların barındırdığı network discovery protokolleri kullanırız. LLDP (Link Layer Discovery Protocol), ethernet networklerinde bridge'lerin, wireless access point'lerin vs. yayın yaptıkları ve yayınlarını aldıkları ilişkili cihazlar hakkında bilgi sahibi oldukları bir metoddur. Cihazlar arasındaki bilgiyi gösterir. Yani bir veri-bağlantı katmanı protokolüdür. LLDP, MAC (Media Access Control) katmanının üzerinde çalışır. Bu yüzden bir MAC servisini çalıştıran herhangi bir ağ cihazı üzerinde kullanılabilir. LLDP mesajları kesin bilgileri garantilemek için pediyodik aralıklarla gönderilir. Bu zaman aralığı kullanıcının belirlerdiği TTL (Time To Live) değeridir. TTL default olarak 120 saniye olarak tanımlanmıştır. Cihazların kullanım durumlarına göre kullanıcı tarafından değiştirilebilir. Devamı için : network - LLDP (Link Layer Discovery Protocol) nedir?
13 Kasım 2012 Salı
Mysql baska tabloda kaydi olmayan kayitlari silmek
Veritabanınızdan zaman zaman aktif olmayan kişileri, hiç bir işe yaramayan verileri silmek istiyor olabilirsiniz. Bu noktada konuyu bir örnek ile açıklayacağım ; Diyelim ki bir üyeler, bir de yorumlar tablomuz olsun. Yorumu olmayan üyeleri silmek isteyen bir query yazmak istiyoruz diyelim. Bu durumda aşağıdaki query ile bu işi yapabiliyoruz. Subquery ile yorumları çekip bunları NOT EXIST ile denetliyoruz. Sonuç tam da istediğimiz gibi.
SELECT u.uye_id FROM `uyeler` u WHERE NOT EXISTS (SELECT yorum_id FROM yorumlar y WHERE y.uye_id = u.uye_id)Çok fazla detaya girmeden anlattım, anlamayan olursa tabi ki detaylıca yardım edebilirim. Umarım işinize yarayacaktır. Devamı için : Mysql baska tabloda kaydi olmayan kayitlari silmek
12 Kasım 2012 Pazartesi
PayPal Maestro Card destegi
Paypal'ın bugün bir bilgilendirme maili ile duyurduğu konuyu sizlere aktarmak istiyorum,
Şimdi PayPal ile online alışveriş yaparken daha fazla ödeme seçeneğiniz var. PayPal hesabınıza Maestro banka kartınızı ekleyin ve harcamalarınızı banka hesabınızdan dilediğinizce yapma özgürlügünü yaşayın. PayPal'da Maestro kartınız ile ister dizüstü bilgisayarınızdan, ister akıllı telefonunuzdan, ister tabletinizden kolay ve güvenli alışverişin keyfini çıkarın.Maestro card'ın normal kartlardan çeşitli farklılıkları var. Uzun bir süredir, maestro card desteği beklenen paypal, bu problemi de gidermiş oldu. Devamı için : PayPal Maestro Card destegi
10 Kasım 2012 Cumartesi
Java JAR Dosyasi Yaratma - Bolum 2
Daha önceki yazımda, JAR dosyasının komut satırından nasıl yaratılacağından bahsetmiştim. Bu yazıda da Java için geliştirme yapılan Eclipse ve Netbeans IDE'lerinde nasıl JAR dosyası yaratılacağını göstereceğim.
Eclipse
- Package Explorer ekranında jar dosyasını oluşturmak istediğimiz projeye sağ tıklıyoruz. Açılan menüden Export seçeneğine tıklıyoruz.
- Açılan ekranda Java altında JAR File seçeneğini seçerek Next diyoruz.
- Açılan ekranda, istenilen proje ve paketleri seçiyoruz. Alttaki seçeneklerde, oluşturulan class dosyalarını ve kaynakları eklemek için "Export generated class files and resources" seçeneğini, kaynak dosyaları eklemek için "Export java source files and resources" seçeneğini seçiyoruz. JAR File bölümünde jar dosyasını oluşturmak istediğimiz yeri seçiyoruz. Seçenekler kısmında, eğer jar dosyasını sıkıştırmak istiyorsak "Compress the contents of jar file" seçeneğini, dizinlendirmelerin olduğu gibi eklenmesini istiyorsak "Add directory entries" seçeneğini, herhangi bir uyarı vermeden eski jar dosyası üzerine yazmak istiyorsak "Overwrite existing files without warning" seçeneğini seçiyoruz ve Next diyoruz.
- Açılan ekranda, Next diyoruz.
- Açılan ekranda, eğer manifest dosyasının otomatik yaratılmasını istiyorsak, "Generate manifest file" seçeneğini, kendi oluşturduğumuz manifest dosyasını eklemek istiyorsak, "Use existing manifest from workspace" seçeneğini seçerek manifest dosyasının yerini seçiyoruz. Eğer, projemiz bir kütüphane değil de çalıştırılabilir bir uygulama olacak ise "Main class" seçeneğinden uygulamanın hangi sınıfdan başlayacağını seçiyoruz (sınıfın main metoduna sahip olması gerekiyor).
Netbeans
Netbeans'te işlemler biraz daha kolay ama seçenekler de Eclipse'e göre daha az.- Projects ekranında jar dosyasını oluşturmak istediğimiz projeye sağ tıklıyoruz. Açılan menüden Properties seçeneğine tıklıyoruz.
- Açılan ekranda Build > Packaging'e tıklıyoruz. Sağ tarafta "JAR File" kısmında dosyanın oluşacağı klasör belirtiliyor (proje klasörünün altında). "Exclude From JAR File" kısmında jar dosyasına eklemek istemediğimiz dosyaları yazıyoruz. Örnekte, tüm java ve form uzantılı dosyalara eklenmeyecek şekilde seçim yapılmış. Eğer, jar dosyasını sıkıştırmak istiyorsak, "Compress JAR file" seçeneğini, eğer proje derlendikten sonra jar dosyasının otomatik olarak oluşmasını istiyorsak (bu örnekte bu şekilde oluşturacağız), "Build JAR after Compiling" seçeneğini, eğer kullandığımız kütüphaneleri de jar dosyasına eklemek istiyorsak, "Copy dependent libraries" seçeneğini seçerek OK'ye tıklıyoruz.
- Projects ekranında jar dosyasını oluşturmak istediğimiz projeye sağ tıklıyoruz. Açılan menüden Clean and Build seçeneğine tıklıyoruz. Bu işlemden sonra jar dosyası "proje yolu/dist/" klasörü altında oluşmuş oluyor.
7 Kasım 2012 Çarşamba
Mysql Tekrar Eden Verilerin Hepsini Listelemek
Tekrar eden (duplicate) verileri bulmak için bu yazımızı okuyabilirsiniz. Ancak bu verilerin hepsini bir şekilde düzenlemeniz gerekirse, sizden bunların listesi istenecektir. Aşağıdaki Query ile, list tablosundaki aynı email kaydına sahip (aynı email'in en az 2 kişide olması durumu) customer_id leri ve emailleri , emaile göre sıralayarak listeyelen bir sorgu bulunmaktadır.
SELECT list.email, list.customer_id FROM list INNER JOIN ( SELECT email FROM list GROUP BY email HAVING COUNT( customer_id ) >1 ) duplicate ON list.email = duplicate.email ORDER BY list.email ASC
Umarım işinize yarar.Devamı için : Mysql Tekrar Eden Verilerin Hepsini Listelemek
bson - binary json nedir?
Bson, yani Binary JSON, JSON'ların binary şekilde encode edilmiş halidir. Bson, tıpkı json gibi, içinde array ve döküman barındırırlar. Temelde 4 tipten oluşurlar, bunlar;
Çok küçük bir örnek vermek gerekirse;
byte | 1 byte (8-bits) |
int32 | 4 bytes (32-bit signed integer) |
int64 | 8 bytes (64-bit signed integer) |
double | 8 bytes (64-bit IEEE 754 floating point) |
{"hello": "world"} → "\x16\x00\x00\x00\x02hello\x00\x06\x00\x00\x00world\x00\x00"Bu adresten, başka örneklere ve içerisinde saklanan söz dizimlerine ulaşabilirsiniz. Önemli olan bir nokta, MongoDB, ağ ve disk yönetiminde BSON kullanmaktadır. Çoğu dil için, MongoDB'nin driverı mevcuttur (C, C++, Java, Perl, PHP, Python, Perl, Ruby vs.) Onların listesine de buradan ulaşabilirsiniz. İyi çalışmalar. Devamı için : bson - binary json nedir?
6 Kasım 2012 Salı
Corona Debugger Kullanımı
Corona, Android ve IOS ortamları için uygulama (daha ziyade oyun) yazmaya yarayan bir yazılım geliştirme kitidir (Software Development Kit - SDK). Yazının konusu ise Corona'nın debug tool'unun nasıl kullanılacağı. Genelde SDK'lar için kullandığımız IDE'lerde, debugger gömülü olarak bulunur. Corona'nın kendi IDE'si olmadığı ve indirdiğimiz SDK paketi ile beraber gelen 3rd party IDE de ücretli olduğu için, Corona ile yazılım yaparken Geany text editörünü kullanıyorum(herhangi biri kullanılabilir ancak LUA programlama dilini tanıyan bir text editör tercih edilse daha iyi). Tabi firmaya ait IDE kullanmamanın en büyük sıkıntılarından biri de debug işlemini yapamamaktır. Ancak Corona'nın benim de bir süre sonradan keşfettiğim command prompt ile çalışan bir debugger'ı mevcut. Yazıda debugger komutları ile ilgili birkaç örnek vereceğim. Corona Debugger'ı çalıştırmak için Corona SDK klasörünüzü açıp, Corona Debugger dosyasını açıyoruz. Bir simülasyon penceresi, debugger'ın çalıştığı bir dos penceresi ve bir de simülatör çıktılarını görebileceğiniz Corona Simülatör penceresi açılır. Simülasyon penceresini açıp File - Open Project'ten projenizin main dosyasını çalıştırdıktan sonra debugger penceresine döneceğiz. Debugger'ın komutlarını görmek için komut satırına help yazıp enter'a basıyoruz.
Burada zaten komutların ne işe yaradığını kısaca söylüyor. Biz birkaç örnek verip yazıyı bitirelim. setb komutu: İstenen dosyanın istenen satırına breakpoint koymaya yarar. "setb" ya da yalnızca "b" olarak kullanılabilir. "setb dosyaadi satir" şeklinde yazılır. Örnek komut: setb screen2.lua 275 Bu komut ile screen2.lua dosyasında 275. satıra bir breakpoint koyuyoruz. run: Bu komut ile programı işletmeye başlatıyoruz. Mesela yukarıdaki breakpoint'i koyduktan sonra programın bu noktaya gelene kadar işlemesi için kullanabilir. Program koyduğumuz breakpoint'e geldiğinde durur. dump: İstenen değişkenin o andaki durumunu görmeye yarar. "dump degisken" şeklinde kullanılır. Örnek komut: dump randomPlace Bu komut ile bulunulan noktada bu değişkenin değerinin ne olduğunu görebiliyoruz. delb: Koyduğumuz breakpointi bu komut ile kaldırıyoruz. Hangi breakpoint olduğunu belirtmek için setb'de yazdığımız gibi dosya adı ve satırını yazıyoruz. Örnek komut: delb screen2.lua 275 delallb: Koyduğumuz tüm breakpoint'leri tek komut ile bu komutu kullanarak kaldırıyoruz. setw, delw, delallw: Watch ifadesi ekliyoruz, siliyoruz, hepsini siliyoruz. step: İşlenen komutlarda bir satır ilerlemenizi sağlar. Sadece si yazmanız da yeterli. over: İşlenen komutlarda yine bir satır ilerlemenizi sağlar ancak işleyeceğiniz satır bir fonksiyon ise fonksiyona dallanmaz, işleyip döner ve bir satır devam eder. over yerine so yazmanız da yeterli. exit: Debugger'dan çıkmanızı sağlar. Yukarıda bahsettiğim komutlar haricindeki komutları önceden de söylediğim gibi help yazarak birer satırlık açıklamalar haricinde görebilirsiniz. Kolay gelsin. Devamı için : Corona Debugger Kullanımı

MySQL Tekrar Eden Verileri Bulmak
Merhaba, Binlerce satır verinizin bulunduğu bir tabloda birbiri ile aynı olan satırları bulmanız gerekebilir. Bunun için aşağıya yazacağım SQL cümleciğini kendinize göre düzenleyerek çalıştırabilirsiniz. SELECT column FROM table GROUP BY reference_column HAVING COUNT( * ) >1 column : buraya görüntülemek istediğiniz sutunları yazabilirsiniz veya tümü için * yazabilirsiniz. table : işlem yapmak istediğiniz tabloyu yazınız reference_column : aynı dataların olup olmadığının kontrol edileceği sutun. Umarım işinize yarar. Devamı için : MySQL Tekrar Eden Verileri Bulmak
3 Kasım 2012 Cumartesi
FTP den yanlislikla .svn veya .git klasorunu da yuklemek
Versiyon kontrol sistemi kullanmanın avantajlarından şu yazımızda bahsetmiştik. Ancak bunu bilinçsiz kullanmanın epey zararı olabiliyor. Şurada okuduğumuz yazı da belirtiyor ki, FTP den dosya yüklerken , .svn klasörlerini ve içeriklerini de yanlışlıkla yükleme ihtimalimize karşı, (veya .git klasörünü) projemizin kaynak kodlarının tamamının çalınma riski oluşuyor. Hatta risk değil bu, direkt buyrun alın diyorsunuz. Bu klasörlerin içinde versiyon kontrol sistemi dahilinde olan kaynak kodların tamamı ve her versiyonu bulunuyor. SVN 'de FTP den atacaksanız export işlemi yapıp, projeyi SVN dosyalarından arındırmanız gerekiyor. Google'da şu aramayı yaparsanız eğer, zaten dediğimi anlayacaksınız : ".svn" intitle:"Index of" Bu yüzden, projelerinizde versiyon kontrol sistemlerini kullanıyorsanız (kullanın tabi ki..) , bu duruma özellikle dikkat ediniz. Sonradan başınız yanmasın. Devamı için : FTP den yanlislikla .svn veya .git klasorunu da yuklemek
Kaydol:
Kayıtlar (Atom)