Kas 2010
1.

     Bir "Wii Remote" ve bir "kızıl ötesi led" ile neler yapabilirsiniz?

     Bu soruya en iyi cevabı araştımacı "Johnny Lee" veriyor. Bir youtube fenomenine dönen Johnny Lee, 40$ lık bir Wii Remote ve 5$ lık bir kızıl ötesi kalem ile interaktif beyaz tahta, dokunmatik ekran, multi touch sistemler, parmak takip sistemi (Minority Report'daki gibi), başa takılan 3d görüntüleyicisi ve bir çok ucuz teknolojinin gerçekleştirilebileceğini gösteriyor.

    Küçük fırsatlar ile teknolojiyi toplumun büyük bir kısmına ulaştırma felsefesi ile yola çıkan Lee, Wii Remote'un kızıl ötesi kamerasını ve bir kızıl ötesi kalem kullanarak en fazla 50$ maliyet ile bir çok yaratıcı fikrin gerçekleştirilebileceğini ve normalde 4-5 bin dolara mal olan ürünleri evde kendi başınıza yapabileceğinizi gösteriyor. Daha önceki vakitlerde de bir çok sosyal projeye imza atmış ve bir çok "kendin yap (DIY)" ürünü geliştirmiş olan araştırmacı, yaptığı çalışmaları youtubeda yayınlayarak ve kendi yazdığı yazılımı sitesinde ücretsiz olarak dağıtarak bu projenin bir çok kişiye ulaşmasını sağlamıştır. TED TALKS da konuşan Lee'yi bir de kendi ağzında dinleyelim (Orjinal Video)

      Lee'nin sisteminde Wii Remote kızıl ötesi ışıklara duyarlı bir kamera, kızıl ötesi kalem de işaretci rolünü üstleniyor. Wii Remote'daki kamera, işaretcinin (x,y) kondinatlarını ve kameraya olan uzaklığını tespit ederek kendi yazdığı yazılıma aktarmaktadır. Wii Remote bilgisayar ile iletişimi basit bir bluetooth aracılığıyla yapıyor. Kızıl ötesi kalem ise bir adet kızıl ötesi led, tetikleyici düğme, pil ve basit bir kalemden meydana geliyor. Kalemin üzerindeki düğme yardımıyla kızılötesi ledi açıp kapatabiliyorsunuz. Wii Remote kalemi gördüğü müddetçe kalemi bir mouse gibi rahatlıkla kullanabiliyorsunuz.

Bu sistemi kullanan bir kaç uygulama ;

    Lee'nin diğer çalışmalarından da görüldüğü gibi yapılabilenler bunlarla sınırlı değil. Kalem yerine bir gözlüğün yan taraflarına monte edilmiş iki kızıl ötesi ışık ile baş konumu tespit edilebilir, etkileşimli oyunlar, filmler hatta fotoğraf sergileri yapılabilir. Konuşmada da değinildiği gibi bu konsepte uygun oyunlar da geliştirilmeye başlanmış. İnternette biraz araştırmayla yapılmış birkaç ciddi proje bulabilirsiniz.

    Daha önce burada anlattığıma benzer dokunmasız etkileşim sistemleri de oluşturmak mümkün. İşaretci olarak kalem yerine parmaklara takılan kızıl ötesi yansıtıcılar ile parmak takibi yapılabilir. Biraz görsellik ve daha fazla programlama ile Minority Report filimdekine benzer sistemler geliştirilebilir.

    Lee'nin amacına uygun olarak, pahalı ve karmaşık sistemlerin yerine ucuz ve pratik yöntemler kullanarak ne kadar teknoloji üretilebilir? Örneğin el konumunu tespit eden karmaşık algoritmalar yerine bu basit sistem kullanılsa aynı ihtiyaç ne kadar karşılanabilirdi? Bence bu çalışmanın en güzle yanı, sadece akademik çerçevedeki kimselerin yapıp yararlanabildiği çalışmaların yanında, basit ve kolay kurulabilir sistemler yaparak bu şekilde başarıya ulaşması,hata Lee'nin de dediği gibi ticari bir ürüne dönüşmesidir.

1711 Yorum
Eyl 2009
4.

gi Daha önce burada ve burada anlatılan c# ile görüntü işlemeyi ufak bir uygulama üzerinde anlatmak istedim. Daha önce kod yapısından ve bazı temel işlemlerden bahsetmiştim. Şimdi bu işlemleri uygulayabilmek için basitçe; yeni resmin alınabildiği, seçilen işlemin uygulanıp yeni resmin kaydedilebildiği, bir adımlık geri alma özeliğininb bulunduğu ufak bir çalışma görüntü işlemeye giriş açısından yararlı olur diye düşündüm. Yapılan uygulamanın arayüzü ;

Proje içerisinde de kod bloklarına bazı açıklamalar eklediğim uygulamayı buradan (Görüntü İşler.rar (43,74 kb) indirebilirsiniz.

Uygulamadan bahsedersek, resim al düğmesi ile resim seçildikten sonra combobox tan bir işlem seçip işle düğmesine basarak yeni resim elde edilir ve resim kutusuna yansıtılır. Kodları açıklarsak ;

        private void button2_Click(object sender, EventArgs e)
        {
            if (Resim != null)
            {
                tut = yeniResim;
                switch (comboBox1.SelectedIndex)
                {
                    case 0:
                        {
                            if (checkBox1.Checked)
                            {
                                İşlem.siyafbeyaz(yeniResim);
                            }
                            else
                            {
                                yeniResim = İşlem.siyafbeyaz((Bitmap)Resim.Clone());                               
                            }
                           
                            break;
                        }
                    case 1:
                        {
                            if (checkBox1.Checked)
                            {
                                İşlem.tersi(yeniResim);
                            }
                            else
                            {
                                yeniResim = İşlem.tersi((Bitmap)Resim.Clone());
                            }
                            break;
                        }
                }

                pictureBox2.Image = yeniResim;
            }
        }

     Yukarıda kod bloğunda, ilk olarak bir resim seçilmişmi kontrol edilir. Daha sonra, geri alma fonksiyonu ile işlenecek resim tutulur. switch-case yapısı ile seçilen işlem kontrol edilip, işlemin asıl resimemi yoksa işlenmiş resimemi uygulanacağı kontrol edilir. "İşlem.siyafbeyaz(yeniResim);" şeklinde bir kullanım ile parametre olarak gönderilen resimim asılı değiştirilir.  Eğer asıl resimde değişiklik yapmak istemezsek, "İşlem.siyafbeyaz((Bitmap)Resim.Clone());" şeklinde resimin kopyasını göndermeliyiz.

     Uygulanacak işlemlerin kodları "İşlem.cs" isimli bir sınıfta tutuluyor. Bu sınıf içindeki kodların yapısını daha önce anlatmıştım. Bu uygulamada şimdilik 'siyah-beyaz' ve 'tersi' işlemleri var.

     Giriş niteliği taşıdığından uygulamayı basit tutmaya çalıştım. Eğer takıldığınız veya daha fazla açıklanmasını istediğiniz noktalar olursa yorumlarınızı beklerim.

(Sıradaki konu : "C# ile video işleme")
3 Yorum
Tem 2009
15.

      2005 yılında, Karadeniz Teknik Üniversitesi İstatistik ve Bilgisayar Bilimlerinde başlamış olduğum üniversite eğitimi tamamlamış bulunmaktayım. Bilgisayar mühendisliğini kazanamayıp alternatif olarak seçtiğim ve 6. tercih ile geldiğim bölümümün, geçen seneler ile bilgisayar mühendisliğine alternatif değil, onun yerine seçilebilecek bir bölüm olduğunu gördüm. Bölümün vizyonu, hem istatistik bilimini hemde bilgisayar bilimlerini öğretip, bunların ne kadar alakalı olduğunu ve ikisini beraberce kullanabilmeyi öğretmektedir.

      Ülkemizde örgün eğitim olarak sadece Karedeniz Teknik Üniveresitesi' nde olan İstatistik ve Bilgisayar Bilimleri (İSBB), Başkent Üniversitesi ve Kadir Has Üniversitesi'nde de mevcuttur. Sadece İstatistik ve sadece Bilgisayar Bilimleri şeklinde bölümler birçok üniversitelerde mevcuttur. Yalnız İSBB'nin amacı bunlara göre biraz daha farklıdır. Yurt dışında bir çok üniversitede bulunan İSBB'nin (Statistics and Computer Science) amacı, istatistik bilimlerinde bilgisayarın kullanımının ve bilgisayar bilimlerinde de istatistiğin kullanımının öğretilmesidir. Bu iki bilim dalının ilişkisine değinmeden önce ayrı ayrı bu bilimleri anlatayım. 

     İstatistik, belirli bir amaç için veri toplama, tablo ve grafiklerle özetleme, sonuçları yorumlama, örneklerden elde edilen sonuçları kitle için genelleme, özellikler arasındaki ilişkiyi araştırma, çeşitli konularda geleceğe ilişkin tahmin yapma, deney düzenleme ve gözlem ilkelerini kapsayan bir bilimdir. Aynı zamanda iş dünyası ve hükûmetle ilişkili tüm alanlarda karar almak amacıyla kullanılır [Vikipedi]. İstatistik ile hayatımız bir çok yerinde karşılaşmaktayız. Hava durumları, spor oyunları, borsa, ülke yönetimi, şirket yönetimi gibi alanların yanında hemen hemen tüm bilim dalları istatistikten yararlanmaktadır. İstatistik ile normal olarak görülemeyen ve açıklanamayan bir çok şey görülebilmekte ve açıklanabilmektedir.

    KTÜ - İSBB de verilen bazı istatistik dersleri;İstatistiğe Giriş, Olasılığa Giriş, Matematiksel İstatistik, İst.Hesaplama ve Veri Analizi, Optimizasyon, Örnekleme ve Anket Düzenleme, Stokastik Süreçler, Regresyon Analizi, Yöneylem Araştırması, Çok Değişkenli İstatistiksel Analiz.

    İstatistik ve bilgisayar bilimleri derslerinin yanısıra sosyal bilimlere dair dersler de mevcuttur. Bazıları; İşletme Bilimine Giriş, Sermaye Piyasası Analizleri, Ekonominin İlkeleri, Ekonometri.

     Bilgisayar Bilimleri, Djikstra'nın tabiriyle: "Astronomi ne kadar teleskoplarla ilgiliyse, bilgisayar bilimleri de o kadar bilgisayarlarla ilgilidir". Bilgisayar bilimi, bilginin özellikle elektronik makineler aracılığıyla, düzenli ve ussal biçimde işlenmesi bilimidir. Bunun yanı sıra bilgisayar bilimi bilgi işlemlerinde uygulanabilen matematiksel yapıları da inceler. Amacı ve görevi bir yandan temel aksiyomatik matematiksel kuramlar üretmek (Kuramsal Bilişim Bilimi), ikinci olarak -yardımcı bilim şeklinde- tüm diğer uzmanlık dallarının nesnelerini ve süreçlerini çözümleyip soyut matematiksel yapılara ve Algoritmalara dönüştürmek (Bilgisayar Bilimi) ve üçüncü olarak soyut matematiksel yapıların aktarılabileceği, saklanabileceği ve algoritmalarla otomatik olarak işlenebileceği matematiksel makinaları tasarlamaktır [Vikipedi].

    Bilgisayar bilimleri, bilgisayarların bir araç olarak kullanılıp asıl amacın bilgisayar olmadığı, hayattaki problemlerin bilgisayarlar aracılığıyla çözülebilmesinin yollarının araştırıldığı bir bilimdalıdır. Bilgisayar bilimlerinin uygulanmasını günümüzde bir çok yerde görmekteyiz. Örneğin insana ihtiyaç duymayan otomatik gözetleme sistemleri, ses tanımlama gibi alanlar bilgisayar bilimlerinin araştırma konularına girmektedir.

   KTÜ - İSBB de verilen bazı bilgisayar bilimleri dersleri; Temel Bilgisayar, Algoritma Tasarımı, Matlab ile Sembolik Analiz, Mantıksal Tasarım, İşletim Sistemleri, Nesneye Yönelik Programlama, Veritabanı Yönetimi, Veri Yapıları, Sayısal Görüntü İşleme, Sayısal Ses İşleme, Yapay Zekaya Giriş, Bilgisayar Ağları, Bilgisayar Sistem Simülasyonu, Web Programlama, İstatistik Yazılımları.

  İstatistik ve Bilgiayar Bilimlerine dair başka bir yazıyı da paşlaşmak isterim;

     21.yüzyıl, yaşanan yoğun teknolojik gelişmelerin devam edeceği bir dönem olacaktır. Özellikle bilgisayar teknolojisinde gözlenen gelişmelerin önümüzdeki yıllara da damgasını vuracağı anlaşılmaktadır. Bu nedenle 21.yüzyıl bilgi çağı olarak adlandırılıyor.
Gerçekten bilgisayar yazılım ve donanımlarında ortaya çıkan gelişmeler bilgiye ulaşma hızımızı arttırarak yapılan araştırmaların hem sayısını hem de kalitesini yükseltmiştir. Başka bir ifade ile günümüzde dünya üzerinde sahip olunabilecek en büyük güç “bilgi ve bilgiye ulaşabilme yeteneği “ biçimine dönüşmüştür. Bu güce ulaşabilmek ise , yaşanan bu gelişmelerin uzağında kalmamakla mümkün olabilecektir.
Ancak , acaba tek başına bilgisayar teknolojilerindeki gelişmeleri izlemek çağdaş dünyanın bütün gerçeklerini kavramak için yeterli olabilir mi?
Bu soruya iyice düşünmeden evet cevabını veremeyiz.Bilgisayar teknolojilerindeki ilerlemeler, istatistik alanında da yeni gelişmelerin ortaya çıkmasına olanak vermiştir.İstatistik genel olarak veri toplamak ,toplanan bu verileri işlemek ve analizini yaparak yorumlama amacını güden bir bilim dalıdır. Çok gerilere gitmeye gerek yok ; bundan on-onbeş yıl önce devasa bilgisayarlarla yapılabilen bütün istatistiksel işlemler günümüzde son derece küçük boyutlu PC’lerle gerçekleştirilebilir hale gelmiştir.Artık veri toplamak ,işlemek ,analiz etmek ve ulaşılan sonuçları yorumlamak daha kolaydır.
Sonuç olarak , çok sayıda ve kaliteli verinin oluşturduğu karmaşık yapı içinde bulunan gizemli dünyanın ortaya çıkartılması , gözle görülebilir hale getirilmesi turizmden bankacılığa ; reklamcılıktan pazarlamaya kadar uzanan geniş bir çerçeve içinde değerlendirilebilecek uygulamalı alanlarda yeni ufuklar açmaktadır.
İstatistik ve Bilgisayar Bilimleri Bölümü’nden mezun olacak öğrenciler, yalnız istatistik ve yalnız bilgisayar alanında eğitim alarak yetişmek yerine her iki alanda da uzmanlaşarak uygulamalı alanlarda yeni ufukların açılmasını sağlayacak kadroları oluşturacaklardır.

KTÜ ve İSBB ile her türlü sorularınız için farukt37-at-hotmail.com dan ulaşbilirsiniz.

4 Yorum
Nis 2009
22.

    Bir arkadaşımın "okuldan sonra ölüm gelir" şeklinde ifadesine önce şaşırarak sonra işin içinde bir bit yeniği arıyarak aklıma bazı fikirler geldi. İşin aslı; okul kelimesinin harflerinin her birinden bir sonra gelen harflerin oluşturduğu kelime "ölüm". Ne büyük tesadüf değilmi? Yaptığım ufak çaplı bir araştırma ile, 12703 kelime içinde sadece 8 kelime bu şekilde eşleşti. Bunların içinde 4 harfli eşleşme sadece 2 adet. "Nötr" be "Okul" kelimeleri.

 

   "Nötr" kelimesini Türkçe saymassak 12703 kelime içinde sadece bir adet eşleşme var; (okul-ölüm) eşleşmesi. Bunun oranı 0,000157 den daha az. Bu değerde okuldan sonra ölüm gelir tezinin tesadüf olma ihtimalini gösterir. Okulumun bitmesine son 2-3 ay kala(!) yaptığım ufak bir çalışmayı paylaşmak istiyorum. (okul_olum.rar)

   "İngilizce-Türkçe" sözlük veritabanından (sozluk.rar) sadece Türkçe kelimeleri alarak ufak bir veritabanı (kelimeler.mdb) oluşturdum.Dil olarak C#kullandığım programı bölüm bölüm açıklayalım. 

        List<string> kelimeler = new List<string>();
List<string> eşleşmeler = new List<string>();
string harfler = "abcçdefgğhıijklmnoöprsştuüvyz-";

private void Form1_Load(object sender, EventArgs e)
{
    baglan();

    //tüm kelimeleri yaz
    int k = 0;
    foreach (var kelime in kelimeler)
    {
        listBox1.Items.Add(kelimeler[k].ToString());
        k++;
    }

    //tüm kelimeleri kontrol et
    for (int i = 0; i < kelimeler.Count; i++)
    {
        string al = kelimeler[i].ToString();
        string ver = "";

        foreach (char harf in al)
        {
            int sayı = harfler.IndexOf(harf);
            ver += harfler[sayı + 1];

        }

        if (kelimeler.Contains(ver))
        {
            listBox2.Items.Add(al + " - " + ver);
            eşleşmeler.Add(ver);
        }
    }

    int kelime_adet = kelimeler.Count;
    int eşleşme_adet = listBox2.Items.Count;

    double ikiharfli = eşleşmeler.Where(kelime => kelime.Length == 2).Count();
    double üçharfli = eşleşmeler.Where(kelime => kelime.Length == 3).Count();
    double dörtharfli = eşleşmeler.Where(kelime => kelime.Length == 4).Count();

    string metin = string.Format("{0} adet kelime içinde sadece {1} adet kelime eşleşmiştir."
        +" {2} kelime içinde {3} adet iki harfli, {4} adet üç harfli,"
        + " {5} adet dört harfli eşleşme vardır.\n\nDört harfli eşleşme ihtimali : {6} dır.",
        kelime_adet, eşleşme_adet,kelime_adet,ikiharfli,üçharfli,dörtharfli,dörtharfli/kelime_adet);

    richTextBox1.Text = metin;

İlk olarak bağlantı kurulup tüm kelimeler "kelimeler" listesine eklenmektedir. Daha sonra "kelimeler" içindeki tüm kelimeler dolaşılıp harflerinin bir sonraki harflerden oluşan kelime elde edilmektedir.

public void baglan()
{
    OleDbConnection baglanti = new OleDbConnection();
    baglanti.ConnectionString = @"Provider= Microsoft.Jet.OleDB.4.0;Data Source = kelimeler.mdb";

    string sorgu = "SELECT kelime FROM TBLkelimeler";
    try
    {
        baglanti.Open();
        komut = new OleDbCommand(sorgu, baglanti);
        tablo = komut.ExecuteReader();
        
        while (tablo.Read())
        {
            kelimeler.Add(tablo[0].ToString());    
        }
    }
    catch
    {
        MessageBox.Show("Hata!");

    }
    finally
    {
        baglanti.Close();
    }
}

Yeni kelime oluşturulur.

for (int i = 0; i < kelimeler.Count; i++)
{
    string al = kelimeler[i].ToString();
    string ver = "";

    foreach (char harf in al)
    {
        int sayı = harfler.IndexOf(harf);
        ver += harfler[sayı + 1];
    }

Yeni oluşan kelime, "kelimeler" içindeyse listbox'a eklenir.

    if (kelimeler.Contains(ver))
    {
        listBox2.Items.Add(al + " - " + ver);
        eşleşmeler.Add(ver);
    }

}

Son olarakta eşleşmeler sayılıp oranlar hesaplanır.

int kelime_adet = kelimeler.Count;
int eşleşme_adet = listBox2.Items.Count;

double ikiharfli = eşleşmeler.Where(kelime => kelime.Length == 2).Count();
double üçharfli = eşleşmeler.Where(kelime => kelime.Length == 3).Count();
double dörtharfli = eşleşmeler.Where(kelime => kelime.Length == 4).Count();

string metin = string.Format("{0} adet kelime içinde sadece {1} adet kelime eşleşmiştir."
    +" {2} kelime içinde {3} adet iki harfli, {4} adet üç harfli,"
    + " {5} adet dört harfli eşleşme vardır.\n\nDört harfli eşleşme ihtimali : {6} dır.",
    kelime_adet, eşleşme_adet,kelime_adet,ikiharfli,üçharfli,dörtharfli,dörtharfli/kelime_adet);

 

Bu ufak ama önemli araştırma ile Doğal Dil İşleme üzerine ilk çalışmamı da yapmış oldum. Nice iyi çalışmalara...(Tabi okul bitmeden)

 

17 Yorum
Nis 2009
21.

İnternet Akımları

Yazan: dandelo  Kategori: İnternet.
Etiketler: , ,

   İnternette kullandığım veya kullanılmasında yarar gördüğüm, belki de bazılarını bildiğiniz bir kaç siteden ve yeniliklerden bahsetmek istiyorum. Bunları kendi sözlerim yerine daha profesyonellerin anlatımlarını paylaşarak yapacağım.

Twitter

   Kısaca twitter, 140 karakterle "ne yapıyorsun?" sorusuna cevaplarınızı, sizi takip edenlere iletebilmeniz için web ve sms tabanlı hizmet sunan bir servis. Microbloging diye de anılan, blogun ufak hali. Arkadaşlarıyla devamlı bağlantıda olmak isteyenlerin ilgisini çekebilir. Sözü ustalarına bırakırsak şöyle: "Web Deneyimleri" ve şöyle: Vimeo iki link paylaşabilirim. İzleyin derim.

Twitter'a gidenler, burdan.

Friendfeed

    FriendFeed, arkadaşlarının ve ailenin internette buldukları ilginç şeyleri keşfetmene ve bunlar hakkında yorum yapmana yardımcı olan, bir çok platformu(Youtube, Facebook, Blog, Flickr vb.) birleştirip oralardaki etkinliklerinizi (favoriler,yeni mesajlar, sosyal imlemeler vb.) tüm arkadaşlarınızla paylaşabildiğiniz ve arkadaşlarınızın etkinliklerini de izleyebildiğiniz bir yer.

   Friendfeed her gün düzenli olarak takip ettiğiniz web sitelerini (bloglar, haber siteleri, youtube, flickr, twitter vs.) tek bir merkezden takip etmenizi mümkün kılıyor. Kendi bloglarınız ve sosyal ağlardaki hesaplarınızı sisteme tanıtarak sizi takip edenlere de büyük kolaylıklar sağlamış oluyorsunuz.Buradaki kısa anlatım ve buradaki güzel video Friendfeed'i derinlemesine anlatıyor.

Friendfeed ile bağlı kalın...

Rss

    RSS, genellikle haber sağlayıcıları, bloglar ve podcastler tarafından kullanılan, yeni eklenen içeriğin kolaylıkla takip edilmesini sağlayan özel bir XML dosya formatıdır. Kullandığı dosya biçimleri .rss ve .xml'dir.

      İnternet kullanıcısı RSS teknolojisi ile düzenli olarak içerik sunan sitelere abone olabilir ve çeşitli RSS istemcileri sayesinde içeriği takip edebilir. Site yöneticisi veya sahibi bu hizmeti sunmak için bir takım teknik düzenlemeler yapmalı ve uygun formatta XML'i RSS istemcisi talep ettiğinde göndermelidir. RSS olarak sunulan içerik web sitesinde sunulan içeriğin tamamını, özetini veya sadece başlığını içerebilir.

RSS kaynağı sağlayan internet sitelerinde genellikle şu ikonlar bulunur: Dosya:Rssicon 3614.gif Dosya:Small Orange XML Button for RSS Page.gif  [wiki

Yine Web Deneyimleri sitesinin sahibi Volkan Görgülü'den güzel bir video içerik -->> Rss Nedir?

Bloglama

     Blog, teknik bilgi gerektirmeden, kendi istedikleri şeyleri, kendi istedikleri şekilde yazan insanların oluşturdukları, günlüğe benzeyen web siteleridir.İngilizcedeki “web” ve “log” kelimelerinin birleşmesinden oluşan weblog kavramının zamanla yaygınlaşmış adıdır.

     Blog, genellikle güncelden eskiye doğru sıralanmış yazı ve yorumların yayınlandığı, web tabanlı bir yayını belirtir(Şuan gezmiş olsuğunuz site gibi :)). Çoğunlukla her gönderinin sonunda yazarın adı ve gönderi zamanı belirtilir. Yayıncının seçimine göre okuyucular yazılara yorum yapılabilir. Yorumlar, blog kültürünün çok önemli bir dinamiğidir; bu sayede yazar ve okuyucular arasında iletişim sağlanır. Bunun dışında, geri izleme (trackback) mekanizmasıyla, belirli bir yazı hakkında yazılan diğer yazıların belirlenebilmesi de mümkündür. [Blogcu Zade]

     Bir çok bedava ve kurulum gerektirmeyen blog servislerinin(Blogcu, Blogspot,Bloggum ...) yanı sıra, kendi domain(.com, .net vb.) ve sunucunuzu kullanabildiğiniz, istediğiniz biçimde şekillendirebildiğiniz hazır sistemler(Blogengine, Wordpress) mevcuttur.

Benim de şuan kullandığın, altyapı olarak Asp.Net kullanan, Blogengine'i özellikle tavsiye edebilirim. 

Blog yazarken(tabi açtıktan sonra) işinize yarayacak ipuçları, burdan. 


Yukarıda anlattıklarımdan benim de kullandıklarımın adresleri;

Twitter : http://twitter.com/farukterzioglu

Friendfeedhttp://friendfeed.com/farukterzioglu

Blog : http://www.farukterzioglu.com ve Rss'si : http://www.farukterzioglu.com/syndication.axd

 

Bunların haricinde devamlı takip ettiğim, yararlı bulduğum, gözden kaçtığını düşündüm bazı sitelerde paylaşmak istiyorum.

  - Kaliteli ve yararlı video içerikli siteler; 

  • Videolectures : Bilgisayar Bilimleri, Matematik, Fizik gibi bir çok alanda, profesyoneller tarafından oluşturulmuş video dersleri (ingilizce) bulundurur.
  • Ted : Bir çok konuda güzel konuşmaların(ingilizce) yer aldığı güzel bir site.
  • Sevenload :  Müzik, Dizi-Film, Sanat, Teknoloji ve daha birçok kategoride yayınlar bulunduran ve kendi yayınlarınızı oluşturabileceğiniz, kaliteli video içerik bulunduran sitede en eski Yeşil Çam filmlerini bile bulabilirsiniz.
  • Televidyon :Televizyon mantığında yayın yapan; mizah, belgesel, spor, teknoloji, yaşam ve sektör gibi programlarda güzel ve eğlenceli yayınlar bulabilceğiniz site.
  • Uzmantv : Eğitsel ve bilgilendirici videolar içeren sitede, Kolbastıda kadınlara özgü hangi hareketler var?, Iphone hakkında merak edilenler, Blog nasıl yazılır? gibi konular vardır.
  • Vimeo : Kullanıcı kaynaklı içeriklerin bulunduğu sitede gayet hoş videolar bulunmaktadır. Kısa film, sanatsal, bilimsel videolar gibi kaliteli içerikler olan, hoşça vakit geçirmek isteyenler için kirlenmemiş güzel bir video sitesi.

   - Hakia : Anlamsal (semantik) arama yapabildiğiniz arama motoru.
   - Gazopa : Elinizde olan bir resmin nerden geldiğini veya ne resmi olduğunu bulmanızı sağlayan ters mantık resim arama motoru. Kullanabilmek için üyelik gerekli.
   - Skydrive : Microsoft'un sağladığı, her türlü belge,resim, vb. leri depolayıp paylaşabildiğiniz site.
   - İstatistik öğrenmek için pratik e-kitap ve anlatımların olduğu, ingilizce hazırlanmış bir site, ve birde istatistik portalı

Bunların yanında severek takip ettiğim bir kaç siteyi de paylaşmak istiyorum. Açıklamasız olarak yazarsak ;

FZ Blogs, Fazlamesai, Düğümküme, Fikir Atölyesi, E-bergi ; Com. Eng. Turk, Yazgeliştir, C#Nedir?, Yapay Zeka, Derin Deli Mavi, Emekvar, Google...

 

Biraz uzun oldu, inşallah yararlıda olur. Bunlar ve daha bir çok siteyi muhafaza etmekte sıkıntı yaşıyorsanız Firefox'u ve favori çubuğunu tavsiye edebilirim. Ayriyetten favorilerinizi birçok bilgisayar arasında taşımak ve yedeklemek için "Foxmarks" isimli firefox eklentisini kullanabilirsiniz. 

 

1 Yorum
Mar 2009
26.

     Bu internet nelere kâdir. Sadece ufak bir fikir olarak meydana çıkan bir olay, internetin sayesinde tüm medya organlarında duyurulan, salgın misali yayılan bir sosyal faliyete dönüştü. Bahsettiğim şey, Tunç Kılınç'ın müthiş fikri "Faili Meçhul Kıyak". Kısaca aşağıda yazdığı gibi, 'bir iyilik yap ve bıraktığın tek iz bir kart olsun'.  

 

 

  Fikir Atölyesi 'nin sahibi Tunç Kılınç'ın bir oyun oyanayalım diye ortaya attığı ve kendi tabiriyle "Tanımadığımız birilerine ufak bir iyilik yapıyoruz ve o kişi bunu kimin yaptığını bilmiyor. Çıkar düşünmeksizin kıyak yapmak ve o kişinin mutlu olmasını sağlamaktan söz ediyorum."diye bahsettiği müthiş olay. Oyundan bahsedersek , önce bir kartımız var;

Basitce tasarlanmış bu kartın sekiz adetini bir A4′e yerleştirdik. Dilerseniz bu A4′ü basıp sekiz tanesini aynı anda elde etmek mümkün. [Standart yazıcılar keşke lamine baskı da yapabilse!]

Baskı alabileceğiniz A4 boyutundaki dosyanın Word ve pdf formatları bu linklerde. Resim (.jpeg) olarak ise bu linkte bulabilirsiniz. (Yukarıdaki üç linkten birine sağ tıklayıp “save link as” veya “hedefi farklı kaydet” yaparak bilgisayara almak mümkün.)

Kart oyunun bulaşıcılığı ve devamı için gerekli. [Bir de "aa bak birisi burada ne unutmuş" denmemesi için!] Kime, ne zaman, hangi şartlarda bir kıyak yapacağımız da zaten belli olmaz. O yüzden bunları kesip cüzdanda taşıyoruz :)

    Örneğin birkaç uygulama örneği;

  • Birinin posta kutusuna gelen elektrik veya su faturasını alıp, ödemek. Sonrasında faturayı makbuz ve kartla beraber posta kutusuna geri koymak.
  • Haftalardır pis kalmış bir arabayı gece yıkamak ve sonrasında kartı sileceğe iliştirmek.
  • Vapur iskelesinde veya metroda turnikelerden birinin üstüne karta ataçlanmış bir jeton bırakmak.
  • Sipariş verdiğimiz (bir alana ikincisi bedava) pizzayı komşumuzun zilini çalarak kapısına bırakıp kaçmak (kart pizza kutusunun içinde.)

    Şimdiden bir çok gazete ve radyoda duyrusu yapılmış olan "Kıyak hareketi" bu hafta da Beyaz Show'a konu oluyor.    

    Tüm herşeyin ortaya çıktığı yer : Fikir Atölyesi 

    Nice kıyak günlere...

 

    Düzenleme : İzlemeyenler için Beyaz Show kayıtı -->>

 

6 Yorum
Mar 2009
19.

    Daha önce "burada" genel olarak bahsettiğim ve kullanılacak kod bloğunu tanıttığım "C# ile Görüntü İşleme"yi bir kaç örnek üzerinde anlatmaya çalışacağım.Bir görüntü üzerinde yapılabilecek işlemleri noktasal, alansal, toplamsal, biçimsel gibi alt kategorilere bölebiliriz.

    Öncelikli olarak noktasal işlemlerden bahsedersek, noktasal işlemler; görüntü üzerinde gözek gözek dolaşıp, her gözekin sadece kendi değerini değiştirdiğimiz işlemlerdir. Örnek olarak parlaklık(brightness) , zıtlık(contrast), gritona çevirme, negatif ve eşikleme gibi işlemleri verebiliriz. Alansal işlemler ise sadece bir gözekle değil birbirine komşu birkaç gözekle yapılan işlemlerdir. En bilinen örneği filtrelerdir. Örneğin bir resme medyan filtresi uygulamak istediğimizde seçilen yapısal elemana göre (3x3 veya 5x5) o bölgedeki tüm gözeklerin değeri hesaplanıp yapısal elemanın ortasındaki değere yazılır. Biçimsel işlemler, resmin renk değerlerinde değil de biçiminde yapılan değişikliklerdir. Balık gözü(fish eye), girdap(twirl) ve gözekleme(pixelate) gibi. Toplamsal işlemlere de Fourier dönüşümünü örnek verebiliriz.

    Noktasal işlemlerin birkaçından genel olarak bahsedip sadece parlaklık üzerinde duracağım. Diğer işlemlere de ilerleyen günlerde Kod Kütüphanesinde yer vereceğim.

    Bir gözeğin renk değerlerinin 0 ile 255 arasında değiştiğinden bahsetmiştik. Değerler 255 e yaklaştıkça o gözeğin parlaklığı artar. Bunun için bir resmin parlaklığını artırmak için , resmin tüm gözeklerinin renk değerlerini artırmalıyız. Kod üzerinde açıklarsak;

(daha basit ve anlaşılır olduğu için 32bitlik formatı tercih ettim.)

  public Bitmap parlat(Bitmap resim, int değer)
        {
            unsafe
            {
                BitmapData bmpdata = resim.LockBits(new Rectangle(0, 0, resim.Width, resim.Height),
                        ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);

                byte* p = (byte*)bmpdata.Scan0;

                for (int i = 0; i < bmpdata.Height; i++)
                {
                    for (int h = 0; h < bmpdata.Width; h++)
                    {
                        p[0] =Convert.ToByte( p[0]+değer );
                        p[1] =Convert.ToByte( p[1]+değer );
                        p[2] =Convert.ToByte( p[2]+değer );

                        p += 4;
                    }
                }

                resim.UnlockBits(bmpdata);

                return resim;
            }
        }

    Burada 'resim' gözek gözek dolaşılmakta ve renk değerleri, girilen 'değer' parametresi kadar artırılmaktadır. Yalnız burda dikket edilmesi gerekilen nokta renk değerlerinin 0-255 arasında değişmesidir. Eğer değerler bu sınırı geçerse program hata verecektir. Onun için her artırmada değerler kontol edilip 255'i geçenler 255'e, 0'ın altına inenlerde 0'a eşitlenmelidir. Düzeltilmiş kısım ;

for (int i = 0; i < bmpdata.Height; i++)
{
    for (int h = 0; h < bmpdata.Width; h++)
    {  
        //mavi için
        if (p[0] + değer > 255)     p[0] = 255;  
        else if(p[0] + değer < 0 )  p[0] = 0 ;   
        else   p[0] =Convert.ToByte( p[0]+değer );

        //yeşil için
        if (p[1] + değer > 255)     p[1] = 255; 
        else if (p[1] + değer < 0)  p[1] = 0;    
        else  p[1] = Convert.ToByte( p[1] + değer);

        //kırmızı için
        if (p[2] + değer > 255)     p[2] = 255; 
        else if (p[2] + değer < 0)  p[2] = 0;    
        else  p[2] = Convert.ToByte(p[2] + değer);

        p += 4;
    }
}

  

    Bu yöntem pekde doğru bir algoritma olmayıp, görüntü işlemenin matnığını anlatmak için verdim. Parlaklık için çeşitli fonksiyonlar internette bulunabilir.

    Diğer noktasal işlemlerden biraz bahsedecek olursak; bir görüntünün tersini(negatifini), tüm gözeklerin renk değerlerini 255 den çıkararak elde ederiz. 

for (int i = 0; i < bmpdata.Height; i++)
{
    for (int h = 0; h < bmpdata.Width; h++)
    {
        p[0] = Convert.ToByte(255 - p[0]);
        p[1] = Convert.ToByte(255 - p[1]);
        p[2] = Convert.ToByte(255 - p[2]);

        p += 4;
    }
}

    Bir resmi gritonlarına çevirmek için kırmızı, yeşil, mavi renk değerlerinn ortamasını alıp üç rengede bu değeri atıyarız. Yine  bu yönteme göre daha bir yöntem var olup bu yöntem, her rengi belli bir oranda işleme katar.

 for (int i = 0; i < bmpdata.Height; i++)
{
    for (int h = 0; h < bmpdata.Width; h++)
    {
        byte ort = Convert.ToByte((p[0] + p[1] + p[2]) / 3);
        p[0] = p[1] = p[2] = ort;
        p += 4;
    }
}

Daha başka bol kodlu günlerde görüşmek üzere...

 

4 Yorum