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

BT Hayat Yazılar

Caps Yapma’nın Kolay Yolu: Capst It

Ofiste hemen herkese Mac ve iPhone aldırma politikamız yavaş da olsa meyvelerini veriyor. İlk olarak Said Özcan ve Meryem Ekinci’nin hazırladığı Flather ve şimdi de Hüseyin Kabil’in hazırladığı Capst It AppStore’da yerini aldı.. Genç arkadaşları tebrik ederiz. Binbir bahanenin arkasına saklanıp “ama ağbiii” edebiyatı yapan diğer arkadaşlara da kapak olmasını temenni ediyoruz. Zaten kimseye işi gücü bırakıp uygulama yazın demiyoruz, boş vakitlerinizde bari mobil uygulamalar ile ilgilenin diyoruz. Caps It’in kullanımı çok kolay. Fotoğraf seçip yahut yeni fotoğraf çekip caps metni ekliyorsunuz. Hazır bir kaç caps metni de mevcut. Hazırladığınız caps’leri kaydedebildiğiniz gibi Twitter ve Facebook’da paylaşabiliyorsunuz. İlk sürüm olduğundan…

NSNotification BAD_ACCESS verince..

İki gündür uğraştığım sorunun çözümüne nihayet ulaştım. Kısaca problemi anlatayım, başınıza gelirse demedi demezsiniz 🙂 UIButton’dan ürettiğim içinde timer olan özel bir class’ım vardı. Bu class’ın initWithFrame methodunda bir notification observer’i yani uygulamadan bir notification gelince cevap verecek fonksiyonu tanımlayan şu satır yer alıyordu. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(ilgiliFonksiyon:) name:@”ilgiliNotification” object:nil]; Bu buton tipinden 3-4 tane oluşturup program ile ekrana yerleştiriyordum. Bu butonlara tıklandığında ekranda farklı işlemler oluyordu, mutlaka onlar da durumu etkiliyordu ama şimdi o detaylara girmeyeceğim. Butonlara hiç tıklamazsam ve ekranda herhangi bir şeyi değiştirmezsem sadece notification fırlatacak işlemleri yaptığımda uygulama sorunsuz çalışıyordu. Butonlar notification’lara düzgün tepki veriyordu. Fakat…

Zend’de view render ederken değişkenleriniz değişmiyorsa!

Bu gece de uzun bir debug sürecinden sonra uyuz bir durumun çözümüne ulaştık. Unutmadan hemen kendime not düşeyim, ayrıca yarın bir gün saftorik bir eleman ‘abi bu nasıldı?’ derse ‘Blogumda var, yoksa okumadın mı ha!!!!’ diye yalandan celallenebileyim 🙂 Bu gençler olmasa biz neyle eğleneceğiz yahu.. Zend’de bir action’da siz başka bir şey zorlamadığınız müddetçe o action’ın adında bir view dosyası render etmeye çalışır sistem.. Mesela TestController’ında denemeAction()’ını varsa bu action çalıştırıldığında views/scripts/test klasörü altında deneme.phtml’i bulunur, render edilir ve layout dosyanız ne ise onun içine render edilmiş hali oturur. Controller’da view katmanına $this->view şeklinde erişilir. View’a bir değişken gönderilmek…

Zend Framework’de Veritabanı ile Routing

Zend’de routing listenizi -en azından bir kısmını- veritabanında tutmak istiyorsanız Bootstrap’da bu işi yapamıyorsunuz. Çünkü henüz bootstrap aşamasında veritabanına bağlanamıyorsunuz. Google’da aradım taradım, bazı öneriler gördüm ama çözemedim. Routing işine girmeden önce, artık kullanılmayan URL’ler için ErrorController’da db taraması yapıp doğru linke 301 (Permanently Moved) hatası ile yönlendiriyordum. $this->_helper->redirector->setCode(301); $this->_redirect($yenilink); Burada yönderme yapılıyor. Yani kullanıcı açısından tarayıcının url’i değişiyor. Ziyaretçi artık kullanmadığınız mesela http://falanca.com/filanca adresine girmek isterken siz onu http://falanca.com/yeniadres gibi bir adrese yönlendirmiş oluyorsunuz.Bu sırada 301 hatası verdiğiniz için aynı linke arama motorları da erişmek istediğinde 301 hatasını dikkate alıp arama sonuçlarını güncelleyebiliyorlar. O nedenle 301 önemli. Routing’de ise…

NSIstanbul Etkinliği

Bir kaç haftadır evden çalışıyorum. Garip ama bazan bir işe konsantre olup bitirmek için ofis en kötü ortam olabiliyor. Evde daha az insan olduğu için etkileşim (goygoy) daha sınırlı kalıyor demek ki 🙂 Bu yoğun tempoya hem mesai arkadaşım, hem de kuzenzadem olan genç developerlardan Hüseyin Kabil de dahildi. Sabahlara kadar o controller senin, bu view benim bir yandan kod temizliyor, bir yandan da yenilerini yazıyorduk. Hüseyin’in baskısı ile geçtiğimiz pazar günü koda ara verip Levent’teki Girişim Fabrikası’nda yapılan NSIstanbul etkinliğine gitmeye karar verdik. Amerikadan henüz dönen hayınçom Fehim Tabak da bizleydi. Eşim Şahika gelemedi, zira bir gün öncesinden Modanisa’nın…

Ottomania

Bir kaç gün önce TRT1’de “En Uzun Yüzyıl” isimli dizinin bir bölümüne denk geldim. Bu tabiri Prof. İlber Ortaylı’nın bir kitabının adından hatırlıyordum. Dizide eniştesi Sultan Abdülaziz Han’ın ve katledilişine ve hasta kızkardeşinin hakaretler görmesine dayanamayan Çerkez Hasan’ın Avni Paşa’nın hakkından gelmesi ve sonra da idam edilmesi işleniyordu. Böyle tarihi karakterlerin -bilhassa haksızlıklara maruz kalmasının- konu edildiği televizyon yapımlarını izledikten sonra hemen bir wikipedia araştırması başlar bizim evde. O kimdi, öbürü kimdi, hakikaten öyle mi olmuştu.. Bu sorguları yaparken Sultan  Abdülaziz’i, sonrasında Sultan Abdülhamit’i, Avni Paşa denen deyyusu, Mithat Paşa denen zevatı inceleyip durdum. Hatta hızımı alamadım V. Murat’ı tekrar…

Objective-C Arkaplanda Ses Çalma – Audio Session

Uygulamanızda audio özellikleri kullanıyorsanız, yani bir servisten veya bir dosyadan ses oynatıyorsanız uygulamayı kapattığınızda arkaplanda sesin devam etmesini isteyebilirsiniz. Bunun için yapılması gereken işlem oldukça basit. Öncelikle uygulamanızın plist dosyasına  “UIBackgroundModes” nodu ekleyip karşısına “audio” yazmak lazım (Xcode bu yazdıklarınızı sürümüne göre başka kelimelerle otomatik olarak değiştiriyor, şaşırmayın). Sonra uygulamanızın AppDelegate.m dosyasındaki init veya applicationDidFinishLaunching fonksiyonlarından birine şu kodu yazıyorsunuz. -(id) init { [[AVAudioSession sharedInstance] setDelegate: self]; [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; }

MySQL için strip_tags() fonksiyonu

PHP’de kullandığımız strip_tags() fonksiyonu parametre olarak aldığı metindeki tüm HTML taglarını ortadan kaldırıp sadece metin bilgisinin kalmasını sağlıyordu. Bu fonksiyona MySQL’de de ihtiyaç duyduğunuz oldu mu? Benim oldu. Buyrun burdan yakın efendim:  delimiter ;; CREATE  FUNCTION strip_tags2(str text) RETURNS text CHARSET utf8 BEGIN     DECLARE start, end INT DEFAULT 1;     LOOP         SET start = LOCATE(“”, str, start);         IF (!end) THEN SET end = start; END IF;         SET str = INSERT(str, start, end – start + 1, “”);     END LOOP; END  ;; delimiter ;

Ebruli Osmanlıca Sözlük Yenilendi

Bundan dört sene önce ikinci sürümünü çıkardığımız Ebruli Osmanlıca Sözlük iOS uygulamasının yeni sürümü (iPhone 5/5S/5C uyumlu) nihayet yayında. Keşke yıllar önce yapmaya karar verdiğim iPad sürümünü de bitirebilseydim ama malesef o başka bir bahara kaldı. Ebruli Sözlük’ün yeni sürümünde tasarımı biraz sadeleştirdik. İnşallah beğenirsiniz. Bir önceki sürümündeki “her aramaya dair sadece ilk 10 kelimeyi getirme” gibi bazı teknik detaylar “bazı” kullanıcıların yanlış anlamasına neden oluyordu. AppStore’daki yorumlarda çirkin itham yazacak kadar durum vahimleşince yeni sürümde yanlış anlamaya sebebiyet verecek bu kısıtlamaları kaldırdık. Ayrıca bu sürümde uygulamamıza küçük bir de oyun ekledik. Rastgele bir Osmanlıca kelimenin açıklaması karşınıza geliyor ve…

Hareket Lazım

İnsan durdukça demir gibi paslanıyor.. “İşleyen demir ışıldar” misali çalıştıkça, çabaladıkça hem moralimiz, hem sıhhatimiz hem de ortaya koyduğumuz ürün ışıldıyor. Çalışmazsak, üzerine titremezsek ne kadar iyi bir ürün olursa olsun birileri ondan daha iyisini yapıyor, yahut vaktiyle çok iyi olan bir ürün zamana ve zamanın getirdiği taleplere cevap veremez hale geliyor. Eğer ürünle ilgilenmiyorsanız bu eksikliği de göremiyorsunuz doğal olarak. Her zaman “yeni” olana heves etmemek de lazım. Yeni insanı heyecanlandırır belki, yeni bir iş, yeni bir proje, yeni bir ürün, yeni bir fikir. Fakat mevcut olanı korumak, onu güzelleştirmek, devamlılığını sağlamak da mühim. Belki daha zor ama mutlaka…