Ana içeriğe atla

Kayıtlar

Yazilim.Dusunceler etiketine sahip yayınlar gösteriliyor

E-fatura ve HSM

E-fatura projelerinde mali mühür için iki yöntem kullanılıyor. 1. Nitelikli Elektronik Sertifika (NES) benzeri kartlar ya da USB donanımları 2. HSM (Hardware Security Module) Ne zaman HSM kullanılabilir? Saniyede 2-5 adet fatura kesiliyorsa ya da dağıtık şube yapısı varsa ve bu şubelerden de fatura kesiliyorsa ya da şirketi temsil edecek kartlardan bir ya da birden fazla kişiye mali mühür verilmesi istenmiyorsa bu durumlarda HSM rahatlık sağlayabiliyor. Ancak HSM standartlarında satın alma yaparken birçok noktaya dikkat etmek gerekiyor. Donanım e-fatura ve yasal zorunluluk nedeniyle trend topic olmuş durumda bu nedenle maliyetleri de inanılmaz derecede arttı.  Birçok firma, fatura sayısından veya kullanım kolaylığından fedakarlık yaparak HSM cihazı almaktan vazgeçebiliyor.  Eğer üretici ya da dağıtı firmalar daha uygun ve ekonomik fiyatlarlar belirleseler birçok firma çok daha fazla sayıda faturayı farklı bölgelerden güvenli bir şekilde kesebilecek.

Üst (Meta) modeli olan kavramları seviyorum; DocHuman ve RDL (Report Definition Language)

Dochuman süreç yönetim motoru bir veri kaynağını çok farklı biçimlere dönüştürebilir durumda. Bu özellik ile Dochuman veri modeli, RDL gösterim modeline dönüşebiliyor. Modeller arası dönüşümde, geliştirdiğimiz alt sistemler, veriyi bire-bir oranda dönüştürebilme yeteneğinde. Bir rapor var ve bu rapora ilişkin veri girişi yapılacaksa, rapor verileri expression olarak da ifade edilmiyosa geri dönüşüm kısa sürede mümkün olabilir. RDL içinde parametre, sabit değer, veri kaynaklı değer ve görsellerin özelleştirilmesi yeteneği DocHuman form tasarım sistemiyle birebir örtüşmektedir. Bir RDL barkod değeri ile DocHuman barkod değeri binlerce farklı satırlar sonucunda ortaya çıksa da; birbilerini anlayabilen iki sistemin uzlaşması noktasında işler daha kolaylaşacaktır. Bu tür gelişmiş özelliklere rağmen yazılıma her şeyi yapabilir misin diye sorulsa, "derlenmiş ve işlenmeye hazır halimde çok sıfır" var diyebilir.

Ürün sevdirme, pekiştirme, özendirme ve kullandırma adımları

Fırsat ve risk çözümlemesi yapılmalı Yazılım geliştirme, sürümlendirme, satış, uyarlama, destek ve bakım için iş modelleri geliştirilmeli Satış kanal etkinliğine ilişkin değerlerin tanımlanmalı ve izlenmeli Pazar ve rekabet çözümlemesi sonuçlarının stratejik toplantılarda paylaşım  Fiyat, iskonto, hak ediş, uyarlama ve bakım bedellerine ilişkin liste hazırlığı Marka bilinirliği ve mono-brand alt işlevlerinin tamamlanması Bütünleşik tedarik otomasyonlarına bağlantı noktalarının belirginleştirilmesi

Ters mühendislik ile Delphi --> Java dönüşümü

Delphi binary ortam dosyalarını birinci ayrıştırıcı üzerine gönderdiğimde N -->1 dönüşümü sıkıntı yarattı ancak daha sonra koda davranışsal bir betimleyici yerine üst bir betimleyici ekleme gereksinimi duydum.Sonuçta tasarım client-server, orta katman yok, aradaki veritabanı iletişimleri de tamamen ADO üzerinde yapılıyor. Buradan gelecek TDS (Tabular Data Stream) paketlerini çözmek için JDBC+ODBC trafiklerini test ortamında aynı tablolar için birden fazla tekrarladım ve protokol şifresiz olduğu için header ve tablo verilerine erişebildim. UI katmanı, DFM dönüşümlerinde ve diğer ayrıştırıcı içinde tamamlandı ancak ActiveX dönüşümlerini şimdilik gözardı ederek yoluma devam edeceğim... Hissediyorum, çok az kaldı... Final ürünü daha sonra Facebook ile bütünleştirmek de güzel olacak. Arkadaşına dll+exe+tlb gönder, o da hemen J2EE+NodeJS sonucunu yorumlasın. Bu yazıda birkaç satır eksik kaldı onları yazımı tamamladıktan sonra sildim cunku urun tekrarlanabilir oluyordu şimdi i...

WF 4.0 : metadata.AddImplementationChild

Bir iş akışı tasarımı içinde kaderimiz ilerliyor. Bir üst etkinlik ( activity ) nesnesi bir alt ( child) nesneyi kendine bağlamış ve bir şekilde scheduleActivity ile çalıştırma zamanını planlamış durumda. Dış ortamdan veri okuma gereksinimi olsa, private durumuna düşebilir ve okuma ihlali ile karşı karşıya kalabiliriz. Peki, üst nesne, bizi kendine bağladıysa, alt nesneyi addImplementationChild olarak üst veri yönetim merkezine ilettiyse bizim yapabilecek ya da durumu zorlayacak bir çözümümüz var mı? Bence olabilir, iş akış kaderinde olasılıklar sınırsız... Bir kaçını denemek ve tasarlanmış akışı değiştirmek bizim elimizde... Yapmamız gereken şey; zemine extension yazmak ve yeri geldiğinde context bağımsız onunla konuşmak. Belki o zaman yanımıza birkaç runtimeArgument nesnesi alırız ve onları da üst veri ( meta data)  yönetimi   ile değerleştirip + anlamsalaştırabililiriz. Herşey yolunda giderse, bu workflow sorunsuz devam eder ve bizi onComplete kodları karşılar ancak b...

Windows 64 bit

Bir sistem düşünün, ekran katmanı 64 bit, iş katmanı 64 bit, veri katmanı 64 bit, iş katmanındaki tüm alt servisler 64 bit, alt servislerin planladığı thread nesneleri ve yönetim işleri 64 bit, tüm bağlı olan dll/assembly dosyaları 64 bit Buraya kadar gelebiliyorsanız, süper! Else Re-Design

Context Aware Search (CAS)

Bir kuruma ilişkin dili çıkar, ontoloji dünyasında yaygın olarak kullanılan araçlarla modelle, gerçek bireyleri/örnekleri ( individual)  ekle, çıkarsama motoru ile güçlendir, bir düzenleyici ile sorgula,  çizge tasasarım araçları ile güçlendir, karar verme / kırılma noktalarını belirle ve süreci sonlandır. Sonuç; İyi bir kişisel sanal yardımcı ve sonrasında yazmayı sevdirecek bir teknoloji.

Tasarım, Tasarım Gereksinimleri ve Sonuç

Yine bir gün arkadaşlarla tasarım aracı tasarlıyoruz. Evet tasarım aracı tasarlamak gerçekten tasarım anlamında tasarladıkça zorlaşan ancak bir o kadar da üst tasarım desenleriyle kolaylaşan bir süreç. Peki bu sürece girenlere, kimler ya da hangi unsurlar yardımcı olur? Bu sorunun da cevabı çok belirgin değil! Çünkü üst modeller, dönüşümler, ergonomi, en az 8 yıl deneyim, geçmiş prototip deneyimleri, müşteri geri bildirimleri, şikayetler, tebrikler, övgüler, arzular, olsa iyi olurlar ve sonra onlarca ürün çıktısı... Daha sonra tekrar tasarıma niyet, tekrar tasarım girdileri, gözden geçirilen süreçler ve tekrar yeni bir ürün çıkar. Bu durumda, ürün kendini gösterir, ilk hali ile başarıyı  yukarıya çeker, rekabeti zorlar ve sonra da .... DocHuman: (Biraz insan, biraz belge, biraz süreç) Form + İş akış tasarımı + Çoklu platform desteği http://www.youtube.com/watch?v=2x3KZn9TDno

Bir reklam dönüşümü: Moova-Netle

" kodlarımızı bi görseniz, çoçuklarımız gibiler doğduklarından beri beraberiz ne ifadeler ne döngüler var hep takipteyiz bilgisayarınızda kendi kodlarınızı geliştirdiğinizi düşünün işte bizde kodlarımızı o özenle geliştiriyor ve teknolojiyle besliyoruz haliyle kullanımı saf ve kullanıcı dostu oluyor Netle Yazılım, iyi olması çok doğal ! " Teşekkürler Moova reklam metni.

Lazarus : Free Pascal

Derleme motorunda birkaç değişik ve sonrasında Android tabanlı uygulamalar. DOS, Mavi ekran, arkada TSR olarak çalışan bir veritabanı ve bir de Android uyumlu telefon... Sonuç, güzel bir çalışma olacak....

Donanım ve Yazılım

"Kemiklerimde bir sızı var!" diye başlayan bir cümle sonrasında sağlıktan söz etmek doğru olmaz. Bu nedenle "hard disk yazma anında ilginç sesler çıkarıyor!"  cümlesi de, paralel olarak yazılımın başarısı ne olursa olsun, sonunda etkin olmayan bir sonuç ortaya çıkaracağı gerçeğini ortaya koyar. Yazılım tasarımında hiç bir yerde olmayan soyutlama ( abstraction) özelliği olsa da yazılım en sonunda çalışacağı bir donanım noktasına gelir ve orayı geçemez, kalır! Şimdi, ürün tasarımlarını biz üst model destekli halde yapalım, soyutlayalım, veri katmanını değişik teknolojileri kullanarak kuvvetli tipler haline getirelim, katmanlar arası geçiş ya da sunucular arası taşıyalım  ama mutlaka donanımı da göz önününe alalım. Eğer yazılım tasarımı her ne kadar donanım ile içsellik yaşarsa sonuç o kadar başarılı olacaktır. Yeni ürün hayatı ve yeni süreç; Donanım ve yazılım mutlaka birbirlerini tamamlamalı İnsan davranışlarına daha yakın ya da çok iyi taklit eden donanım ...

Yine bir gün yazıyorum....

ve karşımda o yıllarda çözümü imkansız ve olsa bizi yukarılara taşıyacak bir gereksinim ile karşı karşıya kaldım. Kalemi elime aldım, yazdım, çizdim, bozdum, tasarladım, nefes aldım, sabır gösterdim ve olmadı. 2 sene ısrar ve sonrasında tekrar sabır, sabır ve sabır... Sonra gereksinim çözüldü, oldu, sevindim, üzüldüm, derledim, test ettim, genişlettim, refactor ile etkinleştirdim, test kodlarını gözden geçirdim, belgeledim, kullanımını video ortamına sakladım, yayınladım, paylaştım, sosyalleştirdim, eğitimlere katıldım, eğittim, fanatikler oldu, siteleri açıldı, sevinildi hep birlikte, hüzünlerle doldu zaman çözümsüzlüklerde ve tabii ki süreç sonlandı, olaylar arşivlendi, anılara olarak anlatım başladı... İşte özel bir  sürecin ve anının ortak paydası: Tasarım, Ürün, Kullanım, Alışkanlık ve Yeni Sürüm

Domain Specific Language (DSL)

Yakın bir zamanda visual studio 2008 ile DSL geliştirme örneğini açıklayacağım.... İlk DSL örneğim, bir şirketin organizasyon şemasını modellemeye yönelik olacak.

.Net Workflow içinde özelleştirilmiş activity nesnelerinin kullanılması

.Net Workflow (WF) sisteminde özelleştirilmiş ( custom activity) nesnelerinin kullanılması ile tasarımda kullanılan kod miktarı azaltılabilir ve wf modeli daha anlaşılır hale getirilebilir. Özelleştirilmiş nesneler, ilgili çalışma alanı hakkında daha fazla bilgi verebilir. Örnek çalışma alanı KKP ( Kurumsal Kaynak Planlama) ise, bu alanda yazılacak bir çok özel nesne iş akış mantıklarını daha anlaşılır hale getirir ve tekrar kullanılabilirliği arttırabilir. Özelleştirilmiş nesnelerin özelliklerini ( property) kulllanarak, object browser üzerinden kolayca kod tasarımları yapılabilir. Model tabanlı olmak, iş akışlarını açık standartlar üzerinde geliştirmek ve tasarımcıların sorun üzerinde odaklanmalarını sağlamak, kısaca, bu tür yaklaşımlarla geliştirme dilindeki soyutlanmayı arttırmak yakın gelecekte tasarımcıları daha farklı yazılım geliştirme yöntemlerine zorlayacaktır.

Model olmak istiyorum!

Son günlerde yazılım dünyasında sanallaştırma ve soyutlaştırma kavramları daha üst noktalara gelmeye başladı. Bu noktada, artık nesne, sınıf ve/veya mimari kavramları konuşmak yerine belki de sorunun(problemin, ihtiyacın) modellenmesini konuşmak daha doğru olacaktır. Model tabanlı sorun çözümünde, sorunun gerçek noktalarını konuşmak ve akıllı araçlarla işlem dünyasına çevirmek belki de daha kolay olacaktır. Peki model olmak neden önemli? Model olmak, tekrar kullanmak demektir, platform bağımsızlı demektir ve tabi ki OCL gibi teknolojileri kullanmakla belkide işlem bağımsızlığı demektir. Sorunlara Model tabanlı çözüm sağlanmak isteniyorsa; PIM, CIM, MOF, MDD, MDA kavramlarının biraz detylı incelenmesi gerekiyor... Gerçek yaşam uzayında, dünyamızda, insanları yazılım geliştirme dillerinde sınıf ( class ) olarak temsil ediyorduk şimdi ise model olarak temsil etmek belki de daha doğru olacaktır. Doğum, kader - yaşam ve ölüm sonsuz döngüsünde, insan sınıflarının özelliklerini tanımlayan, ni...

Uzman sistemlerde şeytanın yeri...

"Şeytan Yemini" ve "Olasılıksız" kitaplarından sonra aklıma takılan birkaç cümleyi yazmak istedim... Araf yolcularının yemini ve hayata geri dönüş durumları Laplace şeytanına ait: HerAn, şimdi, gelecek, tüm sonsuz olasılıklar ve geleceğin görünürlüğü. Hayata geri dönüş yolculukları, yapılan yeminler, geleceğin görünmesi, ölçeklenmesi, sonsuz alt yaşam parçalarının olasılık dağılımına göre belirlenmesi, kuantum fiziğinin yeri geldiğinde yazı/tura ile karşılaştırılması ve kuarkların tespiti... Eminim bu yazarların "Uzman sistemlerle" ilgili çalışmaları olsaydı kitaplar çok daha farklı sonlarla karşımıza çıkabilirdi.

Banka ATM yazılımları neden sık güncellenmiyor?

Artık birçok yazılım kişiselleştirme konusunda ilerleme kaydediyor ancak banka yazılımları sadece para çekmek isteyen kartın sahibi hakkında ekrana basit bir "isim" gösteriyor. Bu durum bankadan para çeken insanlar için zor bir durum oluşturuyor. Banka yazılımlarını acil güncellemek isteyenlere birkaç öneride bulunmak istiyorum. Kart sahibinin yaş bilgisine göre menüler özelleştirilsin. Emeklilik yaşlarında olanlar için daha basit ve büyük yazılı menüler, gençler için ise daha fazla fonksiyon ve işlem yeteneğinin olmasında fayda var. Son çekilen para miktarının, yerin ve komisyon bilgilerinin gösterilmesi Çekilen para miktarlarının gruplandırılması ya da isimlendirilmesi. Aylık veya haftalık çekilen para miktarları farklı olabilir bu nedenle haftalık olan için "1" kısayolu, aylık için "2" kısayolu tanımlanabilir ve böyle her seferde tutar yazmak zorunda kalınmaz. ATM yazılımlarına bölge ya da yerel alan kodu verilmeli. Bu tanımlama ile yazılımlar gereksiz ...

ASP.Net için ekran nesnesi tasarlama

WEB formlarında kullanmak için özel ( custom) nesne tasarlamak, sıradan bir nesne türetme işinden farklılık göstermektedir. .Net ortamında yaygın olarak kullanılan attribute sınıflarının tam olarak ne işe yaradığını ve ne zaman kullanıldığını basit örneklerle denemek ve sonrasında gerçek ürünü geliştirmek verimli bir ürün geliştirme yöntemi olacaktır. Özel bir nesne tasarımına başlarken önemli olacağını düşündüğüm birkaç satır bilgi; ParseChildren(True) : Geliştirilecek nesnede, tag' ler arasında inner bilgilerinin olacağını bildirmektedir. Bu attribute kullanılmazsa compiler tag'ler içinde yer alan özellik ( property) değerlerini göz ardı edecektir. NonVisualControl : Geliştirilen nesnenin yardımcı bir nesne olduğunu, form üzerinde saklanabileceğini ancak görünmemesi gerektiğini bildirmektedir. ( örnek: SQLDataSource nesnesi) Designer : Bu attribute, tasarım ( design) aşamasında nesneyi hangi sınıfın yöneteceğini göstermektedir. Nesneyi yöneten nesneler ile, özellikler ekl...

Sitem

.Net/C# ortamında, Delphi'de yerlan TTable sınıfının olmaması büyük bir eksiklik. Her tasarımcının bir index'i, tablosu ve buna bağlı olarak istediği navigation işlemlerine ihtiyacı olabilir. Herşey memory'e okunup, daha sonra dataset nesneleri ile çözümlenemez.... Soru: İçinde 1.000.000 kayıt olan bir tabloda, isim sıralı sondan 25 kayıt nasıl getirilecek? ( her tablo için stored proc yazmak ve paging yapmayı yeterli bir çözüm saymıyoruz...) Çözüm: Bu tür bir ihtiyacı karşılamak için sanırım kendi tasarımlarımızı yapmak gerekiyor... TableSQLBuilder, test kodlarını yazmaya başladım...