Core Uygulama Sunucusu Kurulumu

0
anonim

Common Lisp tabanlı uygulama sunucumuzu ücretsiz olarak deneyebilirsiniz. Bunun için yapmanız gerekenlerin anlatıldığı belgeye göz atabilirsiniz.

Günümüzde üretilen yazılımların çoğu web uygulamaları şeklinde ya da web servisleri olarak hizmet vermektedir. Web uygulamaları, erişilebilir, birden fazla kişinin kullanımına elverişli ve merkezi olarak güncellenebilir servislerdir.

Gelecekte oldukça fazla web uygulaması ve web servisi yazacağımız düşünüldüğünde bu konuda bize yardımcı olacak araçlar üretmek iyi bir yatırım olacaktır. Bu nedenle yazımda sizlere Common Lisp dili ile yazılmış bir web uygulama sunucusu olan Kor Web Uygulama Sunucusu'nu tanıtacağım.

Görüşler

0
zekzekus
güzel bir belge olmuş. belge önemli bir açığı kapatıyor. belgelendirme açığını :) umarım devamı gelir ve bizde Core sunucusuna hakimiyetimiz arttığında belgelendirme olsun kodlama olsun, projeye katkı verebiliriz.
0
FZ
Elinize sağlık.

Bu yazıda bahsedilen CL ve UCW tabanlı geliştirilmiş çatı (framework) kullanılarak geliştirilmiş uygulamalar var mı acaba, yani kamu erişimine açık olan?
0
eevrim
http://www.core.gen.tr/projects/ adresinde ucw+ icin eski/yeni birkac uygulama var, hepsinin yeni API'ye uygun oldugunu garanti edemiyorum ne yazikki.
0
zekzekus
Yabancı kaynaklı bu var benim bir bildiğim. http://www.paragent.com

Bir de şu Uncommon Web ile "Merhaba Dünya" yazısını UCW+ için revize etsem faydalı olur mu diye düşünüyorum??

0
eevrim
ucw ile core-server arasindaki hiz farkini gecen gun test ettik:
ucw:
[21:09] Concurrency: 10.79
[21:09] Transaction rate: 6.12 trans/sec
[21:09] 4854 bytes each
[21:11] bogomips : 2104.04

core-server:
[21:13] Transactions: 322 hits
[21:13] Availability: 100.00 %
[21:13] Elapsed time: 5.06 secs
[21:13] Data transferred: 1546244 bytes
[21:13] Response time: 0.15 secs
[21:13] Transaction rate: 63.64 trans/sec
[21:13] Throughput: 305581.82 bytes/sec
[21:13] Concurrency: 9.34
[21:13] Successful transactions: 322
[21:13] Failed transactions: 0
[21:13] Longest transaction: 3.33
[21:13] Shortest transaction: 0.01

Yeni framework uzerinde calisiyoruz daha genis kapsamli ve eski web uygulamalarini da rahatca core-server'a cekebilecegimiz bir yapi dusunuyoruz. Core-server'dan en fazla 300req/s aldik, bu java ile karsilastirildigindan 3'te bir oraninda yavas bir deger. IOLIB'e gecmeyi dusunuyoruz, ama once IOLIB'deki bellek hatalarinin duzelmesi gerekiyor.

Thread'ler arasi mesaj iletimi icin Unit adi verdigimiz yapiyi uyguladik. Bu yapi herhangi bir objenin thread olarak calismasina olanak saglarken ayni zaman clos method'larini kullanarak API yaratma olanagi sagliyor, bu sayede thread programlama/debug rahatliyor.

Bunun disinda core-server'in cok guclu olmasi ve protokollere tam hakimiyet saglamasi amaciyla h.baker parser'inin genisletilmis bir surumunu uyguladik. Bu parser'in fonksiyonel calisabilmesi icin transactional streams gerekliydi, bu ihtiyac da core-streams adi verdigimiz bir katman sayesinde uygulandi.

http://paste.lisp.org/display/42477 adresinde ornek bir http istegini gorebilirsiniz. Su ana kadar RFC 2616,2045,2046, 2109, 2388, 2396 tamamen bastan yazildi.

Aycan'nin hazirladigi boxset bu yeni kod blocklarina sahip ancak henuz devreye alinmadi. Bunun icin yeni web catisinin bitmesini bekliyoruz.

Ilgilenen arkadaslari irc.core.gen.tr:7000 sunucumuzda gormek bizi mutlu ediyor:)
0
eevrim
IOLIB ile yaptigimiz epoll(4) testleri java degerlerine oldukca yakin cikti, bu bizi mutlu etti, simdi bize gereken guzel bir "half arsed coroutine"/"partial continuation" uygulamasi. sbcl birincil dereceden surdurmeleri desteklese cok daha leziz olabilirdi, native thread'lerle idare etmek zorundayiz ($imdilik:)
Görüş belirtmek için giriş yapın...

İlgili Yazılar

Fonksiyonel Geometri, Lisp, Escher, Postscript: Sanat ve Bilgisayarlar

FZ

Daha önce FM'de bir Mars programlama projesi yarışması bağlamında adı geçen Frank Buss bu sefer de gündemimizi Peter Henderson'ın makalelerinden uyarladığı ve Common Lisp kullanarak gerçekleştirdiği bir fonksiyonel geometri uygulaması ile meşgul ediyor. Fonksiyonel programlamanın grafik uygulamalarını kullanarak anlaşılması bakımından çarpıcı bir örnek. Program çıktısını Postscript olarak üretiyor.

Söz konusu grafik yapılar pek çok matematikçinin ve diğer bilim insanlarının da hayranlığını kazanan Hollandalı meşhur sanatçı M. C. Escher'in yapıtlarından esinlenerek hazırlanmış.

Meta-programlama sanatı

tongucyumruk

IBM DeveloperWorks'te yayınlanan makalesinde Jonathan Barnett meta-programlama ve makro işleme konularını incelemiş. Yazının içinde CPP ve M4 gibi çeşitli makro dillerinden örnekler ve son olarakta Scheme ile yazılmış makrolardan bahsediliyor. Özellikle diğer dillerdeki makrolar ile Lisp ailesindeki dillerin makroları arasındaki farkı anlayabilmek için okunması gereken bir makale.

Barack Obama'yı Semantik Web Üzerinden Lisp ile Sorgulamak

FZ

Öyle bir veri tabanı düşünün ki şu sorunuza doğru cevaplar veriyor: "Barack Obama nerede doğmuştu? (Nerede dünyaya gelmişti diye de yazabilirsiniz) Doğduğu yere 15 km uzaklıktaki şehirler ve kasabalar hangileri idi? 2000 yılında bu yerleşim yerlerindeki ortalama fakirlik seviyesi ne idi?"

Bunu tek bir ilişkisel veri tabanı ile kolayca yapabilir misiniz? Yahut daha doğru soru: Neden tek bir veri tabanı olsun ve bu neden ilişkisel olsun? Buyrun semantik web ve RDF kullanın. Nasıl mı?

eXtreme Programming ve Bir Başarı Öyküsü

FZ

Bill Clementson son blog girdilerinden birinde birkaç gün önce gerçekleştirdikleri etkinlikte sunum yapan ve bir başarı öyküsü aktaran Ken Dickey'e yer vermiş.

Avustralya kökenli başarılı bir start-up olan Memetrics'in öyküsünü çarpıcı bir dille anlatan Dickey, eXtreme Programming metodolojisi ve Common Lisp'ten faydalanarak geliştirdikleri sistemi anlatan güzel bir sunum hazırlamış.

Keskin rekabetten ve gizli silahların gücünden hoşlananlar için incelenesi bir örnek. Afiyet olsun.

Common Lisp ve Bir Optimizasyon Tekniği: Memoization

FZ

"Memoization" tabiri bilgisayar bilimlerinde ilk kez Donald Michie'nin 1968 yılında Nature dergisinde yayımlanan Memo functions and machine learning (Memo fonksiyonları ve makina öğrenimi) makalesi ile gündeme gelmiştir.

Memoization tekniği bir fonksiyonu hesaplarken önceden hesaplanmış değerleri hesaplamadan kullanmak, dolayısı ile işlemi hızlandırmak olarak tarif edilebilir. Sözcük olarak "memorization"ı yani "ezberleme" eylemini çağrıştırmakla birlikte daha genel bir anlamı kapsamaktadır.

Programlama dilinden bağımsız olmakla birlikte, bu yazıda "memoization" tekniğinin Common Lisp'te nasıl kullanılacağına bakacağız. Bunun için Peter Norvig'in PAIP kitabı ana eksenimizi oluşturacak.