Monday, September 19, 2016

Ne olacak bizim halimiz?

İngiltere'ye yerleştiğimden beri farkettiğim ve Türkiye'de iken göremediğim şey ise "think simple" kavramıdır. Biz Türkiye ekosisteminde profesyonel ve sağlıklı düşünemiyoruz. Hiçbir şeyin önünü, arkasını göremiyoruz. Ticaret ahlakı yok. Alacak peşine düşmekten, çarkı döndürme kaygısından işimize odaklanamıyor ve işimizi geliştiremiyoruz. Ay sonunu getiremiyor, bankalara bulaşıyor ve bankalar için çalışıyoruz. Olmayan bir paranın peşinde, geri dönüşü olmayan bir yolda amaçsızca yürümeye devam ediyoruz.
-- Çetin Karakaya
Aynı şeyler bilim geliştirmek isteyen, kar amacı gütmeyen ar-ge işleri yapmak isteyen kişiler için de geçerli. Bizim tek amacımız ülkemiz ve dünyamız için iyi şeyler yapabilmek. Fakat geçim sıkıntısının, bankalara olan borçların içerisinde öyle bir yüzüyoruz ki, bilim ve ar-ge yapabilecek bir kafa kalmıyor kimsede. Hayat denen çarkı döndürme kaygısı yüzünden profesyonel ve sağlıklı düşünemiyoruz. Ancak refah durumu iyi, kaygı durumu düşük olan ülkelerde temiz kafa ile güzel işler yapılabiliyor. Belki de ülkemize, ülkenin refahı ile çalışan, bilimsel çalışmaları daha fazla destekleyen, inşaat işlerini teknoloji işlerinin önüne koymayan bir yönetim lazım. Yani yönetimimizde büyük reformlara ihtiyacımız var.

Seval

Saturday, September 3, 2016

How to connect Mysql with mysqli_connect function in PHP 7?

I tried these codes on WAMPSERVER 3 (64 BITS & PHP 5.6.15 & PHP 7)  and works fine. Have fun with PHP 7...

JSON web service example with PHP7:

Lets have a mysql database. The name of database is general_db and there is one table called products. There are two columns: title and price. Add a few examples in database and try the webservice client. It will get the json from server.php and convert to array to use it.

Server codes (server.php):

<?php
$hostname="localhost";
$username="root";
$pass="";
$dbname="general_db";

$connect= mysqli_connect($hostname,$username,$pass,$dbname);

$result=mysqli_query($connect, "select * from products") or die("Query Error");

$jsonobj= array();
while($res=$result->fetch_object())
{
$jsonobj[]=$res;
}

$final_res=json_encode($jsonobj);

echo $final_res;

?>

Client codes (client.php):

<?php
$html=file_get_contents('http://localhost/myproject/server.php');
$html=utf8_encode($html);
$final_res=json_decode($html);

var_dump($final_res);
//$final_res is an array which includes objects of products

?>

Monday, August 1, 2016

Convert Set to List in Java 8 and Convert List to Set in Java 8

Convert Set to List in Java:

Set<Pencil> myPencilsSet = new HashSet<>()
List<Pencil> myPencilsList = new ArrayList<Pencil>(myPencilsSet);

Sort a list in Java:
Collections.sort(myPencilsList); 


Convert List to Set in Java:


Pencil pencil1 = new Pencil(1)
Pencil pencil2 = new Pencil(2)
Pencil pencil3 = new Pencil(3)

Set<Pencil> myPencilSet = new HashSet<>(Arrays.asList(pencil1, pencil2, pencil3))

Thats it. It is so easy.

Monday, May 9, 2016

Bir ülkenin geleceği, gençliğin geleceğinden ayrı düşünülemez!

Harun Karadeniz, 1967-1968 İstanbul Teknik Üniversitesi yıllığında şu satırları kaleme aldı:

“Gençliği ülke sorunları ile ilgilenmeyen bir ulusun sonu gelmiş demektir.Gençlik olarak biz, ülke sorunları ile ilgilenmeyi görev biliyoruz ve ülke sorunlarıyla ilgilenip etken olduğumuz ölçüde görevimizi yaptığımıza inanıyoruz.

Çünkü ülkenin geleceği, gençliğin geleceğinden ayrı düşünülemez. Biz ülke sorunları ile ilgilenmekle, gerçekte kendi geleceğimize sahip çıkmış oluyoruz. Yaşlı kuşağın bize devredeceği Türkiye’yi, Amerikan üslerini, bizi Amerika’ya bağlayan ikili anlaşmaları, yıldan yıla artan dış borçları ve Türk halkının nasıl sömürüldüğünü görüp de ülke sorunlarıyla ilgilenmemek en yumuşak söyleyişle ihanettir. Türk ulusuna ihanettir. Türk devletinin geleceğine ihanettir.

Gençliğin ülke sorunlarıyla ilgilenmesi ve sömürülen Türk halkından yana eylemler yapması, sömürgen çevreleri tedirgin etmekte ve bu çevreler “Gençlik siyaset yapıyor” diye feryadı basmaktadır.

Egemen sınıfın isteğine kalırsa, onlar bizi yönetecekler, ömrümüz boyunca acısını çekeceğimiz ikili anlaşmalarla bizi bir yabancı devlete bağlayacaklardır. Fakat biz kadere boyun eğeceğiz, bu ikili anlaşmalara karşı çıkmayacağız.

Bir doğu-batı savaşında onlar Türkiye’yi bir nükleer hedef haline getirecekler. Fakat biz NATO’ya karşı çıkmayacağız. Bütün yer altı kaynaklarımızı Amerika’ya peşkeş çekecekler, fakat biz bu sömürünün hesabını sormayacağız.

Köylünün ürününü ucuza kapatarak köyle kardeşlerimizi sömürecekler, fakat biz köylüyü sömürüyorsunuz dahi demeyeceğiz. Kıbrıs’ta yolumuzu kesen 6. filo İstanbul Limanı’na demirleyecek, fakat biz 6. filoyu protesto etmeyeceğiz.

Meslek bilgimizi kullanarak lüks binalar inşaa edeceğiz, fakat bu binalarda kimlerin yatıp kalktığını sormayacağız.Mühendis olarak silahlar yapacağız, fakat bu silahlar küçük ücretlerine zam isteyen işçi kardeşlerimize çevrildiği zaman ses çıkarmayacağız.

Bugünün öğrencileri yarının meslek adamları olarak ülkemizin bütün sorunları ile ilgilenmek zorundayız. Öğrenciliği bitirip meslek hayatına atılacak olan biz mühendisler için iki yol vardır. Bu yollardan biri, kim için ve ne için üretim yaptığını düşünmeksizin egemen sınıfların yararına üretim yapmaktır. Kısaca neden ve niçinini düşünmeksizin bir miktar karşılığında üretim yapmak yani robotlaşmak.

İkinci yol ise kim için ve ne için çalıştığını bilerek emekçi halkın yararına üretim yapma olanaklarını aramaktır. Bir başka deyişle, ikinci yol küçük bir azınlığın yararına robotlaşmak değil, büyük çoğunluğun, yani toplumun yararına çalışarak insanlaşmak yoludur.”

***

1942 yılında Giresun’da doğan Harun Karadeniz, 1962’de İTÜ İnşaat Fakültesine girdi.  Fikir Kulüpleri Federasyonu’na üye oldu. İlerleyen süreçte TİP’le tanıştı. Öğrenci Derneği başkanlığı ve İTÜ Öğrenci Birliği başkanlığı yaptı. Birçok anti-emperyalist eylemin en ön saflarında, boykotlarda, okul işgallerinde kitlelere öncülük eden isimlerden biriydi. 1960-1980 döneminde ülkenin sosyal sorunu haline gelen özel okulların devletleştirilmesinde önemli bir rol oynadı. 12 Mart Darbesi (1971) sonrası TKP ve Dev-Genç davalarından yargılandı. Dev-Genç davasından tutukluyken hapishanede ciddi bir hastalığa yakalandı, tedavisine izin verilmedi. 15 Ağustos 1975’de öldü.



Saygıyla anıyoruz…

Wednesday, March 16, 2016

How to upgrade Primefaces 3.5 to Primefaces 5.3?

In this article, I am going to talk about the steps to upgrade Primefaces. I installed Primefaces 5.3 and Primefaces Extensions 4.0.0. Primefaces 5.3 is totaly suitable with Primefaces Extensions 4.0.0. I was using Gradle as build automation system, so I am also giving the details for it. My JSF Mojarra version is 2.2. So lets start to steps....

To upgrade from Primefaces 3.5, do the steps below. Do the changes which are required for both PrimeFaces 4.0 and Primefaces 5.3 :

-- Menu changes

1) Find "MenuItem", replace with "UIMenuItem" (You can use find and replace tool of any IDE)
2) Find "org.primefaces.model.MenuModel", replace with "org.primefaces.model.menu.MenuModel"
3) Find "org.primefaces.model.DefaultMenuModel", replace with "org.primefaces.model.menu.DefaultMenuModel"
4) Find "addMenuItem", replace with  "addElement"
5) Find "addSubmenu", replace with "addElement"

-- Other changes

6) Add into web.xml :
<context-param>
  <param-name>facelets.SKIP_COMMENTS</param-name>
  <param-value>true</param-value>
</context-param>
7) Delete all showButtons="false".
8) Change save file function:
// save file
        FileOutputStream fos;
        try {
            fos = new FileOutputStream(new File(pathToFile + fileName));

            InputStream inputstream = dosya.getInputstream();

            int read = 0;
            byte[] bytes = new byte[1024];

            while ((read = inputstream.read(bytes)) != -1) {
                fos.write(bytes, 0, read);
            }
            fos.close();
        }
9) In Javascript, find all .live(" , replace with .on(".
10) In Javascript, find and replace variable names:
Find: ([a-z]\w+).show\(\);
Replace with: PF\(\'$1\'\).show\(\);
Find: ([a-z]\w+).hide\(\);
Replace with: PF\(\'$1\'\).hide\(\);

-- Changes required just for PrimeFaces 5.3

Now do the changes which is required just for PrimeFaces 5.3 :

11) Remove all old PieChart, BarChart, and LineChart. You have to rewrite all of them with new way which is explained the website of Primefaces 5.3.
12) Update faces-config.xml:
<resource-handler>org.primefaces.application.resource.PrimeResourceHandler</resource-handler>
13) Update build.gradle:
dependencies {
        compile 'org.primefaces:primefaces:5.3'
        compile 'org.primefaces.extensions:primefaces-extensions:4.0.0'
}
14) Create FileUploadRenderer which can be found in here.
15) decode functions require 3 parameters, add null as 3rd parameter.
16) Update MyClient.eml:
<lib name="primefaces-5.3.jar" scope="COMPILE">
<relative-module-cls project-related="jar://$PROJECT_DIR/primefaces-5.3.jar!/"/>
</lib>
<lib name="primefaces-extensions-4.0.0.jar" scope="COMPILE">
<relative-module-cls project-related="jar://$PROJECT_DIR$/primefaces-extensions-4.0.0.jar!/"/>
</lib>
17) Update Lazy classes: The last parameter of Load function must be final Map<String, Object> filters.
18) The old calendars are not working in Primefaces 5.3, so reimplement them.
19) Refresh Gradle, deploy&try the system.

Have fun with your new JSF project with Primefaces 5.3.

Seval.

Friday, March 4, 2016

How to upgrade Primefaces 3.5 to Primefaces 4.0?

Here are the step by step to upgrade Primefaces from 3.5 to 4.0 :
  • MenuModel is rewritten and not backward compatible with the old version. Change the import addresses with new ones.
    • In Primefaces 3.5:
      • import org.primefaces.component.menuitem.MenuItem;
      • import org.primefaces.model.DefaultMenuModel;
      • import org.primefaces.model.MenuModel;
    • In Primefaces 4.0:
      • import org.primefaces.component.menuitem.UIMenuItem;
      • import org.primefaces.model.menu.DefaultMenuModel;
      • import org.primefaces.model.menu.MenuModel;
  • DataTable sortBy and filterBy expressions require the plain property name meaning "name" instead of "#{person.name}". Backward compatibility is maintained for expressions like "#{var.property}" but not for complex expressions. 
    • In Primefaces 3.5:
      • sortBy="#{projectName}" 
    • In Primefaces 4.0:
      • sortBy="projectName" 
  • FileUpload is reimplemented. Probably the old fileupload of Primefaces 3.5 is not going to work in JSF (Mojarra) with Primefaces 4.0. Use the solution mentioned in http://stackoverflow.com/a/19381134.
  • disabledSelection option of column, moved to DataTable, change is backward compatible and the option will be removed from column in a future release. So remove "disableSelection" option from columns.
  • AutoComplete: removed process/global/onstart/oncomplete in favor of "p:ajax event="query" process/global/onstart/oncomplete". If you are already using ajax, so do not change anything.
  • Preferred way of accessing widgets is via PF('widgetVarName').show(), old way (e.g. widgetVarName.show()) is still supported and will be removed in a future version.
    • In Primefaces 3.5:
      • widgedVarName.hide();
    • In Primefaces 4.0:
      • PF('widgetVarName').hide();
You can use find and replace function of Eclipse, IntellijIdea or Netbeans. To change all way of accessing widgets from plain variable name to PL('variableName'), use regular expression.

Search for: ([a-z]\w+).show\(\);

Replace with: PF\(\'$1\'\).show\(\);

Sources

https://github.com/primefaces/primefaces/wiki/Migration-Guide
http://developer.axonivy.com/doc/latest/doc/migrationNotes/MigrationNotesDesigner5.1.html

Saturday, February 6, 2016

Görev Tamamlandı

Şu hayatta en çok kendimizi ne zaman sorgularız biliyor musunuz, yapmamız gereken bir görevi yaparken. İşte o anlarda insan kendisinde bir şeyler yapacak gücü bulmak için savaşır. Benim yüksek lisansta tez yazma dönemim de işte böyle geçti. Ne zaman tez ile ilgili bir şey yapmak için bilgisayarın başına otursam kendimi sorgulamaya başlıyordum. İnsan kendisini sorguluyor. Bugüne kadar yaptıklarını, yapmak istediklerini, neler yapmak isteyip de yapamadıklarını... Hani ödev yapmanız gerekirken hayatta okumaya tenezzül etmeyeceğiniz kitapları okursunuz, izlemeyeceğiniz dizileri izlersiniz... Hani erken kalmanız gerekirken daha fazla uykunuz gelir. İşte o anlarda kendinizle savaşırsınız. Yüksek lisans yapmak aynen böyle bir şey. Yapmak istiyorsunuz, başarmak istiyorsunuz, ama yapmasanız da olur düşüncesi sizi bırakmıyor bir türlü. Zaten yıllarca çalışmaktan beyni yorulmuş insanların artık ders çalışmak istememesi çok doğal. Aynı zamanda derslerden başarısız oldukça pes etmeyip başarılı olana kadar savaşmak yaşlandıkça artık zor geliyor. Tez yazmak isterken hep ben neden bunu yapıyorum diye düşünüp durdum...

Yüksek lisans en sonunda sizin ruhunuzda istek, gözlerinizde fer kalmadığı zaman bitiyor. İşte o zaman bitirdiğinize inanamıyorsunuz. O bitti gitti duygusuna bir türlü kapılamıyorsunuz. Sanki yarın olacak ben yine okula gitmek zorunda kalacağım. Çünkü yüksek lisansta geçirdiğim 3,5 yıl boyunca hem üniversitenin hem de yök'ün dayattığı çok gereksiz dersleri almak zorunda kaldım. Öğretim'in çok farklı bir doğası var. O anda kendinizi zorluyorsunuz, anladığınızı sanıyorsunuz, ezberliyorsunuz, ders bittikten 1 hafta sonra her şeyi unutuyorsunuz. Beyninizde geriye sadece ders hakkında bir fikriniz kalıyor. O zaman dersler fikir vermek içinse neden insanlara bu işkence yapılıyor. Bunu anlamak mümkün değil.

Yüksek lisans akademik çalışma yapmak, yayın yapmak ve bilimsel aktivitelerde bulunmak için değil mi? Fakat yayın yapacak, araştırma yapacak vakti ilgi ve bilgi alanımız olmayan dersleri almakla harcamamız saçma değil mi... Bu derslerde zaten derse ilginiz değil ezberlediğiniz şeyler sizi başarıya götürüyor. Bunu tecrübeyle gördüm. Ne zaman ki ilgi duyduğum bir ders alsam başarısız oldum. Sonra bu başarısızlığı ilgi duymadığım ama ezber yaptığım derslerdeki başarılarımla telafi ettim. O zaman insan soruyor acaba başarısız mıyım, bıraksam mı... Bir yıl geçmiş ben sadece 2 ders geçebilmişim, o zaman ne yapsam?...

Tam dersler bitti derken hoop tez başladı. Tezde yapabileceğime inanmadığım her şeye kendimi inandırdım ve yaptım. Yoksa bu tezler nasıl ortaya çıkardı? Bazen tıkandığım anlar oldu, pes ettiğim bıraktığım zamanlar yaşadım. Yapamayacağım dediğim çok an oldu...

Kendimi çok sorguladım, çok inandırmaya çalıştım. Evet ben bunu yaparım diye kendimi inandırmaya çalıştım. Bu süreçte beynimi o kadar meşgul ettim ki kendimi unuttum. Her gün bir kaç kere linkedin'e, facebook profilime girip ben kimim diye baktım. Kendimi hatırlayıp, kendime inancımı yeniledim. Evet ben buyum ve yapabilirim dedim. Linkedin benim aynam oldu. Ne zaman umudum yok olmaya başlasa, ne zaman kendimi içimde ağır bir sıkıntı ile bulsam o zaman linkedin'e girdim. Kendime baktım ve bunu yapabilirim dedim. Geçmişte yaptıklarıma bakmak beni cesaretlendirdi.

Önüme çıkan zorlukları bir basamak olarak görüp onları fırsata çevirmek için uğraştım. Dönem ortasında tez hocam tarafından terk edildim ve 2. kez tez hocası değiştirmek zorunda kalmamak için uğraştım. Aldığım bursu kaybettim ama geri ödememek için uğraştım. Hiç kimsenin almadığı dersleri aldım, bazen bıraktım bazen geçtim. İntibak yüzünden yeniden ders almak zorunda kaldım. Elimden gelenin en iyisini yaptım. Bu süreçte odtü bilgisayar mühendisliğinde verilen neredeyse bütün dersleri aldım, neredeyse bütün hocalarla tanıştım. Bu süreçte 4 kere iş değiştirdim. Çalıştığım yerlerde yaşadığım olumsuz deneyimlere üzülmedim. Hep tecrübe olarak gördüm ve yoluma devam ettim. İnsanlar hayatımızdan gelip geçerken ben seyrettim. Olduğum yeri, konumumu, yapabileceklerimi biliyordum. Kimsenin bunu bana söylemesine gerek yoktu. Ama öyle anlar oluyordu ki insanlardan kaçmak istiyordum. O zamanlarda odtü'nün sevimli kampüsüne sığındım. Odtü benim için bazen herkesten kaçtığımda elimde bavulla gittiğim bazen sadece kafamı dinlemek için gittiğim bir yuvam oldu. Odtü bazen ağladığım bazen gülme krizlerine girdiğim acısıyla tatlısıyla yaşamımda büyük bir yer edindi.

İnsanın hayatında her zaman dışarıdan gelen zorluklar olmuştur. Ama başarının önündeki en temel engel insanın kendisidir. Bence insan kendisiyle savaşmaktan korkmamalı. Ben bu noktaya gelebilmek için kendi kendimi yenmek zorunda kaldım. Pes edecek gibi olduğum zaman odtü kütüphanesine sığındım. En yakınımdaki insanlar bile bırak dedikleri halde bırakmadım. Çünkü kendime inanıyordum. Başkaları için çok kolay olabilirdi ama benim için hiç de öyle olmadı.

Sonuçta insanlık için küçük, benim için büyük bir adım oldu. Bu süreçte büyüdüm, yaşlandım, kendimi tanıdım, yapmak istediğim işi, olmak istediğim insanı seçtim. Ben bu süreçte hayatımda olmasını istediğim şeylere karar verdim. Gerçekten böyle bir tecrübeyi her iyi kalpli insanın yaşamasını ve başarıyla tamamlamasını dilerim.

Benim tez tamamlama sürecim halen devam ediyor. Tez jürisinden oy birliği ile geçtim. Bu son 3,5 yılda odtülü olmak güzeldi. Odtü'de olmak son derece güzeldi. Üzerimdeki ağırlıktan kurtulmakla birlikte, insanın ömür boyu gururla taşıyacağı bir altın bileziği de odtüden almış oldum.

Bunu bir anı olarak yazıyorum. İlerde baktığımda yaşadığım zorlukları hatırlamak için yazıyorum. Bu arada okuyorsunuz, takip ediyorsunuz çok teşekkür ederim. Okuduğunuzu biliyorum, linkedin'de ne zaman açsam beni ekleyen birkaç okurum oluyor ama maalesef kabul edemiyorum. Bunun için çok üzgünüm. Bundan yıllar önce yüzyüze tanışmadığım insanları eklememe kararı almıştım. Sizin de böyle yapmanızı öneririm. Saygı ve selametle.

Belki de vakti gelmiştir yeniden çimlere uzanıp bulutları bi şeylere benzetmenin.. Hadi ama biraz sıyrılın hırslarınızdan, kaldırın başınızı bilgisayardan.. Bulutlar hala bi şeye benziyor, bakkallardan hala alışveriş yapanlar var mesela, mesela duvarların üstünde çekirdek çitleyen kızlar, bisikletli çocuklar var.. apartmanlardan azıcık uzaklaşsanız yıldızlar bile duruyor hala yerinde.. konuşacak çok şey var birbirimizin kusurları dışında.. hayat güzel kuşlar uçuyor, açın kanatlarınızı, hadi ama.
--Sevilay V.

***
Related Posts Plugin for WordPress, Blogger...