İçeriğe geç

Yazar: akkayahu

Angular2 Components ve Templates

Angular2 Companents:

angular2 Components
Components

Angular2 versiyonunda, Component view(görünüm) olarak adlandırdığımız ekran yamasını kontrol eder.

Örneğin şu görünümler componentler tarafından kontrol edilir:
-Navigasyon bağlantıları olan root uygulama,
-Kahraman listesi.
-Kahraman editörü.

Component uygulama mantığı -görünümün neyi desteteklediği- class ların içinde tanımlanır. Class lar görünümlerle API nin özellikleri veya metodları ile etkileşime geçer.

 

Örneğin HeroListComponenet bir hero metoduna sahip ve metod servisten alınan hero dizisini geri döndürüyor. HorolistComponent ayrıca selectHero() motoduna sahiptir bu metod kullanılarak kullanıcı listeden seçilen bir kahramana tıkladığında selectedHero özelliği ile ayarlar.

angular2 components
Components

Angular kullanıcı uygulamadayken componentleri create, update ve destroetme özelliğine sahiptir. Uygulamanız opsiyonel yaşamdöngüsü(lifecycle) kancalarına göre her anda bir aksiyon alabilir, yukarıda resimde belirtilen ngOnInit() gibi.

 

Templates:

angular2 templates
Templates
angular2 template
Template

Bir componentin görünümünü(view) template(şablon) ile tanımlarız. Template Angular a nasıl render edeceğini söyleyen HTML in formudur.

Bir template normal HTML gibi gözükür ama ufak tefek farklilıkları vardır.

HeroListComponent:
(resim)

Tipik <h>, <p> gibi HTML elementlerini kullanılmasına rağmen ayrıca bazı değişiklikler de vardır: *ngFor, {{hero.name}}, (click), [hero] ve <hero-detail> gibi Angular syntaxını kullanırlar.

Son satırdaki <hero-detail> tagı yeni bir component -HeroDetailComponent- hazırlayan özel bir tagdır.

HeroDetailComponent daha önce incelediğimiz HeroListComponent componentinden farklı bir componenttir. HeroDetailComponent (kodu gösterilmedi) kullanıcının HeroListComponent ile sunulmuş kahraman listesinden kullanıcının seçmiş olduğu belli kahramanlar hakkında bilgileri gösteriyor. HeroDetailComponent, HeroListComponent in çucuğudur.

angular2 component tree
Component tree

<hero-detail> tagının normal html tagları arasında nasıl kolayca yer edindiğine dikkat edin. Özel componentler HTML ile aynı layoutta sorunsuz bir şekilde karıştırılabilir.

Önceki yazı <<-

 

Angular2 Moduller

Moduller:

Angular Module
Angular Module

Angular uygulamaları modülerdir ve NgModules (bir uygulamanın koordineli bloklar halinde düzenlenmesine yardımcı olur) adında kendi modülerlik sistemine sahiptir. NgModules büyük önem taşır daha ayrıntılı bilgiyi bu sayfadan(https://angular.io/guide/ngmodule) bulabilirsiniz.

Her angular uygulaması alışılmış olarak AppModule isminde, root module olan en az bir NgModule sınıfı içerir.

Root module küçük bir uygulamadaki tek modül olabilse de, çoğu uygulamanın daha birçok özellikte modülü vardır; her biri, bir uygulama alanına, iş akışına veya yakından ilgili bir dizi özellik için ayrılmış bir kod bloğu vardır.

NgModule, bir kök veya özellik olsun, @NgModule dekoratörlü bir sınıftır.

NgModule modül özelliklerini açıklayan tek bir meta data objesi alan bir dekoratör fonksiyonudur. En önemli özellikler şunlardır:

 

Declarations: view clasları da bu modüle aittir. Angular 3 view classına sahiptir bunlar: components, directives, pipes.

Exports: declarationların alt kümesi olarak modüllerin templatelerinde görülebilir veya kulanılabilir hale gelirler.

İmports: Başka modüllerin export edilmiş classlarına, component temlatesi tarafından ihtiyaç duyulduğunda burada tanımlanır.

Providers: Servis sağlayıcıları olarak adlandırılabilir, bu modül servislerin global bir koleksiyon olmasını sağlar, bu sayede uygulamanın her yerinden ulaşılabilir hale gelirler.

Bootstrap: Ana uygulama görünümüne sahip root componenti belirtir. Diğer bütün uygulama görünümlerini barındırır. bootstrap özelliği sadece root componentine atanır.

Örnek bir root module:

root module
root module

Yukarıdaki örnekte sadece export kısmının nasıl çalıştığını göstermek için kullanıldı. Root modulünün herhangi birşey export etmesine gerek yok çünkü diğer modüllerin root modülünden birşey import etmesine ihtiyacı yok.

Bir uygulama root modülünün önyükleme yapılması ile çalıştırılır. main.ts içerisinde şu şekilde görebilirsiniz:

bootstrapping module
bootstrapping module

NgModules vs JAvaScript Modules:

NgModule (@NgModule ile dekore edilmiş bir sınıf) Anguların temel bir özelliğidir.

Javascript obje kolaksiyonlarını yönetmek için kendi modül yönetim sistemine sahiptir. NgModule sisteminden tamamen ayrı ve ilişkisi yoktur.

Javascripte Her dosya bir modüldür ve bu module ait bütün objeler bu dosyada tanımlanır. Modülde bazı sınıflar public anlamına gelen “export” anahtarı ile işaretlenir. Diğer javascript modulleri başka sınıfların public sınıflarına ulaşmak için “import” ifadelerini kullanır.

Js import export
Js import export

Angular Libraries:

Angular2 library
Angular2 library

Angular, Javascript modülleri koleksiyonu olarak düşünülebilir.

Her angular kütüphanesi “@angular” öneki ile başlar.

npm paket yöneticisi ile indirip javascript “import” ifadesi ile onları ekleyebiliriz.

Örneğin Angular ın “Component” decoratörünü “@angular/core” kütüphanesinden şöyle ekleyebiliriz:

js import
js import

Bunun yanında Javascript import ifadelerini kullanarak NgModules de ekleyebiliriz:

js import
js import

Yukarıdaki örnek root modülünde “Browsermodule” kısmını javascript import ifadesi ile eklemiştik, Bu metariale ulaşmak için @ngModule de import metadatasına şu şekilde eklememiz gerekir:

Ng module import
Ng module import

Bu şekilde hem angular hemde Javascript import sistemini kullanmış olduk.

Önceki yazı <<-

->> Sonraki yazı

Kali Linux Nedir ?

Kali linux:

Kali Linux sızmatesti ve siber güvenlik uzmanlarına hitap eden *Debian temelli bir Linux dağıtımıdır. Kali bilgi güvenliği görevlilerine yönelik yüzlerce çeşit araç içerir. Örneğin sızma testleri, güvenlik araştırmaları, adli bilişim, tersine mühendislik gibi. Dağıtımın geliştirilmesi, desteklenmesi ve bakımı önemli bir bilgi güvenliği eğitimi şirketi olan *Offensive Security tarafından gerçekleştirilmektedir.

Kendinden Önceki Sürüm olan  *BackTrack Linux’un baştan aşağıya yeniden derlenmesi ile Debian geliştirme standartlarına bağlı kalınarak 13 Mart 2013’te yayınlanmıştır.

Kali Linux
Kali Linux

Sistem Hakkında:

600 den fazla sızma testi aracı içerir: BackTrack’teki araçların gözden geçirilmesinden sonra çok sayıda araç kaldırıldı basitçe kaldırılan araçlar: çalışmayan araçlar, aynı fonksiyonelliğe sahip yada birbirini tekrar edenlerden oluşuyorlar. Kali nin içerdiği araçları *Kali Tools sitesinden görebilirsiniz.

Ücretsizdir ve daima öyle olacaktır: BackTrack gibi bedavadır hiçbir zaman Kali Linux için ödeme yapmak zorunda kalmayacaksınız.

Açık kaynak git ağacı: Kali Linux için açık kaynak geliştirilme taahhüt edilmektedir. *Geliştirme ağacı herkesin görebilmesi için açıktır. Kali Linux a giren her koda herkes ulaşabilir veya isteyen herkes bu kodlarda değişiklik yapabilir, *pakeleri kendi özel ihtiyaçlarına göre tekrar derleyebilir.

FHS(DSH) uyumluluğu: Kali Linux *Dosya Sistemi Standardı’na(Filesystem Hierarchy Standard) bağlı kalmıştır, Linux kullanıcılarının kolayca binaryler, destek dosyalar ve kütüphaneleri tutmasına izin verir.

Geniş aralıkta kablosuz aygıt desteği: Linux dağıtımları ile birleşme noktalarından biri de desteklediği kablosuz ağ arayüzleridir. Kali Linux derlenirken mümkün olduğunca çok sayıda kablosuz ağ aygıtını destekleyecek şekilde ayarlandı. Bu sayede kullanıcılara sayısız USB ve kablosuz cihazı geniş çeşitlilikte donanımın uygumlu biçimde çalıştırabilmesine olanak sağlar.

Özel kernel, enjeksiyon için yamalı: Sızma testçileri olarak, geliştirici takımının sıklıkla kablosuz değerlendirmeler yapması gerekir, bu yüzden kernel son enjeksiyon yamalarını içerir.

Güvenli bir ortamda geliştirme: Kali Linux takımı az sayıda ve güvenilir kişilerden oluşur. Bu kişiler paketleri işlemeve depolarla etkileşim gib işleri çoklu güvenlik protokollerini uygulayarak yapar.

GPG imzalı paket ve depolar: Kali Linuxtaki her paket paketi derleyen yada işleyen her geliştirici birey tarafından imzalanır hemde sonradan depoya geçtiğinde de imzalama işlemi olur.

Çoklu Dil desteği: Sızma araçları İngilizce yazılma eğiliminde olsada, daha çok kullanıcının kendi ana dilinde araçları kendi işleri için kullanmasını sağlamak adına doğru çoklu dil desteği sağlanmıştır.

Tamamen özelleştirilebilir: Herkesin aynı tasatım anlayışında olmayacağını kabul ederek maceraperest kullanıcılar için çekirdeğe kadar *Kali Linux özelleştirme mümkün kılınmış.

ARMEL ve ARMHF desteği: ARM tabanlı single-board sistemler Raspberry Pi, BeagleBone Black ve diğer birçoğu yaygınlaşmaya ve ucuz hale gelmesinden beri  *Kali’nin Arm desteği ARMEL ve ARMHF için tam kapasite çalışma gerçekleştiriliyor. Kali Linux *geniş aralıkta ARM cihazlarını destekler ve ARM depoları ana hat depolar ile entegredir.
Yani ARM için güncellenen bir araç geri kalan diğer dağımlarda da güncellenir.

Kali Linux sızma testi uzmanları için özel olarak yapılmıştır. Bu nedenle geri kalan bütün dökümanlar genel olarak Linux işletim sistemi hakkında ön bilgiye, yatkınlığa sahip olduğunuzu varsayar.

Kaynak

Angular2 nedir?

Angular2 Mimarisi:

Bu yazı dizisinde kaynak olarak Angular2 quickstart dökümanından çevirerek ilerleyeceğim. versiyon 2 ile birlikte yapısal bir değişkliğe gidildiği için devamında angular olarak da bahsedebilirim artık birinci sürümün pek bir önemi yok. Çevirmeler bitikten sonra kod örneklerine de geçebilirim fırsat oldukça bu şekilde ilerleme yapacağım. Bu yazı dizisinde amacım çok üstünkörü değil temelleriyle birlikte anlatmaya çalışmak. Bir şeyi ne kadar temelden öğrenirseniz o kadar faydalı olur.  Hadi temelden angular nedir öğrenmeye başlayalım:

Angular client uygulamaları yapmak için HTML ve Javascript yada Javascripti derleyen bir dil olan TypeScript(classlar oluşturarak daha rahat ve daha az karmaşık js kodu yazmamızı sağlar .ts uzantılıdır derlendiğinde normal javascript koduna dönüşür.) i kullanan bir frameworktür.

Angular frameworkü bazı temel kütüphaneler yada seçime bağlı kütühanelerden oluşur.

Angular uygulamaları yazılırken HTML *tema parçalarını(templates) Anglularize olmuş işaretlerle oluşturulur, bu temaları kontrol etmek için *companent sınıfları(class) yapılır, *servislerde uygulama mantığı eklenir.

Daha sonra uygulama onyükleyici(bootstrapping) root modülü tarafından çalıştırılır. Angular devreye girer ve uygulama tarayıcıda tarayıcıda sağlamış olduğunuz talimatlar doğrultusunda kullanıcıdan yanıt bekler.

 

Angular2 Mimari
Angular2

->> devam yazısı Modüller ve diğerleri

Sözlük sitelerinin internet ortamını kirletmesi

İnternet ortamında sosyal medya devrimi hayatta kalabilen az sayıda mecralardan biride sözlük diye tabir edilen siteler. Burada daha kolay bir biçimde içerik girebiliyoruz, çok fazla bir tartışma ortamından çok içerik üretilen bir ortam.

Kutsal bilgi kaynağı mı çöplük mü ?

Benim şahsi görüşüm sözlük sitelerinin pek bir yararlı içeriğe sahip olmadığı yönünde bu yüzden pek kullanmak istemiyorum. En ünlüsü ekşi sözlükte çok bir kaliteli içerik olduğunu zannetmiyorum. Tamam her türden insan var belli bir ifade özgürlüğü var bunlar güzel şeyler ama içerik üreten insanlar pek de sözlük derecesinde içerik üretebilen kişiler değil. Mesela şu an gündem konusuna baktığınızda kaliteli bir içerik göremezsiniz genelde sistemi eleştiren  ya toplum şöyle böyle diyenler ya siyasi görüş bildiren ya birlerine nefret söyleminde bulunanların olduğu bir ortam. Bunun kime ne faydası var ??

 

Orada vakit geçiren bir insana bu içerikler nasıl bir fayda sağlayabilir ? Kutsal bilgi kaynağı sloganı içi boş bir laf mı ? Bir kişiye sanal bir yazar sıfatı eklendiğinde o insan aniden nirvanaya mı ulaşıyor ? O insan aydın insan mı olmuş oluyor ? Tabiki hayır. Lüten bunları bir düşünün daha iyi kaliteli bir internet ortamına sahip olabiliriz. Bu kadar kirli bir ortam olmasına gerek yok.