Programlama

AIR AIR AIR :)

27.03.2008

AIR ile ilgilenmeye tüm hızıyla devam :)...

Efenim geçen yazımda flash ile AIR class'larına erişemediğimi yazmıştım. Bunu neden yaptı bilmiyorum ama Adobe bilerek yapmış :) Oysa harika olmaz mıydı flash içinden de yazabilseydik kodları :) Neyse flash içinden yazamıyoruz ama flash'a ek olarak bir class oluşturduğumuzda çillop gibi yazılıyor kodlar heryerine de ulaşabiliyorsunuz AIR'in :)

Hemen belirtlek lazım ki AIR içindeki class'lara air.net... gibi ulaştığınız gibi flash'a ait bir kaç class daha eklenmiş durumda. (http://livedocs.adobe.com/air/1/devappsflash/help.html?content=AIR_API_List_Appendix_1.html) bu class'lar ile veritabanına bilem bağlanabiliyorsunuz ki uygulamaların olmassa olmazlarındandır bilirsiniz :) Mesela flash.desktop.NativeApplication class'ı çok güzel bir class :)

Ben class'ların hazırlanması için FlashDevelop programını kullanıyorum ve çok da memnunum :) Beta6 versionunda AIR için otomatik tamamlama fonksiyonları falan hepsi eklenmiş durumda hiç bir sıkıntı yok. Bu işler için Flex kullanırım kralını tanımam diyenlere de lafım yok lakin Flex hem fazla ağır kaçıyor hem de bir türlü düzgün kıramadım mereti :))) Serial sorup duruyor keranacı :)

Neyse konuya geçelim efenim. Buyrun size örnek bir dosya gönderiyorum sistemde çıkma işlemini falan yapan. Bu cadı.com.tr için yaptığım request tabanlı sistemleri de hazırlayabiliriz artık Flash içinde. Hatta javscript ile kullandığım haliyle kullanılıyor o da güzel bir olay :) Ahanda örnek dosya bakın gülün eğlenin :)

package ebolax
{   
    import flash.desktop.NativeApplication;
    import flash.display.*;
    import flash.events.*;
    import flash.text.TextField;
   
    public class Main extends Sprite
    {
        var _root:MovieClip;
        var debug_txt:TextField;
        var close_btn:SimpleButton;
       
        public function Main(root:MovieClip)
        {   
            _root = root;
           
            debug_txt = TextField(_root.getChildByName("debug_txt"));
            debug_txt.text = "deneme";
           
            close_btn = SimpleButton(_root.getChildByName("close_btn"));
            close_btn.addEventListener(MouseEvent.CLICK, doExit);           
           
            var mc:MovieClip = new MovieClip();
           
            mc.graphics.beginFill(0xFF, 1);
            mc.graphics.drawCircle(40, 40, 20);
            mc.useHandCursor = true;
            mc.name = "mc";
           
            mc.addEventListener(MouseEvent.CLICK, doJob);
           
            _root.addChild(mc);
        }       
       
        public function doJob(event:MouseEvent)
        {
            debug_txt.text = _root.getChildByName("mc").alpha.toString();
            MovieClip(_root.getChildByName("mc")).alpha = 0.5;
        }
       
        public function doExit(event:MouseEvent)
        {   
            NativeApplication.nativeApplication.exit();
        }
    }   
}

Programlama

Adobe AIR Devam

27.03.2008

Efendim selamlar saygılar. Bugün günün büyük bir bölümünü AIR ile proje geliştirmekle geçirdim. Buradan sizlere karşılaşacağınız sorunları yazayım ki siz de saç baş yolmayın :)...

Öncelikle proje www.cadi.com.tr adresinden bir sayfa kullanarak yazılan son 10 yazıyı AIR uygumalası içinde göstermekti. Aslında ben Flash ile bu projeyi yaparım diyordum ama ne hikmetse AIR dökümanlarında yazanları Flash'da yaptığım zaman saçma saçma hatalar veriyor. Neyseki Dreamweaver ile de gayet güzel AIR projeleri geliştirilebildiğini bildiğimden hemen salladım Flash platformunu :)... Dreamweaver ile nasıl bir proje oluşturulabildiğine dair bir önceki yazıda bahsettiğim için bunu esgeçiyorum. Bu sefer daha düzenli bir şekilde css, image, javascript dosyalarını falan ayırarak cillop gibi çalıştım efenim.

Beni büyük sıkıntıya sokan ilk konu Türkçe karakter sorunu oldu. Zaten bir projede (özellikle yeni bir teknoloji ise) Türkçe karakter problemi yaşamassanız başınıza taş yağar... Efendim bu problemi AJAX'da kullandığım UTF-8 dönüştürücüsüyle hallettim. AIR projesinin header'ini <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> yaptım ve uzaktan aldığım yazıları return iconv("windows-1254", "UTF-8", $value); kodu ile dönüştürdüm. Böylece Türkçe karakter problemi kalmadı. Yalnız bunu daha Mac ortamında falan da deneyeceğim. Hadi bakalım hayırlısı :)

Efenim 2. büyük problem pencere kenarlarını yoketmem ve pencere taşıma işlemi için kod aramam oldu. Bir sürü yerde kod var fakat bir türlü yemedi. Sonra bir yerden bulduğum şu kod bütün sıkıntılarımı giderdi :

document.getElementById("header").addEventListener("mousedown",doMove);
function doMove(event)
{
    window.nativeWindow.stage.nativeWindow.startMove();
}

Bu kodun window.nativeWindow.stage.nativeWindow.startMove(); kısmı için aramadığım yer kalmadı. İşin asıl gıcık tarafı her türlü AIR kodunu bir güzel renklendiren ve tamamlayan Dreamweaver'ın bu kodu tanımaması ve renklendirmemesi oldu. Yalnız prewiev kısmında falan hata vermiyor cillop gibi çaışıyor kod.

Efendim uzaktan içerik alma ile de ilgili bir kod parçası koyayım da sevinsin gariban insanımız :)

        var request = new air.URLRequest(url);   
        var loader = new air.URLLoader();

        try
        {
            loader.load(request);
        }
        catch (error)
        {
            hideLoader();
            alert("Yazılar Alınırken bir hata oluştu!");
        }
       
        loader.addEventListener(air.Event.COMPLETE, onComplete);
       
        function onComplete(event)
        {
            hideLoader();
           
            yazilar = loader.data;
           
            document.getElementById(dest_div).innerHTML = yazilar;
           
            var tags = getTagName('div');
           
            for (i = 0 ; i < tags.length ; i++)
            {
                if(tags[i].id.substring(0,4) == 'link')
                {
                    addEvent(tags[i], "click", displayDetay);
                }
            }
        }

Artık programcı olan anlar bu koddan bir şeyler çıkarır yok öyle beleş ekmek :) Lakin Krokiller kardeşim isterse en delikanlısından gönderirim bütün projeyi o benim canım :)

Hadi bakalım bol AIR'lı günler... hasss oradan :D



Programlama

Adobe AIR Hmmmm hmmmm…

26.03.2008

Olm bu AIR acaip bir şeymiş yaw. Sistemin altyapısını DHTML olarak da kasabiliyorsunuz. Bildiğin HTML sayfası hazırlıosun ve AIR programı haline getirebiliyorsun. Flash ile hazırlama olayına okey de bu tam çılgın olmuş :)

Efenim ben araştırdım ihtiyacınız olanları söyliyim :)

Web işleri için en kral program Dreamweaver'dır bunu böyle belirleyelim öncelikle (Şirket birsürü "Adobe Web Premium CS3" aldı ondan Dreamweaver'ım falan lisanslı lütfen b.k atmayın :))... İşte bu Dreamweaver için Adobe çok güzel bir eklenti yapmış sizler AIR oluşturun diye... Aha da burada :

http://labs.adobe.com/wiki/index.php/AIR:Dreamweaver_CS3_Extension

Bu extention'ı yükledikten sonra Dreamweaver'da Site -> New Site menüsünden yeni bir site oluşturuyoruz. İşte AIR için bir klasör hazırlayıp onun içine koyuverin gari :) Bu yeni site tanımlamasını yaptıktan sonra Site menusunde "AIR Application Settings" ve "Create AIR File" menüleri aktif oluyor. Uygulama özelliklerini ayarladıktan sonra AIR uygulamanızı oluşturuveriyorsunuz :) Bu arada bu uygulama özellikleri sizin için application.xml dosyasına yazılıyor ve Site için belirlediğiniz klasöre otomatik olarak yazılıyor. Ayrıca AIR Content'ine de yazılıyor. AIR içinde kullandığınız her materyali "AIR Application Settings" menüsünden "Included Files" kısmında ekliyoruz. Initial Content kısmında da açılış sayfamızı (HTML) seçtik mi rahatlıyoruz böyle salıyoruz kendimizi.

Şöyle basit bir HTML örneği yazayım da şuraya pekişsin :)

A! bu arada Adobe AIR SDK içinden çıkan "AIRAliases.js" javascript dosyasını da lütfen projenizin içine yerleştirin ;) SDK'ı http://www.adobe.com/products/air/tools/ adresinden araklayabilenzi. Aslında bu adresten herbişeyi alabilenzi.

http://livedocs.adobe.com/air/1/devappshtml/help.html?content=taskbar_1.html
adresinden de
güzel döküman aldın mı değmen gönlüme :)

Bol AIR'li günler deeermişim!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title>AIR Test</title>
<style type="text/css">
<!--
body {
    background-color: #333333;
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
}
.style1 {color: #FFFFFF}
.style3 {color: #666666}
-->
</style>

<script src="AIRAliases.js" language="JavaScript" type="text/javascript"></script>

<script language="javascript">
       
    function onExit()
    {
        alert("exit!");
        air.NativeApplication.nativeApplication.exit();
        window.nativeWindow.close();
    }
   
</script>
</head>

<body>
<span class="style1">test test <span class="style3">test</span> test </span>

<div id="close" style="background:#000000;color:#FFFFFF; width:100px;height:30px; position:absolute;left:10px;top:100px;" onclick="onExit();">
Kapat
</div>

</body>
</html>

Programlama

Flash Realtime 3D

25.03.2008

Efenim biz burada movieclip çevirelim button yapalım derken elin adamı deli gibi kafa patlatıp Flash için realtime 3D kütüphanesi yazıyor. Uzunca bir süredir var bu projeler fakat son dönemde yapılan optimizasyonlarla ve ActionScript 3.0'ın gücüyle hızları kullanılabilir seviyeye geldi. Adamlar Max'in 3DS objesini bile çatır çatır kullanıyorlar flash içinde :) Bu işlerde baba olan 3 adet kütüphane var... Sandy, Away3D ve Papervision...

3D engine'ler şu anda kuru model çevirmenin ötesine geçmiş durumda. UW kaplamaları, ışıklandırma falan yapabiliyorlar. Yani gerçek 3D'de ne varsa Flash'da da var :)

Ben babalardan Sandy ve Away3D'i inceledim. İkisi de birbirine baya benzio ama fonksiyon ve class isimleri farklı olduğu için birinden birini tercih etmenizde yarar var :) Away3D daha profesyonel projelerde kullanılmış yani halk Away3D'i seçmiş :) Papervision ile de yapılmış bir iki çalışma gördüm ama Google falan kastığımda hep Sandy ve Away3D'e denk geliyorum. 3DS Max kullanıcıları için "AS3GeomExporter" isimli bir plugin hazırlanmış. Bu plugin ile bu bahsettiğim engine'lerde kullanılabilecek modelleri export etmek mümkün oluyor. Away3D'nin son versiyonlarınd 3DS objelerini doğrudan kullanmak da mümkün.

http://www.flashsandy.org

http://www.away3d.com

adreslerinden demoları ve tutorial'ları indirmeniz mümkün. Ayrıca engine'leri de tabii :)


Sample.swf









Programlama

Actionscript 2.0 RegExp class’i

25.03.2008

Efenim actionscript çeken bilir bir email kontrolü bile yapmak zor iştir çünkü klasik javascript ile gelen RegExp nesnesi AS 2.0'da kaldırılmıştır (nedenini bilemiyorum :)

İşte artık dertlerinize son! ekteki dosyadan çıkan class ile çattır çattır RegExp kullanabilecek ve hem replace olsun hem de email kontrolü gibi kontroller olsun yapabileceksiniz :) Rar dosyasının içinde örnek dosya da mevcut...

Hadi kolay gelsin.

regExp.rar (13.04 kb)

Programlama

Kodcular buraya

24.03.2008

Efendim bugün sizlereeeeeğ kod yazarken kullandığım pratik yazılımlardan bahsedeceğimdir.

Efendim böyle anlık basit kod değişimleri gerektiğinde bir Visual Studio'dur Netbeans'dir açmak zulüm olabiliyor. İşte bu durumlarda bahsedeceğim küçük text editorleri işimizi çok kolaylaştırıyor.

Öncelikle Notepad++ :

Benim en sık kullandığım programlardan biridir kendisi. Hemen hemen bütün dilleri tanır renklendirir çiçek gibi yapar ortamı. http://notepad-plus.sourceforge.net/uk/site.htm adresinden edinebilirsiniz kendisini. PHP ile kod tamamlama özellikleri falan da var bu programın ama ben kullanmıyorum şahsen bilmiyorum o yüzden detayını. Yalnız vakti zamanında Macromedia Director ile javascript yazarken Director'a özgü objeleri de renklendirsin diye özelleştirmiştim. Yaaani ne oluyor bu editoru kendi kafanıza göre yeni bir dil için veya mevcut diller için özelleştirebiliyorsunuz :)

Sonra PSPAD :

Bu program Notepad++'dan daha tanınmış bir program. Bununla büyük projeler geliştirenler bile var ki bi compiler tanımladığınız zaman IDE tadında bile kullanabiliyorsunuz. http://www.pspad.com adresinden de bu programı bir indirin bakın derim ben size :)

Yukarıdaki 2 program da ücretsiz olarak dağıtılmakta ve özellikle PSPAD 1.000.000 kullanıcıyı geçtim diye hava atıyor :) Bunların dışında EditPlus gibi ücretli bir alternatif daha var ve birsürü kullanıcısı da var lakin ben pek sevmiyorum editplus'ı :) UltraEdit diyenler olabilir ama ı ıh :) Ayrıca belirtmem lazım ki bu programlar hep Windows ortamında çalışan programlar. Ben Notepad++'i Ubuntu'da Wine ile çalıştırdım ama bir Windows altında çalışmak kadar rahat olmuyor tabii. Linux için sağlam bir text editor istiyorsanız EMacs derim başka da bir şey diyemem :)






Sinema

Jumper ve Hitman

23.03.2008

Efenim haftasonu azmettim ve Jumper ve Hitman filmlerini seyrettim :)

Jumper'i ilk olarak Krokiller biraderimin gönderdiği web sayfası linkinden görmüştüm. Alfred Bester isimli tanrısal yazarın 2 muhteşem romanından biri olan Kaplan Kaplan ile konu olarak çok benziyordu (aslında Kaplan Kaplan'la benzediği tek nokta ışılanma olayı ama daha önce işlenmedi kardeşim bu konu hemen onu hatırlatıyor :)... Neyse efenim işte filmde bir herif var ve ışınlanabiliyor ve zamanla bu olayı yapabilen tek kişi olmadığını ve düşmanları olduğunu farkediyor ve olaylar gelişiyor... Yani konusunu gayet güzel işlemiş bir film lakin konusu öyle Allah Allah dedirtecek bir konu değil. Filmin özel efektlerini ben çok sevdim. Özellikle ışınlanma sahneleri gayet başarılı yapılmış böyle etrafın etkilenmesi falan çılgın olmuş :) Böyle bir filmdi işte... :)

Hitman derseniz konusu biraz karışık olarak hazırlanmış bir film. Bir konuşmayı kaçırsanız "neler oluyor olm burada" diyorsunuz bu yüzden ara sıra geriye sararak konuşmaları tekrar okudum :) Bence gayet balon olan bir konuyu karizmatik göstermek için karıştırmışlar :) Film güzel bir aksiyon filmi olmuş. Uzun zamandır karizması bu kadar iyi bir ana karakter görmemiştim. Adam gayet oyundaki gibi yürüyor oyundaki gibi davrarnıyordu helal olsun :) Bu arada bilmeyenler için Hitman bir oyun filmi. Ben zamanında bir tek Hitman 3'ü oynamıştım ve deli zor gelmişti oyun bana. İşte mekana aşçıyı öldürüp onun kıyafetiyle giriyorsun sessizce adamını öldürüyorsun falan ölme eşşeğim ölme :)

Filmler böyle filmlerdi tam bahsettiğim gibi. Ben "Uykusuz" dergisini okumaya geçiyorum siz kendinize iyi bakın :)

Ayrıca blog'umun yukarısında yer alan resimleri dönüşümlü hale getirdim göremeyenler Ctrl + F5 yapsınlar :) Bir sürü resim yaptım herşey sizler için :D

Programlama

Flash MovieClip bulma

22.03.2008

Buradan tüm flash tutkunlarına selamlar :)

Efenim flash AS 2.0'da bir MovieClip içindeki tüm objeleri döndüren ve bunlara erişimi sağlayan bir fonksiyonu bundan uzun bir zaman önce Krokiller ile araştırmış ve bir sonuca ulaşamamıştık. Efenim bugün bir iş için böyle bir sistem gerekti ve kedinin kuyruğu sıkışınca hesabı bu sefer güzel bir sonuca ulaştım :) Eeee bilgi paylaştıkça artar değil mi yiğidolar? Buyrun size AS 2.0 kodları. Bu arada AS 3.0'da MovieClip'lerin Child muhabbeti olduğundan bu işlem rahatlıkla yapılıyor. Hatta 3.0 ile şimdiye kadar 2.0 için bulamadığım bir MC'i bir MC'nin içinden başka bir MC'nin içine taşıma olayı bilem yapılabiliyor.

Öncelikle root'da bir MC yaratıyoruz ve buna herhangi bir instance name vermiyoruz. İsteyenler bir kaç tane de yaratabilir.

Frame koduna aşağıdaki kodu yapıştırıyoruz. 


var i = 0;

for (obj in _root)
{
    if(typeof(_root[obj]) == "movieclip")
    {
        _root[obj]._name = "menu" + i;
        i++;
    }
}

trace(i);

trace(_root["menu0"]);

bu işlem i değerine _root'da kaç adet MC olduğunu aktarıyor ve _root'daki her MovieClip nesnesine (typeof ile MC olduğunu test ediyoruz) "menu" + i ile "menu0", "menu1", "menu2", ... gibi isimler veriyor. Son olarak i değerinin kaç olduğunu ekrana basıyoruz (kaç MC olduğunu) ve ardından "menu0" ismini almış MC'i ekrana yazdırıyoruz. _root'un da bir MovieClip olduğunu unutmayınız ;)

Efendim kolay gele :)

test.fla (43.50 kb)

Oyun

PSP coşsun artık :)

21.03.2008

PSP'nin durgun bir dönemine girdik yaauw God Of War çıktı ama kısa sürdü hemen bitti :) "Final Fantasy VII Crisis Core" nasılmış bakacaz o da çıktı lakin bundan sonra uzun bir süre sağlam oyun yok. Lego Indiana Jones haziran gibi çıkacak onu da beklemekteyim :) 2008'in sonunda açılıyor gibi görünüyor piyasa. SNK Classics, Samurai Shodown, Dragon's Lair, Last Ninja,.... gibin kral oyunlar piyasaya çıkacak biz de atlayacağız üstlerine :)

PSP 2 gibi bir olay olmaması ilginç geldi bana. Sony bir sürpriz yapmaz inşallah da şimdilik açıklama 2 yok slim & light var ki yapı olarak bir yenilik getirmediği için 2 anlamına gelmez ;)

Bu arada ATI kardeşim GP2X almış baya da sevmiş. Beni tanıyanlar PSP mi yoksa GP2X mi alsam diye kastığımı bilirler :) GP2X biraz daha ucuz olsaydı olabilirdi ama o paraya PSP almamak salaklık oluyor :) Yalnız GP2X'in içinde linux olmasını USB portu olmasını falan ayrı seviyorum tabii. Alete tak istediğin external cihazı çalıştırsın (Wireless, Keyboard vs...) Laptop aldım 200 YTL daha koyup o da ilginçtir herbişeyi yapıo laptop ve küçük ve GP2X'den daha hızlı :) Linux de kurdum ulen güzel oldu be :)

Genel, Kişisel

Kıssadan hisse…

21.03.2008

İşyerinde kendime kulaklık aldım artık doyasıya melodic metal :)

Youtube'un kapatılmasını kınıyorum. Nasıl bir zekanın ürünüyse proxy kullanmayı bilen kullanıcılar çatır çatır dolanıyor bilmeyenler yasaklı. Abi benim bildiğim bunun adı ayrımcılıktır ama neyyyse...

Tamamen bilgileri hafızada tutan bir online oyun yapıyorum yakında görürsünüz :)

Oracle R12 çıkarmış ben daha R11'in kitabını bitiremedim Allah sonumuzu hayır etsin :)

BSA'dan mail geldi bir kaç haftadır BSA kamyonları mı otobüsleri mi ne gezio diye. Yoksa anladılar mı?... şaka len şaka neyi anlayacaklar :)... yoksa....???? :))

Ubuntu ile bu sefer güzel gidiyoruz (maşallah diyelim vuralım tahtaya :)) İnternet olsun USB olsun sorunsuz çalışıyor bakalım şimdilik. Yalnız düzgün bir Backup sistemi bulamadım linux için. Şimdilik klasik tar sıkıştırma formatıyla bütün dosyaları sıkıştırıp koyuyorum bir köşeye. Şu anda aklıma geldi Acronis True Image programını çekmiştim bu işi yapabildiğini söylüyordu dur bakiim nasılmış... Güzelmiş laaaan :) - Acronis True Image için de CFB arkadaşıma teşekkürü bir borç bilirim :)

Intel yeni 45nm uretim teknolojisine geçti eski 65nm teknolojisine sahip işlemcilerinin fiyatlarını nisan ayında düşürüyor haberiniz olsun :)

Dün uzun zamandan sonra basketbol oynadım pek mutlu oldum. Vücut hamlamış iyice açıldı güzelleşti :) Pasımızı attık artık gelecek haftaki maçlar daha güzel geçer.

Windows Vista'ya SP1 geldi dertler katlandı :) Ulen vista'ya nedense ısınamadım ben ne yapacan o kadar uçan kaçan pencereyi. Windows'unu halen 2000 stili kullanan biri olarak Vista'ya düşman olmam çok doğal bir durum zaten :) Okuduğum kadarıyla SP1 ile bazı programlar çalışmamaya falan başlamış... hacı olacak iş mi yaaaw :) Bu arada şirkette bir çok kişi MacOS kullanıyor ve benim de kullandığım kadarıyla gayet cici bir sistem. Altyapısında UNIX gibi güçlü bir sistem varken ön yüzünde de bu kadar rahat bir kullanım varken o işletim sistemi güzel olmayacak da ben mi güzel olacam :)

Programlama

Netbeans 6.1 Beta

20.03.2008

Bugün CFB arkadaşımın tavsiyesi üzerine kurdum ve söylenenlerin doğru olduğunu gördüm. Başta açılış hızı olmak üzere IDE gerçekten gözle rahat görülür oranda hızlandırılmış. Kod yazarken falan sistemin kasılması gibi bir durum kalmamış artık.

Geçen yazılarımdan birinde belirtmiştim Netbeans diğer IDE'ler karşısında tutunmak istiyorsa performansını artırması lazım deyi ve Visual Studio 2008'in bile performans konusunda gayet iyi duruma geldiğini... Adamlar dinlemiş olm beni :)

www.netbeans.org

edinin derim...