• Home
  • All Posts
  • Tags
  • About
  • Atom feed
Ecmel ALBAYRAK

angularjs

Two Way Binding - One Time Binding In AngularJS August 28, 2015 less than 1 minute read

data-binding

Two way binding (çift yönlü veri bağlama) modeldeki değişiklikleri view’e, view’deki değişiklikleri modele aktarma işlemidir. Daha önceki yazımda two way binding ve doğal olarak digest cycle’dan uzun uzadıya bahsetmiştim.

Two way binding, kullanıcı etkileşimlerinin direk view kısmına aktarılması kısmında çok güzel bir işleve sahip olsa da; digest cycle tetiklendikten sonra en az 2, maksimum 10 kez çalıştığı düşünülürse performans anlamında büyük sorunlar oluşturacaktır. Şöyle ki; benim data binding sayım arttığı ölçüde $digest loop’un sayısı da artacaktır. Kullanıcı etkileşiminin yoğun olduğu bir sayfada performans anlamında yaşanabilecek sıkıntılar elbette ki kaçınılmaz olacaktır.

Hal böyle olunca Angularjs geliştiricileri... read more

AngularJS Single Page Application August 15, 2015 1 minute read

Single page application (SPA), tek bir sayfada sunulan uygulamaların genel adıdır. SPA ile sayfa içinde gezinebilmemiz onu ayrı sayfalara bölmez.

Angularjs ile bir single page application nasıl oluşturuluyor. Angular bunun için nasıl bir route mekanizması kullanıyor ona bakalım.

var app = angular.module('myApp', ['ngRoute']); app.config(['$routeProvider', function($routeProvider) { $routeProvider. when("/home", { templateUrl: 'home.html' }).... read more
					
AngularJS Çalışma Mantığı August 10, 2015 3 minute read

Angularjs ile ilgili beni en çok uğraştıran konu kesinlikle angularjs’in çalışma mantığını anlatmak olacak. Çünkü Angularjs ng-app directive’i gibi basit bir söz dizilimi ile çalışmaya başlayıp, mekanizmayı tam anlamıyla anlamak için içerisine dallandıkça digest cycle, $watch list, two way binding, dirty cheking mekanizmasının birbiri ile alakasının anlatılması gereken bir konu haline geliyor.

Eğer bir Angularjs uygulaması oluşturmak istiyorsanız elbetteki ilk yapacağınız iş anguların kütüphanesini projenize eklemek olacaktır. Angularjs’nin sayfanın başına veya sonuna eklenmesinin bir önemi yok çünkü Angularjs uygulaması DomReady olmadan yani tüm scriptler yüklenmeden boot etmiyor.

Angularjs uygulamasını başlatmak için ng-app yapısal directive ihtiyacımız vardır. Angularjs yüklendikten... read more

bash

SOAP Web Servis ile CURL Kullanımını Bash ile Harmanlama July 25, 2015 less than 1 minute read

Terminalden IP öğrenme ve IP adresi sorgulamak (x IP kullanılıyor mu, hangi ülke tarafından kullanıyor vs.) için yazılmış basit bir bash kodudur. Curl ile web servis kullanımını bash ile harmanlar. Can sıkıntısı ürünüdür.

Özetle: Atla deve değildir.

Dosya içeriği:

#!/bin/bash GETGEOIPCONTEXT="http://www.webservicex.net/geoipservice.asmx/GetGeoIPContext" GETGEOIP="http://www.webservicex.net/geoipservice.asmx/GetGeoIP" get_ip() { curl -H "Accept: application/soap+xml" -d "IPAddress=$1" ${GETGEOIP} } my_ip() { curl -H "Accept: application/soap+xml" -d "IPAddress=$1" ${GETGEOIPCONTEXT} } $@... read more
					

coding

Rails: ActiveStorage May 28, 2018 4 minute read

1. ActiveStorage Nedir?

Rails 5.2 ile gelen ActiveStorage özelliği, dosyaları Amazon S3, Google Cloud, Microsoft Azure Cloud gibi cloud bir servise upload etmemizi sağlar.

2. Kurulum

rails active_storage:install

Bu çalıştırılan kod active_storage_blobs ve active_storage_attachments tablolarını oluşturan bir migration dosyası ve servis konfigürasyonları için config altında storage.yml dosyası oluşturur.

activestorage

3. ActiveStorage’ın Temel Sınıfları

  • ActiveStorage::Service
  • ActiveStorage::Blob
  • ActiveStorage::Attachment

3.1 ActiveStorage::Service

Service sadece baytların hareketinden sorumlu kısımdır. Dosyanın baytlarını bellekten ve browserdan alıp disk’e taşır.

class ActiveStorage::Service def upload( read more
					
Rails: default_scope Kullanmak Kötü Bir Fikir mi? March 12, 2017 2 minute read

default_scope belirli bir model üzerinde yapılacak tüm işlemler için varsayılan bir kapsam belirtmemizi sağlayan ActiveRecord metodudur.

Bu scope’u(kapsamı) modelimizde soft-deletion işlemi yapmak için kullanabiliriz. Soft-delete işlemi için paranioa kullanmanızı ayrıca öneririm. Acts_as_paranoid ile veri silmekten korkmayın başlıklı blog girdimde bundan bahsetmiştim.

Aşağıdaki gibi deleted_on kolonunu kullanarak default bir scope oluşturalım.

class Animal < ActiveRecord::Base # Eğer bir veri silindiyse `deleted_on` alanı dolu olacak. default_scope where(deleted_on: nil) end 

Animal modelinde tanımladığımız default_scope ile silinen... read more

Rails: Tab menülerde paginate işlemi September 24, 2016 1 minute read

Tab menülerde paginate işlemini yapılandırırken karşılaştığım sorunlar:

İlk önce tablar arasında geçişlerde bir sıkıntı yaşadım. Bunu will_paginate‘in param_name parametresiyle şöyle hallettim.

@teachers = Teacher.paginate(page: params[:teachers_page], per_page: 10) @students = Student.paginate(page: params[:students_page], per_page: 10) <%= will_paginate @teachers, param_name: "teachers_page" %> <%= will_paginate @students, param_name: "students_page" %> 

Diğer bir sorun ise ilk tab dışındaki diğer tablarda paginate işlemiyle... read more

git

Git Komutları August 11, 2016 3 minute read

git diff

Kendi yerelimizde yaptığımız değişiklikler neticesinde, projeyi yönlendirdiğimiz repo arasında oluşan farkları gösterir. Hangi satırı sildiğimiz, hangi satırı eklediğimiz vs. bilgilerini içerir.

~/isy$ git diff #Yapılan bütün değişiklikleri gösterecektir. 

Yapılan bütün değişiklikleri değil de sadece istediğimiz dosya içerisinde nasıl bir değişiklik yapıldığını görmek için o dosyanın adını git diff komutunun yanına eklemeliyiz.

~/isy$ git diff README.md #README.md dosyasında yapılan değişiklikleri gösterir. 

git blame

Belirlenen dosyadaki her bir satırın hangi commit ile eklendiği, kimin tarafından ve ne... read more

github

Git Komutları August 11, 2016 3 minute read

git diff

Kendi yerelimizde yaptığımız değişiklikler neticesinde, projeyi yönlendirdiğimiz repo arasında oluşan farkları gösterir. Hangi satırı sildiğimiz, hangi satırı eklediğimiz vs. bilgilerini içerir.

~/isy$ git diff #Yapılan bütün değişiklikleri gösterecektir. 

Yapılan bütün değişiklikleri değil de sadece istediğimiz dosya içerisinde nasıl bir değişiklik yapıldığını görmek için o dosyanın adını git diff komutunun yanına eklemeliyiz.

~/isy$ git diff README.md #README.md dosyasında yapılan değişiklikleri gösterir. 

git blame

Belirlenen dosyadaki her bir satırın hangi commit ile eklendiği, kimin tarafından ve ne... read more

rails

Rails: ActiveStorage May 28, 2018 4 minute read

1. ActiveStorage Nedir?

Rails 5.2 ile gelen ActiveStorage özelliği, dosyaları Amazon S3, Google Cloud, Microsoft Azure Cloud gibi cloud bir servise upload etmemizi sağlar.

2. Kurulum

rails active_storage:install

Bu çalıştırılan kod active_storage_blobs ve active_storage_attachments tablolarını oluşturan bir migration dosyası ve servis konfigürasyonları için config altında storage.yml dosyası oluşturur.

activestorage

3. ActiveStorage’ın Temel Sınıfları

  • ActiveStorage::Service
  • ActiveStorage::Blob
  • ActiveStorage::Attachment

3.1 ActiveStorage::Service

Service sadece baytların hareketinden sorumlu kısımdır. Dosyanın baytlarını bellekten ve browserdan alıp disk’e taşır.

class ActiveStorage::Service def upload( read more
					
Rails: default_scope Kullanmak Kötü Bir Fikir mi? March 12, 2017 2 minute read

default_scope belirli bir model üzerinde yapılacak tüm işlemler için varsayılan bir kapsam belirtmemizi sağlayan ActiveRecord metodudur.

Bu scope’u(kapsamı) modelimizde soft-deletion işlemi yapmak için kullanabiliriz. Soft-delete işlemi için paranioa kullanmanızı ayrıca öneririm. Acts_as_paranoid ile veri silmekten korkmayın başlıklı blog girdimde bundan bahsetmiştim.

Aşağıdaki gibi deleted_on kolonunu kullanarak default bir scope oluşturalım.

class Animal < ActiveRecord::Base # Eğer bir veri silindiyse `deleted_on` alanı dolu olacak. default_scope where(deleted_on: nil) end 

Animal modelinde tanımladığımız default_scope ile silinen... read more

Rails: Tab menülerde paginate işlemi September 24, 2016 1 minute read

Tab menülerde paginate işlemini yapılandırırken karşılaştığım sorunlar:

İlk önce tablar arasında geçişlerde bir sıkıntı yaşadım. Bunu will_paginate‘in param_name parametresiyle şöyle hallettim.

@teachers = Teacher.paginate(page: params[:teachers_page], per_page: 10) @students = Student.paginate(page: params[:students_page], per_page: 10) <%= will_paginate @teachers, param_name: "teachers_page" %> <%= will_paginate @students, param_name: "students_page" %> 

Diğer bir sorun ise ilk tab dışındaki diğer tablarda paginate işlemiyle... read more

research

Rails: ActiveStorage May 28, 2018 4 minute read

1. ActiveStorage Nedir?

Rails 5.2 ile gelen ActiveStorage özelliği, dosyaları Amazon S3, Google Cloud, Microsoft Azure Cloud gibi cloud bir servise upload etmemizi sağlar.

2. Kurulum

rails active_storage:install

Bu çalıştırılan kod active_storage_blobs ve active_storage_attachments tablolarını oluşturan bir migration dosyası ve servis konfigürasyonları için config altında storage.yml dosyası oluşturur.

activestorage

3. ActiveStorage’ın Temel Sınıfları

  • ActiveStorage::Service
  • ActiveStorage::Blob
  • ActiveStorage::Attachment

3.1 ActiveStorage::Service

Service sadece baytların hareketinden sorumlu kısımdır. Dosyanın baytlarını bellekten ve browserdan alıp disk’e taşır.

class ActiveStorage::Service def upload( read more
					
Bir Developer'ın Hayatını Kolaylaştıracak 3 Prensip: KISS, YAGNI, DRY March 27, 2016 1 minute read

KISS: Keep It Simple, Stupid!

Gereksiz karmaşıklıktan uzak durmayı, yazdığımız kodun bizden sonrakilerin kolaylıkla anlayabilmesini/geliştirebilmesini sağlamayı hedefleyen bir prensiptir.

kiss

Bu ifade Kelly Johnson tarafından kullanılmıştır ve şöyle bir açıklama getirmiştir:

Eğer sistemlerinizi kompleks yapmak yerine onları daha basit tutarsanız sisteminiz en iyi şekilde çalışacaktır. Bu nedenle tasarımda hedef nokta basitlik olmalı ve gereksiz karmaşıklıktan kaçınılmalıdır.

Diğer açılımları

Keep It Simple Silly

Keep It Short and Simple

Keep It Simple and Straightforward

Keep It Small and Simple

YAGNI: You Aren’t Gonna Need It / Buna İhtiyacın Olmayacak

Extreme Programming(XP)’nin prensiplerinden... read more

Chroma Key Nedir? November 29, 2014 3 minute read

Film çekim setlerinde arkaplanın sadece mavi ya da sadece yeşil renkte olduğunu gördüyseniz ne amaçla bu şekilde yapıldığını merak etmiş olabilirsiniz. Filmlerin böyle bir ortamda çekilmesi Chroma Key tekniğini uygulayabilmek içindir.

film-set

Teknik olarak chroma key nasıl uygulanır?

Chroma Key eşit şekilde aydınlatılmış mavi veya yeşil (tek renk) bir arka plan önünde bulunan bir kişi veya nesnenin, başka bir video görüntüsü veya resim üzerine bindirilmesi esasına dayanır.

  • Blue Screen, Green Screen, Chroma Key, greenbox, bluebox ve CSO (Color Seperation Overlay) terimleri ortak kullanılan terimlerdir ve temelleri aynı esaslara dayanır.
  • Chroma key bir program değil tamamen... read more

ruby

Rails: ActiveRecord Enum Usage March 10, 2016 1 minute read

Let’s have a model called Car and we want to keep information such as whether the car is rented, available or unavailable.

Should we use more than one column? Why?

Let’s imagine that we added these fields to our table as follows.

class AddStatusesToCars < ActiveRecord::Migration def change add_column :cars, :rented, :boolean add_column :cars, :available, :boolean add_column :cars, :unavailable, :boolean end end 

According to this scenario,... read more

attr_accessor Usage in Ruby July 3, 2015 1 minute read

Let’s assume we have a class called Person:

class Person end person = Person.new person.name #=> NoMethodError: undefined method `name' for #<Person:0x000055659b8bfb68> 

If we don’t define a method called name, we will get an error like above (NoMethodError). So let’s define our method.

class Person def name @name # instance variable end end person = Person.new person.name #... read more
					

şiir

Pervane February 27, 2017 less than 1 minute read

Dâr-ı fenanın sanına felek bir kez olsun düşmeye
Ahîz eylenen dil-i viran niyet etmez sönmeye
Vakti gelmez beklenenin hesabını dürmeye
Yanmaya pervane bir sözümüz mü olmasın?

Dermanı yaş imiş gönle haşr olan
Olmaya cihanda bir kâmı nâr olan
Bir seni içre öte bir beri yoktan da var olan
Yanmaya pervane bir gönlümüz mü olmasın?

read more
  • angularjs (4)
  • bash (1)
  • coding (10)
  • git (1)
  • github (1)
  • rails (5)
  • research (3)
  • ruby (2)
  • şiir (1)

    2024 © Ecmel Albayrak

    Posts
    Tags
    About