Top Coder SRM 625 Div2 Round 1 problemi için çözümüm AddMultiply.java dosyasında. Daha iyi bir çözüm ise AddMultiplyBest.java dosyasında :
TopCoder üzerinden çözümün detayına bakabilirsiniz: http://community.topcoder.com/stat?c=problem_solution&rm=322742&rd=15858&pm=13231&cr=20029384
TOPCODER’A KATIL
20 Haziran 2014 Cuma
19 Haziran 2014 Perşembe
TopCoder ile Programlama Yarışmalarına Katıl!
Belki duymuşsunuzdur TopCoder diye bir platform var.
Tutorial vs. bir çok özellikleri olsa da, en belirgin özelliği online
programlama yarışmalarına katılabilmeyi sağlaması.
Ben arada yarışmalarına katılıyorum zevkli oluyor. 2 hafta
da bir Single Round Match (SRM) denilen yarışmalar düzenleniyor. Programcılık ve algoritma yeteneğini geliştirmek ve kendini sınamak isteyenlere şiddetle tavsiye edilir.
SRM’lere belirtilen zamanda Top Coder Arena’ya giriş yaparak
katılabiliyorsunuz. Arena’ya istediğiniz zaman girip alıştırma da yapabiliyorsunuz.
Bunun dışında da yarışmalar düzenleniyor.
Belki bir SRM’e hep beraber katılıp skorlarımızı
yarıştırırız J Java,
C, C# kullanılabiliyor. Aşağıdaki linkten üye olabilirsiniz.
(Gelecek Single Round Match 28’inde http://www.topcoder.com/tc?d1=calendar&d2=thisMonth&module=Static
)
Topcoder hakkındaki bazı yazılar:
- http://bildirgec.org/yazi/topcoder-zekasina-ve-kod-yazma/
- https://eksisozluk.com/topcoder--563979
- http://www.iyte.net/showthread.php?t=5727
5 Mayıs 2014 Pazartesi
Eclipse Plugin'leri : Kod Kalitesi Araçları
CodePro AnalytiX
By Google. Comprehensive automated software code quality and security analysis toolkit CodePro AnalytiX to automatically improve software quality, reliability, and maintainability in developer applications.https://developers.google.com/java-dev-tools/download-codepro?csw=1
Metrics plugin
CK metricshttp://metrics2.sourceforge.net/
SonarQube
SonarQube is an open source quality management platform, dedicated to continuously analyze and measure source code qualityhttp://docs.codehaus.org/display/SONAR/Installing+SonarQube+in+Eclipse
Bu konu hakkındaki aşağıdaki makaleyi de inceleyebilirsiniz:
Comparing Software Metrics Tools
12 Şubat 2014 Çarşamba
Tasarım Kalıpları nedir?
Tasarım kalıpları, yazılım tasarımında sürekli karşılaşılan genel sorunlara esnek, yeniden kullanılabilir, başarılı çözümler getiren bir takım hazır kalıplardır. Hazır olarak kodun içine konulup çalışabilen, bitmiş tasarımlar değildir. Çeşitli durumlarda sorunların nasıl giderileceğini açıklayan, bunlara yol gösteren açıklamalardır. Nesneye dayalı programlamada, tasarım desenleri sınıf ve nesneler arasındaki ilişkilerin en iyi şekilde nasıl olmaları gerektiğini açıklayan yöntemlerdir. Algoritmalar, tasarım deseni değildir. Çünkü bunlar hesaplama sorunlarına çözüm getirirler, oysaki tasarım desenleri yazılım tasarımı sorunlarıyla ilgilenir. [1]
Tasarım kalıpları kısaca...
GoF (Gang of Four) Tasarım Kalıpları
Tasarım kalıpları kısaca...
- Yazılım tasarımında karşılaşılan belirli sorunların yalın ve güzel çözümlerinin tarifi
- Deneyimin yazılı biçime gelmiş hali
- Ortak bir sözlük
- Somut bir gerçekleme ya da soyut bir tarif
Bir tasarım kalıbının ana bileşenleri
- İsim
- Sorun : Kalıbın çözdüğü sorunun tarifi
- Çözüm : Tasarımın bileşenleri, bileşenlerin ilişkileri, sorumlulukları
- Tartışma/Sonuçlar : Güçlü ve zayıf yönleri, başka kalıplar ile kullanımı vs..
GoF (Gang of Four) Tasarım Kalıpları
- Oluşumsal (Creational) : Nesnelerin oluşturulması, temsili ve ilişkilendirilmelerindeki bağımlılığı azaltmaya yönelik kalıplar
- Biçimsel (Structural) : Sınıflar ve nesnelerin bir araya getirilerek daha büyük yapılar elde edilmesine yönelik kalıplar
- Davranışsal (Behavioral) : Sorumlulukların nesnelere dağıtılması ve algoritma seçimine yönelik kalıplar
[1] Nedir Tasarım Desenleri?, 12/2/2014, http://www.tasarimdesenleri.com/
24 Ocak 2014 Cuma
Decorator Tasarım Kalıbı
Decorator Tasarım Kalıbı ve Kullanımı
Burada Decorator
tasarım kalıbınının kullanımına yönelik örnek bir çalışma
yapılmıştır. Öncelikle örnek bir uygulama verilmiş ve bu örnek
uygulamadaki yetersizlikler belirtilerek, daha ideal bir tasarımın
Decorator tasarım kalıbı kullanarak nasıl yapılabileceği
anlatılmıştır.
Bu örnek hazırlanırken “Head First Design Patterns” kitabında verilen içecek örneğinden esinlenilmiştir. [1]
Bu örnek hazırlanırken “Head First Design Patterns” kitabında verilen içecek örneğinden esinlenilmiştir. [1]
30 Aralık 2013 Pazartesi
Hibernate Detached Criteria
Aşağıdaki gibi bir detached criteria sorgusu ile hibernate'de subquery oluşturmak mümkün.
Hibernate tarafından aşağıdakine benzer bir SQL oluşturulacaktır:
Aşağıdaki bağlantılardan daha ayrıntılı bilgi alınabilir:
http://stackoverflow.com/questions/300491/how-to-get-distinct-results-in-hibernate-with-joins-and-row-based-limiting-pagi http://stackoverflow.com/questions/13075390/hibernate-subquery-detachedcriteria
http://stackoverflow.com/questions/3738555/hibernate-criteria-subquery
http://www.roseindia.net/hibernate/hibernate4/hibernateCriteriaDetachedSubQueries.shtml
http://www.coderanch.com/t/415182/ORM/databases/Write-Query-Hibernate
15 Ağustos 2013 Perşembe
Yazılım Kalitesi ve Test Teknikleri Sunumu
Yıldız Teknik Üniversitesinde aldığım "Yazılım Kalitesi ve Test Teknikleri" dersinde öğrendiklerimi paylaştığım eğitim sunumunu paylaşmak istedim.
Eğitim kapsamında, yazılım kalitesi, yazılım süreç iyileştirme modelleri, test teknikleri ve yardımcı test ve kalite araçları gibi konulara değinilmiştir.
Eğitim kapsamında, yazılım kalitesi, yazılım süreç iyileştirme modelleri, test teknikleri ve yardımcı test ve kalite araçları gibi konulara değinilmiştir.
Etiketler:
Test,
Yazılım Kalitesi,
YAZILIM MÜHENDİSLİĞİ
5 Temmuz 2013 Cuma
İleri Algoritma Analizi Sunumu
Çalıştığım şirkette verdiğim "İleri Algortima Analizi" konulu sunumumu paylaşmak istedim. Sunum kapsamında, karmaşıklık analizi, Greedy Algoritmaları, Dinamik Programlama, Çizge Algoritmaları gibi konulara değinilmiştir.
21 Haziran 2013 Cuma
SAP BI Hata: Connection failed. The server has reached the maximum number of simultaneous connections. (RWI 00239)
Yeni rapor oluşturmak için "Document List- New- Web
Intelligence" girince söz konusu hatanın çıkması üzerine bu sorunu incelemeye başladık.
Bu hata hakkındaki bulgularım şöyle:
İlgili Hata Mesajı: Connection failed. The server has reached the maximum number of simultaneous connections. (RWI 00239)
Hata Açıklaması: Bu hata bir sunucuya belirtilen sayıdan fazla bağlantı oluşturulduğunda oluyor. Yani basit olarak anlatmak gerekirse, izin verilen bağlantı 5 ise ve 5 ayrı kullanıcı raporlama sunucusuna bağlıysa, gelen 6. kullanıcı bu hatayı alacaktır. Ayrıca browserda birden fazla tab açıp farklı raporlar çalıştırarak bir kullanıcı sunucuya daha fazla bağlantı oluşturabilir. Buna ek olarak schedule edilmiş raporlar da bu sayıya ekleniyor.
İzin verilen maksimum bağlantı sayısı bir parametre ile belirlenmekte. Aslında bu sunucuya aşırı yük oluşmasını engellemek için koyulmuş bir önlem. BI'ı ilk kullanmaya başladığımızda bu parametre 50'ydi. Zamanla kullanım oranı artınca bu parametreyi 300'e çıkarmıştık. Uzun zamandır da bu sayı bizim için yeterli gelmekteydi. Ancak son zamanlarda raporlama sisteminin şirket içinde kullanımının daha da artması ve sistemin müşterilere de açılmaya başlaması ile 300 sayısının, çok yoğun kullanım anlarında yetersiz kalıyor olabilir.
Önerilen Çözüm Yolları:
1-) İzin verilen maksimum bağlantı sayısını arttırmak (maximum_connections )
2-) Cluster kullanımı ile yükü birden fazla sunucuya dağıtmak. Ayrıca CPU Core başına bir Webi Rpt Server oluşturmak.
Bu hata ile ilgili daha ayrıntılı bilgiler için aşağıdaki linkler incelenebilir:
help.sap.com ...
businessobjectstips.com ...
90kts.com ...
wiki.sdn.sap.com ...
SAP Note 1
bobi.blog
12 Haziran 2013 Çarşamba
Yazılım Proje Yönetimi Hakkında
Çalıştığım firmada verdiğim Yazılım Proje Yönetimi eğitiminin sunumu:
6 Haziran 2013 Perşembe
Yazılımcının Suçu ne? - Yaşar Safkan
Yaşar Safkan’ın Özgür Yazılım Günleri 2013′teki konuşması
Kaynak: http://www.safkanyazilim.com/yasar-safkanin-ozgur-yazilim-gunleri-2013teki-konusmasi/
İlgili Yazılar:
1-) http://www.teknikodu.com/yazilimcinin-sucu-ne/
2-) http://www.teknikodu.com/yazilimcinin-sucu-ne-buraya-nasil-geldik/
3-) http://www.teknikodu.com/adam-gun-hangi-adam-hangi-gun/
Kaynak: http://www.safkanyazilim.com/yasar-safkanin-ozgur-yazilim-gunleri-2013teki-konusmasi/
İlgili Yazılar:
1-) http://www.teknikodu.com/yazilimcinin-sucu-ne/
2-) http://www.teknikodu.com/yazilimcinin-sucu-ne-buraya-nasil-geldik/
3-) http://www.teknikodu.com/adam-gun-hangi-adam-hangi-gun/
Etiketler:
BİLİŞİM SEKTÖRÜ,
YAZILIM MÜHENDİSLİĞİ,
YAZILIM YÖNETİMİ
12 Ekim 2011 Çarşamba
Business Objects'de Türkçe Verilerdeki Bazı Karakterlerin Düzgün Gösterilmemesi
Microsoft SQL Server 2000 veritabanına OLE DB ile bağlantı kuruyoruz. Bu veritabanında bazı türkçe verilerin düzgün görünmediğini farkettik. Örneğin "ADRES DOĞRULAMA" cümlesi "ADRES DOGRULAMA" olarak görünüyordu. Yani sorun "İ" ve "Ğ" gibi bazı Türkçe karakterlerde görülüyordu.
Aşağıdaki iki yazıda da bizim yaşadığımız soruna benzer durumlardan bahsedilmekte :
Çözüm1: Universe veritabanına OLEDB yerine ODBC ile bağlanmak
Yukarıda linkini verdiğim ilk yazıda OLEDB veritabanı bağlantısının ODBC olarak değiştirilmesi tavsiye edilmiş. Bu da sorunu çözüyor ama belirli sebeplerden (yavaşlık, ayrıca ODBC ayarları yapılması gerekmesi gibi) bu çözümü tercih etmedik.
Çözüm2: BI Server'ın kurulu olduğu sanal makinanın "Regional and Language Options>Advanced>Language for non-unicode programs" ayarını Türkçe yapmak
İlk başta biz de problemin veritabanı bağlantısından kaynaklandığını düşündük. Sonradan gördük ki bilgisayarım (local client) 'ın regional setting değerlerini Türkçe olarak değiştirdiğimde problem Universe Designer ve Web Intelligence Rich Client programlarında çözülüyordu fakat Web üzerinden InfoView ile bağlanınca problem sürmekteydi.
Bunun üzerine BI Server'ın kurulu olduğu sanal makinanın da regional setting ayarlarını Türkçe yaptım ve Web üzerinden InfoView ile bağlanınca da problemin çözüldüğünü gördüm.
Çözüm 3: Türkçe Karakter içeren alanların SQL Server'daki collation encodinglerinin Turkish_CI_AI yapmak.
Bu çözüm Universe veritabanına OLEDB ile bağlıyken bile Türkçe karakterlerin düzgün görünmesini sağlıyor.Bu farkın nerden kaynaklandığını anlayamadım. Microsoft'un sitesinde CI, CS, AI ve AS 'nin değerleri şöyle açıklanıyo
Aşağıdaki iki yazıda da bizim yaşadığımız soruna benzer durumlardan bahsedilmekte :
Business Objects ve Türkçe Karakterler - Enes KURTBu problem hakkında bulduğum 3 temel çözüm yolu var. Şimdi bunları açıklamaya çalışacağım.
Turkish Characters not showing correctly in universe/report - BOB Forum
Çözüm1: Universe veritabanına OLEDB yerine ODBC ile bağlanmak
Yukarıda linkini verdiğim ilk yazıda OLEDB veritabanı bağlantısının ODBC olarak değiştirilmesi tavsiye edilmiş. Bu da sorunu çözüyor ama belirli sebeplerden (yavaşlık, ayrıca ODBC ayarları yapılması gerekmesi gibi) bu çözümü tercih etmedik.
Çözüm2: BI Server'ın kurulu olduğu sanal makinanın "Regional and Language Options>Advanced>Language for non-unicode programs" ayarını Türkçe yapmak
İlk başta biz de problemin veritabanı bağlantısından kaynaklandığını düşündük. Sonradan gördük ki bilgisayarım (local client) 'ın regional setting değerlerini Türkçe olarak değiştirdiğimde problem Universe Designer ve Web Intelligence Rich Client programlarında çözülüyordu fakat Web üzerinden InfoView ile bağlanınca problem sürmekteydi.
Bunun üzerine BI Server'ın kurulu olduğu sanal makinanın da regional setting ayarlarını Türkçe yaptım ve Web üzerinden InfoView ile bağlanınca da problemin çözüldüğünü gördüm.
Çözüm 3: Türkçe Karakter içeren alanların SQL Server'daki collation encodinglerinin Turkish_CI_AI yapmak.
Bu çözüm Universe veritabanına OLEDB ile bağlıyken bile Türkçe karakterlerin düzgün görünmesini sağlıyor.Bu farkın nerden kaynaklandığını anlayamadım. Microsoft'un sitesinde CI, CS, AI ve AS 'nin değerleri şöyle açıklanıyo
CaseSensitivity CI specifies case-insensitive, CS specifies case-sensitive. AccentSensitivity AI specifies accent-insensitive, AS specifies accent-sensitive.
16 Ağustos 2011 Salı
15 Ağustos 2011 Pazartesi
SAP Business Objects Raporlama Aracı Kullanımı
Bu makalede SAP Business Objects Aracının Web Arayüzünden kullanımı ve Sorgulama veri yapıları basitçe ve kısaca anlatılmaktadır. Makalenin tamamı için okumaya devam edin.
Burada anlatılan konular SAP Business Objects ( BO3.1 Edge XI 3.1 Client SP4 ) ürünü için geçerlidir. Anlatılanlar diğer versiyonlar için farklılık gösterebilir.
Burada anlatılan konular SAP Business Objects ( BO3.1 Edge XI 3.1 Client SP4 ) ürünü için geçerlidir. Anlatılanlar diğer versiyonlar için farklılık gösterebilir.
26 Temmuz 2011 Salı
İş Zekası: SAP BusinessObjects
Çalıştığım şirketin SAP'nin BusinessObjects iş zekası ürünlerini kullanmaya başlamasıyla birlikte bu konuda yapılacak gerekli geliştirmelerin sorumluluğu bana verildi. Daha önceden hiç de aşina olmadığım bu dünyada öğrenme sürecinde faydalandığım bazı kaynakları buradan paylaşmak istedim. Umarım faydalı olur.
Öncelikle BO Hakkında bulduğum ender Türkçe makalelerden birini buradan inceleyebilirsiniz.
"Universe" kavramı
Basitçe anlatmak gerekirse "Universe" veri yapımızı kullanıcıya sunduğumuz bir ara katman. Burada kullanıcıya veriyi nasıl ve ne kadarını sunacağımızı belirliyor ve kullanıcının bu Universe üzerinden verilerimize erişip raporlamalar yapmasını sağlıyoruz. Kullanıcı bizim tanımladığımız "Obje"ler vasıtasıyla sorgular oluşturabiliyor.
ÖĞRENİLMESİ GEREKEN BAZI KAVRAMLAR
"Aggragate Awareness" kavramı
Karışık olduğu kadar faydalı bir konu olan "Aggragate Awareness" hakkında bulduğum en faydalı makalelerden biri :
Context kavramı
Context aslında tablolar arasında tanımladığınız bağlantıların (join'lerin) gruplanmasından ibarettir. Bu şekilde bir arada kullanılacak "join"leri belirtmiş olursunuz. ( NOT: "Multiple SQL Statements for each Context" seçeneğini açarak her context için ayrı sorgu oluşturulması sağlanabilir )
"Join"leri gruplayarak sorgu sonucunda oluşacak sql'in hangi bağlantılar üzerinden oluşacağını belirlemiş olursunuz. Genelde bu döngü ("loop") , tuzak ("trap") gibi hatalı durumları engellemek için kullanılır.
Ayrıntılı bilgi için Dave'in İş Zekası Maceraları :) bloguna bakabilirsiniz:

Öncelikle BO Hakkında bulduğum ender Türkçe makalelerden birini buradan inceleyebilirsiniz.
"Universe" kavramı
Basitçe anlatmak gerekirse "Universe" veri yapımızı kullanıcıya sunduğumuz bir ara katman. Burada kullanıcıya veriyi nasıl ve ne kadarını sunacağımızı belirliyor ve kullanıcının bu Universe üzerinden verilerimize erişip raporlamalar yapmasını sağlıyoruz. Kullanıcı bizim tanımladığımız "Obje"ler vasıtasıyla sorgular oluşturabiliyor.

Universe: Tablolar ve Objeler Arasındaki Bağlantılar [1]
ÖĞRENİLMESİ GEREKEN BAZI KAVRAMLAR
- Datawarehouse pattern'ları: Star schema, Snow flake
- "Fact" tablosu - "Dimension" tablosu
- "Aggregate Awareness" kavrami
- "Context" kavrami
- "Shortcut join" kavrami
"Aggragate Awareness" kavramı
Karışık olduğu kadar faydalı bir konu olan "Aggragate Awareness" hakkında bulduğum en faydalı makalelerden biri :
Aggregate-awareness-1
Aggregate-awareness-2
Context kavramı
Context aslında tablolar arasında tanımladığınız bağlantıların (join'lerin) gruplanmasından ibarettir. Bu şekilde bir arada kullanılacak "join"leri belirtmiş olursunuz. ( NOT: "Multiple SQL Statements for each Context" seçeneğini açarak her context için ayrı sorgu oluşturulması sağlanabilir )
"Join"leri gruplayarak sorgu sonucunda oluşacak sql'in hangi bağlantılar üzerinden oluşacağını belirlemiş olursunuz. Genelde bu döngü ("loop") , tuzak ("trap") gibi hatalı durumları engellemek için kullanılır.
Ayrıntılı bilgi için Dave'in İş Zekası Maceraları :) bloguna bakabilirsiniz:
What Is a Context Anyway?
Is “One Context Per Fact Table” a True Statement?
Designer SQL Traps
Do I Have a Fan Trap?
[1] http://alteksolutions.com/wp/index.php/2009/03/what-is-a-business-objects-universe/
Kaydol:
Kayıtlar (Atom)

