11 Haziran 2015 Perşembe

SimpleCV


SimpleCV bilgisayar görme uygulamaları oluşturmak için bir açık kaynak kodlu bir framework’ tür. SimpleCV ile bit derinliği, dosya formatları, renk uazyları, buffer bellek yönetimi, özdeğerler, veya matrise karşılık bitmap depolama öğrenmek zorunda kalmadan OpenCV gibi birçok yüksek-güçlü bilgisayar görme kütüphanelerine erişilebilir. Bu da bilgisayarlı görme uygulamalarında daha kolay işlem yapabilme anlamına gelmektedir. 

1 pcDuino Üzerinde SimpleCV
Burada pcDuino üzerine UVC özellikli bir web kamera bağlanarak, kart üzerinde SimpleCV kurulumu ve uygulanan bazı algoritmalar anlatılmıştır.

2 Lubuntu Üzerine SimpleCV Kurulumu
Lubuntu üzerinde SimpleCv kurulumu için Lubuntu’nun teminal ekranına aşağıdaki kodu yazıyoruz.
·         $sudo apt-get install ipython python-OpenCV python-scipy python-numpy
·         python-setuptools python-pip
·         $sudo pip install https://github.com/ingenuitas/SimpleCV/zipball/master
·         $sudo apt-get install python-pygame
·         $sudo apt-get install python-imaging
Komutları ile ilgili paketleri yükledikten sonra SimpleCV kurulumunu tamamlamış olacağız. Şekil .3’te Ara yüz kısmı gösterilmektedir.

Şekil 3. SimpleCV komut satırı

3 SimpleCV Örnekleri

3.1 - Sobel Kenar Belirleme Algoritması
def halfsies(left,right):
    result = left
    crop   = right.crop(right.width/2.0,0,right.width/2.0,right.height)
    result = result.blit(crop,(left.width/2,0))
    return result
img = Image('http://i.imgur.com/lfAeZ4n.png')
output = img.edges(t1=160)
result = halfsies(img,output)
result.show()


Şekil 1.  SimpleCV Sobel Kenar Belirleme Algoritması

3.2 – Görüntüyü İkili Görüntüye Çevirme Algoritması
Bu kısımda verilen bir görüntüyü pcDuino kartı üzerinde ikili yani siyah beyaza çevirme işlemi görülmektedir.
from SimpleCV import Image, Color, Display
def halfsies(left,right): 
result = left
crop   = right.crop(right.width/2.0,0,right.width/2.0,right.height)
result = result.blit(crop,(left.width/2,0))
return result
img = Image('http://i.imgur.com/lfAeZ4n.png')
output = img.binarize(90).invert()
result = halfsies(img,output)
result.show()
result.save('juniperbinary.png')
 

Şekil 1. Görüntüyü İkili Görüntüye Çevirme Algoritması

Java HashMap (Veri Saklama)

Merhaba arkadaşlar bu yazımda java HashMap hakkında biraz açıklama ve küçük bir uygulama anlatacağım. HashMap javanın  java.util kütüphanelerininde bulunan veri saklama amacıyla kullanılan bir dizi yapısıdır. HashMap te veriler anahtar ve değer mantığına göre saklanır ve çağırma işlemi de key değerine göre yapılır.


Kullanılan Metotlar:

containsKey(Object value): Belli bir anahtar daha önceden girilmiş mi sorgular.
size: O zaman kadar kayıt edilmiş anahtar - değer ikili sayısını verir.
containsValue (Object value): Belli bir obje daha önceden girilmiş mi sorgular.
get (Object key): Anahtara karşılık gelen objeyi döndürür.
put (Object key, Object value): Anahtar - değer ikilisini kayıt eder.
clear: Map içinde bulunan bütün değerleri siler.
remove (Object key): Belli bir anahtara karşılık gelen değeri siler.

Şimdi bir uygulama yapalım.
Uygulama isim ve key alıp ona göre çağırma işlemi yapacaktır. Ben key değerini Integer value değerini ise String olarak almak istersem yapacağım işlem aşağıdaki gibi olacaktır.

Map<Integer,String> DenemeHashMap = new HashMap<Integer, String>();
        DenemeHashMap.put(1, "Ammar");
        DenemeHashMap.put(2, "Aslan");
 System.out.println(DenemeHashMap.get(1));
Çıktı: Ammar

Uygulamanın Ekran Görüntüsü:

C# ile MSSQL For XML Kullanımı


1. Sql tarafı
USE [ammaraslantestsql]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Ammar>
-- Description: <Description,Deneme Amaçlı Oluşturulan bir spdir>
-- =============================================
CREATE PROCEDURE [dbo].[prSelectExample]
as
select TaskID, TaskName from Task FOR XML AUTO
GO

2.c# tarafı
public DataTable SPCalistirXML(string prAdi)
        {
            SqlConnection baglanti = new SqlConnection();
            baglanti.ConnectionString = ConfigurationManager.ConnectionStrings["baglan"].ToString();
            baglanti.Open();
            try
            {
                SqlDataAdapter veri = new SqlDataAdapter(prAdi, baglanti);
                DataTable  tablo = new DataTable ();
                veri.Fill(tablo);

                foreach (DataRow sira1 in tablo.Rows)
                {

                    String ammar = sira1["XML_F52E2B61-18A1-11d1-B105-00805F49916B"].ToString();
                    
                }
                return tablo;
            }
            catch
            {
                DataTable  tb = new DataTable ();
                tb = null;
                return tb;
            }
            finally
            {
                baglanti.Close();
            }

        }

10 Haziran 2015 Çarşamba

Java HashMap (Veri Saklama)

Merhaba arkadaşlar bu yazımda java HashMap hakkında biraz açıklama ve küçük bir uygulama anlatacağım. HashMap javanın  java.util kütüphanelerininde bulunan veri saklama amacıyla kullanılan bir dizi yapısıdır. HashMap te veriler anahtar ve değer mantığına göre saklanır ve çağırma işlemi de key değerine göre yapılır.

Kullanılan Metotlar:

containsKey(Object value): Belli bir anahtar daha önceden girilmiş mi sorgular.
size: O zaman kadar kayıt edilmiş anahtar - değer ikili sayısını verir.
containsValue (Object value): Belli bir obje daha önceden girilmiş mi sorgular.
get (Object key): Anahtara karşılık gelen objeyi döndürür.
put (Object key, Object value): Anahtar - değer ikilisini kayıt eder.
clear: Map içinde bulunan bütün değerleri siler.
remove (Object key): Belli bir anahtara karşılık gelen değeri siler.

Şimdi bir uygulama yapalım.
Uygulama isim ve key alıp ona göre çağırma işlemi yapacaktır. Ben key değerini Integer value değerini ise String olarak almak istersem yapacağım işlem aşağıdaki gibi olacaktır.

Map<Integer,String> DenemeHashMap = new HashMap<Integer, String>();
        DenemeHashMap.put(1, "Ammar");
        DenemeHashMap.put(2, "Aslan");
 System.out.println(DenemeHashMap.get(1));
Çıktı: Ammar

Uygulamanın Ekran Görüntüsü:



18 Şubat 2015 Çarşamba

SEO Nedir ?

Merhabalar arkadaşlar bugün sizlerle seo hakkında paylaşım yapacağım. Öncelikle nedir bu SEO diyerek başlıyabiliriz. Seo ingilizce olarak  Search Engine Optimization yani Arama Motoru Optimizasyonu kelimesinin baş harflerinden oluşur. Türkçemizde Arama Motoru Optimizasyonundan çok  Seo kelimesi yaygın kullanıldığı için bizde Seo kelimesini kullanacağız. Seo, Arama motorlarında sitelerin veya sayfaların üst sıralara çıkarılmasına yönelik yapılan çalışmaları kapsar. Bu amaç da, sitelerde yer alan bilgi, hizmet veya satışların daha fazla ilgili kitleye ulaştırılmasını sağlamaktır. Böylece siteye gelen ziyaretçi kitlesi artar ve site daha fazla kitleye hitap eder. Bunu şüphesiz ki herkes ister. Seo bir nevi organik yollarla popülarite sağlama sanatıdır ve biz bu sanat ile üst sıralara tırmanmak isteriz. Google bir sitenin popüler olmaya başladığını, ziyaretçi sayısının düzenli artışından ve site hakkında yapılan link ve bilgilendirme paylaşımlarından anlamaktadır. Bu paylaşımların kanalları ve sayısı arttıkça popülarite daha doğal ve sağlam bir yapıya kavuşmaktadır. Ve bu şekilde zamanla site Google da üst sıralara çıkar. Google bilgi almaktan hoşlanır . Aldığı bilgileri robotları sayesinde değerlendirip sitenin hakkını vermeye çalışır. Yani sayfaya ziyaretçi fazla geliyorsa, saygın siteler (PR değeri yüksek siteler ) sitenize yönlendirme yapıyorsa Google bunu göz önünde bulundurup sitenizi üst sıralara çıkarır.
Peki nasıl üst sıralara çıkarım ?
Üst sıralara çıkmak düşünüldüğü kadar basit bir şey değildir. Sitemizi üst sıralara çıkarmak için yapılan çalışmaları Google organik yani ziyaretçilerin önerisi olarak algılamalı.
Doğal popülarite anlayışı içerisinde, yapılan paylaşım ve tüm seo çalışmaları site sahibinin bilgisi dışında yapılan çalışmalar olarak görülmelidir. Bu sayede kullanıcıların siteyi faydalı bularak çeşitli paylaşımlarda bulunduğu izlenimi doğmaktadır.
Sitedeki bir makalenin forumlarda, sosyal medyalarda, imleme sitelerinde gibi seoya katkı sağlayan ortamlarda paylaşılması kullanıcı eliyle yapılıyormuş izlenimi taşımalı ve sitelerin kullanıcıya gerçekten hizmet eden faydalı siteler olduğu olgusu oluşturulmalıdır.
Doğallık algısının temelini oluşturan en önemli özellik çeşitliliktir. Tek elden yürütülen çalışmaların doğal görünmemesinin sebebi budur. Bu sebeple yapılan çalışmaların yapısı, zamanı, uygulama biçimi ve sayısı gibi kriterlerin çeşitlilik arz etmesi sitenin doğal ve kalıcı yükselmesini sağlamaktadır.
Seo ile Backlink Arasındaki İlişki
Backlink seo çalışmaları için önemli bir rol oynamaktadır. Seo sürecinde ki en faydalı yöntemlerden biridir. Linklerle yönlendirme yapmak için kullanılır. Örneğin başka bir sitede sizin site de sizin sitenizin linki bulunmakta , kullanıcılar da bu sayede o siteden direkt olarak sizin sitenize yönleniyorlar. Eğer bu fırsat değerlendirilip kalite bir içerik o kişiye sunulursa sitenize bir yeni aktif kullanıcı daha eklenmiş olacaktır. Backlink yöntemiyle bu mümkün.
Sadece backlink yaparak başarı sağlanması beklenemez. Site içeriğinin özgün ve kaliteli olması da çok önemlidir. Site içeriği başarısız ise kullanıcı tekrar siteye gelmeyecektir. Google’nin bu konuda hassasiyeti çok büyüktür. Özgün içeriğe sahip değilseniz google sitenizden tüm desteğinin çekecektir ve bu nedenle de google analytcs veya webmasters gibi yapılara kayıt dahi alınmayacaktır.
İnternet üzerinden ücretsiz olarak backlink yapan siteler mevcuttur. Backlink yönteminin uzun vadeli olması gerekmektedir ve sürekli geliştirme çalışmaları yapılmalıdır.Kısa süreli backlink hizmeti kullanacak olursanız ve bu takip etmezseniz backlink hizmetiniz bittiğinde siteniz ani düşüşler yaşayacaktır. Bu düşüşten sonra toparlanma süreci zor olacaktır. Yeniden backlink hizmeti sağlasanız bile tam olarak verim elde edemeyebilirsiniz.
Backlink yöntemi kullanılarak ve bilinirliğinizi artırabilirsiniz. Bunu yaparken kaliteli sitelerden backlink yapılması çok önemlidir. Verim almak için iyi bir referansa sahip olmak gerekiyor. Örneğin ; bir işe gireceksiniz bunun için firma sizden referans isteyecektir. Referansınız ne kadar iyi olursa sizde o kadar ön planda olursunuz. Backlink ile birlikte iyi bir referansa sahip olursanız sitenizde o ölçüde gelişecektir. Bunun için de iyi bir araştırma yapmak gerekiyor . Backlink yaparken aceleci davranmak yanlış olacaktır. Sağlam atılan adımlarla iyi bir referans bulunup o siteden backlink alınmalıdır. İyi bir referanstan kasıt ise özgün ve kaliteli bir içeriğe sahip , yüksek popülarite puanına sahip , google tarafından destekli ve ziyaretçi sayısı yüksek olan siteler sizin için iyi bir referans olacaktır.
Backlink yöntemin de pagerank puanı denilen bir kavram vardır. Backlink yaptığınız sitenin pagerank puanı ne kadar yüksekse sizin de pagerank puanınız o kadar yükselecektir. Mesela pagerank puanı 0 olan siteden 25 link alınacağına pagerank puanı 5 olan siteden 2 link almanız daha mantıklı olacaktır. Pagerank sorguları için bir çok araç vardır ( http://wmaraci.com/coklu-pagerank-sorgulama ) buralardan sitelerin pagerank değerlerine bakabilirsiniz.  Ayrıca şunuda belirtmek isterim pagerank değeri farklı olan sitelerden backlink almanız en mantıklı olanıdır .
Ücretsiz üye olup paylaşım yapabileceğiniz adresler aşağıda verilmiştir.

blogger.com
wordpress.com
tumblr.com                    PR8
delicious.com                PR8
reddit.com                     PR8
livejournal.com              PR8
friendfeed.com              PR8
diigo.com                      PR7
gityat.com                    PR3 ( Yeni Siteler için en ideal tercih )
yorumcudan.com        PR1 ( Yeni Siteler için en ideal tercih )


Backlink kontrolü için bir çok araç mevcuttur fakat benim tercihim ahrefs.com adresidir.

Oktay Altan'a bilgilendirmesinden dolayı teşekkür ederim.