Tuesday, February 7, 2017

Mühendis neyle yaşar

Sizi rüyadan uyandırmak istiyorum. Uyanın.

Bir çok mühendis arkadaşımdan da bildiğim gibi mühendislerin öğrencilik hayatı neredeyse her mühendis için çok parlak geçer. İnsan o zamanlar her şeyi başarabileceğine, dağları tek başına aşabileceğine inanıyor. Üniversitenin ilk yıllarında çok saf ve çok temiz hayallerimiz oluyor.

Beni de bu hayallerle kandırıp mühendislik yazmaya ikna etmişlerdi. Bu konuda matematik öğretmenimin büyük rolü vardır. Fakat ÖSS'de puanı Hacettepe TIP, Ankara TIP gibi bölümlere de yeten herkesin aklından bir keşke sorusu geçmiştir. Benim de aynen öyle oldu. Bölümü okurken ohh iyi ki bu bölümü yazmışım der, sonra mezun olunca meslekte istenen kariyere ulaşamayınca off keşke bu bölümü yazmasaydım dersiniz. İşte mühendislik böyle sevgi isteyen, emek isteyen ve sizin verdiğinizden hep daha azını veren bir bölümdür. Bunu iş hayatına atılınca anlarsınız.

İş hayatında hiç olmaz dediğiniz şeyler başınıza gelir. Evet ben de ne yazık ki çok kez iş aradım. Hiçbir yerde 5 yıl boyunca çalışmadım, ve bu şekilde 5 yıl çalışanlara da şaşırdım. Sektörden sektöre, alandan alana atladım. Sürekli yeni domain öğrendim. Her yıl proje değiştirdim. Bazen üzerinde çalıştığım programlama dili bile değişti. Peki ne için? Bazen mecbur bırakıldım, bazen mutlu olmak için kendim istedim. Sonunda tepkisizliği öğrendim. Aynı projede 5 yıl çalışmak için tepkisiz olmak gerekiyormuş. Ancak o şekilde mutlu insanlar olarak çalışabiliriz.

Okul ve üniversite hayatıma bakıyorum, hep mutlu ve hep istediğini elde eden birisi var. Hep bir hayali olan, ve çok çalışkan birisi. Şimdi ise bir şey isteyemiyor. İsteme güdüsünü kaybetmiş. İnsan sektörde birkaç yıl geçirdikten sonra Tolstoy gibi insan neyle yaşar diye sorgulamaya başlıyor.

Her mühendis mezun olunca bir evi bir arabası olsun ister. Ailesinden maddi bir yardım alamazsa bunlara sahip olmak yıllarını alır. Bu mühendisler ilk yıl ucuz ikinci el bir araba alır, birkaç yıl sonra biraz daha iyisi ile değiştirirler. En az 5 yıl kirada oturduktan sonra elde avuçta ne varsa verip üstüne 10 yıllık kredi çekip ev alırlar. Böyle böyle yaşam enerjilerinin hepsi kredi borçlarına gider.

Sadece borçlar değil, çalışma şartları da mühendislerde ağır bir depresyon yaratıyor. 24 yaşına kadar hep el üstünde tutulmuş, mühendis olacak diye büyük adam olacak sanılmış gençler, iş hayatında kötü yöneticilerin eline düşerek depresyona sürüklenmektedir. Bu gençler de 30 yaşına doğru karanlıklaşmaya başlar. Sonra kendi iç karanlıklarını etraflarındaki ışık saçan yeni mezunlara bulaştırmaya başlarlar.

Yıllar geçince eskiden hayalini kurdukları saygın meslekte olduklarını unuturlar. İnsanlar onlara aşağılayıcı ithamlarda bulunurken kredi borcunu, faturaları ödeyebilmek için maaş almak zorunda olduklarını düşünüp işten çıkarılmamak için susarlar. Yani artık insan duygusuzlaşmaya ve söylenenlere karşı tepkisizleşmeye başlar. İşte böyle olunca aynı yerde 5 yıl çalışabilirsin.

Sektörün de istediği insan tipi budur. Koyun gibi düşünmeden çalışan insanlar, mühendisler, mühendislerimiz. Bu insanlar kimseye bulaşmazlar, eline bir iş verirsin bir şekilde yürütüp götürürler işi. Yıllanırlar, tecrübe sahibi olurlar. Ama aynı yerde çakılıp kalırlar. Kimse onların fikrini sormaz. Onlara mühendis gibi davranmayan insanlar onlardan mühendislik yapmasını beklerler. Her işi en ince detayıyla düşünerek temiz ve kaliteli iş yapan insanlar performansta eksi, bozuk ama hızlı iş çıkaranlar performansta artı alırlar. Kendi bulunduğu yeri hazmedemeyen insanların altında çalışmak zorunda kalırlar. Bozuk yönetim şekillerini onlara yansıtan adamlara bir dur diyecek güçleri yoktur. Bu şekilde geçer yıllar.

Tecrübelerini ve becerilerini daha etkin kullanabilecekleri, daha aktif olabilecekleri, daha fazla fikir üretebilecekleri, vizyonlarını daha da geliştirebilecekleri bir kariyer artık hayalden başka bir şey değildir.

Uyanın, uyandırın.

***

Thursday, November 24, 2016

Get a list from another list without for loop in Java 8


In Java, you may need to create a new object list from another object list. This is needed when dependency injection is our concern. The general concept behind dependency injection is called Inversion of Control. According to this concept, a class should not configure its dependencies statically but should be configured from the outside. You may look at "Using dependency injection in Java - Tutorial" for a beautiful example.

In old way, we run a for loop in Java to get the object list from another list. Lets look at the example below. There are two classes: Apple and Orange.

public class Apple{
    private String color;

   public Apple(String color){
      this.color = color;
  }

   public void setColor()(String color){
      this.color = color;
  }

   public String getColor(){
      return this.color;
  }
}

public class Orange{

   private String myColor;

   public Orange(Apple apple){
      this.myColor = apple.getColor();
   }

   public void setMyColor()(String myColor){
      this.myColor= myColor;
  }

   public String getMyColor(){
      return this.myColor;
  }
}


Lets create an Apple list with 2 Apple objects:

List<Apple> appleList = new ArrayList<>();
Apple apple1 = new Apple("Red");
Apple apple2 = new Apple("Green");
appleList.add(apple1);
appleList.add(apple2);

How to get an Orange list from this Apple list?

In old Java:

List<Orange> orangeList = new ArrayList<>();
for(Apple apple : appleList) {
    Orange orange = new Orange(apple);
    orangeList .add(orange);
}

In Java 8:

List<Orange> orangeList = appleList.stream().map(Orange::new).collect(Collectors.toList());

This is the fastest and the shortest way to get a new list with 2 Orange objects which colors are Red and Green. Use Java 8 guys!

***

Tuesday, October 25, 2016

Getting an element list from a Set in Java 8

How to get list of an attribute of an object from Hash Set<Object>? Lets say we have a HashSet<Object> list and we want to get an attribute of all objects in a list, for example in a comma separated string. It is simple in Java 8:

public class ErrorMessageDTO{
    private String errorMessage;

    public String getMessage() {
        return errorMessage;
    }
}

public String getErrorMessageCommaSeparatedFromErrorMessageDTO(Collection<ErrorMessageDTO> errorMessages) {
        HashSet<String> allErrorMessages = new HashSet<>(errorMessages.stream()
        .map(ErrorMessageDTO::getMessage).collect(Collectors.toList()));
        return String.join(",", allErrorMessages );
}

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ı için ç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.

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…