"Enter"a basıp içeriğe geçin

Kategori: Kendime Not

MKNetwork ile Array Post Etmek

MKNetwork’le array post etmek için iki gündür çabalıyorum. Google’da okuduklarım beni çözüme ulaştırmasa da çözüme giden yolu görmemi sağladı. Aslında çözüm çok ta basitmiş. MKNetwork’le post etmek istediğim verileri karşılayacak api PHP ile yazıldığından; bir array’in gitmesi için mesela şu şekilde olması gerekiyor; il_id[]=53&il_id[]=61&id_id=10 Bu; php’de il_id diye bir array oluşturup içine 53, 61,  10 verilerini yerleştirir. Problem şu; MKNetwork NSMutableDictionary tipinde bir parametre listesi alıyor. Yapısı gereği NSMutableDictionary objesine birden fazla aynı key’e sahip öğe ekleyemiyoruz. yani “il_id[]” keyini sadece bir kere kullanabiliyoruz. Ben de bunu aşmak için uğraş veriyordum. Google’da bulduğum şu sayfa sorunumu çözmedi ama çözümü bulmamı…

NSMutableDictionary’den eleman silmek

Objective-C’de NSMutableDictionary tipindeki bir değişkenden [dict removeObjectForKey:key] fonksiyonu ile eleman silinir. Eğer bu işlemi yaparken *** Terminating app due to uncaught exception ‘NSGenericException’, reason: ‘*** Collection <__NSDictionaryM: 0x92c50b0> was mutated while being enumerated.’ hatası alıyorsanız; bir iterasyon sırasında yani NSMutableDictionary tipindeki değişkenin elemanları üzerinde döngü ile dolaşırken bu işi yapmaya kalkıyorsunuz demektir.     for (NSString* key in dict) { if([key isEqualToString:@”silinecek_key”]) [dict removeObjectForKey:key];  //iterasyon içerisinde bu işlem yapılmaz! } Bu  hatayı engellemek için döngü içerisinde hangi öğelerin silineceğini bir dizide tutmalı ve döngü sonrasında bu elemanları değişkenden çıkarmalıyız. İkinci bir yol olarak da NSMutableDictionary tipindeki değişkenin üzerinde değil, [dict allKeys]…

Hostgator Dedicated Sunucuya Git Kurmak

githubOfiste svn’i bırakıp git’e (Linus Torvalds’ın yazdığı bir versiyonlama sistemi) döndüğümüzden beri kişisel projelerimde de git kullanıyorum. Projelerimizi gitHub’un sunucularında depoluyoruz. Açık kodlu projeler için gitHub ücretsiz, özel projeler içinse aylık 7 dolardan başlayan fiyatları var. Listesi burada.

Yine ofiste tüm projelerimizi Amazon EC2 sunucularında host ediyoruz, bu sunucuları kendimiz açtığımız için içinde istediğimiz gibi at koşturabiliyor, git gibi ne lazımsa kurabiliyoruz. Kişisel projelerim için vaktiyle HostGator’u tercih etmiştim, şimdi taşınmaya vakit bulamadığım için çıkamıyorum, bir de WHM ve CPANEL’e yıllardır çok alıştım. Vazgeçmek istemiyorum.

Şu hususa açıklık getirelim: git sisteminde tuttuğumuz projelerimizi ekibimizdeki diğer geliştiriciler de indirip güncelleyebilsinler diye bir git sunucusunda tutuyoruz. Ayrıca projenin git’siz halini de ziyaretçilerin hizmetine sunmak üzere başka bir yerde web sunucusunda tutuyoruz. Tabi ki gerekli durumlarda bu iki sunucu sistem aynı makinede yer alabilir. Biz projeyi depolamak için gitHub’u, webe sunmak için Amazon’u tercih ediyoruz.

CocoaPods ile QuickDialog Kurulumu

Bir önceki yazıda bahsettiğim kütüphanelerden QuickDialog‘u web sitesindeki yönergeleri defaatle tekrarladığım halde başarılı bir şekilde projeme dahil edemedim. Sürekli “#import <QuickDialog/QuickDialog.h> file not found!” deyip durdu. Forumlarda da çare bulamadım. Ofisteki bir arkadaşımın “CocoaPods‘la kurmayı deneyelim” demesiyle kolları sıvadık. Aslında bir önceki yazıda CocoaPods’dan da bahsetmiştim ama oraya yazdığım üzere CocoaPods’un sadece bu kütüphanelerin son sürümlerini takip edebilmek için bir araç olduğunu düşünmüştüm. Meğer bu paketleri projemize dahil edebilmek için kullanılıyormuş CocoaPods. Önce CocoaPods’u kuralım. Web sitesinde de yazdığı üzere CocoaPods “ruby gem” adı verilen bir platform üzerinden kullanılabiliyor. Ruby gem’i kurmak için de makinemde zaten kurulu olan “macports” platformunu…

Mobilist’ten iOS Uygulama Geliştirme İpuçları

Geçen ay (21 Nisan) Bahçeşehir Üniversitesi’nde yapılan Mobilist – Mobil Uygulama Geliştirme Konferansı’nda aldığım bazı notları kaynakları ile birlikte yayınlamak istiyorum. Konferans’da iOS konusunda Sarp Erdağ, Taylan Pince ve Emrah Ayanoğlu konuşma yaptılar. Bilhassa Sarp Erdağ (Hızlı iOS ve Mac uygulama geliştirme) ve Taylan Pince’nin (iOS ve XCode Üzerine Pratik Öneriler) sunumları çok ilgimi çekti. Sarp Erdağ’ın sunumundan aldığım notlar: Uygulama inceleme siteleri: App Annie, 148Apps, Distimo Uygulamanızı minimum ihtiyaçları karışlayacak şekilde hızlıca çıkarın, sonraki güncellemelerle diğer özellikleri ekleyin. Geliştirme safhasını kısa tutun Arayüz sade ve kullanışlı olsun, abartılardan, karmaşık detaylardan kaçının Kimler nasıl mobil arayüzler hazırlamış diye inceleyin: pttrns.com…

Chrome’da file objesini tetiklemek

  Web sayfanızda File input öğresi yerine bir buton veya link ile dosya diyalog penceresini açmak istediğinizde ilk yaptığımız şey “display:none” diyerek mevcut file input nesnesini gizlemektir. İşte chrome da tam buna gıcık oluyormuş. O nesne görünmez olduğu için jquery ile $(“#file_input_nesnesi”).trigger(“click”) dediğinizde bir tepki vermiyor. Yapılacak iş file input nesnesini başka bir şekilde gizlemek. Mesela “position:absolute; top:-999px; left:-999px” şeklinde stil vererek gizlediğimizde sorun kalmıyor..

Javascript ile textbox’lardaki verileri toplama çıkarma

Son yarım saatimi bir kaç satır javascript koda harcadım. Html olarak elinizde bulunan değerleri javascript ile toplamak isterseniz 2+2’nin 4 değil 22 ettiğine pek çok kere şahit olursunuz. Bu durumu düzeltmek için şöyle yapmak en kestirme yol gibi görünüyor. Not: jQuery kullanılmıştır. var a=$(“#sayi1”).val(); var b=$(“#sayi2”).val(); var toplam=+a + +b; var fark=+a – +b;

SEO uyumlu link

SEO yani arama motoru optimizasyonu için haber.php?id=110 gibi manasız bir link yerine haber/bugun-teknoparka-kar-yagdi gibi semantik yani kelime bakımından anlamlı linkler çok mühimdir. Google’da “teknopark” aratıldığında bu haber sayfasının çıkması için bu şekilde link vermek, alınacak SEO önlemlerinden biridir. SEO uyumlu linkler genelde içeriğin (haber, ürün, sayfa vs) orijinal başlığındaki Türkçe özel karakterler İngilizce benzerleriyle (ö yerine o gibi) değiştirilerek ve noktalama işaretleri kaldırılıp kelime aralarındaki boşluk yerine “-” (orta tire) konarak oluşturulur ve bu şekilde kaydedilir. Gerçi bunun bir kaç taklası var. Mesela haber.php?id=110#bugun-teknoparka-kar-yagdi demek de SEO için aynı etkiyi verir. Bu örnekte yine id önplandadır, haberin içeriği id ile…

Benim sadık yarim kara konsoldur

Çok uzun yazdığıma dair şikayetler devam ettiği için hemen başlayıp, kısa keseceğim 🙂 Unix/Linux işletim sistemlerinin bence en güzel yanı kuvvetli ve çok yetenekli bir komut yapısına sahip olması. Amiyane tabirle siyah ekran dediğimiz o terminal (konsol) ekranı aslında işletim sisteminin kendisi 🙂 İşte bu kara konsolun yetenekleri bazan gözlerimi yaşartıyor 🙂 Örneğin ssh ile bağlandığınız bir sunucuda büyücek bir dosyayı kendi sunucunuza almak istiyorsunuz, FTP hesabınız da yok. Bunun envai türlü yöntemi var ama hazır dosyayla aynı makinedeyken komut satırından göndermek bence en güzeli. İşte scp (secure copy) tam da bunun için var. Dosya göndermek için: #scp dosya_adi.uzanti kullanici_adiniz@sunucu.adresiniz:/sunucudaki/yazma/hakkinizin/oldugu/klasor…

Ofiste Mac’e doyduk..

Bir sene önce Dell Vostro pc’lere iatkos kurmakla kendimizi avuturken çok şükür ofisimiz Mac Mini, MacBook Air, MacBook Pro ve iMac’lerle doldu. Evdeki Mac’lerin durumu da değişti ama sayı değişmedi. Geçen sene aldığım Air’i bir kaç ay önce daha iyi bir modeline yükseltmiştim ama ilki de hala duruyordu. Kayınbirader Mac Book Pro alıp pc eziyetine son verdiği sıralarda bizim küçük Air’e talip çıktı. Onu da başgöz ettik. Bir Mac gitti bir Mac geldi 🙂 Şimdi ofiste 27″ iMac kullanmanın verdiği lezzeti evde de arıyorum. Evdeki Air’den çok memnunum da, Air’e bağladığım bu Acer monitör beni mahvediyor. Şahika Hanım’ın 24″ iMac’ini…