Friday, August 31, 2007

boşları alalım

asansörlerden nefret ediyorum. hadi biraz yumuşatalım, hazzetmiyorum. diyeceksiniz ki neden? çünkü zaman ve mekan bakımından fena halde verimsizler. sabah, öğle, akşam hiç farketmiyor; herhangi bir kata gitmek için genellikle 1 dakikadan fazla beklemek zorunda kalıyorum, kalıyoruz. kule'deki asansörlerin işletmesinde kullanılan sistem nasıl bir algoritma kullanıyor bilmem, gelişkin birşey olması gerektiği de muhakkak, ama ben beklerken koridorda tap dancing harikaları yaratacaksam neye yarar? bu işe biraz kafa yormak lazım. yoralım:

  • eğer asansör sayımız birden fazlaysa bunları sektörlere ayırabiliriz. her kabin öncelikle belli kat aralıklarına hizmet verir, ama kendi sektörünün dışına çıkabilir. boşta kaldığı zaman da kendi sektörünün dışındaysa sektörü içindeki en yakın kata hareket eder.
  • kabin içi butonlarına basma istatistiği tutabilen bir sistem kurulmalı. atıyorum, 9. kattan en çok 12. kata mı çıkılıyor? o zaman buraya 9. ve 12. kata en yakın asansörü gönderebiliriz. bu istatistikler sektör sınırlarının belirlenmesinde de yardımcı olacaktır.
  • katlarda asansör çağırma talepleri zamana göre sıralanmalı, önce çağırana asansör daha erken gitmeli. tabi yol üstünde daha sonra çağıran varsa onları es geçmek de olmaz. yine de hiç yoktan kaynak kıtlığı yaratmamak lazım.
  • katlarda bekleyen kişi sayısı, daha doğrusu bekleyenlerin kilo cinsinden toplam ağırlığı da önemli. toplam büyükse (ve eğer grup fazla beklememişse) daha boş bir kabin gelene kadar grup bekletilebilir. daha da abartalım ve ağırlık değişimini izleyelim. böylece bizim grup olarak addettiğimiz "kütle"nin aslında daha ufak gruplardan oluşup oluşmadığını anlayabiliriz. çağırma taleplerini de bu grafikle beraber inceleyip ortaya karışık birşeyler yapılabilir. ufaktan bir sırt çantası problemi uygulamasına dönebilecek bir durum.
  • kabinin bir yöne giderkenki hızı da denklemimize dahil etmemiz gereken bir değişken. eğer kabin benim bulunduğum yöne gelirken ama benim için duramayacak durumdayken asansörü çağırırsam talebim hemen değerlendirilmeyecek, kuyruğa atılacaktır.
yordum. bunları harmanlayıp bi'şeyler çıkartmak fena olmazdı.

sonracığıma, bitirme projemi .net framework'teki yeniliklere uydurmak (öncekini framework 1.1 için yazmıştım, generics falan hak getire) ve harala gürele yazılmış kodu temizlemek için tekrar yazıyorum. ek$i'den entry çekmek için kullandığım IE tabanlı web scraper'ımın kullandığı ekşiAPI'dan başladım. CodeProject'te şu elemanın kullandığı yöntem gayet hoşuma gitti, o yüzden IE otomasyonun atıp buna benzer bir yapıya geçeceğim. ayrıca, sadece ek$i odaklı bir ürün olmayacak. mesela bir class ve okunacak html sayfasındaki bilgilerin verilen class'ın hangi alanlarına dolacağını belirten bir xml dosyasını kullanarak veriyi daha programlanabilir bir şekilde sunacak. değindiğim şeyler yeni değil, hepi topu az buçuk xml serialization. görselleştirme aracım ek$iVista da güncellemeden payını alacak. ilk sürümünde directed graph çizebilmek için netron kullanmıştım. kendisi artık bir ticari ürün ve bu dönüşümü geçirmeden önceki halinden de pek memnun değildim. iyi bir paket ararken microsoft research'tan c#ung'u buldum. "chung" diye okunuyormuş kendisi. paketin içinden birkaç dll, dokümantasyon ve excel add-in'i geliyor. bu add-in çok hoşuma gitti; iki sütuna directed graph'ın edge'lerinin başlangıç ve bitiş vertex'lerini sırayla yazıyorsun ve araç çubuğundan c#ung'u çağırıyorsun, grafik hemen karşında. layout algoritması olarak da dairesel, fruchterman-reingold, sugiyama ve grid algoritmaları hazır geliyor. vertex'leri extend edip biraz interaktivite ekledik mi işimi görür bu c#ung, her ne kadar java dünyasındaki karşılığı (ve öncülü) jung kadar gelişkin olmasa da.

önceki gibi ek$iVista da splash screen görüntülenirken ön yükleyici çalışacak ve veritabanındaki kaynak başlıkları (başka başlıklara link içeren başlıklar) bir veri yapısına alınacak. c#ung'a vereceğim kaynak-hedef çiftlerini veritabanından almak için de bir sql fonksiyonu yazdım; hangi başlıktan kaç tık mesafeye kadar gidileceği girdi olarak alınıp kaynak-hedef çiftleri döndürüyor. önceki versiyonumuzda yoktu bu ve bu yüzden grafik çizimi sırasında sorgular dallanıp budaklandığı için makina fena kastırıyordu.

bu işin tek geliştiricisi olsam da arada kodu fena halde boklayabildiğim için bir versiyon kontrol sistemine geçmek gerekti. ben subversion'da karar kıldım, du bakali nolcek...

benden ilgi bekleyen işlerin bir listesini yapayım dedim, listenin altında kaldım. ahanda:
  • ek$iVista revisited (yukarıdaki kalabalık)
  • byblos kütüphane/exlibris mevzuları
  • muha! kişisel muhasebe dalgametresi
  • plone cms incelemeleri
  • -- confidential --
  • altivi analiz/listener/falan
  • quant test/anket cihazı
  • nonlinear forum
  • versaTile erp/simulasyon/jack-of-all-trades
  • inanclisesi.net facelift (plone incelemesi ile bağlantılı)
  • r/c autonomous cihazlar araştırma, diy işleri
  • mezunlar derneği çalışmaları
  • girişimciler kulübü
çok çalışmam lazım...

buradan sonrası da yukarıdaki listeyle alakalı. hım hım hım hım, eveeet:
  • ek$i olayına yukarıda detaylıca değindik, tekrara lüzum yok.
  • byblos'ta veri yapısını kurmakla uğraşıyorum.
  • muha! için biraz muhasebe öğrenmem gerekiyor. fon/faiz gelirlerini, kredileri, kredi kartlarını, senetleri falan nasıl muhasebeye yansıtacağım hakkında hiçbir fikrim yok.
  • plone gayet temiz bir cms. incelemye fırsatım pek olmasa da birçok da eklentisi var. genişletilebilir her şey iyidir.
  • altivi analiz için halen saçmasapan bir dikdörtgenler prizmasını nasıl çizeceğimi bulmaya çalışıyorum. saçmasapan, çünkü daha önce öngörmediğim bir durum var. bir otomobil ihalesinin inceliyoruz diyelim; tavan fiyat onbinlerce ytl, yani en kötü durumda fiyat ekseni üzerinde onbinlerce görülebilir boyutta olması gereken birim olacak. bu durum diğer iki ekseni incelenemez kılabilir, böyle olunca da grafiği bu formatta hazırlamanın bir anlamı kalmıyor. galiba asansörlerden çok buna kafa yormak lazım:P altivi listener ise ek$iAPI işini bekliyor, çünkü altivi'den veri toplama işini ek$iAPI'ı kullanarak yapıyorum.
  • quant ve versaTile konusunda herhangi bir eylem planım yok, şimdilik uykudalar.
  • nonlinear forum daha pişmedi.
  • inanclisesi.network olayını okul yönetimiyle paylaşmayı düşünüyorum. konu ile ilgili birkaç ilginç olduğunu düşündüğüm fikrim var 3d-mıridi falan, ama önümdeki dikdörtgenler prizmasını halledeyim ben önce sanki.
  • mezunlar derneği "türk eğitim vakfı inanç türkeş özel lisesi mezunları derneği" olarak değil de "gebze inanç türkeş özel lisesi mezunları derneği" olarak kuruluyor. belgeler bugün il dernekler müdürlüğü'ne iletildi, kısa sürede çalışmaya başlayabilirmişiz gibi geliyor bana yoksa şüphem mi var?
  • girişimciler kulübü işi caner lojmanına ve ortamına iyice yerleşip alışınca başlayacak umarım. aceleye de getirmiyoruz, memleketi kurtarmak uzun, zorlu bir süreç ve ülkemin kahvehanelerinde başlıyor. efkarın aşama kaydetmeye engel olan bir etken olduğu da buralarda keşfedildi, ki o yüzden kimse kahvehane safhasından ileri gidemiyor. biz bir ihtimal gidebileceğimizi düşünüyoruz.
  • r/c otonom araçlar işi ise darpa grand challenge ile ilgili bir video izleyince takıldı kafama. tabi bir hummer alıp milyon dolar harcamayacağım, ama buna göre daha mikro düzeyde kalan şeyler yapabilirim. ne bileyim, orta büyüklükte uzaktan kumandalı araçlara microcontroller yerleştirip delicesine hack etmek istiyor make etkisindeki bünye. of ya, of! patates bazukası daha kolaydı sanki...

dün sezai bey'i ziyaret ettik. azdık, ama olsun. nur içinde yat...

No comments:

Post a Comment