25 Ekim 2013 Cuma

Dünya'yı Değiştiren 18 Matematiksel Denklem

2012 senesinin başlarında, matematikçi Ian Stewart "Bilinmeyenin İzinde: Dünya'yı Değiştiren 17 Denklem" başlıklı kitabını yayımladı ve insanlığın tarihinde keşfedilen 17 matematiksel denklemi, bilimsel yoğunluğundan kurtararak, herkes tarafından anlaşılabilir bir hale soktu. Prof. Dr. Ian Stewart'a bu kitabını neden yazmaya karar verdiği sorulduğunda şöyle yanıt veriyor:

23 Ekim 2013 Çarşamba

SpiderMonkey Javascript Motoru - Basit Bir Uygulama

Önceki yazıda bahsettiğimiz üç temel bileşenin her birinin gerektirdiği ilgili JSAPI fonksiyonlarını açıklayacak olursak:

  • Runtime: Runtime'ı oluşturmak için JS_NewRuntime, işimiz bittiğinde yok etmek için JS_DestroyRuntime kullanılır. Uygulamanın SpiderMonkey'le işi bittiğinde ayrılmış kaynakları tamamen bırakmak için  JS_ShutDown kullanılır.
  • Context: Context'i oluşturmak için JS_NewContext ve JS_DestroyContext kullanılır. ECMAScript standartlarına azami uyum için uygulamaların JSOPTION_VAROBJFIX'i JS_SetOptions'u kullanarak aktifleştirmeleri gerekir. En son Javascript dil özelliklerini almak için ise JS_SetVersion kullanılabilir. Ayrıca her context için hata raporlama JS_SetErrorReporter kullanılarak sağlanabilir.
  • Global Nesne: Bu nesneyi oluşturmadan önce JSCLASS_GLOBAL_FLAGS opsiyonuna sahip bir JSClass'a ihtiyacımız var. Aşağıda verilen örnekte metotları ve özellikleri olmayan çok basit bir JSClass (global_class isminde) tanımlanmıştır. Ardından global nesneyi oluşturmak için JS_NewGlobalObject'i kullanmamız gerekiyor. Daha sonra bu global nesnemizi standart javascript global nesneleriyle doldurmak için JS_InitStandardClasses kullanılır.

3 Ekim 2013 Perşembe

SpiderMonkey Javascript Motoru

SpiderMonkey Mozilla isimli kuruluşun geliştirmekte olduğu bir Javascript motorudur. Buradan anlaşılacağı üzere bir API (Application Programming Interface) kütüphanesidir ve geliştirici, uygulamalarında javascriptin sunduğu kolaylıklardan bu Api aracılığı ile faydalanabilir. Bu, Browserlara özgü Dom nesnelerinin uygulama içerisinde kullanılabileceği anlamına gelmemeli zira Dom, browser spesifik bir yapıdır. SpiderMonkey ise bazı temel javascript veri tiplerini, sayılar, nesneler ve dizileri vs. ve bazı temel javascript metotlarını geliştiriciye sunmaktadır. Uygulama geliştirici kendi bileşenlerini (nesneler, sınıflar, metotlar, diziler vs.) kendisi oluşturur ve SpiderMonkey'e bunları kullanacağını bildirir.

Anlaşılır olması açısından bu hususla ilgili bir iki örnek vermek gerekirse Excelde (vbscript ile) yapılan uygulamalar ya da günümüz oyunlarında (lua vs. ile) farklı modların geliştirilebilir olması sundukları script desteği sayesinde olmaktadır. Bu sayede kullanıcı uygulamayı ileri düzeyde özelleştirebilmekte ve uygulamanın çekirdeği üzerinde yeni uygulamalar geliştirebilmektedir. Heyecan verici değil mi :) O zaman sözü uzatmadan hemen yazımıza geçelim.