Mevzu başlıktaki gibi kolay ve tek satırda hallolmuyor malesef. Amacım resimde gördüğünüz gibi yanyana iki div koymak ve bunlardan birisi sabit genişlikte iken diğer div’in kalan alanın tamamını kullanmasını sağlamak.
Fatih Hayrioğlu’nun sitesinde bulamayınca Google’da aradım ama Türkçe örnekler malesef netice vermedi. Stackoverflow.com’da şu sayfadaki Andres kullanıcısının örneği işe yaradı.
Bu işlem için evvela bu iki div’i taşıyacak bir div daha gerekiyor. Dışardaki div’e dar ve sabit genişlikli olan div kadar padding-left vermek gerekiyor ki geniş alan bu mesafeden başlasın ve %100 genişliğine sahip olmasına rağmen padding’den dolayı sadece kalan alanı kullanabilsin. Bu kısım çalıştığında aslında işin zor kısmı bitmiş oluyor. Geniş olan div’in sabit bir alan hariç tüm ekrana yayılmasını sağladık.
İkinci olarak da dar ve sabit genişliğe sahip div’i kapsayıcı alandaki padding’den oluşan boşluğa konumlandırmak gerekiyor. Normalde bu div de ana div’in içerisinde yer aldığından padding-left’ten etkilenecektir. Bu etkiyi sıfırlamak için kendi genişliği kadar negatif değerli margin-left kullanıp kendini taşıyan div’in dışına çıkmasını sağlamalıyız. Bu kadar.
Neredeyse bir ay kadar önce Tgrt-FM iPhone uygulamasında kullanılan sunucu adresinin değiştirildiğini, uygulamanın güncellenmesi gerektiğini haber verdiler ama hem Tgrt tarafından beklediğim bazı adreslerin (yayın akışı, frekans listesi ve streaming adresinin onların vereceği sabit adreslerde tutulmasını talep ettim, böylece hem kendi sunucumda parse etmeme gerek kalmayacak hem de olası streaming adres değişikliğinde uygulamayı güncellemek gerekmeyecek) gelmesi hem de fırsat bulup yeni bir tasarım yapmam biraz uzun sürdüğü için ancak bugün göndermek nasip oldu.
Sürekli istememe rağmen PHP’den başımı kaldıramadığım için unuttuğum Objective-C ve Xcode’un bana çıkartığı problemler de cabası tabi. Ama Tgrt-FM’in bu yeni sürümü sayesinde bir şeyi daha tecrübe etmiş oldum. iPhone ve iPad uygulamasını tek program altında kotarmak nasılmış onu öğrendim ve çok hoşuma gitti.
Ben tamamen tek bir arayüzle ve tek bir kod grubu ile işi halledeceğimi düşünüyordum ama tamamen öyle değilmiş. Evvela projeye başlarken Device Family seçeneğini “Universal” olarak işaretliyorsunuz. iPhone için ayrı, iPad için ayrı .xib dosyaları oluşuyor. Dolayısı ile iki uygulamanın görüntüsü tıpatıp aynı olmak zorunda değil. Mesela ekran daha büyük olduğundan iPad’de daha değişik bir arabirim sunabilirsiniz. Ama kod grubu tek parça olabiliyor. Şöyle ki: bizim örneğimize göre açıklayayım. Yanda gördüğünüz üzere TgrtFM klasörü altında TgrtFmAppDelegate dosyaları ile iPad ve iPhone klasörleri var. Bu klasörlerde de TgrtFMAppDelegate_iPad ve TgrtFMAppDelegate_iPhone dosyaları ve .xib dosyaları var.
Yani eğer iPhone ve iPad için farklı fonksiyonlar yazmayacaksanız hepsini ana klasördeki AppDelegate dosyalarına yazabiliyorsunuz. Eğer birbirinden ayrı işlemler olacaksa sadece onları kendi klasörlerindeki AppDelegate dosyasına yazabiliyorsunuz.
Uygulamanın bu sürümünde kullanıcılardan sık sık aldığımız bir şikayeti de düzelttik. Bir radyo uygulaması olduğundan arkaplana atıldığında da yayının devam etmesi beklenen bir davranıştır. Malesef önceki sürümde bu özellik yoktu. Audio Streaming konusunda zerre bilgim olmadığından internette bulduğum dökümanlardan ne anlıyorsam o kadar iş yapabiliyorum. Bu uygulamada kullandığımız ve http://cocoawithlove.com/ blogunun sahibi Matt Gallagher’ın yazdığı AudioStreamer classı için interneti tarumar ettim. Bir kaç örnek uygulama indirdim ve gerçekten arkaplanda yayının devam ettiğini gördüm. Ama bunu sağlamak için çok girift kodlar yazmışlardı. Bana daha transparan bir çözüm lazımdı. Ne bileyim, bir ayar dosyasına bir şey yazmak ya da bir konfigürasyon sayesinde bu işin olmasını bekliyordum.
Tam da aradığım çözümü şurada buldum. Örneği yazan kişi “böyle yapınca simülatörde çalışıyor, ama gerçek bir cihazda deneyemedim” diyordu. Korktuğum oldu, gerçek cihazda çalışmadı. Daha sonra şimdi adresini hatırlamadığım başka bir yerde de info.plist dosyasına arkaplanda çalışması için bir key eklemek gerektiğini okudum:
Böylece mevzu tamamlanmış oldu. Ondan sonra bir saatimi de uygulamayı AppStore’a göndermeye harcadım. Kullandığım bilgisayar değişince keychain uygulamasında sertifikaları vs düzenlemem gerekiyordu. Nasıl yapılacağını hatırlamadığım gibi sürekli lazım olmadığından böyle son dakikalara kaldı. Uzun ama bildiğim yolu seçip Apple Developer Center sitesinden tekrar sertifika talep ettim, tekrar developer ve distribution profile’ları oluşturup indirdim. Xcode’a ekledim bütün hatalardan arındıkdan sonra “Archive” deyip uygulamayı gönderdim. Gönderme işleminde de hatalar çıkabiliyor, 7. denememde anca toparlayabildim.
İnşallah AudioStreamer class’ından kaynaklanan iki notice için Apple uygulamayı reddetmez. Çalışmasına engel olan hatalar değil. İnternette araştırdım ama nasıl çözüleceğini bulamadım. Matt Gallagher de class’ı güncellememiş.
Bugün, eşimle birlikte Yeşilköy’deki Kas Hastalıkları Derneği‘ndeydik. Bir hafta kadar önce Dr. Hakkı Öcal’ın (yani Hakkı Abi) ve sevgili arkadaşımız Bahtiyar Dilek’in katkılarıyla neredeyse 10 yılı aşkın bir süredir gıyaben tanıştığımız bilişimci arkadaşlarla ortaklaşa kararlaştırdığımız bir etkinlikti bu. Ben son bir haftasını biliyorum, ama aylar öncesinden konuşulmaya başlandığını Facebook yorumlarından hatırlıyorum.
Etkinliğe ev sahipliği yapan ve bizim bilinçlenmemiz için dil döken, uğraşan dernek yöneticilerine ve kas hastalıklarının verdiği onca zorluklara rağmen canla başla çalışan başta Bahtiyar olmak üzere tüm sevgili arkadaşlarımıza nacizane teşekkür ediyorum.
Etkinlikte ilk önce katılımcı arkadaşlar kısaca kendilerinden bahsettiler. Edirne’den, Tokat’tan gelen arkadaşlarımız vardı. 1998-99 yıllarından beri gıyaben hep birbirimizi tanıyorduk. Bir kaçımız yüzyüze daha önce görüşmüştük. Ama mesela eşim Hakkı Abi’yle ilk kez burda görüşmüş oldu. Henüz twitter, facebook yokken -ya da biz tanışmamışken- forumlarda, irc’lerde birbirimizi tanıyorduk. Yüzyüze tanışmak bugüneymiş.
Tanışmadan sonra dernek genel sekreteri Aynur Dik hanımefendi, daha sonra da yönetim kurulu üyelerinden Hakan Özgül Bey kas hastalıkları ile ve Kas Hastalıkları Derneği ile ilgili, projelerle ilgili bazı bilgiler verdiler. Elimden geldiğince bunları anında twitter‘a göndermeye çalıştım. Şahika Hanım telefonla oynadığımı sanarak “Hakkı Abi sana dik dik bakıyor, bırak şu telefonu” diye uyardı ama ben dinlediklerimi yazmakla meşguldüm. Böyle bir intiba uyandırdıysam özür dilerim :)
Aldığım notları kısaca buraya da geçeyim:
Kas Hastalıkları Derneği 1978′de kuruldu.
Kas Hastalıkları 200′ün üzerinde çeşidi olan ve çoğu genetik kökenli olan, ilerleyen bir hastalık olduğundan sürekli rehabilitasyon gerekiyor.
Sadece kas hastaları için değil, bebek arabası taşıyan anneler, yaşlılar için de mimaride ‘evrensel tasarım’ şart!
Kas Hastalıkları Derneği evde bakım için pek çok kurumla irtibat kurup destek sağlıyor.
Kas Hastalıkları Derneği İstanbul Büyük Şehir Belediyesi ile şuanki dernek arazisiyle ilgili bazı sorunlar yaşıyor.
Tanınmış kas hastalarından biri: Stephen Havking
Türkiye’den bir başarı örneği. Kas hastası bir göz doktoru olan Alper Kaya. ‘İşaret Parmağım’ adlı kitabın yazarı, kitabı işaret parmağı ile yazmış.
Kas Hastalıkları Derneği pek çok sivil toplum örgütü ile beraber “ayrımcılıkları izleme ve ayrımcılıkla mücadele platformu” için çalışıyor.
Mimar Cengiz Bektaş okullardaki engelleri tespit edip okullarda farkındalik toplantıları hazırlıyor.
Dernek, erişilebilirlikle ilgili pek çok rapor hazırlayıp belediyelere danışmanlık yapıyor. Eskiden kimse bu taleplere bakmazdı bile.
İBB‘den uzmanlar artık toplantılarımıza katılıyor.
Kamu kurumlarındaki yetkililer engelliler adına ne yapılması gerektiğini bilmediklerini, ama bu uğurda uğrastıklarını belirtmiş.
Dernek, bazı kurumlara davalar açmış. Örneğin bir üniversite ÖSYM klavuzunda ‘engelliler icin mekanımız yok, bize engelliler başvurmasın’ diye belirtmiş. Bu tip ayrımcılıklarla hukuki mücadele başlatılmış.
Dernek, 7 temmuz 2012′de yapılmayan her türlü vaat için suç duyurusunda bulunulacağını, şuan bunun altyapısının hazırlığının yapıldığını açık ve net belirti. Bu vaatler arasında Metrobüs için yapılacağı söylenen düzenlemeler de var.
Dernek ilk basın açıklamasını 3 Aralık Dünya Engelliler Günü’nde yapacak.
Derneğin içinde bulunduğu projelerden biri: “Bir Nefes De Sen Ver”. Malesef SGK kapsamında olmayan ve hastayı dik durumda hareket ettirebilen sandalyelerden edinme kampanyası.
Dernek, ilk, orta, lise ve üniversitede okuyan ve ekonomik güçsüzlüğü olan tüm kas hastalarına yardım etmek istiyor. Şuan 30 kişiye bu yardım ulaştırılıyor.
Dernek, yakın zamanda hastaların tüm bilgilerini toplayabildiği php tabanlı yazılımı devreye almış.
Dernek tiyatro ve dans gibi sosyal etkinlikler düzenliyor. Hatta Tango gösterisi için Acun Ilıca’lıya ulaşmak istiyorlar.
Twitter’a attığım notlar bu kadardı. Sonrasında çay ikramı oldu ve bilişimciler hem dernek yöneticileri ve dernek mensubu arkadaşlarla, hem de kendi aralarında hasret giderdiler, fotoğraflar çektiler. Koca koca fotoğraf makineleriyle çekilen o pozlardan mutlaka istiyoruz. İlgililere burdan duyuruyorum!
Toplantıdan sonra bir kaç arkadaş İBB Florya Sosyal Tesisleri’nde muhabbete devam etmek istedik. Çok da güzel oldu. Ne yalan söyleyeyim, FriendFeed’in müdavimi olmama rağmen orda düzenlenen toplantılara hiç kanım ısınmıyordu. Eski arkadaşlar olan bu samimi muhabbet çok hoşuma gitti.
Organizasyona vesile olan Bahtiyar Dilek kardeşime, Kas Hastalıkları Dernek yöneticilerine, ABD’den gelip onca işinin arasına bizi de katan sevgili Hakkı Abi’ye, Selçuk Yavuz’a, Muharrem Taç’a, İbrahim Özdemir’e ve tanıştığım diğer tüm sevgili arkadaşlara ve bilhassa ta Eskişehir’den sırf bu etkinlik için günübirlik gelen Arda Balkan Bey’e de ayrıca teşekkür etmek istiyorum..
Dün akşam bir arkadaşımın Almanya’dan getirttiği iPhone 4S’i biraz kullandım. İlk işim Siri’yi incelemek oldu tabi. Benim İngilizce telaffuzum berbat ötesi olduğundan Siri pek bir şey anlamadı. Gerçi Türkçe anlasaydı da telaffuzumu beğenmeyebilirdi (Bizim uşaklardan Cemal’i bağla dedum da).
Geçen sene iPhone 4′ü de ilk kez bu arkadaşda görüp “patrondan önce kullandım” havasını atmak için hemen twitter, instagram, facebook, friendfeed ne kadar sosyal medya varsa paylaşmıştım :)) Ama patronum şuan Amerika’da olduğundan gelirken kendine bir tane alıp “hava öyle değil böyle atılır Hasan’cım” derse şaşırmayacağım :))))
Bu kullandığım iPhone 4S, Almanya’dan geldi. Hem de piyasaya çıktığı günün ertesinde. Yeni iPhone’nun ABD ile aynı anda piyasaya çıktığı bir kaç ülke varmış. Bu sene Almanya da bu kervana katılmış. Aynı anda almayı geçtim, bize aynı sene içerisinde gelsin ona da razıyım. Ama asıl razı olamadığım fiyatı!
Unlock olarak Almanya’dan alınan telefonun fiyatı yaklaşık 2100 TL. Bunu duyunca tepem attı tabi. Ülkemizde hepsiburada.com’da 2800′den satılmasına ayrı sinirlendim, geçen sene iPhone4′ü Turkcell’den kampanyasız olarak aldığım fiyattan bile ucuz olmasına ayrı sinirlendim.
Hülasa; yediğimiz kazığın haddi hesabı yok. Bu kazığı Apple mı atıyor? Almanya’ya 10 liradan Türkiye’ye 20 liradan mı satıyor? Yoksa Türkiye’deki Turkcell, Avea, Vodafon “bizimkiler pahalıyı ayrı sever” deyip onlar mı icabımıza bakıyor. GSM firmalarının hiç bir maliyeti olmamasına rağmen SMS’e ayda 30 TL fatura kestiklerine ve iMessage sayesinde Apple’ın en azından bu yükün bir kısmından kurtulmama vesile olduğuna bakarsam, bu küçük hesap bile kazığı nerden yediğimi açık açık gösteriyor.
Mac’deki yetersiz ama gelecek vaadeden sevimli Php editörüm Coda geçen gün feci bir kazık attı bana. Şirket projelerini tuttuğumuz svn sunucunun ssl sertifikasını güvensiz buldu ve projeyi indirmeme izin vermedi. Bunu daha global bir yöntemle halledemez miyim, mac’a bu sitenin güvenli olduğunu zorla ikna edemez miyim diye arkadaşlarıma sordum ama olumlu bir cevap alamadım. Default tarayıcının ayarlarıyla siteyi güvenli olarak kabul etmek gibi kolpa girişimlerim de işe yaramadı :) Meğer doğru bir yol üzerindeymişim. Zira bu akşam yine küçük bir googling yaparak asıl aradığım çözüme hem de çok basit bir şekilde ulaştım. Zaten dikkat ederseniz son bir kaç yazım çözümü çok basit şeyler çıkıyor. Unix’i bu yüzden seviyorum işte :) Çözüm hem basit hem de transparan. Nereye ne verdiğinizi görüyorsunuz. Neyse dallanmayalım.
Mac’e o sertifikanın güvenli olduğunu doğrulatmak istiyordum ya, asıl mesele mac’deki svn’e o sertifikanın doğru olduğunu kabul ettirmekmiş. Bunun için de komut satırından şu ifadeleri girmeniz ve karşınıza gelen soruya gönlünüzden geçen cevabı vermeniz kafi.
svn ls https://sertifikasisoruncikaran.com
Sistem size bu adresi kabul edip etmeyeceğinizi soruyor. (P)ermanently diyerek kalıcı olarak kabul edip gönül rahatlığıyla Coda’nızı kullanmaya devam edebilirsiniz.
İşim gereği sürekli uzaktaki makinelere komut satırından bağlanmam gerekiyor. Ofisteki internet bağlantısından bunu yaptığımda sabah açtığım oturum akşama kadar açık kalabiliyor. Evdeki Kablo.Net bağlantısında ise 2 dakika o pencerede işlem yapmadıysam bağlantı asılı kalıyor, bir kaç dakika sonra da “Write failed: Broken pipe” yazıyor ve kendi komut satırıma düşmüş oluyorum.
Bu akşam canıma tak etti ve minik bir google’ing yaptım. Çözümü buraya da yazayım ki siz de kolay bulun, ben de kolay bulayım ;)
Kendi komut satırınızdayken şu ifadeleri çalıştırarak ssh_config dosyanızı güncelleyin:
Epey bir süredir iOS 5′in betasını kullanıyordum. En sevdiğim özelliği de Kişisel Erişim Noktası idi. O sayede dışardayken iPad’ime internet sağlayabiliyordum. Bir kaç gün önce iOS5′in tam sürümünü kurayım dedim. Kurulumdan sonra Kişisel Erişim Noktası’nın ayarlarda görünmediğini farkettim. Eşimin telefonunda böyle bir sorun yoktu. iOs4.3′den iOS5′e yükseltilmişti. Acaba ondan mıdır diye düşündüm. Bugün yarın bakarım diye erteledim.
Başka sorun yaşayanlar da oldu mu diye bakınırken tam olarak benim gibi betasını kullanıp sonra tam sürüme yükselten başka bir kullanıcıya rastladım. Sorunun çözümünü bu sayfadaki yorumlarda buldum. Detaylı olarak paylaşmak istedim.
Eğer iOS 5 yüklü iPhone’unuzda “Kişisel Erişim Noktası” görünmüyorsa Ayarlar/Genel/Sıfırla/Ağ Ayarları kısmına girip sıfırlayın. Bir süre sonra telefonunuz tekrar açıldığında Ayarlar/Genel/Ağ kısmına giriş yapın. Bu ekranda Uluslararası Dolaşım’ın hemen altında “Kişisel Erişim Noktası” beliriyor. Buraya girip aktif hale getirdiğinizde artık Ayarlar anasayfasında görünür hale geliyor.
Steve Jobs (1955-2011) farklı bakma yeteneklerine sahip nadir kişilerden biriydi. 1993′den beri bilgisayarla haşır neşir olmama rağmen Steve Jobs’u malesef çok geç tanıdım. Gençlik yıllarımı Windows’u formatlamakla ve programlamaya çalışmakla geçirdim.
Bir kaç sene önce eşime ilk iPhone 3G alana kadar hiç bir Apple ürünümüz olmamıştı. Sonra Mac Mini, iMac, MacBook Air, iPhone4 diye kendimizi kaptırdık. Mac’den sonra bilgisayar kullanmak bizim için bir zevk haline geldi. Steve Jobs’un felsefesiyle üretilen tüm Apple ürünleri birer teknolojik alet değil evimize severek, beğenerek aldığımız bir mobilya gibiydi.
Efsane sona erdi.. Bilişimin eski, tozlu, ruhsuz, teknik ve köşeli hatlarına geri dönebiliriz..
Hiç iso-8859-9 charsetinde hazırlanmış bir sayfadan utf-8′e göre hazırlanmış başka bir sayfaya form datası göndermeniz gerekti mi? Bize gerekti. Kütüphane web sitemiz biraz eski kalmış ve iso-8859-9 formatında hazırlanmış. Yeni kurulan kütüphane yazılımı ise utf-8′e göre hazırlanmış. Web sitesindeki arama kutucuğuna “ağaç”,”şair”, “ırmak” gibi Türkçe özel karakter içeren kelimeler yazdığınızda karşı tarafa a?a?, ?air, ?rmak gibi abuk subuk karakterler gittiğinden aramalar sonuç vermiyordu haliyle.
Bu sorunu gidermek için önce utf8′e çeviren javascript fonksiyonlarını inceledim. Malesef bulduğum bir kaç tane fonksiyon sadece belli karakterleri düzeltiyordu.
Aramaları biraz daha derinleştirince formların accept-charset diye tam bu iş için hazırlanmış bir özelliği daha olduğunu öğrendim. Sayfanın charset’i ne olursa olsun form’a accept-charset=utf-8 yazabiliyormuşuz. Yazdım, fıstık gibi çalıştı. Fekaaat! Her zamanki gibi Internet Explorer bu özelliği desteklemiyor.
Neyse ki onun da çözümü varmış. Forma aşağıdaki öğeyi eklediğinizde sorun çözülüyor:
Web sitenizde video galeri yapmak ve bu hizmet için YouTube’dan yararlanmak istiyorsanız vidoların önizleme resimlerine ihtiyaç duyacaksınız. Aşağıdaki örnek url’leri kullanarak videoların önizleme imajlarına ulaşabilirsiniz. Videoyu verdiğiniz gibi imaj dosyasını da YouTube üzerinden verebilir ya da yazacağınız kodla sisteminize kopyalayabilirsiniz. O size kalmış:
Örnek YouTube videosu: http://www.youtube.com/embed/4rb8aOzy9t4