25 Aralık 2015 Cuma

Labtop Isınma Sorununu Giderme


Geçtiğimiz günlerde bilgisayarıma uzun süredir bakım yapmamamdan kaynaklı aşırı ısınma sorunu vardı.Önce fan alıp bilgisayarı soğutmaya çalıştım fakat o da sonuç vermeyince  bilgisayarımı güzelce açıp İşlemcimin termal macununu değiştirmeye karar verdim.

Genellikle laptoplarda sonradan bir aşırı ısınma sorunu yaşanıyor ise büyük olasılıkla termal macun eskimesinden kaynaklı olabilir.Bu macunu değiştirdiğinizde bilgisayarımız ilk alındığı gün gibi rahat bir soğutma yapacaktır.Şimdi bakalım bu termal macunu nasıl değiştirebiliriz.


Termal Macun Değişimi

Bu işlem için aşağıdaki aşamaları uygulamamız gerekmektedir.

1.Bilgisayarımızın vidalarını söküp içini açıyoruz.

2.Fan ımızı çıkarıyoruz.

3.Fan altında ekran kartı işlemcisi ve normal işlemci olarak 2 adet işlemcimiz olacak,

4.İşlemcilerimizin üzerindeki termal macunları kuru bir peçete ile temizleyelim.

5.İşlemcilerimizin eski termal macunlarını temizledikten sonra yeni aldığımız termal macunu parmağımız ile çok çok az birşey alarak işlemcilerimizin üzerlerini tam olarak kapatacak şekilde sürüyoruz.

6.Termal macunlarımız yenillendi.Şimdi fanımızı güzelce temizlememiz gerekiyor.Var ise bir saç kurutma makinası ile de temizleyebiliriz.

7.Macunlarımız yenilendikten, fanlarımız temizlendikten sonra artık fanımızı geri takıyoruz.
8.Bilgisayarımızın arka kapağını da takıyor ve işlemi tamamlıyoruz :)


Tüm bu işlemler tamamlandıktan sonra, saatlerce yüksek grafik gerektiren oyunlarla bile test ettiğimde bir gram ısınma artık yok.



Kullanılan Malzemeler
 - Termal Macun ( İnternette çok kolay 3-5 liraya bulabilirsiniz, ayrıca yakınlarınızdaki bir bilgisayarcıdan da çok küçük bir parça isteyebilirsiniz para bile almayacaklardır)

 - İşlemcinin eski macununu silmek için peçete yada kuru bez

 - Yıldız uçlu tornovida.
Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

23 Aralık 2015 Çarşamba

Git Bash ile GitHub kullanımı


Github hesabı açıp yaptığınız projeleri zaman paylaşmak yada projelerinizi açık kaynak olarak yayınlayıp insanlarında katkılarıyla büyütmek isteyebilirsiniz.

Bu yazımda github hesabı nasıl açılır, projeler nasıl yayınlanır bi bakıyor olacağız.

 - Öncelikle bir github hesabı açıp ilk projemiz için bir repository oluşturmamız gerekiyor.(https://github.com/)
 - Ardından bilgisayarımızdaki projemiz ile github hesabımız arasındaki senkronizasyonu sağlamak için kullanacağımız Git Bash uygulamasını indirmemiz gerekiyor.
(indirme linki : https://git-scm.com/downloads )
 - Git Bash indirdikten sonra bilgisayarımızda gitHub projelerimizi yayınlayacağımız bir klasör oluşturuyor ve bu klasör altındak ilk projemizi açıyoruz.
 - Proje klasörümüze git bash üzerinden "cd dizinadı" komutu ile ulaşıyoruz.
 - Ardından projemizi git e git bash ekranı üzerinden önce yüklüyor ve sonrasında projemizi github repository imize gönderiyoruz.
 - Git Bash üzerinden sırası ile aşağıdaki komutları çalıştırarak tüm bu işlemleri yapabiliriz.
1.cd dizinadi
2.git init
3.git add -A
4.git commit -m "commit message"
5.git remote add origin githubUrlBuraya
6.git pull origin master
7.git push origin master
bu işlem sonrasında bizden username ve password istenecektir,github hesabımıza ait  username,password bilgilerimizi girip işlemi tamamlıyoruz.
Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

17 Aralık 2015 Perşembe

Google URL Shortener Kullanımı


URL kısaltma son zamanlarda biraz sık kullanılan bir özellik olmaya başladı.Biz de yurt dışında hizmet verdiğimiz bir firmada böyle bir implementasyon yapmaya karar verdik.Öncelikle bit.ly apileri kullanmaya başladık.Ama bu tarafta bazı sorunlar çıktı, çünkü bit.ly bizim kayıt ettiğimiz url leri kayıt etmeden önce bir request gönderiyor ve 1 kez kullanıyor.

İşte tamda burda bir sorun ortaya çıktı, biz url bilgilerini aktivasyon linkleride kullanıyoruz ve bit.ly bu url lere request attığında aktivasyonu kendisi yapıyor ve sorunumuzu çözmüyordu.
Sonrasında google url shortener ile ilgili birkaç test yaptıktan sonra çok temiz güzel çalışan bir apisi olduğunu gördüm ve implemente etmeye karar verdim.


Nasıl başlarız.

 - Öncelikle sistemin çalışması hakkında detaylı bilgi edinmek için https://developers.google.com/url-shortener/linkini ziyaret edebilirsiniz.

 - Ardından google developer hesabı oluşturup api credential üretmeniz gerekiyor.

 - Api kodumuzu temin ettikten sonra , küçük bir kaç request ile url shortener ı kullanabiliyoruz.

Aşağıdaki gibi bir metod ile url shortener apiyi rahatca kullanabiliyoruz.



        public string URLShortenerRequest(string URLtoShorten)
        {
            string shortUrl = string.Empty;

            string apiKey = "googledan alınan api key buraya gelecek";
            string urlAuth = "https://www.googleapis.com/urlshortener/v1/url?key=" + apiKey;
            var httpWebRequest = (HttpWebRequest)WebRequest.Create(urlAuth);
            httpWebRequest.ContentType = "application/json";
            httpWebRequest.Method = "POST";

            using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
            {
                string json = "{\"longUrl\":\"" + URLtoShorten + "\"}";
                streamWriter.Write(json);
            }//End Using

            var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
            {
                shortUrl = JsonConvert.DeserializeObject<dynamic>(streamReader.ReadToEnd()).id;
            }//End Using

            return shortUrl;
         }
Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

Asp.Net MVC Custom Authorization ile Üyelik Sistemi Yönetimi


Önceden Asp.Net tarafında System.Web.UI gibi bir sınıfıtan türeyen alan base bir sınıf oluşturup authorization olaylarını burada yapıyorduk.Hangi sınıflar için login gerekiyor ise de bu sınıfları bu base sınıfımızdan türetiyor ve örneğin Asp.Net Page Life Cycle daki  'Page_Initialize' event ın da bu base sınıf içerisnde kullanıcı oturum açmış ise devam et, açmamış ise login sayfasına yönlendir diyebiliyorduk.

Asp.net MVC de bu işlemler bizim için biraz daha kolay bir hale geldi, MVC yapısındaki ilgili view ımızın action metodunda view ı görüntülemek için işlem izni gerekiyor mu gerekmiyor mu kontrol etmek için metodlarımızın üzerine sadece  [TestAuthorize] şeklinde bir işaretleme yaparak o view ı kullanan kişinin login olup olmadığına bakabiliyor , üye olmadı ise login e yönlendirebiliyor yada uygulamamızın mantığı neyse ona göre işlem yapabiliyoruz.


Şimdi bakalım bunu nasıl yapabiliyoruz.

Örnek olarak aşağıdaki yapıya sahip basit bit uygulamamız olduğunu düşünelim

Controllerlarımız aşağıdaki gibi olsun.
/Home
/Login

View Klasörümüz içerisinde de aşağıdaki gibi view larımız olsun.

/Home/Index.cshtml-> üye girişi yapılmasını gerektiren uygulamamızın ana sayfası

/Login/Index.cshtml-> üye girişi yapılan sayfamız.



HomeControler.cs Dosyamız



    public class HomeController : Controller
    {

     
        //
        // GET: /Home/
         [TestAuthorize]/*Burada TestAuthorize adında bir custom authorization nesnemiz olduğundan ve metod çalışmadan önce bu kontrolün çalışacağından metodumuzu haberdar ediyoruz*/
        public ActionResult Index(string login)
        {
                    return View();

        }//End Metod

}//End Class




LoginControler.cs Dosyamız



    public class LoginController : Controller
    {
        //
        // GET: /Login/Index
     
        public ActionResult Index()
        {
                    return View();

        }//End Metod



        //
        // POST: /Login/
       [HttpPost]
        public ActionResult Login(string email,string password)
        {

                    //LOGİN olacak kodumuzu yazıyoruz

                    return RedirectToAction("Index","Home");/*üye girişi yapıldıktan sonraki sayfaya yönlendirme yapıyoruz.*/

        }//End Metod


}//End Class





Buraya kadar basit anlamda bir uygulama ifade etmiş olduk.Şimdi bakalım bu [TestAuthorize] kısmı için ne yapacağız.


Öncelikle AuthorizeAttribute nesnesinden türeyen "TestAuthorize" classımızı oluşturuyoruz.Ve 2 adet metodunu override ediyoruz.Bir tanesi kullanıcı oturum izni olmaz ise yönlendirme yapılacak metodumuz (HandleUnauthorizedRequest) diğeri ise bizim "[TestAuthorize]" kontrolümüzün yapıldığı bir metod çağrıldığında (AuthorizeCore) kullanılacak olan metodlarımız.



    public class TestAuthorize: AuthorizeAttribute
    {

         /*Eğer AuthorizeCore metodu false döndürülür ise bu metod tetikleniyor.Ve login sayfasına yönlendirme yapıyoruz.*/
        protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
        {
            base.HandleUnauthorizedRequest(filterContext);
            filterContext.Result = new RedirectResult("/Login/Index");
        }//end override method

         /*[TestAuthorize] kullanılan bir metod çağrıldığında önce bu metodumuz tetikleniyor ve oturum kontrolünü yapıp, üye girişi başarı ile yapıldı ise true, yapılamadı ise false döndürüyoruz.*/
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            if(HttpContext.Current.User.Identity.IsAuthenticated == true)
                   return true;
            else
                  return false;
        }//end override method

    }//End class



Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

1 Aralık 2015 Salı

Sql Database Schema ve Data Comparison İşlemleri


Genellikle bir yazılım ürettiğimizde sonrasında bu yazılımın geliştirmelerini yapar ve yayında olan projeyi, geliştirmiş olduğumuz yazılım versiyonu ile güncellemek isteriz.

Dosya tarafındaki güncellemeler de sıkıntı yok, dosyaları güncelledik ve yazılımımız artık güncel.Peki bu veri tabanı tarafında eklediğimiz, yeni tablolar, sütunlar, veriler, stored procedure, view, function lar neler olacak ?

Bu veri tabanı tarafındaki güncellemeler için de Visual Studio bize güzel bir araç sunuyor.Ve hiç farklı bir programa ihtiyaç duymadan yeni ve eski versiyon veri tabanımız arasındaki gerek şema gerek de veri tarafındaki farklılıkları script olarak alıp sadece aldığımız scriptleri çalıştırarak güncelleyebiliyoruz.

Bu kadar muhabbet yetsin artık şimdi bu işlemleri nasıl yapıyoruz ona bir bakalım.


Veri Tabanı Şema Güncelleme(table,function, view, stored procedure,...)

Öncelikle Visual Studio yu açıyoruz ve 'Tools' menüsünden "Sql Server" -> "New Schema Comparison" seçeneklerini seçerek Comparison(karşılaştırma) araçımıza ulaşıyoruz.

Ardından solda ve sağ da 2 adet "Select Source" yazan bölüme ulaşıyoruz.Bu alanlar kaynak ve hedef veri tabanlarımızı belirteceğimiz veri tabanlarımızı ifade ediyor.

Sol tarafa(Source) yeni veri tabanımızı, Sağ tarafa yeni eski tabanımızı "Select Source Schema" alanlarına tıkladıktan sonra  "New Connection" seçeneğini kullanarak seçiyoruz.

Ardından  sol üst kısımdaki "Compare" butonuna tıklayıp iki veri tabanı arasındaki farklılıkları görebiliyor, güncelleme script imiz için dahil etmek istediğimiz ve etmek istemediklerimizi checkbox ları işaretleyerek seçiyoruz.Bu işlem sonrasında "Update" butonu yanındaki kağıt simgesi gibi görünen üzerine geldiğimizde "Generate Script" tooltip i görünen butona tıklıyoruz ve işte bitti :)
Update script imiz hazır.

Sql Comparison Tool 



Karşılaştırmak için Veri Tabanı Seçimi




Veri Tabanı Veri Güncelleme (tablolarımızdaki veri farklılıklarını güncelleme işlemi)
Öncelikle Visual Studio yu açıyoruz ve 'Tools' menüsünden "Sql Server" -> "New Data Comparison" seçeneklerini seçerek Comparison(karşılaştırma) araçımıza ulaşıyoruz.

Ardından solda ve sağ da 2 adet "Select Source" yazan bölüme ulaşıyoruz.Bu alanlar kaynak ve hedef veri tabanlarımızı belirteceğimiz veri tabanlarımızı ifade ediyor.

Sol tarafa(Source) yeni veri tabanımızı, Sağ tarafa yeni eski tabanımızı "Select Source Schema" alanlarına tıkladıktan sonra  "New Connection" seçeneğini kullanarak seçiyoruz.

Ardından  sol üst kısımdaki "Compare" butonuna tıklayıp iki veri tabanı arasındaki farklılıkları görebiliyor, güncelleme script imiz için dahil etmek istediğimiz ve etmek istemediklerimizi checkbox ları işaretleyerek seçiyoruz.Bu işlem sonrasında "Update" butonu yanındaki kağıt simgesi gibi görünen üzerine geldiğimizde "Generate Script" tooltip i görünen butona tıklıyoruz ve işte bitti :)
Update script imiz hazır.







Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.