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

BT Hayat Yazılar

iOS5 yep yeni özellikleriyle geliyor

Apple iOS’un 5. sürümünü tanıttı. 200’den fazla yeni özellikle mobil işletim sistemleri çıtasını daha yükseğe çıkaran Apple liderliği elinden bırakmaya niyeti olmadığını bir kere daha kanıtladı. iOs 5’in “heyecan verici” yeni özelliklerine kısaca değinelim. Notification Center: Email, SMS ve Takvim mesajları artık tek bir çatı altında toplanmış. Ayrıca herhangi bir uygulamanın tam ortasındayken -mesela bir oyun oynarken- bir mesaj geldiğinde  kocaman bir uyarı uygulamanızı bölmüyor, onun yerine ekranın en üstünde kibar bir uyarı beliriyor ve gözden kayboluyor. Notification Center’e ulaşmak çok kolay, ekranın en üstünden aşağı doğru parmağı sürüklemek kafi. Evet, bu Android işletim sistemindeki yapıya benziyor. Aklın yolu bir…

Harika bir iPad Oyunu: Air Attack HD

Bugün İstanbul Forum’daki Bimeks standlarını dolaşırken iPad’ler gözüme çarptı. Yenileri değil tabi 🙂 Onların Türkiye’ye gelmesine daha çok var. Eskileri bile anca geldi. Müşterilerden biri iPad’lerden birini kapmış söylene söylene oyun oynuyordu. Ne oynuyor, neye söyleniyor diye merak ettim, yaklaştım. “Adamlar ne güzel yapmış, teknolojiye bak bee” diyordu. Meğer hayıflanması cihazı beğenmesindenmiş 🙂 “Bu daha eskisi, yenisi bundan da güzel” diyerek lafa karıştım. Oynadığı oyuna şöyle bir baktım. Eskiden atari salonlarından hatırladığım “Raptor” tarzı bir oyundu. Tabi ki grafikleri Raptor’dan bir milyon kat daha güzeldi. iPad’de uygulamaların ne işe yaradığından ziyade ne kadar güzel göründükleri daha çok ilgimi çekiyor. Hemen…

MacosX İkinci Monitörde Dock ve Menü Kullanmak

Henüz 6 aylık olan Mac Mini’miz bugün GG’de yeni sahibine kavuştu. İş böyle olunca Mac Book Air’i büyük monitöre bağlamak ve konfigüre etmek lazım oldu. Miniport-VGA adaptörü sayesinde ikinci monitör problemsiz çalıştı fakat menü ve dock küçük ekranda kaldı. Bu can sıkıcı durum çok şükür fazla uzun sürmedi. Meğer “System Preferences / Displays” ekranında orta tab’da yer alan “Arrangement” sadece monitörlerin hizasını değil, dock ve menünün nerede olacağını da ayarlamamıza yarıyormuş. İnternette yabancı bir sitede nasıl yapılacağını gösteren videoyu izlemeseydim hayatta aklıma gelmezdi. Yandaki ekran çıktısında da görebileceğiniz üzere sağ taraftaki küçük ekran üzerindeki temsili menü çubuğunu fare ile sol…

Error: Aşırı yoğunluk nedeniyle cevap alınamıyor.

İstanbul’da yaşamanın bazı sosyal sorumlulukları var. Herşeye acele edeceksiniz. Herşeye yetişmeye çalışıp hiç birine yetişemeyeceksiniz. Ömrünüz yollarda geçecek. Gündüz işinize gidip gece ayrıca taksicilik yapacaksınız (ek iş manasında). Olur da bir aktiviteye katılırsanız -kursa gitmek, yüksek lisans programına yazılmak gibi- hayatınız allak bullak olacak. Takviminizde boş yer kalmayacak. Bir arkadaşınız ya da tanıdığınız size telefon açıp buluşalım derse ona “cumaya kadar doluyum, haftasonu da falan işim var, önümüzdeki salı olsun mu?” demek mahcubiyetini defalarca yaşayacaksınız. En son ne zaman kendinize vakit ayırdığınızı unutacaksınız. Her sabah yüzünüzü yıkarken “bu saçları traş ettirmeli” diyecek ama üç aydan evvel asla vakit bulamayacaksınız. Otobüslerde…

iPhone Kursu’ndan Mezun Olduk

Aralık ayında başladığımız iPhone kursumuz bugün sona erdi. Sevgili hocamız Kevser Temiz’e emeklerinden dolayı şahsen çok teşekkür ederim. iPhone gibi popüler bir alanda ilk eğitimi verip -üstelik oldukça ekonomik fiyatla- lider eğitim firmalarına fark atan Gelişim Platformu’na ayrıca teşekkür ederim. Kursa katılmadan önce Objective  C konusunda internetten ve çeşitli kitaplardan derme çatma ingilizcemle edindiğim bilgilerin bu kursda aldığım eğitim yanında solda sıfır kaldığını farkettim. 60 saatte Objective C’ye tabi ki %100 hakim olmak imkansız, ama en temel konuların hepsini öğrendik. Artık kendimizi geliştirip eksiklerimizi tamamlamak bize kalmış. Kursun ilk zamanlarında öğrendiğim herşeyi akşamında bloga yazmak, hem bilgilerimi tazeyken pekiştirmek hem…

MySQL: Insert, ignore, dublicate

MySQL ile tanışalı 10 seneyi geçti; şu hayat kurtaran “ignore” ifadesine bir kere bile denk gelmedim. Bu gece mühim bir işlemi PHP’ye bırakmaksızın sadece veritabanı üzerinden halledeyim diye uğraşırken -kabaca ifadeyle belli bir kriterdeki verileri bir tablodan başka bir tabloya arşivliyordum- hedef tablodaki unique indexler yüzünden canım sorgum “duplicate error” alıyor ve canımı sıkıyordu. Geçen hafta daha da büyük bir datayı işlerken bu tip bir sorun çıktığında işlemi tek bir query ile yapmak yerine aynı vazifeyi görecek update yada insert satırlarınının sql ifadelerini bir txt dosyaya yazıyor ve MySQL client’i üzerinden biner ikişer çalıştırıyordum. Query’ler satır satır olduğundan dublicate hatası…

Ve Sinema: The Adjustment Bureau

Bir Jason Bourne fanatiği olduğumdan beri Matt Damon’un filmlerini merakla bekliyorum. Jason Bourne serisinin başarılı yönetmeni Paul Greengrass’ın çektiği Green Zone’da yine Matt Damon ve action bir araya geldi ama film Irak’da geçtiğinden Bourne’daki gibi hevesimi alamadım. Bourne’da adam tüm Avrupa’nın altını üstüne getiriyordu. Bugün ofisde pazartesi sendromumun en güzel şekilde geçmesi için adetim hilafına bilgisayara bir kulaklık takıp bir şeyler dinliyordum. iTunes dinlediğim dosyayı bitirdikten sonra sağolsun diskteki bir elin parmaklarını geçmeyecek sayıda olan diğer mp3’leri de çalmaya başladı. Tabi bunların arasında Moby-Extreme Ways de vardı (Bourne serisinin kapanış jeneriği). Bunu dinleyince sendrom mendrom kalmadı. Hemen masaüstlerimden birini Bourne…

iPhone Kursu: Plist’lerle tablo oluşturmak-Bölüm1

İki haftadır iPhone kursumuzla ilgili yazı yazamadık. Bunun en büyük nedeni kurs dışındaki işlerimizin aşırı yoğun olmasıydı. Kursdaki konular da giderek daha karmaşık hale geldiği için malesef yazacak vakit bulamadım. Bir ara screen-recording ile video şeklinde hazırlayayım dedim ama sessiz bir ortamda boşluğa konuşmayı beceremedim. Bir kaç popüler video blog inceledim, ama bana göre değilmiş. Hasılı, klasik usüle devam.

Bugün sanırım 10. dersi gördük. Sayısı mühim değil, mevzusu mühim. Artık dışardan data alabileceğimiz konulara geldik. Hocamız önce plist denen dosyalardan nasıl veri okuyabileceğimizi anlattılar. Kısa fakat çok yararlı bir konu olduğundan blogda paylaşmak istedim.

Plist dosyaları, anahtar=>değer (key=>val) formatında veri içeren basit xml dosyalarıdır. Aslında bütün iPhone/iPad uygulamalarında zaten bir tane plist dosyası (uygulama_adi.plist) bulunmaktadır ve uygulamanın icon dosyaları, uygulamanın görünecek adı, ana nib dosyasının ne olduğu gibi bazı ayarlar bu dosyada tutulur.

Biz de istediğimiz kadar plist dosyası oluşturup projemizin resource kısmına koyabilir ve uygulamamızda bu dosyalardan faydalanabiliriz.

Basit bir örnekle konunun detaylarına girelim: Amacımız yine yemek tarifleri uygulaması  yazmak olsun. Ama bu kez datamızı kodun içerisine değil bu plist dosyalara yazalım. İnşallah ileriki konularda da veritabanına yazarız. Uygulamamız “navigation based” bir uygulama olsun ve ilk açıldığında listede yemek kategorileri olsun, tıklandığında ikinci listede de o kategorilerdeki yemekler görünsün. Sonraki aşamaların mantığını zaten daha önceki yazılarda uzun anlatmıştık. O kısımlara hiç girmeyelim. Sadece birbiri ardınca iki listeyi plistlerle doldurmayı görelim.

Mysql için count_str() “kelimedeki karakterin adedi” fonksiyonu

Bir önceki yazıda MySQL için split_str() fonksiyonunu oluşturmuştuk. Kelimeleri verdiğimiz karaktere göre bölüyordu. Amacımız; ad ve soyad değerleri tek bir sütunda isim olarak verildiğinde bu isim bilgisinden ad ve soyadı ayrıştırabilmek idi. split_str() fonksiyonu datayı istediğimiz karaktere göre (örneğin boşluk karakteri) bölebiliyor ve ortaya çıkan gruplardan hangisini görmek istiyorsak onu almamızı sağlıyor. Ama problemimiz için bu yeterli değil. Çünkü isimler her zaman “Fehim Tabak” gibi bir ad ve bir soyaddan oluşmuyor. İki ad ve bir soyad, hatta kulakları çınlasın sevgili arkadaşım “Yusuf Ziya Bektaş Köseoğlu” gibi üç ad ve bir soyad da olabiliyor. Böyle bir bilgiden soyadı ve adı ayrıştırabilmek için “en son kelime soyaddır” ve “en son kelime hariç diğerleri addır” diyebilmek gerek. Aşağıda yazacağımız count_str() fonksiyonu işte bu noktada devreye giriyor.

CREATE FUNCTION COUNT_STR(
x VARCHAR(255),
delim VARCHAR(12)
)
RETURNS INT
RETURN LENGTH(x)-LENGTH(REPLACE(x,delim,”));

Bu fonksiyon parametre olarak verdiğimiz karakterin yine parametre olarak verdiğimiz kelimenin içerisinde kaç kere geçtiğini döndürüyor. Boşluk ‘ ‘ karakteri ilgili alanda kaç kere var diye kullanırsak ‘Fehim Tabak’ için 1, ‘Yusuf Ziya Bektaş Köseoğlu’ için 3 döndürür. Bu sayının bir fazlası bize o alanda kaç kelimelik bir bilgi olduğunu yani ismin kaç kelimeden oluştuğunu döndürür.

MySQL için split fonksiyonu

Excel’den aldığım bir veriyi hazırladığım bir tabloya aktarmam gerekiyordu. Tablomda ad ve soyad sütunları ayrı ayrı olacak şekilde tasarlanmıştı ama aktarmak istediğim Excel dosyasında isim olarak tek sütun vardı. İlk iş olarak Excel dosyasını phpmyadmin yardımıyla komple bir tablo olarak veritabanına yükledim. Aktarma için kaynak tablodan select yapıp hedef tabloya insert uygulayacaktım ama bu ad, soyad sütunlarının ayrı ayrı olması işi biraz bozdu. Kaynak tablodan select yaparken isim sütunundaki veriyi kelimeler arasındaki boşluklardan yakalayıp ad ve soyadını soyadını ordan ayrı ayrı yakalamak icab ediyordu. PHP’de bu tarz bir parçalama işlemini explode() fonksiyonu ile yapmaya alışmış biri olarak keşke MySQL’de de…