Kayıtlar

2017 tarihine ait yayınlar gösteriliyor

Online stream leri Kaydetmek.

Bu gün uzun süreden beri ara ara işime yarayan bir siteden bahsetmek istiyorum. Youtube yada diğer online media sağlayıcılar aracılığı ile ulaştığımız bir sürü video ve audio kaynaklar mevcut, Bir kısmı erişebildiğiniz kaynağı sağlamıyor, ancak her daim ilgili veri için internetiniz olmayabilir. Örneğin, Tamir yada PC üzerindeki bir kurulum vs... bilmediğiiz bir mecrada bir işe kalkıştığınızda size rehper olması için yada merak ettiğiniz bir konuda online anlatım bulduğunuzda, çok faydasını görmüşüzdür. Bu kısımda en büyük sorun ise bu bilgilere ihtiyaç duyduğumuz her an online olamayabiliyoruz. bu nedenle kaynağı kendinize kopyalamak adına offliberty.com  adresini kullanabilirsiniz. Adresten, istediğiniz kaynağın linkini sağladığınız taktirde bir süre bekleyerek ister audio ister video olarak download linkine ulaşmanız mümkün.

Visual Studio ile IVR

Genesys ve Cisco IVR sistemlerini incelemiş birisi olarak, bir süredir kafamda IVR geliştirmelerini Visual studio ile c# .NET  platformunda yapabilirmiyim Sorusu mevcuttu. VXML ile çalışan IVR platformları çoğunlukla standartları takip etmekte, bazı platform özelindeki eklentiler dışında ortak bir geliştirmeye müsade edebilecek yapıdalar. Öncelikle bir çok programcının daha aşina olduğu, C# dilinde yazılım geliştirmek, Cisco-Genesys entegrasyponunun bulunduğu yada 2 sisteminde kullanıldğı büyük yapılarda farklı geliştirme platformlarını kullanmaktan kurtulmak, sunucu çoklamak zorunda kalmak ve farklı sistemleri öğrenmek zorunda kalmamak adına vxml4net library sini kullanarak, IVR API yazmayı planladım. İdeal de varmayı planladığım nokta, Tek kod ile 2 sisteme hizmet verebilmek. Cisco Call Studio için gereken, geliştirme ortamı lisansından kurtulmak. Sistem değişikliklerini daha basit ve daha az efor ile gerçekleştirebilecek bir yapıkurmak. Ayrıca Sistemlerde Eksikliği du...

Node.JS - 7 - Event yönetimi

Resim
Bilgisayar dünyasında her işlem bir event olarak değerlendirilebilir. NodeJS te özellikle Asenkron çalışan tüm işlemler Eventler ile takip edilebilir. Dosya okuma, bağlantı Açma, Http/Https işlemleri gerek Snucu gerekse İstemci davranışı olarak yapılan şu ana kadar gördüğümüz Asenkron işlemlerde, işlemlerin bitme zamanı belirsizlik içerir, Bu tip durumlarda Eventlerde faydalanarak stenen Aksiyonu işlemin neticesine göre almak yada Hata durumlarını yakalayarak ilgili yönlendirmeleri yapabilmek Adına Event leri kullanıyor olacağız. Örneğimizde, Dosya okuma işlemi yapıyoruz, Tanımlı 2 Event mevcut, Ancak "error" durumuna ilikin Event sonradan ileva ediliyor ve 2 versiyon için uygulamanın çalıştırıldığında Dosya okuma hatası için sergilediği farklı davranışlar gösterilmeye çalışılmıştır. ayrıca, Ön tanımlı (Built-in) eventlerin yanı sıra Kendi Eventinizi tanımlamanız ve Bu şekilde yol almanızda mümkün. Bu amaçla " Events " modülü eklenmeli ve " EventEm...

Node.JS - 6 - Http modülü ve işlemleri

Resim
http modülü, “Hyper transfer protocol” ü üzerinden veri iletimi için kullanılan modüldür. Bu işlemleri temelde Sunucu (Server) yada İstemci (Client) işlemleri olarak değerlendirebiliriz. kısacası hizmet veren mi alan mı olmak istiyoruz :) Güvenli (Secure) HTTP işlemleri (https) için "https" modülünün varlığı unutulmamalıdır. Sunucu Olarak: Bu modül yardımı ile verilen portu dinleyen sunucu yaratılabilir. Oluşturulan değişken için port ifadesi ve içerik verilmelidir.  Öncelikle Modülümüzü ekledik, http sunucu objemizi “createServer” ile oluşturuyoruz, tanımlanan “res” isimli cevap objesi için Başlık (Header) bilgilerini set ettikten sonra, esas cevabımızı oluşturuyoruz. “listen” komutu http objemize çalışma emrini vermiş oluyoruz. Böylelikle herhangi bir sunucu uygulamasına ihtiyaç duymadan http isteklerini işler duruma gelmiş oluyoruz. Bir ileriki boyutta, parametre alınması için parse methodu kullanılabilir, u şekilde oldukça pratik olacak...

Node.JS - 5 - Modül Tanımlama

Resim
Modül tanımlamayı kısaca class lar ile çalışmak olarak düşünebiliriz. Bu noktada 2 farklı şekilde kurgu yapmak mümkün, propety leri ile tam bir kütüphane (Library) mantığını oturtabilir ya da kendi başna işlem görecek şekilde tasarlabilirsiniz. Bu noktada ifadesi zor oldu ancak örnekler üzernden gitmek faydalı olacaktır sanırım.  example008.js / modul008.js Örnek 8 de biraz sonuç odaklı, yaklaşım görülebilir; Bu Örnekte, property yada Method dış dünya ya açılmıyor, aslında class lardan constructor olarak bildiğimiz ana method içinde Tüm dünya dönüyor, Gerekli inputlar sağlanarak tüm işlemlerin içerde dönmesi bekleniyor. Bakıldığında ayrı bir işlem gerçekleşiyor ve biz çağırdığımız noktada (example008.js içinde) gerçekleşen işlemlerle ilgilenmiyoruz, dolayısı ile daha sade bir çağrımgerçekleşiyor.  Bu yapıyı Özellikle Web uygulaması yaptığınızda, münferit sayfaları oluştururken kullanabiliriz. Burda amaç ortak fonksiyonları toparlamak yerine, münfe...

Node.JS - 4 - IO/Dosya işlemleri

Resim
Node.JS’ in özellikle asenkron çalışma mantığı sayesinde IO işlemlerinde oldukça performanslı olduğunu dile getirmiştik. Bu noktada File işlemine örnek vermeden geçmek olmaz. Bu amaçla IO işlemler için kullanılacak olan modülden ve aslında dolaylı olarak bir modülün nasıl ekleneceğinden bahsetmenin de zamanı geldi. Dosya işlemleri: IO işlemleri için kullanacağımız modül “fs” bir modül eklenirken öncelikle “var” anahtar kelimesi ile parametre tanımı yapılıyor ve “require(“<modül-adı>”)” komutu ile kullanılacak modül bilgisini bu değişkene atama yapıyoruz. Öncelikle “Deneme.txt” isimli bir  dosyamızın var olduğunu düşünerek aşağıdaki şekilde kodumuzu düzenleyerek, çalıştırdığımızda içeriğini ekrana bastırıyor olacağız. "example005.js" olarakta dosyaya yazmak için aşağıdaki komut kullanılabilir: //Dosyamizin içerisine yazimizi yaziyoruz fs.writeFileSync("D:\\TEMP\\nodejs\\" + process.argv[2],process.argv[3]) Bu adıma kadar, dosya işleml...

Node.JS - 3 - İlk uygulama

Resim
İlk uygulamamız için çok temel düzeyde bir örnek seçmek faydalı olacaktır. Node.JS için şöyle bir ifade demek doğru olacaktır; “node <dosya-adı>” komutu yordamı ile, belirttiğimiz dosya javascript engine ile çalıştırılıyor.  Bu sebeple içinde sadece console.log(“<Bir Metin>”)”  (example002.js) İfadesinin olduğu dosya yaratılabilir, buda bizim için geçerli bir uygulama olacak ve tüm yaptığı komut satırında komutumuzu çalıştırdığımızda Komut satırına ilgili komut ile yazdırılmak istenen metin yazdırılacaktır ve çalışan başka bir nesne olmadığından uygulama sonlanacaktır. Evet, bu biraz basit oldu sanırım, Ozaman Modüller ile ilgili aşağıdaki ufak eklemeyide yaparak, bir adım ileri gidelim ve Parametre kullanımı ekleyelim: Bu noktada başlamadan önce 2 bilgiyi ele almakta fayda var: parametreler boşluk ile ayrılır, array dir istediğimiz kadar tanımlayabiliriz, ancak ilk 2 parametre ön tanımlı olarak sistem tarafından kullanılır. Node.JS...

Node.JS - 2 - NPM (Node Package Manager)

NodeJs in ne olduğunu gördük, neleryapabileceğimizi hayal etmeye başladık, ozamna nasıl sorularına cevap aramaya başlayabiliriz. Öncelikle NodeJS te modül kavramından bahsedeceğiz, Modül Birazda diğer dillerden alışık olduğumuz paket yada class ifadelerine denk geliyor. Bir amaca yönelik yordamların bulunduğu eklenerek kullanıldığı kod parçaları. Online olarak bir çok kullanabileceğimiz Modül bulunmaktadır, listesine sitesinden ulaşabilirsiniz. Bu noktada NPM ( Node Package Manager ) den bahsetmek faydalı olacaktır. İlgili paketleri yani node.JS için yazılmış paketleri yönetmek amaçlı kullanılabilecek, Komut satırı arayüzü ile çalışan bir uygulama. Bu uygulama aracılığı ile ihtiyaç duyduğumuz scriptleri kullanıyor olacağız. Kullanımı ise oldukça basit, komut satırında sadece “npm” yazarak kurulu olup olmadığını kontrol edebilirsiniz, normal şartlar altında doğru release’i indirerek kurulumu sağlamanız sonrasında npm kurulumunun yapılmış olması gerekiyor. “npm” yazıp enter’a...

Node.JS - 1 - Giriş

Resim
Node.JS nedir? Chrome un V8 javascript engine lerini kullanan server-side (Server tarafında çalışan) bir yazılım mimarisidir. Neden Node.JS? Google tarafından geliştirilen bu kütüphaneyi neden kullanmalıyız dediğimizde belli başlı özelliklerinden bahsetmek yetecektir sanırım.          Asenkron çalışabilmesi.          Sunucu tarafında (Server-side) çalışan Javascript uygulamaların geliştirme kolaylığı.          Yapısı nedeniyle etkin IO kullanımı. (Asenkron çalışma mantığı nedeni ile)         Yayınlanması (Hosting) için ayrı bir uygulama ihtiyacı gerektirmemesi.         Hem backend, hem frontend tarafını geliştirmek adına tek dil kullanma şansı sunuyor. Peki ya Kötü yanları? Güncellemelerimiz için sunucuyu durdurmamız gerekebilecek. Öncelikle Node.JS geliştirmeleri için ilgili sürümü indirmeniz gerekir, https://nodejs.org/en/ adresind...

AngularJS - 7 - Form Validation

Resim
Yapısına bakığımızda AngularJS MVC mantığını client-side yani kullanıcı tarafında gerçekleştirebilen bir platform. Dolayısı ile form kontrolleri için ideal bir durum sunuyor. sunucu tarafına istek yapılmaksızın girilen değerler belirli ölçülerde kontrol edilebilir. HTML5 özelliği olan "required" anahtar kelimesi ile zorunlu alanlar işaretlenebilir, ve " $valid " ile giriş olup olmadığı kontrol edilebilir. NOT : Ancak unutulmaması gereken kullanıcı tarafındaki validasyonlar gerek olmasına rağmen yeter değildir, güvenlik adına sunucu tarafında kontrol gereklidir. AngularJS te input ve form calidasyonları mevcut ve hepsi "true / false" değerlerini alırlar. inoput state leri: $untouched Henüz alana dokunulmadı. $touched   Alana dokunuldu. $pristine  Henüz alan değiştirilmedi. $dirty     Alan değiştirildi. $invalid   İçerik geçerli değil. $valid     İçerik geçerli. Form a ilişkin stateler: $pristine   Hiçbir alan değiştiri...

AngularJS - 6 - Events

Resim
AngularJS ile aşağıdaki direktifleri kullanarak, Kullanıcı aksiyonları için event ekleyebilirsiniz. Bu eventler standart HTML eventlerini ezmeyecek 2 si birlikte tetiklenecektir. ng-blur         ng-change       ng-click        //Mouse Event ng-copy         ng-cut          ng-dblclick     //Mouse Event ng-focus        ng-keydown      ng-keypress     ng-keyup        ng-mousedown    //Mouse Event ng-mouseenter   //Mouse Event ng-mouseleave   //Mouse Event ng-mousemove    //Mouse Event ng-mouseover    //Mouse Event ng-mouseup      //Mouse Event ng-paste        Mouse eventleri tüm HTML objelerine eklenebilir. Aşağıdaki örnekte "ng-click" ve "ng-mouseover" eventinin kullanımı, bir fonksiyonun nasıl tetikleneceği gösterilmekt...

AngularJS - 5 - Service, HTTP, Tables, Select

Resim
Servisler AngularJS uygulaması ile sınırlı ve içinde erişebilir durumdaki fonksiyon ve objelerdir. AngularJS te yaklaşık 30 civarı ön tanımlı servis mevcuttur. Örnek olarak " location " servisini ele alabiliriz, bu servis mevcut sayfanın lokasyonu ile ilgili bir çok metot içerir; $location.absUrl(); ile absoluteURL bilgisine ulaşılabilir. Aslında DOM da location objesi (" window.location ") hali hazırda mevcut AngularJS servisini kullanmaya gerek yok gibi görünsede mevcut objeleri kullanmak AngularJS içinde sizi limitler, Servis ile daha rahat hareket edebilirsiniz. Özellikle güncellemelerden aktif şekilde haberdar olabilmek için servis kullanımı tercih edilmesi sağlıklıdır. $http       - http request yapmaya yarar. $timeout - belirli bir süre bekleme yaratır. ( window.setTimeout gibi) $interval - .NET teki Timer gibi, tekrarlayan işlemler sağlar. "http" Servis: Ayrıca Kendi servisinizi yaratmanız mümkündür, ayrıca daha önce gördüğümü...

AngularJS - 4 - Scope, Filters

Resim
Scope: HTML kısmı view olarak, JavaScript'i controller olarak düşünürsek MVC yapısında scope model olarak düşünülebilir. Mevcut deişken ve fonksiyonları barındırır ve her 2 taraftada kullanılabilir. Ancak her 2 taraf için erişimler biraz farklıdır, Aşağıdaki Örnekte görülebilir. Eğer HTML tarafında data güncellenirse, model ve controller olarak JavaScript tarafı değişimden haberdar olur. Ayrıca tüm uygulama tarafında tanımlı "rootScope" mevcuttur, Bu durumda her 2 taraftada tanımlı değişken yada fonksiyonlara erişim sağlanırken ayrıca dikkat etmek gerekir, Bu noktada öncelik her zaman daha küçük ve Özel tanımlı olan yerel scope tur. Filtreler (Filters): Datayı formatlamak, yada filtrelemek amaçlı eklenebilecek ifadelerdir.  currency  Parasal formatlama date  Tarih formatlama filter  Listeden Alt kümeyi filtreleme json  Bir objeyi JSON metni formatına dönüştürmek limitTo  Liste yada methi belli bir sayı yada uzunlukla sınırlam...

AngularJS - 3 - Modül, Controler

Resim
Model: Aslında daha önceden bu konudan bahsetmiştik, esasen özel bir direktif olan " ng-model" direktifinden bahsediyoruz. Bu direktif HTML objelerin (input, select, textarea) değerini uygulama datasına bağlar, bu bağlantı 2 yönlüdür, gösterim için kullanılabileceği gibi kullanıcı tarafından yapılan değişiklikleride değişkene besler. "ng-model" - Direktifi kullanılan data için " invalid, dirty, touched, error" statülerini sağlamaktadır, ve kullanıldığı objenin tipine göre aşağıdaki CSS/class ları sağlar. ng-empty ng-not-empty ng-touched ng-untouched ng-valid ng-invalid ng-dirty ng-pending ng-pristine Kontrolör (Controler): AngularJs çalışma mantığında, uygulamalar kontrolörler tarafından yönetilir. Kontrolörler standar java objeleridir ve obje constructor ile oluşturulur, ve " $scope " parametresi ile çağrılır. Bu parametre uygulama değişkenlerinin ve method larının tutulduğu objedir. Kontrolörlerin ext...

AngularJS - 2 - Temeller Expressions, Modules, Directives

Resim
İfadeler (Expressions): AngularJS ifadeleri HTML taglari içinde '{{...}}' çiftli süslü parantezler içine yada ' ng-bing="" ' ifadesi ile kullanılabilirler. ifadeler JavaScript ifadelere benzer ve tanım, değişken yada işlemler içerebilirler. Yukarıdaki örnekte bir çarpım ifadesini AngularJS expression olarak gördük bu diğer işlemler, string ifadeler için mümkün olduğu gibi JavaScript teki şekilde JSON objesi ve/veya Array kullanmakta mümkün. Modüller (Modules): Modüller uygulamanın farklı parçaları olarak değerlendirilebilir. ileride inceleyeceğimiz Kontrolleri çalıştırabilmek adına Modül ihtiyacımız olacak. Yukarıdaki örnekte, görüleceği gibi, HTML içinde 1 uygulama tanımlandı ve 2 ayrı DIV 2 ayrı modül olarak tanımlandı, ve aynı isimlerle 2 değişken 2 farklı modül içinde farklı değerlerle oluşuruldu. Bu noktada, her DIV objesi tanımlandığı modül içindeki değerlere erişim sağladığı görülebilir. Direktifler (Directives): "ng-...

AngularJS - 1 - Giriş

Resim
Nedir: - Öğrenmesi basit, - HTML özelliklerini genişleten, - Tek sayfa uygulamalar (SPA - Single page applications) için ideal, Bir javascript kütüphanesidir. ".js" (javascript file) olarak dağıtılır ve script tag'i ile sayfaya eklenebilir. Eklerken Online bir kaynağın kullanılmasında güncel olabilmesi adına fayda olacaktır. Örnek olarak sayfanıza aşağıdaki tag'i ekleyerek başlayabilirsiniz. < script  src ="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js" > < /script > AngularJS ile çalışabilmek için Öncelikle aşağıdaki konulara hakim olmanız gerekecek: - HTML - CSS - JavaScript HTML Eklentileri: AnglarJS HTML ortamına olan etkilerini temel olarak ng-directives ile yapar. - ng-app    : AngularJS uygulaması tanımlar. - ng-model : HTML objelerinin değerlerini uygulamaya bağlar. - ng-bind  : uygulama datalarını HMTL e bağlar. AngularJS hakkında konuşurken, basit adımlar olarak " directives, expr...