21 Aralık 2015 Pazartesi

Star Wars 2012

        Star Wars(Yıldız Savaşları),George Lucas(1) tarafından tasarlanan efsane fim serisi.Sinema sektöründe altın harflerle yazılı bir çalışma.2015 yılını bitirmek üzere olduğumuz bu günlerde Türkiye'de bile gündem  ışın kılıçları,Darth Vader ve stormtrooper maskeleri,uzay araçları,akan galaksi ekranı.Koca otomobil firmalarının para basıp reklamlarında kullandığı,BİM(2)'in bile bardağını,şapkasını,yastığını,tshirtlerini satarak nasiplendiği, bizim gibi ortadoğu ülkesi vatandaşlarını sevindirdiği günler yaşıyoruz.Evet yanlış duymadınız BİM,Star Wars ve BİM'den satın alınan kupaları,şapkaları ezik bulan ortadoğunun bağrından kopan züppeler...

        Sosyal medya haftalarca Star Wars ablukası altındayken ( yeni filmi viyondayken  https://www.youtube.com/watch?v=sGbxmsDFVnE )  bir an yakın geçmişim gözümün önüne geldi.Kütahya DPU son sınıf bitirme tezim,adı Star Wars 2012 olan.Hayatlarında kod yazdıkları meçhul insanlara proje beğendirmeye çalıştığımız günler.Üniversite hakkında fazla konuşmak istemiyorum,kantininde takılmak harici pek çekici gelmeyen bir mekandı.Tez konuma gelirsek,XNA Framework ile 2D oyun tasarımı.O zamanın şartlarına göre elimden geldiğince kendimi geliştirmeye çalıştığımı düşünüyorum.Şu an daha iyisini yapabilirdim diye söylensemde sınıf olarak yönlendirme konusunda sıkıntı çekiyorduk.Oyun yapımı konusunda kendime başlangıç noktası bulmuştum,XNA Framework.Şu sıralar MonoGame(3) çatısı altında yeniden hayat bulan proje Microsoft'un desteğini kaybetse bile Xamarin(4) ile yoluna devam etmektedir.Ama bu işe giriş yapmak için sağlam ve basit bir yapıya ihtiyaç duyanlara her zaman önerim olmuş ve olacaktır bu Framework.Oyunum 3 level'dan oluşmaktadır.O zaman ki bilgi ve birikimime göre kendi kendime iyi bir şeyler yapmaya çalıştığımı söyleyebilirim.Takdir sizin.



Source Codes : here 
1) George Lucas and Star Wars
2) BIM
3)MonoGame
4)Xamarin

14 Aralık 2015 Pazartesi

Cannot insert the value NULL into column 'columnName', table 'dbo.Table'; column does not allow nulls. INSERT fails. The statement has been terminated.

        Veri tabanında içinde veriler olan tablonuz var ve siz bu tabloya yeni bir kolon eklemek istiyorsunuz.'Allow Nulls' seçeneğini kapatmak istiyorsunuz.Yani kolonun değerinin null olmasına izin vermek istemiyorsunuz.Bu sırada "Unable to modify table.Cannot insert the value NULL into column 'columnName', table 'dbo.Table'; column does not allow nulls. INSERT fails. The statement has been terminated." hatasıyla karşılaşacaksınız.Bu hatanın meydana gelme sebebi o an tablomuzda kayıtlı bulunan diğer verilere bu kolonun eklenmesi ve bunlarda ki değerlerin null olmasından kaynaklanıyor.Bundan kurtulmak için kolonun default value kısmını doldurabilirsiniz.Amacımız örneğin o an tablomuzda 100 adet kayıt varsa onların ilgili kolonunu(sonradan eklediğimiz) null olmayan bir değerle doldurmak.Benim örneğimde guid adında text tipinde veri tutan bir kolon ekliyorum.Allow nulls seçeneğini işaretliyorum ki bu hata ile karşılaşmayayım ve tablomu öncelikle bu haliyle kayıt etmiş olayım.Sonra bütün tablomun kayıtlarının guid kolonunu default bir değerle manuel olarak güncelleyeceğim.Bu işlemden sonra tablonun design modundan ilgili kolonun null değer alabilme iznini kapatabilirim.





9 Aralık 2015 Çarşamba

Breadcrumb (navigation,ekmek kırıntısı) Nedir?



        Genellikle web sayfalarında kulanıcılara bulundukları sayfaya ulaşmak için hangi yollardan geçtiklerini hatırlatmaya yönelik bilgi linkidir.Aslında ana dizinden ilgili sayfaya ulaşmak için gezilmesi gereken sayfaları gösterir.Yazılımcılar bu işi meşhur Hansel ve Gretel kardeşlerden öğrenmiştir diyebiliriz.Eski toprak bu iki kardeşin web sayfalarında navigasyon konularına yönelik yaptıkları hizmetleri anmadan geçemeyeceğiz.(Tamam abartıyorum)Annelerinin veya üvey annelerinin yokluk yüzünden aç kalma tehlikesine karşı bulduğu dahiyane fikir sonucu iki kardeş kendilerini babaları tarafından ormana bırakılmış şekilde bulurlar.Ama kardeşler yol boyunca eve(ana sayfaya) dönüş yolunu bulabilmek için cakıl taşları ve ekmek kırıntıları(aha breadcrumbs) ile işaret bırakmışlar.(1)Burada masumların hesaba katmadıkları şey ise ormanda ki masum hayvanların masum bir şekilde kırıntılardan nasiplenmesidir.Tabi kardeşler dönüş yolunu kaybederler ve değişik maceralar yaşarlar.(2)Şaka bir yana bizler bu yapının benzerinin yapımı konusunda kafa yoruyor olacağız.

        Breadcrumb(Ekmek kırıntısı) örneği aşağıdaki resimde göründüğü gibidir.Değişik kullanımları mevcuttur.(Genellikle e-ticaret sitelerinde karşılaşabileceğimiz bir yapıdır)





        Son zamanlar artık SEO dostu tasarımlar ortaya koyma noktasında yarışa girişen yazılımcılar sayesinde zaten tarayıcımızda gördüğümüz linklerde nerede olduğumuz hakkında bizlere yeterli kırıntıları sunulmaktadır.




        Örnek olarak,Dota 2 oyunuyla ilgili istatistik sunan bu sitede(3) Herolar/WitchDoctor/Items kısmından nerede olduğumu anlayabiliyorum.

        Benim değinmek istediğim konu ise şu şekilde,elimde bir kategori sistemi var ve buna kategoriler eklemek istiyorum.Her kategorinin üst kategori(Parent Category,bir tane) ve alt kategoriler(Child Categories,birden fazla olabilir) diye alanları mevcuttur.Eğer bir kategorinin üst kategorisi null ise yani yoksa bu kategorimiz saygı değer üst kategoridir.Bunların ekleme veya ilişkilendirilme durumlarına değinmeyeceğim.Bunları hallettiğinizi varsayarak elinizde bir kategori listesinin bulunduğunu ve bu listenin her bir elemanının altında bulunduğu üst kategorisine doğru gezinti menüsünü oluşturmaya çalışacağız.

       Elimizde 4 adet kategorinin olduğunu varsayalım.Heroes isimli kategori üst kategorimiz(parent category)  olsun.Witch Doctor ve Timbersaw diyede alt kategoriler(child categories) olsun.Bu iki kategorinin parent i Heroes kategorisi olsun ve Witch Doctor bir adet alt(child) kategoriye sahip olsun.Onun adıda Items olsun.

Almamız gereken sonuç :
Heroes kategorisinin breadcrumb linki = Heroes
WitchDoctor kategorisinin breadcrumb linki = Heroes>>WitchDoctor
Timbersaw kategorisinin breadcrumb linki = Heroes>>Timbersaw
Items kategorisinin breadcrumb linki = Heroes>>WitchDoctor>>Items

        Biz bu aldığımız sonuçları oluşturacağımız Category nesnelerimizin BreadCrumb(String) alanında saklayacağız.Her nesne kendi ekmek kırıntısıyla eve dönüş yapısını içnide saklayacak.Bunlarıda örnek olarak kategorilerimizin listelendiği tabloda veya diğer aklımıza gelen uygun yerlerde kullanabiliriz.Bunu oluşturan bir fonksiyon tasarlıyoruz.Recursive(4) olarak çalışacak olan bu yapı kategori listemizin her nesnesini dolaşıp o nesnenin üst kategorisini bulana kadar yani üst kategorisi null olan kategoriye denk gelene kadar ekmek kırıntılarını takip etmek olacaktır.Bu işlemi her bir liste elemanı için tekrar edeceğiz.

public class Category : BaseObject
    {
        Category parent;
        string name;
        string breadcrumbLink;

        public Category Parent
        {
            get
            {
                return parent;
            }

            set
            {
                parent = value;
            }
        }

        public string Name
        {
            get
            {
                return name;
            }

            set
            {
                name = value;
            }
        }


     public string BreadcrumbLink
        {
            get
            {
                return breadcrumbLink;
            }

            set
            {
                breadcrumbLink = value;
            }
        }


List<Category> childList;

        public List<Category> ChildList
        {
            get
            {
                return childList;
            }

            set
            {
                childList = value;
            }
        }


        public string GetBreadcrumbLink(ref int counter, List<Category> categoryList, Category category)
        {
            if (counter == 0)
            {
                if (category.Parent == null)
                {
                    BreadcrumbLink += "<strong>" + category.Name + "</strong>(" + category.ChildList.Count + ")";
                }
                else
                {
                    if (category.ChildList.Count > 0)
                        BreadcrumbLink += category.Name + "(" + category.ChildList.Count + ")";
                    else
                        BreadcrumbLink += category.Name;
                }
            }

            counter++;
            if (category.Parent != null)
            {
                BreadcrumbLink = category.Parent.Name + ">>" + BreadcrumbLink;

                GetBreadcrumbLink(ref counter, categoryList, category.Parent);
            }

            return BreadcrumbLink;
        }


}


     
         Örnek Category sınıfımız yukarıda göründüğü gibidir.İçeriğinde Category sınıfından bir Parent,alt kategoriler için ChildList adında Category Listesi,String tipinde Name alanı(kategori adı) ve BreadcrumbLink adında String tipinde ekmek kırıntısı linkimiz mevcuttur.

         foreach (var category in categoryList)
            {
                int counter = 0;
                category.GetBreadcrumbLink(ref counter, categoryList, category);
            }

        Sistemimizde bulunan bütün kategorilerin geldiği listede her bir kategori nesnesi için yukarıda görüdüğümüz şekilde breadcrumblink alanını doldurabiliriz.

        Ben benzer sistemin iki değişik kullanımını örnek vereceğim.ASP.NET MVC kullananlar için tanıdık gelecek bu Controller sayfasında elimde bulunan kategorileri tablo halinde listelenmesini istiyorum.BreadcrumbStyleTable fonksiyonumuz bizlere tablonun satır bilgilerini döndürmektedir.View sayfamızda Html.Raw ile alacağınız bu kısımda tablomuzda kategori adları yerine ilgili kategorinin kategori hiyerarşisindeki konumunu yazdırıyoruz.(Örnek : Futbol>>Takımlar>>Bursaspor).TreeMenu fonksiyonu ise aynı kategori hiyerarşisine ağaç görünümü ile bakmamıza olanak tanıyor.

public class PanelCategoryController : Controller
     {
        // GET: Category
        public ActionResult Index()
        {
            var categories = Category.CategoryList;

            string table = "";
            int counter = 0;
            BreadcrumbStyleTable(ref counter,ref table,categories);

            ViewBag.table = table;
            return View(categories);
        }


public string BreadcrumbStyleTable(ref int counter,ref string table, List<Category> categoryList, int? parentId = null)
        {
            if(counter!=categoryList.Count)
                table += "<tr>";

            counter++;

            foreach (var category in categoryList)
            {
                int? categoryParentId = null;

                if (category.Parent != null)
                {
                    categoryParentId = category.Parent.Id;
     
                }

                if (categoryParentId == parentId)
                {
                    table += "<td><a href='Category/Details/"+category.Id+"'>" +category.BreadcrumbLink + "</a></td>";
                    table += " <td><a href='Category/Edit/"+category.Id+"'>Düzenle</a>/<a href='Category/Delete/"+category.Id+"'>Sil</a></tr>";
                    BreadcrumbStyleTable(ref counter,ref table, categoryList, category.Id);
                }
            }

            return table;
        }

public string TreeMenu(ref string table,List<Category> categoryList,int? parentId=null)
        {
            table += "<ul>";

            foreach (var category in categoryList)
            {
                int? categoryParentId = null;

                if(category.Parent!=null)
                    categoryParentId=category.Parent.Id;

                if (categoryParentId == parentId)
                {
                    table += "<li>" + category.Name;
                    TreeMenu(ref table, categoryList,category.Id);
                    table += "</li>";
                }
            }

            table += "</ul>";
            return table;
        }

1)Sefaleti yaşarken ekmek kırıntısından navigasyon olayı iyimiş.Acaba anneleri,"ben sadece pirzola yemek istiyorum kuru ekmek benim yaşam tarzıma uygun değil" diyerek mi çocukları evden kovmayı düşünmüş diye insan kendi kendine sormuyor değil.Yani sorun burada açlık değilde pirzola yiyememek miydi?Çünkü götürüldükleri yerin eve uzaklığı boyunca bırakacakları ekmek kırıntıları için belkide fırın arabasıyla seyahat etmeleri daha makul görünen birşey.

2) https://tr.wikipedia.org/wiki/Hansel_ve_Gretel

3)http://www.dotabuff.com

4)https://en.wikipedia.org/wiki/Recursion_(computer_science)  (Özyineleme)

29 Kasım 2015 Pazar

SQL Server: Invalid Column Name


        Microsoft Sql Server Management Studio üzerinde çalışırken bazen sinir bozucu şekilde sorgu satırlarımızın altında kırmızı çizgilerin belirdiğini görürürüz.

Sql Server : Invalid Column Name

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'S'.

        Benzeri mesajlar görünür ama anlamadığımız kısım budur zaten.Bunun olma durumlarından iki tanesinden bahsedeceğim.Birincisi sorgu yazdığımızda sql de bizim hangi veritabanı üzerinde işlem yapacağımızı bildirmemiş olabiliriz.Bunu aşmanın yolu veritabanını seçmek.Üstteki resimde sol üst kısımdan NBA veritabanını seçtiğimizde sorunumuz çözülecektir.Diğer yol ise sql sorgularımızdan önce bir kere Use DatabaseName; dememiz yeterlidir.


        İkinci durumda ise bir veritabanı üzerinde çalışırken seçtiğimiz tablomuzda,join  yaptığımız tablolarda bir değişiklik olmuş olabilir veya bağlantılı sonuç getireceğimiz tablomuz bizim sorgu sayfamız açıldığında başlangıçta son halini almamış veya hiç varolmamışta olabilir.O yüzden sql Management Studio'yu kapatıp tekrar açabiliriz veya aşağıda ki yolu izleyerek sql sorgularımızda ki intellisense özelliğine bir yenileme komutu yollayabiliriz.İşlemin dizini Microsoft SQL Server Management Studio içerisinde Edit>>Intellisense>>Refresh Local Cache.





25 Kasım 2015 Çarşamba

Error : String or binary data would be truncated. The statement has been terminated.

       Bir tablo oluşturmuşunuz ve Name isimli string alanını tutmak için VarChar(20) tipinde bir kolon eklediğinizi varsayalım.Veritabanına insert işlemi yaparken kullanıcının,sizin belirtiğiniz Size(20) değerinden fazla karakterli bir giriş yapmasına izin verdiğinizi varsayalım.Bu durumda 'String or binary data would be truncated. The statement has been terminated.' hatasıyla karşılaşırsınız.Kurallarınızı gözden geçirmenizde fayda var.Örneğin ilgili alana 20 karakterden fazla giriş yapılmamasını sağlayabilir veya ilgili alanın daha uzun karakterleri tutabilmesini sağlamak için ilgili tablodan ilgili kolonun Size ını artırabilirsiniz.
        DevExpress XAF kullanıyorsanız,sınıfınızda örneğin String alanını oluşturup programı derlemeye geçtiğinizde tablolar çoktan oluşacağından dolayı ilgili kolonun boyutunu düzenlemek için sil-tekrar yükle işlemi veya tabloyu silip projemizi yeniden derleme yoluna gidebiliriz.(2.adım eğer tablo boş ise daha rahattır.) Yeniden oluşturma işleminden önce tabi ki gerekli ayarlamaları alanımız için yapmayı unutmayalım.

[Size(50)]
public string MyProperty
{
    get { return _myProperty; }
    set { SetPropertyValue("MyProperty", ref _myProperty, value); }
}


[Size(SizeAttribute.Unlimited)]
public string MyProperty
{
    get { return _myProperty; }
    set { SetPropertyValue("MyProperty", ref _myProperty, value); }
}

[DbType("nvarchar(max)")]
public string MyProperty
{
    get { return _myProperty; }
    set { SetPropertyValue("MyProperty", ref _myProperty, value); }
}

9 Kasım 2015 Pazartesi

DXDIAG Nedir?





Windows işletim sistemi için ekran kartımızın özelliklerinden tutunda bilgisayarımızın sistem özelliklerine,DirectX sürümünden ses aygıtına,klavye veya mouse gibi girdi-çıktı birimleri hakkında bilgi edinebileceğimiz DirectX Tanı Aracına Başlat->Çalıştır->dxdiag yazarak ulaşabiliyoruz.

DirectX Tanı Aracı başlık ismiyle açılan pencerede 'Sistem','Ekran','Ses' ve 'Giriş' isimli bölümler karşımıza çıkıyor.

Sistem bölümünden bilgisayarımızla ilgili sistem bilgilerini elde edebiliriz.Geçerli tarih veya saat,bilgisayar adı,işletim sistemimiz,kullanılan dil,sistem üreticisi,sistem modeli,bios,işlemci,ram(bellek),disk belleği dosyası ve directx sürümünü öğrenebiliriz.

Ekran bölümünden ekran kartımızla ilgili 'Aygıt','Sürücüler' ve 'DirectX Özellikleri' bilgilere ulaşabiliyoruz.Aygıt kısmında ekran kartı aygıt adı, üretici firma,yonga türü,DAC türü,yaklaşık toplam bellek,geçerli görüntü modu ve monitör bilgilerini öğrenebiliriz.Sürücüler kısmından ana sürücü,sürüm,tarih,WHQL,DDI sürümü ve sürücü modeli bilgilerini öğrenebiliriz.Directx kısmından örnek olarak DirectDraw,Direct3D ve AGP hızlandırmalarının etkin olup olmadığına bakabilirsiniz.

Ses bölümünden ses aygıtı ile ilgili bilgiler,Giriş kısmından ise DirectInput aygıtlarını(örn.Fare,Klavye)görebilirsiniz.

Özetle bu araç,sisteminizde yüklü DirectX bileşenleri ve sürücüleri hakkında detaylı bilgi raporlar.
- See more at: http://mayhemcorporation.com/mayhem/index.php?topic=26

8 Kasım 2015 Pazar

Sql Server 'Saving changes is not permitted' error

Sql Server Management Studio'da  genellikle tasarlamadan oluşturduğumuz tablolar olmuştur.Bunlarla ilgili değişiklik yapmak istediğimizde ve değişikliklerin kaydedilmesini istediğimizde şöyle bir uyarı ile karşılaşmaktayız.

"Saving changes is not permitted. The changes you have made require the following tables to be dropped and re-created. You have either made changes to a table that can’t be re-created or enabled the option Prevent saving changes that require the tables to be re-created.”



Uyarıda kaydedilen değişikliklere izin verilmediği,değişikliklerin geçerli olması için tablonun silinmesi veya yeniden oluşturulması gerektiği veya tablonun yeniden yaratılmasının gerektirecek değişikliklerin kaydedilmesini engelleyen seçeneğin değiştirilmesini söylüyor.

Bu seçeneği kaldırarak biz tablomuzu yeniden oluşturma işlemlerinden kurtulmuş olacağız.



Sql Server Management Studio içerisinde yukarıda ki menüden Tools>Options>Table and Database Designers kısmından 'Prevent saving changes that require table re-creation' seçeneğindeki seçimi kaldırıyoruz.(Yalnız yeniden tablo oluşumu gereksinimi yaratan bu durumların kaydedilmesinin engellenmek istemesinin sebeplerini bir kenara not almakta fayda var( https://support.microsoft.com/tr-tr/kb/956176 ) Biz en iyisi bu seçeneği aktif halde bırakıp projemize devam edelim.)


6 Kasım 2015 Cuma

Microsoft Açık Akademi

Microsoft Açık Akademi

        Açık Akademi,Microsoft'un www.acikakademi.com adresinde ücretsiz olarak uygulama geliştirme üzerine eğitimler verdiği sanal okuldur.Temel programlama eğitimlerinden ileri düzey uygulama geliştirmeye yarayacak konuların anlatıldığı derslerde değişik cihazlarda ve değişik sistemlerde üretime yönelik eğitimler verilmektedir.Aklınızda ki projeniz ister web ortamında olsun ister masaüstü ister mobil isterseniz bulut uygulaması olsun açık akademi üzerinden alacağanız dersler ve üzerine yapacağınız pratikler ile adım adım projelerinizi gerçekleştirmeye başlayacağınızı söyleyebilirim.Tabi ki programlamanın kendi başına bir derya olduğunu unutmamak gerekir.Sürekli gelişen teknolojiyle paralel bir şekilde artan yeni çözüm önerileri yüzünden programcılar bir çok alternatif sistem konusunda bilgi sahibi olmak zorundadırlar.Buda anca  büyük bir tutkuyla yürütülebilecek meslek icrası olabilir.Açık Akademi orta seviye olanları bir adım öteye ulaştırabilir ancak yeni başlayanlar için sadece başlangıç ateşini yakabilir.Zaten buda çok önemli bir şey diye düşünüyorum.Gerisi ilgili konularlarda bol miktarda pratik ve araştırmadan geçiyor.Üzerine yoğunlaşmadığımız  sürece hayatımızda ki çoğu şeyin zaten öğrenilmesinin zor olduğunu biliyoruz.


        Siteye Microsoft hesabımızla giriş yapabiliyoruz.Giriş yaptıktan sonra artık bu akademinin bir öğrencisi olarak dilediğimiz derse girip çıkabiliyoruz.Eğer belli bir proje tipi üzerinden eğitim görmek istiyorsanız yukarıda gördüğünüz kısımlardan maceranıza devam edebilirsiniz.(Unity ile oyun geliştirme kısmı bile mevcut)


        Tüm dersler kısmından ise sistemde mevcut olan bütün derslerin listesine ulaşabiliriz.Yukarıda ki fotoğrafta bir kısmı görüntülenmektedir.Derslerin yaklaşık olarak ne kadar süreceği ve sizin bu dersleri tamamlama oranlarınızı ilgili kolonlarda görebilirsiniz.


        Herhangi bir konuya girdiğimizde bizleri ilgili konuyla ilişkili bir çok dersin beklediğini görebiliriz.Bunları iyi anlayıp ders sonu soruları cevaplandırmamız alacağımız puanların belirlenmesi açısından önemli.

        Bunlardan başka Kütüphane kısmı(belli konularda dokümanlar içerir),derslere katılanların Başarı Bilgileri (büyük ihtimalle dersler sayesinde uygulama geliştirmiş veya kariyerlerini şekillendirmiş kimseler),Açık Akademi Tv(açık akademide yapılmış olan kariyer söyleşileri,sanal sınıf etkinlikleri ve canlı yayımlara bu bölümden erişebilirsiniz),Soru-Cevap kısımı inceleyebileceğiniz kısımlar.



        Ayrıca Kodu diye bir kısım mevcut ki bunu belki ilerleyen yazılarımda inceleyebilirim.Kodu için basit olarak şunu söyleyebiliriz ki,çocuklar için özel olarak tasarlanmış bilgisayar oyunu oluşturmaya yönelik görsel bir programlama dilidir.Benim önerim incelemekte fayda var.Çünkü programlama,bütün insanlar için kendi bünyesinde barındırdığı düşünme biçimi geliştirme yöntemlerinden dolayı çok faydalı ve gereklidir.Bu sebeple programlamaya erken yaşlarda başlayan çocukların ileride yazılım dünyasında kariyer sahibi olmayacak olsalar bile(belki büyüdüklerinde istemeyebilirler) bir çok anlamda yeteneklerinin gelişeceğini söyleyebiliriz.

        Açık Akademi sayfasının Microsoft  tarafından desteklenmesinin nedenleri üzerine fazla kaotik sorgular yapmamak gerekiyor diye düşünüyorum.Doğal bulacağınız gibi Microsoft kendi teknolojileri üzerinden ilgili cihazlara ve ortamlara yönelik uygulamalar geliştirmenize yardımcı olmaya çalışıyor.Bizler bireysel olarak böyle şirketlerin sadece gösterdiği yollarla ilgilenmeliyiz.Keşke etrafımızda var olan bütün programlama dilleri,veri tabanı yönetim sistemleri,geliştirme ortamları vs için geniş kapsamlı kaynaklar mevcut olsaydı.Benim şahsi görüşüm bu konuda fazla zaman kaybetmeden bir konuda sizi sonuca götürenlerle yol almanız.Microsoft teknolojileri benim için artı olur diyorsanız buyrun derslerde ki yerinizi alınız.Yalnız eleştirmeden edemeyeceğim.Bazı ders sonu sınavlar aşırı zorlayıcı olabiliyor ve klasik Türk tipi okullarda ki gibi anlatılmayan kısımlardan sorular gelebiliyor.Buda konuyla ilgili bizlere ekstra araştırma yapma ihtiyacını yaratıyor.(Hevesi olan daha fazlasınıda yapar,yetinmez,ilgili konuyla alakalı Youtube video serileri bitirir,kaynak kodlar inceler....)


27 Ekim 2015 Salı

Veri Tabanı Yönetim Sistemi Nedir?

Veri Tabanı(DataBase) Nedir?

          Veritabanı,veri depolamak için kullanılan bir mekanizmadır.Veri(data),günlük hayatımızda duyu organlarımızla yakalayıp(1),beynimizle işleyebildiğimiz herşeydir.Sayısal veya sözel gezegenimizin belleğinde yer kaplayan olgulardır.Derleyicimizi açtığımızda bizlere sunulan klasik ilkel(2) ile nasıl karmaşık işlerimizi çözemiyorsak günlük hayatımızdada örneğin bir tartıdan gelen ağırlığımızın sayısal verisi tek başına pek anlamlı değildir.Mesela programlama dillerinde kendi sınıflarımızı yaratma ihtiyacının varlığına değinelim.Ben ağırlık verime boy,yaş,cinsiyet gibi verileride katabilirim.Bunları toparlayacak,kapsayıcı bir yapı(sınıf) yapabilirim ve bunları satır satır tablolar halinde saklayabilirim.Şimdi elimizde tek başlarına fazla faydalı görünmeyen verilerin birleşimiyle bir yapı oluştu.Bu yapıdan seçeceğimiz verilerin anlam yaratmasına enformasyon(information) denir.Örneğin cinsiyeti kadın olanların ortalama ağırlığı bizlere ilgili konularda enformasyon sunar.Bu enformasyonları yorumlayıp bunlardan yararlanabilme yeteneğimizde bilgi oluyor.Klasik örneklerde verilenler gibi bir bakkal defteride veritabanına örnektir,telefon defteri veya kimlik kartıda veritabanı örneğidir yorumlarına girmeyeceğim.Elimizde ki verilerden fayda edinebilme yeteneğimiz(bilgi) oldukça hangi ortamda veriyi nasıl sakladığımızın önemi yoktur.Özet olarak veritabanı,faydalanmak için verileri sakladığımız ortamdır.

Veritabanı Yönetim Sistemi(VTYS/Data Base Management System)

          Veritabanı Yönetim Sistemi veri tabanlarında veri depolama ve veriye erişim anlamında duyulan ihtiyaçları karşılamak üzere oluşturulmuş sistemdir.En basitinden karmaşığına bütün veritabanlarından istenilen standartlar mevcuttur.VTYS bunları etkin bir şekilde sunabildiği ölçüde kalitesini gösterir.Bu gereksinimleri başlıklar halinde vurgularsak:Veri depolama gereksinimini karşılamak,verilerin son kullanıcı için her zaman hazır olması,veritabanı güvenliğinin verileri koruması,verinin yönetilebilir halde sunulması,verilerin kolay çağrılması gibi.Bunların yanı sıra VTYS'ler için verilerin yedeklenmesi ve gerektiğinde kurtarılması gibi önemli görevlerin var olduğunuda hatırlatmakta fayda var.

        

          Populer VTYS araçlarını başka yazılarımda incelemeyi düşünüyorum.Herhangi birini özel olarak övmek istemiyorum(3).Sonuçta veriyi nasıl kullanmamız,enformasyona dönüştürüp ondan fayda sağlamamızı hangisi daha rahat sağlıyorsa onu kullanabiliriz.Son olarak CV'nize bildiğiniz VTYS'leri şunlar şunlar diye yazarsanız işveren için daha anlamlı bir kişisel özgeçmiş veri tablosu sunmuş olacağımızı söyleyebilirim.


1) Try-Catch Bloğuyla yakalayıp Finally kısmında bu veri ile yapabilecekleriniz konusunda donanımlı olduğunuzu varsayalım.O konu hakkında bilgili biri olmuş oluyorsunuz.Örneğin önünüze Visual Studio yüklü bir bilgisayar konulduğunda diğer insanlardan farklı birşeyler yapabilme yeteneğiniz bilginiz sayesindedir.Buda bizlere bilginin(knowledge) tanımını özetler.
2)String,char,int,double,bool vb primitive tipler
3)MsSQL,MySql ve Oracle VTYS'lerini kullandım.Projeye göre tercih yapılması önerilir.

Kaynak:Herkes İçin 24 Saatte Veritabanları,Ryan Stephens-Roy Plew,ALFA Yayımları

19 Ekim 2015 Pazartesi

Renault Reklam Saçmalığı

         Bugünlerde işe gidip gelirken radyoda sürekli büyük bir çelişkinin reklamına maruz kalıyorum.Akılları sıra Bursa'nın insanlık dışı toplu taşıma aracı olan metrosunda Nazi toplama kampına gider gibi işinize doğru yol aldığınız sırada(siz hangi öflenecek,püflenecek durumdaysanız artık sabahları),kendisiyle çelişen bir sloganla reklam girerek sizlere 72.000 TL lik bir araç(Renault Kadjar,jeep falan neyse) aldıracaklarını umuyorlar.İlgili reklamı bulamadım ki bulabilseydim kendi hesabımda yayımlamam gerekecekti ve bende onların reklamına(daha çok zarar veren)alet olacaktım.Sizlere Renault'un dikkatimi çeken bu dandik ve çelişkili reklamlarından bir kaç parça yazacağım.Sloganlar bomba ama bir arabanın sahibine olan maliyetini,anlatılmak istenenlerle bağdaştırmak imkansız.
          "Hayatın koşuşturmacasına kapılmaktansa,kalbini rüzgara teslim ettin"(İşe güce giden insanların boktan bir koşuşturmaca içerisinde yok olduklarını söylüyor.Hatta başka bir reklamlarında şu an siz sıkıcı ofisinizde keşke şurada olsam diye iç geçirirken birileri Dünya'nın bir yerlerinde ilk defa dalış eğitimi alıyor olabilir diyor.Hayallerimize bu kadar yakınken neden bir fırt Reno çakmıyorsunuz kendinize diye kızıyor bizlere.Benim ise aklıma gelen şeyler bir arabanın bu kadar yüksek fiyatıyla beni güzel hayallerimden 70 küsür ay geriye atmasının yanı sıra onun lanet vergisi,sigortası ve murphy giderleri(1)),"Mutlu olmak için almayı(reklamda kadınlar kapitalizmin kalelerinden ellerinde alışveriş çantalarıyla çıkıyorlar) değil şöyle derin bir nefes  alabilmeyi seçtin"(sözde ayda 1000 TL den 72 ay ömrümüzü ve birikimimizi yok edecek,vergisi veya sigortası,ıvır zıvırı haricinde sadece borçlarına sahip olabileceğimiz aracın içinde nefes alan bir kadın görünüyor),"Hayat seçtiğin yoldur","Seyirci kalma yaşamaya başla"(Düşünsenize çevrenizdeki insanların profilini,Türk halkının ekonomik durumunu.3-5 yıllık birikimlerini tüketim çılgınlığına seyirci kalmamak adına heba ettiğini ki istenilen de tam olarak bu)
         Dövüş Kulübü filminde Tyler Durden şöyle diyor:"Things you own end up owning you",yani sahip olduğun şeyler sonunda aslında sana sahip oluyorlar.Bizler arabaya,eve sahip olduğumuzu anlatıyoruz.Onların borçlarını veya giderlerini ödeyebilmek içni sevmediğimiz işlerde çalışıyoruz.Kimseye ödediğimiz bedelleri anlatmıyoruz.Bir kaza yapmadığımız sürece sürekli arabamızla övünüyoruz.Evimizle yükseliyoruz.Ergenlikten beri telefon savaşları veriyoruz.Babamızın malıymış gibi Android mi Windows Phone mu,Reno mu Fiat mı diye tartışıyoruz.Kazandığımız her şey aslında sahip olduklarımıza akıyor.Arkadaşlarımız sorsa bizlere arabamız mı bize sahip biz mi arabamıza diye hangi cevabı verirdik?Mutluluk bir araba veya ev için ömür harcamakla kazanılmaz.Sonuç olarak senin ömrünü tüketmene sebep olmuş sahiplerin(2)için sevmediğin işlerde çalıştın.Şimdi karşılığında dünyanın en pahalı şeyini(ömür) verdiğin mal varlığınla derin bir nefes al.Reklamlarda öyle diyorlar ya.
          Sahip olduklarımızın bize sahip olmadığı veya en azından onalar için işkencelere maruz kalmadığımız bir hayat yaşamamız dilekleriyle görüşmek üzere.

Tabi reklamlara kızarken güzel müzik kullanmalarınıda es geçemeyiz.Gelin biz ihtiyacımız olan kısmını tüketelim arabayı değil müziği,ruhumuzun gıdasını.Buyurun;




(1)Murphy'nin sizlerle nerelerde karşılaşacağını öngöremezsiniz.Bir kaza olabilir veya 2014 te ödediğiniz 290 TL lik zorunlu trafik sigortanızın muhteşem güçlü Yeni Türkiye topraklarında bir sene sonra 495 TL ye varmış artışlarında.(Bunu damarlarınızda bile hissedersiniz.)

(2)Gerçekte ihtiyaç duymadığın mal varlığın,servetin(Not:Hepsi değil.Bu ayrımı kişiler kendileri için kararlaştırmalılar!!!

16 Ekim 2015 Cuma

Gece ve Gündüz Eventleri

                 İnsanlar bir çok teknolojik aletin icadında doğadan esinlenmiştir.Yazılım dünyasında ki çözümlerde hayatın akışından esinlenerek oluşturulan uygulamalardır diyebiliriz.Çevremizde gördüğümüz nesnelerin ve bunların içindeki tamamlayıcıların(gene nesnelerin) oluşturduğu bir hayat yaşanmakta etrafımızda.Bunlara olmazsa olmaz hareket katan olaylar(event) katılmış ki buda hayata dinamiklik katmış.
                Askerdeyken bu işkence bir ara bitecek istediğim zaman,istediğim yere gidebileceğim,istediğim şeyi yapabileceğim diye hayal ediyordum.Aslında tamamen önümde görünür sonu olan bir süreç olduğundan (o lanet olası dönem bitti işaretini aldığımda),bir butonun click eventinden daha seri kendimi kışlanın önüne atacağımı,hatta otobüsle dönebileceğim şehrime daha hızlı varabilmek adına uçakla(para özgürlükten değersizdir) bile dönebileceğimi planlıyordum.Kışlada bir ara arkadaşımın teki yağmur altında ağlana sızlana(teoride öyleydi pratikte gıkımızı çıkaramadık) dışarıda artık ne iş olursa olsun yapabileceğini,bari en azından bundan dolayı para kazanabileceğimizi söylemişti.O zamanlar hak vermiştim.Para karşılığında bile olsun sizlere teşekkür eden birileri(patronun)olacaktı.İşte eventler var ya o eventler hayat programında insanlara hamle yapma fırsatı veriyor.O event geldi ve kendimizi dışarda bulduk.Ben şahsen üzerine çok uzun süre (gerekli veya gereksiz tartışılır) işsiz kaldım.Kafamı mı dinledim,kafayı mı buldum tam bir muamma.Dövüş Kulübü,Esaretin Bedeli vb filmler varken bu hayatta hiç bir şey eskisi gibi olmuyordu.Konumuza dönersek eventler diyorduk.O anı beklediğimizden her türlü sıkıntıya göğüs gerdik.Böyle yaratılmıştık veya eğitilmiştik.Ben tam anlamıyla birileri tarafından bilinçli bir şekilde yönlendirildiğimizi düşünüyorum.Artık o sıkıntılı süreç bitti.Onu bitiren bir event vardı.Bizde tetikleneceğimiz anı bekleyerek sabrettik.
                  Peki şimdi ne olacak?Şimdi bir ömür(60-65 yaşına kadar)sürecek bir koşuşturmacaya girişmemiz gerektiği söyleniliyor.Sorun herkesin yapabildiğini yapıp yapamadığımız değil.Farkındalık kazanmak.Günde 12-13 saat işe(yol falan dahil),6-8 saatte uykuya ayırdığımızda bize kalanları düşündüğümüzde insan askerliğide mumla aramıyor değil.Şunu gözlemledim ki sabah işe giderken zar zor kendinizi sıcak yatağınızdan iş yerine atıyorsunuz.Akşam(artık kaçta çıkıyorsanız) çıkışınızda ise değişik bir rahatlama geliyor.Tam olarak tatmin olmasanızda en azından toplum önünde bir şey başarmanın buruk sevincini yaşıyorsunuz.
                 Benim sorum şu.Eğer gece ve gündüz eventleri gerçekleşmeseydi bu aç gözlü iş dünyası bizleri kaç saat çalıştırırdı?Peki günün bittiğini havanın kararmasından veya kendi tükenmişliğinden anlayan insanoğlu buna odaklanarak bütün acılara katlanabilirken,bunun genel olarak tamamıyla bittiği eventin aslında bizlere verilen en değerli şeyin(ömür) bitişi olduğunu farkettiğinde ne hissedecek?60-70 yaşlarında şimdiki ihtiyarlar gibi genç nesle çatıp,bunlar hiç çalışmıyor bizim gibi ömürlerini çalışıp (topu topu) emekli bile olamayacaklar mı diyeceğiz?Hayatta şu akşamı,şu haftayı,şu ayı veya yılı atlatayımda sonra bakarız diye bir planınız olmasın.Bunu başarabiliyorsanız ne mutlu sizlere.( ;) )

9 Ekim 2015 Cuma

Indie Game:The Movie



Indie Game The Movie belgesel biçiminde 4 bağımsız oyun geliştiricisinin hayatlarına yönelik bir film.Onların ürettiklerinden ziyade arkaplanda sadece kod parçalarının yürütüldüğü cansız bir sistemin olmadığına;etiyle(1),duygularıyla ve hayalleriyle birilerinin var olduğuna işaret etmektedir.Hani herkes için birkaç film vardır ya hayatımızda bazı şeyleri tetikleyici bir rol üstlenirler işte öyle nitelikte bir yapım bu film.

Filmde anlatılan hikaye 3 oyun üzerinden ilerlemektedir ve yapımcılarının(bence biraz acıklı olan ama sonuç olarak mutlu biten)anlarıyla,hissettikleriyle ilgilidir.Anlatımlar Super Meat Boy(2) ekibi Edmund McMillen ve Tommy Refenes,Fez(3) yapımcısı Phil Fish ve Braid(4) in yapımcısı Jonathan Blow ile ilgilidir.

Filmi elime geçen haftada 2 kere izleme imkanına(ne imkanı yıllardır çekilmesini istediğin bir film olduğundan devamlı açıp duruyorsun zaten) eriştim.Sizlere filmle ilgili önemsediğim,hoşuma giden veya önemli bulduğum bazı sahneleri,konuşmaları kısaca anlatmak istiyorum.

Filmde ki yapımcılardan Phil Fish bir noel gecesinde zamanının en muhteşem üçlü oyun koleksiyonlarından birisi(5) diyebileceğimiz oyunların kendisine hediye edilmesiyle başlayan ve o andan itibaren video oyunları üzerine birşeyler üretmek diye kesinleşmiş amaçlara sahip bir kişilik.(6)Örneğin Super Meat Boy yapımcılarından Edmund küçüklüğünde sürekli garip şeyler,yaratıklar çizermiş.Hayal güçlerinin zengin olması aslında tesadüf değil yani anlayacağımız,garip şeyler üzerine kafa patlatmak ve bu konuda emek harcamak,çok uzun zamandan beri hemde(Bir an hey bende küçükken çizerdim hep birşeyler falan dediğinizi duyar gibiyim).Birde bizim küçüklüğümüzde ki özel günlerimizde elimize geçenleri düşündüğümüzde video oyunu hediyesi gibi şeyler tamamen bir çocuğun başına gelebilcek en iyi şeylerden.

Braid in yapımcısı Jonathan Blow ise süslü anlatımlarıyla belgeselde karşımıza çıkıyor.22 yıldır oyun programlamayla uğraştığını söyleyen Jonathan bir an bu konuda hayalleri olan bizlerin içini cız ettirecek birşey mırıldanıyor.Bazen bu konuda insanın moralmen çökebileceğini,hayallerinin inşasında sona ulaşamayacağından korktuğunu belirtiyor.(Bu konuda bir şeyler yapmak isteyen herkes eminim ki başarısızlıktan çok çekiniyordur.İnsana sanki başka işlerde başarısız olsa daha az zararlı çıkacakmış hissi yaşatıyor.)Phil Fish ise bu noktada en dramatik olan açıklamayı yapıyor."Tamamlayamazsam kendimi öldürürüm".Birileri bu oyunları son haline getirebilmek için çok uğraşıyorlar ve bütün istedikleri bunları tamamlamak.Fakat gerçekte çoğu insan sadece oyununu oynamakla meşgul gerisini umursamıyor.

Filmde anlatılan kişilerin bu yolda yürürken kaybettiklerinede değinilmektedir.Fiziksel görünümlerinde dikkatimizi çeken yıpranmalar(saç dökülmesi vb),kilo sorunları,bunların asıl nedeni olan sağlıksız beslenme,gün boyu hareketsizlik,asosyallik ve Edmund'ın normal gitmeyen evlilik ilişkisi(Tabi başarıya ulaştıktan sonra bazı şeylerin eskiye oranla daha güzel olduğundan eminim).Meat Boy yapımcılarına göz atarsak filmde Tommy Refenes kendisinin içerisinde bulunduğu durum için pek içi açıcı şeyler söylemiyor.Cebinde,bir kız arkadaşı olsa ona birşeyler ısmarlayabilecek miktarların bulunmamasından,sağlıkla ilgili sıkıntılarına kadar bir çok yaşadığı sorunları en ciddi olarak anlatan kişi diyebiliriz.Bunun yanında beni en çok etkileyen diyalogların geçtiği sahneler ise Meat Boy'un diğer elemanı Edmund'ın eşiyle olan durumlarıydı.Örneğin bütün gün bilgisayar başında duran(ki bu bizlere çok tanıdık geliyor) Edmund'a eşi,senin hep arkanı görüyorum hiç yüzünü göremiyorum gibisinden şikayette bulunuyordu.Bu evli çiftler için heralde asla olmaması gereken bir şey ama bu konuda karşılıklı fedakarlıklarının sonuçlarını iyi bir şekilde gördüklerini söyleyebilirim.

Indie Game(7) geliştiricisi olmak aslında bu yazıyı okuyorsanız büyük ihtimalle sizin hayallerinizden de birisidir diye tahmin ediyorum.Çoğu oyun programcısının büyük şirketler gibi fakat tek başına davranmak istediği anlarının olmadığını zannetmiyorum.Hatta filmde söylendiği gibi kimimiz için kendimizi anlatma yolumuzda olabilir bir video oyunu tasarlamak.Tabi insanların binlerce kişinin üzerinde çalıştığı fakat seneler süren bu oyunların çıkış tarihine kafa yormadığı gibi örneğin filmde ki Fez'in(ki üzerinde çalışan kişi sayısı belli) hazır olmamasına yönelik yaptıkları yorumlarada sabırlı olabilmek lazım heralde.Heralde diyorum çünkü bu pek mümkün değil(Bakınız Phil Fish'in filmde ki tutumuna :)).

Büyük şirketler insanları eğlendirmek için çok kaliteli oyunlar yapmaya çalışırlar.Milyonlarcasının aynı anda oynayabileceği cinsten.Fakat Indie game diyebiliriz ki tasarımcının hayallerini ekrana yansıtıp onu oynamak isteyen BİR kişiyi bulması hakkındadır.Oyunlar eğlence için üretilmiş sanat eserleridir.Eğer kurguladığınız sistem kişiyi eğlendiriyorsa ve onu yoruyorsa(veya oyalıyorsa) o an arkadan PAX(8)'ta oyununu deneyenleri gözlemleyen Phil Fish gibi takılın(Filmde görürsünüz).O an alacağınız haz anlatılamaz,hatta küfürler bile kulağınıza hoş gelebilir.Tabi oyununuz genel olarak düzgün çalışıyorsa.

Filme yönelik birşeyler anlatmaya çalıştım fakat bu konuda ne kadar başarılı oldum bilemiyorum.Söyleyebileceğim tek şey filmi izlemeniz.Filmden sonra bu konuda hayalleriniz varsa bu konuda birşeyler yapmaya başlamanız.(Before you die(9)).Kendimizi küçümsemekten vazgeçip hayallerimize yürümemiz gerekiyor.22 yıldır bunu yapmaya çalışan Jonathan Blow veya Shawshank hapishanesinden 20 yılda bir çekiçle kaçan Andy Dufresne gibi bunu yapmamız gerekmektedir.Birileri başaramayacağımızı söylediler ve söylemeyede devam edecekler.Onlar kendilerince haklılar,fakat bizde bir konuda haklıyız:Başarabileceğimizi düşünürsekte tam tersinide.



(1)Bu yazıyı yazanın muhtemelen filmde adı geçen oyun karakteriyle yani Super Meat Boy ile ilgili yapmaya çalıştığı bir espri
(5)Mario,Zelda,Tetris
(6)Söylediğine göre 4 yaşındaymış,düşünüyorumda insanın o yaştan beri hayallerinin peşinde yürümesi muhteşem bir azim örneği.Bursa'da benim büyüdüğüm çevrede tek örnek alınabilecek meslek doktorluktu.Aslında sadece bazı insanlar doktor olduğu için değil Bursa gibi bir şehirde halen bilgisayar mühendisliği vb.bölümlere yönelik sağlam adımlar atılmış değil.(Temmuz 2012)
(7)Independent kelimesinin kısaltılmış hali indie,bağımsız oyun(daha çok kişilere veya küçük gruplara ait olma anlamında bağımsız)
(8)Bir oyun fuarı
(9)Fight Club filminde Raymond ile restorant arkasında sohbetten bir kesit
(10)The Shawshank Redemption filminde Andy'nin yakın arkadaşı Red onun o küçük çekiçle hapishaneden tünel kazarak kaçmasının 300 yıla yakın süreceğini söylemişti
- See more at: http://www.mayhemcorporation.com/mayhem/index.php?topic=13

21 Haziran 2015 Pazar

Dev Center Application For Windows Phone Developers

Eğer mobil uygulama geliştiren biriyseniz ve üzerine kafa yorduğunuz marketlerden birisi Windows market ise sizin için olmazsa olmaz olan bu uygulamayı kısaca inceleyeceğiz.Dev Center,biz geliştiricilere markette ki uygulamalarımızla ilgili birçok önemli veriyi sunan,hesabımızın durumlarını kolaylıkla takip edebileceğimiz bir mobil uygulama.Uygulamalarımızın genel toplam veya tekil olarak ne kadar indirildiği,çökme yaşadığını,yorum aldığını 5 gün,1 ay,6 ay,1 yıllık gibi süreçler için görüntüleyebileceğimiz bir yazılım.Bu veriler uygulamaları herhangi bir markette olan bir geliştirici için olmazsa olmazlardır.



Öncelikle şu adresten uygulamayı telefonumuza indirebileceğimizi söyleyeyim.Adrese gittiğimizde klasik cahil-troll Türk insanıyla karşılaşmadan edemiyoruz.Şöyle diyenler var "gereksiz","ne işe yaradığını anlamadım" bundan dolayı 1 yıldız falan vermiş.Arkadaş bu uygulama doğduğu günden beri bu dünyada tüketmekten başka bir iş yapmayan insanlar için yapılmamış.Anlamadıysan şöyle söyleyim,bu uygulama o markette giripte sırf görünsün diye bir yıldız verdim dediğiniz emektar geliştiriceler için kendi hesap durumlarını analiz etmesi içni yapılmış bir şey.Yenilir,içilir,oynanabilir ve sizin girip çıkabileceğiniz bir uygulama değil.Ona göre gidipte saçma sapan "iğrenç" vs gibi yorumlar yapmayın.Sende geliştirici hesabı mı varda(1) veya hesabında uygulama mı varda "gereksiz" diyorsun.Bazen gerçekten tiksiniyorum bazı şeylerden.Asıl gereksizler kimdir siz karar verin.

Uygulamaya geliştirici hesabıyla giriş yapıldığını söyledim.Giriş yaptıktan sonra bizleri panoramik temalı bir görünüm karşılıyor.Karşımıza highligts,downloads,crashes,my apps sayfaları çıkıyor.

Highligts kısmında genel olarak markette yüklü bulunan bütün uygulamarımızın toplam indirilme sayısı ve grafiksel gösterimi,toplam çökme sayısı ve toplam kazaç anlamında bilgileri sunulmaktadır.


Downloads kısmında uygulamalarımızın teker teker indirilme sayılarının gösterildiğini ve ilgili uygulamayı ayrıntılı olarak inceleyebileceğimiz kısımlara gitmemize olanak sağladığını görüyoruz.


Crashes kısmında istediğimiz zaman diliminde meydana gelmiş yazılım sonlandırmalarını,çökmelerini görebiliriz.



My Apps kısmında ise uygulamalarımız görülmektedir.


Bütün bu kısımlardan girdiğimiz herhangi bir tekil uygulamamızın sayfasında details,markets,reviews,downloads,crashes,products kısımları mevcuttur.Bu kısımlardan uygulamamızın hangi ülkelerden yıldız veya yorum aldığını,kaç kere indirildiklerini  vb bilgileri ve uygulamamızın marketteki genel durumu(yayımlanmış mı,hangi kategoride,taban fiyatı vs) hakkında detaylara ulaşabiliriz.

Sonuç olarak şunu söyleyebiliriz.Eğer markette uygulamanız varsa.Bu hayatta oturup birileri şunu bunu yapsın demekten ziyade bir şeyler yaratıp onun getirilerini görmek istiyorsanız bu uygulama windows phone geliştiriciler için mükemmel bir şey.İnanın markette uygulaması olanlar günde en az bir kere kontrol ediyor olacaklar.Diğerleri sadece sosyal medyayı kontrol eder.Siz gelirleri ve yüklenme sayılarınıda kontrol edin.Farklıydınız daha çok farkınız olsun.

(1)Geliştirici hesabı olup bir şey üretmenin 'ü' sünü bilmeyen çok arkadaş mevcut.Uygulamaları bedava indirmek için geliştirici hesabı alanlar için söylüyorum.Tabi ki geliştirici hesabı direk uygulamaları ücretsiz indirmemizi sağlamıyor.Windows Phone Unlock kavramına belki sonra göz atarız.

6 Haziran 2015 Cumartesi

Caps Color (Color Picker Application)

Bugün burada windows phone market için tasarladığım renk seçici veya çekici olarak kullanabileceğimiz Caps Color isimli uygulamayı tanıtacağım.Bir fotoğraftan renk çekme işlemi genellikle çizim,tasarım programlarında kullanılır.Amaç beğenilen renk tonunun bilgilerine ulaşmak ve gerçek sanatçıların yaptığı gibi onu çalmaktır.Tabi doğada ki renk paletlerinin sahibi yoktur ve dilediğimiz tonu dilediğimiz yerde kullanabiliriz.Sadece çaldığımız karenin poligonlarının bizim karenin poligonlarıyla aynı olmaması şartıyla.Yani bir kot pantolonun rengini web sitemde ki banner(1) kısmına uyarlarsam sıkıntı yok.

Wikipedia(2) da ki tanımda renk,ışığın gözün retinasına değişik bir biçimde ulaşması ile ortaya çıkan algılamadır.Bu algılama,ışığın maddeler üzerine çarpması ve kısmen soğurulup kısmen yansıması nedeniyle çeşitlilik gösterir ki bunlar renk tonu veya renk olarak adlandırılır.Tüm dalga boyları birden aynı anda gözümüze ulaşırsa bunu beyaz,hiç ulaşmazsa bunu siyah olarak algılarız.Birde insanların bu renk tonlarını gruplandırma anlamında sistemleri var ki dijital ortamda bunlara web renkleri ve hex üçlüsü vb diyebiliriz.Abi şu renk tonu çok iyimiş dediğimizde o rengin Red(Kırmızı Değeri),Green(Yeşil Değeri),Blue(Mavi Değeri) ve Alpha(Saydamlık Değeri) değerleri bizler için kullanırken gereklidir.Hex üçlüsü 6 haneli 3 byte lık hexadecimal(3) bir numaradır.Her byte hexadecimal gösterim kullanıyorsa 00 ile FF arasında,decimal gösterim kullanıyorsa 0 ile 255 arasında bir sayı ile belirtilir.Byte 1 kırmızı değer,byte 2 yeşil değer ve byte 3 mavi değer olarak kullanılır.Çoğu web tarayıcılarında ve framework lerde bu sistem tanımlıdır.Bu sisteme göre her bir renk değerinin alabileceği 256(0-255) değişik biçim olduğuna göre 256(R)*256(G)*256(B)= 16.777.216 değişik renk tonu tanımlayabiliriz.

Tanıtımını yaptığımız uygulamamızda telefonumuzun kamerasıyla fotoğraf çekebilir veya kayıtlı bir fotoğraf ın dilediğimiz kısmında ki bir pikselinden renk bilgisine ulaşabiliriz.Bu işlemi web tasarımcılar veya 2D tasarımla uğraşanlar sıklıkla kullanırlar.

Uygulamamızın ana sayfasında bizleri şöyle bir görünüm karşılıyor.


Öncelikle "Capture" kısmından renk bilgisi çekeceğimiz sahnenin fotoğrafını çekmek için kameramıza geçiş yapıyoruz.Eğer daha önceden telefonumuzun bellğinde kayıtlı bir imaj dosyasından faydalanmak istiyorsak "Load" kısmını seçiyoruz.Yukarıda ki resimde ki gibi en altta bir imaj dosyası görüntüleniyorsa artık "Pick Color" seçeneğini kullanarak renk bilgisi çekebiliriz.






"Pick Color" seçeneğiyle yukarıda ki ekranlara ulaşacağız.Burada parmağımızla "+" şeklinde görürünen hedef gösterici ile istediğimiz pikselin renk bilgilerine sağ kısımda ulaşabiliriz.Bundan sonra "Pick" butonuna basarak renk bilgilerini programımızda ki renk stoğuna kaydetmek çok basit bir işlemdir.

Seçme işlemindne sonra uygulamamızın ana sayfasında şimdiye kadar seçtiğimiz bütün renk tonlarını bulup onları özel isimlendirebiliyoruz.Örneğin "favori rengim" vb.



Uygulama ile ilgili yüksek beklentisi olan kişilerle karşılaştım.Buna benzer çoğu uygulamanın tam istedikleri performansı vermediklerinden yakınıyorlardı.Örneğin tekstilde bir kumaşın renk tonunu kontrol etme konusunda tek renk çıkartamayan kalem şeklinde mekanizmalardan(4) veya benzeri uygulamalardan şikayetçiler.Anlamadıkları kısım ise uygulamalar veya makineler eğer doğru programlanmışlarsa asla yanlış sonuç üretmezler.Şimdi bir masa örtüsüne bakınız.İster tek renkli ister karışık desenli bir örtü olsun.Başlangıçta renk tanımı yaptık.Burada ışığı gözümüze gelene kadar kırılması gibi durumların olduğunu söyledik.Ona göre son gördüğümüz ve beynimize gittiğinde işlenen renk tonu bir algıdan ibarettir dedik.Bu renk körlüğü vb bir hastalığa sahip olmadıkça o renk neyse gördüğümüz odur.Bu memnuniyetsiz malum arkadaşların istediği ise photoshop ta veya paint gibi çizim programlarında kapalı bir alana renk vermemiz gibi o alanın kumaşın üzerinde ki benzer kapalı alanda dahi tek renk bilgisi içermesi.Bunun gerçekleşmesi için kumaşın her kısmına eşit şartlar altında ışığın vurup gözümüze gelmesi gerektiğini düşünelim ne kadar mümkün.Öyle olsa bile baktığımız alana göre gözümüzün açısı veya ışıkların gözümüze gelme açıları hep değişecektir.Yani bir şekilde masa örtüsünün belli kısımları koyu tonlar bazı kısımları açık tonlar hatta bazı kısımları değişik yansımalardan ötürü değişik tonlara kaymaya yöneldiğini bile görebiliriz.Bunları etkileyen renk bilgilerinin(R,G,B) varlığından haber olan ve ek olarak transparanlıktan(Alpha) haberi olan kişiler nasıl oluyorda sanki bilgisayar ortamında verdikleri tek rengi doğada büyük bir parçada istiyorlar.Duvara baktığınızda çektiğiniz fotoğrafın her pikseli aynı R,G,B,A değerlerini mi içeriyor ki uygulama veya makineler bunları yakalasın.Bir kere ortamda tek renk hakimiyeti olabilir ama asla örneğin 1024x768 bir duvar fotoğrafı her pikselinde aynı R,G,B,A değerleri içermez.Doğada mükemmel yoktur.Paint te bastığın gibi saf renge bürünmez herşey.Aslında bürünür ama görünmez.Onun için ne görüyorsak onu bize sunacak teknoloji yeterlidir.Yarısına güneş vurmuş yarısına gölge vurmuş bir kumaşın neden R,G,B değerleri isteidğimiz gibi çıkmıyor diye küfretmek komik birşeydir.

Uygulama windows phone markette mevcuttur.Yıldız vererek ve yorumlayarak bana yardımcı olabilirsiniz.İlerleyen zamanlarda umarım daha güzel uygulamalarla karşınıza çıkarım.Şimdilik görüşmek üzere.

Uygulamanın Linkine Buradan Göz Atabilirsiniz...

(1)Manşet,pankart
(2)Wikipedia-Renk
(3)Hexadecimal
(4)Değişik firmalar mevcut

3 Haziran 2015 Çarşamba

Fast and Furious 7 (Hızlı ve Öfkeli 7) Eleştirisi

Film çıkalı bir süre geçmiş,sinemalardan da büyük ihtimalle kalktığını düşündüğüm sıralar.Dedim kardeş neden izlemiyorsun bu filmi.Bir şekilde tedarik ettim(1) izlemeye başladım.Sen ki koskoca hızlı ve öfkeli serisinin en çok gündeme gelmiş parçasını kaçırmışın ve o kadar baş karakterlerden birinin üzücü bir şekilde bu hızlı ve öfkeli hayattan gencecik yaşta ayrılmasını duymuşsun,oturduğun yerden ahkam kesiyorsun.Abi tamamda gerçekten bu sıralar insanların zamanlarını nasıl geçirdiğini veya onu neler ile harcadıklarını düşünüyorum.Kendim içinde bazen(genellikle en azından son zamanlar) "dünyayı sen mi kurtaracaksın gidip bir milyon kişinin 1 dolardan indireceği bir oyun yaparak(2)" diyerekten bir nevi uyuşturucu diyebileceğimiz oyun oynamak veya film,dizi vb izlemek eylemlerinde çok bulunduğumu söyleyebilirim.Bizler kapasitelerimizin,yapabileceklerimizin limitlerini keşfedene kadar hayat işte öfkeli,hiç olmadığı kadar acımasız bir şekilde korkunç bir hızla geçip gidiyor.Olay şu,film 2 saatin üzerinde ömrümden bir dilim almışken tek hissettiklerim buydu.Üzüldüm çünkü filmi büyük bir ciddiyetle,beklentiyle izlemiştim.Tek bulduğum abi Paul Walker ölmüş bizde bu filmi neresinden bağlarsak,kesersek,biçersek tutar.Mağdur edebiyatları sadece bizim memleketimizde olacak değil ya.Tabi ki de olayın içinde modifiye araçlar,sokak yarışları,hatunlar,inanılmaz kaslı erkekler,müzik olacak diye bildiğimizden belli bir dozajda aksiyon beklentimiz var.Film bittikten sonra bir koşu araştırmaya başladım.Dedim ki acaba benim gibi tatmin olmayan var mı.Arkadaş takım tutar gibi parti tutma deyimi var ya adamlar babasının yönetmenliğini yaptığı filmi över gibi sahiplenmiş.Demişler ne bekliyordun bu kadar aksiyon sahnesi,"imkansızlık" çok normalmiş.Tabi ki de bizde bekliyorduk tırların altından arabalarla sağdan sola geçilsin,biraz yüksek hız olsun,süratle adrenalini hissedelim.Ama filmin önceki bütün kısımlarını izlemiş biri olarak bilmiyordum ki bir filmde senaryonun falan artık önemsiz olduğunu(3),bir filmin olağan dışı durumlara bilim kurgu türünden yayımlanmadığı halde yer verebileceğini.Filmin süresi 2 saatin üzerindeydi ama benim üzerine bir çıkış yolu bulamayacağım sahnelerin eleştirisi en az 2-3 saatimi alabilir.Ama bu yazıda kısa bir şekilde değinmeye çalışacağım.

Genel olarak bazı aklıma gelen sahnelerden örnekler vererek soruyu soracağım,sizler artık eğer takım tutan tiplerdenseniz abi aksiyon işte ne bekliyordun der(4) veya az bile yakalamışsın diyerek bir sigara yakar sakinleşirsiniz.Bir kere senaryo falan yok filmde.Bunun nedeni olarak aklıma ilk gelen iki şey şunlar.İlk olarak senaryonun direk tuvalette yazılmış olabileceği efsanesi ki bu kolay cevap.Diğeri ise demin bahsettiğim mağdur edebiyatı.Abi koskoca Paul Walker ölmüş hani araba ile gökyüzünden neredeyse uydulara (genellikle helikopter vb araçlara)toslasak,üç gökdelen arasında arabayla geçiş yapsak,ambulans aracıyla IHA(5) indirsek,kolumuzda ki alçıyı kaslarımızı sıkarak kırsak,en sıkışmış bir anımızda,arabamızla kendimizi,uçurumdan yüzlerce metre aşağıya atlamış halde bulsak ve en iyi planımızın o an bu olduğunu söylesek,uçaktan arabamızla atlayıp paraşütle yer yüzüne iniş yapsak,Tofaş ın arabalarından güvenlik anlamında daha kağıt(6) diyebileceğimiz son model arabalarımızla roketlere kafa atsak veya ağaçları yerinden söküp atsak orman içinde ve bunca olanlara rağmen bir karizmatik abimizin(7) muhtemelen serinin ilerleyen filmlerinde elini kolunu sallayarak kaçabileceği bir hapse düşmesi olayı hariç kimsenin mağduriyet anlamında burnunun bile kanamadan filmi tamamlamasına onay versek.Bu kadar şeyi filmi izlemeyenler spoiler olarak düşünmesin.Dediğim gibi kişisel bakış açınız;bunları, bilim kurgu olmayan bir filmde olabilir ya diyerek kendi potasında eritebilir.Soracaklarım,söyleyeceklerim bunlardı.Yönetmenden fazla abartmak istemedim.Sizler saydıklarımı aklınızda canlandırarak soru-cevap şeklinde olayı anlamlandırabilirsiniz.

Birde ek olarak o tanrının gözü olayına değinmeden duramayacağım.Her önüne gelenin programcı olduğu bir dünyanın yaratılmasında her önüne gelenin hacker filmi çekmesiyle ilişkisinin az buz bir şekilde ilişkili olduğunu söylemek yanlış olmaz kanımca.Filmde tanrının gözü diye bir yazılım mıdır mikrodenetleyici midir ne olduğu belli olmayan bir şey var.Sözde Türkiye seçmen zeka potansiyelini hedef alarak anlatılmış birkaç özelliğini sizlere anlatayım.Sistem ortak bir ağı bile olmasın(nasıl oluyorsa) bütün güvenlik kamerası kayıtlarına,telefon konuşmalarına veya bütün lanet olası anlık trilyonlarca gerçekleşen dijital veriye ulaşıyor.Bunun için dediğim gibi ne bir ortak ağa,veri yoluna vb hiç bir şeye ihtiyaç duyuyor.Hani laptopunla misafirliğe gittiğiniz teyzenizin bilgisayarınıza bakarak "interneti getirmişin girde bizim sigorta durumumuza bakalım,bakamayız mı?"demesine benziyor olaylar.Evet bilgisayarı dağada çıkarsan o internete girer(Kendi başına).İnternetmiş,ağmış bunlar hep hikayeymiş.Hatta bir fabrikanın güvenlik kamerasını bile istediğimiz zaman çerezimizi tüketirken izleyebilirmişiz.Ne de olsa hacker ız abi sızmışız işte adamların varlığından haberimizin olmadığı sistemlerine.Öyle esnek yazılım bu tanrının gözü.Swarm kullanmayan hatunu gözününüzün içine baka baka kaybettiğiniz çay bahçelerinde bulabildiğiniz gibi eminim esnaf Ahmet abi nin güvenlik kamerasına veya cep telefonu ile Jason abimizle yaptığı konuşmadan sesine ulaşabiliriz ki amaç trilyonlarca bu veriden Jason'ı bulmak.Arkadaş dedik hadi oldu birbirinden bağımsız bir haber binlerce aygıta,sisteme sızdın.Sonra oradan bir normal bilgisayardan bu kadar sisteme -hepte anasını sattığımının ekranlarında downloading,login tarzı şeyler yazan hacker sistemleriyle- ulaştın.Peki adama sorarlar.Ambulansla IHA düşürdüğün çağda hangi tekil bilgisayar binlerce dakika süren konuşmalardan,milyonlarca piksellere varmış matrislere dökülmüş fotoğraflardan,ve benzeri güvenlik videosu kayıtlarından Jason abimizi analiz edecek donanıma ve yazılıma sahip.He yazılım işini ben halletim zaten işte adı tanrının gözü diyor ya.Bu kadar çok teknoloji ile içli dışlı olmuş bir nesilin aklıyla alay etmek bence çok acımasızca.Her şeyi geç birde filmde ki hacker kız için kendi aralarında pis pis sohbetler.Yok bir hacker böyle mi görünür falan.Senaryoda hiç bir yere mantığının oturmadığı tanrının gözü saçmalıklarını sırf belkide bir kızı film serisinin kadrosuna katmak istediklerinden uydurmuş olabilirler.Bunu çok normal yollardan yapabilirlerdi.Merhaba ben Ramsey bilmem ne gençlik kollarından geliyorum ve ben sizin ekibinizdeyim artık(emir büyük yerden) derdi olay biterdi.Sırf bu hacker kız için uçakla süper lüks araçlarımızı paraşütle bir bölgeye indirdiğimizi anlatmak bile istemiyorum.Filmin adında "Hızlı" geçiyormuş ya al sana bir arabanın yapabileceği maximum hız.Yere çakılma hızı!!!

Şimdi bunlarda ne var?Çok mu abarttım? Ben bir filmi izlerken belli normlara göre izliyorum.Walking Dead dizisinde zombiler iç organları kapkarayken neden taze et yeme peşindeler veya bir uzaylı filminde neden uzaylı olağan üstü güçlere sahip diye sorgulamıyorum.Abi uzaylı veya yaratık işte adam öyle kodlamış bunu öyle düşün diyorum.Ama vitesli bir filmde 6.vitesten sonra geri vitese atılmış hissi yarattı bende.Ortalama 7.5 üstü imdb(8) puanıyla mağduriyetin başarısını da yüzüme vurdu bir kez daha.Kendime şunu söyledim.Ölmeyen biri varsa artık Chuck Norris(9) veya Polat Alemdar(önemsiz biri) değildir.Ölmeyen dostluktur hayır hayır bu senaryosuz filmin boktan sonu.Ölmeyen Vin Diesel(10)'dir.

Sonuç olarak film belki eleştiri olarak daha güzel yorumları hak ediyor diyebiliriz.Ama bizler tüketici olarak daha iyisini,daha doğrusu aklımızla alay etmedikleri bir ürünü tüketmeyi hak ediyoruz.Umarım ilerleyen serilerde normalleşen bir modifiye araçlar,yarışlar ve hatunlar üçgeni kurulur.Bizde sinemada ödüllendiririz.

Filmin sonunda ki kapanış şarkısıyla yazıma veda ediyorum.Hepsi kişisel düşüncemdir.Çok fazla sıkıntı yapmaya gerek yok.



(1)Kimseyi ilgilendirmez.Belki CD kiralamışımdır.
(2)Bir oyun geliştirici için Büyük Ortadoğu Projelerinden birisidir
(3)Ne yapsak oy veriyorlar hesabı
(4)Aksiyon tamamda bilim-kurgu deselerdi bari baştan bende o gözlüklerle bakardım
(5)İnsansız Hava Aracı
(6)Kırılganlık veya güvenlik amacıyla geliştirilmemiş olan
(7)Jason Statham
(8)IMDB 
(9)Chuck Norris
(10)Vin Diesel

2 Haziran 2015 Salı

No Easy Way Out

Bu gün burada bir grup arkadaşla birlikte hayatımızda değişiklik yapmaya yönelik verdiğimiz kararların başlangıç noktasını görmektesiniz.Gerçekten bu bir başlangıç noktası olur umarım.Şarkılarımızı hazırladık,projelerimizi tuvalette tasarladık,şınavlarımızı çektik niyetine girdik bir şeylerin yani.Efsanevi Rocky filminin Eye of the Tiger(1) olmayan diğer gene aynı şekilde yüksek miktarda gazlandırıcı içeren şarkılarıyla bir start verelim dedik.Bilmiyorum biz müziksiz yaşayamıyoruz.Her türlü ruh halimize uygun müziklerimiz var.Belki ilerde bu işin sektörü olur ve reçete ile ruh sağlığına uygun müzikler yazılır.Ses olmadan yaşamak çok zor olurdu onun için binlerce kez şükürler olsun.Sizleri iki efsanevik gazlandırcımızla baş başa bırakıyoruz.İlerleyen zamanlarda burada sistemle git gel yaşayan tipik Türk insanlarının hikayeleriyle,tecrübeleriyle veya bilgileriyle ( yazılım , donanım , müzik , spor , oyun , insan ilişkileri , sigara içen içmeyen , kendine esnek çalışan , icraatin içinden ) birlikte olmaya çalışacağız.Enjekte edeceğimiz müziklerin tadına varmaya çalışın,bizi eleştirin ama çok fazla kırmayın,zaten hiç birimiz unique snowflake(2) değiliz.Bu dünyaya sadece çalışmak içinde gelmedik.En kötü bu fikirde birleşelim.Birde hiç bir şeyin kolay olmadığını,çıkış yolunun bazen acı ve fedakarlıklardan geçtiğini unutmayalım.Sağlıcakla kalınız ;)






(1) Survivor-Eye of The Tiger 
(2) Fight Club - This Is Your Life