Ana içeriğe atla

Kayıtlar

Android Dünyası - Faydalı Linkler

Android dünyasına yeni girdiyseniz ve öğrenmek için bloglar, videolar içerisinde kaybolduysanız bütün bu karmaşıklığın içerisinde dönüp dolaşıp aynı yere geleceğiniz bazı adresler var. Sizlerle bunların linklerini ve benim de yararlandığım bazı eğitim dökümanlarının adreslerini paylaşacağım. Google Play Developer Console :  Bir defaya özgü 25 usd ödeyerek uygulamalarımızı google play store göndereceğimiz ve takibini yapacağımız adres.  Google Developers :  Birazcık ingilizceniz varsa, internette eğitim dökümanı vs. aramanıza kesinlikle gerek yok. Açıyorsunuz Android Studio veya Eclipse'inizi gördüğünüz her element hakkında herşeyi buradan en temiz ve güvenilir hali ile öğrenebilirsiniz.  AdMob  : Hayatta herşey para olmasa da hayatımızı devam ettirmek için paraya her daim ihtiyacımız var. Mobil uygulamamıza reklam eklemek için kullanabileceğimiz bir hizmet. Adsense'in mobil versiyonu ve adsense hesabı ile bağlayabiliyoruz.  GitHub :  Android...

Android Yazılım Dünyasına Giriş

Uzun bir aradan sonra tekrar merhaba. Bu yazımda android yazılım dünyasına giriş yapacağız. Android dünyasında temel olarak 2 farklı geliştirme yöntemi var: 1- Native(java) : Bu yapıda android uygulama geliştirebilmek için belirli bir seviyenin üzerinde java ve xml bilgisi gerekiyor. Sonrası teferruat :) Teferruat içerisinde yapmamız gereken ilk şey programlarımımızı geliştirebilmek için ide kurulumunu yapmak. 2 farklı ide seçeneğimiz var; birincisi eclipse, ikincisi ise android studio. Her yiğidin yoğurt yiyişi farklı olduğu için şu iyi demek yanlış olur tabi ama google'ın kendi ürünü olduğu için android studio'nun birçok avantajı ve kolaylığı var. İnternet üzerinde eğitimlerin çoğu da android studio üzerine gibi. IDE kurulumundan önce  JDK  linkine tıklayarak uygun java versiyonunu kurmak gerekiyor. Sonrasında da Android Studio linkine tıklayarak kurulum dosyasını indirelim. Ortam kurulumu ile ilgili benim de destek aldığım videoları izleyebilirsiniz. Kurulum işi böyle...

Using diğer bir deyişle Try-Finally

Bu yazımızda using ifadesi nedir, ne değildir, ne yapar onu inceleyeceğim... Yine daha önce olduğu gibi basit bir kod yazarak konunun daha anlaşılabilir olmasını istiyorum. using System.Data; namespace Using_TryFinally { class Deneme { static void Main() { using (DataTable dt = new DataTable()) { } } } } şeklinde hiçbir şey yapmayan bir kodumuz olsun. Bu kodu Visual Studio (VS) ile konsol uygulaması olarak derlediğiniz zaman ortaya çıkan exe'nin kodunu .NET Framework IL Disassembler (IL DASM) açıyoruz. Bu şekilde aslında arka planda neler oluyor, kodumuz ne hale geliyor onu görmüş oluyoruz. Şimdi VS'nin bizim kodumuzu dönüştürdüğü kodu bir inceleyelim: .method private hidebysig static void Main() cil managed { .entrypoint // Code size 29 (0x1d) .maxstack 2 .locals init ([0] class [System.Data]System.Data.DataTable dt, [1] bool CS$4$0000) IL_0000: nop ...

Windows Server 2008 Cluster With Virtual PC

Merhaba, bu yazıma başlamadan önce dün benimle birlikte yazmaya başlayan iş arkadaşım,can dostum güzel insan Ogün'e hoşgeldin demek istiyorum.Aslında bu yazıyı aceleye getirip şuan yazmamın da sebebi bu :) Bu yüzden fazla ayrıntıya girmeyeceğin zaten bu konuyla ilgili birçok güzel kaynak internette bulunmakta.Bunlardan bir kaçının linkini vereyim belki bu yazıyı okumayı çok istemiyorsunuzdur :) ÇözümPark'tan Alper Özdemir'in yazısı ve yine ÇözümPark'tan Serhat Akıncı'nın yazıları: http://www.cozumpark.com/blogs/windows_server/archive/2010/01/17/windows-server-2008-cluster-mimarisi.aspx http://www.serhatakinci.com/index.php/tag/windows-server-2008-cluster Gelelim benim bu konuda söylemek istediklerime.Bu işlerde aşırı çaylak bir eleman olarak takıldığım birçok konu oldu kurulum sırasında yada her zaman olduğu gibi ince ayrıntılar.Mesela ben sanal makinalarla 2 node'lu bir cluster yapısı kurmayı amaçlıyordum böyle örneklere vardı fakat windows 7 üzerinde...

String.Empty ve "" karşılaştırması

benim için beklenmedik bir şekilde performans açısından kazanan string .empty! bugün aşağıdaki örnekteki str1 ve str2 değişkenlerinin durumunu ve bir farkı olup olmadığını inceleyeceğiz. class StringDeneme { static void Main() { string str1 = string.Empty; string str2 = ""; } } yukarıdaki kodu console projesinde derleyip oluşan .exe'mizi ildasm ile incelediğimizde şu kodu görüyoruz: .method private hidebysig static void Main() cil managed { .entrypoint // Code size 14 (0xe) .maxstack 1 .locals init ([0] string str1, [1] string str2) IL_0000: nop IL_0001: ldsfld string [mscorlib]System.String::Empty IL_0006: stloc.0 IL_0007: ldstr "" IL_000c: stloc.1 IL_000d: ret } // end of method Program::Main str1 değişkenimize string [mscorlib]System.String::Empty değeri atanmış (ldsfld) yöntemiyle. str2 değişkenimize "" değeri atanmış (ldstr) yöntemiyle. msdn'nden ldsfld'nin açıklamasına...

TC Kimlik No Algoritması

Oluşabilecek tüm kimlik numaralarını hesaplayan algoritmayı aşağıda bulabilirsiniz. Bu sayede tam hatırlayamadığınız bir kimlik numarasını bulabilirsiniz mesela. Ben bu yüzden kullanmıştım bu algoritmayı. for (int a1 = 1; a1 for (int a2 = 0; a2 for (int a3 = 0; a3 for (int a4 = 0; a4 for (int a5 = 0; a5 for (int a6 = 0; a6 for (int a7 = 0; a7 for (int a8 = 0; a8 for (int a9 = 0; a9 { int tekBasamaklar = a1 + a3 + a5 + a7 + a9; int ciftBasamaklar = a2 + a4 + a6 + a8; int t1 = (tekBasamaklar * 3) + ciftBasamaklar; int c1= (10 - (t1 % 10)) % 10; int t2 = c1 + ciftBasamaklar; int t3 = (t2 * 3) + tekBasamaklar; int c2 = (10 - (t3 % 10)) % 10; string tc = String.Format("{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}", a1, a2, a3, a4, a5, a6, a7, a8, a9, c1, c2); Console.WriteLine(tc); } ya da bu algoritmayla biraz daha oynayıp şu şekilde işler yapabilirsiniz: /// Girilen 9 basamaklı sayının son iki basamağını bulup TC Kimlik No oluşturur string tc = Console....

OpenSSL

Öncelikle OpenSSL hakkında genel bir bilgi vermek gerekir. OpenSSL ile ilgili genel ve güzel bir yazı var onu paylaşıp daha sonra windows sistemi altında OpenSSL sertifikası nasıl üretilir ve diğer aşamalarını yazacağım. OpenSSL nedir? OpenSSL projesi güvenliği geliştirmek için çaba harcayan ticari, geniş özellikli ve açık kaynak kodlu, Güvenli Soket Katmanı (SSL v2/v3), İletim Seviyesi güvenliği (TLS v1) protokollerini uygulayan, çok güçlü genel amaçlı bir şifreleme kütüphanesidir. Bu proje bütün dünyada iletişim, plan ve OpenSSL araçlarını geliştirmek için interneti kullanan gönüllüler topluluğu tarafından yönetilir. Bilindiği üzere SSL sertifikaları global firmalar tarafından oldukça yüklü rakamlara (Ücretlere) üretiliyorlar. Aslinda bu sertifikaları kendimiz üretmek mümkün, bunun için kendiniz sertifika sunucusu kurabilir ve işletebilirsiniz. OpenSSL organizasyonu burada devreye giriyor, ve bir kaç küçük program ile kendi sertifikalarınızı üretmenize olanak veriyor. Neden o z...

Kerberos

Kerberos Nedir? Athena Projesinin bir parçası olarak MIT'de geliştirilen kimlik denetim sistemidir.Adını Yunan mitolojisindeki Yeraltı’nı koruyan üç başlı köpekten alır. Bu üç başlı köpeği şunlar temsil eder; istemci, servis sağlayıcılar ve kimlik doğrulama merkezi.   Kerberos güvensiz bir ağda güvenli hostlar için kullanılan bir kimlik doğrulama protokolüdür.Simetrik şifrelemeyi kullanılır. Peki Kerberos'un Amacı Nedir? Kerberos genel olarak şu amaçları gerçekleştirmeyi hedefler. Kullanıcının şifresi ağ üzerinde asla iletilmemeli Kullanıcının şifresi kullanıcı tarafında asla kaydedilmemelidir, kullandıktan sonra atılmadır. Kullanıcının şifresi, şifrelenmeden asla veritabanında tutulmamalıdır Kullanıcı her oturum için yalnız bir kere şifre girişi yapar. Yani şifre bir kere onaylandıktan sonra oturum sonuna kadar geçerli olacaktır (Single Sign-On) Kimlik doğrulama bilgileri kimlik doğrulama sunucusu üzerinde bulunur. Uygulama sunucusu kimlik doğrulama bilgiler...

MATLAB ile Voice/Unvoice

Bir arkadaşa yardım için basitçe hazırladığım matlab programı. Wav uzantılı sesi alarak 2 tür işlemden geçiriyor ve Ses'te konuşma olup olmadığını tespit ediyor.Bu 2 yöntem Zero Crossing Rate ve Short-Time Energy. Bu konularla ilgili internette pek çok kaynak bulunmakta. Matlab ile amatörce geliştirdiğim kod ise şöyle: % İlk Giriş Wav Dosyasının Alınması fn=input('\nWav dosyası ismi girin : ','s'); [x,Fs]=wavread(fn);   % wav dosyası okunuyor                          % x:giriş    fs:frekans x=x.'; fprintf('Frekans : %g\n',Fs); %---------------------------------------------------------------- % Zero Crossing Rate - Sınır Kesit Oranı M = length(x) - 1;               x1 = x(1:end-1); x2 = x(2:end); xp = x1 .* x2; I = (xp < 0); zc = sum(I) / M; fprintf('Zero Crossing Rate : %g\n',zc); if(zc>0.07)     fprintf('ZCR ye göre İnsan Sesi Var(Voice)\n'); else ...

C# ile Yüz Bulma ve Tanıma

Aylardır uğraştığım yüz tanıma sistemi tezimi nihayet bitirdim.Lafı uzatmadan hemen yaptığım uygulamadan bahsedeyim. Öncelikle yaptığım yüz tanıma sistemini gerçekleştirmek için donanımsal ve yazılımsal olarak en düşük sistem gereksinimleri şunlar.  —Donanımsal Gereklilikler İşlemci:        Pentium III veya üstü Bellek:         128 MB Hard Disk:   4GB veya üstü Monitör:       14”SVGA          —Yazılımsal Gereklilikler İşletim Sistemi:                             Microsoft Windows NT/2000 veya üstü Paket:                           ...

Metinler İşaret Diline Dönüşüyor

GANAS Projesi kapsamında metinleri anında işaret diline dönüştüren bir görsel çevirmen geliştiriliyor. Proje, işitme engellilerin halka açık olan yerlerde paylaşılan bilgileri anlayarak hayatlarını kolaylaştımak üzere tasarlandı. Proje ile hava alanları, okullar, sinemalar, televizyon ve internet sitelerinde çeviri servisleri sağlanmaya başlanabilecek.  NDRA,  Castilla-La Mancha Üniversitesi ve Adecco Vakfı  ile ortaklaşa yürüttüğü  GANAS Projesi  (İşaret Dili için Otomatik Animasyon Üretimi Projesi) kapsamında işitme engelliler için metinleri işaret diline dönüştüren bir çevirmen geliştiriyor. Proje ile işitme engellilerin sosyal yaşama dahil olması ve çevrelerindeki bilgilere erişebilmeleri hedefleniyor. Sonuç  olarak  metinler bir bilgisayar yardımı ile üç boyutlu karakterler kullanılarak işaret diline dönüştürülüyor. Proje 3 modülden oluşuyor. Gerçek çevirmenin videosu yol gösterici olarak kabul edildiğinde, düzenleme modülü üç boyutlu karakt...

DNSSEC

İlk uyarı için birkaç gün geç kaldım fakat haberin içeriği önemli paylaşmak istedim... 5 Mayıs'ta internet bağlantınızla ilgili büyük problemler yaşaya bilirsiniz.. Bütün internet kullanıcılarını etkilemesi beklenen  DNSSEC  sisteminin ilk aşamasına 5 Mayıs'ta ICAN, ABD Hükümeti ve Verisgn  yönetiminde geçilecek. İnternet kullanıcıların güvenli sitelere kavuşturmayı amaçlayan bu proje kapsamında Çarşamba günü Dünya genelinde internet ulaşımında çeşitli sorunlar yaşanabilir. İşte ayrıntılar... Domain Name System Security Extensions yani DNSSEC ; birçok internet kullanıcısının yakından ilğilendiği Domain Name System  (DNS)  ve Internet Protocol  (IP)  sistemleri tarafından sunulan bilgilerin daha güvenli hale getirilmesini amaçlayan ve bu yönde yenilenen sistem için kullanılan bir terim. DNSSEC'i biraz daha açarsak ne demek istediğimiz  çok  daha net anlaşılacaktır. Bu yeni sistemle DNSSEC tüm DNS sunucularından gelen yanıtlara dijital ...

Yüz Tanıma Sistemi - 6

C# Kameradan Görüntü Alma Kameradan görüntüyü almak için "webcam_capture" kütüphanesini kullanıyoruz.Referanslardan dll'i ekledikten sonra. Önce forum kısmına bir picturebox ve bir buton ekleyelim.Daha sonra "Kamera" adında bir sınıf oluşturuyoruz.Bu sınıf kod içeriği şöyle ; using System.Data; class Kamera {  private WebCamCapture kameraa;  private Anaform p;  PictureBox ilkresim; public void Kamera_Etkin(Anaform form, int W, int H, PictureBox ilkres) {   p = form;  ilkresim = ilkres;  kameraa = new WebCamCapture();  kameraa.CaptureHeight = H;  kameraa.CaptureWidth = W;  kameraa.TimeToCapture_milliseconds = 1;  kameraa.ImageCaptured += new WebCamCapture.WebCamEventHandler(kamera_resim); } public void Start() {   kameraa.Start(0); } public void kamera_resim(object source, WebcamEventArgs e) {   ilkresim.Image = e.WebCamImage; } } Kamera sınıfımızı oluşturduk şimdi anaform'da bir kamera nesnesi tanımlıyoruz ; using S...

Yüz Tanıma Sistemi - 5

Sayısal Resim Sayısal resim bir matrise benzetilebilir. Resmin en küçük elemanına piksel adı verilir. Alttaki resimde görüldüğü gibi M x N boyutunda matris olarak düşünürsek her bir pikselin değeri bir dizinin i ve j' inci terimi olarak ifade edilebilir. En basit durumda pikseller 0 veya 1 değerini alırlar. Bu piksellerden oluşan resimlere binary (ikili) resim denir. Monokrom, yani tek renkli resimlerde ise her eleman 0 ile 255 arasında değerler alır. Böylece her pikselin parlaklık değerinin farklı olması ile gri tonda bir resim elde edilir. En parlak nokta 255 beyaz, en karanlık nokta 0 siyah bunların arasındakiler ise gri renk değerlerini alırlar. Renkli resimler ise üç ana rengin karışımı ile oluşurlar. Bunlar kırmızı (Red) ,yeşil (Green) ve mavidir (Blue). Renkli resimler hakkında daha ayrıntılı bilgileri  www.goruntuisleme.org  adresinde diğer makalelerde bulabilirsiniz.. Kaynak :   http://www.goruntuisleme.org/

Yüz Tanıma Sistemi - 4

Kullanılan Kütüphaneler Yüz tanıma sistemi geliştirirken kullanabileceğimiz birçok kütüphane var. Genel olarak en yaygını OpenCV kütüphanesi. OpenCV hem açık kaynak olması hem de performans olarak da iyi olduğundan biraz daha önde. Ayrıca Aforge,EmguCv,SharperCV,OpenCVDotNet gibi seçenekler mevcut. OpenCV ana sayfası : http://opencv.willowgarage.com/wiki/ OpenCV kütüphanesini indirmek için (2.0 Sürümü)  : http://sourceforge.net/projects/opencvlibrary/ Ayrıca OpenCV konusunda BlueKid hocamızın sitesinden çok ayrıntılı bilgi edinebilir ve birçok örnek bulabilirsiniz.( http://derindelimavi.blogspot.com/ ) OpenCvSharp C# ile kullanımı gayet kolay olan ve başarımı yüksek bir diğer kütüphane. Başlangıç olarak kamera görüntüsünde yüz bulma işleminde ben Aforge framework'unu kullandım.Aforge framework'u de gayet kullanışlı ve birçok kütüphaneye sahip. Daha çok bilgi almak ve indirmek için sitesine bir göz atabilirsiniz : http://code.google.com/p/aforge/  ...

Java Dilinde Küçük Bir Alıştırma

Yüz tanıma sistemine kısa bir ara.Bu aralar yeni yeni uğraşmaya başladığım java dilinde küçük bir örnek program. Örneğimiz şöyle ; 1'den 100'e kadar sayıları ekrana yazacak bir program yazıyorsunuz. Fakat 3'ün katları için "Noqo", 5'in katları için "Nisqo" ve 3'e ve 5'e tam bölünen sayılar için de "NoqoNisqo" yazacaksınız. Örnek ekran çıktısı: 1 2 Noqo 4 Nisqo Noqo 7 8 Noqo Nisqo 11 Noqo 13 14 NoqoNisqo 16 …….. 98 Noqo Nisqo Kodlarımız da şöyle ;   public class NoqoNisqo {     public static void main(String args[]) {         for (int i = 1; i <= 100; i++)         {          if(i%15==0) System.out.print("NoqoNisqo\n");          else          if(i%3==0) System.out.print("Noqo\n");          else          if(i%5==0) System.out.print("Nisqo\n"); ...

Yüz Tanıma Sistemi - 3

Yüz Bulma ( Face Detection) Yüz tanımaya geçmeden önce en önemli husus bir kamera görüntüsünde yada resim içinde yüz kısmının ayrıştırılması gerekmektedir. İnsan yüzü kendine özgü rengi ile renk uzayında belli bir aralıkta temsil edilebilmektedir. Bu durum imgeler üzerinde de sadece ışıktan kaynaklanan bir yoğunluk değişimi göstermektedir. Ayrıca, insan teni ayırt edilebilir bir dokusal doygunluğa sahiptir. Yüz bulma işlemi, öncelikle renk tonu ve doygunluk değerlerinden faydalanılarak ten süzgeci gerçeklenmesi ile başlamaktadır. Özgün imgeden elde edilen değerler bu konuda yetersiz kalmasına karşın negatif imgeden de elde edilen renk tonu ve doygunluk değerleri ile daha kararlı bir süzgeç yapısı oluşturmak gerekir .  0 ≤ H ≤ 0.942 , 0.1 ≤ S ≤ 0.69 , 0.25 ≤ Sn Sn : Negatif imgeye ait doygunluk değeri Ten süzgeci sonucunda elde edilen siyah-beyaz imge üzerinde iyileştirme amaçlı olarak önce morfolojik işlemler, daha sonra da bağlantısallığa b...

Yüz Tanıma Sistemi - 2

PCA Algoritması ve Özyüzler Metodu PCA algoritması ve Özyüzler metodunun kısaca bir tarihçesine bakalım; Öz yüzler yaklaşımı ilk olarak Sirovich ve Kirby (Eigenfaces, Principal Component Analysis, PCA, 1987) tarafından kullanılarak yüzü etkin bir şekilde göstermek için uygulanmıştır. Temel bileşen analizi olarak da bilinen Karhunen-Louve genişlemesine dayanmaktadır. Bu, bilgi teorisinde veriyi kodlama ve kodunu çözmede iyi bilinen bir tekniktir. Bu kişiler yüz resimleri gruplarından başlayarak bu resimlerin temel bileşenlerini hesaplamışlardır. Daha sonra da öz vektörün sadece küçük parçalarının ağırlıklı birleşimini kullanılarak yüz resmini yeniden oluşturmuşlardır. (Kirby ve Sirovich, 1990) bu metotlarını 115 yüz resmi veri tabanında test ettiler ve yaklaşık olarak %3 yanılma (hata) payıyla bir yüzü yeniden oluşturmak için sadece 40 öz vektörün yeterli olduğunu göstermişlerdir. Bundan kısa bir süre sonra yüzün simetrisini dikkate alarak (örneğin bütün yüzlerde gözler, burun v.s....

Yüz Tanıma Sistemi - 1

Türkçe kaynağın bulunmasının oldukça zor olduğu bir konu. Bitirme tezi konum olduğu için bu konuda araştırmalarımı sürdürmekteyim. Elimden geldiğince çalışmalarımı ve araştırma sonuçlarını burada paylaşacağım. Yüz tanıma sistemine geçmeden önce temel olması açısından biyometriyi açıklamak gerekir.Aslında Ahmet Kakıcı bu konuyu çok iyi açıklamış ve başlangıç olarak bana rehber olan bir yazı yazmış. Peki yüz tanıma sistemi nedir?  Yüz tanıma sistemi, yüzün karakteristik özelliklerini analiz ederek, farklı noktalar ve bölgeler arası biyometrik ölçümler yaparak veritabanı ile karşılaştırma yapar ve kişiyi tanımlar. Yüzün bu karakteristik özelliklerine düğüm noktaları da denir. Bu düğüm noktalarından bazıları şöyledir; Burunun genişliği, Göz çukurunun derinliği, Elmacık kemiğinin şekli, Çene kemiğinin uzunluğu Bu düğüm noktaları rakamsal bir değerle kodlanır ve bu kodlara faceprint adı denir. Tabiki bu sadece genel bir probleme bakış. Bu problemin birçok çözüm yolu var ve çı...

Java Programında String Tersi Alan Program

İşine yarayan olursa uğraşmasın diye paylaşmak istedim. import java.io.*; public class StringTersi {        public static void main(String args[]) throws IOException {                String[] Gecici;         String cumle;         char karar='e';         BufferedReader klavye = new BufferedReader                                 (new InputStreamReader(System.in));         do{             System.out.print("Lütfen bir cumle giriniz : ");             cumle = klavye.readLine().toString();                           Gecici=cumle.split("");              fo...