Css Önişlemci Nedir ? Bizlere Neler Sunuyor ?

Dünyayı birbirine bağlayan ve her geçen gün daha fazla insana ulaşan internet gelişen altyapı teknolojileri ile artık hız olarak da beklentilerimizi karşılamaya başladı. Herkesimden insana hitap eden ve günümüzde birçok kişinin hayatında yadsınamaz bir yeri olan internet için sadece alt yapı ve insan sayısında gelişim var demek mümkün mü ? Tabi ki de bu sorunun cevabı hayır, hemen hemen her teknolojide olduğu gibi internet teknolojilerinde de birçok yenilik gün geçtikçe hayatımıza giriyor. Bu yazımızda da web sitelerinin olmazsa olmazı CSS’e ek özellikler katan Css Önişlemci (css processors) kavramından ve getirdiği yeniliklerden bahsedeceğim.

HTML ve css web teknolojileri ile ilgilenen veya yazılıma biraz ilgi duyan kişilerin sıklıkla karşılaşabileceği tabiri caizse bir elmanın iki yarısı konumundaki metin işaretleme dilleridir. HTML ile şuan yazıyı okuduğunuz internet sitesinde yer alan yazıları, butonları veya ses dosyalarını sizlere kolayca gösterebiliyoruz fakat tasarım noktasında örnek vermek gerekirse butonun rengi için Css kodlarına ihtiyaç duyuyoruz. Yani HTML ile bir nesneyi ekrana koyuyoruz ve Css ile özelliklerini belirtiyoruz. Böyle söylenince her şey çok kolay gibi fakat gelişen teknoloji ile artık internet siteleri hemen hemen her ihtiyaçlarımıza cevap verecek donanımlara sahip olması gerekiyor ki bu da artık çok daha kompleks ve güçlü yapıların ihtiyaçlarını doğuruyor. Bu noktada HTML ve Css maalesef günümüz trend sitelerinin alt yapılarını güçlendirecek donanımların birçoğuna sahip değil. Bu yüzden Css’in hantal yapısına çözüm arayan geliştiriciler eksik gördükleri Css özelliklerini gidererek Css Önişlemci araçlarını geliştirmişler.

CSS Önişlemci Nedir ?

Css’in gelişen web teknolojileri karşısında yetersiz kaldığını belirtmiştim. Bu durumun en büyük sebebi aslında HTML ve Css’in programlama dili olmamalarından geliyor.Bu sebeple birçok programlama dilinde kolayca kod yazmamızı sağlayan değişken tanımlama, fonksiyon yapısı gibi özellikleri barındırmıyor.İsterseniz bu noktada kısacası Css’in yetersiz kaldığı ve Css Önişlemci kütüphanelerinin çözdüğü sorunları listeleyelim ve ardından detaylıca inceleyelim.

  • Değişken Tanımlama
  • Mixin ve Fonksiyon Kullanımı
  • Gelişmiş Hesaplama araçları gibi

CSS Önişlemci ile Değişken Tanımlama

Orta veya büyük ölçekli web sitelerinde birçok değişkeni defalarca kullanıyoruz. Bu noktada hem çok fazla kod satırına sahip oluyor hem de ilerleyen dönemlerde aynı kodları düzenlemede sıkıntılar yaşıyoruz. Bu sebeple Css Önişlemcilerin hepsinde değişken tanımlama özelliği mevcut.Böylece projemizde ilerleyen zamanlarda herhangi bir düzeltme yapmak istersek kolayca sadece değişkenin değerini değiştirebiliriz fakat normalde Css’te böyle bir durum karşısında satır satır dolaşarak değerleri güncellememiz gerekiyordu. Ayrıca ortak değişkenler ile projenin okuna bilirliği arttırarak sürekliliğini de kolaylaştırmış oluyoruz.

Örneğimizde popüler Css Önişlemcileri arasında yer alan Less ile hazırlanmış bir değişken örneği mevcut. Gördüğünüz üzere sitemizde ki yazılarda kullanacağımız yazı ve arka plan renklerini bir değişkene atadık ve daha sonrasında alt tarafta yer alan h1 etiket özelliklerinde kullandık. Bunu ilerleyen zamanlarda güncellemek istersek üst satırdaki 2 kodu değiştirerek kolayca yapabileceğiz.

Mixin ve Fonksiyon Kullanımı

Css’de farklı değişkenlere aynı temel özellikleri vermek için birçok kod satırını tekrar tekrar yazmamız gerekiyor. Her ne kadar bunları kopyala+yapıştır ile hızlıca yapsakta maalesef ilk maddede de dediğim gibi kod satır sayısının artması ile hem projemizin okunurluğu azalıyor hem de müdahale için sağladığımız efor artıyor. Bu noktada yine Css Önişlemcilerinde mixin ve fonksiyon kullanımı mevcut.

Örnek kodumuzda gördüğünüz gibi Widget için tanımladığımız özellikleri tekrar .welcome etiketinde kullanmak için tek yapmamız gereken fonksiyona değiştirmek istediğimiz parametreleri göndermek. Burada tam olarak Php veya Java gibi dillerdeki fonksiyon mantığı olmasa da yakın ve aynı amaca hizmet eden bir yapıdan söz etmemiz mümkün.

Gelişmiş Hesaplama Araçları

Önişlemciler ile gelen değişken tanımlama sayesinde değişkenleri kullanarak toplama, çıkarma gibi temel işlemleri de kolayca yapabiliyoruz.

Hangi CSS Önişlemcileri Mevcut ve Hangisini Tercih Etmeliyiz ?

Kod örneklerini incelerseniz özellikle birinci ve ikinci örnekteki kodlar arasında ki syntax farkını görebilirsiniz. Bunun sebebi birinci örneğin Less diğer örneğin ise Stylus ile hazırlanmış olması . Bu aşamada sizin de aklınıza muhtemelen hangisini tercih etmeliyim sorusu gelmiştir. Bu noktada popüler olan ve dünya genelinde sıklıkla tercih edilen üç Css Önişlemcisi mevcut bunlar; Less, SASS ve Stylus. Fakat bu Önişlemcilerin hiçbirinin birbirine karşı ağır bir özelliği mevcut değil. Hemen hemen hepsi aynı özellikleri aynı şekilde kullanmamıza olanak sağlıyor. Değişen sadece arka planda kullandıkları teknolojiler ve ufak syntax farkları. Bu noktada bu da bizler için bir sorun teşkil etmiyor çünkü derlediğimiz de hepsinde çıktı olarak Css elde ediyoruz. Fakat yine bunlar arasında illa bir seçim yapmanız gerekecek ve bu kararı en iyi şekilde verebilmek için de üçünü de ayrı ayrı araştırarak kendinize göre değerlendirmelisiniz.

Ayrıca bu yazı esnasında yaptığım araştırmada Sahibinden sitesinde ki front-end ekibinin Stylus ile çalıştıklarını öğrendim. Neden diğer Önişlemcileri değil de Stylus kullandıklarını bir yazı ile açıklamışlar, eğer siz de okumak isterseniz kaynak kısmına sizler için ekledim.

Bilgi Edindiğim Kaynaklar  :

Mobil Uygulamalarda Hibrit ve Native Nedir ? Farkları Nelerdir ?

Akıllı telefonların hayatımızda yer edinmesi, tablet pazarının yükselişi, akıllı televizyonların çıkması ve en son giyilebilir cihazların da hızla yayılması ile mobil işletim sistemleri birçok platform ile hayatımıza bir şekilde dahil oldu. Bu sebeple artık kullanılan cihaz sayıları milyarlar ile ifade edilen Ios ve Android işletim sistemi firmaların ve geliştiricilerin ilgisini fazlası ile çekmekte. Yeni uygulamalar hazırlayarak  kolayca milyonlarca insana ulaşmanın artık mümkün olması ile birçok kişide mobil uygulama geliştirmeye ilgi duyuyor ve bu alana yönelmek istiyor. Peki, mobil uygulama geliştirmeye yeni başlayacak kişilerin ilk etapta karşılaşacağı Hibrit ve Native uygulama nedir, aralarında hangi farklar mevcut bu yazımda sizlere bu iki kavramı detaylıca açıklayacağım.

Ayrıca daha önce birçok mobil uygulama geliştirmenize olanak sağlayan teknolojinin bulunduğunu belirtmiş ve bunları sizlere Xamarin Nedir ? Avantajları ve Dezavantajları Nelerdir? adlı yazım ile tanıtmaya başlamıştım. Native ve Hibrit kavramlarını detaylandırmadan da diğer teknolojileri anlatmak istemedim, bu yazımızdan sonra yine mobil uygulama geliştirmemize imkan sağlayan teknolojileri size anlatmaya devam edeceğim.

Hibrit Uygulama Nedir ?

Web teknolojilerinin güçlenmesi ile artık HTML + CSS ve JavaScript üçlüsü ile hemen hemen her alanda çalışabilecek uygulamalar geliştirmemiz mümkün. Hibrit (Hybrid) uygulama kavramı da aslında buradan gelmektedir. Web teknolojilerinin güçlenmesi sonucu web geliştiricilerinin mobil alana kolayca uyum sağlaması amacı ile ortaya çıkan Hibrit uygulama kavramı son yıllardaki birçok yazılım teknolojisinde gördüğümüz; “bir defa yaz her yerde çalıştır” mottosuna hizmet etmektedir. Yazdığınız tek bir kod ile hem IOS hem de Android için uygulama yazmanızı sağlayan Hibrit kavramında uygulamalarınızı HTML + CSS ve JavaScript kullanarak kolayca geliştirebilirsiniz.

Tüm akıllı cihazların içinde bulunan WebView teknolojisine kodları import ederek her cihazda çalışan uygulamalar hazırlayabilirsiniz. Yani burada aslında yazdığınız uygulamaları Android veya Ios cihazların içinde tarayıcıda kullanıcıların anlamayacağı şekilde gösteriyorsunuz. Mantık olarak düşündüğümüzde her şey yolunda gibi gözüküyor bir kod yazıyoruz ve cihazların içindeki WebView’e gömüyoruz ve her yerde kolayca çalıştırıyoruz, peki hiç dezavantajı yok mu ?

Hibrit Uygulama Dezavantajları Nelerdir ?

Java ile Android veya Swift ile Ios uygulama geliştirirken iki katmanda çalışma yapıyoruz. Bunlardan altta bulunan işletim sistemi, üstünde ise yazdığımız kodlar bulunmakta. Böylece kolayca uygulama geliştirdiğimiz cihazın kamera, konum, internet gibi işletim sistemine ait özelliklerine erişip müdahale edebiliyoruz. Fakat Hibrit uygulamalarda işletim sistemi ile uygulama katmanları arasında bir katma daha eklemeniz gerekiyor bu katmadan API yani yazılım programlama yüzü ya da diğer ismi ile erişim anahtarı katmanı. Bu katmanın görevi ise eğer Hibrit bir uygulama yazıyorsak ve cihazın özelliklerine erişmek istiyorsak yardımcı oluyor bu da maalesef beraberinde performans kayıplarını getiriyor ki bu Hibrit uygulama geliştirmenin önündeki en büyük handikaplardan biri. Yani Hibrit uygulamalar Native uygulamalara göre performans noktasın daha geri planda. Ayrıca Web View ile cihazlarda çalıştırdığımız için arayüzde cihaz bütünlüğünü sağlamak daha zor ve genellikle sezgisel olmayan tasarımlar ortaya çıkıyor.

Native Uygulama Nedir ?

Native uygulama;  çalıştığı cihazın kaynaklarına doğrudan müdahale edebilen,  işletim sistemine özel makine kodlarına dönüştürülerek hazırlanmış uygulama demektir. Örnek vermek gerekirse Java ile yazdığınız Android uygulamaları veya Swift, Objective-C ile geliştirdiğiniz IOS uygulamaları native olarak adlandırılır.Bildiğiniz üzere ister C# ile ister Java ile isterseniz de herhangi bir dil ile kod yazdığınızda bu kodlar derlendiği zaman binary (2’lik sistem) yapısına yani makine kodlarına dönüştürülüyor. Böylece direkt olarak geliştirme yapılan cihazın özelliklerine erişebilen Native uygulama yapısı Hibrit uygulamalarda ki performans sorunu ile karşılaşmanızı engelliyor. Fakat burada da yeni bir problem var; her platform için ayrı ayrı kod yazmanız gerekiyor.

Native Uygulama Dezavantajları Nelerdir ?

Yani siz eğer Android uygulaması geliştirecekseniz ona özel Java ile veya Kotlin gibi diller ile uygulamanızı geliştirmelisiniz.Sonrasında da IOS için aynı uygulamayı geliştirmek isterseniz Swift veya Objective-C ile tekrar aynı uygulamayı yazmanız gerekiyor. Böylece zaman noktasında ve harcanan efor noktasında ciddi kayıplar meydana gelecektir.Fakat bunun sonucunda performans ve tasarım alanında daha başarılı bir uygulama meydana getirmeniz mümkün.

Native mi Hibrit Mi ?

Her zaman sunumlarda ve yazılarımda belirttiğim gibi yazılım alanında herhangi iki dili kıyasladığımızda kesin A veya B olsun dememiz neredeyse imkansız. Çünkü bu kavramlar kişiden kişiye, projeden projeye hatta ekipten ekibe değişiklik gösterebilir. Bu noktada herhangi bir proje geliştireceğiniz zaman birçok kriterde yazılım dillerinin projenize ve size göre avantajları ile dezavantajlarını listelemeniz gerekiyor ki sizin için en uygun teknolojiyi tercih edebilin.

Bu yazımda amaç daha önce tanıttığım Xamarin Nedir adlı yazımda da sıklıkla kullandığım Native ve Hibrit kavramlarını sizlere detaylı olarak açıklayabilmekti. Peki, hem kodları ortaklaştıran yani bir defa yazdığımız kod ile hem Android hem de IOS için  uygulama geliştirmemize fırsat veren bir teknoloji yok mu ? Aslında bu sorunun cevabına bilenler Xamarin diyebilir fakat Xamarin maalesef ortaklaşa kodlar ile Native uygulama geliştirmeyi sağlasa da maalesef kaynak ve geliştirici ilgisini bulamadı. Bunun yerine bir sonraki yazımda sizlere Xamarin’e göre hem çok daha kolay bir geliştirme ortamı sunan hem de son yıllarda oldukça popüler olan bir teknolojiden bahsedeceğim.

Buraya kadar okuduysanız ne mutlu bana, gösterdiğiniz ilgi için teşekkürler. Unutmayın bilgi paylaştıkça çoğalır 🙂

C# ile Google Calendar Api Nasıl Kullanılır ?

Yeni ürünlerin daha hızlı tüketici ile buluşması ve daha yaygın alanlarda kullanılabilmesi için günümüzde büyük yazılım firmalarının hemen hemen hepsi geliştiricilere desteklerini sunmakta.Bu firmaların en güzel örneklerinin başında gelen Google birçok alanda ücretli veya ücretsiz olarak geliştiriciler için sunduğu API servisleri ile projeler geliştirmesine fırsat tanıyor. Bende bu yazımda Google tarafından sunulan Calendar API’yi kullanarak C# uygulamalarınızda etkinlik ekleme işlemini nasıl yapabilirsiniz sizlere onu anlatacağım.

Bu örnekte API kullanabilmeniz için bir Google hesabına sahip olmanız gerekiyor eğer yoksa buraya tıklayarak öncelikle ücretsiz olarak bir hesap oluşturun. Hesabınızı oluşturduktan sonra veya zaten bir hesaba sahipseniz artık işlemlere başlayabiliriz.

1- Google Calendar API Nasıl Alınır ?

İlk olarak projemizde kullanmak için Google Hesabımız üzerinden bir API oluşturmamız gerekecek. Bunun için buraya tıklayın ve karşınıza gelen ekranda aşağıdaki adımları uygulayın.

Görseldeki alandan yeni bir proje oluşturabilir veya hali hazırda bir projeniz varsa onu da seçebilirsiniz. Kendinize göre uygun seçimin ardından devam diyerek bir sonraki adıma geçin.

API artık kullanmanız için aktif edildi şimdi kimlik bilgilerine gidip gerekli düzenlemeleri yapacağız.

Görselde sizler için numaralandırdığım alanları aşağıdaki gibi doldurun ;

  1. Google Calendar API – (Hangi API’yi Kullanıyorsunuz ?)
  2. Diğer Kullanıcı Arayüzü (örneğin Windows,CLI aracı) – API’yi nereden çağıracaksınız?
  3. Kullanıcı verileri – (Hangi verileri işleyeceksiniz?)
    yukarıdaki gibi alanları doldurduktan sonra “Hangi kimlik bilgilerine ihtiyacım var?” butonuna tıklıyoruz.

Daha sonrasında karşınıza bir uyarı penceresi çıkacak. Burada “İzin Ekranını Ayarla” diyin ve yeni açılan sekmeye geçerek API kullanımını gerçekleştireceğiniz uygulamanın bilgilerini doldurun.

Görseldeki gibi siz de bu sayfada gerekli alanları kendi isteğiniz doğrultusunda doldurun. Ben bu sayfada uygulama ismine hayal gücümü kullanarak “HasanEksi” ismini verdim ayrıca bir logo yükledim. Burada belirttiğiniz uygulama adı ve logo daha sonra C# projenizde takvim özelliklerini kullanabilmek için kullanıcıdan izin isterken gözükecek.

Burada da API için bir isim veriyoruz ben “HasanEksi2” olarak belirledim. Bu alanı da yine tamamı ile kendinize göre doldurabilirsiniz.Bu işlemden sonra artık API’niz kullanıma hazır.

Görselde ki gibi kalem işaretine tıklayarak kopyalamanız gereken İstemci Kimliği ve İstemci Gizli Anahtarı alanına ulaşabilirsiniz. Tüm bu gerçekleştirdiğimiz adımlarda ki amaç projemizde ihtiyacımız olan özelliklere sahip bir API oluşturabilmekti artık bunları yaptığımıza göre projemizin kodlarına geçebiliriz.

2- Proje Kodları

Not : Google Calendar API kullanımı için Visual Studio 2013 veya daha üst bir versiyona sahip olmanız gerekiyor.

Windows Forms App  ile bir proje oluşturdum ve sadece bir buton ekledim. Buton ismini btn_ekle olarak belirledim ayrıca Google Takvim API için bir class oluşturdum ve ismini gtakvim.cs olarak belirledim. Şimdi ise Google API kullanımı için gerekli kütüphaneyi projemize eklememiz gerekiyor bunun için ; Visual Studio üst bardan Project > Manage NuGet Packages… kısmına geliyor ve karşımıza çıkan ekranda Browse alanında arama kısmına “Google Calendar” yazarak aramayı gerçekleştiriyoruz. Arama sonuçlarından Google.Apis.Calendar.v3 eklentisini projemize dahil ediyoruz.

Artık kod kısmında kütüphanemizi ekleyerek kodlarımızı yazabiliriz.

Ayrıca kütüphaneyi direkt  nuget package console kullanarak eklemek istiyorsanız aşağıdaki komutu kullanabilirsiniz ;

Kütüphane ile birlikte artık Google API kullanımı için gerekli olan her şeye sahip olmuş oluyoruz. Bu noktadan sonrası API kullanımını projemizin içine dahil etmek, biraz önce bunun için gtakvim.cs isminde bir class oluşturmuştuk şimdi oraya geçelim ve kütüphanemizi kullanmak için gerekli olan referans eklemeleri yapalım.

Kütüphanelerimizi de classa eklediğimize göre artık yazının başında aldığımız API bilgileri ile artık projemizin bağlantısını gerçekleştirmemiz gerekiyor bunun için aşağıdaki kodda gerekli alanları kendinize göre düzenlemeniz yeterli.

Bu işlem ile artık Google takvim API entegrasyonunu yaptık bir sonraki adımda uygulamamızın adını ve credential ile authorize edilen class instance’ını almamız gerekiyor.

Uygulama adı yazan yeri kendinize göre doldurabilirsiniz örneğimizde ben buraya “HasanEksi” yazıyorum. Tüm bu işlemlerden sonra artık sırada Google Takvime bir etkinlik ekleme işlemi kaldı.Bunun için aşağıdaki kodları kullanabilirsiniz ve yorum satırında ki uyarıları dikkate alarak kendinize göre düzenleyebilirsiniz.

Yorum satırında detaylara olabildiğince yer verdim. Sizde buraları kendinize göre düzenleyebilirsiniz artık son adım olarak oluşturduğumuz etkinliği Google API aracılığı ile belirttiğimiz e-posta adresinin takvimine ekleyeceğiz.

Tüm bu işlemlerin ardından formumuza en başta eklediğimiz butondan classımızı çağırarak ekleme işlemini başarı ile tamamlayabiliriz.

 

Projemizi başarı ile tamamladık bu süreçte gtakvim classı içeresinde Google Takvim Ekleme kısmını isterseniz try-catch yapısı ile kontrol edebilirsiniz böylece başarısız bir ekleme işlemi olursa uyarı alabilirsiniz. Ayrıca ilk projenizi çalıştırdığınızda butona tıkladığınızda sizleri tarayıcıya yönlendirerek Google hesabınız ile giriş yapmanızı isteyecek giriş işlemini gerçekleştirdikten sonra artık takvime etkinliğiniz başarı ile eklenmiş olmalı.

Xamarin Nedir ? Avantajları ve Dezavantajları Nelerdir ?

Mobil dünyanın hızlı gelişimi ile paralel olarak mobil cihazlar için uygulama geliştirme noktasında da hızlı gelişmeler yaşanıyor. Özellikle 2015 sonrasında art arda duyurulan birçok programlama dilinin ve platformun ardından özellikle mobil uygulama geliştirmeye yeni başlamayı düşünen geliştiricilerin karar vermekte fazlası ile zorlandığı bir gerçek. Bu noktada bende elimden geldiğince bilgi birikimim doğrultusunda sizlere bu yazı serimde mobil uygulama geliştirmemize fırsat sunan platform veya programlama dillerini avantajları ve dezavantajları ile sizlere tanıtmaya çalışacağım. Başlangıcı da 2016 yılında tanıştığım Xamarin platformu ile yapmaya karar verdim, hazırsanız Xamarin nedir hep beraber öğrenelim.

Xamarin Tarihçesi

2011 yılında Miguel de Icaza, Nat Friedman ve Joseph Hill tarafından kurulan bir platform yani framework olan Xamarin'in çıkış noktası C# dilini kullanarak geliştiricilerin çapraz (cross) olarak mobil uygulama geliştirmesini sağlamaktır. 2011 yılında başlayan bu yolculuğun hızla gelişmesi ve birçok geliştirici tarafından kullanılması ardından 2016 yılında Micorsoft tarafından Xamarin'in satın alınması ile hem bilinirliğini hemde kullanım sayısını arttırmıştır. Günümüzde de hala Microsoft bünyesinde barınan Xamarin platformu güncel şekilde geliştirilmektedir.

Xamarin Nedir ?

Xamarin temel düzeyde açıklamak gerekirse C# dili ile cross platform mobil uygulama geliştirmenizi sağlayan bir framework. Bir kez yaz tüm cihazlarda kullan mottosu ile yola çıkan Xamarin üzerinde C# ile yazdığınız kodlar sonucunda Android, Ios ve Windows Phone için aynı anda uygulama geliştirebilirsiniz. Böylece zaman ve maliyet noktasında oldukça tasarruf  etmenizi sağlayan platform aynı zamanda benzer platformlardan da native olması sebebi ile ayrılmaktadır. Geliştiriciler için birçok imkanı sunan Xamarin üzerinde Objective-C, Swift ya da Java ile yaptığınız her şeyi kolayca yapabilirsiniz. %75'ten fazla kodları ortaklaştırması ve IDE olarak Visual Studio gibi güçlü bir geliştirme ortamı sunması da Xamarin'i tercih etmeniz için en büyük nedenleri oluşturmakta.

Xamarin Avantajları Nelerdir ?

  • Hybrit değil native olarak uygulama geliştirme imkanı sunmaktadır.
  • Tek kod ile çoklu platform (Android,Ios ve Windows Phone) için uygulama geliştirebilirsiniz.
  • Zaman ve maliyet noktasında tasarruf etmenizi sağlar.
  • Objective-C, Swift ya da Java ile gerçekleştirdiğiniz tüm her şeyi Xamarin üzerinde yapabilirsiniz.
  • Microsoft bünyesinde olması sebebi ile destek sistemi güçlüdür.
  • Visual Studio aracılığı ile rahat bir geliştirme ortamı sunar.
  • Geniş kütüphane yelpazesine sahip ve geliştiricilere kütüphane yazma imkanı sunar.
  • Akıllı saatler için uygulama geliştirebilirsiniz.
  • C# bilgisini aynı şekilde Xamarin için kullanabilirsiniz. (Ülkemizde ki üniversiteleri baz alınarak avantaj olarak düşünüyorum.)
  • Geniş geliştirici sayısı ile kaynak noktasında global olarak imkanınız fazlası ile bulunmaktadır.
  • Xamarin SDK'ları, Xamarin.Forms ve Mono çalışma zamanı GitHub'da açık kaynak olarak geliştiricilerin katkıları için sunulmaktadır.

Xamarin Dezavantajları Nelerdir ?

  • Ios için uygulama geliştirmek için MAC sahibi olmanız gerekmektedir. Eğer Mac sahibiyseniz de Windows Phone uygulamalar için sanal makine üzerinde Windows işletim sistemi ile test edebilirsiniz. Kurulum dosyaları içinde aynı durum geçerlidir.
  • Xamarin ile geliştirdiğiniz uygulamalar resmi dillere göre daha fazla yer kaplamakta. Yani Android için Java ile geliştirdiğiniz uygulamanın boyutu ile Xamarin ile geliştirdiğiniz uygulamanın boyutu aynı olmamaktadır.
  • Türkçe kaynak noktasında yeterli seviyede değildir.

Xamarin.IOS ve Xamarin.Android

Xamarin ile cross platform olarak uygulamaları hazırlarken her platforma özel farklı arayüz tercihi kullanmak isterseniz Xamarin.Ios ve Xamarin.Android üzerinde işletim sistemine göre özelleştirme yapabilirsiniz. Böylece Ios veya Android arayüzünde direkt işletim sisteminde yer alan tasarım çizgilerini kullanmada hiçbir sorun yaşamazsınız.

Xamarin.Forms

Bu kısım ise uygulamayı geliştirdiğiniz her platform için ortak bir tasarım çizgisini kullanmanızı sağlamaktadır. Yani işletim sisteminden bağımsız olarak uygulamanızın tasarımı her cihazda aynı olarak gözükmesini istiyorsanız Xamarin.Forms ile geliştirme yapmanız mümkün.

Eğitim Tavsiyesi

Xamarin için Türkçe kaynak noktasında Microsoft Açık Akademi bünyesinde Yiğit Özaksüt tarafından hazırlanan eğitim videolarını izleyebilirsiniz. Ayrıca yine Yiğit Özaksüt tarafından açılan ve Türkiye'nin en kaliteli Xamarin eğitimlerini barındıran Xamarinturkiye.com sitesini de ziyaret edebilirsiniz.

Cross Nedir ?

Bir defa kod yazıp farklı platformlarda çalışmasına çapraz programlama (cross) denilmektedir. Xamarin'de yazıda daha önce belirttiğim gibi Android, Ios ve Windows Phone için tek kod ile uygulama geliştirmenize olanak sağlamaktadır. Ayrıca Samsung ve Intel ortaklığında geliştirilen Tizen platformu içinde Xamarin desteğini açıkladı fakat bu noktada Tizen gelişiminin yavaş ilerlemesi ve yeterli tanıtımının yapılmaması sebebi ile beklenen duruma gelemedi. Yani aslında teoride Xamarin ile tek kod ile 4 platform için uygulama hazırlayabilirsiniz. Ayrıca Android ve Ios için akıllı saatleri de kapsayacak şekilde geliştirme olanağınız bulunmakta. Yani bu durumda cross platform olayını sadece mobil cihazlar için değil ayrıca akıllı cihazlar içinde düşünebilirsiniz.

Native Nedir ?

Native uygulamalar geliştirme noktasında cihazların donanım ve yazılım kaynaklarına doğrudan erişmesi anlamına gelmektedir. Örneklendirmek gerekirse bir uygulama geliştiriyorsunuz ve bu uygulamada kamerayı kullanmanız gerekiyor. Bu noktada cihazın kamerasına direkt olarak erişebilmeniz için native uygulama geliştiriyor olmanız gerekiyor. Örneğin Xamarin benzeri diğer bir teknoloji olan Ionic bu noktada ara katman olarak Cordova kullanıyor yani bir noktada işleri daha uzun yoldan hallediyor.Bu da büyük projeler için performans kaybına sebep olmaktadır.

Biraz daha basite indirgemek gerekirse native uygulama geliştirirken hiçbir ara katmana ihtiyaç duymadan cihazların donanım ve yazılımlarına erişebilirsiniz bu durumda performans noktasında sizlere çok büyük bir avantaj sağlayacaktır. Aynı şekilde Ionic gibi Hybrit uygulama geliştirirken cihazın özelliklerine direkt olarak ulaşamazsınız bunun yerine belirtiğim gibi farklı platformlar ile ara bir köprü kurmanız gerekecek.

Son Olarak

Xamarin platformunun avantajları ve dezavantajları ile sizlere aktarmaya çalıştım. Bu süreçte yazılım geliştiricileri olarak projemize uygun teknolojiler kullanmamız gerektiğini unutmamak gerekiyor. Yani Xamarin şuan için çok avantajlı gözükebileceği gibi bazı noktalarda sizler için tam tersi durumlara sebep olabilir bu sebeple bir projeyi geliştirmeye başlamadan önce projeyi detaylandırarak zaman,kaynak, ekip gibi değerleri göz önüne alarak hangi dilin kullanılacağına karar verilmesi gerekmektedir.

Bu yazı serisinin devamında ise Ionic ile ilgili bilgileri sizler aktarmaya çalışacağım.

Not : Bu yazının tavsiye müziğini dinlemek için buraya tıklayabilirsiniz.

3 Adımda Resim Optimizasyonu Nedir ve Nasıl Yapılır ?

İnternet sitelerinin temel yapı taşlarından olan görseller boyutları ile sitelerin yavaş çalışmasındaki en önemli etkenler arasında yer alıyor. Bu sebeple sizde daha hızlı bir siteye sahip olmak istiyorsanız kullandığınız görselleri en iyi şekilde sıkıştırmalı yani optimizasyonunu gerçekleştirmelisiniz. Peki, hem resimleri sıkıştırmak hemde kalitelerini olabildiğince korumak için hangi adımlar izlenmeli ? Hazırsanız web site hızlandırma ve SEO konusundaki en önemli makale ile yazı serimize başlayalım.

1- Görsel Boyutu

Sitenizi görsel açıdan optimize etmenin ilk adımı ihtiyacınızın olan resim boyutlarını kullanmaktan geçmekte. Örneğin şuan okuduğunuz yazının içerisinde sizlere göstermek için bir görsel yüklemem gerektiğini ve bu noktada sizin şuan yazıyı okuduğunuz alanın genişliğini 800 px olduğunu varsayalım.Eğer ben bu yazı için 1920×1080 px boyutunda bir görsel yüklersem bu noktada tarayıcılar otomatik olarak 1920×1080 boyutundaki görseli indirecek ve ardından tekrar boyutlandırma işlemi yaparak 800 px boyutuna görselleri dönüştürerek sizlere gösterecek. Bu noktada hem sitenizin bant (bandwith) kullanımında hemde hızlı açılmasında kaybınız olmuş olacak.

Bu sebeple her zaman kullanacağınız görselleri ihtiyaçlarınıza yakın ölçülerde kullanmanız oldukça önemli. Tüm resim optimizasyonu işlemleri arasında sizlere en çok tasarruf sağlatacak madde bu diyebiliriz.

2- Resim Formatı

Web sitelerinde kullandığımız resimlerin uzantıları yani formatları dahi önemli bir etken. Günümüzde genellikle JPG ve PNG formatları kullanılmakta. Peki, web sitemizde hangi formatı seçmemiz gerekiyor ve bu formatlar bizlere hangi avantajları sunmakta ?

a- PNG ( Portable Network Graphics)

Teknik detaylara girmeden ilerlememiz gerekirse .PNG formatı daha çok sanatsal yani fotoğrafçıların kullanması için geliştirilmiş bir resim uzantısı. Bu uzantı ile hazırlanan görseller kalite noktasında çok iyi konuma sahip olsa da maalesef dosya boyutu olarakta yüksek bir disk alanına ihtiyaç duyuyor. Bu sebeple sitenizde bir görseli kullanırken kusursuz bir kaliteye sahip olması önemli değilse .PNG formatını çok tavsiye edemem. Ayrıca sıkıştırma noktasında da .PNG uzantılı görsellerde işlemler daha az etki göstermekte.

b- JPG (Joint Photographic Experts Group)

JPG formatının amaçlarından biride büyük görselleri olabildiğince kaliteden ödün vermeden sıkıştırabilmek. Bu sebeple özellikle Facebook gibi içeriğinin birçoğu görselden oluşan sitelere yüklediğiniz hemen hemen tüm görseller JPG formatın da sıkıştırılarak saklanmakta. Bu yüzden eğer sizde içerikleriniz de çok ciddi kaliteli fotoğraflara ihtiyaç duymuyor ve optimizsayondan yüksek verimlilik almak istiyorsanız JPG formatında görseller kullanabilirsiniz.

Peki, resimleri nasıl dönüştürebiliriz ?

PNG formatına sahip bir görseli nasıl JPG formatına ya da tam tersine dönüştürebiliriz ? Bu noktada fotoğraf düzenleme programlarından olan Photo Scape, Photo Shop veya GIMP programlarını rahatlıkla kullanabilirsiniz ya da online hizmet veren sitelere başvurabilirsiniz. Bu noktada benim tavsiyem çok ciddi boyutlara ulaşmadığı sürece görsellerin formatlarından ziyade kapladığı alana dikkat etmeniz. Fakat sıkıştırma işlemi yapacaksanız ve kalitenin sizler için çok ciddi bir etken olmadığını düşünüyorsanız JPG formatı sizler için daha iyi olacaktır.

Ayrıca format ne olursa olsun arama motorlarında “jpg to png” veya tam tersi şekilde arama yaparak farklı sitelere erişebilirsiniz. Bu noktada sizler için birçok format arasında dönüştürme yapabilen Convertio.co sitesini tavsiye edebilirim.

3- Resim Sıkıştırma İşlemi

Resmi uygun çözünürlüğe getirdik ve ardında ihtiyaç duymamız halinde görsel formatına müdahale ettik. Şimdi sırada son işlemimiz olan görseli sıkıştırma işlemi kaldı. Bu noktada bu işlemi yine fotoğraf düzenleme programları ile veya online olarak yapabilirsiniz.

Tüm bu süreçte edindiğim tecrübeler ile sizlere kullandığım yöntemlerin avantaj ve dezavantajlarından kısaca bahsedeceğim.

Photo Scape : Fotoğraf düzenleme noktasında oldukça basit ve kullanımı kolay bir program olan PhotoScape ile görselleri sıkıştırabilirsiniz. Bu noktada benim gözümde PhotoScape görsel sıkıştırma algoritması maalesef dosya boyutunu küçültürken kaliteden de çok fazla ödün vermekte bu sebeple kalitesi çok iyi olmayan görsellerde PhotoScape programını kullanmanızı önermem.Fakat çok kaliteli ve fazla yer kaplayan bir görseli sıkıştırmak için rahatlıkla kullanabilirsiniz.

Photo Shop : Hemen hemen herkesin bildiği Photo Shop görsel sıkıştırmada ki en başarılı programlar arasında yer alıyor. PNG uzantılı görsellerde sıkıştırma yapamıyor olsanız da JPG uzantısı için rahatlıkla dosyalarınızı sıkıştırabilirsiniz.

Online Görsel Sıkıştırma Siteleri

Resim sıkıştırma işlemlerinde en çok memnun kaldığım çözümler genellikle internet sitelerinin sunduğu hizmetler. Hem toplu sıkıştırma işlemlerine olanak vermeleri hemde programlara göre çok daha kolay işlemleri yapabilmeleri ile sizlere kullandığım siteleri de sunmak istedim. Ayrıca genellikle kendim bu sitelere yüklediğim görseller için önce Photo Shop ile sıkıştırma işlemi yapıyor ardından sitelere yüklüyorum.

a- TinyJPG 

İsmi ile sadece JPG uzantısı için sıkıştırma işlemi yapıyor gibi gözükse de .PNG uzantılı görsellerinizide bu site üzerinde sıkıştırabilirsiniz. Ayrıca TinyJPG birçok farklı platform içinde destek veriyor. Örneğin Photo Shop eklentisi ile hiç internet sitesine dosya yüklemeye gerek kalmadan görsellerinizi kaydederken gerekli sıkıştırma işlemini yapabilirsiniz. Ayrıca WordPress, Magento gibi hazır sistemler için eklentiler sunmakta. Fakat burada da dipnot olarak WordPress için eklentiyi kullanırken sorunlar yaşayabileceğinizi belirtmeliyim, bunun sebebi de genellikler birçok firma hosting üzerinde sistem yorucu işlemleri engelli olarak müşterilerinin kullanımına sunmaktadır. Bu sebeple eğer VDS, VPS sunucu sahibi değilseniz eklentiyi kullanmak yerine görselleri direkt olarak optimize ederek sitenize yüklemenizi tavsiye ederim.

Ayrıca eğer hosting hesabınız LiteSpeed teknolojisini destekliyorsa LiteSpeed ile tüm sitenizdeki fotoğrafları optimize edebilirsiniz. (LiteSpeed Nedir ? )

b- Compressjpeg/png

Tiny gibi başarılı sıkıştırma işlemi yapan siteler arasında yer alan compress ile JPG, JPEG, PNG ve PDF uzantılarında ki dosyaları sıkıştırabilirsiniz. Ayrıca 20 adete kadar toplu sıkıştırma işlemini de online olarak yapabilirsiniz.

İki siteyi de sık sık kullanıyorum ve ikisinin de alanında son derece başarılı olduğunu belirtmeliyim.

Son Olarak

Yazının başında da belirttiğim gibi bir sitenin hızlı olabilmesi ve SEO açısından en önemli kriterler arasında kullanılan görselin boyutu gelmekte. Ayrıca resimleri sıkıştırmak ilerleyen zamanlarda çok daha zor hale gelebileceği için tüm resimleri sitenize atmadan önce en iyi şekilde sıkıştırmanız da fayda var.  Tüm bu işlemlerde aklınıza takılan soruları bana yorum alanından sorabilirsiniz.

Ayrıca tüm bu işlemleri uygularken sizde müzik dinlemek isterseniz önerimi sizler için aşağıya bırakıyorum.

WordPress Alan Adı Değişikliği Nasıl Yapılır ?

WordPress tabanlı siteleri bazı durumlarda başka alan adlarına taşımaya ihtiyaç duyabilirsiniz. Bu noktada en büyük sıkıntı şüphesiz index kaybı, veri kaybı gibi sorunların oluşma ihtimalidir. Bu ihtimalleri göz önüne alarak bu yazımda tüm detayları ile WordPress alan adı değişikliği nasıl yapılır onu anlatacağım. Bu yazı aynı zamanda  WordPress site taşıma veya WordPress x alan adını y alan adına taşıma olarakta algılanabilir.

İşlemlerimizi cPanel üzerinden yapacağız Plesk panel hakkında hakim iseniz aynı anlatımı orada da uygulayabilirsiniz.  Ayrıca bu noktada bu yazı biraz detaylı ve uzun olacağını belirterek başlıklar halinde oluşturacağım. Böylece bildiğiniz kısımları atlayabilirsiniz.

1- cPanel İle Yedek Alma 

cPanel hesabınıza giriş yapmak için siteadi.com:2082 veya siteadi.com/cpanel adreslerini kullanabilirsiniz. Eğer cPanel bilgileriniz mevcut değilse servis sağlayacınız yani hosting firmanızdan öğrenebilirsiniz. Tüm bu işlemlerin ardından cPanel’e giriş yaptıktan sonra Dosyalar menüsü altında Yedekleme Sihirbazı seçeneğini seçiniz.

Açılan ekrandan Backup diyerek yeni açılan ekranda sağ kısımda yer alan  Giriş Dizini – MySQL Veritabanları ve E-posta İleticileri & Filtreler seçeneklerinden Giriş Dizini ve MySQL Veritabanlarını tıklayarak yedeklerini bilgisayarınıza indirin.Eğer site üzerinden e-posta hizmeti alıyorsanız e-posta yedeklerinizi de indirebilirsiniz fakat biz bu seçeneği kullanmadığımız için şuan es geçiyorum.

İki dosyada bilgisayarınıza indikten sonra yedek alma işleminiz başarı ile gerçekleşmiş demektir. Bundan sonra ki adım ise diğer hosting alanına yedekleri kuracağız.

2- cPanel Yedekleri Geri Yükleme

cPanel hesabımıza giriş yaptıktan sonra yine tekrardan Yedekleme Sihirbazı aracılığı ile yedeklerimizi geri yükleyeceğiz. Açılan ekranda bu sefer Back Up kısmını değil sağ kısımda yer alan Geri Yükle alanını seçeceğiz.

Bu sefer açılan ekranda yine aynı 3 seçenek (Giriş Dizini – MySQL Veritabanları ve E-posta İleticileri & Filtreler ) karşımıza çıkacak. Burada tek tek bilgisayarımıza indirdiğimiz dosyaları  uygun olan alana yükleyeceğiz.Tüm bu işlemlerin ardından yedeklerimiz yeni hesabımıza yüklemiş oldu.

Şimdi yedekleri hesabımızda uygun alana taşımamız gerekiyor. Bu noktada cPanel başlangıç ekranına gelerek Dosya Yöneticisi aracına tıklıyoruz. Burada yedeklerimizin mevcut olduğu bir klasör olması gerekiyor. Her panelde farklı isim olabilir ama “Back Up” anahtar kelimesinden farkedebilirsiniz. Bu klasörün içine girerek CTRL + A ile tüm dosyaları seçiyor ve public_html içine taşıyoruz. Burada eğer daha önce kurulmuş bir WordPress varsa dosyaları direkt üstüne yazabilirsiniz.

Bu adımdan sonra yedek kurulmuş oluyor fakat bu seferde MySQL ile bağlantı yapılması gerekiyor. Bunun için tekrar cPanel ana ekranına geliyoruz.  MySQL® Veritabanları seçeneği ile veritabanı bilgilerimizi alıyoruz. Bu noktada yedeğini yüklediğiniz veri tabanı ismi değişebileceğini unutmayın. Bu yüzden isim ön eki almış olabilir. Örneğin eski veritabanı ismi hsn16 yedek olarak yükledikten sonra ekshsn16 gibi olabilir. 

Buradan veritabanı bilgilerini aldıktan sonra WordPress dosyalarının olduğu public_html alanına tekrar dönüş yapıyoruz. Burada wp-config.php dosyasını açarak veritabanı bilgilerimizi güncelleyerek dosyayı kaydediyoruz.

Tüm bu işlemlerin sonunda yedek yükleme işlemimiz başarı ile gerçekleşmiş oluyor fakat şöyle bir sorun var. Biz yedeği abc.com alan adını için yükledik, şuan yüklediğimiz sitenin alan adı ise farklı. Bu noktada bir sonraki adımda işlemleri yapıyoruz.

3- WordPress Alan Adı Değiştirme

Tekrar cPanel üzerinden işlemlere devam ediyoruz. Bu sefer ana sayfadan pypMyAdmin sekmesine tıklıyoruz ve açılan ekranda sol kısımdan işlem yapacağımız yani yedeğini yüklediğimiz veri tabanını seçiyoruz. Veri tabanı seçili iken üst menüde yer alan SQL sekmesine geçiş yapıyoruz.

 

Bu kısımda aşağıdaki kodları dikkatli şekilde uygulamamız gerekiyor.

İlk olarak wp_options tablosundaki ayarları değiştiriyoruz.

UPDATE wp_options SET option_value = replace(option_value, ‘http://www.eskialanadi.com‘, ‘http://www.yenialanadi.com‘) WHERE option_name = ‘home’ OR option_name = ‘siteurl’;

Bu işlemde eskialandi ve yenialandi kısmını kendinize uygun değiştirin ve sitenizde SSL sertifikası olup olmama durumunu lütfen göz önünde bulundurun. Bu işlemi sağ alt kısımdan GİT diyerek uygulayın ve artık sıradaki koda geçebiliriz.

UPDATE wp_posts SET guid = replace(guid, ‘http://www.eskisite.com’,’http://www.yenisite.com’);

Üstteki kodu da aktif ederek artık eski sitemizdeki içeriklerin yeni alan adında aktif olmasını sağladık. Böylece panele girerek yazılara ulaşabiliriz ama görseller için bir adım daha var.

UPDATE wp_posts SET post_content = replace(post_content, ‘http://www.eskisite.com’, ‘http://www.yenisite.com’);

Bu kodu da yine kendi sitenize göre değiştirerek işlemleri tamamlayın. Artık her şeyi ile site taşıma işleminiz başarılı oldu demektir fakat bazı ince ayarları yapmamız gerekiyor.

4- İndex Kaybını Engelleyin !

Site taşıma işlemi sonrası da en az site taşımak kadar önemli. Özellikle daha önce kullandığınız alan adı uzun yıllar birikim yaptığınız bir siteye ait ise bundan sonrası sizin için daha büyük hayati önem taşıyabilir çünkü geçiş sonrası eski alan adınızın indexlerinin silinmesi çok uzun sürecek ve yeni alan adındaki içerikleriniz kopya muamelesi görerek arama motorlarında gerileyecektir. Bu sebeple 301 yönlendirmesi ile işe başlayalım !

Eski alan adınızın cPaneline girerek veya FTP bağlantısı yaparak public_html içindeki .htaccess dosyasını açın ve aşağıdaki kodları düzenleyerek en alt kısıma yapıştırın. Not : .htaccess cPanelde gözükmüyor ise sağ üst köşedeki ayarlar butonunda gizli dosyaları göstermeyi aktif edin.

Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://yenidomain.com/$1 [R=301,L]
# END WordPress

Bu işlemlerin ardından Google Web Yönetici Araçları (Google Search Console) ile yeni alan adınızı ekleyin ve eski alan adı ayarlarından sitenizi taşıdığınızı Google’a bildirin. Bu işlemleri aktif olarak kullandığınız diğer arama motorlarında da uygulayabilirsiniz.

Hata : Yazılar Gözükmüyor !

Tüm işlemlerin ardından site içerikleriniz gözükmüyor ise Ayarlar >> Kalıcı Bağlantılar yoluna giderek tekrar ayarlarınızı kaydedin. Ayrıca WordPress güncellemesi mevcut ise bu güncellemeyi de gerçekleştirebilirsiniz.

Tüm bu işlemlerden sonra veri kaybı gerçekleşmeden geçiş yapmış olmanız gerekiyor.  Anlatımdan kaynaklı anlamadığınız bir yer veya yaşadığınız sorunlar hakkında yorumlar kısımında iletişime geçebilirsiniz.

Nereden Başlamalıyım ? – Bilgisayar Mühendisliği Tavsiyeleri #1

Hayatınız boyunca yapmak istediğiniz mesleğin bilgisayarlar ile ilgili olduğuna karar verdikten sonra bir şeyler yapmak istiyor fakat nereden başlayacağınızı bilmiyorsanız edindiğim tecrübeleri birkaç noktada sizinle paylaşmak için  Bilgisayar Mühendisliği Tavsiyeleri yazı serisini hazırlamaya karar verdim.

Bu seriye başlamadan önce her şeyin kendi edindiğim tecrübeler sonucunda doğduğunu sizlere belirtmek isterim. Bu noktada özellikle sizde yazılar ile ilgili görüşlerinizi paylaşarak beyin fırtınası sonucu tecrübe edinmek isteyen kişilere daha sağlıklı yardımcı olabiliriz.Daha fazla vakit kaybetmeden hemen yazıya geçelim.

1- Ufkunuzu Açın !

Özellikle mühendislik alanında ki ilk sene X Mühendisliğine giriş veya benzer bir isme sahip derse yer verilmektedir. Bu dersin müfredattaki amacı öğrencinin bölümü hakkında fikir sahibi olarak neler yapabileceğini görebilmesidir. Fakat maalesef ülkemizin güzide eğitim sisteminde ki hocaların birçoğu bu derste her şeyi bir yerlere dayandırarak ezbere dayalı bilgileri öğrencilere sunmakta. Örnek vermek gerekirse bizim eğitim gördüğümüz süreçte hocamız bize yaklaşık 30-40 sayfaya yakın sadece ezbere dayalı bilgileri vermekteydi. Daha okulum bitmediği halde bu bilgilerin birçoğunu hatırlayamıyorum. Yani bu noktada benim düşüncem böyle bir dersin sınavına sayfalarca ezber yapılarak hazırlanılmaması gerekiyor.

Bu kadar ezbere dayalı bilgiler yerine bize sektör ile ilgili bilgiler vererek, neler yapabileceğimizi anlatarak bu mesleğe olan sevgimizi ve düşüncelerimizi değiştirebilirlerdi. Bu noktada size tavsiyem böyle bir ders almanız veya almamanız hiç önemli olmadan sektöre dair birçok şeyi öğrenmeye ve gözlemeye çalışın.

En basit hali ile diğer üniversitelerde verilen derslerin içeriği, öğrencilerin hayata geçirdiği projeler, sizden üst dönemde olan öğrencilerin projeleri gibi ilk etapta çokça işinize yarayacak ve fikir sahibi olmanızı sağlayacak şeyleri araştırabilirsiniz.Tüm bu araştırmalar sonucunda  aslında birçok noktada soru işaretlerinizin silindiğini fark edeceksiniz.

2- En Önemli Kaynak İNSAN !

Sektördeki insanların birçoğu sizler için her zaman olumlu şeylerin habercisi olacaktır. Bu noktada okul arkadaşlarınız, etkinlikte veya stajda tanıştığınız kişiler ile her zaman mesleğiniz ile alakalı iletişim halinde kalmanızı tavsiye ederim. Özellikle üniversite döneminde arkadaşlarınız sayesinde birçok şeye kolayca ulaşabilirsiniz. Ayrıca yeni insanlar ile tanışmak için hemen hemen her mesleğin sosyal ağlardaki gruplarına kayıt olabilirsiniz. Böylece hem sektöre dair gelişmelerden çok hızlı bir şekilde haberdar olabilir hemde sektörden insanlar ile tanışabilirsiniz.

3- Tek Bir Alana Yönelmeyin

Eğitim sürecinizde muhtemelen bir alan diğerlerinden daha fazla ilginizi çekecek veya bir sebep ile tek bir alana yönelmek isteyeceksiniz. Bu durumda yönelmek istediğiniz ya da yöneldiğiniz alan ne olursa olsun her zaman yanına ekstra bir şeyler eklemeye çalışın. Bu konu ile ilgili örnek vermek gerekirse örneğin yazılım alanında kendinizi geliştiriyorsunuz o zaman yanınıza biraz tasarım veya donanım bilgisi de ekleyin. Tabi bu örnekte yazılım çok büyük bir dağ olsa da herhangi bir alt dalını da kabul edebilirsiniz. Yani Java alanında uzmanlaşmak için çalışıyorken gömülü sistemler ile veya Network ile ilgili kendinize bir şeyler katabilirsiniz. Aslında bu durum birçok yazılım mühendisine söylenen; bir dilde uzmanlaş ama diğerlerini de az çok bil tavsiyesine benzemekte. Bu sizin için hem yoğun tempolarda kafanızı dağıtmak için bir kaçış noktası olacak hemde gelecek kariyer planlamanız da daha çok seçeneği göz önünde bulundurmayı sağlayacaktır diye düşünmekteyim. 🙂

Kısaca toparlamak gerekirse ilk yazıda aslında sadece bilgisayar mühendisliği veya bilgisayar ile ilgili meslekler için tavsiyeler değilde hemen hemen her mühendisin ihtiyacı olacağı tavsiyelere olabildiğince yer vermeye çalıştım.  Her şeyden önce eğer bir meslekte kendinizi geliştirmeye karar verdiyseniz belki biraz abartı olacak fakat hayatınızın her gününde kendinize bu meslek ile ilgili bir şeyler katmanız gerekmekte. Sektörü takip etmek, diğer insanların neler yaptığını gözlemlemek ve en önemlisi bildiklerinizi paylaşmak her zaman sizin için olumlu sonuçları doğuracaktır.

Son olarak Steve Jobs tarafından Stanford Üniversitesi mezuniyet töreninde yapılan konuşmayı mutlaka dinlemenizi tavsiye ediyorum.

LiteSpeed Nedir ? Neden Kullanılır veya Kullanılmalı ?

LiteSpeed son zamanlarda adından çokça söz ettirmeyi başaran ve genellikle yüksek performanslı sitelerde tercih edilen bir web teknolojisi. Peki, sunucu sahipleri tarafından ve hosting firmaları tarafından bu kadar çok tutulan LiteSpeed’in tam olarak görevi nedir ve alternatiflerinden farkı nedir ?

Eğer internet sektörüne ilgi duyuyorsanız muhtemelen Apache Server teknolojisini bir yerlerde duymuşsunuzdur. Hatta birçok okulda hala .php dosyalarının sunucuda çalıştırılması için Apache Server gerektiğinden bahsediliyor. Fakat Apache php çalıştırabilen sunucu tabanlı bir derleyiciden ibaret bu sebeple Apache Server olmadan da php tabanlı siteler sunucularda çalışabilir fakat yine Apache benzeri bir yazılım kullanmanız gerekiyor. Bu noktada da yazımızın konusu olan LiteSpeed devreye giriyor. Php dosyalarını derleyerek tarayıcıya saf HTML kodlarını göndermek üzerine tasarlanan LiteSpeed tükettiği sistem gereksinimleri ile sunucuların Load sürelerinde gözle görülür bir performans sunması ile son yıllarda birçok site sahibi ve hosting firması tarafından kullanılmaya başladı. Bu sebeple popülaritesini de  her gün biraz daha arttırarak gelişimine devam etmekte.

Apache gibi ücretsiz olmamasına rağmen sağladığı performans ile sitelerin load süresini düşürmesi ve daha fazla isteğe cevap vermesi ile birçok büyük sitenin arkasında ki teknoloji olmayı başarıyor. Ayrıca Apache Server kullanıyorsanız geçiş yapmanızda oldukça kolay. Tek yapmanız gereken lisansı satın aldıktan sonra Apache Serverı kaldırarak kurulum yapmanız. Apache üzerinden geçiş yaparken LiteSpeed sizin için her şeyi olması gerektiği gibi ayarlıyor.

Mod Security uyumluluğu ve kendi bünyesinde Ddos koruması barındırması ile güvenlik anlamında da sizin için birçok alanı kontrol eden LiteSpeed için en büyük dezavantaj biraz öncede bahsettiğim gibi maalesef ücretli olması.Fakat bu noktada özellikle kurumsal hosting, reseller hosting gibi hizmetleri firmalardan alırken LiteSpeed özelliğinin olmasına mutlaka dikkat edin.

LiteSpeed performans noktasında ayrıca WordPrees, Joomla gibi hazır yönetim panelleri ile çok uyumlu şekilde çalışmakta ve ciddi anlamda güzel işler ortaya çıkartmakta. Örneğin aşağıdaki sonuçlar LiteSpeed yazılımı kullanan bir sitede yaptığım çalışmaların sonucu. Bu noktada bu değerler özellikle arama motorları gözünden oldukça değerli ve kullanıcıların site deneyimine olabildiğince fayda sağlamakta.

 

  • Load Nedir ?
    Yazı içeresinde birçok defa kullandığım Load bir noktada Windows bilgisayarlarda ki görev yöneticisi görevi görmekte. Sunucuda root yetkisine sahip olan kişiler Load ile sunucularına dair tüm bilgileri görebilmekte bu noktada sunucunuz da ki performans durumunu değerlendirebilirsiniz. Ayrıca cPanel, Plesk panel gibi alternatifleri kullanıyorsanız yine bu noktada sunucunuzun durumunu görmek için panele erişmeniz yeterli olacaktır.

LiteSpeed hakkında merak edebileceğiniz soruları sizler için bir araya getirmeye çalıştım. Bu noktada umarım LiteSpeed’in sağladığı avantajları ve dezavantajları sizlere aktarabilmişimdir.

WPF Nedir ?

Günümüzün en popüler dilleri arasında yer alan C# Microsoft gücü ile geliştiricilere esnek bir ortamda kolayca uygulama geliştirme fırsatı sunuyor. Bu noktanın en iyi örnekleri arasında ise şüphesiz Windows Presentation Foundation kelimelerinin baş harflerinde oluşan WPF yani görsel tasarım ortamı geliyor. Peki, WPF nedir ve ne gibi avantajlar bize sunar ?

WPF Nedir ?

 

WPF Visual Studio üzerinde C# geliştiricilerine sunulan görsel tasarım ortamıdır. Bu araç ile birlikte kullanıcılar görsel açıdan her aşamasına müdahale edebileceği uygulamalar geliştirebilmekte. Bu noktada ise karşımıza XAML ( extensible application markup language ) çıkmakta.
Burada kısa bir parantez açarak kısaca XAML (zemıl) nedir sorusuna cevap verelim. XAML aslında web geliştiricilerinin çok yakından tanıdığı XML diline benzer yazım kurallarına sahip tasarım dilidir. Bu dil HTML için  CSS gibi yada Windows Form Uygulamalarında ki toolbox ile form arayüzü gibi düşünebiliriz.

Yani siz HTML ile ekrana bir text box koyduğunuzda nasıl standart bir görüntü oluşuyor ve sonrasında CSS ile farklı özellikler kazandıra biliyorsanız ya da Windows Form arayüzünde toolbax üzerinden text box atıp sonrasında arka planda kodlarını yazıyorsanız WPF ile uygulama geliştirirken de XAML ile bu işlevi yapıyorsunuz.Yani siz bir buton oluşturmak için XAML ile kodlarını yazıp özgürce tasarımını gerçekleştirebiliyorsunuz.

Peki, WPF ile uygulama geliştirmenin bize sağladığı tüm kolaylıklar bundan mı ibaret ?

Tabi ki bu sorunun cevabı; hayır. Aslında bu noktaya kadar WPF için en öne çıkan özelliğinden bahsettik fakat aslında daha sağladığı birçok avantajı bulunmakta.Bunlar kısa kısa maddeler ile bir araya getirelim;

1) C# ataları olan C ve C++ göre çok daha hantal bir yapıya sahip. Bunun sebebi ise ihtiyaçlarımızın hepsini göz önünde bulundurarak tüm detayların kullanıp kullanmamıza çok bakılmdan arka planda yer alması fakat bu duruma WPF ile biraz daha fazla müdahale edebiliyoruz.
2) Windows Form uygulamalarının en büyük eksiklikleri arasında standart tasarımlar dışına çıkmanın oldukça zor olması yer alıyor.Bu noktada birçok Framework olsa da hem çok pahalı miktarlarda lisans ücretli bulunuyor hemde tam anlamı ile özgür bir geliştirme ortamı sağlamıyor.
3) WPF ile geliştirilen uygulamalar tasarım noktasında pixeller ile görüntüleri oluşturmak yerine vektörler ile oluşturur. Buda ister telefonda ister ise televizyonda programınızı çalıştırın yine de görsel açıdan kalite değişmez demek. Ayrıca responsive yani esnek çözünürlüklü uygulama geliştirmek WPF ile çok çok daha kolay !

4) Tasarım ile arka planı birbirinden ayıran yapısı ile ekip çalışmaları için çok daha kolay bir ortam sunmakta.
5) XAML Browser Application teknolojisini desteklemesi sebebi ile WPF ile geliştirilen uygulamaları tarayıcılarda da çalıştırabilirsiniz. Kısaca bu noktada işletim sistemine karşı bağımsızlık kazanmış oluyorsunuz.
6) Görüntü anlamında C# için çağ açan yenilikler arasında da yine animasyon özellikleri yer almakta. Ayrıca tüm bunlar GDI/GDI+ kütüphaneleri yerine DirectX teknolojisi kullanıldığı için programların işlemciyi yormadan gerçekleşmesini sağlamakta.

Windows Form (WF) mu WPF mi ?

Göreceli olması kaçınılmaz olan bu sorunun cevabını aslında uygulamaya göre sizin karar vermeniz çok daha doğru olacaktır. Kullanıcı deneyimi önemli ve detaylı bir uygulama geliştirmek istiyorsanız hem sistem performansı hemde arayüz tasarımında sunduğu kolaylıklar için WPF tercih edebilirsiniz ya da tasarımın çok önemli olmadığı ve kısa sürede ihtiyaçlarınızı karşılamasını istediğiniz uygulamaları ise Windows Form tabanında geliştirebilirsiniz.

Tüm bunların yanında yazı içeresinde de bahsettiğim gibi Windows Form ile hem kullanıcı deneyimini arttırabileceğiniz hemde hızlı uygulama geliştirebileceğiniz Framework örneklerini araştırabilirsiniz.

Son olarak eğer ücretsiz WPF eğitimi veren bir kaynak arıyorsanız MilcanX Developer kanalını buraya tıklayarak takip edebilirsiniz.