09 Sep 2017

Google Play Market Sıralaması Faktörleri ve İstatistikleri

Bu yazıda, Appbrain isimli sitede gördüğüm google play'in genelini ilgilendiren istatistikler ve bu istatistikleri nasıl yorumlamamız gerektiği ile alakadar kısa bir yazı oluşturacağım; Grafikte uygulama açıklama karakter sayılarının genel bir grafiği bulunuyor. Gördüğünüz gibi marketteki uygulamaların çoğunluğu 400-800 karakter aralığında açıklama kullanıyor. Bu bilginin önemli olmasının en büyük nedenlerinden birisi, açıklama kısmı için google play'in […]

07 Sep 2017

Xamarian Android Player: MacOS’de Android Emülatörü

Android Studio ile gelene android emulatörünün çoğu cihazda yeterince verimli çalışmadığı (5-10 fps) biliyoruz. Ayrıca eğer MacOS sisteminde çalışıyorsanız, open-source veya ücretsiz bir emülatör bulmak da gayet zor. Bu gün şans eseri Xamarian'ın android player'ına denk geldim. Ve ilk izlenimim gerçekten mükemmel olduğu yönünde. Bilgisayarımda zaten Android SDK olduğundan, çalışması için gerekli olup olmadığı konusunda […]

05 Sep 2017

NodeJS Network Hata Kodları ve Anlamları

Nodejs üzerinde çalışırken özellikle networking; fetch, request vs. sırasında karşılaştığım birkaç hata kodunun (ECONNRESET, ETIMEDOUT vs.) aslında ne olduğunu koddan tahmin edebilirken, çoğunun ayrıntısı konusunda bilgi sahibi olmadığımı fark edip, bu kodların tam olarak hangi durumlarda throw edildiğini araştırmak istedim. Bu sonucu ayrıca blogumda paylaşmak, sonrasında benim için kontrol etmek veya aynı şekilde bu hataların […]

04 Sep 2017

Otomatik Arama Tamamlama Sistemi Mantığı (HTML/CSS/JS)

Küçük bir yan projem için otomatik arama tamamlama sistemi implement etmem gerekiyordu. Bu tür bir sistem oluşturmadan önce her zaman için çok zaman alacağını düşünüp kendime stres yapmama rağmen çok da karışık veya uzun süren bir sistem olmadığını, sadece adımları doğru takip etmek gerektiğini düşünerek bu adımları sıralayacağım bir yazı yazmak mantıklı olabilir diye düşündüm. […]

03 Sep 2017

Javascript ile Malware Scriptler ve Tersine Mühendislik

Blogumdaki bu yazı ile birlikte yaklaşık 1 ay sürdürmeyi planladığım, o gün içerisinde karşılaştığım en ilgi çekici olduğunu düşündüğümü bilgiyi veya veriyi her gün bu blogda paylaşmayı planlıyorum. Bu yazıda paylaşacağım konu ise Javascript ile kodlanmış malware scriptler olacak. Youtube'da Colin Hardy isimli bir siber güvenlik üzerine videolar yapan kanala rastgeldim. Kanalda birçok farklı alanda […]

07 May 2017

iOS Safari: SVG Elementlerinde Manipülasyona İzin Vermiyor

En son yazdığım 2 yazı iOS Safari üzerinde çalışırken karşılaştığım sorunlar ile alakadardı. Bu yazı da aynı şekilde iOS Safari'nin bir diğer saçmalığı konusunda not düşmemden ibaret. iOS Safari: SVG Elementine CSS Filter Uygulamak Elementi Yok Ediyor iOS Safari: HTML5 Video Thumbnail .load() Kullanmadan Yüklenmiyor! Yeni karşılaştığım sorun, SVG elementi ve SVG elementi içerisindeki elementlerin […]

04 Mar 2017

iOS Safari: SVG Elementine CSS Filter Uygulamak Elementi Yok Ediyor

iOS Safari'nin saçmalıklarına yine baş ağrılı birkaç gün sonra devam ediyorum. Bildiğiniz gibi, yeni bir özellik olarak sayılabilecek CSS filter özelliği ile, SVG elementinize ve vektörünüze yeni filtreler ekleyebiliyorsunuz (gölge gibi) CSS Kodu; svg { filter: drop-shadow(1px 1px 0 #141414); } Fakat iOS safari, bu özelliği implement etmemeyi tercih etmiş. Bu büyük bir problem değil, […]

04 Mar 2017

iOS Safari: HTML5 Video Thumbnail .load() Kullanmadan Yüklenmiyor!

HTML5 video elementini kullandığım ve iOS safari'de çalışması gereken bir proje üzerinde çalışırken fark ettiğim bir durumu sizlerle paylaşmak istiyorum. Video elementine aşina olmayanlar için küçük bir hatırlatma yapalım; HTML Kodu; <video width="320" height="240" controls id="video"> <source src="video.mp4" type="video/mp4"> </video> Javascript Kodu; let video = document.getElementById("video"); video.play(); // Video'yu başlatacak. video.pause(); // Video'yu durduracak. Benim […]

24 Oct 2016

iOS Safari ve WebView’de Rubber Band Efektini Kaldırmak

Web sitesi veya uygulaması Safari üzerinde çalışırken, yukarı doğru kaydıracak bir içerik olmamasına rağmen kullanıcı yukarı doğru kaydırdığında oluşan elastik "daha fazla yukarı gidemezsiniz" durumuna Rubber band effect diyoruz. Bu efekti bazı durumlarda, özellikle webview üzerine gömülü Cordova benzeri sistemlerde kaldırmanız gerekebilir. Bu yazıda birkaç şekilde bu efekti nasıl de aktive edebileceğimiz üzerine birkaç not […]

22 Oct 2016

Kullanıcı Deneyimi Üzerine İzlenilmesi Gereken Adımlar (UX Checklist)

Özellikle üzerinde profesyonel olmayan birisi için, UX tasarlarken yapılması gereken çok fazla şey olması düzenli bir şekilde çalışmanızı çok zorlaştırabiliyor. Bu sorunun önüne geçmek için araştırma yaparken, güzel bir checklist'e denk geldim. Bu online tool ile, çalışmanız sırasında yapmanız gereken UX çalışmalarını liste şeklinde görebilir, yaptıklarınıza check atabilirsiniz. Bu sayede hem workflow olarak kendi ilerlemenizi […]

18 Oct 2016

AngularJS’de src Yerine ng-src Kullanmak

Çok basit bir bilgi gibi dursa da çoğu zaman gözden kaçabilen bir ayrıntı. Çalıştığım projelerde bir resim için src niteliği belirlerken angular değişkeni kullanacaksam şu şekilde kullanıyorum. <img src="adres/{{url}}.png"/> Bu kodun çalışmaması için herhangi bir neden bulunmuyor. Ek olarak kod gayet de güzel çalışıyor. Fakat konsolda, ´adres/{{url}}.png´ adresi için 404 hatası veriyor. Bunun temel nedeni, […]

08 Oct 2016

Node.js ile Crawling Yaparken Bilinmesi Gerekenler

Yaklaşık 3 aydır node.js'i yalnızca scripting ve crawling için kullanıyorum. Herhangi production seviyesinde bir projede node kullanmak an itibariyle bana pek güven verici gelmiyor, fakat güzel bir makine ile nodejs üzerinde yapacağınız senkron olmayan network crawling işlemlerinde harika bir performans veriyor. Line by line bir programlama dilinde karşılaştığınız X işlemini yap, Y işlemini yap, Z […]

06 Oct 2016

Cheerio – Sunucu Taraflı DOM İşleyicisi

Cheerio, nodejs ile DOM objeleri oluşturma, değiştirme yönetme, parse etme veya benim en beğendiğim özelliği olan Crawl edilen DOM verisinin içindeki veriyi düzenli hale getirmemize ön ayak olan bir kütüphane. Kütüphanenin en beğendiğim özelliği crawl edilen DOM stringini jQuery seçicileri ile seçiyor olmanız. Birkaç örnek ile nasıl kullanıldığını gösterelim; let cheerio = require("cheerio"); let $ […]

02 Oct 2016

Angularjs $timeout Servisini Durdurmak ve Test Etmek (cancel/flush)

$timeout servisi, angular'da setTimeout() metodunu çevreleyen bir built-in servis; ek olarak geliştirme sırasında ek bir fayda sağlamasa bile*, kod testi sırasında, flush gibi metodlar ile, test sürecini kolaylaştırıyor/hızlandırıyor. (*) ek olarak sunduğu zamanlayıcısı promise olarak atayıp .cancel() metodu ile clearTimeout işlevi görmesi açısıdan daha hoş bir yaklaşıma sahip olduğunu söyleyebiliriz, fakat ek olarak herhangi bir […]

02 Oct 2016

SVGO – SVG Optimize Etme/Sıkıştırma Aracı

SVGO, nodejs ile yazılmış, svg vektör grafiklerinini kayıpsız sıkıştıran, (optimize eden) güzel bir konsol uygulaması. Ayrıca nodejs tabanlı olması açısından, Javascript uygulamarı içerisine de istenirse rahatlıkla gömülebiliryor. npm install -g svgo Komutu ile npm üzerinden global olarak yükleyerek konsol uygulaması olarak kullanabilirsiniz. Konsol uygulamasında bilmeniz gereken bazı komuşlar şu şekilde; svgo [Secenekler] [Argumanlar] // Genel […]

21 Sep 2016

MD Formatında Javascript Kod Dökümantasyonu – JSDoc2md

JSDoc, javascript kodlarınıza eklenen yorumları kompile ederek, HTML halinde sayfalar şeklinde dökümantasyona çeviren güzel bir konsol uygulaması. Bunun yanında, JSDoc2MD isimli ve yine JSDoc üzerine oluşturulmuş bir diğer güzel uygulama ile, kodlarınızın dökümantasyonunu tek sayfa halinde md formatında çıktı olarak da alabiliyorsunuz. jsdoc-to-markdown @Github Uygulamayı npm üzerinden yükledikten sonra; npm install jsdoc-to-markdown Fonksiyon ve class'larınız […]

21 Sep 2016

Javascript Mantıksal Karşılaştırmaları: == ve === Arasındaki Fark

Bu yazıda, birbirine çok benzeyen 2 mantıksal karşılaştırma olan == ve === veya != ve !== arasındaki temel farktan bahsedeceğiz; == karşılaştırıcısı, karşılaştırılan değerlerin birbiirine eşit olup olduğunu kontrol etmeden, ikinci değeri ilk değere cast etmektedir. === karşılaştırıcısı, == karşılaştırıcısında olduğu gibi herhangi bir type değişikliği yapmadan, karşılaştırılan değerlerin aynı tipte olduğunu varsayarak kontrol yapar. […]

15 Sep 2016

ES6 Import İfadesi ve Yöntemleri

Bildiğiniz gibi, Javascript'in ES5 standartında, javascript dosyaları arasında import veya export benzeri native bir mekanizma bulunmuyordu. Bu önemli özellik, yeni standart ES6'daki import-export statement ile kullanılabiliyor. 2 dosya arasında özellikle fonksiyon ve class'ların import edilebiliyor olması, ES6'nin temeldeki mantığı olan, javascript'i daha modüler hale getirme felsefesini destekliyor. Import Yöntemleri Klasik kullanımını şöyle özetleyebiliriz; import {elemanim} […]

07 Sep 2016

Javascript’te Türkçe Karakterleri Büyütüp Küçültmek – toLocaleUpperCase()

Javascript'te küçük harflerden oluşan bir string'i büyük hale getirmek için, .toUpperCase() veya küçük hale getirmek için .toLowerCase() metodlarını kullanıyoruz. Bir örneğini şöyle gösterelim; var sebze = "patates"; console.log(sebze.toUpperCase()); // PATATES çıktısını verir Fakat, eğer büyük hale getirmeye çalıştığımız string Türkçe karakterler içeriyorsa, bu durumda bu metodlar bazı tarayıcılarda veya tarayıcı motorlarında işe yaramamakta; Bu tip […]

27 Aug 2016

CSS’de Transition İptal Etme – Durdurma İşlemi

Özellikle Angular gibi, view tarafında DOM objelerinin fazla değişmediği uygulamalarda, CSS'in transition özelliği ile animasyon yönetimi sağlıyorsanız, bazı durumlarda Javascript tarafında bir olay gerçekleştiğinde, animasyonun durmasını veya gerçekleşmemesini isteyebiliyorsunuz. Ben bu durumla karşılaştığımda, biraz baş ağrısı yaşadıktan sonra, transition öldürülecek DOM objesinin, transition özelliğini geçici olarak overwrite etme çözümü ile sorunumu çözdüm. Basit bir şekilde […]

27 Aug 2016

Google Chrome’da Kullanılamayan Portlar

Node üzerinde çalışırken, rastgele kullandığım bir portta, web sunucusu cevap vermedi, bu sorunu çözmeye çalışırken, chrome için bazı portların kullanılamaz olduğunu öğrendim. Kullanılamayan portların tam listesi; 1, // tcpmux 7, // echo 9, // discard 11, // systat 13, // daytime 15, // netstat 17, // qotd 19, // chargen 20, // ftp data 21, […]

26 Aug 2016

Javascript Array.filter() Metodu ve Kullanımı

Önceki yazılarımdan birisinde array prototipinin .map() özelliğinden bahsetmiştik. Ayrıca göz atabilirsiniz. Bu yazıda bir diğer, kullanım alanı az olmasına rağmen kodlamayı hızlandıran array metodu filter()'ın nasıl kullanıldığından bahsedeceğim; Filter, array içinde, array ile alakadar verileri kullanarak, istenilen durumlara göre array'i filtrelemenizi sağlayan bir metoddur. Map metodu gibi, her array elemanı için boolean dönen bir fonksiyon […]

21 Aug 2016

Javascript ile Klavye Tuşu ile Div Açıp/Kapatmak

Az önce gördüğüm bir mail'de, mantık olarak gayet basit olan küçük Javascript örneği üzerine bir soru aldım; Soru şöyle ki; klavyede bir tuşa basıldığında bir divi açmak veya kapatmak isteniyor. Burada kullanacağımız özellikler onkeydown olayı ve keyCode tanımlayıcısı. Mantıksal olarak, keyCode'u istenilen tuş olan tuşa basıldığında, dom elementini manipüle edeceğiz. Örneğimizde nasıl yapacağımızı görelim; var […]

20 Aug 2016

Javascript Array.map() Metodu ve Kullanımı

Javascript array veri tipinde, her bir array elemanı için gerçekleştirilmesini istediğimiz fonksiyonlar olduğu durumlarda map() metodu gerçekten çok işe yarar bir özellik. var array = [5,10,22,4]; var array2Kati = array.map(function(sayi){ return sayi * 2; }); console.log(array2Kati); Konsol çıktısı: Array [ 10, 20, 44, 8 ] Buna ek olarak map() metodu ile yeni bir array döndürmek […]

10 Aug 2016

Dexie.js ile Daha Rahat IndexedDB Kullanımı

Dexie.js, indexedDB için bir wrapper kütüphanesidir diyebiliriz. Eğer indexedDB kavramına yabancıysanız, indexedDB'yi, tarayıcılar tarafından standart olarak kullanılan client-side veritabanıdır diyebiliriz. Peki indexedDB'nin kendi programlama arayüzü yerine bir wrapper'ı neden kullanıyoruz? IndexedDB, aslına bakarsanız çok karışık ve javascript'in geliştiği kodlama yönüne göre farklı şekilde gelişmiş bir API, bu nedenle geliştiricilere yabancı veya itici gelebiliyor. Dixie.js ile […]

06 Aug 2016

Aygıt Orientation (Tutuş Biçimi) Değişiklikleri ve Mobil Uygulamalar

Web teknolojileri ile mobil cihazlar için uygulama geliştirirken işimize yarayabilecek önemli bir bilgi, cihazın tutuluş tipidir (dik/yatay) diyebiliriz. Bu tip durumlarda, screen objesinin altında sunulan orientation değişkenini screen.orientation olmak üzere kullanabiliriz. Bu değişken bir obje dönmekte ve obje şu tip bir yapıya sahip; { type: "landscape-primary", angle: 0, onchange: null, ownerGlobal: Window → newtab } […]

03 Aug 2016

Nodemon – Node.js Uygulamalarındaki Değişiklikler Anlık Görüntüleyin

Node.js uygulaması oluştururken karşılaştığım en rahatsız edici özellik; uygulamada yaptığınız değişikleri görüntüleyebilmek için an itibari ile çalışan uygulamayı durdurup tekrar başlatmaktı. Bunun için, dosya değişikliklerini izleyen küçük bir script yazılabilir, fakat nodeman uygulama dosyası klasörü içerisinde yapılan değişiklere anında tepki verip uygulamayı yeniden başlatıyor. Ayrıca bunu browsersync gibi, otomatik tarayıcı güncelleme eklentileri ile de birleştirince […]

30 Jul 2016

Javascript Yazıyı Ses’e Çevirme Eklentisi (TTS): ResponsiveVoice.org

ResponsiveVoice.com, google tarafından geliştirilen ses motorları üzerinden, javascript üzerinde sunduğunuz string değişkenini istediğiniz dile çeviren bir api'a sahip. Anladığım kadarıyla mantığı, sizin request ettiğiniz kelimeyi kendi sunucusunda generate ederek size bir ses dosyası olarak sunuyor- bu ses dosyasını oluşturdukları javascript api'ı ile HTML5'in ses özellikleri ile sayfanıza ekliyor. Gayet güzel bir eklenti, kullanımına bir göz […]

29 Jul 2016

Touch Aygıtlarda Tıklama Gecikmesini Kaldırmak: fastclick.js

Mobil tarayıcılarda, tıklama (click) olayı dokunmatik aygıtların dokunmaya başlamasından (touch-start) 300ms sonrasında gerçekleşmektedir. Bu durumun önüne geçmek için kullanımı çok basit olan fastclick.js kütüphanesini kullanabiliriz. Mobile Safari iOS 3+ Chrome iOS 5+ Chrome Android (ICS) Opera Mobile 11.5+ Android Browser 2. versiyona kadar. PlayBook OS 1+ Tarayıcılarında bu eklentiyi kullanabilirsiniz. Kullanımı; Head bölümünde viewport ayarlarını […]

27 Jul 2016

Javascript’te İki Array veya Objenin Birbirinin Aynı Olması Kontrolü

Bu yazıda iki array veya obje değişkenenin birbirinin aynısı olup olmadığının kontrolünü Javascript'te nasıl verimli bir şekilde gerçekleştirebiliriz sorusuna cevap arayacağız. İsterseniz öncelikle bir array değişkenini göz önüne alalım. //1. array var arr1 = ["patates", "domates", "patlıcan"]; //2. array var arr2 = ["patates", "domates", "patlıcan"]; Bu örnekte 1. ve 2. array birbirinin aynısı mıdır? İlk […]

21 Jul 2016

AngularJS ile Türkçe İşaret Dili Uygulaması Örneği

Angular'ın ng-repeat özelliğini gösteren bir uygulama fikri ararken, tdk'nın sitesinde işaret dillerinin giflerinin bulunduğunu gördüm bunun üzerine, bu gifleri kullanarak angular ile kelimelerin ve cümlerin anlık olarak bu gifler ile sunulabileceğini küçük bir angular uygulaması oluşturdum. http://www.tdk.gov.tr/components/com_gts/assets/images/{HARF}.gif Fakat tdk'nın sunduğu giflerde şöyle bir sorun bulunuyor, eğer harf ASCII dışı özel bir Türkçe karakter ise, harfin […]

13 Jul 2016

PHP ile RSS Beslemesinden JSON Aracılığı ile Veri Çekmek

Bu yazıda, dün gece boyunca PHP'deki file_get_contents() fonksiyonunun neden XenForo RSS beslemelerinden veri çekemediğini araştırdım, fakat hem XenForo'nun bir geliştirici codexinin olmaması hem de tabiki açık kaynak kodlu bir yazılım olmaması nedenlerinden dolayı pek bir yol alamadım. Bir sonraki adımım, RSS beslemesini Json'a çeviren bir api bulup (rss2json.com) bu api yardımı ile linkleri almak oldu. […]

10 Jul 2016

Responsive Resim Galerisi Oluşturmak (PhotoSwipe)

PhotoSwipe, plain javascript tabanında responsive resim galerileri oluşturmanıza yardımcı bir javascript eklentisidir. Kullanımı gayet basit, arayüz olarak çok rahat bir şekilde kişiselleştirilebilen bir yapıya sahip. Ek olarak github'un da yardımı ile birçok önceden hazırlanmış arayüze de sahip. Şahsen, PhotoSwipe'ı beğeniyor olmamın en büyük sebeplerinden birisi, herhangi başka bir kütüphaneye ihtiyaç duymuyor olması. Piyasada bulunan çoğu […]

09 Jul 2016

WordPress 4.2+ Emoticon (Smiley) Özelliğini Kaldırmak

Bildiğiniz gibi WordPress'in eski sürümlerinde daha basit bir emoticon sistemi bulunuyordu ve eğer yanlış hatırlamıyorsam; emoticon resimlerinin yerleştirilmesini backend ile hallediyordu. Ayrıca emoticonların çalışıp çalışmama durumunu Panel/Ayarlar/Yazma bölümünde kapatıp açabiliyordunuz. WordPress 4.2 ile birlikte bu smileylerin yerleştirilmesi için bir javascript dosyası (wp-emoji-release.min.js) kullanılmaya başlandı. Bazı durumlarda gerçekten lightweight bir tema hazırlıyorken, bu tür ek javascript […]

07 Jul 2016

Javascript’te “use strict” Ne İçin Kullanılır?

"use strict"; komutu genellikle Javascript dosyasının başında belirtilen ve yazılacak Javascript kodunun strict modunda (nizami - katı) execute edinilmesinin istendiğini belirtir. Burada nizami mod olarak bahsettiğimizi şöyle açıklayalım; bazen baştan savma yazılan kodlarda örnek vermek gerekirse, değişken tanımlarken degisken = "wow"; şeklinde var betimleyicisini kullanmıyoruz. Bu tip durumlarda javascript motoru değişkenin tanımlanmamış olduğunu görüp bizim […]

06 Jul 2016

Javascript Obje Protipleri ve Kullanımı (Object Prototypes)

Eğer blogumu takip ediyorsanız son zamanlarda ES6 ile alakadar yazılar yazıyordum. Bu yazıda hali hazırda ES5 standartı içinde kullanımı olan Javascript'in harika bir özelliği olan Prototipleme ve kullanımından bahsedeceğim. Aslına bakarsanız prototipleme, ES6 ile gelen (gelecek olan) class özelliğinin sadece construction kısmını yapan, aynı prototip üzerinden birden fazla obje oluşturmanıza ve sonrasında bu objenin yapısını […]

05 Jul 2016

Javascript ile Bir Objenin Tüm EventListenerlarını Kaldırmak

Bugün yine üzerinde çalıştığım bir projede sabahlarken, recursive bir şekilde oluşturmaya çalıştığım ve her seferinde bir elemente verdiğim eventListener fonksiyonunu değiştirmem gerekiyordu. Burada eventListener fonksiyonları hakkında bilmemiz gereken şey, assignable şekilde değil, stackable şekilde çalışıyor olduklarıdır. Yani; var btn = document.getElementById("btn"); btn.addEventListener("click", fnc1); btn.addEventListener("click", fnc2); Bu tür bir düzende btn div'ine tıklandığında hem fnc1() hem […]

02 Jul 2016

ECMAScript 6 Arrow Fonksiyon Notasyonu Kullanımı

ES6 ile gelen özellikler arasında en beğendiğim özelliklerin başında gelen arrow notasyonu, kodlama sırasında büyük bir pratik sağlıyor. Arrow notasyonu (=>) alışageldiğimiz biraz da "gereksiz" syntaxa sahip satır içi Javascript fonksiyonlarını daha kolay ve okunur hale getirmeyi sağlıyor. Şöyle basit bir örnek verelim; function ikiyekatla(sayi){ return sayi * 2; } console.log(ikiyekatla(5)); Bu örnek gayet basit […]

29 Jun 2016

OneSignal.com – Çoklu Platform Bildirim Gönderim Sistemi

Üzerinde çalıştığım bir cordova projesi için uygulamada Push Notification özelliği gerekiyordu, fakat burada programlama yada JSON gibi teknolojiler ile haşır neşir olmayan bir müşteri ile çalışıyorsanız kendisine, uygulaması için bildirim push edebileceği bir panel yazmanız gerekiyor. Bu sabah üşengeçliğim tutup bu tür bir panel yazmak istemedim, aslında olay sadece panel de bitiyor diyemeyiz, paneli yazdıktan […]

29 Jun 2016

Cordova Crosswalk Nedir? Nasıl Kullanılır?

Crosswalk, Cordova için gelişirilmiş; hibrit android uygulamanızın içine evrensel ve modern teknolojiye uygun bir tarayıcı WebView motoru gömerek, her cihazda aynı çıktıyı almak için kullanılan bir eklentidir. Crosswalk, WebGL, ses ve RTC gibi HTML5 özelliklerinin kullanımı sırasında büyük bir performans artığı sağlıyor. Temelde çok basit bir mantığı olması ve kullanımın kolaylığı ile, tarayıcılar arasındaki farklılıkların […]

29 Jun 2016

ECMAScript 6 ile String ve Değişken Gömme Özelliği

Javascript ile stringlerin yönetimi konusunda bazen sıkıntılar çıktığını 3 yılık JS yazan birisi olarak söyleyebilirim. Bazı durumlarda ' ve " ile sıkıntılı durumlarda kalabiliyorsunuz, sayfadaki break karakterleri ile de sıkıntılı çalışan stringler ES6 ile revize edilip gerçekten kolay bir hale getirilmiş. Anlatmaya çalıştığım şeyi şöyle göstereyim. var degisken = "değişkenin ilk satırı ikinci satır üçüncü […]

29 Jun 2016

CSS’de Zorunda Kalmadıkça !important Kullanmayın!

Bu yazıda üzerine birkaç test yaptığım ve internette araştırdığımda da yabancı kaynaklarda benzeri bir sonuca ulaştığım, CSS'de özellikler için !important kullanımının kötü sonuçlar oluşturabilecek bir kullanım olduğu konusuna değinmek istiyorum. !importan Nedir, Nasıl Kullanılır? Bildiğiniz gibi CSS'de bir element için birden fazla aynı özellik tanımlandıysa, bu özelliklerin satır olarak altta olanı veya başka bir deyiş […]

28 Jun 2016

ES6 Varsayılan Fonksiyon Parametreleri Özelliği Kullanımı

ES6'in, syntax olarak birçok kolaylık sağlayacak özelliği beraberinde getirdiğinden bahsetmiştik. Bu özelliklerden birisi, çoğu tarayıcı tarafından da implement edilmiş olan bir değişkene default değer atama özelliği. Bu özelliği bir örnek ile gösterelim; window.onload = varsayilanF(); function varsayilanF(text){ if(!text){ text = "varsayılan yazı"; } console.log(text); } Bu kod için varsayılan fonksiyonu için text değişkenin boş gönderdik. […]

28 Jun 2016

ECMAScript 6’nın Hangi Özelliklerini Tarayıcılar Destekliyor?

Önceki yazılarımızda Javascript'in yeni versiyon serisinden bahsetmiştik. Fakat önemli olan, an itibari ile ES6'nın her özelliğini her tarayıcı üzerinde kullanabilir miyiz? Burada bahsetmemiz gereken önemli bir diğer bilgi, her tarayıcının, bahsettiğimiz standartları kendilerinin implement ettiğidir. Şöyle ki, Google Chrome ES6 ile gelen X özelliğini tarayıcısına implement etmişken, Mozilla Firefox bu özelliği henüz implement etmemiş olabilir. […]

27 Jun 2016

ECMAScript 6 (ES6) Nedir? Nasıl Kullanılır?

ES6 (ECMAScript 6), Javascript'in 2015 yılında belirlenen yeni standartlarını temsil eder. Bazı kaynaklarda ES 2015 olarak da geçer. Ayrıca ECMAScript standartı ve bu standartın tarihini şu yazıda okuyabilirsiniz. An itibari ile tarayıcılar tarafından geçerli standart olarak kulllanılan ES5.1 standartına, Javascript'in evrimine paralel olarak gelen birçok yeniliği içinde kapsayan ES6'nın kilit ve temel özelliklerine ilerleyen zamanlarda […]

27 Jun 2016

WordPress the_date() Fonksiyonunun Düzgün Çalışmaması Sorunu

Az önce üzerinde çalıştığım temada, listelediğim postlar için her bir postun kendi tarihini de while içerisinde sunmak istiyordum ki, kod şöyle bir şekildeydi; <?php $args = array('posts_per_page' => 5); $myposts = get_posts($args); foreach($myposts as $post):setup_postdata( $post ); ?> <li> <span><?php the_date('d M Y'); ?> &middot;</span> <a href="<?php the_permalink();?>"> <?php the_title();?> </a> </li> <?php endforeach; wp_reset_postdata();?> […]

26 Jun 2016

ECMAScript, Javascript Standartları ve Geçmişi

Javascript, diğer web teknolojilerinde olduğu gibi bir standarta sahiptir. Bu standarta ECMAScript (Kısaca ES) adını veriyoruz. Bu standartın versiyonlaması da tam sayılarla yapılıyor. Örneğin an itibari ile çoğu tarayıcı tarafından kullanılan versiyonun ECMAScript 5 (5. versiyon) olduğunu söyleyebiliriz. Javascript'in erken zamanlarında ES1 ve ES2 tam olarak tanımlandı diyemeyiz. ES3 ilk defa Javascript versiyonunun düzgün şekilde […]

26 Jun 2016

HTML5 Local Web Storage Kullanımı

HTML5’in en sevdiğim özelliklerinden birisi kullanıcının aygıtında veri depolayabiliyor olması. Bunu biraz daha açarsak, web uygulamanızı ya da internet sitenizi kullanan cihazların tarayıcıları yardımı ile 5MB’a kadar yerel veri depolayabiliyorsunuz. 5MB sınırının başlangıçta biraz sinir bozucu gibi olduğunu düşünebilirsiniz fakat genel anlamda sadece o kullanıcıların kullanacağı verilerin sınırlı -5mb’ı geçmeyecek- olduğunu ve çoğu kötü amaçlı […]

26 Jun 2016

Merhaba Dünya!

Merhabalar, Uzun süredir düzenli olarak yapmak istediğim şeylerin başında blog tutmak geliyordu. Yaklaşık 3-4 yıl önce 2 yıldır düzenli olarak devam ettiğim bir blogum olmasına rağmen, çeşitli nedenler ile devam etmeme engel durumlar olmuştu fakat şimdi, yeni bir şeyler yapmak isteğinin de getirdiği heves ile devam edebileceğim yeni bir blog yazmaya başlıyorum. Yazdığım kitaplar ile […]