7 Şubat 2019 Perşembe

IEEE ICSC 2019 Konferansı Newport Beach-CALIFORNIA


     Herkese iyi günler iyi akşamlar iyi geceler.

   Geçen hafta 26 Ocak 2019 - 02 Şubat 2019 tarihleri arasında California eyaletinin Los Angeles kentinde bulundum. Gezdik tozduk eğlendik. Ardından IEEE ICSC 2019 konferansına paper'ım "Acoustic Scene Classification Using Spatial Pyramid Pooling with Convolutional Neural Network" sunumu için Newport Beach'te bulundum.

   Sunumların ilk günü açılış konuşmasında sahne alan komite başkanlarından ev sahibi Phillip Sheu "Semantic Computing" tanımını yaptıktan sonra, gerekliliğinden ve IEEE komiteleri içerisinde bulunan diğer gruplar ve konferanslar hakkında konuştu. Artifical Intelligent yeniden canlandırılması gerektiği, aslında tüm kategoriler ile birlikte çalıştığından bahsetti. Programa böyle bir giriş yaptıktan sonra, Konferans konuğu Northrop Grumman Corporation firması yöntecisi Paul Conoval sahne aldı. Çılgınca geliştirilmiş projelerden, ürünlerden bahseden Conoval, "Semantic Computing" terimini nerelerde kullandıklarından ve ihtiyacı olduklarından bahsetti.


    Ardından "regular paper" sunumları başladı. Bu konferansta kendi oturumuzun başkanı olmamdan dolayı dikkatlice sunum yapanları ve sunum başkanlarını takip ettim. Sunum başkanlığı basit bir görev lakin konuşmacıya hiç soru sorulmadığı zaman, başkan olarak konuşmacıya ayıp olmasın diye bizim soru sormamız icap edecekti. Nitekim oturumumdaki ilk sunumda öyle oldu. Sonrasındaki konuşmacılara soru gelmesi ise işimi kolaylaştırdı. Ardından sunumumu yaptım ve Paul Conoval tarafından ilginç bulunması ve soru gelmesi beni onurlandırdı. Poster sunumu aynı gün oldu ve 1 saat boyunca ziyaretçilere çalışmamı tanıttım.


    Gün sonunda Konferans yemeğine katıldık. Yemek çok güzel geçti. Japon, Amerikalı, Hintli arkadaşlar ile aynı masada oturup sohbetler edildi. Gün sonunda ödüller sahiplerini buldu. Ayrıca California Irwine Üniversitesi görme şansına eriştik. Yemekte Hollandalı mühendis Profesör Dick Bulterman, ve aynı zamanda Komite başkanıdır kendisi, konuşma yaptı.


    IEEE ICSC konferansı 30 Ocak - 1 Şubat 2019 tarihleri arasında Newport Beach'te Newport Beach Marriott Bayview otelinde gerçekleşti. Konferans boyunca Northrop Grumman şirketi yöneticisi Paul Conoval, Harvard Üniversitesi'nden Chris Dede ve Joseph Reily, Ford firmasından David Ostrowski konuşmaları ile sahne aldılar. Toplam 30 full paper (%23 kabul), 13 short paper (%10 kabul biri benim paper'ım oluyor 😉 ) yayınlandı ve sunuldu. Konferans workshop'lar ile zenginleştirildi. En önemlisi ise poster oturumu idi. Araştırmacılar burada çok iyi etkileşerek çalışmalar hakkında bilgi aldılar ve çalışma sahipleri çalışmalarını daha iyi sergileme fırsatına sahip oldular. Ayrıca çok iyi fikir alışverişi yapıldı. Konferansa katılım Norveç uyruklu araştırmacılardan yoğun ilgi alındı. Ayrıca edinilen bilgilere göre en çok ABD ülkesinden gelen yayınlar olduğu söylendi. Türk olarak bu sene tek ben vardım 😉. Danışman hocama M.Sert ve aileme teşekkürler. Ayrıca sponsorum olan kardeşime de çok teşekkür ederiz. Peki diğer günler ne yaptım? Gezi ile ilgili yazılarım daha sonra...

21 Haziran 2018 Perşembe

T.C. Maliye Bakanlığı İş Hayatı


   Merhabalar. Emniyet Genel Müdürlüğünde taşeron olarak çalışmam, hükümet sayesinde taşeron yasasının iptali ve taşeronların kadroya geçirilmesi sonucu, kadroya geçirmediklerinden ötürü sonlandı. Artık iş hayatımıza yine taşeron olarak, T.C. Maliye Bakanlığı altında Exabil firması elemanı olarak devam ediyoruz.

   T.C. Maliye Bakanlığı kurumu içinde Sybase ASE veritabanı yönetimi ve Postgresql Veritabanı yönetimi görevlerinde yer alacağım. Ayrıca Oracle Database danışmanlığı ve yönetimi görevlerini de sürdüreceğim. Proje kapsamı olarak Bakanlık bütün bilişim departmanlarında bulunan veritabanlarını tek sisteme yani postgresql veritabanı sistemine taşımak istemektedir. TURKSAT kurumu aracılığı ile yürütülecek bu projede, SYBASE to Postgresql ve Oracle to Postgresql veri taşıma, veritabanı obje taşıma görevlerinde yer alacağımı kamuoyuna bildirmekteyim.

   Postgresql Master-Slave replikasyonu kurulumu ve yönetimi, Sybase ASE ve Sybase IQ sistemleri üzerinde kendimi geliştirmekteyim.

   2018 yılı böyle geçecek. 2019 yılı ve sonrası için pek bir beklentim yok

20 Ekim 2016 Perşembe

Ruby ile Mysql Veritabanına Bağlanma ve Temel DML İşlemleri | Ahmet Melih Başbuğ Personal Blog Page!

Link: Ruby ile Mysql Veritabanına Bağlanma ve Temel DML İşlemleri | Ahmet Melih Başbuğ Personal Blog Page!


Selamlar. Bu yazımda Ruby ile Mysql veritabanına bağlanma ve temel işlemleri yapma örneği ile karşı karşıya kaldık.


İlk olarak ruby için mysql kütüphanelerini kuruyoruz. İşletim sistemimiz Ubuntu'dur. Ruby on Rails kullanmayacağım. Canım istemiyor. Ubuntu üzerinde editör ile ruby kodlarımı ve mysql bağlantımı yapacağım. Kütüphane kurulumu için önce;

$> sudo apt-get install ruby-mysql

Sonra gem ile mysql yüklenir. Ruby için gem'e yükleniyor sanırsam.

$> gem install mysql
Fetching: mysql-2.9.1.gem (100%)
Building native extensions.  This could take a while...
Successfully installed mysql-2.9.1
Parsing documentation for mysql-2.9.1
Installing ri documentation for mysql-2.9.1
Done installing documentation for mysql after 1 seconds
1 gem installed

Sonra gelin el ele verip bir mysql veritabanı oluşturalım.

mysql> create database ruby
mysql> use ruby

mysql> create table members (
    id int(5),
    name VARCHAR(25)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Query OK, 0 rows affected (0,06 sec)

mysql> insert into members VALUES (1,'Ahmet Melih');
Query OK, 1 row affected (0,00 sec)

mysql> insert into members VALUES (2,'Mustafa Kerem');
Query OK, 1 row affected (0,00 sec)

mysql> insert into members VALUES (3,'TarıkÇ.');
Query OK, 1 row affected (0,00 sec)

mysql> insert into members VALUES (4,'Erdem');
Query OK, 1 row affected (0,00 sec)

Evet şimdi geldik işin cancanlı kısma. Kod yazacağız. Bu verileri select komutu ile ruby kodlaması sonucunda çıktıda gösterelim. Bunun için ruby kütüphanesi kullanılacak ve mysql veritabanı adı, kullanıcı adı ile parolası girilecek. require 'mysql' ile kütüphane belirtilir sonra Mysql.new(hostname, username, password, databasename) ile mysql bağlantısı sağlanır. İşe biraz cafcaflı işlemler katmak için kodda herhangi bir Mysql hatası alındığında durumunda hata kodunu ekrana basma kodlarını da ekledim. rescue kısımda, oluşan hatayı yakalayıp ekrana basacaktır. 

$< vim membershow.rb

Dosya içinde;

#!/usr/bin/ruby

require 'mysql'

begin
   #my = Mysql.new(hostname, username, password, databasename)
   con = Mysql.new('localhost','root','roone y','ruby')
   rs = con.query('select * from members')
   rs.each_hash { |h| puts h['name'] }

rescue Mysql::Error => e
   puts "Error code: #{e.errno}"
   puts "Error message: #{e.error}"
   puts "Error SQLSTATE: #{e.sqlstate}" if e.respond_to?("sqlstate")
ensure
   con.close if con
end

Sonuç:
$> ruby membershow.rb
Ahmet Melih
Mustafa Kerem
TarıkÇ.
Erdem

Şimdi DML sorgularının nasıl çalıştığını gösterelim. Önce çıktımıza 'Ali Veli' ekleyelim. Sonra bu eklediğimizi silip, üzerine 'Erdem' ismini 'Erdem Başgan' olarak düzenleyelim. Bunun için aynı veritabandaki sql sorguların gibi sql sorgumuzu query() içine yazacağız.

$> vim membershow.rb

Dosya içinde

require 'mysql'

begin
   #my = Mysql.new(hostname, username, password, databasename)
   con = Mysql.new('localhost','root','roone y','ruby')
   rs = con.query('select * from members')
   rs.each_hash { |name| puts name['name'] }

   con.query("INSERT INTO members(name) VALUES ('Ali Veli')");
   puts "Yeni Eklenen Sonucu:\n";
   rs = con.query('select * from members')
   rs.each_hash { |name| puts name['name'] }
   con.query("DELETE from members where name='Ali Veli'");
   con.query("UPDATE members set name='Erdem Başgan' where name='Erdem'");
   puts "Güncelleme Sonucu:\n";
   rs = con.query('select * from members')
   rs.each_hash { |name| puts name['name'] }

rescue Mysql::Error => e
   puts "Error code: #{e.errno}"
   puts "Error message: #{e.error}"
   puts "Error SQLSTATE: #{e.sqlstate}" if e.respond_to?("sqlstate")
ensure
   con.close if con
end

Sonuç:
$> ruby membershow.rb
Ahmet Melih
Mustafa Kerem
TarıkÇ.
Erdem
Yeni Eklenen Sonucu:
Ahmet Melih
Mustafa Kerem
TarıkÇ.
Erdem
Ali Veli
Güncelleme Sonucu:
Ahmet Melih
Mustafa Kerem
TarıkÇ.
Erdem Başgan
Bu mysql veritabanının ruby üzerinde basit bir erişimi ve kullanımı örneği idi. Daha fazla complex ve sql injection'a karşı önlemler alınan kodlar için daha fazla araştırma yapın. Haydi sağlıcakla.

24 Eylül 2016 Cumartesi

u01 File System Become Full Because of cvucheckreport and Bug fixed with Patch | Ahmet Melih Başbuğ Personal Blog Page!

u01 File System Become Full Because of cvucheckreport and Bug fixed with Patch | Ahmet Melih Başbuğ Personal Blog Page!


In machines which installed Oracle Database 12c Single Instance and Oracle Database 12c RAC systems, The file -/u01/app/grid/crsdata/@global/cvu/baseline/cvures- could fill operating system's disk storage after a time. These are error logs that you should look after them first. In u01 file, you should make some free space that you can do it with manuel deleting files or apply PATCH. With Patches, you can solve this problems.


Location:
==========
/u01/app/grid/crsdata/@global/cvu/baseline/cvures


File Example:
=============
cvucheckreport_12354231231.xm           cvucheckreport_12354316712.xml  .... etc


Used Space
==========
[root@testnode cvures]# du -h
34G

Look at the example over the top. You see there is 34G using in u01 file system. First you should look include of these log files to search errors or warnings. After days, this file become full because of xml files. To purge disk, you can delete files that make free spaces. you can delete cvucheckreport.*.xml and cvucheckreport.*.txt files manually. If you want you can take them backup with ZIP command and after backup to zip, you can delete them. It will not affect to grid system. You can do this when your database is online. One example of deleting these files manuelly;



find . -name 'cvucheckreport*.xml' -mtime +300 -exec rm {} \;
find . -name 'cvucheckreport*.txt' -mtime +300 -exec rm {} \;



You can put this command to crontab and system delete automaticly. Oracle engineers said there will be not affect if you delete them manually. Oracle engineers prepared some patch for that problem. After, they produced PSU patched. First With Bug 18143707, txt files could be limited.Then with Bug 19703199, they worked for xml files of cvucheckreports. After some time they fix Bug 20177779. Look at the below, The issue has been addressed by the following fix:



Unpublished Bug 18143707 CVU NEED TO DO CVU BASELINE REPORT CLEAN TO AVOID DISK FULL  will limit .txt files to 5
Unpublished Bug 19703199 CVU NEED TO DO CVU BASELINE REPORT CLEAN TO AVOID DISK FULL  will limit .xml files to 5
Unpublished Bug 20177779 BIGBH U01 SPACE CONSUMPTION BY CVUCHECKREPORT.XML will purge the files on remote nod
Çözüm

Bug 18143707 is fixed in 12.1.0.2             
Bug 19703199 is fixed in 12.1.0.2.4 PSU   
Bug 20177779 is fixed in 12.1.0.2.5 PSU

The workaround is to remove these reports manually.  12.1.0.2.GIPSU05

Error handled and fixed with 20177779. Read and install one of these patches to save your u01 file system from unneccessary xml and txt files. Thanks for read. Good bye. Feel free to write your comments

21 Haziran 2016 Salı

ahmetmelihbasbug.net Açıldı. my website is opened.

Hi everyone. My new website is opened. Actually I had before but it was closed. Now it's come back. Efsane geri döndü!. You can use my website with multilingual. English, Ofcourse Turkish and Spanish. You just need to click flags of language.


Websitem açıldı. Websitemi İngilizce , Türkçe, İspanyolca takip edebilirsiniz. Ahmet Melih Başbuğ iftarla takdim eder.

www.ahmetmelihbasbug.net


For English press 9.. Şaka Şaka For English: www.ahmetmelihbasbug.net/anasayfa?dil=en
Aslında 9 a dokununca İngilizce olsa :D belki yapmışımdır.
For Spanish: www.ahmetmelihbasbug.net/anasayfa?dil=es



7 Haziran 2016 Salı

Oracle'da Acil, Hızlı, Basit bir dbms_crypto ile Veri Şifreleme ve Deşifreleme Fonksiyonu



        Yine bir danışmanlık ziyaretimde önemli bir özel firmadayız. Benden verileri istenildiği zaman şifreleyen, istenildiği zaman şifre çözen ve aynı zamanda şifre ile anahtarı da yollanmasını yapabilen bir fonksiyon istediler. Bende Yaptım! Sırf blog sitemde yazı olsun, sizlerde gelip ziyaret edin, bakın, bilgilenin diye bu acil olarak hazırladığım basit fonksiyonları paylaşıyorum. Örneklidir.


Şifreleme Fonksiyonu;
CREATE OR REPLACE FUNCTION sifrele (p_gnl_data in VARCHAR2, p_gnl_key IN VARCHAR2) RETURN RAW IS p_gnl_result RAW(2048);
BEGIN
     p_gnl_result := dbms_crypto.encrypt(src => utl_raw.cast_to_raw(p_gnl_data), typ => DBMS_CRYPTO.DES_CBC_PKCS5, key => utl_raw.cast_to_raw(p_gnl_key));
      RETURN(p_gnl_result);
END;
Deşifreleme fonksiyonu;

CREATE OR REPLACE FUNCTION sifrecoz (p_gnl_rawdata in RAW, p_gnl_key IN VARCHAR2) RETURN VARCHAR2 IS p_gnl_result VARCHAR2(2048);
BEGIN
     p_gnl_result := dbms_crypto.decrypt
 ( src => p_gnl_rawdata,
typ => DBMS_CRYPTO.DES_CBC_PKCS5,
key => utl_raw.cast_to_raw(p_gnl_key) );
      RETURN(utl_raw.cast_to_varchar2(p_gnl_result));
END;

Burada şifrelenecek veri ve anahtar varchar olarak fonksiyona yollanmaktadır. Şifre çözme için ise şifreli veri RAW olarak yollanmalıdır. Şifrelenen veri RAW formatta gelmektedir. 2048 olmasının nedeni, Canımın istediğinden dolayıdır. Siz veri boyutuna göre ayarlayacaksınız. Ama RAW'a çevrilen verilerin boyutu büyümektedir. Ona göre. Anahtar ise yine VARCHAR. şifre çözümün sonucunda VARCHAR veri gelmektedir.

Örnekler ise;

SQL> select p_gnl_encrypt('a123aab121-12sa','abcdefg12') sifrele from dual;
sifrele
-------------------------------------------
ECF692DE128241E3B93C1916F07BA21A
SQL> select p_gnl_decrypt('ECF692DE128241E3B93C1916F07BA21A','abcdefg12') sifrecoz from dual;
sifrecoz
-------------------------------------------
a123aab121-12sa
Eğer şifreleme sonucu VARCHAR gönderilmesini istiyorsanız ve deşifrelerken, şifreli VARCHAR'ı yollamak istiyorsanız;

CREATE OR REPLACE FUNCTION p_gnl_encrypt (p_gnl_data in VARCHAR2, p_gnl_key IN VARCHAR2) RETURN VARCHAR2 IS p_gnl_result VARCHAR2(2048);
BEGIN
     p_gnl_result := dbms_crypto.encrypt(src => utl_raw.cast_to_raw(p_gnl_data), typ => DBMS_CRYPTO.DES_CBC_PKCS5, key => utl_raw.cast_to_raw(p_gnl_key));
      RETURN(utl_raw.cast_to_varchar2(p_gnl_result));
END;
/
 
CREATE OR REPLACE FUNCTION p_gnl_decrypt (p_gnl_rawdata in VARCHAR2, p_gnl_key IN VARCHAR2) RETURN VARCHAR2 IS p_gnl_result VARCHAR2(2048);
BEGIN
     p_gnl_result := dbms_crypto.decrypt  ( src => utl_raw.cast_to_raw(p_gnl_rawdata), typ => DBMS_CRYPTO.DES_CBC_PKCS5, key => utl_raw.cast_to_raw(p_gnl_key) );
      RETURN(utl_raw.cast_to_varchar2(p_gnl_result));
END;
/
 Örnek istiyorsanız;

SQL> select p_gnl_encrypt('a123aab121-12sa','abcdefg12') sifrelenmis from dual;
sifrelenmiş
--------------------------
���A� �

SQL> select p_gnl_decrypt(p_gnl_encrypt('a123aab121-12sa','abcdefg12'),'abcdefg12') desifrelenmis from dual;
desifrelenmis
-----------------------------
a123aab121-12sa

Saygılar Sevgiler...

DUYURU: Yakında tüm yazılarımı, resimlerimi, koleksiyonumu, hakkımda bilgileri tek bir adresten yani www.ahmetmelihbasbug.net  adresinden görebileceksiniz... www.ahmetmelihbasbug.net yakında açılıyor.