'Açık Kaynak' kelimesi ile ilgili yazılar.

Tag cloud (weighted list) ya da Türkçe olarak sözcük bulutu/ağırlıklı liste, daha çok blog sitelerinde birbiriyle ilgili içeriklere çabuk ulaşımı sağlayan ve 2005 yılından bu yana internette günlük tutanlar tarafından yaygın bir şekilde kullanılan görsel bir yardımcı. Genel olarak, sitenin içeriklerinde geçen kelimelerin / kelime gruplarının ya da içeriği kategorilendirirken oluşturulan ilişkili kelimelerin tüm içeriklerde kaç defa geçtiği hesaplanıp, tüm site bazındaki ağırlıklı ortalamalar alınıp görsel olarak kullanıcılara gösterilmesini amaçlanıyor. Tag cloud oluştururken kullanılan değişik yaklaşımlara güzel bir örnek de (birbiriyle ilişkili kelimelere yönelik hesaplamalar) University of New Brunswick` den Owen Kaser ve Université du Québec à Montréal` den Daniel Lemire tarafından hazırlanan TagCloud Drawing: Algorithms for Cloud Visualization isimli çalışmada görülebilir.

mirmirik.net sitesinin bir önceki sürümünü yaparken basit bir tag cloud eklemek ama bunu da ağır matematiksel algoritmalara dayandırmadan hızlı bir şekilde yapmak istedim. Bunu oluşturmak için kullandığım kodları ve veritabanı yapısını, bu yazının ilerki satırlarında paylaşıyor olacağım.
Devamı »

Yazı kategorisi Internet/Teknoloji  |  mirmirik  |  30.05.2007 00:00:00

Microsoft ile "bedava" kelimelerinin yanyana duruşu bile, insanı rahatsız ediyor sanki değil mi? Şimdiye kadar bize anlatılanlar (tamam, bu anlatanların çoğu, "Linux camiasının yılmaz savaşçıları" olsa bile), Microsoft` a karşı bir antipati oluşturuyordu. Emperyalist Amerika` nın milletleri ezerek sahip olduğu kapitalden en büyük kârı alan şirketin MS olduğu gerçeği ile "tatlı su komünistleri"ni, MS-Encarta` da Türkiye` nin bir kısmının "Kürdistan" olarak gösterildiği gerçeği ile de "tatlı su milliyetçileri"ni hedef alan; ya da henüz "recursion fonksiyon" bile yazamayan genç dimağları "açık kodunu vermiyor oğlum Microsoft. Ama Linux öyle değil, her istediğini istediğin gibi değiştirebilirsin" diyerek kışkırtmayı başaran bir kısım anti-Microsoft takıntılılarını hafife almak olmaz.

Yazıya başlarken asıl olarak Microsoft` un neden bedava yazılım üret(e)mediğine dair bir iki fikrimi söyleyecek, sonrasında da "Expression" serisinden yine "bedava" olarak dağıtımına başladığı grafik ürünlerine ait bilgi girişinde bulunacaktım. Ancak ilk paragrafı yazınca bu fikrim de değişti. Özellikle Türkiye` de süren garip savaşı hatırladım. Tabi ki biz Türkler için (aslında AB ve RTE/AKP normlarına göre Türkiye vatandaşları demem lazım) bu süregiden savaş, Hülya Avşar` ın yeni sevgilisinden ya da Seda Sayan` ın türban bile takıp TV` de boy gösterdiği şaklabanlıklarından daha önemli olduğundan, hemen herkesin dikkatini çekmiştir(araya sosyal mesaj sokup dikkat çekme çabası!).
Devamı »

Yazı kategorisi Internet/Teknoloji  |  mirmirik  |  29.11.2006 00:00:00

Sitenin veritabanı şu yazıdan bu yana bir miktar değişti. Son değişiklikler ile ilgili veritabanı dizayn şeması şurada.

Bu veritabanını oluşturmak için gerekli "script"i de buraya koydum. Veritabanı scriptinde trigger` lar ve DEFAULT değerler yok. Ama kullanım ya da fikir vermesi açısından yine de işe yarayabilir.

Ayrıca henüz bakamamış olanlar için, site genelinde kullandığım istemci bazlı kodlar JSLib.txt dosyası içinde. Daha önceki yazılarımda veremediğim fonksiyonları da umarım bir gün örnekleri ile beraber açıklayabilirim.

Kolay gelsin.
Devamı »

Yazı kategorisi Internet/Teknoloji  |  mirmirik  |  30.09.2006 00:00:00

Eğer istemci bazlı kodlamada JS kullanıyor ama hala e-posta doğrulamak için e-posta alanına girilen değeri parse edip binbir türlü takla atmak gibi üstün bir teknolojiden yararlanıyorsanız belki bu yazı ilginizi çeker. Bildiğiniz ya da yakın zamanda öğreneceğiniz üzere JS` de kullanılan nesnelere "prototype" yaratabiliyorsunuz. Yüzlerce kullanım alanından birisi de şu şekilde:


/**************************************************************************************
StringProtoType()
        IsEmailValid() fonksiyonu tarafından kullanılır.
***************************************************************************************/
String.prototype.isValidEmail = function(){
        return !!this.match(/^([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})@([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})\.([a-zA-Z]{2,4})$/)
}

/**************************************************************************************
DOM.IsEmailValid()
        `oE` olarak verilen nesnenin değerinin geçerli bir e-posta adı olup olmadığını döner.
        "String.prototype.isValidEmail" regEx` ini kullanır.
***************************************************************************************/
function IsEmailValid(oE) {
var ev = $(oE);
if (ev.value.isValidEmail()==false) {
alert(`Lütfen geçerli bir e-posta adresi giriniz!`);
ev.focus();
return false;
}
return true;
}

IsEmailValid() fonksiyonunda kullanılan $() fonksiyonu aslında "document.getElementById()" metodunun kısaltması. Bunun anlatımına dair bir şeyleri şuradaki AJAX anlatımında karalamıştım. Eğer bu metodları/fonksiyonları kullanırsanız, işiniz biraz daha kolaylaşabilir.

protoType hakkında daha fazla bilgi için: Mozilla Developer Network

Devamı »

Yazı kategorisi Internet/Teknoloji  |  mirmirik  |  15.07.2006 00:00:00

AJAX ile bir form POST etmek, sonra da POST edilen değerleri kullanmak için uzun zamandır bir fonksiyon kullanmaktayım. Şimdiye kadar bir sorun çıkartmadığına göre buraya ekleyebilirim. Kod şu şekilde:


/**************************************************************************************
AJAX.createVals() (12.02.2005 / TM)
        `f` formundaki değerleri XHR nesnesi ile POST edilebilecek formata dönüştürür.
        Eğer formun içinde bir SELECT elemanı varsa, bunun hem değerini hem de TEXT kısmını
        alır ve string olarak geri döner.
***************************************************************************************/
function createVals(f){
        var oF = document.getElementById(f);
        var eL = oF.elements;
        var ts = "";
        var rs = "";
        var vA = new Array();
        for (var lL=0;lL < oF.length;lL++) {
                if((eL[lL].type==`text`) || (eL[lL].type==`hidden`) || (eL[lL].type==`password`) || (eL[lL].type==`textarea`) || (eL[lL].type==`select-one`)) {
                        if ((eL[lL].type==`select-one`)){
                                var c = eL[lL].options[eL[lL].selectedIndex].text;
                                var n = eL[lL].name + "_TEXT";
                                ts = escape(n)+`=`+escape(c.replace(/%2B/g,"%u002B"));
                                vA.push(ts);
                                var c = eL[lL].value;
                                var n = eL[lL].name;
                                ts = escape(n)+`=`+escape(c.replace(/%2B/g,"%u002B"));
                                vA.push(ts);
                        }
                        else{
                                var c = eL[lL].value;
                                var n = eL[lL].name;
                                ts = escape(n)+`=`+escape(c.replace(/%2B/g,"%u002B"));
                                vA.push(ts);
                        }
                }
        }
        if (vA.length>0){
                rs=vA.join("&");
        }
        return rs;
}

Bu fonksiyonu kullanarak XHR nesnenizin POST edeceği değerleri oluşturabilir, daha sonra sunucu tarafındaki dosyanızda da (ASP, ASPX, PHP neyse artık) eski yöntemlerle değerleri alabilirsiniz. Bu fonksiyondaki artı bir şey (açıklamasında da yazdığı gibi) formdaki SELECT elementlerinin TEXT değerlerini de alması ve bunu gönderilecek değerler arasına sıkıştırması. Buna bir iki projede ihtiyaç duymuştum. Nasıl kullanıldığına dair örneği de bir ara eklerim herhalde...
Devamı »

Yazı kategorisi Internet/Teknoloji  |  mirmirik  |  15.07.2006 00:00:00

AJAX` da Türkçe karakterleri POST ederken bazen sorun oluşabiliyor. Bunun önüne geçmek için ise yapılacak çok basit bir şey var:

Aşağıdaki kodda xO nesnesi bir XMLHTTP nesnesi ise, nesnenin setRequestHeader metodunu kullanarak gönderilen isteğin başlık bilgisine "Ben TR çalışırım arkadaş" dedirtebiliriz. Şöyle ki;


xO.open("POST", url);
xO.setRequestHeader(`Content-type`, `application/x-www-form-urlencoded;charset=iso-8859-9`);
xO.setRequestHeader(`Content-type`, `application/x-www-form-urlencoded;language=tr`);
xO.send(ev);


AJAX ile ilgili bir kaç şey daha eklemeye çalışacağım daha sonra. Şimdilik afiyet olsun.
Devamı »

Yazı kategorisi Internet/Teknoloji  |  mirmirik  |  15.07.2006 00:00:00

C# ve ThreadingPool

C#.NET ile "multithreaded" bir yazılım geliştirmek için System.Threading namespace` i yeterli görünüyor. İşler o kadar basitleşmiş ki, aşağıda yazacağım üç beş satır kod ile yazılımınıza gelen istekleri değerlendirip, asenkron olarak cevap dönmek mümkün oluyor.
Devamı »

Yazı kategorisi Internet/Teknoloji  |  mirmirik  |  04.05.2006 00:00:00

#develop

C# ve VB.NET için bir IDE olarak geliştirilen, serbest olarak dağıtılan #develop(sharpDevelop), bu ay içinde 2.0 RC sürümünü sunacak. Türkçeleştirme çalışmalarında yer almaya çalıştığım bu sürüme, Mayıs ayı içinde sitesinden ulaşabileceksiniz.

Şu anda 2.0.0.1291 Beta 3 sürümü yayında olan #develop, ücretli kardeşi olan Visual Studio 2003` e bir alternatif olarak ve kaynak kodları da açık olarak dağıtılıyor. Belki de bu yüzden Microsoft yeni sürümün "express" takılı olanlarını bedava sunmaya başladı. :)
Devamı »

Yazı kategorisi Internet/Teknoloji  |  mirmirik  |  03.05.2006 00:00:00
Sayfa: 1 2 >|