Şimdi efenim, blog yazmaya bir süre ara verdiğim şu dönemi bir naçizane eser ile bölmek istedim bu yazıyla beraber. Konumuz bugün yayın hayatına başlayan MTG (Mamito Tweet Generator).
Muhammed (a.k.a. Mamito) tweeter kullanımı konusunda yurtdışındaki akranlarımıza taş çıkaracak bir sevdiğimiz arkadaşımızdır öncelikle. Ben haftadan haftaya ne olmuş twitter diye bakarken mamito’nun iki üç tweet’ine mutlaka rastlarım. Genellikle karşı cinsin müdahil olduğu sosyal ortamlardan bildirimleriyle timeline’larımızı doldurur sağolsun kendisi.
Bir grup sap IT çalışanı olarak bizimde böyle tweet’lerimiz olsa, anne bizim neden böyle münasebetlerimiz yok, çikolatalar püskevitler diye muhabbet ettiğimiz bir konuşmada aklıma gelen bir fikirle birlikte genel konsepti konuşup çalışmaya başladık.
Önce bir layout üzerinde konuştuk ve serhan bu layout için bir tasarıma başladı. Tasarım süresince bir iki değişiklik sonucunda sitenin mevcut tasarımı ortaya çıktı. Paralel olarak ertan mamitonun son 100 kadar tweetini inceleyip 10 farklı kalıpta tweet yapısını çıkardı. Bende gerekli kız isimleri için kabarık bir liste oluşturup özgür‘e ilettim. Özgür bu liste içerisinden 30 kadar kız ismini ayıkladı. Bu şekilde projenin genel mimarisi ortaya çıkmış oldu.
Kod kısmına geldiğimizde önce ertan’ın çıkardığı kalıpların çok benzer olmasından dolayı ufak bir tweet toplayıcı kodu yazdım ve mamitonun toplam 2500 küsür tweet’ini bir dosyada topladım. Sonra biraz regex birazda göz yordamıyla bu tweetlerden ertan’ın çıkardıklarının üzerine 90 tane daha kalıp oluşturdum. Bu kalıpları mevcut tweetlerin benzerliklerinden kız isimlerinin ayıklanması ile oluşturdum. Sonuçta elimizde 100 farklı tweet kalıbı olmuş oldu.
Web sitesinin kodlaması kısmına gelmiş olduk böylece. Kodlamada asıl tweet üretimini bir RESTful Web Service yapmakta. Bu web service session bazında önce 100 tane kalıbı alıp random bir tanesini seçmekte sonra seçilen kalıptaki kız isimleri gelecek yerleri regex ile saptayıp hafızasında bulunan isimlerden yine random olarak yazıp JSON çıktı vermekte. Bu servis oluşturma işlemi başlangıcında async olarak çağrılıyor ve sonucu ilgili bölüme yazılıyor. Servisi yayınlarken hostingden kaynaklanan bir dolu değişiklik gerekti. Medium trust üstüne tomarla kısıtlama gelince bir çok noktada web.config taklaları atmak gerekiyor. Sonuçta framework’ü 4.0 dan 3.5′e çekip bir dizi kısıtlama ve ayarı yapınca servis tam olarak çalışmaya başladı. Halen randomize konusunda bir kaç sorunu var gördüğüm kadarıyla ama bir süre bu şekilde devam edebilir sanırım.
Bunun dışında UI programlama için jQuery kullandım. Belirme – kaybolma efektleri jQuery ile native gelen animasyonlar. Textlerdeki daktilo ve saptanma efektleri ise grab bag plugin. Plugin kodlarında hız konusunda bir iki ufak tefek değişiklik gerekti o kadar. En sonda gelen tweetle butonu için ise Twitter API’den faydalandım.
Kendi adıma proje için toplamda 6 – 7 saat çalıştım sanırım. Ne amaca hizmet ediyor diye düşünülmesi gayet muhtemel bir iş en başından beri farkındayım. Ancak hayatta her şeyi ulvi bir amaca hizmet etmesi için yapmadım şimdiye kadar. Bakıldığında bir işe yaramadığı sanılan iş için bir dolu veri ayıklama, tasarım ve kodlama işi yaptık okuduğunuz gibi. Bunları yaparken fazlaca keyif aldığımız noktada bu projenin bir işe yaramadığını söylemek yanlış oluyor bana göre. Sonuçta güldük eğlendik bir ekip olarak keyifli vakit geçirdik. Projenin tam amacı da işte buydu zaten…

Post a Comment