Friday, May 25, 2012

Enfotek Destek Merkezi İkinci Beta Yayını

Bir kaç günlük test kullanımından sonra bazı yenilikler ile EDM Beta 1.0.2 yayınlandı.
  1. Üstte yeni araç çubuğu ile komutlara kolay erişim.
  2. "Son Revizyon Tarihi" kaydı.
  3. Günlük istek listesi (yapılmamış sayısı azalan sıralı)
  4. Haftalık istek listesi (yapılmamış sayısı azalan sıralı)
  5. Toplam istek listesi (yapılmamış sayısı azalan sıralı)
  6. İstenen resim formatında büyüklük sınırlaması olmadan resim yükleme.
  7. Resim üstüne yazma, görüntüleme, silme
  8. Görüntü üzerinde navigasyon. Çerçeveye sığdırılmış oransal görüntü dialogu.
Genel görünüm:

Yüklenen resimlerin görüntülenmesi:

Geliştirme yöntemleri konusunda giderek daha etkili metotlar kullanarak hızdan ödün vermeden zengin bir arayüz deneyimi sunmayı planlıyoruz.

Thursday, May 24, 2012

EDS5 ile Daha Hızlı Sorgulama

Yıllardır EDS kullanan müşterilerimizde, büyüyen veri bankalarının doğal bir sonucu olarak, sorgulamaları yavaşlamaktadır. EDS dönemsel aktarım yapmamaktadır, üretim mantığında senelik veri ile çalışmak çok uygun düşmez. Gerek ürün bilgilerinin yıllarca kullanılabilmesi, gerekse rezervasyon gibi süreklilik arzeden ilişkiler sayesinde bir devri kapatıp, veriyi silmek ve küçültmek mümkün olmuyor.

İşin doğrusu 2004 yılından beri EDS4 ile çalışan müşterilerimiz içinde bugün 8 -10 GB boyutlara gelen veritabanları mevcut. Bu durum pek değişecek gibi gözükmüyor, bu nedenle başka bir yaklaşım izleyerek sorgulamalardaki yükü azaltmak gerekiyor.

EDS5 ile beraber sorgulamanın hızlanması için hem alt düzeyde hem de programsal olarak etkili geliştirmeler yapıyoruz.

  1. Veritabanı sıkıştırma. Veritabanından veri silinmesine karşın fiziksel büyüklüğü ve veri dağınıklığı giderek artar ve yavaşlamaya neden olur. MsSQL yedekleme sırasında yapılacak SHRINK işlemi bu sorunu giderir. 
  2. Indeks İhtiyacı Tespit ve Oluşturma. Hazırladığımız yardımcı bir program sayesinde, her firmanın kullanımına göre değişen tablo ve saha bazında indeksleme otomatik olarak yapılmaktadır.
  3. Yeniden Indeks Oluşturma. Bazen görünürde indeks olmasına karşın, bu indekslerin de fiziksel bozulmaları nedeni ile görev yapamaz hale gelmektedir. Indeksleri taranıp yeniden oluşturularak, hızlandırılır, kitlenmelere ve Dead Lock tarzı hatalara büyük oranda engel olunur.
Programsal olarak yapılabilecekler ise daha zorlu bir süreç gerektiriyor. 
  1. ERM platformu bazında dataset'te Dinamik SQL optimizasyonu (DSO) konusun bir kaç yıl önce sadece hayallerimizi süslüyordu. Bugün yaklaşık bir yıllık geliştirmenin sonucunda dinamik SQL özelliği EDS5'e kazandırıldı. Kullanıcı ekranda saha ayarlarını yaptığında aslında yüzlerce sahayı kapatır. Bu sahalar görünmese dahi arka planda SQL cümlesi sabit olduğunda sorgulama süresini ciddi bir şekilde yavaşlatan bir işyükü (işlemci, bellek, ağ hızı) getirmektedir. Halbuki DSO özelliği ile kullanıcının her saha seçiminde gelmesi gereken sahalar ve sahaları oluşturan join ve fonksiyonlar taranıyor ve gereksiz SQL bölümleri tamamen çıkarılarak, sorgu hafifletiliyor. Fark inanılmaz. Sipariş Seçim sayfası gibi ana sayfalarda onlarca kat hızlanma sağlandığını gördük.
  2. Bazen zorunlu olarak bir çok subquery içeren sorguları listelemek zorunda kalıyoruz. Buna en uygun örnek Satınalma Kontrol sayfasıdır. Bu sayfada ondan fazla ham madde hareket ile ilişkili yüz binlerce kaydı tarayan sahalar mevcuttur. Bu sahaları fonksiyon olarak sorguya eklediğinizde en iyi sistemlerde bile dakikalara varan beklemelere neden olur. Buradaki çözüm yaklaşımımız ise bu sahaları fiziksel veri haline dönüştürmek ve özel bir trigger tekniği ile kayıt bazında güncellemeyi tetiklemektir. Bu sayede yüksek hesaplama gerektiren tablolardan anlık sorgulama yapılması mümkün olmaktadır.
  3. Geciktirilmiş güncelleme (Delayed Scroll, Delayed Details) tekniğini de ilişkili tabloların bulunduğu ekranlarda kullanıyoruz. EDS5 'den önce çok az kullandığımız bu teknik sayesinde hızlı kayıt geçişleri sağlanıyor. 200 ms gibi bir tepki süresi ile alt kayıtlar gecikmeli olarak güncelleniyor. Böylece gereksiz yüzlerce sorgulama zamanından tasarruf ediliyor, Ekran açılışları ve kayıtlar arası geçiş (cursor scroll) daha hızlı tepki veriyor, hafifliyor.
  4. Gereksiz sorgu ve kontrolleri mümkün olduğu kadar koddan temizledik.
Arka planda daha pek çok küçük iyileştirme yapılmaya devam ediyor. Ana konular ise yukarıda özetlendiği gibi ciddi performans farkları yaratıyor. Uygulama için hayati önem taşıyor, çünkü EDS müşterimizin hayatının bir parçası. Ne kadar hızlı ve kolay kullanımlı olursa sonuçları da o oranda memnuniyet verici oluyor.

Bu önlemler sayesinde EDS5 açılış süreleri hızlandı ve kullanımı oldukça keyifli bir hale geldi.


Wednesday, May 23, 2012

Enfotek Destek Merkezi

Enfotek Destek Merkezi uygulaması deneme yayınına başladı. Bu ikinci web uygulaması, içerik arama ve kategorize (hata, istek, sorun) giriş imkanı ile biraz daha kapsamlı bir proje.
Bir web uygulaması olmasının ve yeni bir teknoloji denemesinin yanısıra, yıllardır artan müşteri sayısı ve gelişen kadromuzun süreç yönetimi için de temel bir araç olacaktır. Eposta ile isteklerin alınması büyük bir bilgi kirliliğini de beraber getiriyor. Tekrar postalar, eksik açıklamalar, hatalı kişilerin bilgilendirilmesi, zaman alıcı ve bazen de cevaplamayı imkansız hale getirmesine neden oluyor.


İş Takip projesi nispeten intraweb kıvamında maksimum 10 kullanıcılı olacakken, Destek Merkezi projesi 100 kullanıcıya kadar çıkabilecek ve çok daha kapsamlı içeriğe sahip.

Monday, May 21, 2012

Tekstil Mühendisliği Oda Üyeliğim Hayırlı Olsun

Operasyon ağrıları azaldıkça, bir kaç saatliğine de olsa dışarı çıkmaya başlıyorum. Bir vesile ile bugün de çıktım ve TMMOB Tekstil Mühendisleri Odası Müdürü arkadaşım Ahmet Dinçerin yanına uğradım. Kendisi ile güzel bir sohbetin ardından, hala odaya neden üye olmadığımı sordum kendime. TMO'nun kolaylaştırıcı üyelik fırsatını da öğrenince hemen üyelik başvurusunda bulundum.
Meslek odaları  bütçeleri ile sınırlı bir organizasyon kurabiliyorlar. TMO olması gereken üye sayısının sadece beşte biri üye ve bunların da bir kısmı aidat ödemesi yapabiliyorlar. Bu durum bizim iş son raddeye gelmeden görevlerimizi yapmamamıza güzel bir örnek oluşturuyor.
Belki en geç üye olan benim bu konuda ahlak dersi vermem doğru olmaz. Ancak doğrusu üye olmasam da meslektaşlarım ve mesleğim adına faydalı hizmetler vermeye çalışmış biri olmam bir nebze olsun vicdanımı rahatlatıyor. Oda faaliyetlerini yeterince bilmemem veya mesleki anlamda katkılarını görememem nedeni ile üyeliği gerekli görmedim hiç. Ama bu doğru bir hareket değil. Önce meslektaşlar kurumlarına destek olmalı ardından bir fayda beklemeliler. Çok geç de olsa durumun farkına vardım.
Aslında konu genç mühendis arkadaşlarla sohbet toplantıları düzenlemek isteğimden çıktı. Yılların birikimi, çok az mühendise nasip olmuş ülke çapında işletme gözlem ve ilişkileri bu konuda paylaşabileceğim çok şey olduğunu düşündürdü. Eğer imkan olursa, genç profesyonel arkadaşlarıma katkıda bulunmaktan mutluluk duyacağım.

Monday, May 07, 2012

Hızlı Web Uygulaması


Web tabanlı yazılıma çok kısa bir süre önce başladım.
DelphiXE2 > UniGui > ExtPascal > ExtJs > JavaScript köprüsü ile desktoptan webe yazılım geliştirme imkanı buldum.

Enfotek içinde kullanılmak üzere geliştirdiğim İş Takip web uygulamasını gerçek hayat kullanımına IExplorer9 ile başlamama rağmen, sık sık duraksayarak çalışması üzerine Chrome18'de eşzamanlı testler yaptım. Görünen odur ki Chrome son sürümü sayfa açılışlarında ve liste güncellemelerinde belirgin bir şekilde hızlı..

Son haberlere göre Chrome 19 V8 akıllı Java script derleyicisi ile %25 hızlanacakmış. Bu gayet iyi bir haber.