Volkan Atasever

mühendislik, edebiyat, retro computer, yazılım, şiir, nümismatik, bilişim, podcast ve daha bir çok yazılarım...

Haber Şile Gazetesi Köşe Yazım

clock Nisan 10, 2018 04:02 by author Volkan Atasever

Haberin orjinal linki için: http://www.silehaberleri.com/?pid=96&aid=281&auid=29

Bir bilgisayar mühendisiyim. 1984 doğumlu olup ilkokul 2. Sınıfa giderken yani 1992 senesinde ilk bilgisayar kursuma ve programlama kursuna gitmiştim. O yıllarda home computer devrimi olmuş ve her eve bilgisayar girmeye başlamıştı. Bilgisayar ve bilişim devrimi başlamıştı. O yıllarda mesleğimi seçmeye karar vermiş ve bilgisayar mühendisi olacağımdan bahsediyordum.

Yıllar geçti o çocukluk yıllarımdaki teknolojiler çöpe giderken bu teknolojilerin üstüne katarak inanılmaz bilgi işlem gücüne sahip işlemciler çıkıyordu. Mobil uygulamalar ve mobil dünya daha revaçta olmadan pda’m üstünden maillerime bakıyordum ve bunu bir alışkanlık haline getirmiştim. Uygulamalar yüklüyor ve bir kısmını da yazıyordum.

Bu dönemlerde inanılmaz sıçramalar oldu facebook, twitter vs. uygulamalar ile sosyal medya patlaması. Hatta arap baharı gibi devrimler bile bu mecralar üzerinden ateşlendi. O yıllarda bilişim devrimini kaçırıyoruz herkes öncüsü olmalı diyordum. Bu öğrencilik yıllarıma geliyordu. O zaman endüstri 4.0 gibi trendlerin esamesi okunmuyordu. Nesnelerin interneti gibi teknolojik gelişmelerse hala başlamamıştı. O zaman savunma sanayinde bir atılımımızda yoktu. Belki çakar almaz tüfeklere alternatif modern tüfek üretimi dışında haberler hatırlamıyorum.

Peki ne oldu?

O yıllardan beri sanayi devrimini kaçıran ülkemiz bilişim devrimini kaçırmamalı şeklinde üniversitelerde seminerler verirken ve kitaplar yazarken ne oldu da bu devriminde kaçış noktasının son aşamasındayız. Bana göre artık kaçtı. Çünkü o dönem bolca inşaat sektörü iş yapıyordu. Kimse teknolojiye para yatırmayı düşünmüyordu. Turkcell ve Telekom gibi birkaç sektör arge yapmadan o yıllarda teknolojinin öncüsü rolünü üstleniyordu. Sadece bir tekelleşme bana göre ve tamamen hava ile pompalanmış reklamları ile bilişim devrimini yakaladığımız izlenimi veriliyordu. İnşaata yatırmak varken parayı bir yatırımcı neden teknolojiye para yatırıp bu riske girsin ki. Sonuçta çoğu kişi için facebook bile bir web sitesi. Onlara göre liseye giden ali de 100tl ye web sitesi yapabilir. Zaten teknoloji 100tl ye yapılan web sitesinden ibaret değil mi?

Bunun sonucu tarihe geçecek ve torunlarımızın sanayi devrimini kaçırdıktan sonra bilişim devrimini de kaçırdık söylemleri tarih kitaplarında yerini alacaktır. Şu anda savunma sanayide iha’lar ve çok kaliteli çalışmalar yapılmakta. Fakat bu çalışmaların başlayacağı yıl 2006 senesi olmalıydı 2016 senesi değil!

Bilişim devrimini kaçırmamız bu sefer devlet eliyle değil insanımız eliyle yapılmıştır. Kolay para kazanmak ve bu sayede kendi konfor alanını yaratmak isteyen insanımız tarafından.

Bilişim devrimi sadece online hizmetler değil kısaca örnek verecek olursam önce iphone parmak izlerimizi topladı ardından facebook ve mobil cihazlar yüz verilerimizi. Whatsapp, Skype ve facebook Messenger ses verilerimizi topladı. Ve koca bir kültürün analizini çıkartabilecek verilere yazdığımız mesajlar sayesinde sahipler. Bu şirketlerin menşei ise United States of America! Cem yılmazın bir parodisinde dediği gibi CIA mangal yapan bir kişiyi takip etmiyor! Ama koca bir kültürün tüm sosyal, ekonomik ve kültürel içeriklerine sahip. Bu sadece ülkemizle sınırlıda değil. Bunun örneklerini de kısa bir süre önce seçim kampanyalarını manipüle etmek için kullandıklarını görüyoruz.

İleri de teknoloji daha da gelişecek bir senaryo kuracak olursak Amerikan hava alanına iner inmez yüzünüz tanımlanacak ve operatörle konuşmanızdan sesiniz tanımlanacak. Ardından facebook beğenmeleriniz analiz edilecek. Eğilimleriniz ve tehlike limitleriniz belirlenecek. Herkesin fişlendiği bir dünyaya hoşgeldiniz…

Bilişim devrimini kaçırmak sadece ekonomik değil her alanda kendisini hissettirecek bir kelebek etkisidir. Umarım bir mucize olur ve bu devrimi son anda yakalarız.



Benden Bir "Merhaba Dostlarım" Mesajı

clock Şubat 27, 2018 04:22 by author Volkan Atasever

Bir müddettir BizimFM Şile Radyosunda TeknoMagazin programının yapımcılığını ve sunuculuğunu yapmaktayım. Aynı zamanda Dr. Vasıf Topçu Lisesinde Yazılım ve Robotik kurslarını veriyorum. Bununla birlikte 8-15 yaş grubu için Software4Galaxy şirketimizin eğitim departmanı Academy4Galaxy altında 8-15 yaş grubuna da Kadıköy’deki sınıfımızda eğitimler vermekteyim. Tabi ki ana işim ise yoğun olarak sürmekte. Yani proje, mobil uygulamalar ve web uygulamaları yapmaya hızla devam ederken teknoloji çözümleri üretmekteyiz.

Bunları asıl anlatmamın sebebi siz dostlarımla bir arada olurken mutlu olmam. Bu mutluluğumun sebebi ise her alanda yaptığım işlerden bahsederken içimdeki aşkı hissetmem. İşimi seviyorum ve hep yeni boyutlar katma derdindeyim. Bir lise de ders verirken amacım ülkenin geleceğini oluşturacak genç fidanların gelecek öngörülerinin oluşması ve geleceğin teknoloji ile geleceğini bilmesinden ötürüdür. Bir radyo programın da TeknoMagazin isimli bir program yapmamda ki amaç ise teknoloji ve bilim dünyası hakkında insanları bilinçlendirmek ve aydınlatmaktır. Unutmayın vatanını en çok seven görevini en iyi yapandır. Geleceğini ve çocuklarını seven ise gelecek için bir fidan eğitmekten geçer.

Bazen düşünürüm geçmişimizde Mimar Sinan gibi bir ünlü mimar çıkartmışız fakat bu asırlara meydan okuyarak yapılar inşa eden değerli adam neden en azından 3 kişi daha yaşlılığında yetiştirmemiştir. Eğer yetiştirmiş olsa bugün sadece Mimar Sinan’dan bahsetmeyecektik. Aynı zamanda ülkenin silüeti bile emin olun çok farklı olacaktı.

İşime aşığım demiştim. Bir bilgisayar mühendisiyim ve yazılım şirketim Software4Galaxy ile çalışmalara başlarken amacım çok zengin olmak değildi. Amacım Ar-Ge yapabilmek kendi projelerimi de hayata geçirebilme fırsatını yakalamaktı. Bunu kısmen de olsa Tübitak projeleri ve Ar-Ge projeleri yaparak gerçekleştirdim. Aynı zamanda müşterilere en kaliteli yazılımı sunma konusunda da çalışmalarımıza tüm hızıyla devam ederken içimdeki aşkta sönmemekte. Aksine daha da parlamaktadır.

Bir fidanı sularken aynı zaman da hayat amacımı gerçekleştirmek için de uğraşmaktayım. Dikkat edin hedeflerim, kısa ve uzun vadeli planlarım var fakat hayat amacına ulaşmak zorunda değilsiniz. Hayat amacı karanlık gecelerde sizin yolunuzu aydınlatır. Hayat amacı bir plan veya hedef değildir. Benim hayat amacım o kadar ulaşılmaz gözükebilir ki söylesem deli dersiniz belki de…

Karıncaya sormuşlar nereye gidiyorsun diye, o da hacca gidiyorum diye cevaplamış. Soranlar da bu hızla ve bu küçük adımlarla oraya ulaşamazsın demişler. Karınca da olsun hiç olmazsa o yolda ölürüm demiş.

Karınca dan farkımız uğruna ölecek idealler veya yollar yerine o amaca ulaşmak için yaşamak olmalıdır. Yaşamalıyız ki ideallerimizi gerçekleştirelim. Her çalışmamızı yaptıktan sonra yine de ulaşamıyorsak en azından içimizden keşke gibi bir düşünce geçmeyecektir.

Unutmayın sizde gelecek fidanlara yol açın. Unutmayın siz de hayat amacınız için çalışın. Unutmayın sizde aşık olduğunuz işi yapın. Düşseniz de kalksanız da başarıya giden hiçbir yol dümdüz değildir. Günün sonunda sizi değerlendirecekleri tek özellik yolun sonuna varıp varmadığınız olacaktır.



8-15 Yaş Grubu için Yazılım, Robotik ve Teknoloji Eğitimleri

clock Ocak 4, 2018 14:55 by author Volkan Atasever

Software4Galaxy şirketinin eğitim departmanı Academy4Galaxy 8-15 yaş grubu için yazılım, robotik ve teknoloji eğitimleri düzenlemeye başladı. Önkayıtlar alınmayı başladı. Aşağıdaki eğitim tanıtımından iletişim bilgilerini bulabilirsiniz. Ayrıca 0216 550 10 66 ve 0850 346 75 47 numaralı telefonlardan da ulaşabilirsiniz.

 



BizimFm'de TeknoMagazin Programı

clock Kasım 30, 2017 12:16 by author Volkan Atasever

Şile merkezli ağva ve çevre bölgelerde de  yayın yapan Bizimfm radyo kanalında TeknoMagazin isimli program yapmaya başlıyorum. Aynı zamanda youtube'dan canlı yayında vermektedir. Program 2 aralıktan itibaren cumartesileri 12 ile 1 arasında olacaktır. ilgili arkadaşlar için youtube linki de paylaşacağım. sektörde ileri gelen isimleri programa konuk ediyor olacağım. 1 saat dolu dolu teknoloji konuşacağız. teknolojinin magazinsel yönünü yakaladığımızda ise sonuna kadar sohbete devam edeceğiz. aynı zamanda bizimfm sitesinde de canlı dinleyebilirsiniz.

http://www.bizimfmsile.com/



C# 7 ile gelen Yeni Özellikler

clock Eylül 4, 2017 17:23 by author Volkan Atasever

§  Out Anahtar Kelimesi

§  Pattern Matching

§  Switch Expression

§  Yerel Fonksiyonlar

§  Tuples

§  Binary Literal

§  Metotların Ref Döndürmesi

§  Throw Expression

 

Yerel Fonksiyonlar

C# 7 ile birlikte fonksiyon içinde fonksiyon tanımlayabilmemizin önü açıldı. Bu sayede artık yerel fonksiyonlar tanımlayabileceğiz.

 

public int fonksiyon1(int sayi1,int sayi2)

    {

        int fontsiyon(int sayi)

        {

                sayi++;

            return sayi*=sayi;

        }

     

        return fonksiyon(sayi1)+sayi2;

    }

 

Binary Literal

Bu özellikle birlikte sayısal ifadeler binary olarak tanımlanabilecek. Aynı zaman da digit ayraçlarıyla büyük sayıları binary veya heksadesimal olarak ayırabileceğiz. Bu daha kolay okuma da sağlayacaktır.

int sayi1 = 2_000_123;

int sayi2 = 0x3EEE_1111;

int sayi3 = 0b0001_1100_1111_0000;

var d = 123_456;

var x = 0xAB_CD_EF;

 

Metotların Ref Döndürmesi

Metotlara C# programlama dilinde ref değer gönderebiliyorduk. C# 7 ile beraber metotlar ref değeri de döndürebilecek. bu Referans tipi olarak dönmektedir.

public ref int Bul(int sayi, int[] sayilar)
{
    for (int i = 0; i < sayilar.Length; i++)
    {
        if (sayilar[i] == sayi) 
        {
            return ref sayilar[i]; 
        }
    }
    thrownew IndexOutOfRangeException($"{nameof(sayi)} bulunamadı!");
}

 

 

Out Anahtar Kelimesi

Out anahtar kelimesini kullanarak daha önce metotlara parametre geçirebiliyorduk. Out parametresi birden çok değer döndürmek istediğinizde oldukça popüler bir kullanıma sahiptir. bildiğiniz gibi out parametresi referans tipidir ve bir argüman olarak çalışmaktadır. Fakat out parametreye geçireceğiniz değişkeni daha önce tanımlamanız gerekmektedir.  C# 7 ile birlikte out parameteresi olarak değişkenleri aynı anda tanımlayabiliyoruz.

publicvoid KooridnatCiz(Point p)
{
    p.GetCoordinates(out int lang, out int long);
    WriteLine($"({lang}, {long})");
}

 

Out parametresinde değişken tanımlanın yanında var tipi değiştekde tanımlayabilirsiniz. Değişkenin kullanıdığı zaman sadece sınırlı kapsam içerdiğini dolayısıyla bunları metotun dışında kullanamayacağınızı unutmayın. Değişkeni doğrudan argüman olarak tanımlayabildiğimiz için C# 7 bunlarıda da var değer olarak tanımlamamıza izin verir. Dolayısıyla hangi tip değişken tanımladım diye kontrol yapmanıza gerek kalmaz. bildiğiniz gibi var tipi değişkenler dönüşebilmektedir.

 

p.KooridnatCiz(out var lang, out var long);

 

Pattern Matching

is anahtar kelimesi ile Pattern Matching özelliğini kullanabiliriz. Örneğin bir type pattern yaparak çalışma zamanında tipe göre işlem yapabiliriz.

publicvoid deneme(object o)
{
    if (o isnull) return;     // sabit pattern "null"
    if (!(o isint sayi)) return; // tip pattern "int sayi"
    WriteLine(new string('*', sayi));
}

 

Switch Expression

switch-case yapısı daha önceki c# programlama dili versiyonlarında oldukça sınırlıydı. Artık daha kompleks yapılar kurabiliyor ve null kontrolü, sınıf kullanımı gibi özellikleride switch- case yapımızda kullanabiliyoruz.

Örnek 1:

switch(sekil)

{

    case Daire c:

        WriteLine($"circle with radius {c.Radius}");

        break;

    case Ucgen s when (s.Length == s.Height):

        WriteLine($"{s.Length} x {s.Height} kare");

        break;

    case Ucgen r:

        WriteLine($"{r.Length} x {r.Height} üçgen");

        break;

    default:

        WriteLine("bilinmeyen şekil");

        break;

    casenull:

        thrownew ArgumentNullException(nameof(sekil));

}

 

Örnek 2:

public static int deneme(IEnumerable<object> values)

{

    var toplam = 0;

    foreach (var item in values)

    {

        switch (item)

        {

            case int val:

                toplam += val;

                break;

            case IEnumerable<object> altListe:

                toplam += deneme(altListe);

                break;

        }

    }

    return toplam;

}

Tuples

Tuples kullanımı eski bir kullanım olmasına rağmen c# 7 ile yenilenerek gelmiştir. tuple type ve tuple literal bir yenilik olarak karşımıza çıkmaktadır. Tuple tipleri değer tipi değişkenlerdir. System.Tuple isim alanını kullanmaktadır. Birden fazal değer döndürmek için Tuple kullanabilirsiniz. Birden fazla parametre olsa dahi tek nesne olarak işlem görmektedir. Çoklu değer döndürmek için out paramtresi tercih etmeden değer döndürebilirsiniz.

( string, string, string, string) getKisi()

{

    //Kişi bilgilerini veritabanından veya başka bir kaynaktan okuyabilirsiniz

    string strIsim = "Volkan";

    string strAdres = "Kadıköy";

    string strSehir= "İstanbul";

     return(strIsim, strAdres, strSehir); // tuple literal

}

 

//aşağıdaki metotu çağırdınızda çoklu değerleri döndürecektir.

 var kisiBilgi= getKisi();

WriteLine("Kisi bilgi:  {kisiBilgi .Item1} {kisiBilgi .Item2} {kisiBilgi .Item3}");

 

Yukarıdaki örnekte çoklu değerleri tuple kullanarak kolayca elde edebiliyoruz. Fakat item1,item2 isimleri alakası ve kafa karıştırıcıdır. bu yüzden anlamlı isimler kullanarak aşağıdaki örneği inceleyelim.

 

(string strIsim, string strAdr, string strSe) getKisi()

{

    //kodlarınızı buraya yazıyorsunuz

}

 

//metotu belirlenmiş ismi ile çağırdığınız zaman değerler aşağıda gözükecektir

var kisiBilgi= getKisi();

WriteLine("kisi bilgi: {kisiBilgi.strIsim} {kisiBilgi.strAdr} {kisiBilgi.strSe} ");

 

Bunlara ek olarak tüm değerleri Tuple Literal olarakta döndürebilirsiniz.

return (strIsim: strIsim, strAdr: strAdres, strSe: strSehir);

Tuple Hash tablosu veya Dictionary kullanarak kolayca değiştirebileceğiniz ve döndürebileceğiniz bir sisteme sahiptir. Tek durumda birden fazla değeri depoladığınız List yerinede kullanabilirsiniz. .NET üstünde bir Tuple tip tanımlıdır. Bu referans tipi bir değişkendir. C#ile gelen değiştirilebilir değer türü Tuple ise daha performanslıdır.

Bazı zamanlarda tüm tuple paketine ulaşmadan sadece değerlerine ihtiyacınız olabilir. O zaman C# 7 ile gelen Deconstruction özelliğini kullanarak istediğiniz parçayı oradan çekip alabilirsiniz.

( string strIsim,  string strAdr,  string strSe) = getKisi();

Console.WriteLine($"Adres: { strAdr }, Şehir: { strSe }");

 

Throw Expression

Bir try-catch yapısının herhangi bir yerinde throw kullanabilirsiniz. C# 7 ile istediğiniz bir yerde throw fırlatabilirsiniz.

class Kisi

{

    public string isim { get; }

    public Kisi(string isim_) => Name = isim_ ?? throw new ArgumentNullException(isim_);

    public string ilkismigetir()

    {

        var parts = isim.Split(" ");

        return (parts.Length > 0) ? parts[0] : throw new InvalidOperationException("isim yok!");

    }

    public string sonismigetir() => throw new NotImplementedException();

}



Volkan Atasever Kimdir ?

E-Mail: volkan(et)volkanatasever.com

Genel Müdür/S4G 
Bilgisayar Mühendisi

mühendislik, edebiyat, retro computer, yazılım, şiir, nümismatik, bilişim, podcast ve bir çok kategoride yazılarım...

Yazılım Kitaplarım

   

Şiir Kitaplarım

Dergi Yazılarım

 

Sosyal Ağlarım

 

 

 

 

Retro Bilgisayar Dergimiz

Türkçe Retro Bilgisayar dergimiz haziran 2016'da ilk sayısını çıkardı. ilk sayı yeni bir internet sitesinden tekrar yayınlanacaktır. Retro camiası tüm dünyada oldukça eğlenceli bir camia. Sizde katkıda bulunmak isterseniz bana mail atmanız yeterli. Dergimiz PDF formatında ve tamamen ücretsizdir.

Yasal Bilgi

Sitedeki yazıları,kodlar ve diğer materyaller Volkan Atasever'e aittir. Yazarı ve siteyi kaynak göstererek yazıları paylaşabilirsiniz.  Copyright(c)2004-2017

Sign In

Yazılım