29 Ağustos 2016 Pazartesi

Windows En Son Ne Zaman Restart Oldu?

wmic os get lastbootuptime

Yukarıdaki komutu, komut satırında çalıştırıp, Windows'un son Restart olduğunu zamanı görebilirsiniz.

6 ayda bir restart kullanan birisi olarak, ara sıra merak edip bakmak için kullandığım bir komut.

SQL: Sunucudaki Veri Tabanlarının Listesini Sorgu ile Çekmek

Bir SQL Server üzerindeki tüm veri tabanları için veri tabanı adı ve veri tabanı fiziksel dosya yolunu aşağıdaki sorgu ile elde edebilirsiniz.

SQL Server Management Studio İçerisinden Çalıştırılan Sorgu Tamamlandığında Uyarı Sesi Çıkartmak

SQL Server Management Studio ile sorgular çalıştırıyoruz ve kimi zaman bu sorguların sonuçlanması biraz zaman alabiliyor. Tabi bu sırada başka işlere odaklanıp bazen ilk işimize çok gecikmeli bir şekilde dönüş yapabiliyoruz.

Çözüm basit. Çalıştırdığımız sorgu tamamlandığında uyarı olarak ufak bir Beep sesi duymak bizi yeniden göreve çağıracaktır.

Tools menüsünden Options üzerine tıklayalım ve Seçeneklerin bulunduğu pencereyi açalım.



Bu pencerede Query Results başlığının altında yer alan SQL Server içerisindeki General üzerine tıklayalım ve açılan alanda "Play the Windows default beep when a query batch completes" seçeneğini işaretleyelim.

Artık; sorgular tamamlandığında Windows ayarlarımızdaki varsayılan beep sesini duyacağız. Çok dağınık çalışan birisi olarak benim çok işime yarayan bir özellik. Bugün bir arkadaşım ile konuşurken konusu açıldı ve bloguma da yazmaya karar verdim. Umarım sizlerin de işine yarayacaktır.

28 Ağustos 2016 Pazar

SQL: Ayın Son Gününe Ait Tarihi Bulmak

SQL Server

EOMONTH() Fonskiyonu
Ayın son gününe ait tarihi bulan fonksiyondur.
SQL 2012 ile birlikte gelmiştir.
SQL 2012 ve üzeri sürümlerde çalışır.

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.

CSS3: Oval Köşeler (Border Radius)

CSS3: Oval Köşeler (Border Radius)

border-radius özelliğini kullanarak nesnelerin köşelerini oval hale getirebiliriz.

Örnek Kullanım:
border-radius: [Ovallik için kullanılacak değer];

PasteBin.com Alternatifleri

GitHub Gist: https://gist.github.com/

Ace: https://ace.c9.io Varlığını Şaban Ulutaş'tan öğrendiğim faydalı eser.

Pastie.org: http://pastie.org/
Debian Pastezone: http://paste.debian.net/
pastebin.ca: http://www.pastebin.ca/

ZeroBin: https://pastebin.aquilenet.fr/
Another Zero Bin: http://pastis.tristramg.eu/
Yet Another Zero Bin: http://paste.vinilox.eu/
CRYPTYCH: https://crypty.ch/
Chopapp
CodePad: http://codepad.org/
dpaste: https://dpaste.de/
hastebin: http://hastebin.com/
ideone: http://ideone.com/

9 Ağustos 2016 Salı

Java Dilinde String Karşılaştırma

Java dilinde iki değişken üzerinde eşitlik denetlemek için karşılaştırma yapılırken, String veri tipinde çoğunlukla yanılgı yaşanmaktadır.

Java dilinde, String tipinden iki ayrı değişkeni == operatörü ile karşılaştırdığımızda, değerler aynı olmasına rağmen, sonucun false olması durumu sık yaşanan bir durumdur. (Özellikle de daha önce farklı bir dilde kod yazmış olup, sonradan Java diline geçiş yapan kişiler bu noktada yanılabilmekteler.)

Kafada Deli Sorular
== ile karşılaştırma yapmak kötü bir yöntem mi? Ne zaman == ile karşılaştırma yapılmalı? Ne zaman yapmamalıyız? .equals() metodunu kullanmak daha mı güvenli? Aralarındaki fark nedir?

== operatörünün bazen doğru çalıştığına şahit olabiliriz. Çünkü; Java platformunda bir String pool kullanılıyor ve mümkün olan durumlarda sık kullanılan Stringlerin hafıza referanslarının tekrar kullanılması sağlanıyor. Fakat; == operatörü, değerleri değil de nesnelerin aynı nesne olup olmadığını karşılaştırdığı için aynı değere sahip iki ayrı string false sonuç üretebilir. Bu yüzden == operatörü yerine .equals() metodunun kullanımı daha uygun olacaktır.

Kısacası amacımız nesnelere ait referansları karşılaştırmak ise == kullanabiliriz. Fakat çoğu zaman amaç değerleri karşılaştırmak olduğu için ihtiyacımızı .equals() metodunu kullanarak çözelim.

== Kullanımı

.equals() Kullanımı

Java Runtime Environment must be available in order to run Eclipse (Hata Çözümü)

Eclipse'i ilk kez çalıştırmak istediğinizde aşağıdaki gibi bir hata alabilirsiniz.

A Java Runtime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. No Java virtual machine was found after searching the following locations:
C:\Program Files\Java\jre1.8.0_xx\bin

Eclipse çalıştırılacak olan bilgisayarda JRE ya da JDK yüklü olmalıdır. Aranan klasörde bulunamadılar gibi bir hata verilmiş.


Geliştirme yapacaksak tercihen JRE yerine JDK kurmak daha uygun olur.

Bu hata JRE hiç kurulmamış olduğu için ya da Eclipse normal çalışırken kurulan bir JRE güncel sürümünün uyumsuzluğu yüzünden de alınmış olabilir.

Normal zamanda çalışan Eclipse çalışmaz hale geldi ise ve biz JAVA_HOME tanımlamasının doğru olduğuna emin isek, JRE ya da JDK yı yeniden kurmak çözüm olacaktır.

Bu da çözüm olmaz ise; son çare Eclipse yeniden kurulur. (Böyle bir şeye gerek olmaz inşallah)

8 Ağustos 2016 Pazartesi

Yavru Kanguru Çocuklarımıza Kodlama Öğretiyor

Çocuğunuz bilgisayar başında geçirdiği zamanı daha verimli hale getirsin, küçük yaşta kodlama becerisini edinsin istiyorsanız, bizimle iletişime geçin!
Birebir ders formatındaki eğitimimiz ile çocuklarımız kodlamayı öğrenerek birçok alanda öne çıkacaklar.
Çocuklarınıza bir gelecek verin ve kod yazmayı öğrenmelerini sağlayın!
Farklı eğitim içerikleri ile birçok konu hakkında bilgi sahibi olabilir, çocuğunuzun farklı yönlerini geliştirebilirsiniz.

Üstelik herhangi bir modüle kayıt yaptırdığınızda Modül 1 - Blockly Games eğitimi ücretsiz!
Hemen arayarak kayıt olun!
İletişim: 0533 332 38 16
Mail: bilgi@yavrukanguru.com