Good Contents Are Everywhere, But Here, We Deliver The Best of The Best.Please Hold on!
Data is Loading...
Your address will show here 12 34 56 78
Android, Blog
 

Sanırım asıl istediğimiz yere henüz ulaşabildik, bunun sebebi tane tane, bilene bilmeyene, herkese anlatabilmek. Evet, belli seviyenin üstünde isen biraz fazla uzattığımı düşünebilirsin, lütfen düşünme, herkes sen kadar gelişmiş değil, üzgünüm ?

Birde buraya bir anda ışınlandı isen Scotty, alttakileri öncelik vermeni tavsiye ederim.

Retrofit 2.x ile REST Api Yönetimi #1
Retrofit 2.x ile REST Api Yönetimi #2
Retrofit 2.x ile REST Api Yönetimi #3

Neyse, ufak kişisel bir fikir ve önerinin ardından elimizde neler var bakalım.

- Veritabanı
- Api
- CRUD Web App
- Android App (Henüz boş, sadece bir Sorun sınıfımız var.)

Şimdi Retrofit 2.x kısmına geçebiliriz ? Dını dını dını…

Eklediğimiz kütüphanelerden A, Retrofit’e aitti bu arada ve oluşan JSON verisini çekebilmemiz için bir converter ihtiyacımız olacak, bu da B kütüphanesi ile sağlayacağımız durum.

Adım 4.1 — Yararlı Kontroller

Ben genelde asıl isterlerin ne ile çalışacağına dikkat ederek önce bunlara ait gereklerin yeterli olup olmadığını kontrol edecek metodları oluşturuyorum.

Bunun için diğer paketlerimizin yanına yeni bir paket ekleyelim ve bu klasörün adını utils olarak belirtelim, bu benim tarzım, faydalı kontroller olarak düşünebiliriz. Ardından utils klasörümüze sağ tıklayarak içerisine yeni bir class yaratalım ve “InternetConnection” olarak adlandıralım. Çünkü bize internet bağlantısı lazım.

package com.can.anyma.apimanagementapp.utils;

import android.content.Context;
import android.net.ConnectivityManager;
import android.support.annotation.NonNull;

/**
* Created by anyma on 16.05.2017.
*/

public class InternetConnection {
/**
* Check Internet connection
*/
public static boolean checkConnection(@NonNull Context context) {
return ((ConnectivityManager) context.getSystemService
(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo() != null;
}
}

Kısa vadede şimdilik bu işimizi görecektir, fakat ileride başka yeterlilikleride bu klasör altına ekleyebiliriz.

Adım 4.2— Api’ye Bağlanma

Api’ni istediğimiz kısmına bağlanmak için api>service paketimize bir Interface eklememiz gerekmekte, bunuda service paketine sağ tıkladıktan sonra New>Class seçeneğini seçerek yapacağız. Kind kısmından ise yaratacağımız şeyi Interface olarak belirteceğiz.

 

Geldik Retrofit ile ilk ilişki kuracağımız yere. Burada import kısımları otomatik gelecektir fakat gelmez ise , model klasörümüzdeki Sorun classını importlamakta önemli.

Bu kod bizim Api’ye POST metodu ile veri göndereceğimizi ve birazdan RetroClient içerisinde URL’sini belirtecek olduğumuz Api’nin sonuna URL/sorunlar şeklinde erişebileceğini belirtmekte. Api’nizin birçok sayfası olabilir değil mi? Bu bir sayfasına erişmemizi sağlıyor işte. Ve içerisine Body olarak Sorun tipinde bir sorun objesi alıyor. Bu sorun objesini MainActivity’den göndereceğiz. Bu metoda createSorun adını vermişiz.

package com.can.anyma.apimanagementapp.api.service;
import com.can.anyma.apimanagementapp.api.model.Sorun;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.POST;
/**
* Created by anyma on 14.05.2017.
*/
public interface ApiService{
    @POST("sorunlar")
Call<Sorun> createSorun(@Body Sorun sorun);
}

Adım 4.3 — Client Oluşturma

Şimdi biz Api’ye bağlandığımızda ondan bir istekte bulunacağız, dolayısıyla bir istemci yani client’a sahip olmalıyız.

Bunun için api>service paketimize bir RetroClient class’ı eklemek.

URL kısmına kendi URL’nizi yazmayı unutmayın ve unutmayın ki Client’te URL/sorunlar şeklinde belirttik. Yani şu anda Post URL/api/sorunlar dizinine gidecek.

package com.can.anyma.apimanagementapp.retrofit.api;

import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

/**
* Created by anyma on 16.05.2017.
*/

public class RetroClient {

/********
* URLS
*******/
private static final String ROOT_URL = "http://URL/api/";

/**
* Get Retrofit Instance
*/
private static Retrofit getRetrofitInstance() {
return new Retrofit.Builder()
.baseUrl(ROOT_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
}

/**
* Get API Service
*
*
@return API Service
*/
public static ApiService getApiService() {
return getRetrofitInstance().create(ApiService.class);
}
}

Adım 4.4 — Api ile Veritabanı’na Veri Gönderme

MainActivity içerisinde fab_menu_1 bizim Veri Ekle butonumuz idi. Onu aşağıdaki şekilde düzenleyerek bir sorun objesi yaratalım ve onu yine MainActivity içerisinde yaratacağımız createRequest methoduna gönderelim.

fab_menu_1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {

Sorun sorun = new Sorun(
yetkili.getText().toString(),
bolge.getText().toString(),
aciklama.getText().toString()
);


createRequest(sorun);
}
});

createRequest metodu ise aşağıdaki güzellik.

private void createRequest(final Sorun sorun) {

/**
* Checking Internet Connection
*/
if (InternetConnection.checkConnection(getApplicationContext())) {
final ProgressDialog dialog;
/**
* Progress Dialog for User Interaction
*/
dialog = new ProgressDialog(CreateSorun.this);
dialog.setTitle("Hey Wait Please...");
dialog.setMessage("I am getting your JSON");
dialog.show();

//Creating an object of our api interface
ApiService api = RetroClient.getApiService();

/**
* Calling JSON
*/
Call<Sorun> call = api.createSorun(sorun);

final Sorun tempSorun = sorun;

/**
* Enqueue Callback will be call when get response...
*/

call.enqueue(new Callback<Sorun>() {
@Override
public void onResponse(Call<Sorun> call, Response<Sorun> response) {
//Dismiss Dialog
dialog.dismiss();

if(response.isSuccessful()) {
/**
* Got Successfully
*/
//uploadFile();

Intent intent = new Intent(CreateSorun.this, MainActivity.class);
startActivity(intent);

} else {
Snackbar.make(parentView, "Something went wrong.", Snackbar.LENGTH_LONG).show();
}

}

@Override
public void onFailure(Call<Sorun> call, Throwable t) {
Toast.makeText(CreateSorun.this, "Bir şeyler yanlış gitti :(", Toast.LENGTH_SHORT).show();
}
});

} else {
Snackbar.make(parentView, "Internet Connection Not Available.", Snackbar.LENGTH_LONG).show();
}

}

Bitti bu arada ?? Şimdi Visual Studio ile önce serverını aktif hale getir ve sonra Android Uygulamandan bir veri ekle ve SorunTable sayfana bak tarayıcıdan.

  • Karşılaşacağın bir sorun var, Genymotion ile localhost arasından iletişim kurmak zor ve telefonunada atarsan localhost diye bir şey mantıklı olmuyor, localler farklı ?
  • Visual Studio için Conveyor eklentisi localhost’u ip’ye çevirmeni sağlıyor. Yüklersen bu sorunu aşmış olacaksın. Tools > Exentions and Updates kısmında ve Enable etmen gerekebilir projeyi her başlattığında.
Yeni adresini Android Uygulamanda değiştirmeyi unutma!
 

Sonuç ?

 

BAM!?

Ben kendimdeki uygulamayı biraz daha geliştirdim ama, ürünün tam versiyonu aşağıdaki github dosyalarında. Senin isteğine göre adım adım veri çekme, düzenleme gibi adımlarıda anlatabilirim. Hatta istersen bu projeyi Microsoft Azure ‘a yükleyerek canlı hale getirebiliriz. ?

Web Api

Api Management App

Aşağıdaki android uygulaması veri ekleyebiliyor, verileri belirli bir kalıpta listeleyebiliyor, Azure Blob’larına resim yükleyebiliyor falan. ?

Beni takip etmeyi unutma, çekinmeden yazmayıda.

www.anymaa.com

0

.Net, Android, Blog, Genel
 

Buraya laps geldi isen önce #1 ve #2 kısmını tavsiye ederim. Api yazdık, CRUD Web uygulaması oluşturduk. ?

Retrofit 2.x ile REST Api Yönetimi #1
Retrofit 2.x ile REST Api Yönetimi #2

Bende Api var, CRUD uygulamam var birde. Bu Api’ye de bir URL ile erişebiliyorum. ?⁠⁠⁠⁠ Aman Tanrım! Çok hızlı düşünmeni istemem ama fikirlere bak! Bu Api’yi Server’a atsan, yani senin localhost’unda değilde, www.alanadi.com/api adresinde çalışsa, wow, en basitinden Evernote yazarsın bence. Çünkü bu sana ne sağlıyor.

Veriye lokasyon bağımsız erişebilmeni, değiştirebilmeni… Nasıl? GET, POST metodları ile. Yani sen yapabiliyorsan makas ile POST istemi kullanarak Controller’ına uygun objeyi gönder, veritabanına yazar.

Biraz Api’yi açıklamak istiyorum sana; fakat bu arada kavramların ezber bilgisi ile öğrenilmesine çok sıcak bakan birisi değilimdir. Api’nin açılımını vermeyeceğim mesela, başta REST’in verdim, merak etme diye. Fakat kullanımını bil, ne işe yaradığını yeter. Bunlar onunla neler yapabileceğini hayal etmeni sağlayacak kavramlar. İsmi… Meh…

Api, yazdığın uygulamanın verilerinin istediğin kısmını ya da fonksiyonlarının istediğin kısmını dışarıya aktarmak için kullandığın bir şey. Güvenli değil gibi geliyor böyle ama Token vererek, Session Control yaparak ya da bilmiyorum başka şekillerde Api’ni koruma yöntemleri mutlaka vardır.

Bu kadar uzattığımız yeter, hadi basit bir arayüz ile Android uygulaması yazalım. Burada umarım işini zorlaştırmaz ama bence sana bir kıyak yapacağım, uygulamaya dışarından tasarım kütüphaneleri ekleyerek oluşturacağım, o yüzden bu kısım biraz uzasa da işine yarayacak bilgiler içerecek, emin ol.

İhtiyaçlar listesine Android Studio’da eklendi bu arada, onu indirip kurmalısın. Birde Genymotion’un olsun, uygulamanı test etmek için.

Adım 3.1 — Android Projesi Oluşturma

Menüden File > New > New Project seçeneği ile yeni bir proje oluşturalım. Projemize bir isim verek diğer adıma geçelim.

 

Hizmet sunacağımız en düşük Android sürümünü seçelim.

 

Sonrasında boş bir Activity oluşturalım.

 

Son olarakta bu Activity’mize bir isim verelim.

 

Adım 3.2 — Çalışma Düzenimizi Oluşturma

Boş bir proje oluştu bizim için, ne kadar düzenli hareket edersekte o kadar rahat ve kolay çalışırız.

Soldaki Project kısmından app>java altında bulunan yarattığınız Activity’nin bulunduğu klasöre sağ tıklayın ve

 

New>Package seçeneği ile 2 adet paket oluşturun, isimleri ise “api” ve “ui” olsun.

 

Ardından “api” paketi içerisine “model” ve “service” isimleri ile 2 paket daha oluşturun. MainActivity’nizide “ui” içerisine taşıyın. Son durum şu yani, her şey ileride rahat etmek için bu arada, istersen yapmayabilirsin.

 

Adım 3.3 — Projemize Gerekli Kütüphaneleri Ekleme

Kütüphane?

Bazı insanlar var çok güzel biliyor musun? 🙂 Bir sürü kişi bu arada, farklı farklı. Senin işini kolaylaştıracak ya da güzelleştirecek bir sürü kod parçaları yazmışlar ve bunları nasıl kullanabileceğini de çoğu açıklamış. Bu kod parçalarına biz kütüphane diyoruz. Bunu Google’da yazmış olabilir, Ahmet’te, güveniyorsan, işine yarıyorsa, işini güzelleştiriyor ya da kolaylaştırıyorsa projene ekler kullanırsın. Github’ta bir sürü var.

Soldaki Project menümüzden Gradle Scripts > build.gradle (Module: app) olana çift tıklıyoruz. İşte tüm bu kütüphanelerin nerede olduğunu burada belirteceğiz. -dependencies kısmında.

compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.0-beta4'
compile 'com.squareup.retrofit2:retrofit:2.2.0' //A
compile 'com.squareup.retrofit2:converter-gson:2.2.0' //B
compile 'com.weiwangcn.betterspinner:library-material:1.1.0' //C
compile 'com.github.clans:fab:1.6.2' //D
compile 'com.android.support:design:25.3.1' //E
testCompile 'junit:junit:4.12'

Kütüphanelerin yanına A,B,C şeklinde belirttim, hangisinin bizim için ne işe yaradığını bölümlerde bahsederek anlatacağım. Şimdi anlatıp kafa şişirmek istemem 😀 Bu arada bunları ekleyince Android Studio üstten uyarı verir “Sync Now” a basarak bu kütüphaneleri projenize kaydetmiş olursunuz.

Bu kütüphanelerin hemen ne işe yaradığını merak ediyorsanızda tırnak işaretleri içerisinde “com” ile başlayan kısmı komple kopyalayıp Google’a sorun 🙂 Belki yeni versiyonu çıkmıştır, sonundaki versiyon numarasını değiştirerek yenisini eklersiniz 🙂

Adım 3.4 —Arayüz?

Hemen küçük bir özet, “ui” içindeki MainActivity bir java class’ıdır. Burada beyin kodlarını, çalışan aksamı yazarsın, farklı yöntemleride vardır ama ilk düzen böyle. Birde bu yazdığın kodların görsel olarak girdi, çıktı aldığın bir arayüzü vardır. Basit düşünelim iki sayıyı çarpacak bir program yazıyorsun, 2 sayıyı alıp, sonucu yazacağın bir arayüz olmalı, bu çarpmayıda Activity’nde yapıyorsun. Activity’n ile ilişkili arayüz res>layout içerisindedir, eğer o Activity’i hangi arayüz ile ilişkilendirdiğini bilmiyor isen Activity kodlarında bu vardır. Aşağıda “activity_main” miş bizim için. Umarım uzatmıyorumdur 🙂

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}

activity_main.xml dosyana çift tıklarsan Android Studio sana arayüz inşaa edebilmen için bir yapı sunar. Altta Design/Text sekmeleri vardır, tasarımı XML şeklinde tutar, bu XML kodları Text kısmındadır. Bazı ekipmanları buradan düzenleyip ekleyip kaldıracağız, o yüzden burayıda bilmen önemli. Bunlar tasarım için bu arada.

Adım 3.5 — Arayüz Tasarımı

Android uygulamamızın amacı Api’de bulunan veriyi çekmek ya da Api yardımıyla veritabanına veri göndermek olacağı için, veritabanımızdaki verilere ait birer Edittext ve verileri listeleyebileceğimiz bir ListView ile ekle, veriyi çek butonlarına ihtiyacımız var.

 
C,D,E kütüphanelerini tasarım için kullandık.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:fab="http://schemas.android.com/apk/res-auto"
tools:context="com.can.anyma.apimanagementapp.ui.MainActivity"
android:orientation="vertical"
android:weightSum="1">


<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<EditText
android:id="@+id/yetkili"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Yetkili" />
</android.support.design.widget.TextInputLayout>

<com.weiwangcn.betterspinner.library.material.MaterialBetterSpinner
android:id="@+id/bolge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Bölge Seçiniz"
android:textColorHint="#05ab9a"
app:met_floatingLabel="normal" />

<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<EditText
android:id="@+id/aciklama"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Açıklama" />
</android.support.design.widget.TextInputLayout>

<ListView
android:id="@+id/veri_list"
android:layout_width="match_parent"
android:layout_height="match_parent" />

</LinearLayout>


<com.github.clans.fab.FloatingActionMenu
android:id="@+id/material_design_android_floating_action_menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="11dp"
android:layout_marginLeft="11dp"
android:layout_marginRight="11dp"
fab:menu_animationDelayPerItem="55"
fab:menu_backgroundColor="@android:color/transparent"
fab:menu_buttonSpacing="0dp"
fab:menu_colorNormal="#1E88E5"
fab:menu_colorPressed="#1565C0"
fab:menu_colorRipple="#99d4d4d4"
fab:menu_fab_size="normal"
fab:menu_icon="@drawable/fab_add"
fab:menu_labels_colorNormal="@android:color/background_light"
fab:menu_labels_colorPressed="#444"
fab:menu_labels_colorRipple="#66efecec"
fab:menu_labels_cornerRadius="3dp"
fab:menu_labels_ellipsize="none"
fab:menu_labels_hideAnimation="@anim/fab_slide_out_to_right"
fab:menu_labels_margin="0dp"
fab:menu_labels_maxLines="-1"
fab:menu_labels_padding="8dp"
fab:menu_labels_position="left"
fab:menu_labels_showAnimation="@anim/fab_slide_in_from_right"
fab:menu_labels_showShadow="true"
fab:menu_labels_singleLine="false"
fab:menu_labels_textColor="#212121"
fab:menu_labels_textSize="15sp"
fab:menu_openDirection="up"
fab:menu_shadowRadius="1dp"
fab:menu_shadowXOffset="1dp"
fab:menu_shadowYOffset="1dp"
fab:menu_showShadow="true">

<com.github.clans.fab.FloatingActionButton
android:id="@+id/fab_menu_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_check_white_24dp"
fab:fab_colorNormal="#64B5F6"
fab:fab_colorPressed="#BBDEFB"
fab:fab_label="Verileri Çek"
fab:fab_size="mini" />


<com.github.clans.fab.FloatingActionButton
android:id="@+id/fab_menu_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_lead_pencil_white_18dp"
fab:fab_colorNormal="#123d60"
fab:fab_colorPressed="#64B5F6"
fab:fab_label="Veri Ekle"
fab:fab_size="mini" />
</com.github.clans.fab.FloatingActionMenu>

</RelativeLayout>

Basit bir arayüz oluşturduk. Bunu tasarım kısmından sürükle bırak ile yapabileceğiniz gibi üstteki kodu text kısmına yapıştırarakta elde edebilirsiniz. Fakat res>drawable klasörüne .png resmi şeklinde koyduğum ikonları eklemelisiniz ya da siz farklı ikonlar kullanabilirsiniz. Id’lerimizide verdiysek kullandığımız ögeleri kodlamaya geçebiliriz.

Adım 3.6 — Activity ve Arayüz Arasında Verileri Ayarlama

MainActivy classımıza geri dönelim. Aşağıdaki kod sayesinde tüm ögelerimizi kullanıma hazır hale getirdik ve spinner’ımızın içerisine 4 şehir gönderdik manuel olarak.

package com.can.anyma.apimanagementapp.ui;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;

import com.can.anyma.apimanagementapp.R;
import com.github.clans.fab.FloatingActionButton;
import com.weiwangcn.betterspinner.library.material.MaterialBetterSpinner;

public class MainActivity extends AppCompatActivity {

String[] SPINNERLIST = {"Ankara", "Eskişehir", "İstanbul", "İzmir"};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

final EditText yetkili = (EditText) findViewById(R.id.yetkili);
final EditText aciklama = (EditText) findViewById(R.id.aciklama);
ListView veri_list = (ListView) findViewById(R.id.veri_list);

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, SPINNERLIST);
final MaterialBetterSpinner bolge = (MaterialBetterSpinner)findViewById(R.id.bolge);
bolge.setAdapter(arrayAdapter);


FloatingActionButton fab_menu_1 = (FloatingActionButton) findViewById(R.id.material_design_floating_action_menu_item1);
FloatingActionButton fab_menu_2 = (FloatingActionButton) findViewById(R.id.material_design_floating_action_menu_item2);

fab_menu_1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {

}
});
fab_menu_2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {

}
});
}
}

Adım 3.7 — Model Sınıfı Oluşturma

api>model klasörümüze sağ tıklayarak yeni bir class yaratalım. Senaryomuz gereği bu classı “Sorun” olarak adlandırdım ve aşağıdaki gibi gerekli ögeleri yapılandırdım.

package com.can.anyma.apimanagementapp.api.model;

/**
* Created by anyma on 14.05.2017.
*/

public class Sorun {
private Integer id;
private String yetkili;
private String bolge;
private String aciklama;

public Sorun(String yetkili, String bolge, String aciklama) {
this.yetkili = yetkili;
this.bolge = bolge;
this.aciklama = aciklama;
}

public Integer getId() {
return id;
}
}

Adım 3.8 — Gerekli İzinleri Tanımlama

Bizim Api’ye uygulamamız üzerinden erişebilmemiz için, uygulama internet bağlantısına ihtiyaç duyacaktır, bunu app>manifests>AndroidManifest.xml içerisinde gerekli yerde belirtiyoruz.

 
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

Şimdi uygulamamızın boş yapısı Retrofit 2.x ile veri göndermek/almak için hazır. Diğer yazıda Retrofit 2.x ile Api’ye bağlanıp, nasıl veri transferi yapacağımızı anlatacağım.

Android kısmını tasarımdan dolayı biraz uzatmış olabilirim fakat elimden geldiğince tane tane anlatmaya çalıştım ki her şey anlaşılır bir şekilde ilerlesin. Ama sen yinede sorun yaşıyorsan web sitem üzerinden bana ulaşabilirsin 🙂

0

.Net, Android, Blog, Genel

Buraya uçarak geldi isen önce #1 kısmını tavsiye ederim. Api yazdık orada 🙂

Retrofit 2.x ile REST Api Yönetimi #1

Şimdi elimizde kullanabileceğimiz bir api var, ama buna veriyi sürekli Sql Management Studio üzerinden mi ekleyeceğiz? Mantıklı değil, değil mi?

Hadi CRUD Uygulaması yazalım ? (Bence yine yazmayacağız ama sen bilirsin ? )

Adım 2.1 — View Ekleme

Solution Explorer kısmından Controllers > Add > Controller ile bir Controller ekleyelim.

 

Aşağıdaki ekranı daha önce görmüştün ? Bu sefer “MVC 5 Controller with views, using Entity Framework” seçimini yaparak onaylıyoruz.

 

Daha öncede yaptığımız gibi;

Model class : TABLO_ADI (PROJE_ADI)

Data context class : ENTITY_ADI (PROJE_ADI)

Burada da Controller name kısmı sizi tarayıcınızda bu uygulamanın tablo sayfasına ulaştığınız uzantı olacak, o yüzden düzgün bir isim verirseniz daha kolay olacaktır.

 

BAM! bu tek adımda bitti yahu ? Bu kadar kolay olabilir mi? Ama öyle ? Orada Create New, Edit, Delete gibi butonlar var ve onlar çalışıyor bu arada ? Basit bir arayüz, otomatik oluşturulmuş, dersen çok basit, MVC hakkında da bir şeyler yazmam için beni teşvik et, tasarımcı adamım sonuçta, şekilli bir şeylere dönüştürürüz ? Oda basit, gerçekten.

 

Mantık olarak şu ana kadar ne yaptık,

# Bir veritabanı oluşturduk.
# Veritabanını projemize ekledik.
# Bu projeyi yönetmesi için bir Controller oluşturduk.
# Sonra web uygulaması ile yönetebilmek için bir Controller oluşturduk.

Artık bir Android uygulaması yazarak Retrofit kısmına geçebiliriz. Bir sonraki yazıda bunu gerçekleyeceğiz. ?

Sana bu kadarı lazım olduğu için geldi isen, hoşça kal, fakat dahası lazımsa devam yazımda yanımda olmayı unutma…

0

.Net, Android, Blog, Genel

 

Baştan söylemek istediklerim;

Olabildiğince hiç bilmeyen, belki programlama ile çok az ilgisi olan birisine ilham olması için her şey adım adım anlatılmıştır.

Plan aşağıdaki gibidir, fakat her an değişebilir 🙂

1. Web Api Oluşturma 
2. Web Uygulaması ile Api Yönetimi 
3. Android Uygulama Geliştirme 
4. Web Api Verilerimize Erişme, Ekleme 

REST (Representational state transfer) client ve server arasında iletişim kurmanızı sağlayan bir mimari (Bknz. SOAP, RPC). Bu iletişimide HTTP protokolü üzerinden yapar.

Yani ortada bir client, bir server var, bu client aslında sadece POST, GET, PUT, DELETE vb. gibi bir kaç kelimeyi biliyor ve HTTP üzerinden haberleşme yapılıyor.

Hadi önce bir REST Api Server oluşturarak başlayalım ve basit bir CRUD (Crate, Read, Update, Delete) uygulaması olsun.

Bunuda Asp.NET ile yapacağız, yani Visual Studio’ya ihtiyacımız var ve Database olarak Sql kullanacağız yani Sql Server Menagement Studio’da fena olmaz.

Hemen ufak bir senaryo oluşturalım, bir sorun takip sistemimiz var ve çalışan sahada bir sorun gördüğünde bunu Android cihazındaki uygulamaya kaydediyor, yöneticide önündeki monitördeki Web Uygulaması ekranından bu sorunu takip edebiliyor.

Adım 1.1 — Veritabanı Tablosu

Görüntüdeki gibi basit bir veritabanı tablosu oluşturalım.

 

Adım 1.2 — Api Oluşturma

Visual Studio’yu açalım ve yeni bir proje oluştur diyelim.

Web kısmından “ASP.NET Web Application” seçimini yapalım.

 

Sonraki kısımda ise “Web API” seçeneğini seçerek devam edelim.

 

Adım 1.3 — Veritabanını Projemize Ekleme

Solution Explorer üzerinden projemize sağ tıklayarak Add > ADO.NET Entitiy Data Model seçeneğini seçelim.

 

Önümüze gelen kutucuktan modelimize isim verdikten sonra aşağıdaki adımda “EF Designer from Database” seçili iken Next 🙂

 

Sonraki pencerede ise “New Connection”a tıklayarak gelen pencerede Sql’imize bağlanmamız gerekiyor. Server adımızı ve alt kısımdanda veritabanı ismimizi seçtikten sonra bu kısmı Ok butonu ile onaylayalım. Alt pencereyede Next 🙂

Not : “Server name” kısmında eğer Sql Server Management Studio’ya giriş yaparken kullandığınız Server Name yazmıyor ise, gidin Sql Server Management Studio’dan kopyalayın buraya yapıştırın tam isminizi.

 

Diğer pencerede de tablomuzu seçip Finish diyoruz.

 

Adım 1.4 — Hadi Bu Api’yi İşlevsel Hale Getirelim 🙂

Api controller eklememiz lazım, bunun için Controllers klasörümüze sağ tıklayarak Add > Controller diyoruz. (Bu arada, bu adımdan önce VS’da üstten Build > Rebuild Solution demeyi unutmayın. Bir tanısın değil mi proje Entity Framework eklediniz o kadar 🙂 )

Gelen pencerede “Web API 2 Controller with actions, using Entity Framework” seçerek Add diyoruz. (Sağda REST falan diyor ha! Hadi yine iyisin 🙂 )

 

Diğer pencerede Model Class’ta bir sürü seçenek var, seçeceğin ;

Model class : TABLO_ADI (PROJE_ADI)

Data context class : ENTITY_ADI (PROJE_ADI)

Entity’i veritabanını eklerken Adım 1.3 Resim 3’ü açtığın pencerede otomatik yazmıştı. Birde altta yazan Controller name senin api uzantın olacak, ona düzgün bir şeyler yazmanı tavsiye ederim 🙂

 

BAM! Tablona birkaç veri ekler misin? 🙂 Api yazdın! (Gerçi pek bir şey yazmadın, kolay meslek gibi 😀 Sağ tıkla, şuna tıkla falan, IDE hakimiyeti ne kadar önemliymiş…)

 

Not : Farklı tarayıcılarda JSON formatında gözükebilir.

Öneri : Postman eklentisini kullan Chrome için.

 

Şimdi bu bölümün sonuna gelelim, sonraki adımda bu Api’yi CRUD Uygulamasına dönüştürerek bu verileri Web Uygulaması üzerinden kontrol edeceğiz.

0

Blog, Genel, Özdüşünüm

Bir başarıdan bir satır, başarısızlıktan bir kitap öğrenebilirsin.

~Paul Brown

Buyazıyı aslında sizin için değilde gelecekteki Can için yazıyorum. Unutmasın diye, nereden geldiğini her zaman hatırlasın diye.

Çok geçmişe çakılıp, bağlanıp kalmamak lazım tabikide, fakat bazen hangi noktaların sizi nereye getirdiğini de unutmamalı insan. Çünkü ancak böyle içindeki masumiyeti her zaman koruyabiliyor, işte sanırım o noktada karşısına çıkan olay ya da kişilere içindeki insan ile karşılık verebiliyor.

C#’tan 5 Aldım

Bazen bazı şeylerin öyle olması gerekir.

C#’tan(Bir programlama dili.) 5 aldım, tabiki alacağım, öğrenciyim, bunları tabikide yaşayacağım. Zaten kağıt üzerine yazılan kodlardan çokta beklentim olmamalı. Yanımda Google olmadan fazlaca başarısız ve bilgisiz olduğum gerçeği var. Daha önce de Kimya’dan 1 almıştım. Hatta Almanca’dan da 1 almıştım, üniversitede yine seçmeli olan Germen(Almanca) dersini kendi tercihimle aldım, fakat bu sefer 1 almadım, devamsızlıktan kaldım 😀 Başarısızlık kıstasım değişse de hâlâ başarısızım 🙂 Dört defa aldığım derslerim var. Ziyadesiyle başarısız bir öğrenciyim. Ama iyi bir mühendis olacağım. Bu kaçınılmaz bir gerçek benim için.

Öncelikle içimde mesleğime duyduğum bitmeyen bir merak arzusu ve aşk var. Bu mesleği 5 yaşımda keşfettiğimden beri hâlâ tükenmedi, bu saatten sonra da tükeneceğini düşünmüyorum.

Bilgisayarın Mühendisi Olmak

Neden Bilgisayar Mühendisi olmak istediğimi tüm arkadaşlarıma anlatmışımdır, size de anlatayım.

Ben bir Ege’liyim ve bizim oraların adetleri gereği erkek çocuğu sünnet merasiminden önce şehri gezdikten sonra araçtan inmeden babadan bir şey ister. Abim bisiklet istemişti ve 95 yılında 4 yaşında iken, nereden duyduğuma dair bir fikrim yok bilgisayar istedim. O zamanlar atariler moda ve bir atarim var, fakat kuzenimde ise joistikli versiyonu mevcut. Bundan da isteyebilirdim, fakat ben bilgisayar istedim.

Babam eski bir otobüs şöförü, 70’li yıllarda taksicilik yapmış ve 80’li yıllardan 90 yılına kadarda otobüslerde direksiyon sallamış bir insan. Dört sefer Mekke, Medine görmüş, Arabistan’a hacı taşımış birisi. Fakat 90 yılında senelerce yine aynı mesleği yapmış büyükbabamın akciğer kanserinden dolayı vefatı üzerine “Bu sigarayı bir daha içmeyeceğim, bu otobüse de bir daha binmeyeceğim. Yeterki benim çocuklarım okusun ve bu garaj ortamlarına bulaşmasınlar.” deyip, hem sigarayı hemde yıllarını verdiği mesleğini bir anda bırakmış bir insan. Bence çok zor gerçeklenebilecek bir kararı bir çırpıda vermesi büyük bir başarı. Ardından merak saldığı elektronik ve bunun getirisi olarak o zamanlar yükselen cep telefonu trendi üzerine yine uzun yıllar cep telefonu tamirciliği yapmış birisi. Bana hâlâ düşününce yıllarca direksiyon sallamış birisinin elektronik gibi alakası olmayan bir meslekte başarılı olmuş olması garip geliyor. Sanırım içimdeki hiç bitmek tükenmek bilmeyen yeni şeyler öğrenme heyecanını babamdan almışım.

Basit Olan Şey Güzeldir

İyi geçen zaman içinde, ne büyük bir neşe, ne büyük bir acı, ne de büyük olan bir şey vardır. Yalnızca basit şeyler. Basit dokunabildiğiniz insanları da sevin.

Odönemlerde babamın takip ettiği dergiler vardı, cep telefonu için Mobimag, bilgisayar için PCnet gibi. Ve hatırlıyorum, tabiki sonradan okudum hep onları, evde valizlerin içerisinde Windows 95’e yeni başlıyorum adında ve bu tatta bir sürü kitap ve dergi vardı. Büyüdükçe taahhül ediyorum ki, ben onları karıştırırken birisi bana geldi dedi ki bu bilgisayar. Çünkü okuma yazma bilmeden resimlerine bakardım.

Herkesin annesi babası güzeldir ve benimkilerde öyle güzellermiş ki, benim bilgisayar isteğimden 5 ay sonra renksiz ekran Windows 3.1 işletim sistemli bir bilgisayarım oldu. Büyük ihtimalle içerisinde, bana göre çok kısıtlı imkanlarım vardı fakat başında yaptığım her şeyden inanılmaz zevk duyuyordum. O zamanlar, ben bu işin içerisinde olmalıyım diye düşündüm hep, bu bilgisayar denen şey benim her zaman hayatımda olmalı dedim. Şimdi bir uzvumdan farksız kendileri. Büyüdükçe de buna yönelik meslekleri keşfettim.

Tekrar Düşün

Parayla değil sonuçta.

Tabi, öyle yapacağım deyince olmuyor bu işler. Önce Ege Üniversitesi Fizik bölümüne gittim. Hâlâ neden gittiğimi kendime net bir şekilde açıklayamasamda, yalandan sebeplerim mevcut. Sonra güzel bir İzmir gününe uyandığımda “Ne yapıyorum ben ya?” gibi bir soru ile karşılaştım beynimde. İki gün sonra memleketime dönmüştüm ve hayalimin peşinde ekstra bir enerji ile koşmaya başladım. Sonrası malum, Bilgisayar Mühendisliği öğrencisiyim şimdi, 4. sınıf gibi fakat biraz karışık. Bir yerden sonra da fena karışıyor. Olmak için okumak gerekmeyen bir meslek türü, hatta okudukça bence köreldiğin bir meslek türü fakat bu düzende bir diplomaya ihtiyacım var sadece.

Kendin Ol, Kendin Kal!

Kendine ve isteklerine karşı dürüst ol.

Salt kendime ait bir insan olabilmek için, en sonunda içimdeki çocuğu öldürmeden kaçacağım…

Çünkü büyüdükçe fark ettim ki insanlar büyümeyi bilmiyor. İnsanlar büyüdükçe masumiyeti ve içindeki çocuğu öldürmeyi keşfediyor sadece, bence çokta bilinçli olmadan öldürüveriyorlar onları. Yeni şeylerin heyecanı kalmıyor içlerinde. Tüketiveriyorlar her şeyi. Oysa ki ne kadar güzel bir insanın hayatına dokunmak. Onunla bir şeyler paylaşmak.

0

Blog, Tecrübesel

Deneyim; kazanılan bilgiden çok, kaybedilen beklentilerden oluşur.

~Joseph Roux

Bundan yaklaşık 15 gün önce başlayan, benim için deneyimsel fakat mükemmel olarak nitelendirebileceğim ufak bir işe girme deneyimim oldu. Henüz girebilmiş değilim fakat durum değişirse yazının sonuna düzenleme olarak bunu mutlaka ekleyeceğim.

*** Yazının sonuna, son edinimi ekledim. ***

Ayağıma Gelen İş Teklifi

Benim de dahil olduğum, Eskişehir Osmangazi Üniversitesi Bilgisayar Mühendisliği Bölümü’nün bizimle daha iyi ve etkili iletişim kurabilmesi açısından kullandığı bir mail grubumuz mevcut ve bu grup Google Groups üzerinden işlemekte. Bu mail grubundan gün/hafta/ay/yıl içerisinde yeni dönem ders programlarımızdan tutun da, yaz okulunda açılacak derslere, öğrencilerin projeler için partner arayışından, mezun ya da adaylara yönelik iş ilanlarına kadar birçok mail akmakta. Dolayısıyla biz de düzenli olarak bu grubu takip etmekteyiz.

İşte tam bu devrede “Ing Bank Parttime çalışma arkadaşları arıyor” başlıklı bir mail dikkatimi çekti ve içeriğinde ise bizim bölümden 2012 yılında mezun olmuş ve şu anda ING Bank bünyesinde kıdemli yazılım mühendisi olarak çalışan bir arkadaşımızın, kendisinin de dahil olduğu bir ekipte part time çalışmak üzere, 3. ya da 4. sınıf olup, az çok .NET bilgisine sahip ekip arkadaşları aradıkları yazıyordu.

Ben de henüz zorunlu stajlarımı tamamlamamış olmamdan dolayı, neden olmasın ki diye düşünerekten, kendisine kişisel ön yazım ve CV’m bulunan bir mail gönderdim.

Ertesi gün beni bizzat kendisi aradı. Proje detaylarına girmeden, yapıp yapamayacağım hakkında konuştuk ki, bende bulunan mesleğime yönelik bitmeyen iştaha sahip merak arzusu ile yapamayacağım bir şey yok, yapabilirim şeklinde cevapladım. Sonrasında ise bu fırsatı bizlere sunduğu için bolca teşekkür ettim. Bizim gibi okuyan gençler için bunlar çok güzel imkanlar, eğer sizde de varsa bu imkanları lütfen bölümler, öğrenci kulüpleri ile paylaşın. O da bu durumu mütevazi bir şekilde karşılayarak CV’mi İnsan Kaynakları departmanına ileteceğini söyledi.

Duyumlarıma göre bölümümden başvuran birkaç arkadaşım daha olmuş. Fakat onlara bu son cümleyi sanırım söylememiş ve ilk defa bu safhayı başarı olarak addedersek, başarılı olmama sebep olan şey başarısız bir öğrenci oluşum oldu. Çünkü proje 7–8 aylık bir süreçten oluşuyor ve başvuran diğer arkadaşlar 1 ay sonra bölümden mezun olabiliyorlar. Proje ekibi ise bu süreç bitene kadar kendileri ile çalışmayı sürdürecek kişilere ihtiyaç duyuyor. Bense okulumu 1 sene uzattım ?

Merhaba İnsan Kaynakları

Aradan geçen birkaç günün ardından ING Bank İnsan Kaynakları’ndan çok nazik sesli bir hanımefendi tarafından arandım ve haftaya ait Cuma günü 16:00’da mülakat için çağrıldım.

İstanbul’da yaşayan 4–5 arkadaşımda aksi bir tesadüftür ki o hafta sonu ya şehir dışında ya da müsait değillerdi. Bende gitmişken hafta sonu da kalmak istiyordum tabi İstanbul’da.

Airbnb Kafası Güzelmiş

Ufak bir araştırma sonucu Airbnb diye bir web sitesini daha önce kurcaladığımı hatırladım. İnsanlar evlerini konuklarına belirli bir ücret karşılığında bu uygulama/web sitesi aracılığı ile açıyorlar. Benimde aklımda mail içerisinde yer alan Ümraniye kalmış ve ben sonra onu Üsküdar olarak düşünmeye başlamışım. Üsküdar’dan bu şekilde sunulan bir evi Cuma’dan Pazar’a kiraladım. Bunun içinse sadece 107 ₺ ödeme yaptım. Evin sahibi olan kişiler ise 2 hanımefendi idi. Sağolsun onlarda bana uygulamayı nasıl kullanacağım konusunda yardımcı oldular.

Brian Chesky ve Joe Gebbia, San Francisco’daki evlerinin kirasını ödeyemeyince bir odayı kiraya vermek zorunda kaldı. Sundukları hizmet bir şişme yatakta konaklama ve kahvaltıdan ibaretti. Airbedandbreakfast.com 2008 yılında işte böyle ortaya çıktı. Kısa süre sonra sitenin adı airbnb’ye evrildi.

Cuma sabahı Üsküdar’da idim ve ev sahibi olan hanımefendiler çalıştıkları için bir erkek arkadaşlarının iletişim bilgilerini verdiler ve onunla çekinmeden iletişim kurabileceğimi, evde olduğunu söylediler. Zaten uygulama o kadar güzel ki, siz rezervasyonun ödemesini havuz hesabına aktarınca evin haritalardaki adresi ve ev sahiplerinin eklenmişse numaraları karşınıza çıkıveriyor.

Google Haritalar uygulaması ile evin önüne geldiğimde arkadaşı aradım ve kapıyı açtı. Çok samimi bir şekilde hoş bir muhabbet ve çok tatlı bir ev kedisi olan “Paşa” ile karşıladı beni, sonrasında ise biraz dinlenmek üzere odama çekildim. Fakat ING Bank İnsan Kaynaklarından beni arayan hanımefendi, detayları mail atacağım demişti ve atmamıştı. Biraz zorda olsa kendisine ulaştım. Bana hiç Üsküdar denmemiş ? Ama yakın olduğunu, Beşiktaş’a geçmem gerektiğini ve oradan da Maslak’ta bulunan ING Bank Yönetim Binası’na gelebileceğimi söyledi. İTÜ kapısında inmeliymişim.

İstanbul Adamı Yutar

14:00’da evden çıktım ve 14:30’da bulunan Üsküdar-Beşiktaş vapuru ile karşıya geçtim. Orada ise birkaç kişiye İTÜ kapısı diye dolaşaraktan bir otobüs buldum. İçerisinde de birisinden yardım alarak İTÜ Kapısında indim fakat ben cahil Maçka’da bulunan İTÜ kampüsünde inmişim ? İTÜ’de okuyan bir arkadaşımı arayarak nasıl Maslak kampüsüne ulaşabileceğimin bilgisini aldım ve üzerimde takım elbise ile Nişantaşı’nı aşarak metroya bindim, arından İTÜ-Ayazağa. Saat 15:55. İK’da görevli hanımefendi bu kapıdan kendilerine ait binayı rahatlıkla görebileceğimi söylemişti. Fakat bir sürü yönetim ofiside burada biraradaymış. Hepsi büyük, hepsi banka. Sora sora bunu da buldum, kapısını bulmakta biraz vakit aldı ve 16:10’da danışmadaydım.

Danışmaya kimliğimi bıraktım ve bir adet ziyaretçi kartı aldım, danışma görevlisi ise görevli hanımefendiye ulaşacağını, bekleme kısmında beklememi söyledi. Bu güzeldi, çünkü yorulmuştum, stres yapmama sebebiyet verebilecek bu durum geçmeliydi. Sonuçta ilk İK görüşmem ?

ING Bank İnsan Kaynakları vs Ben

Yaklaşık 5 dakika sonra turnikelerden bir hanımefendi çıktı ve danışmaya ilerledi, danışma bekleme kısmını gösterdi. Hah dedim, geliyor. Ayağa kalktım ve elimi uzatma girişiminde bulunacaktım ki, bana doğru gelen kadın, bir anda döndü ve orada bekleyen diğer bir kişi olan kuryeye doğru “Bankamatik kartım gelmiş!” dedi. İyi keklenmiştim ? Kendi sinirime bir sigara molası verdim ve beklemeye devam ettim. Sonrasında ise benimle alakadar olacak olan İK hanımefendisi geldi. Bu sefer ismim söylenene kadar kalkmadım tabiki yerimden ?

Samimi bir merhabalaşmanın arından diğer yöndeki turnikelere doğru ilerledik, ziyaretçi kartım ile buradan geçiş yaptım. Stresim ile aram iyidir, onu iyi yönetebildiğimi düşünüyorum fakat bunun için bendeki taktiklerden biri olan “Olayı gündelik karşıla” maddesiyle, “Binanın kapısını bulamadım yahu” dedim ve gülümsedim. Hiç umursanmadım, dönüp bakmadı dahi ? Yürümeye devam ettik, camdan duvarları bulunan, masa, sandalyelerden oluşan yaklaşık 4–5 mülakat ofisinin bulunduğu bir kapıdan giriş yaptık, ardındansa boş olan birisine geçtik.

Kendisini tanıttı ve projeye ait detaylara girmeden (henüz kabul edilmediğim için) proje hakkında ufak bir bilgilendirme yaptı. Aklımda kalan kadarıyla ise aramızda geçen konuşmalar şu şekilde oluştu;

Anlamlandırabilmeniz açısından CV’m burada : Can Uzun CV

İK : Can Bey öncelikle CV’niz dikkatimi çekti, isterseniz önce bunun hakkında konuşalım.

İç Sesim : CV işte, güzel tasarladım, National Geographic kapağı gibi. Sanırım neden böyle bir CV hazırladım onu merak ediyor. Etkileyici olabilmek ve yapabildiğim için tabikide.

Can : Ben UI/UX Designer’ım, User Interface Designer (Kullanıcı Arayüzü Tasarımcısı) yani uygulama ve web sitelerinin arayüzlerini Photoshop ortamında tasarlıyorum ve ardından birileri bunu kodluyor. User Experience Designer (Kullanıcı Deneyimi Tasarımcısı) yani uygulama ya da web sitesi içerisinde bulunan buton, combobox, textview gibi ögelerin hangi pozisyonda ve hangi görsel niteliklerde bulunursa daha aktif ya da kolay kullanılacağını kod ya da belirli metodlar yardımı ile belirliyorum. Dolayısıyla Photoshop yetkinliğimi CV’mde de göstermek istedim.

İK : Anlıyorum. Peki bu ilgi alanlarınız kısmında bulunan “Batman” nedir?

İç Sesim : Sanırım koymamalıydım. Ama bu benim ilgi alanım sonuçta. Batman’i seviyorum, hem koyunca da bence sempatik durdu ?

Can : DC Comics karakteri olan Batman’in film, dizi ve çizgi romanlarını ilgi ile takip ediyorum.

İK : Heamm. Satranç yazmışsınız(Klasik!). Socializing nedir?

Can : Arkadaşlarım ile vakit geçirmeyi seviyorum. Onlarla takılmayı, dışarı çıkmayı.

İK : Diğeride Puzzle Games. Puzzle yapmayı seviyorsunuz sanırım.

Can : Puzzle Games ise daha çok mobil platformlarda yer alan zeka oyunları olarak oraya eklediğim bir madde idi.

İç Sesim : İlgi alanlarım ne kadar dikkat çekti yahu 2–3 tane daha eklesem tüm mülakat bununla geçecekmiş. ?
 …

İK : Peki Can Bey, burada İngilizce’nizi %80 olarak tanımlamışsınız, neye dayanarak bu oranı verdiniz.

Can : Öyle hissediyorum.

İç Sesim : Yuh, öyle hissediyorum ne ? Hazırlık okudum desene, orada 80 ile geçmiştim, geçme notum de, İngilizce bir bölümde okuyorum de bari. Gerçi CV İngilizce, onu anlamıştır herhalde. Herhalde…

İK : Hiçbir dayanağı yok yani.

Can : Yok.

…Sessizlik…

İK : Bu yetkinliklerim kısmında belirtmiş olduğunuz oranlar peki neye göre?

Can : Onlarda yine daha önceki almış olduğum freelance işlerde yapabilme kabiliyetime göre kendimce verdiğim oranlar.

İç Sesim : Yine geliyor, “hiçbir dayanağı yok yani!”. İş yapıyorum falan dedim, kurtarsam bari.

İK : Freelance olarak iş alıyorsunuz yani.

Can : Evet, web sitesi, arayüz tasarımı, bazen kod yazımı projeleri gibi şeyler, öğrenci ekonomime katkıda bulunuyor.
 …
 Biraz daha kısaltmam gerekirse, deneyimlerimdeki Turkcell kısmından bahsetmemi istedi ve Geleceği Yazanlar’da ilk 16’ya kalan bir ekipte olduğumu, sonrasında ise elendiğimizi söyledim. Google StartupWeekend 2013 Eskişehir’de, yaklaşık olarak, yine aynı ekiple 2.’lik aldığımızdan falan. Hangi alanda kendimi geliştirmek istediğim sorusunun ardından da, android ve web tabanlı uygulamalar şeklinde cevap verdim.

Daha sonra “anymaa” kelimesinin CV’mde her yerde geçtiğini ve ne demek olduğunu sordu. Bende kelimenin normalde “Anima” olduğunu, fakat zaman içerisinde yumuşatarak “anymaa” haline getirdiğimi söyledim. İtalyanca yürek, kalp, can anlamına geldiğini, Can Uzun kelimeleri ile mail, sosyal ağ uzantılarının bir çoğunun alındığını dolayısıyla kendimce böyle bir marka ismini kendime uyarladığımı söyledim. Ne kadar profesyonelceydi bilmiyorum ama en azından tek bir kelime bana özel her şeyi rahatlıkla açıklayabiliyordu.

İK : Peki Can Bey, ING Bank hakkında neler düşünüyorsunuz, biliyorsunuz?

İç Sesim : Okudun ya, söyle işte.

Can : Turuncu (:/) , Aslan var ? Birde Hollanda menşeyli bir şirket olması ve Amsterdam’da yaşama hayalim dolayısıyla ilgimi çekti.

İK : Nasıl yani, gelmeden okumadınız mı, araştırmadınız mı hiç Can Bey?

Can : Şey, okudum fakat benim hafızam zayıftır, genel olarak güzel şeyler yazıyordu.

İç Sesim : Alkışlıyorum seni, nasıl istekliymişsin işi almaya.

Anladım ki gideceğin şirketi/firmayı iyi araştırıp akılda tutmak gerek. Ufak tefek birkaç konuşmadan da daha sonra, soracağım bir şey olup olmadığını sordu, bende olmadığını belirtince mülakatımız sonlanmış oldu. Bu arada verdiğim birçok cevaptan sonra ufak notlarda aldı ?

Binadan bir sigara yakarak ayrıldım. Ardından Üsküdar’a doğru yol aldım fakat İstanbul pek yaşanacak bir şehir değil, trafik akmıyor! Mükemmel bir açlıkla eve vardım. Ev sahiplerinden birisi olan İrem evdeydi ve tabiki Paşa! Ben bir uygulama ile bu kadar güzel insanlar tanıyacağımı hayal edemezdim. Her birisi inanılmaz misafirperver ve güler yüzlüydü. Tabi o gün sadece İrem’i gördüm.

Yazının buradan sonraki kısmı samimiyet içerir! Sonrasında ise ING Bank mülakatı gelişmeleri devam edecek.

Airbnb Kafası Devam

İrem kim mi? Bence onu buradan tanıyın : https://medium.com/@iremgnctrk
 Henüz yazısı yok ama yakında yazacağından eminim, çünkü bir sürü yer gezmiş, kabuğunu fazlasıyla kırmış insanlardan. Çatlaklardan yani. Yani bizden biri ? Uluslararası İlişkiler bitirmiş, baya ulusla da oraları gezerek iletişim kurmuş birisi. Sonra bir yerde işe başlamış, 2 yıl sonra ben Küba’yı görmek istiyorum ya deyip, tası tarağı toplamış birisi. O bir süper kadın! ? Sırf nasıl hissedeceğini ya da hissettireceğini merak ettiği için istediği şeyi yapabilmeli insan, cesur olmalı. İrem söyledi bunları, haklı da, hak verdim İrem’e, iyi kız sonuçta, mantıklı konuştu. Eminimki blogunda o kendini daha güzel tanımlayacaktır. Görün bak.

Neyse, o gün gece uydum ve ertesi gün tam 17’de kalktım. ? (Yolculuk, mülakat, trafik derken İstanbul kaçtı be ? )
 Bu sefer diğer ev sahibim geldi eve, Aslı. O da fazla zeki Mardin’li ama konuşma tarzını görseniz tam bir İstanbul’lu, gerçi İstanbul’da doğmuş büyümüş. İrem ile okuldan arkadaşlar, kendileri bir mavi yaka! İnşaat Mühendisi. Gerçi el emeği ile iş yapan mı mavi yaka oluyordu? Masabaşı olunca beyaz yaka mıydı? Bunu bir açığa kavuşturursanız yorumlarla.

O gece onunla Kadıköy’e gittik, beni ilk gün karşılayan Özenç adlı Artvin’in turuncu (Irkçılık değil ama yakışmış adama.) delikanlısı ve İrem’de bize katıldı. Neruda Cafe diye bir yerde oturduk. Eğlenceli bir gecenin ardından o günde bitti. ?

Pazar günü ise son günümdü. Evde İrem ve Aslı vardı, Özenç Amasya’ya anneler gününü kutlamaya gitti. Özendim ona tabi. Ama hayat… Aslı’da tango yapıyor bu arada, kursuna gitti o da. İrem’de dedi ki, Kuzguncuksahiline inelim. İndik. Çok güzel yerleri gezdim, çok tatlı eski, restore edilmiş yapılar vardı ve önünde fotoğraf çektiren gelin-damat adayları. Sahilde oturduk boğaz köprüsüne karşı biraz, Beyoğlu Gazozu içtim, zencefilli ? Hayatımda yediğim en güzel taze fasülyeyi yedim (Annem üzgünüm ama öyleydi ? ).

Gecesi ise Eskişehir’e dönüş.

Yani anlayacağınız güzel bir deneyimdi benim için.

Pazartesi günü ise yine ING Bank İK’dan başka bir hanımefendi tarafından arandım. KKB (Kredi Kayıt Bürosu) Puanımın düşük çıktığını, hakkımdaki raporu yöneticiye ileteceklerini fakat bunun sebebini açıklayan bir mail atmamı istediler. Sanki kredi çekmek istiyorum onlardan ?

Öğrenci olduğumu, freelance çalıştığımı, toplamda 900 ₺ olan kredi kartlarından bahsettiğimizi söyleyerek gerekli açıklamayı yapan bir mail attım. Beklemedeyiz. Ama rapor yöneticiye gidiyorsa, sanırım İK başarı ile geçildi gibi.

Bu arada Turk Telekom START Genç Yetenek programına da kişisel olarak başvuru yapmıştım. Onunda detaylarını belki diğer yazımda yazacağım. Grup mülakatı için bu Cuma Ankara’ya çağırdılar. Görelim bakalım neler olacak.

Bu deneyime ait elimde bulunan fotoğraflarla oluşturduğum görsele alttan ulaşabilirsiniz.


Son Edinim: ING Bank tarafından bu süreçten bir hafta sonra, yine daha önce görüşmüş olduğum aynı İK kişisi aracılığı ile arandım. Tam bu arada eğer vakit bulabilirsem yazacağım Turk Telekom START Genç Yetenek programı grup mülakatı için Ankara’da idim ve 1 saat önce falan bitmişti.

Telefonun karşısındaki kişi kabul edildiğimi ve sundukları ücreti söyledi, ardından da ne zaman başlayabileceğimi sordu.

Tüm süreci tekrar değerlendirmek adına net cevabımla 2 saat içerisinde kendisini tekrar arayacağımı söyleyerek telefonu kapattım.

Ve bu andan sonraki 2 saat benim için stres doluydu. Hayatımın gerçek anlamda ilk fırsatı idi. Kendi içimdeki cevabı merak ederek altta görmüş olduğunuz yöntemi uyguladım. Benim için değerli kararlarda uyguladığım bir yöntemdir kendileri.

 

Sonra ne mi oldu?

REDDettim.

Sıfır kitabı yazarı Tunç Kılınç’ın Beni REDDettin hareketinide unutmamak gerek. 🙂 Telefonla yapmamış olsaydım, uygulanabilinirdi.

 

1

Blog, Özdüşünüm
 

İlerlemenin sırrı, başlamaktan geçer. Başlamanın sırrı ise; tek bir seferde yapılması zor olan karmaşık işleri, üstesinden gelinebilir daha küçük işlere bölmekten…

Mark Twain

5 dakika …

…günde herhangi bir şeye başlamak için yeterli.

Hayatının hayallerini not almak adına oluşturacağın bir blog için.
Her zaman yazmak istediğin kitap fikrin için.
Öğrenmek istediğin müzik aleti için.
Yazmak istediğin oyun adına öğrenmen gereken programlama dili için.
Bundan daha fazla bir zamana ihtiyacın yok aslında.

Günde sadece 5 dakika bir şeylere sıfırdan başlamak için yeterli bir zaman.

Bir şeylere başlamak için işinden ayrılmana ya da okulunu bırakmana gerek yok. Atılana, kovulana, mezun olana kadar mücadele etmeye devam et o paralelde. (Zaten gerekli değil ise bir süre sonra o seni bırakacaktır.)

Bunun yerine sadece isteğine yönelik günde sadece 5 dakikanı ayır.

Ve sonra her geçen gün bu zamana 1 dakika ekle.

Hayatının geri kalanı için bunu yap.

Sonra ne mi olacak? Bir gün gelecek ve sadece zevk aldığın işle uğraştığını göreceksin. Ve kendini yetkinlik derecesinde geliştirmiş olarak.

Sadece önemsediğin şeyi yaparken bulacaksın kendini.

Sakın bir günde 1’den 100’e çıkmaya çalışma.

Önce 0’dan 1’i hedefle.

Sonra 1’den 2’yi…

En sonunda istediğin 100’e ulaşacaksın ve istediğin dereceyle.

[/md_text][/vc_column][/vc_row]
0

Blog, Tasarım

Oyunlar artık hayatımızda giderek daha fazla yer alan bir uğraşlar bütünü haline geldi. Bunun nedenlerinden birisi artık herkesin cebinde oyunlara uygun platformların bulunması ve topluluğa giderek — konuya uzak kişilerin de dahil olup — daha fazla kullanıcı akışı bulunması diyebiliriz. Fakat bu duruma asıl sebep son zamanlarda sık duymaya başladığımız gamification (oyunlaştırma) kavramıdır. Bu kavram eğitimden pazarlamaya, yönetimsel süreçlerden deneyimsel aktivitelerinize kadar pek çok alanda, artık sıkıcı ve baskıcı gelen geleneksel yaklaşımlar yerine çok daha etkili bir alternatif sunuyor.

Oyunlaştırma (Gamification) nedir?

Kelimenin kökenini düşünecek olursak “oyun” kavramı ile başlamamız gerekli. Fakat dil filozofu olan Wittgenstein dilin sınırlılığı hakkındaki çalışmalarında oyunun tarif edilemez oluşunu söylemiştir. Bir de dilimizi bu kelime bazında etkilemesi muhtemel İngilizceyi düşünecek olursak elimizde “Play” (Eğlence haricinde bir amaç taşımayan kuralsız davranışlar) ve “Game” kavramları kalmaktadır. Biz “Game” kısmı ile ilgileniyoruz ki yazının devamında “Oyun” denildiğinde akla gelmesi gereken kavram budur.


Oyun, gereksiz bazı engelleri göze alıp bunları gönüllü olarak aşmaktır. Temel özellikleri; amacı, kuralları olması ve oyuncu bir tavır içermesidir.

Bernard Suits


Oyunlaştırma (Gamification) ise kelime babası olan Gabe Zicherman ve Christopher Cunningham tarafından “Oyundaki düşünce biçiminin ve oyun kurallarının, kullanıcıların ilgisini çekmek ve problem çözmek amacıyla kullanılması” olarak tanımlanmaktadır.

Yani iki tanım arasındaki farkı düşünecek olursak, oyun kendisi bir uygulamalar dizisi iken, oyunlaştırma etkileşimi arttırılmak istenen uygulamaya eklenen süreçler bütünüdür. Oyunlaştırma uygulanırken, oyun mekanikleri kullanıldığından dolayı, gerçeklenen uygulama oyunu andırır ve kullanıcıya oyun oynuyor hissiyatı vererek, kullanıcı kısa sürede sisteme entegre olur.

Neden Oyunlaştırma?

Yeni nesil, teknoloji ile ilişkisi arttıkça, geleneksel sistemleri yaratanların düşünsel yapısından da uzaklaşıyor ve günümüz dünyası artık bu yöntemleri içselleştiremiyor. Herhangi bir ögeyi oyunlaştırmak, o ögeye karşı olan algıyı değiştirerek içsel bir tetikleme yaratıyor ve onu daha cazip bir hale getiriyor.

İş, birinin yapmaya mecbur olduğudur, Oyun ise birinin yapmaya mecbur olmadığıdır.

Daniel H. Pink — Drive

Tüm bunlardan hareketle, 88.4 Milyar USD 2015 gelirine ulaşan ve 2016’da 95.2 Milyar USD, 2017’de 102.9 Milyar USD gelire ulaşması tahmin edilen bir sektörün, gücünü nereden aldığını anlamış bulunuyoruz.

Newzoo şirketinin 2013 araştırmasına göre dünya üzerinde 1.6 Milyar oyuncu var. Ve insanlar haftanın en az 40 saatini oyun oynamaya harcıyor. Bu süre ise “Bir iPhone Kaç Pomodoro” isimli yazıda belirttiğim gibi bir şeyleri satın alırken ya da onların ücretlerini öderken harcadığımız, çalıştığımız haftalık toplam zamana denk geliyor. Ve insanlar bunu isteyerek yapıyor. Oyunlarsa kişiye boş vakitlerinde bir eğlence, hedef, aşması gereken bir engel sunuyor.

Oyunlaştırma Örnekleri

Piyano merdivenleri

“Yürüyen merdivenlere binmek yerine normal merdivenleri kullanın ve kendinizi daha iyi hissedin” gibi sözleri sık sık duyar ya da Pazar gazetelerinde okuruz. Bu tavsiyeye aslında çok az insan kulak verir. Daha çok insanı yürüyen merdivene binmek yerine normal merdivenleri kullanmaya teşvik edebilir miyiz? Sonuçlarına buradan bakın dediler.


%66 — Daha fazla sayıda insan normal merdivenleri kullanmayı tercih etti.

Dünyanın En Derin Çöp Kutusu

Çöpü yere atmak yerine çöp kutusuna atmak o kadar zor olmamalı. Pek çok insan hala bunu yapmayı başaramıyor. Daha fazla insanı çöplerini yere atmak yerine çöp kutusuna atmaya bunu eğlenceli hale getirerek teşvik edebilir miyiz? Sonuçlarına buradan bakın dediler.


%132 — Oranında daha fazla çöp toplandı.

Hız Kamerası Piyangosu

Fun Theory Ödülü’nü kazanan fikir. (Kevin Richardson, ABD) Daha fazla insanı hız sınırlarına uymaya nasıl teşvik edebiliriz? Kevin’ın cevapladığı soru buydu. Volkswagen İsveç Ulusal Yol Güvenliği Kurumu ile birlikte bu yenilikçi fikri İsveç, Stockholm’de resmen hayata geçirdi.


%22 — Hız azalması sağlandı.

Bottle Bank Arcade

Pek çoğumuz plastik şişeleri ve kutuları iade ediyoruz. Cam şişelerin geri dönüşümünü ise çok az insan sağlıyor. Bunun sebebi belki de plastik ve kutu şişelerde olduğu gibi cam şişe karşılığında para almamamızdır. Camın geri dönüşümünü eğlenceli hale getirerek bu tavrı değiştiremez miyiz? Sadece vicdanınızı rahatlatmaz aynı zamanda “smile” da alırsınız. Sonuçlarına buradan bakın dediler.


50 Kat daha fazla şişe geri dönüşümü sağlandı.

Swarm

Hepimizin bildiği Foursquare tarafından geliştirilen Swarm uygulamasında Mayor’luk, Sticker’lar, Badge gibi ögelerin belirli görevlerden sonra kullanıcıya sunulması, kullanıcıların skor tablosunda üst sıralarda yer almak için arkadaşlarıyla yarışması gibi özellikleriyle içerisinde fazla miktarda gamification barındıran bir uygulama.


Dualingo

E-öğrenmenin en iyi örneklerinden biri olan Duolingo, oyunlaştırma öğelerini yoğun şekilde kullanan uygulamalardan. Yabancı dil öğrenme eylemini olabilecek en eğlenceli şekilde sunuyor ve her çözdüğünüz sınav ve soru için size puanlar, bonuslar veriyor.

Oyunlaştırma nasıl uygulanıyor?

Bu konuda farklı tasarım adımları bulunsa da Gamification Uzmanı Yu-Kai Chou’nun kişisel sitesinde de Gamification ile ilgili ele aldığı “Octalysis” adında tasarım çerçevesi bazlı “8 Core Drives” bu konuda geniş bir yapı sunuyor.

Sekizgen şekilde görüldüğü üzere Gamification Tasarım Çerçevesinde ele alınan 8 adımda yer alan Meaning (Anlam), Empowerment (Güçlendirme), Social Influence (Sosyal Etki), Unpredictability (Tahmin edilemezlik), Avoidance (Kaçınma), Scarcity (Azlık), Ownership (Sahiplik) ve Accomplishment (Başarı) ana başlıkları dahilinde oluşturulmuş insan motivasyonunu esas alan Octalysis Tasarım Çerçevesi bu konuda oldukça kullanışlı.

Detayları için belki birazcık araştırma ya da uzmanından yardım alma yollarını deneyebilirsiniz.

Görünen o ki gelecekte bu kavramı daha çok duyacağız. Peki ya siz hayatınızı oyunların çemberinde geçirmekten memnun musunuz?

 

0

Blog, Özdüşünüm

 

“Tekrar düşün, belki yarın yaşıyor olabilmen, senin asla uçmayı denemeyi bırakmaman. Tekrar düşün, hayat, sorumluluk, arkadaşlar, problemler, aile, çözümler, hayal. Hiçbir şey imkansız değildir. Unutma, ben farklıyım o sandığın yanlış olanlardan.”

Henüz küçük bir çocukken şehir merkezine uzak bir ilköğretim okulunda bir mahalle arkadaşım ile satranç oynardık. Sanırım 10–11 yaşlarıma denk geliyor. Bu dönemlerden bu yana ise bende farklılık yaratan ve her zaman benimsemeye çalıştığım bir kuralı hatırlatan satranç taşları arasında favorim her zaman yabancıların Knight dediği ‘At’ oldu. Steve Jobs’ın Stanford Üniversitesinin mezunlarına yaptığı konuşmanın bir bölümü olan “Connecting The Dots/Noktaları Birleştirmek” bölümünü düşündüğümdeyse, evet, arkama baktığımda bu benimseyişin beni ben yapan noktalardan birisi olduğunu düşünüyorum.

 
Satranç Tahtasında Atın Hareketi

Satrançta at, diğer taşlara kıyasla engelleri aşabilen tek taştır. Diğerlerine göre eşsiz bir davranış ile hareket eder.
 Sadece kendi renginde hareket edebilen filden farklı olarak, at her hamlesinde istediği renge hareket edebilir. 
 At ile diğer taşların aksine her zaman doğrusal olmayan bir algı ile düşünmek zorundasınızdır. Diğer satranç taşları, satranç tahtası üzerinde doğrusal hareket ederek “mantıksal” algınıza yatkın hareketler sergiler. Sadece sembolik olarak “L” şeklinde hareket eden at orijinal ve şaşırtıcı sonuçlar doğuracak hamleler yapabilir.

Peki, ya biz bu hayatta nasıl at gibi olabiliriz?

Baştan şu konuda hemfikir olmalıyız ki, buna mecbur değilsiniz. Birçok insan gibi sizde kalabalığın bir parçası olabilir ve size ait rahat bölgenizde(comfort zone) takılabilirsiniz. Fakat eğer sizde kalabalığın arasından sıyrılmak ve at gibi olmak istiyorsanız o zaman bu yazıya devam edebilir ve üç maddede istediğiniz kişiye yaklaşmanız için bir ufuk oluşturabilirsiniz.


#Madde 1 : Kendini Bilmek

1. Benzersiz Olduğunu Fark Et

Başlangıç olarak şunu bilmelisin ki, sen gezegendeki tüm canlılardan zaten farklısın. Tabii ki bazı insanlar diğerlerine göre daha farklı, ama hepimiz yeryüzünde yaşamış/yaşayan herkesten eşsiz özellik ve deneyimlere sahibiz. Hiç kimse aynı beyne, düşünüş yapısına, reaksiyon verme yeteneğine sahip değil. O yüzden benzersiz olduğunu kabul et, fark et.

2. Özünü Bul ve Kendin Ol

Kendin olabilmen demek, zaten senin farklı olman demektir, o yüzden kendi özünü keşfederek, kendi benliğine ilerlemen önemli bir etken. Eğer kim olduğunu bilmiyorsan, evet haklısın, bu korkutucu ve zor bir süreç ama başarabilirsin. Şu sorularla başlayabilirsin, “Seni sen yapan şey ne?” , “Sen demek sana neyi çağrıştırıyor?” , “Etrafında kimse olmadığında kim oluyorsun?”

Yine unutmamak gerekir ki, tüm bunları yaparken kendini sevmen, kendinle barışık olmanda çok önemli. Eğer olduğun kişiden memnun değilsen, üzgünüm ki kaçınılmaz olarak başkası olmaya çalışacaksın. Belki başkalarını memnun edebilmek için, belkide en azından kendin için.

3. Kendinle Vakit Geçir

Günümüzde etrafımız sürekli ne yememiz gerektiğini, ne giymemiz gerektiğini, nasıl davranmamız gerektiğini, ne okumamız gerektiğini, ne izlememiz ve ne yapmamız gerektiğini bize söyleyen uyaranlarla dolu. Bunlar kimi zaman ekranlar, kimi zamansa çevremizdeki insanlar oluyor. Fakat kim olduğumuzun derinliklerine inmek için kendimizle vakit geçirmeye ihtiyacımız var. Bunun içinse her şeyle bağlantınızı kesin ve neye değer veriyorsanız ya da önemsiyorsanız onunla vakit geçirin. (Bunu siz belirleyin.)

4. Ne İstediğini Bul

Tüm bu farklı olma isteği sizi olmadık zamanlarda yoklayabilir ve sizi aslında istemediğiniz düşüncelere sevk edebilir. Belki sürekli vakit geçirdiğiniz arkadaşlarınız yanında kafanızın içerisinde bir ses “Neden buradayım ki?” diyebilir. Böyle durumlarda ciddi bir adım atmadan önce gerçekten sizi farklı kılacak bir şey olup olmadığını fark etmek zorundasınız.

Sizin algınızda normal ne bunu bulmalısınız. İnsanlarda size aynı gelen şeyler ne? Görünüşlerinde, davranışlarında, konuşmalarında ya da hayallerinde, size farklı gelmeyen şeyler ne? Çünkü farklı olma anlayışı da her kişiye göre değişken bir kavramdır.

5. Nasıl Farklı Olabileceğini Bul

Buraya kadar adımlarımız sağlamsa, sana göre “farklı” ne kesin olarak bulmuş olmalısın. Bir matematik dâhisi olmak istiyor olabilirsin ya da sadece pembe giyerek dans etmekte istiyor olabilirsin. Daha önce de dediğim gibi “farklı” olmak kavramını pek çok yolla gerçekleyebilirsin.


#Madde 2 : Eşsiz Özelliklerini Bulmak

1. Çevren Hakkında Notlar Al

Eğer bir Japon’san selamlaşırken eğilmek yerine el sallarsan bu farklı olacaktır, fakat Avrupa’da bu gayet normal bir davranıştır. “Farklı” senin kültüründe ve çevrende olmayandır. Çevreni üç kelimeyle tanımla ve bunların tam zıttının ne olduğunu düşün.

Mesela çevreni şöyle tanımlamış olabilirsin, yüzeysel, sert ve şaşırtıcı. Bir plastikten farklı olmak istersin herhalde? O yüzden daha derin düşünmeli ve görünüşe odaklanmamalısın.

Bunları belirledikten sonra, o normal olan çemberin dışına çık ve kendi çemberini oluştur.

2. Gözlem Yap

Etrafından sadece bir adım geride dur ve onları, olanları gözlemle. İnsanlar nasıl davranıyor? Birbirleri ile nasıl iletişim kuruyorlar (arkadaşları, yabancılar, kasiyer, sevgilisi)? Onlar hakkında yapabileceğin tahminleri yap. Nasıl giyiniyorlar?

Bu gözlemlere göre davranışlarında, giyiminde, kasiyerlerle konuşurken ufak farklılıklar yaratmaya başlayabilirsin.

3. Neyi Seviyorsan Onu Yap

Bazı şeyleri yaparken ya da kullanırken sadece toplum algısına kapılarak hareket ediyoruz. Kendimizi oyunun dışında tutarak bunu yapıyoruz. Fakat eğer eşsiz olmak istiyorsak neyi seviyorsak onu yapmalıyız, yani seni sen yapan şeyleri yapmalısın. Belki yemek yapmayı seviyorsundur, belki de alışveriş yapmayı, ama eğer bunu yaparken eğleniyorsan, bu sen oluyorsun demektir.

Kimin ne dediği ya da ne yaptığı hiç ama hiç önemli değil. Eğer şarkı söylemek istiyorsan söyle, hatta bir kareoke barda yaparak bunu taçlandır. Eğer marka bir çanta almak istiyorsan al. Eğer mutlu oluyorsan ve bundan eminsen, düşünmeden yap bunları ve kimin ne dediğini asla umursama.

4. Yeni Şeyler Dene

Doğamız gereği hep bir grup içerisinde yer alıyoruz. Dolayısıyla sürekli çevremizde zaten kabul edilmiş olan, yapılan şeyler ile uğraşıyor ya da vakit geçiriyoruz. Bunlar iyi şeyler olabilir fakat zaten diğerleri tarafından denenen, yapılan, kabul edilen kurallar/eylemler ile yaşarsan yeni şeyler düşünmek için daha fazla beynin olmayacaktır. Düşündükçe aslında aralarında sevmediklerini bulacak ve sevdiğin yeni şeyler ile uğraşmaktan zevk almaya başlayacaksın.

5. Çizgilerin Dışını Boya

Çok küçük yaşlarımızdan itibaren yer aldığımız toplum beynimizi pek çok algıyla yıkamakta. Giydiğimiz kıyafetler, yeme alışkanlıklarımız, okula gitmemiz, cinsiyetimizi savunmamız vb. İçinde bulunduğumuz kutunun dışına çıkmak ve bunları fark etmek gerçekten zor. Bu çizgilerin dışını boyamak gibi bir seçeneğimiz olduğunu fark etmekte.

Sadece düşün, bir dinozor kostümü giysen nasıl davranırdın? Kimse senin vücudunu ya da yüzünü görmeyecek, çünkü sen bir dinozor kostümü içerisindesin. Aniden odadaki şeyleri parçalamaya ve etrafa kükremeler yaymaya başlayabilirsin. Çünkü bunu yapabiliyorsun. Bunu gerçek hayatta da yapabilirsin, sadece yapmamayı seçiyorsun. Neden?

6. Absürt Ol

Dinozor örneğinde olduğu gibi metamorfik bir örneği kullanarak ya da eline boyalar alarak çizilmiş çizgilerin dışını boyayarak diğerlerinden ayrılamazsın. Eğer okulunda kulaklık takarak dans etmek istiyorsan bunu yap, çünkü yapabilirsin. Eğer bir kovboy şapkası ile dolaşmak istiyorsan, bunu satan en yakın mağazaya gidip satın alarak yarın onunla gezebilirsin. Bu yap demek değildir, yapabilirsin.

Eğer limitlerini zorlamak ve keşfetmek istiyorsan birçok yolun var, birini bul ve yap. Sırf diğer insanlar tarafından absürt görüneceğin düşüncesiyle, kendi benliğinden kaçma, absürt ol.


#Madde 3 : Eyleme Geçmek

1. Düşmanlarının Elini Sık

İnsanların beklentilerinin dışında farklı eylemler sergileyebilirsin. Bunun sana neler getireceğini gözlemleyebilirsin.

Tabii ki olabilecek en farklı yol herkesle dost olabilmektir. Kaç tane insan sayabilirsin ki tam anlamıyla herkesle dost olan? Sanırım pek fazla değil. Bu zor bir şey. Çevremizde ivmelenerek artan bir yargılama ve insanların doğrularını kabullenmeme hastalığı var. Bunun yerine her zaman dostça davran, dost olmaya meyilli olmasan bile.

2. Kendin İçin Giyin

Bizde iyi görünen giysileri belirlemek çevremizden alabileceğimiz geri dönüşler dolayısıyla çok kolay. Onların iyi dediği şeyleri belirlemek. Ve günümüzde tamamen bunu önlemek imkânsız olsa da modayı bir kafeterya gibi kullanıyoruz, ne istiyorsak alıyor ve hevesimiz geçince de onu bir kenara atıyoruz. Bunun yerine kendimiz için, bize huzur veren, bizi yansıttığını düşündüğümüz şeyleri tercih etmek iyi bir fikir olacaktır.

3. Rol Yapma

Yine günümüzde fark etmeden davranışlarımız içerisine yerleşmiş ve artık karakterimiz olmuş rollerimiz var. Neden geç kaldığınızı öğretmeninize açıklarken kullandığınız bahaneler gibi ya da arkadaşlarınızla oynadığınız bir oyunda yenildikten sonra mutsuz olsanızda mutlu görünmeye çalışmak gibi. Bunu yapmayı çok seviyoruz. Fakat eğer farklı olmak istiyorsan, bunu yapma, bundan şiddetle kaçın. Asla bunu hayatının bir parçası haline getirme ve başlama.

4. Düşüncelerini Gizleme

Rol yapma maddesinde olduğu gibi birçok insan ne söylemek istediğini gizliyor ya da açıkça söylemiyor. Çünkü bununla baş etmekten, birini incitmekten ya da utanç içerisine düşmekten korkuyoruz. Bazen büyüyü bozmamak, elde olanı kaybetmemek ya da anı yaşamak adına bu durumun düşüncesinin oluştuğu odadaki kocaman fili görmezden gelmeye çalışabilirsiniz. Ama yapmayın. Çünkü birisi o filden bir süre sonra bahsedecektir. İşte o bahseden insan olun.

5. İnsanları Etkilemeye Çalışma

Eğer fark etmedi iseniz, bu farklı olma tasarımında başkalarının düşünceleri hiç ama hiç önemli değil. O yüzden pek çok kişinin yaptığı gibi diğer insanları etkilemeye, onların algılarında bir konuma gelmeye çalışmayın. Genellikle fark edeceksiniz ki sizin onları etkilemeye çalışmadığınız zamanlar, onların en etkilendiği zamanlar olacak.

Aşk sizi, aramadığınız zaman bulacaktır. Yaklaşık olarak bunun gibi.

6. Dünyanın Zıtlıklarla Çalıştığını Unutma

Hiçbir şey gerçekten göründüğü gibi değildir. Birçok insan farklı olmayı deniyor fakat sonuç olarak herkes aynı oluyor. İnsanlarla konuşurken daha sessiz olmak demek, onları daha sesli duyabileceğiniz anlamına gelir. Bir erkek ya da kızı etkilemeye çalışmadığınız zaman onların size çekici gelmeye başlaması gibi. Yani farklı olmaya çalışmak size hiçbir şey getirmeyebilir.

Bir sincap kostümü giyerek (ya da bir dinozor kostümü) bara gitmek gerçekten değersiz bir farklılıktır. Kesinlikle “Hey! Bana bakın!” demektir, aynı mini etek ve yüksek topuklu ayakkabı giymek gibi. Peki gelecek sefere farklı ne olacak? Ne yapacağını düşündün mü? Tam tersi mi?

7. Toplumun Koca Kafalı Olduğunu Unutma

Toplum moda olmayan ya da kendi benimsemediği kuralları, davranışları kabul etmede maalesef ki o kadar da iyi değil. İnsanlar her zaman trend olan şeyi över ve sever. Tabii ki limitleri aşanlar, çizgilerin dışını boyayanlar da yok değil. Fakat bunlar dışındaki normal genel geçer insanlar, size kollarını açarak hoş geldin demeyebilir. Kendini buna hazırlamalısın.

“Eleştiriden kaçınmak için, hiçbir şey yapmayın, hiçbir şey söylemeyin, hiçbir şey olun. “
− Elbert Hubbard

Eleştirilere rağmen, eğer sen içinde bulunduğun kutunun dışına bir adım atabiliyorsan. Bunu iyi bir şey olarak görmelisin. Eleştiriler sayesinde bir şeyler yapabilirsin. Bir şeyleri fark edebilirsin. İnsanları farklı şeylere maruz bırakabilirsin.

Tüm bunları kendimde toparladığımdaysa sanırım hâlâ satranç konusunda kötüyüm, fakat hayatımın her gününde at gibi olmaya çalışıyorum.
 Sizde deneyimlerini bizimle altta bulunan yorum kısmı ile paylaşabilirsiniz. Belkide sizin için “farklı” daha farklıdır, neden olmasın?

0

Blog, Özdüşünüm
“İçine doldurulacak çok şey olduğu zaman, günün yüzlerce cebi vardır.”
− Friedrich Nietzsche

Bir şeyleri satın alırken ya da onların ücretlerini öderken, verdiğimiz şey her zaman para olarak görünür gözümüze, fakat fark etmediğimiz şey ise aslında zamanımızla bu ücreti karşıladığımızdır.

Örneklersek 30 TL’ye bir kazak aldığımızı varsayalım. Siz ise 2000 TL maaşa sahipsiniz ve bu maaşı kazanmak için 8–17 saatleri arasında 1 saati yemek molası olarak düşünürsek günde 8 saat, haftada 5 gün çalışmanız gerekmekte. Bir ayı 4 haftadan varsayarsak günde 100 TL, saatte de 12,5 TL kazandığınız anlamına gelir. Yani 30 TL’ye alacağınız kazak için 2,4 saat (144 dakika) çalışmanız gerekmekte. Aslında fark etti iseniz birileri sizin 144 dakikanıza ülkenizde tekabül eden kâğıtlar verdi ve siz bu kâğıtlarla kazağınızı 144 dakikaya satın aldınız.

Yani ömür dediğimiz yaşam süremizden ayırdığımız dakikalar ile hayatımızda olmasını istediğimiz ürünleri satın alıyor ya da hayatımızı devam ettirmek istediğimiz standartları belirliyoruz.

Bir iPhone için hayatınızın kaç dakikasını harcıyorsunuz?

Mademki zaman bu kadar değerli bir kavram, peki bu zamanı nasıl daha verimli kullanabiliriz?

Zaman yönetimi konusunda çeşitli teknikler bulunmakta ve bunlardan uzun zamandır kendi hayatımda uygulamaya çalıştığım bir tekniğin detaylarından bahsedeceğim. Bu tekniğin adı ise Pomodoro!

Tabiki unutmamak gerekir ki teknik/taktik vs. den ziyade kararlı olmanız çok önemli bir husus. Eğer inanarak ve kararlı bir şekilde işiniz doğrultusunda ilerleyemiyorsanız, zaten bir tekniği de işinize uyarlayamazsınız. Unutmamak gerek ki bu sadece bir zaman yönetim tekniğidir, size zamanınızı daha verimli kullanmanız için bir yol sunar. Ama bir zaman yönetim tekniği ile işinize karşı şevkinizi hep üst seviyede tutabilirsiniz.

Özellikle bu teknikte işinizi yutabileceğiniz lokmalara ayırmak birincil amaç. Dolayısıyla size dağ gibi gözüken bir şeyi adım adım ilerleterek daha kolay hale getirebilirsiniz.

Peki bu Pomodoro tekniği nasıl çalışır?

1. Tamamlamanız gereken bir görev seçin.
2. Zamanı gözlemleyebileceğiniz bir araca ihtiyacınız var. (Telefonun kronometresi ya da geri sayım sayacı bunun için gayet uygun.)
3. Görevinize başlarken zamanlayıcınızı 25 dakikaya ayarlayın ve bu 25 dakika boyunca sadece o an elinizdeki işe odaklanın.
4. 25 dakikalık süre bittiğinde ise işinizi tamamen bırakın ve 5 dakikalık bir mola verin. Bu 5 dakika içerisinde asla işinize davam etmeyin.
5. Her 4 Pomodoro zamanında 15–30 dakika arası bir uzun mola verin.
1 Pomodoro = 25 dakika iş + 5 dakika mola

Örnekleyecek olursak, elinizde yapmayı planladığınız bir iş olsun. Bu bir sınav çalışması olabilir, yazmak istediğiniz bir yazı olabilir, tamamlamanız gereken bir tasarım ya da yazılım olabilir. Tamamen bambaşka yapmanız gereken bir işte olabilir. Önce bu işi yaklaşık olarak kaç dakikada yapacağınızı tahmin etmeniz gerek. Tamamlamanız gereken tasarımı 3 saatte yapabileceğinizi mi öngörüyorsunuz mesela? Ya da sınav için elinizde 10 adet önceki senelerde çıkmış sorular var ve 2 tanesini 1 saatte mi bitirebilirim diyorsunuz? Pomodoro tekniğinde süreyi tahmin etmek önemli bir etken. Bu süreyi belirlerken geçmişte yapmış olduğunuz benzer işlerdeki süre deneyimlerinizi kullanabilirsiniz. Zaten bu tekniği kullandıkça, zamanla tahmin mekanizmanız gelişecektir.

Örneğin elimizdeki iş için bu süreyi 3 saat olarak düşünelim. Sonrasında ise elimizdeki zamanı Pomodoro birimine dönüştürmemiz gerekmekte.

180 dk = (30+30+30+30+30+30) dk = 6 Pomodoro

Günlük hayatta yaptığımız işlerden örnek vermek gerekirse;

  • – Sınavına gireceğim derse ait çalışmam gereken 100 sayfa kitabı 4 saatte bitirebilirim. (8p)
  • – İş arkadaşıma yapması gereken görevi anlatan bir mail yazacağım. (1p)
  • – Bloguma yeni bir yazı ekleyeceğim, konuyu araştırmam(2p) ve yazıyı yazmam(1p) gerekli. (3p)
  • – Sunumum için araştırma yapmam(4p) ve slayt hazırlamam(2p) gerekli. (6p)

Bu tekniği elimden geldiğince tasarımlarımı oluştururken kullanıyorum. Genelde bir tasarımı oluştururken daha önce bu tarzda yapılmış tasarımları incelemem(3p), yapacağım tasarımlara uygun ekipmanlar ya da görseller bulmam(2p), sorasında ise uygulamam gerekiyor(1p). Yani bana genelde bu iş 6 Pomodoro’ya patlıyor. Tabiki bu işe göre değişken bir durum. Bazen bu süreler artabiliyor ya da azalabiliyor. Zaman içerisinde benzer işleri yaptıkça aslında tüm iş için kaç Pomodoro’ya ihtiyacınız olduğunu tahmin edebiliyorsunuz. En önemlisi artık önünüzde kaç Pomodoro’nuz var ise gününüzü ona göre ayarlayabiliyor, işin stresini de en aza indirebiliyorsunuz.

Pomodoro’nun sadece bir metafor olduğunu düşünürsek 1 Pomodoro zamanını kendinize göre düzenleyebilirsiniz. (45+10 dk gibi) Fakat unutmamak gerekir ki kabul edilmiş olan Pomodoro zamanı sizin psikolojik çalışma ritminizdir. Bu süreci belirledikten sonra sizin için sabit kalmalı ve değiştirmemelisiniz.

Tablonun bütününe baktığınızdaysa gün içerisinde kaç Pomodoro harcadığınızı not alarak verimliliğinizi ölçebilirsiniz. Günde 8–16 arası Pomodoro tamamlamak, molalar dahil 8 saat çalışma süresine denk geldiği için ideal sayılmakta.

Peki Pomodoro’nuz bölünürse ne yapmalısınız?

Eğer çalışmanızı bölen şey bir dış etkense (Telefonun çalması, bilgisayarınızın şarjının bitmesi vs.) Pomodoro’larınızı not aldığınız kağıdınızda o Pomodoro zamanınızın yanına bir işaret koyun. Eğer sebep sizden kaynaklanan bir şeyse (Rahatsızlanmanız, birine bir şey sormanızı gerekmesi vs.) yine not kağıdınızda o seansa farklı bir işaret koyun.

Her haftanın bitiminde ise bu kağıda bakarak seanslarınızdaki bölünmeleri ve sebeplerini inceleyin ve bir sonraki haftalarda bu bölünmeleri nasıl minimize edebileceğinizi düşünerek gerekli iyileştirmeleri yapın.

Ayrıca her haftanın bitiminde not kağıdınızı incelerken Pomodoro’larınızın fazla yorucu geçtiğini düşünüyorsanız biraz daha planlarınızı yayın. Mesela günlük Pomodoro sayınızı azaltmak gibi. Eğer daha fazlasını yapabileceğinizi düşünüyorsanız da günlük Pomodoro sayınızı arttırabilirsiniz.


Son olarak tüm bu süreçleri kağıt üzerinde tutmak yerine telefonuzda bir uygulama aracılığıyla ya da bu teknik için hazırlanmış web siteleri yardımıyla takip edebilirsiniz.

Lanes : Bu internet sitesi aracılığıyla yapılacaklar sitesi hazırlayabilir ve haftalık planlar üretebilirsiniz. Ayrıca Pomodoro zamanlayıcısı da içeriyor ve böylece çalışmalarınızı kolaylıkla takip edebilirsiniz.

Pomotodo : Hem Android hemde iOS platformu için hazırlanmış bu uygulama da yine Pomodoro tekniğine özel hazırlanmış.

Coldturkey : Her şey tamam fakat ben çalışırken Facebook, Twitter gibi sitelere gözüm kayar, verimli çalışmak bu şekilde çok zor oluyor diyorsanız, bu uygulama belli bir süre boyunca internet sitelerini engelliyor ve çalışmanızın bölünmemesini sağlıyor.

İnternet üzerinde bunlara özel pek çok web sitesi ve uygulama mevcut. Google aracılığıyla size daha uygun olanlarını bulmanızda mümkün.


Özetle sizde Pomodoro yöntemini ders çalışırken, kitap okurken, işlerinizi yaparken ya da atomu parçalarken kullanabilir ve zamanınızın ne kadar verimli geçtiğini gözlemleyebilirsiniz.

Benim Pomodoro Tekniği hakkında aktaracaklarım bu kadar, sizde eklemek istediğiniz şeyler için bana web sitem üzerinden ulaşabilir ya da altta bulunan yorum kısmı ile yazıyı geliştirmemizi sağlayabilirsiniz. Ayrıca mümkünse bu tekniğe başladıktan sonra deneyimlerinizi aktarabilirsiniz.

 

 

 

 

0

PREVIOUS POSTSPage 1 of 3NO NEW POSTS