Arda Çetinkaya Yazılım ve arada kendim ile ilgili karaladıklarım…

Google, Chrome OS adında bir işletim sistemi ile karşımıza çıkıyor…Operating System kavramının gelişen teknoloji ile anlam değiştiriyor olması bazı kesimler tarafından tepki çekiyor olsa da, değişim kaçınılmaz…Ama peki ne kadar doğru bu değişim ve bakış açısı? İhtiyaçlara göre değişeceğinden tartışmak ve sorgulamak çok anlamlı değil…Neyse konumuza dönelim…

Chrome OS ile internetteki(bulut) uygulamaları kullanan,yöneten ve ilişkilendiren bir işletim sistemi yapmayı düşünmüş Google…Bilgisayar başında zaman geçirenlerin çoğu, bu zamanını web uygulamalarında geçiriyor olması Chrome OS’un doğduğu nokta sanırım.

Bilgisayarımızı açtığımız zaman web uygulamalarını, şu zamana kadar alışmış olduğumuz “uygulama” şeklinde kullanabileceğimizi ön gören bir işletim sistemi Chrome OS. Bu bağlamda OS kavramının temel başlıklarından biraz ayrılsada şu zamanki kullanım ihtiyaçlarına daha uygun bir yaklaşım diyebiliriz aslında. Google, geliştirmiş olduğu bir çok web uygulaması(Google Docs,Gmail,GTalk,Google Calendar) ile Chrome OS’un temel taşlarını zaten çok önceden oluşturmaya başlamıştı.

Bunların biraz daha net anlamak için aşağıdaki videoyu izlemek faydalı olabilir.

Daha çok yolu var Chrome OS’un…Ama kavram olarak yaklaşımı oldukça güzel şeylerin bizi beklediğinin bir göstergesi.Yani bu rekabet ortamında…(: Anladınız siz onu…

Cloud Computing, kavramının “Cloud OS” şeklinde değişiyor olması açıkcası beni oldukça heyecanlandırıyor.Artık web’deki herşey daha anlamlı ve daha fonksiyonel olacak bu bağlamda. İşletim sisteminin çekirdeği artık web olacak…Süper…(:

Microsoft’un Azure platformu ile ilgili geliştirmeleri,Google’ın Chrome OS ile ilgili gelişmeleri sanırım bütün bunların yapı taşı olacak…

PDC 2009 ile beraber bir çok yenilikler duyuruldu, mevcut ürünlerin son durumlarından bahsedildi. Benim en çok ilgimi çeken Windows Azure üzerindeki yenilikler oldu. Yaklaşık 1 yıl önce test edip kullanmaya başladığım, Windows Azure ortamının daha stabil bir hal aldığını görmüş olmak açıkcası mutlu etti. Geçtiğimiz günlerde çıkan yeni Windows Azure paketi ile bu haberler doğrultusunda Windows Azure ortamında çalışan ilk uygulamamı da daha da geliştirmeye başladım. Bunun ile ilgili ayrıntıları çok yakında paylaşıyor olacağım.

Dün PDC 2009’da Silverlight 4 Beta’sı duyuruldu. Bu beta daha çok geliştiriciler için ama demolar ve yeni gelen özellikler son kullanıcıyı çok memnun edecek gibi.Merakla bekliyorum…

Silverlight 4 Beta’sı ile ilgili ayrıntıları ve geliştirmek için gerekli olan dosyaları http://www.silverlight.net/getstarted/silverlight-4-beta/ adresinde bulabilirsiniz.Ayrıca http://www.silverlight.net/learn/videos/silverlight-4-beta-videos/ adresinden yeni gelecek özellikler ile ilgili videoları izleyebilirsiniz…

Logo_MSFTOffice2010_187x54

Office 2010 Beta versiyonu bugün itibari ile herkese açıldı. Aşağıdaki adresten ayrıntıları öğrenip, Office 2010 Beta’yı indirebilirsiniz.

http://www.microsoft.com/office/2010/en/download-office-professional-plus/default.aspx

Son zamanların popüler konusu bu GDO…Genetiği ile oynanmış besinleri yiyecekmiyiz,yemicekmiyiz…Şimdiki derdimiz bu…Zaten yıllardır yiyoruz bir çok şeyi sorgulamadan…Şimdi böyle GDO falan gibi kısaltma verince, genetik,organizma gibi arayada 2 bilimsel kelime ile duyarlı hale geldik iyice…Yesek mi yemesek mi,yersek ne olur yemezsek ne olur?

Bir şey olmaz,ben Türklük yapıp baştan söliyim de…Biz insanoğlu, böyle ihtiyaçlarımız doğrultusunda delmişiz,kazmışız dünyayı, kesmişiz sağı solu,yemişiz otu boku,boyamışız yeşili griye. Böyle de olması gerekiyormuş hani…Doğayı bozup,ona ayakuydurmaya çalışan bir sistem dahilinde yaşadığımızdan dolayı, bu bozma olayı giderek artıyor doğal olarak…Bunun sonucunda da doğanın bize sağladığı, var olmamızı sürdürebilmek için gerekli temel kavramlar bu bozulmada yok oluyor,gidiyor. Temel ihtiyaçları karşılayabilmek için, tanrı rolüne girip, gerekli temel kavramları yaratıyor oluyoruz zamanla…GDO da bunun gibi birşey aslında…Besinlerin genlerine müdahale edip, o besinlere farklı besin değerleri katıp, onları ve onlardan yapılan diğer besinleri değiştiriyoruz. Aslında güzel…Süper hatta…Hani dünyanın içine edip, yok ediyoruz ya, o yok olduğu zaman hala yaşayabiliyor olacağız…Süper dimi (:

gdoTabi bunları yaparken, çeşitli fark edilemeyen sorunlar çıkıyor…Domatese şeftali tadı veriyoruz, ama midemize kalıcı hasar için temel atıyoruz falan filan…Sonra ne oluyor…Bunlarda vücudumuz tarafından kabullenir duruma geliyor zamanla,yani gelecek…Neden? Çünkü değiştirdiğimiz doğaya ayak uyduruyoruz,vücudumuzda öyle…Böyle böyle zaman bizimde genlerimiz değişiyor, evrim ayağına…Sonra bir bakacağız ki 3 bacaklı,8 kollu insanlar olmuşuz çıkmışız…Haplarla beslenip, müzelerde kedi köpek iskeleti izleyen insanlar olacağız…Teknolojide o kadar ilerlemiş olacak ki böyle domatesten aldığımız şeftali tadı rahatsız etmeyecek, üstüne üstlük keşke karpuz tadı da olsaymış diyeceğiz…Unutulup gidecek güzelim domates…

Haa bunları sorun ediyor olacağız mı, ya da farkında olacak mıyız…Hayır…Neden? Çünkü içine ettiğimiz doğaya ayak uyduruyor olacağız…Yani zamanla ZGDO olacağız…GDO’dan daha güzel bir şey…”Zamanla genetiği değişmiş organizmalar”(ZGDO) olacağız…Hemen mi?…Telaşa mahal yok…Var bir 50-60 yıl…Bebeler düşünsün,dimi…

Not: ZGDO’nun zamanımızda yaratarak ilerisi için hazırlanıyorum ben…Çetinkaya Malikanesi labrotuvarlarında(halk arasında mutfak deniyor) zamanla gelişen oluşumlar beni geleceğe hazırlıyor. Mesela geçtiğimiz aylarda, çok önceden geçmiş aylardan kalan besin maddelerinin canlandığını ve buz dolabında değişik bir yaşam tarzı oluşturduklarını gördüm.İlginçti….Sonra düşündüm korkunçtu…Ve artık Çetinkaya Malikanesi labrotuvarlarını kapattım. Artık deney falan yok…

Mouse event’lerini web uygulamasında yakalamak çeşitli javascript kütüphaneleri ile daha zevkli hale geldi. Bunlardan bir taneside Microsoft’un Asp.Net Ajax kütüphanesi. Oldukça basit ancak bir çok hamallık olarak nitelendirebileceğimiz işten kurtarıyor bizi…Aşağıda Asp.Net Ajax kütüphanesini kullanarak bir “div” i hareket ettirmeye başlıyoruz…Bundan sonraki yazım umarım sürükle bırak ile ilgili olacak.(Üşenmezsem…:))

Öncelikle http://www.asp.net/ajax/ adresinden Asp.Net Ajax’ın client *.js’lerini indirmeniz gerekmekte. İndirdiğiniz dosyalar arasından şimdilik MicrosoftAjax.js’i kullanıyor olacağız.Öncelikle bu basit örneğimiz için sayfamızın body kısmını oluşturuyoruz.Aşağıdaki kod parçacığını body tag’inin içine yazmamız yeterli olacaktır.

27 <form id=“form1” runat=“server”>

28 <div id=“divMain” style=“width: 100%; height: 100%; background-color: Gray;”>

29 <div id=“divClickMe” style=“width: 200px; height: 200px; background-color: Red”>

30 </div>

31 X:<asp:Label runat=“server” ID=“lblXCor” Text=“”></asp:Label>

32 Y:<asp:Label runat=“server” ID=“lblYCor” Text=“”></asp:Label>

33 </div>

34 </form>

Bu kod ile aşağıdaki gibi bir görüntü elde edeceğiz.

body

Şimdi amacımız, bu kırmızı kareyi(div) gri alan içinde hareket ettirmek olacak, ki bunu da Asp.net Ajax’ın sağladığı kolaylıklar ile yapacağız.

Bunun için aşağıdaki kod bloğunu sayfamızın head kısmına ekliyoruz.

27 //Asp.Net Ajax Client API’sini sayfamıza ekliyoruz.

28 <script src=“MicrosoftAjax.js” type=“text/javascript”></script>

29

30 <script>

31 //PageLoad methodu,sayfamız yüklendiğinde istemci tarafında

32 //otomatikman çalışacaktır.Aynı Asp.Net’in server tarafında olduğu gibi

33 function pageLoad(sender, args) {

34

35 //Sys.UI.DomEvent namespace’inde ki addHandler methodu ile, DOM objelerine

36 //olay ataması yapabiliyoruz.Aşağıdaki kod bloğunda, divMain id’li div’lerde

37 //fare ile ilgili bir olay olduğu zaman hangi metodların çağırılacağını belirtiyoruz.

38 //Fareye tıklandığı zaman ShowWhatHappened metodu,

39 //Fare hareket ettiğinde de WhereIsTheMouse metodu çalışacaktır.

40 Sys.UI.DomEvent.addHandler($get(“divMain”), “mousedown”, ShowWhatHappened);

41 Sys.UI.DomEvent.addHandler($get(“divMain”), “mousemove”, WhereIsTheMouse);

42

43 }

44

45 function ShowWhatHappened(e) {

46 //Sys.UI namespace’indeki MouseButton nesnesi ile, istemci tarafında

47 //gerçekleşen olayın özelliklerini kontrol edebiliyoruz. Burada sol tuşa

48 //tıklandığını anlıyoruz.

49 if (e.button == Sys.UI.MouseButton.leftButton) {

50 //Farenin hareketlerine göre divClickMe div’inin yerini değiştiriyoruz.

51 $get(“divClickMe”).style.position = “relative”;

52 $get(“divClickMe”).style.top = e.offsetY;

53 $get(“divClickMe”).style.left = e.offsetX;

54 }

55

56 }

57 function WhereIsTheMouse(e) {

58 //Farenin kordinatlarını ekrana yazdırıyoruz.

59 $get(“lblXCor”).innerHTML = e.offsetX;

60 $get(“lblYCor”).innerHTML = e.offsetY;

61 }

62 </script>

Bütün bunlardan sonra, gri alan içerisinde faremizi tıkladığımız yere kırmızı kare hareket edecektir.Bazı işlemler bu tarz javascript kütüphaneleri ile oldukça kolay hale geliyor…Ne güzel değil mi…:D

<script src=”MicrosoftAjax.js” type=”text/javascript”></script>
<script>
function pageLoad(sender, args) {
Sys.UI.DomEvent.addHandler($get(“divMain”), “mousedown”, ShowWhatHappened);
Sys.UI.DomEvent.addHandler($get(“divMain”), “mousemove”, WhereIsTheMouse);
}
function ShowWhatHappened(e) {
if (e.button == Sys.UI.MouseButton.leftButton) {
$get(“divClickMe”).style.position = “relative”;
$get(“divClickMe”).style.top = e.offsetY;
$get(“divClickMe”).style.left = e.offsetX;
}
}
function WhereIsTheMouse(e) {
$get(“lblXCor”).innerHTML = e.offsetX;
$get(“lblYCor”).innerHTML = e.offsetY;
}
</script>