25 Ağustos 2016 Perşembe

SQL: Tablodaki Kolon Adlarını Sorgu ile Çekmek

Bir öğrencimden gelen soru üzerine minik bir kod parçası paylaşıyorum.

23 Ağustos 2016 Salı

Sitokinin Nedir?

"Markete üzüm gelmiş. Kırmızı, iri, dipdiri şeyler. Erik gibiler maşallah! Nereden geliyor bunlar? 
Şili'den. 
Şili mi? 
Evet! 
Kaç gündür buradalar? 
3-5 gün oldu. 
Düşünün, Şili'nin bir köyünde topluyorlar bunları. Uzun yolculuklar sonunda bizim kasabaya kadar geliyor. Bir süre bizim manavda bekliyor. Alıyorsun eve getiriyorsun, evde de 3-5 gün daha, bana mısın demiyor. Hala kütür kütür. İyi ama, nasıl? 
Şahane şeyler var, adına ilaç diyorlar. Üzümlere verilen bu ilaçlardan birinin etiketindeki faydaları sayalım mesela: Dane büyüklüğünü arttırır, Dane ağrılığını arttırır, Dane şeklini daha düzgün olarak değiştirir, Tam olgunlaşmadan daneye parlak sarı yeşil rengini verir, Dayanıklı ve dirençli kabuk sayesinde hasat ve hasat sonrası olabilecek yaralanmalar en aza iner, hastalıklara direnç katar, Kullanım dozu yükseldiğinde sofralık üzümlerde hasadı geciktirir. Raf ömrü uzar. 
Nedir bu? Sitokinin. Büyüme hormonu. 
Bakın şu şansa ki, sitokinin insanda da aynı işe yarıyor. Sonra anneler şikayet ediyorlar "ee benim çocuk erken kıllanıyor!" Bu dünya böyle hanım abla, sen üzümü alırken kıllanmazsan, çocuğun kıllanır."

14 Ağustos 2016 Pazar

Mobil Web Uygulamaları Geliştirirken Kullanabileceğimiz Kütüphaneler ve Frameworkler

Mobil web uygulamalarının daha hızlı, performanslı ve görsel olarak daha çekici hale gelmesi için çeşitli frameworklerden ve kütüphanelerden faydalanıyoruz. Bu kütüphaneler ve frameworkler sayesinde tarayıcılar arasındaki uyumsuzlukları da düşünmemize gerek kalmıyor.



Kütüphaneler ve Frameworkler için minik bir liste oluşturalım;
jQuery Mobile
jQT (jQTouch)
Sencha Touch

Dojo Mobile
App Framework
Bootstrap
Kendo UI
Top Coat
Ionic Framework
Lungo
Appcelerator Titanium

13 Ağustos 2016 Cumartesi

Hybrid Mobil Uygulama Nedir? Nasıl Geliştirilir?

Hybrid uygulamalar; hem native (yerel) kodların hem de web kodlarının (HTML + CSS + JS) bir arada çalıştığı uygulamalardır. Bu tarz uygulamalar, aynı native uygulamalar gibi paketlenir. Bu uygulamalara ait web kodları, üzerinde yer aldığı platformun tarayıcısı içerisinde çalışır.


Genel olarak bir framework üzerinde çalışan hybrid uygulamaları geliştirmek için HTML, CSS ve Javascript kullanılır.

Hybrid uygulamalar geliştirirken kullanılan frameworkler, HTML kodlarının donanıma erişmesi yönündeki engelleri kaldırır. Bu işi, kendi bünyesinde barındırdığı native (yerel) kodlar sayesinde yapar. Bu yerel kodların tetiklenebilmesi için Framework tarafından Javascript API'leri sunulur.

Hybrid uygulama geliştirmek için kullanılabilecek frameworkler;

Bunların dışında da çeşitli ürün ve araçlar var. Fırsat buldukça buradaki listeyi genişleteceğim. Sizler de yorum alanına benzer ürünleri yazarbilirsiniz.

Mobil Platformlarda Native (Yerel) Uygulama mı? Mobil Web Uygulaması mı?

Native uygulama mı? Web uygulaması mı? Aslında bu sorunun kesin ve net bir cevabı yok. Geliştirmeyi planladığımız uygulamanın tipine ve ihtiyaçlarımıza göre, bu soruya verilecek cevap da değişecektir.

Geliştireceğimiz uygulama bir veri uygulaması ise, kullanıcıya veri sunmak dışında sınırlı seviyede kullanıcı etkileşimi gerektiriyorsa, donanıma erişme ihtiyacı yoksa ya da HTML5'in erişebileceği donanımlar işimizi görmeye yetiyorsa, bu durumda mobil web uygulaması geliştirmek işimizi görecektir. Hatta iyi bir tercih olacaktır. Çünkü; HTML5 kullanarak tek bir uygulama geliştireceğiz ve bunu birçok işletim sistemi üzerinde çalıştırabileceğiz.


Yoğun işlemci gücü gerektiren işlemler yapmamız gerekiyorsa ya da platforma özgü kaynaklar kullanmamız gereken bir durum söz konusu ise native (yerel) uygulama geliştirmek daha cazip hale gelebilir. Bu tarz bir durumda mobil web uygulaması geliştirmemiz zaten mümkün olmayacaktır. HTML uygulamaları ile platforma özel bazı kaynaklara erişilemiyor. Erişebildiğimiz özellikleri de aynı performansta kullanamayabiliyoruz.


İki yaklaşımın da artılarını ve eksilerini değerlendirebilmek adına birer liste oluşturalım.

Mobil Web Uygulamaları

  • Tek bir uygulama geliştirip tüm platformlarda çalıştırabiliriz. (iOS, Android, Windows)
  • Uygulamanın bakımı ve hata ayıklama daha kolaydır. Çünkü; tüm platformları hedefleyen tek bir kodumuz vardır.
  • Uygulamanın güncellenmesi çok kolaydır.
  • Arama motorlarından maksimum verim alırız.
  • Uygulamamız tarayıcıda çalıştığı için native uygulamalara nispeten daha yavaştır.
  • HTML5 standartları ile ilgili tarayıcılar arasında uyumsuzluklar olabilir. Uyumluluk ile ilgili raporlar http://mobilehtml5.org/ adresinden kontrol edilebilir.
  • Yalnızca, hem HTML5 hem de üzerinde çalışılan tarayıcının aynı anda desteklediği donanımlara ulaşılabilir.
  • Platformlar arasındaki bazı farklılıklar yüzünden uyuşmazlıklar ve tutarsızlıklar oluşabilir.
  • Görsel tarafta yapılabilecek grafik işlemleri sınırlıdır ve performans pek yüksek değildir.


Native (Yerel) Uygulamalar

  • Her platform için, ayrı ayrı uygulamalar geliştirmek gerekir.
  • Bakım ve hata ayıklama süreci zorlayıcıdır. Çünkü; aynı değişikliği tüm platformlarda ve dillerde ayrı ayrı gerçekleştirmek gerekir.
  • Uygulama mağazası üzerinden güncelleme süreçlerini yönetmek gerekir.
  • Arama motorları uygulamanın mağaza sayfasını indexler fakat SEO tarafında içeriklerden faydalanmak mümkün değildir.
  • Direkt olarak sistem üzerinde çalıştığı için tarayıcı uygulamalarına göre hızlıdır.
  • Her platformun kendi dili ve her sistemin kendi API'leri (Uygulama Programlama Arayüzü) kullanıldığı için tutarsızlıklar yaşanmaz.
  • Sistem üzerinde izin verilen tüm donanımlara ulaşılabilir.
  • Her platform kendi içerisinde tutarlı şekilde çalışır. Sorun yaşanmaz ya da az yaşanır.
  • Görsel işlemler ve grafik çizimleri için her platformda çok sayıda yardımcı kütüphane vardır ve yüksek performanslı bir şekilde kullanılırlar.


Tüm bu bilgilerin ışığında, geliştirilecek uygulamada performans çok kritik ise, kullanılması gereken donanımlara HTML5 ile erişemiyorsak, grafik yoğun bir uygulama geliştireceksek native uygulama geliştirmek daha mantıklı. Bunun dışındaki durumlarda Mobil Web Uygulamaları geliştirmek; zaman, maliyet ve yukarıdaki listede yer alan diğer sebeplerden dolayı daha makul bir seçim olacaktır.

Aslında en güzeli; hem web hem de native uygulamaların yeteneklerini bir arada kullanmak olurdu. Bir sonraki yazıda konumuz; Hybrid Uygulamalar.


HTML5 ve Mobil Dünya

Mobil platformlar için genellikle native uygulamalar yazılması tercih ediliyor. Bunun sebepleri platform sevdası, daha çok iş yapmış olup daha fazla tatmin olmak, prestij, tek bir proje geliştirip farklı marketlerin hedeflenebileceğini bilmemek veya başka sebepler olabilir. Neyse, biz konumuza dönelim.

HTML5 ile mobil platformları hedefleyen uygulamalar geliştirilebilir. Platforma özel native bir uygulama geliştirerek yapılabilecek bir çok iş artık HTML5 ile de gerçekleştirilebilir durumda.

HTML5 ile geliştirilen bir uygulama her platformda çalışacaktır. Örneğin; Android, iOS ve Windows. Pek tabii ki bunlar sadece birer örnek, HTML5 çalıştırabilecek platformlar bunlarla sınırlı değil. Birçok platformun kolayca hedeflenebilmesi HTML5 ile uygulama geliştirmeyi daha cazip hale getiriyor.

HTML5 ile geliştirilen bir uygulama yalnızca mobil uyumlu bir web sitesi olabileceği gibi, üzerinde yer aldığı platformun web tarayıcısı içerisinde çalışan, marketten indirilebilir bir uygulama da olabilir. Ayrıca uygulama katmanı HTML5 üzerine inşa edilmiş olan işletim sistemleri için de HTML5 uygulamaları geliştirilebilir. Örneğin; Tizen, Firefox OS, Ubuntu Touch.


Peki mobil için web uygulaması mı geliştirelim yoksa her platform için yerel (native) bir uygulama geliştirmeyi mi tercih edelim? Bu konuyu bir sonraki yazıda ele alacağım. (Aldım. http://ercanbozkurt.blogspot.com.tr/2016/08/mobil-platformlarda-native-uygulama-mi-web-uygulamasi-mi.html bağlantısını kullanarak yazıya ulaşabilirsiniz.

Peki ya seçmek zorunda değilsek? Hybrid Uygulamalar, bu noktada yolumuza ışık tutacak. Hybrid uygulamalar konusunda da bir yazı ele almayı düşünüyorum. (Bunu da aldım. http://ercanbozkurt.blogspot.com.tr/2016/08/hybrid-mobil-uygulama-nedir-nasl.html bağlantısından okuyabilirsiniz.)

Madem sıradaki yazılar için hedefleri yazıyoruz. Planın geri kalanından da bahsedelim. Mobil Web uygulamaları geliştirirken kullanabileceğimiz çeşitli kütüphaneler ve frameworkler var. Bunlar, uygulama geliştirme süreçlerini hem kısaltıyor, hem de kolaylaştırıyor. Bu konuda minik bir liste hazırlayacağım.

Hazırlamayı düşündüğüm diğer bir liste de HTML5 tabanlı işletim sistemleri listesi.

Son adımda da mobil uygulama geliştirmenin geleceği hakkında bir şeyler karalayacağım.

12 Ağustos 2016 Cuma

Java Dilinde Temel Veri Tiplerinin Alt ve Üst Sınırları

Java dilinde temel veri tiplerinin alt ve üst sınırlarını kod yoluyla kolayca öğrenebiliriz.