Home

  • Why I Migrated to Nodejs From PHP

    Why I Migrated to Nodejs From PHP

    I want to say i do still use PHP. I am using Nodejs more than PHP especially for new clients and for new projects i prefer to user Nodejs. Therefore this article about why i prefer Nodejs over PHP and Why i migrated to nodejs?

    4 Years ago, i was developing a CRM tool for a firm. I haven’t got a smartphone, owner of company also. There wasn’t any demand for another client than browsers. The only client they use is browsers. So i used Codeigniter Framework to bring data from database and i used Jquery to move elements.

    But now when a client comes with an idea they want to see everything from different devices. Smartphones, smart watches, computers, tablets and televisions. (I think they will ask for a smart fridge client soon)

    Development is same. You need to connect database, process data and pass data to client through endpoints. I think this development paradigm will remain same.

    This different client requirements started when i was using PHP as my main tool. But PHP world did not adapted theirselves to this. They were not enough middlewares, JSON conversation speed was terrible and clustering PHP application was not that easy. (cloud was very young at that moment) But i was still using PHP.

    Almost two years ago, i needed to use Javascript more. And then i discovered Nodejs. I wondered this technology and tested. Actually result was suprising for me. That small, easy tool was capable to do much. Also it was working like a charm, so fast. And i though “Why stcik with PHP?” Json apis were “native”, i can communicate with every client easily. This is the main reason of Why i migrated to nodejs.

    The only reason to stick with PHP is has mature frameworks, i knew how the job is supposed to be done. I can find the shortcuts for tasks.  Actually, (for almost all projects) i never interacted with the core language, i always working with the frameworks. Because i can make mistakes by myself but frameworks developed and maintened by huge amount of people. So using a framework is a more safer idea.

    I could write a pros/cons article to explain my reasons very logically but it is not the way the jobs done. Almost every developer, needs short development time, less cost, easy to maintain tools. All of us want to be confortable about technologies we use. Node Js community adopts itself very easily to every new era, to cloud, scaling, IOT, security etc. Not only community, every tech company needed to adopt theirselves to Node Js. You can see, every database company has a driver for Node Js now.

    And here i am, writing an article about “Why i migrated to nodejs” Developing applications in Node js and using it’s features, especially the package manager, NPM.

    I think you also need to give a shot to Node Js. Node can make your development speed faster, make you comfortable about your client needs.

     

  • Moving to Angular 2 – A Learning Story

    Moving to Angular 2 – A Learning Story

    This Article is written to explain my expreriences when i was moving to Angular 2. A few months ago, i was using Goole’s Angular for 2 projects. I learned Angular 1.x from Codeschool‘s classes. Also it was my first time, learning with interactive coding websites. Codeschool gave me really good experience about interactive learning. They explain everything in videos, downloadable presentations and then you can learn Angular, hands on approach.

    Angular Story of Mine

    I think i haven’t use Angular since July, it’s 8 months. But i followed news about Angular on Twitter. Today morning, i decided to use Angular 2 in a my side project. Beacuse it seems like it worths learning. The first tutorial i read is angular.io‘s tutorial. At first i was a little bit shocked. Because Angular 2 uses Typescript! I tought, “ooh it’s only one tutorial, thay may wanted to use Typescript, let’s check other tutorials to see some plain Javascript code”. There were no plain Javascript code, may moving to angular 2 was becoming a nightmare.  For next few hours i was like that “come on, what happened to Javascript. Why Google’s product based on a Microsoft product?” (I know Mircosoft supports Typescript to be an open standart)

    Typescript? Why Google!?

    Actually, i tried Typescript to learn it, but not on a project. It was only to trying to learn. This topic on Quora explains about Google’s decision on Typescript. I am big fan of Javascript since a year an half, because I am able to do everyth

    ing i need using only a language. I can write backend services, frontend, mobile applications, games and desktop applications. One of my Angular projects was a desktop applications. I choosed Angular because it’s superfast and it makes me able to write organizable code. I realized that, i was thinking about purely object oriented Javascript might be cool to write destkop applications.  Then i realized, Google’s selection about Typescript is very good for angular, to get used in every kind of coding. Especially for large code based projects, Typescript will boost teams productivity.

    To learn Typescript you can check out official demos of Typescript. It was not hard for a OOP backed programmer.

    Getting Started With Angular 2

    And where to start learning first? On Angular 1, everything starts with bootstrapping an Angular project. So bootstrapping an Angular 2 project will be first topic to learn when moving to angular 2.

    Preparing for Angular 2

    You should install Typescript to transpile your code into Javascript, it is super easy using NPM. Just run the command:

    npm install -g typescript

    But you don’t need Typescript installed on your systems to develop Angular apps.

    Bootstrapping an Angular 2 Project

    First you should include all Javascript files in your html file. Then you should declare transpiler and the main file of your Angular project. For example Angular.io’s  index.html examples is that:

    <!DOCTYPE html>
    <html>
      <head>
        <title>Angular 2 Hello World</title>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <!-- 1. Load libraries -->
        <!-- IE required polyfills (from CDN), in this exact order -->
        https://cdnjs.cloudflare.com/ajax/libs/es6-shim/0.33.3/es6-shim.min.js
        https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.16/system-polyfills.js
        https://code.angularjs.org/tools/system.js
        https://code.angularjs.org/tools/typescript.js
        https://code.angularjs.org/2.0.0-beta.7/angular2-polyfills.js
        https://code.angularjs.org/2.0.0-beta.7/Rx.js
        https://code.angularjs.org/2.0.0-beta.7/angular2.dev.js
        <!-- 2. Configure SystemJS -->
        <script>
          System.config({
            transpiler: 'typescript',
            typescriptOptions: { emitDecoratorMetadata: true },
            packages: {'app': {defaultExtension: 'ts'}}
          });
          System.import('app/main')
                .then(null, console.error.bind(console));
        </script>
      </head>
      <!-- 3. Display the application -->
      <body>
        <hello-world>Loading...</hello-world>
      </body>
    </html>
    

    As you can see, System.config() function declares all main settings about your application. This script registers, app/main.ts script.

    import {bootstrap}  from 'angular2/platform/browser';
    import {HelloWorld} from './hello_world';
    
    bootstrap(HelloWorld);
    

    I won’t copy all code here. You can found codes at angular.io, but i only wanted to say that, Angular 2 project bootstrapping is far better than Angular 1 project definition.

    At this point i wanted to learn how to make rest api calls using Angularjs. My api has been ready for a while to register a user. I created a new project and concentrated on making api calls using Angular 2.

    To get started, i should be able to design a form, submit it and read values. ngModel was really good tool for doing that but it seems like a little bit changed since Angular 1.X. Angular has been dropped Controllers, so we need a component based approach to design out form logic.

    I figured out how to parse a form in Angular 2, but it was not the usual way for Angular. They designed a new FormBuilder class to make a good form design, i won’t put here all codes about parsing bu i just want to show you FormBuilder example. (I Also tried, Visual Studio Code, it was very usable for Typescript apps.)

    Here is registerpage.ts

    import {Component} from 'angular2/core';
    import {FormBuilder, Validators, Control} from 'angular2/common';
    import {bootstrap} from 'angular2/platform/browser';
    
    @Component({
        selector: 'register-form',
        templateUrl: 'http://localhost:8080/app/registerpage.html'
    })
    
    export class RegisterPage {
      userForm: any;
      
      constructor(private _formBuilder: FormBuilder) {  
        this.userForm = this._formBuilder.group({
            'password': ['', Validators.required],
            'name': ['', Validators.required],
            'email': ['', Validators.required]
        });
      }
      
      saveUser() {
          console.log("button clicked");
          alert(`Name: ${this.userForm.value.name} Email: ${this.userForm.value.email}`);
      }
    }

    Here is registerpage.html

    <h1>form</h1>
    <form [ngFormModel]="userForm" (submit)="saveUser()">
        <input ngControl="email" id="email" type="email" #email="ngForm" placeholder="Your email">
        <input ngControl="password" id="password" type="password" #password="ngForm" placeholder="Your Password">
        <input ngControl="name" id="name" type="name" #name="ngForm" placeholder="Your Name">
      <button type="submit">Register</button>
    </form>
    

    I am able to read data through forms, so i need to add http post request mechanism for communicating with server.

    After trying really hard for an hour, i found the way to make a http request to the server. You should enable cors on your server first, i am using node js with express framework, it is really easy to enable it, but don’t forget about enabling your server “options” method to send cors headers too.

    My registerpage.ts script became that (i know it looks like hell but, you know, i am only trying to achieve something)

    import {Component} from 'angular2/core';
    import {Http, HTTP_PROVIDERS, Headers} from 'angular2/http';
    import {FormBuilder, Validators, Control} from 'angular2/common';
    import {bootstrap} from 'angular2/platform/browser';
    import 'rxjs/add/operator/map';
    
    @Component({
        selector: 'register-form',
        templateUrl: 'http://localhost:8080/app/registerpage.html'
    })
    
    export class RegisterPage {
      userForm: any;
      requestObject: any;
      http: any;
      
      constructor(private _formBuilder: FormBuilder, http: Http) {  
        this.userForm = this._formBuilder.group({
            'password': ['', Validators.required],
            'name': ['', Validators.required],
            'email': ['', Validators.required]
        });
        
        this.http = http;
      }
      
      saveUser(e) {
          e.preventDefault();
          console.log("button clicked");
          this.requestObject = {
              name: this.userForm.value.name,
              password: this.userForm.value.password,
              mail: this.userForm.value.email
          };
          var stringRequestObject = JSON.stringify(this.requestObject);
          console.log(stringRequestObject);
          
          var headers = new Headers();
          headers.append('Content-Type', 'application/json');
          this.http.post('http://localhost:3000/user/register', stringRequestObject, {
              headers: headers
          }).map(res => res.text())
            .subscribe(
                data => console.log(data),
                err => console.log(err),
                () => console.log('Random Quote Complete')
            );
      }
    }

    I uploaded all code to github, you can check by clicking here.

    My adventure with angular 2 is started with this article. Moving to angular 2 seems like a going to be painful for me.

    I am a little bit tired after all that thing, i’ll try to write ASAP again about Angular 2.

  • 2015 Yılının En İyi Teknolojileri

    2015 Yılının En İyi Teknolojileri

    Merhabalar,

    Geçen yıl bu yazının aynısını yazmıştım, bu yıl yine 2015 yılının en iyi teknolojileri yazısını kaleme alıyorum. Malum yıl içinde boş durmuyor sürekli başka başka şeylerle uğraşıyorum. Ancak benim için beğenilecek teknolojiler bulmak çok zor. Bir teknolojiyi benim açımdan iyi yapan kriterlerden en önemlisi işlerimi gerçekten hızlandırıyor olması.

    2014 yılında denediğim teknolojileri kullanmaya devam ediyorum aslında, ancak 2015 yılı içinde PHP’yi bir kez bile canlı bir proje için kullanmam gerekmedi ve bunu beni çok rahatlattı açıkçası. Composer hataları, çoğunlukla standartlara uymayan yazılımcılar, standartlara uyan kütüphanelerin boyutları (symfony ve zendi kastediyorum), en sevilen frameworklerden biri olan Laravel’in yeni sürümde eskisinden çok farklı bir yapıda sunulmuş olması beni PHP’den iyice soğutmuştu ki buna gerek kalmadığı için çok sevindim.

    Bu yılı daha çok web ve mobil projelerle uğraşarak geçirdim. Şu an önümüzdeki yıl hayalimde için bunlara ek olarak bir de M2M projesi yapmak var, bakalım yıl içerisinde göreceğiz neler olacağını.

    En beğendiğim teknolojilere gelecek olursak.

    Express Framework

    Nodejs için bir web frameworkü olan express benim en büyük yardımcılarımdan biri. Bir web projesi yapmak istediğim doğrudan kullanmaya başladığım, konfigürasyonu kısa süren, hızlı ve benim hemen hemen bütün ihtiyaçlarımı karşılayan bir framework.

    Npm’deki pek çok middleware paketi express.js ile uyumlu. Bu nedenle projelerde kullanmak istediğim eklentileri bulmakta çok zorlanmıyorum, yahut var olan bir şeyi, express’e adapte etmekle vakit harcamıyorum.

    Express bana çok zaman kazandırdığı için bu yılın en sevilen teknolojisi oldu benim için.

     

    MongoDb

    Mongo db ilişkisel olmayan bir veritabanı, çok elastik ve hızlı. Bu sene MongoDb’yi bir kaç projede denediysem de asla canlıya geçişini yapmadım. Ancak ona rağmen testlerdeki performansı beni çok memnun etti. İlişkisel olmayan veritabanları içerisinde ilk denediğim veritabanı mongodb ve gelecek dönemde, ilişkisel olmayan veritabanları konusundaki iştahımı iyice arttırdı. Kimbilir, belki bir projede canlıya alıp, gerçekten kullanma şansım olur, ben de böylece size performansından, iyi-kötü yönlerinden bahsedebilirim.

     

    AngularJs

    Arkadan geldiğime pişman olduğum projelerden biri de Angular. Hibrit mobil uygulamalarda en çok kullanılan kütüphanelerden biri, nedeniyse DOM ile uğraşmaması, 2 yollu veri taşımacılığı yapması ve performansı. Web üzerinde bir canlı projeye almaya kalktım, ancak kendimi henüz yeterince tecrübeli görmediğimden, çıkacak sorunları hızlı çözemeyeceğimi düşünüp vazgeçtim.

    Ancak hibrit mobil uygulamalarda, yazılımcıları pek çok dertten kurtarıyor. Özellikle ngCordova isimli kütüphane sayesinde, Cordova eklentileri AngularJs’ye uyumlu hale geliyor. Hızınıza hız, verimliliğinize verimlilik katıyor adeta.

    google spreadsheet ile ilgili görsel sonucu

    Google SpreadSheets

    Herkes bir kaç kez Google SpreadSheets kullanmıştır. Öyle Excel işleri için değilse de ufak tefek işler için bir tablo lazım oldu mu herkesin eli buna gider. Ancak (ne zaman böyle bir güncelleme oldu hiç bir fikrim yok) Google SpreadSheets’i artık bizim genişletmemize imkan veriyor. Sizin için ne gerekliyse önce eklentiler arasından aratabilir, bulamadığınızda kendinizinkini yazıp pazarlayabilirsiniz bile.

    Bunu bir ödevi yapmaya çalışırken farkettim ve açıkçası çok beğendim. Bir hesap tablosu kullanmam gerektiğinde eğer çok mecbur değilsem Excel’i tercih etmiyordum. Excel yerine birincil tercihim LibreOffice Calc oluyordu. Benim hemen hemen bütün ihtiyaçlarımı karşılıyor ve ücretsiz, ancak akademisyenlerimiz ödevlerde kullandığımız bütün özelliklerin Calc’da bulunduğundan bihaber olduklarından bizi Excel kullanmaya itiyorlardı. Ancak ticari anlamda Excel’in rakibi olarak sadece Google SpreadSheets’i görüyorum.

    Chrome App Launcher

    Günlük hayatta Chrome kullanmıyorum, Firefox her platformda ilk tercih ettiğim tarayıcı oluyor. Ancak bazen yaptığım işlerin nasıl çalıştığını görmek için kullanmam gerekiyor, ya da hibrit uygulamarda Android üzerinde doğrudan debugging yapabiliyorum ve bir de Postman…

    Postman bir Chrome eklentisi proje geliştiriken çok fazla kullanıyorum, her defasında onun nereden açıldığını bulmak için bakmam gerekiyordu, Chrome App Launcher, adeta Windows’ta yıllardır alıştığımız başlat menüsü gibi, Chrome’daki bütün eklentileri kolayca bulup kullanmaya başlamama yardımcı oldu.

    Kimbilir belkide Google Chrome ve web teknolojileri ile birlikte “masaüstünde işletim sistemlerini başkası yazsın, hükümdarı ben olayım” diye düşünüyordur.

     

    Sonuç

    Bu yıl da benim için bu teknolojilere sevinerek geçti. Umarım 2016’da sevdiklerinizle mutlu ve güzel bir yıl geçirir, yeni başarımlara yelken açarsınız.

    İsteyenler için:

    2014 Yılında En Beğendiğim Teknolojiler

  • Node Js vs PHP – Should You Use Node?

    Node Js vs PHP – Should You Use Node?

    Node Js Vs PHP

    PHP was very cool toy of first years of 2000s. PHP project started in 1990s and became popular very quickly. But as a result of general PHP structure PHP is not comfortable. But now a days Nodejs is very popular, so i am writing this article about Node Js vs PHP.

    Node Js Vs PHP First Look:

    PHP is most popular programming language on the web. Almost 40% of all websites made with PHP. PHP is very simple language to pick up. If you know any other C type programming language, you can pick PHP up in an afternoon. This is the most important reason becoming popular.

    With PHP 4 object oriented programming support has been added. But object oriented programming is fully implemented in PHP 5 version. But nature of PHP is not designed for object oriented programming.

    Node js is founded in 2009. Became very popular very quickly. Like PHP you can pick up Node Js very quickly. Also all front end developers already know Javascript.

    Javascript is very easy language to use but Javascript offers different solutions for everything. But i have to say, Javascript syntax is not good as other popular programming languages.

    Node Js vs PHP – Setup:

    Php has no built in server

    This was true, but i am very happy to say it is wrong now. You don’t need a web server to test your codes.

    But i am not sure with using built in server in production. You still have set up an Apache or NginX server for production.

    Node Js has a built in web server. But you can use built in node js server in production. Also Node JS applications run in single core, but you can easily cluster Node Js applications. Standart Node js server is easy to set up, configure and use.

    Also you can install node js with simple setup. Easy install is important future when you are comparing node js vs php for new programmers.

    jb_node_ide

    IDE

    PHP has been around for a long time. This is the most important reason for existence of good ides. But Jetbrains ide is usable for both languages and also very good.

    But PHP has much more IDE’s than NodeJs. I recommend to use an editor despite of the IDE. Github’s Atom is hackable and good editor for almost all languages.

    Development

    I think this is the most important topic for developers since you start reading this article.

    Package manager is important topic for comparing node js vs php.

    Developers know you don’t need to reinvent to wheel. Lot’s of developers need same codes. ORM’s, session controllers, MVC patterns. Therefore package managers are very important. Node Js has a very active package manager NPM. PHP has a partially “new” package manager composer. NPM is very active environment, you can find a package about almost everything.

    Re-using tested code becomes more important when you are building a huge project. Node Js package manager is far better than composer. Also you can define your own package very easily.

    PHP developers like new generation PHP frameworks like Laravel and Symfony. Symfony is a good framework but this framework is not easy to learn. And Laravel is no backwards compatible. Therefore i still use Codeigniter for PHP projects.

    Node Js frameworks are easy to pick up and use. When you are building  a huge project structure can get complex very easy. You have to be careful about your code.

    Conclusion

    Node Js is very good option to use in new projects. Also Node Js runs faster than PHP.  For api’s node js is far better option than PHP. Node Js vs PHP article is not easy to write because both languages for same people, solves same problems.

    Do you have an opinion, please leave a comment.

  • Node JS Nedir? Neden Kullanmalısınız?

    Node JS Nedir? Neden Kullanmalısınız?

    Node Js Nedir?

    Nodejs günümüz girişim dünyasının en ‘cool’ çocuklarından biri. Pek çok girişim, girişimlerini hayata geçirmekte node js kullanmayı tercih ediyor. Elbette bunun nedenlerini yazıda ele alacağım. Ancak öncelikle gelelim Node Js Nedir? sorusunun cevabına.

    Node Js 2009 yılında Joyent firması tarafından Google’ın V8 Javascript motorunun sunucu tarafından çalıştırılması ile üretilen bir çalıştırma ortamıdır.

    Peki nereden akıllarına gelmiş Javascript’i sunucu tarafında çalıştırmak?

    Javascript’i sunucu tarafında ilk kullanan firma değil. Daha önce de bunun denemeleri yapışmış ancak o dönemlerde talep görmediği için vazgeçilmiş.

    2009 yılında Joyent çalışanı Ryan Dahl Flickr sitesindeki dosya yükleme sihirbazını görür ve ondan ilham alır. Websitesine fotoğraf yükleme sırasında fotoğraf yüklemesinin yüzde kaçta olduğunu bilmediği için bunu yapmak yoluna gidiyor. Bu sayede yeni bir efsane doğuyor.

    Node Js Nedir?
    Node Js Nedir?

    Node JS Nedir Nerede Kullanılır?

    Nodejs girişimlerin yeni yıldızı dedim. Bunun bir nedeni olmalı değil mi? Var zaten. Bir girişimin, ne girişimi olursa olsun, ilk şartı bir web sayfasına sahip olmasıdır. Web sayfasında Javascript kullanmamak neredeyse mümkün değil. Başka bir cihaz için bir uygulama yapacaksanız da hibrit uygulama yapmayı tercih etmeniz durumunda mutlaka Javascript kullanacaksınız. E bu kadar Javascript kullanmışken sunucu tarafında da Javascript kullanıp geliştiricilerin birlikte çalışmalarını daha kolay bir hale getirebilirsiniz.

    Bir uygulamada kullanılan tek programlama dili Javascript olduğu zaman, geliştirme maliyetlerini düşürebilirsiniz. Tek dil > pek çok dil.

    Node Js genellikle gerçek zamanlı uygulamalar yapmakta, soket programlamada ve web suncuları yazımında kullanılıyor.

    Modülerlik

    Node Js için en önemli özelliklerden biri de modülerlik.

    Node Js her kütüphaneyi bir modül olarak gürüyor ve bu sayede çekirdeğin boyutunu küçültüp uygulamaların daha hızlı çalışmasını sağlıyor.

    Diğer programlama dillerine göre en büyük avantajı ise Node Js’nin paket yöneticisi olan NPM. Ne yapmak isterseniz isteyin istediğiniz şey büyük ihtimalle modül olarak bulunmaktadır. Npm üzerinden yapacağınız ufak bir arama ile istediğiniz paketi bulabilir ve kolaylıkla kullanmaya başlayabilirsiniz.

    Ayrıca kendiniz için de bir Node Paketi yazmak çok kolay. Tasarladığınız nesneyi, “ben bunu export ediyorum” diyebildiğiniz anda bir Node Js paketi yazmış oluyorsunuz.

    Sonuç Olarak?

    Node Js Nedir? sorumuzun girişimler için yanıtı muhtemelen her şeydir olur 🙂

    Node Js hayatımızı çok kolaylaştıran, servisleri ve web siteleri yazmamızı çağlayan bir çalıştırma ortamı. Bir çalışmanız varsa taşımayı düşünüyorsanız, ya da yeni bir projeye başlayacaksanız mutlaka göz atmanızı tavsiye ederim.

    Ayrıca benim yazdığım NPM paketine de buradan göz atabilirsiniz.

  • MyModel – Nodejs Mysql ORM

    MyModel – Nodejs Mysql ORM

     

    Link To MyModel

    Yesterday i realized that i need a model structure for Mysql to use with nodejs. I Googled it but results were not satisfying me. Then i decided to write my first NPM package.

    I developed a nodejs mysql orm. It is very simply and basic package now. It can select data from database and insert data to mysql database.

    I don’t want it to be less documented. I am working on documentation more than coding.

    Yes i know, i am not good with standarts and code documentation, i am planning to learn through this project.

    Actual reason to develop this project for me is implementing passport-local to a express project using mysql database is not that easy. Models can search user easily and i could implement passport-local more easier using this package.

    After 24 hours there is a suprise for me. Because package has been downloaded for 87 times. It is the best download score for me. Yes i saw 4k and 5k in months but, this is the best for 24 hours.

    You can test, contribute, comment to this project. This package will be the best Mysql Model Package for Nodejs with your help.

    Link To MyModel

  • Minibüs ve Teknoloji

    Minibüs ve Teknoloji

    Yirmi gündür staj yapıyorum. Her sabah fabrikanın servisine binmeden önce ve servisten indikten sonra eve gidene değin minibüse binmek durumundayım.

    Minibüsün ne olduğunu bilmeyen yoktur. Burada tarif edecek halimiz yok. Otobüsün daha küçük, istediği her yerde duran ve her istediğinde şerit değiştiren versiyonu.

    Sıkıştırma
    Sıkıştırma

     

    Tabii ki otobüsten tek farkı bu değil. Bir sıkıştırma (compression) konusunda ve kayıpsız sıkıştırma (loseless compression) altın madalyaları var. Arkayı beşleme, ayaktakileri onbeşleme, tavana adam döşeme ve bunları kayıpsız olarak indirme konularında muhteşem bir başarıları var.

    Ancak pek çok kişinin bildiği üzere minibüsler ayakta yolcu taşınması durumu polisi kızdıran bir durum. Polisi gören, ayakta yolcu taşıyan minibüs sürücüsü repliği ise her daim:

    Çömelelim arkadaşlar.

    olacaktır.

    Senin benim bildiğimi, görevi halkın günlük hayatının kanunlara uygun işlemesinden sorumlu olan kolluk kuvvetinin bilmemesi mümkün değil. Peki emniyet amirleri çalışanlarının görmediğini mi düşünüyor bu minibüsleri? Onu da sanmıyorum.

    Siyaset, kavga falan filan, bunlar gelip geçicidir bu yazıyı siyasi kavgama adamayı çok isterdim, ama değmez.

    Minibüslerde bizler sıcakta ayakta, yapışmış bir vaziyette giderken, hiç bir sorumluluk hissetmeden “abi çökelim. polis var” diyen minibüs şöförünü bir de haklı görüyoruz malesef.

    Teknolojiyi nereden bağlayacaksın diyorsunuz değil mi?

    Şirketler, önceleri elleriyle yazıp maaşları sigorta kurumlarına gönderirlerdi. Sonra çıktı oldu, sonra cd oldu. Artık fiziksel olarak göndermiyorlar. Artık sadece internetten bildiriliyor.

    Eskiden polislere ulaşmak için telefonun düşmesini beklemeliydik, artık cep telefonumuz üzerinde bir uygulamadan anında şikayetçi olabiliyoruz. Mobese kameraları olası bir durum için sürekli kayıtta.

    Asla olmaz denilen onca şey olduktan sonra, kameraların minibüslerin içerisine girmeyeceğini kimse söyleyebilir mi? Ya da bıraksak kamerayı, denetim sisteminin yoldan geçen araçları tek tek tartmayacağının bir garantisi var mı? Minibüslere cep telefonu gibi kişisel bir aygıt kullanarak binilmeyeceğinin garantisi var mı?

    Kısacası ister minibüs, ister taksi, ister otobüs, ne olursa olsun, gelecekte daha denetlenebilir bir fiziksel ortam olacağını hepimiz biliyoruz. Bırakın minibüsleri iş yerlerimiz hatta evlerimiz bile daha denetlenebilir olacak. Daha denetlenebilir bir ortam bizim için daha büyük güvenlik demek.

    Takip edilebilir sokaklar, araçlar, ortamlar bizim için fazladan güvenlik demek. Daha rahat, daha güvenli, daha huzurlu hareket edebileceğimiz bir dünya kurulacak. Peki bu kadar iyimser miyim? Tabii ki hayır.

    Bu kadar çok takip edilebilirlik günlük tabirle “fişlenme” getirecektir. Bu da bizi modern zamanların en büyük tartışmalarından biri olan özgürlük mü güvenlik mi daha önemlidir tartışmasına götürecek. Uzun yıllardır devam eden bu tartışmayı burada sonlandıracak halimiz yok, ancak güvenilebilir bir ortamda yaşamak hepimizi daha rahat ve daha huzurlu insanlar haline getirecektir.

    Teknolojinin hayatlarımızı ne kadar kolaylaştırabildiği ortada. Peki teknoloji güvenlik – özgürlük dengesinde hayatlarımızı daha güvenli yapmayı başarabilecek mi? Onu gelecek yıllarda göreceğiz.

  • Programlama Bilmek Hayatımı Nasıl Değiştirdi?

    Programlama Bilmek Hayatımı Nasıl Değiştirdi?

    Ben bir Endüstri Mühendisi adayıyım. Ancak hayatımı yazılımcılık yaparak kazanıyorum. Neden böyle olduğu çok önemli değil ancak bu durum benim hayatımı bir şekilde etkiledi. Bir tek kelime, hayatımı baştan aşağı nasıl kuracağımı etkiledi, etkiliyor. Öyle ki kız arkadaşıma bile bir keresinde hediye olarak program yazmıştım.

    programlama.

    Programlama
    Programlama

    Programlama bildiğim için pek çok insandan erken para kazanabildim, insanlarla tanışabildim, iş hayatına dair daha çok şey öğrendim. Çünkü programlama tek başına bir yeterlilik.

    Bir şans eseri, liseden beri kod yazmaya, programlama konusuna çok ilgiliydim. Lisedeyken ekranları çatlatan kodlar yazdığım söylenemez tabii. Lise 3. sınıf öğrencisiyken, Infomatrix 2010 yarışmasında Bronz Madalya kazandım.

    Yarışma için Romanya’ya gidip gezmiş olmam bile herhangi bir lise öğrencisi için yeterli ve teşvik edici bir şey.

    Üniversitede Faydalarını Gördüm

    Üniversitede aldığım matematik eğitimi ile programlama konusundaki yeteneğim daha da arttı. Henüz 1. sınfıtayken, son sınıf öğrencisi bir arkadaşıma, tezinde kullancağı basic scriptini yazdım. Danışman hocası ve diğer hocaları karşısında ilk defa görünür oldum bu sayede. Hocalar bile bazı noktalarda bana danışıyordu. Bir birinci sınfı öğrencisi için büyük bir lütuftu.

    IBM’de Çalışmak

    IBM
    IBM

    Henüz ikinci sınıftayken sürekli kendi kendime kodlar yazıp denemeler yapıyordum. 2013 Mayısında henüz 2. sınıf öğrencisi iken bir mucize oldu. Bir anda pek çok insan için heyecan uyandıran, hayallerde baş köşeyi süsleyen IBM’in çalışanı oluverdim. Stajer olarak Watson Content Analytics yerelleştirmesinde kullanılacak yarıdmcı programı yazıyordum.

    Bu arkadaşlarım için süprizdi dersem yalan olur. Bu benim için bile çok büyük bir süprizdi. Kod yazabiliyorum ama o kadar da yazamıyorum derdim hep kendi kendime. Gerçekten de o kadar yazamıyormuşum. Daha sonra öğredim ki sadece işini iyi yapmak yeterli değilmiş. İnsani meziyetler de en az işinizi iyi yapmak kadar önemliymiş.

    Yapay Sinir Ağları
    Yapay Sinir Ağları

    Projeler

    Dört arkadaş, tasarım dersimiz için bir proje yapmaya karar verdik. Uzun düşünmeler sonucunda projemizin konusunu bulduk. Yapay sinir ağları kullanılarak bakır fiyatlarındaki değişimlerin öngörülmesi. İsim çok havalı. Bunun farkındayım. Projemiz de havalıydı.

    Bakır fiyatları, çıkarıldığı bölgedeki iklim koşullarına bağlıdır. Eğer havalar iyiyse, fiyatlar düşer, kötüyse çıkar. Biz de bu ikisi arasındaki korelasyonu kurma işini yapay sinir ağlarına bıraktık.

    Bu proje benim için başka bir dönüm noktası oldu çünkü başarı oranımızı %72 civarında hesapladık. Demek ki, bilgisayarlara, bazı şeyleri tahmin ettirmek mümkündü. Ve bilişime olan bakışım bu proje ile birlikte bir kez daha değişti.

    Siyasi İstikrar Önemlidir

    İkinci kez proje yapmam gerektiğinde 2 arkadaşım ile birlikte benim bulduğum bir algoritmayı kullanarak, hehangi bir cümle içerisinde, hakkında bir kaat bildirilen ürün için olumlu mu olumsuz mu kanaat bildirildiğini anlamaya çalıştık. Kısacası, yazdıklarınızı anlıyorduk. Üstelik bulduğum algoritma o kadar hafif, taşınabilir ve kolaydı ki; anlattığım kimse bunun sadece toplama ve çarpma işlemi kullanarak yapılabileceğine inanmıyordu.

    Twitter üzerinden yerel seçimlerle ilgili verileri topladık ve hesaplamalarımızı yaptık. Programın ilk sürümünün, yazılanları doğru anlama oranı %92 idi. Bu kadar kısa süre içerisinde hazırlanan bir demonun bu başarı oranına ulaşması harika idi.

    Neden buradan para kazanamadın diyebilirsiniz. Biz bir e-ticaret sitesinden randevu almış ve hazırlanmıştık ki: Twitter’a erişim engeli kondu. Siyasi istikrarsızlığın yeni şirketlerin kurulmasını engelleyip, ekonomiye zarar verdiğini yaşayarak öğrendim.

    Sevdiğiniz İşi Yapmak

    IBM’de staj gördüğüm senenin  sonlarına doğru yaklaşırken kendime iş arıyordum. Türkiye’nin en büyük bankalarından biri ile iş görüşmesi yaptım. Her ne kadar iş hoşuma gitse dahi, banka çok uzak olduğu için gitmek istemiyordum. IBM bir kez daha hayatımı değiştirdi.

    IBM’de içerik ürünleri danışmanı olarak işe başladım.

    Henüz 21 yaşında IBM danışmanı oldum.

    Okuduğum bölümle işin alakası yok, olması da gerekmiyor. Sevdiğim iş olduğu için asla kendime bir yük olarak görmedim. Şuan bu blog yazısını yazarken de, bu yazıyı kendime yük ya da fazladan bir iş olarak görmüyorum. Ben bu yazıyı severek yazıyorum. Sitem üzerinde çalışmaktan keyif alıyorum. Sevdiğiniz işi yapın. Ne olduğu, nerede olduğu, nasıl olduğu önemli değil.

    Bitirme Tezi

    Bitirme tezini iki defa yazdım. Bence çok komikti.

    İlk başka düşündüğüm tez konusu bir ticari ürün yaratmaktı ve milyon dolarlar kazanıp hunharca zengin olacağıma çok emindim.

    Ürünün çekirdeğini ortaya çıkarıp denemeler yapmaya başladığımda, tek hatırladığım şey şu:

    Hayal ettiğim ürünün aynısı, beta testine çıkıyordu.

    Bütün motivasyonumu kaybettim. Yaptıkları büyük reklam kampanyasına yetişmemin, onlarla rekabet etmemin imkanı yoktu.

    Tezi bırakmayı, bir sonraki dönem tekrar yapmayı düşündüm. Tez konusundaki bütün motivasyonumu kaybettim. Hatta bir süre için kod yazma konusundaki bütün motivasyonumu kaybettim.

    Ancak bunun üstesinden gelip yeni bir tez yazabildim. Sonuçta rakip çıkması benim elimde olan bir şey değildi ve ben bunun beni kötü etkilemesine izin verip boşuna zaman kaybettim.

    Şimdi olan biteni yazdım, alt alta koydum ve bakıyorum. İyi ki bunların tamamını yaşadım ve bir bilgi parçasının hayatımı değiştirmesine izin verdim. Siz de yorumlarınızla programlama ile ilgili düşüncelerinizi paylaşarak yazıma ve bana katkıda bulunabilirsiniz.

  • Programlama Bilmek Hayatımı Nasıl Değiştirdi?

    Programlama Bilmek Hayatımı Nasıl Değiştirdi?

    Ben bir Endüstri Mühendisi adayıyım. Ancak hayatımı yazılımcılık yaparak kazanıyorum. Neden böyle olduğu çok önemli değil ancak bu durum benim hayatımı bir şekilde etkiledi. Bir tek kelime, hayatımı baştan aşağı nasıl kuracağımı etkiledi, etkiliyor. Öyle ki kız arkadaşıma bile bir keresinde hediye olarak program yazmıştım.

    programlama.

    Programlama
    Programlama

    Programlama bildiğim için pek çok insandan erken para kazanabildim, insanlarla tanışabildim, iş hayatına dair daha çok şey öğrendim. Çünkü programlama tek başına bir yeterlilik.

    Bir şans eseri, liseden beri kod yazmaya, programlama konusuna çok ilgiliydim. Lisedeyken ekranları çatlatan kodlar yazdığım söylenemez tabii. Lise 3. sınıf öğrencisiyken, Infomatrix 2010 yarışmasında Bronz Madalya kazandım.

    Yarışma için Romanya’ya gidip gezmiş olmam bile herhangi bir lise öğrencisi için yeterli ve teşvik edici bir şey.

    Üniversitede Faydalarını Gördüm

    Üniversitede aldığım matematik eğitimi ile programlama konusundaki yeteneğim daha da arttı. Henüz 1. sınfıtayken, son sınıf öğrencisi bir arkadaşıma, tezinde kullancağı basic scriptini yazdım. Danışman hocası ve diğer hocaları karşısında ilk defa görünür oldum bu sayede. Hocalar bile bazı noktalarda bana danışıyordu. Bir birinci sınfı öğrencisi için büyük bir lütuftu.

    IBM’de Çalışmak

    IBM
    IBM

    Henüz ikinci sınıftayken sürekli kendi kendime kodlar yazıp denemeler yapıyordum. 2013 Mayısında henüz 2. sınıf öğrencisi iken bir mucize oldu. Bir anda pek çok insan için heyecan uyandıran, hayallerde baş köşeyi süsleyen IBM’in çalışanı oluverdim. Stajer olarak Watson Content Analytics yerelleştirmesinde kullanılacak yarıdmcı programı yazıyordum.

    Bu arkadaşlarım için süprizdi dersem yalan olur. Bu benim için bile çok büyük bir süprizdi. Kod yazabiliyorum ama o kadar da yazamıyorum derdim hep kendi kendime. Gerçekten de o kadar yazamıyormuşum. Daha sonra öğredim ki sadece işini iyi yapmak yeterli değilmiş. İnsani meziyetler de en az işinizi iyi yapmak kadar önemliymiş.

    Yapay Sinir Ağları
    Yapay Sinir Ağları

    Projeler

    Dört arkadaş, tasarım dersimiz için bir proje yapmaya karar verdik. Uzun düşünmeler sonucunda projemizin konusunu bulduk. Yapay sinir ağları kullanılarak bakır fiyatlarındaki değişimlerin öngörülmesi. İsim çok havalı. Bunun farkındayım. Projemiz de havalıydı.

    Bakır fiyatları, çıkarıldığı bölgedeki iklim koşullarına bağlıdır. Eğer havalar iyiyse, fiyatlar düşer, kötüyse çıkar. Biz de bu ikisi arasındaki korelasyonu kurma işini yapay sinir ağlarına bıraktık.

    Bu proje benim için başka bir dönüm noktası oldu çünkü başarı oranımızı %72 civarında hesapladık. Demek ki, bilgisayarlara, bazı şeyleri tahmin ettirmek mümkündü. Ve bilişime olan bakışım bu proje ile birlikte bir kez daha değişti.

    Siyasi İstikrar Önemlidir

    İkinci kez proje yapmam gerektiğinde 2 arkadaşım ile birlikte benim bulduğum bir algoritmayı kullanarak, hehangi bir cümle içerisinde, hakkında bir kaat bildirilen ürün için olumlu mu olumsuz mu kanaat bildirildiğini anlamaya çalıştık. Kısacası, yazdıklarınızı anlıyorduk. Üstelik bulduğum algoritma o kadar hafif, taşınabilir ve kolaydı ki; anlattığım kimse bunun sadece toplama ve çarpma işlemi kullanarak yapılabileceğine inanmıyordu.

    Twitter üzerinden yerel seçimlerle ilgili verileri topladık ve hesaplamalarımızı yaptık. Programın ilk sürümünün, yazılanları doğru anlama oranı %92 idi. Bu kadar kısa süre içerisinde hazırlanan bir demonun bu başarı oranına ulaşması harika idi.

    Neden buradan para kazanamadın diyebilirsiniz. Biz bir e-ticaret sitesinden randevu almış ve hazırlanmıştık ki: Twitter’a erişim engeli kondu. Siyasi istikrarsızlığın yeni şirketlerin kurulmasını engelleyip, ekonomiye zarar verdiğini yaşayarak öğrendim.

    Sevdiğiniz İşi Yapmak

    IBM’de staj gördüğüm senenin  sonlarına doğru yaklaşırken kendime iş arıyordum. Türkiye’nin en büyük bankalarından biri ile iş görüşmesi yaptım. Her ne kadar iş hoşuma gitse dahi, banka çok uzak olduğu için gitmek istemiyordum. IBM bir kez daha hayatımı değiştirdi.

    IBM’de içerik ürünleri danışmanı olarak işe başladım.

    Henüz 21 yaşında IBM danışmanı oldum.

    Okuduğum bölümle işin alakası yok, olması da gerekmiyor. Sevdiğim iş olduğu için asla kendime bir yük olarak görmedim. Şuan bu blog yazısını yazarken de, bu yazıyı kendime yük ya da fazladan bir iş olarak görmüyorum. Ben bu yazıyı severek yazıyorum. Sitem üzerinde çalışmaktan keyif alıyorum. Sevdiğiniz işi yapın. Ne olduğu, nerede olduğu, nasıl olduğu önemli değil.

    Bitirme Tezi

    Bitirme tezini iki defa yazdım. Bence çok komikti.

    İlk başka düşündüğüm tez konusu bir ticari ürün yaratmaktı ve milyon dolarlar kazanıp hunharca zengin olacağıma çok emindim.

    Ürünün çekirdeğini ortaya çıkarıp denemeler yapmaya başladığımda, tek hatırladığım şey şu:

    Hayal ettiğim ürünün aynısı, beta testine çıkıyordu.

    Bütün motivasyonumu kaybettim. Yaptıkları büyük reklam kampanyasına yetişmemin, onlarla rekabet etmemin imkanı yoktu.

    Tezi bırakmayı, bir sonraki dönem tekrar yapmayı düşündüm. Tez konusundaki bütün motivasyonumu kaybettim. Hatta bir süre için kod yazma konusundaki bütün motivasyonumu kaybettim.

    Ancak bunun üstesinden gelip yeni bir tez yazabildim. Sonuçta rakip çıkması benim elimde olan bir şey değildi ve ben bunun beni kötü etkilemesine izin verip boşuna zaman kaybettim.

    Şimdi olan biteni yazdım, alt alta koydum ve bakıyorum. İyi ki bunların tamamını yaşadım ve bir bilgi parçasının hayatımı değiştirmesine izin verdim. Siz de yorumlarınızla programlama ile ilgili düşüncelerinizi paylaşarak yazıma ve bana katkıda bulunabilirsiniz.

  • Windows 10 Görev Görünümü

    Windows 10 Görev Görünümü

    Görev Görünümü Nedir?

    Görev görünümü Windows 10 ile birlikte tanırılan bir özellik. OsX ve Linux’da benzerleri olan bir özellik olmasına rağmen Windows ancak 10 sürümünde bu özelliği içerisine kattı.

    Görev görünümü temelde çalışan bütün uygulamalarınızı derli toplu bir arada görebileceğiniz, sanal masaüstleri kullanabileceğiniz, sanal masaüstleri arasında geçiş yapabileceğiniz bir özellik.

     

    Windows 10 Görev Görünümü
    Windows 10 Görev Görünümü

    Görev Görünümü Neler Kazandırıyor?

    Görev görünümü aynı anda pek çok programı aynı anda kullanan kişiler için elini alt+tab tuşlarına götürmeden kolayca kullanabilecekleri bir özellik. TouchPad’de üç parmağınızı yukarı doğru kaydırdığınızda görev görünümüne erişebiliyorsunuz.

    Üstelik her uygulamanın anlık görüntüleri de yer aldığından, örneğin Microsoft Word ile pek çok dökümanda çalışıyorsanız, hangi pencereye geçeceğinizi anlamanız çok kolay.

    Günlük kullanımımızı çok kolaylaştıracak bu özelliğe OsX kullananlar daha aşikar ve günlük hayatlarında yerini çoktan aldı. Windows 8 ve daha öncesinden gelen kullanıcılar için ise henüz yeni bir özellik ve alışmalarına biraz daha vakit var.

    Sanal Masaüstü Nedir?

    Bilgisayarlarımızı kucağımıza aldığımızda genellikle tek bir ekrana sahip oluyorlar. Ancak bazen iki farklı ekrana ihtiyaç duyarız ve fiziksel olarak farklı iki ekranımız olmadığından başka bir çözüm yolu bulmamız gerekir.

    Yine OsX ve pek çok Linux dağıtımında uzun süredir bulunan çoklu masaüstü özelliği Windows 10’da görev görünümü ile birlikte yerini aldı. Tek fiziksel monitöre sahip olduğunuz anlarda iki ya da istediğiniz kadar sanal masaüstü açarak işlerinizi daha kolay götürebilirsiniz.

    Örneğin bir tarafta bir maç sonucu takip edip diğer masaüstümde onunla ilgili bir yazı hazırlayabilirim. Aralarında geçiş yapmak için ise tek yapmam gereken, dört parmağımı sağa ve sola sürüklemek. Bu sayede farklı masaüstleri arasında geçiş yapabilirsiniz.

    Windows 10 Çoklu Masaüstü
    Windows 10 Çoklu Masaüstü

     

    Masaüstleri birbirinden bağımsız bir şekilde çalışabiliyor yani ilk masaüstünde açtığınız bir pencere diğer masaüstünde gözükmüyor. Bu özellik, iş yerinde çaktırmadan dizi izleyen arkadaşlarımız için harika bir özellik 🙂