Kayıtlar

Mart, 2017 tarihine ait yayınlar gösteriliyor

GVP Composer ile TFS Entegrasyonu

Resim
Composer altında source safe kullanmanız mümkün, günümüz dünyasında da bu konu nerede ise elzem olarak görülebilir. Composer hali hazırda CVS entegrasyonu için donanımlı bir şekilde geliyor, CVS sunucunuz var ise entegrasyonu yapmanız mümkün. Ancak Bir diğer alternatif ise Microsoft’un TFS sunucusu ancak TFS entegrasyonu için ortam CVS gibi hazır değil. Öncelikle TFS için Microsoft’un sağlamış olduğu Eclipse plugin lerinden uygun versiyonu tespit ederek indirmeniz gerekiyor. İndirme işlemi tamamlandıktan sonra “MENU” -> “Help” -> “Install New Software” yolu yardımı ile temin ettiğiniz zip dosyasını kurabilirsiniz, sonrasında Composer’ı kapatıp açmanızda fayda var.  Akabinde yeni pencerelerden “Team Explorer” ekleyerek ilgili kimlik ve sunucu bilgileri ile TFS bağlantısını kurabilirsiniz. Mevcut projenizi sağ tıklayarak TFS'e ekleyebileceğiniz gibi TFS üzerindeki İlgili Collection altından eklemek istediğiniz,  projeyi seçerrek, sağ tuş ve ardından “Import” se...

Genesys GVP ip uçları 2

Resim
Daha önce de bahsettiğim gibi, Uzun yıllar bir çok IVR sisteminde deneyimim oldu. bu süreç zarfında yaşadığım tecrübelere dayanarak rahatça söyleyebilirim ki; geliştirmeciyi en çok rahatsız eden şeylerden bir tanesi tekrar eden angarya işler oluyor. Türkiye şartlarında, özellikle finans sektörünü konu alırsak, en çok tekrarlar, log ihtiyacına yönelik işlerden oluşabiliyor. Örneğin "NoInput" ve "NoMatch" işlemlerinin tamamının loglanmasına ihtiyaç oldu. Bu noktada nasıl bir aksiyon alabileceğimi düşünmeye başaladım. Aklıma "Resource" altında yer alan (daha doğrusu Türkçe dili için, daha önceleri ingilizce yapıdan bizzat devşirdiğimiz.) "tr-TR.JS" dosyası geldi. peki neden bu dosya ? zira bu dosya anons okumaları esnasında wav dosyalarını adreslemeye yönelik bir dosya, ve Composerda anons okunan tüm yerlerde uygun tanım ile tetiklenebiliyor. Ayrıca variable tipi seçilerek, ilgili anons isminin yanı sıra "," ile ayrılmı...

Config dosyasında şifreli veri

Resim
Bu gün işinize yarayacağına inandığım bir konudan bahsetmek istiyorum. Windows service yazdıysanız ve servisin kullandığı şifreniz var ise şifreyi kodamı gömeceğim sorusunu sanırım sormuşsunuzdur. bu noktada farklı alternatifler düşündüm ilki , servis'e çalıştırma anında parametre olarak geçmekti, ancak bir sıkıntısı vardı ve restart sonrası müdehale zorunluluğu doğuyordu. şifreyi gizledik ama pratik olmadığı kesin. :) Sonra config dosyasına gömmek aklıma geldi pratik ama güvenli değildi, appSettings ve ConnectionString komple şifrelemek "isProtected", "protect" ve "unProtect" methodları ile basit ancak sadece bir parametreyi şifrelemek...  peki ne yapalım derken bir parametre daha ekleyip onun değerine göre şifreyi encrpted hale getirip config dosyasını update etmek yine başka bir değere göre açmak aklıma geldi. (bu 2. parametre koda gömülü size özel bir parolada olabilir.) Yazımda bahsettiğim yapıya göre çalışa bilecek bir dll library pr...

Aliexpress siparişleri

Resim
Uzun zamandır aliexpress müdavimi olarak, Farklı bir konuya değinmek istedim. Öncelikle belirteyimki 100 ün üzerinde sipariş verdim. Çoğu ucuz kol saatinden akıllı blekliğe bluetooth klavye ve kulaklık, şarj aleti, ara kablo ve connector ler derken bir  çok siparişim oldu. Öncelikle şunu söylemek lazım, gerçektende  aliexpress bilinçsiz alış-veriş yaparsanız riskli bir mecra. Ancak yorumları okuyarak ürünü ve kampanyaları takip ederek gerçekten güzel ve kullanışlı şeyler elde etmeniz mümkün. Burada paylaştığım resimler genel olarak memnun kaldığım ürünlere ilişkin, tabi başkalarıda var 3D metal puzzle lar çocuklar için farklı ve bilindik markaların muadili oyuncaklar. Ancak esas bahsetmem gereken kendime kurduğum sistem oldu. hepsi toplamda 40 dolar civarı malieti olan 3 parça projeksiyon, android tv ve kablosuz mause-klavye. Bu 3 cihaz ile basit bir multimedia sistemi kurmuş oldum. klavye ve mause mükemmel sonuçlar verdi, projeksiyon verimli olmasına...

Android Yüzen Nesne (Floating Object)

Resim
Android ortamında birçok geliştirme mümkün, Baktığımızda belirli başlı dikkat edilmesi gereken hususlar mevcut. Detay 1-2 noktaya temas edeceği için Yüzen (Floating) nesnelere ilişkin bir örnek vermek oldukça açıklayıcı ve faydalı olur diye düşündüm. Öncelikle “AndroidManifest” dosyasında MainActivity tanımının hemen altına oluşturacağımız yeni class’ı “service” olarak aşağıdaki şekilde eklememiz gerekir. Aksi takdirde sistem bu class’ı görmezden gelecektir. “FloatingDice” olarak Class’ımızı oluşturduğumuzu düşünürsek aşağıdaki şekilde “</manifest>” hemen üstüne eklenebilir. <service android:name="com.test.app.FloatingDice" android:exported="true" /> Class’ın içeriğine gelirsek dediğimiz gibi “service” tipinden extend etmemiz gerekecek. İlgili “FloatingDice” kodunu uzunluğu nedeni ile en altta bulabilirsiniz. Ayrıca kodun açıklaması için commentleri referans olarak alabilirsiniz. Sonrasında gelelim “ManActivity” class’ına “onCreate” meth...

Genesys GVP ip uçları

Resim
Genesys IVR (GVP) platformu ile uğraşırken bazı sınırlar karşınıza çıkacak zira ortam UML tasarım benzeri bir görsel geliştirme ortamı sunuyor. Ancak korkmanıza hiç gerek yok, Bu noktada Genesys ile ilgili en sevdiğim kısım devreye giriyor ve yapacağınızı bildiğiniz durumlarda sizlere birçok alternatif sunuyor. Bu gün bu kısımlara kabaca değinmeye çalışacağım. Bu noktada 1-2 Alternatifimiz bulunuyor, Örneğin JSON bir objenin sıralanması ya da 2 objenin merge edilmesi amacı ile “Scripts” klasörü (Klasör yok ise uygulamanın root klasöründe yaratılabilir.) altında oluşturulan Javascript File kullanılabilir: function MergeRecursive(obj1, obj2) {   for (var p in obj2) {     try {       if ( obj2[p].constructor==Object ) {         obj1[p] = MergeRecursive(obj1[p], obj2[p]);       } else {         obj1[p] = obj2[p];       }     } catch(e) {       obj1[...

Cisco AXL Query

Resim
Cisco CVP kullanıyorsanız, Cluster sunuculardan bilgi almak biraz sıkıntılı ve bu süreci kesin yaşamışsınızdır. Bu bilgiyi çalışma anında almanız çok olası değil, hem performans açısından hem de aradığınız bilginin aslen hangi cluster sunucuda olduğunu bilmenizin zor olmasından dolayı tam bir dert. Bu noktada Cisco’ nun sunduğu çözüm Sunuculara AXL Query ile bağlanıp Belirli bir zamanda tüm veriyi alarak sonrası  için SQL gibi daha rahat işleyip kullanabileceğiniz bir ortama taşımak. Peki, bu noktada kendi aksiyonumuzu alabilir miyiz? … Elbette bu mümkün. Bu şekilde ilerlerken yapıyı bilmeniz yeterli. Temel olarak yapı Bir http adrese (Kullanıcı, şifre bilgileri ile oluşan bir URL’e) Uygun XML formatında çalıştırmak istediğiniz query’i yollamak. İlgili adresi aşağıdakine benzer bir kod ile C# ortamında oluşturmak oldukça basit: HttpWebRequest req = (HttpWebRequest)WebRequest.Create(@"https://" + hostIP + ":" + hostPORT.ToString() + "/axl/"); req...

Genesys Nuance-ASR Entegrasyonu Port Kullanımı

Resim
Bu gün oldukça nadir yaşanan bir konuya değineceğim, konu oldukça özel bir konu. Lakin yaşadığım sıkıntı kaynaklı buna değinmek istedim. Konuyu şu şekilde özetleyebilirim, lisans konusunda bir bilinmezlik var ve danışmanlık almakta çok mümkün olmuyor. Ancak söylenenin aksine birebir lisans gerekliliği söz konusu değil, bunun bir pazarlama taktiği olduğunu düşünüyorum. Ekran görüntüsünde yer aldığı gibi ASR işlemi gerçekleştirecek blok ta uygun bir exception ile DTMF akışa yönlendirilebilir. Bu noktada exception detaylandırılmadı, ancak aslen exception ayrıştırılarak ASR ve TTS gibi dış kaynakların resource aşımları kontrol edilebilir ve kullanıcıya yansıtılmadan atlatılabilir. Bu konuda başka bir soru olursa seve seve cevaplamaya çalışabilirim.

IVR nedir ?

Resim
IVR (Interactive voice response) yani sesli yanıt sistemleri, kabaca telefon hatları üzerinden hizmet vermek üzere tasarlanmış, self servis kanalı olarak tanımlanabilir. İstisnalarını görmek mümkün olsada, bu sistemleri görseli olmayan web uygulamaları olarak düşünmek yanlış olmaz. Piyasada varlığını ispatlamış bir çok çözüm IVR geliştirmeleri için VXML tabanlı bir yapı sunmaktadır. VXML (voice-xml), ses teknolojisine özel tag leri olan, genişletilmiş bir XML yapıdır. Sunucu-istemci/yorumlayıcı mantığı ile çalışmaktadır. Bu noktada sunucu kısmı IIS, Tomcat, websphere ve benzeri web uygulamalar olmakla beraber. En temel fark istemci/yorumlayıcı tarafının farklılaşmasıdır. istemcinin farklı bir ortamda yani telefonda olması nedeni ile yorumlayıcı web uygulamalardaki gibi endpoint te yer alan bir browser değil, çevirici görevi de gören ara bir sunucuda yer alan uygulamalardır. Genel olarak geliştirme araçları eclipse üzerine yazılmış pluginler olarak karşımıza çıkar. ASR (Autom...

Aktif-Aktif yedeklilik

Resim
Uzun bir süredir iş hayatındayım, özellikle yazılım işlerinde bir çok özensiz ve üstün körü iş görmem için yeterli bir süre oldu. Öncelikle ben en iyisini bilirim ya da mutlak doğru budur diyecek değilim. Biraz da alaylı yazılımcı olarak ahkam kesmek istemem, lakin şunu dile getirecek cesaretim var, piyasada kaçınılan bir çok sorunun basit çözümleri olabilir. Bugün profesyonel hayatta şahit olduğum bir durum ve sonrasında çakan şimşeklerden bahsetmek istiyorum. Günlük mesaim esnasında, benimle iletişime geçen bir mesai arkadaşım nedeniyle firmaya ücretine mukabil yaptırılmış bir web servisindeki özensizliğe tanık oldum. Servisi kısaca özetleyeyim; sistemden ortak alana çıkılan bir xml dosya okunarak cevap dönülüyordu, ancak özensizlikte bu noktada gözüme çarptı tek bir method ve methodun içinde her defasında file read yapılıyordu ki, bu kısımda try/catch yapısı da düzgün kurulmamıştı ayrıca exception sonrası IIS' i bile kilitleyip recycle'a sebep olabilecek bir yapı mevcut...

Kadir Usta (Avcılar)

Resim
Öğrencilik yıllarından bildiğim, eski bir mekan. Ozamanlar babaları tarafından işletiliyordu yani bizzat Kadir usta tarafından. Babadan oğula kalan bir mekan, şuan çoğunlukla nöbeti oğullara devretmiş olsada usta halen boy gösteriyor. lezzetini sevdiğimiz, arkadaşlarla sık sık uğradığımız bir yer oldu. Olurda yolunuz avcılara düşerse lezzetine güvendiğimiz dürümlerini denemenizi kesinlikle tavsiye ederim. özellikle adana ve tavuk dürüm bizim favorimiz, ilaveten künefeside mevcut.

Telefonda Android uygulama geliştirme

Resim
Bu gün örnek bir not uygulama projesi ile "Android cihazınızda nasıl uygulama geliştirebilirsiniz ?" sorusunun cevabını vermeye çalışacağım. Anlatımım esnasında mümkün oldukça pratik bir yol izlemek istiyorum. Öncelikle, kullanacağım görseller olarak "png" dosyalarını (ekle, çıkar, kaydet, onay, iptal, kilit, ve paylaşım fonksiyonu için de whatsapp ile mail görsellerini) basit google search ler ile temin edip, Sketchware uygulamasını açıyoruz. "create new project" dedikten sonra, sürükle bırak ile görselimizi oluşturuyoruz. bu aşamada, buton yerine temin ettiğimiz png uzantılı dosyaları (öncelikle sağ üst menüden "Image Manager" ile görsellerinizi projenize eklemelisiniz) görüntüleyebilmek için "ImageView" objesi kullandım. Ayrıca tüm activity'i kaplayan 2 ana "Linear" objesini kullanarak 2 farklı ekranı tek activity altında oluşturuyorum. Ekranlar arası geçişler için "weight" özelliğini kullanıyor o...

Mobil uygulama mobilde geliştirilir mi?

Farklı bir branştan, özellikle de microsoft teknolojileri ve alt yapıları ile haşır neşir olan bir yazılımcı olarak, bir kaç gündür incelemekte olduğum 2 uygulamadan ve benim gibi android geliştirme girişimlerinde bulunmak isteyen kişiler için yaptıklarımdan bahsetmek istiyorum. Öncelikle profili net çizmek adına durumu özetleyeyim, .NET ortamında C# projeleri geliştirmeye alışık, ihtiyaçlar dolayısıyla az buçuk java ve jsp işleriyle uğraşmış biriyim. Bu durumda android geliştirme merakınız var ise araştırmaya başladığınızda karşınıza Android development studio ve eclipse benzeri alternatifler geliyor, xamarin veya diğer muadillerinide görüyor ve okuyorsunuz, Ancak bu noktada söylemeliyimki tüm bu se...