Kategoriler
Genel

Çok güzel bir şey buldum, Google!

İlkokul yıllarında ödevlerimi yapmak için Ana Britannica kullanıyordum. Daha doğrusu ailem onu kullanıyor ve ben de okuyarak defterime geçiriyordum. Aynı dönemde okuduğum tüm arkadaşlarım da aynı akışı gerçekleştiriyordu tabii.

Sonra büyüdük, Google’ın varlığı ile birlikte artık ansiklopedi kullanmaya ihtiyaç duymuyor, Vikipediye giriş yapabildiğimiz zamanlarda bir “copy-paste” ile ödevimizi tamamlayıp ödev dışı etkinliklerimize daha çok zaman ayırabiliyorduk. Evet çoğumuzun ödevinde altı çizgili bir bağlantı ya da madde işaretçisi vardı tabii ama en azından Google’a arayacağımız metni, onunla bağlantılı olacak kelimeleri yazabilme zahmetine giriyorduk.

Üniversiteye geçtiğimde ve bunu takip eden iş hayatımda ise olayların rengi değişmiş, etrafımda Google’a birkaç kelime yazmaya üşenen ya da yazdığı kelimelerle arama sonucuna ulaşamayıp, “Aaa! Bulamadım” diyen insan sayısı artmaya başladı. Bu çevrenin büyük bir kısmının Bilgisayar Mühendisliği öğrencisi olduğu düşünülürse durumun vahameti daha da iyi anlaşılacaktır.

-Google’da aradım ama bulamadım.

-Hadi canım!

Sonuç olarak araştırdığınız şeyi aradığınız kelimelerle bulamıyorsanız, kelimeleri değiştirin.

Kategoriler
Genel

C# ve PHP | E-posta adresinin bir kısmını gizlemek

Şifremi unuttum sayfalarında genellikle e-posta ya da kullanıcı adınızı yazın şeklinde bir uyarı görürsünüz, bu alanlarda eğer kayıtlı kullanıcı varsa genelde mail adresinize şifreniz gönderildi gibi bir mesaj görürsünüz. Peki üyeniz kullanıcı adını yazdıysa ve e-posta adresini hatırlamıyorsa ne yapmanız gerekiyor?

Kullanıcı adı girildiğinde cevap olarak e-posta adresini döndürmek pek güvenli bir yöntem değildir, çünkü brute force ile kullanıcı adları denenerek sisteminize üye olan kişilerin e-posta adresleri ele geçirilebilir. Bazı e-posta sağlayıcılar şifremi unuttum kısmında ikincil mailinizi a*********o@gmail.com şeklinde gizleyerek sizin güvenliğinizi sağlamaktadır. İşte vereceğim regex ve örnek program kodları sizin bu gizlemeyi yapmanızı sağlayacak.

string regex = @"(?<=.).(?=.*.{1}@)";

Örnek programlar

C# ile E-posta Regex

using System.IO;
using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string regex = @"(?<=.).(?=.*.{1}@)";

        Console.WriteLine(Regex.Replace("johndoe@hotmail.com", regex, "*"));
        Console.WriteLine(Regex.Replace("lastsamurai@gmail.com", regex, "*"));
        Console.WriteLine(Regex.Replace("alperen@eposta.com", regex, "*"));
        Console.WriteLine(Regex.Replace("john@okul.edu.tr", regex, "*"));
        Console.WriteLine(Regex.Replace("joe@gmail.com", regex, "*"));
        Console.WriteLine(Regex.Replace("jn@gmail.com", regex, "*"));
    }
}

PHP ile E-posta Regex

   $regex = '/(?<=.).(?=.*.{1}@)/u';
   echo preg_replace($regex,'*','johndoe@hotmail.com');

*preg_replace -> PHP 4+ üzerinde çalışmaktadır.
Örnek çıktılar:

j*****e@hotmail.com
l*********i@gmail.com
a*****n@eposta.com
j**n@okul.edu.tr
j*e@gmail.com
jn@gmail.com

Regex yazımı ve fikir için Fikri Abi’ye teşekkürler 🙂

Kategoriler
Genel

Javascript İle Ekran Görüntüsü Almak

html2canvas tarayıcı üzerinden ekran görüntüsü almanızı sağlayan javascript kütüphanesi. Kütüphane tüm işlemleri istemci üzerinde yani tarayıcı üzerinde gerçekleştiriyor.

Kullanım

Kütüphanenin kullanımı oldukça basit, çağırdığımız fonksiyon element ve seçenekler şeklinde 2 değer alıyor. Element olarak hangi alanın ekran görüntüsünü almak istediğinizi geçebilirsiniz, seçenekler içinse şu sayfayı kontrol edebilirsiz.

html2canvas(element, options);

Örneğin önce tüm sayfanın ekran görüntüsünü alalım,

html2canvas(document.body, {});

Şimdi aldığımız bu ekran görüntüsünün yükseklik ve genişliğini ayarlayalım, (sol üstten kırpma işlemi gibi çalışır)

html2canvas(document.body, {
  width: 500,
  height: 500
});

Son olarak bu ekran görüntüsünü alarak sayfaya ekleyelim,
onrendered özelliğine geçeceğiniz fonksiyon ile, ekran görüntüsünden sonra ne işlem yapacağınızı belirtebilirsiniz.

html2canvas(document.body, {
  width: 500,
  height: 500,
  onrendered: function(canvas) {
    document.body.appendChild(canvas);
  }
});

Tarayıcı Desteği

  • Firefox 3.5 +
  • Google Chrome
  • Opera 12+
  • IE9 +
  • Safari6

Örnek Uygulama

Eklenti Sayfası : http://html2canvas.hertzen.com/

Kategoriler
Genel

HTML5 İle Telefon Titreştirmek

HTML5 Vibration API ile, tarayıcı üzerinden telefonu istediğiniz aralıklarda titretebilirsiniz. Bu yazımda size API hakkında biraz bilgi vereceğim.  HTML5 tabanlı oyunlar yazıyorsanız kullanıcı etkileşimini arttırabilirsiniz.

Kategoriler
Genel

Uzun bir süre sonra, Merhaba!

Merhaba,

Uzun süredir web sitem üzerinden içerik paylaşmıyordum. Bunu bir blog yazısıyla açıklamanın doğru olacağını düşündüm. Blogta olmadığım bu süre boyunca, staja girmiş olduğum firmada çalışmaya başladım. Stajın bugüne kadar front-end konusunda bana oldukça fazla bilgi kattığını ve uzaktan bakınca karışık gelen jQuery dünyasının ne kadar kolay olduğunu öğrettiğini düşünüyorum.

Front-End üzerinde çok durmak istemediğimden biraz daha Back-End’e yönelmeyi düşünüyorum. Bakalım maceramız nasıl olacak 🙂

Bu ufak konudan sonra neden blog yazısı yazmadığıma geleyim 🙂 Blog yazmamı engelleyen 2 olay vardı.

  •  Sitelerin yapısını değiştirecek olmam
  •  Linux öğrenmeye odaklanıp biraz yazı biriktirmem

Yeni Yapı

Siteme bir kaç yorum gelmeye başladığından aklımda olan bir fikri daha çok düşünmeye başladım. Alperenozlu.com sitesinde blog tutmayı bırakıp kişisel sayfa yapmayı düşündüm. Blog’u ise blog.alperenozlu.com veya ozlu.me adresinde tutmayı düşünüyordum. Şuan ikisi arasındayım hala :). Henüz karar veremedim.

Yeni adresle beraber, yeni tasarımda yapmaya karar verdim. Tasarım sırasında stajda öğrendiklerimi kullanmak istediğimden temayı biraz js ağırlıklı yapacaktım ama sonra buna gerek olmadığını düşündüm. Optimize ve sadeliğe odakladım. Açıkcası güzel bir tema ortaya çıktığını düşünüyorum :). Yedeklerim de  sorun çıktığı için tema uçtu gitti 🙁 . Yeniden daha düzgün bir şekilde kodlayacağım.  Şuanlık temada bir satır bile ( cidden 😀 ) js kullanmadım. Yorum kısmı için disqus ve normal yorum sistemi arasında gidip gelmekteyim. Spam olayına sağlam bir engel bulabilirsem tercihim normal yorum sistemi olacak.

Siteye “Labs” diye bir kategori / sayfa açmayı düşünüyorum. Yazdığım küçük uygulamaları burada paylaşacağım, şuanlık sadece css & js düşünmekteyim ama daha sonra php, c veya java gelebilir.
Okulda almış olduğumuz Lab derslerini ve ödevlerini github üzerinden paylaşıp bunları güzel bir şekilde sitede yayınlamayı düşünüyorum.

Linux Öğrenmek

Sitede yazdığım yazılar genellikle sorun ve çözüm odaklıydı. Mesela ubuntu fare imleci yanıp sönme  sorunu ile karşılaştığım için onunla ilgili yazıyordum. Lab dersinde çevremdekilerden de gördüğüm kadarıyla, insanların terminal kullanımına çok zor gözüyle bakmaları beni düşündürdü. Bu yüzden biraz daha basit seviyeden başlayarak, linuxun temelleriyle ilgili yazılar yazmayı düşündüm. Zaten linux’u bu kadar uzun kullandıktan sonra Windows’u silip, sadece linux kullandım uzun bir süre 🙂 Linux’u ben de temel bir seviyeden başladığım için, anlatmamın zor olacağını düşünmüyorum :).

Genel olarak yazmamın sebepleri bunlar, yeni yapı yeni yazılar yakında karşınızda olacak umarım beğenirsiniz.