Application Express NEDİR?
HTML DB olarak ta bilinmekte, hıphızlı :) bir şekilde uygulama geliştirmemize yardımcı oluyor. Örnek bir uygulama geliştirerek anlatmaya çalışacağım. Öncesinde biraz teorik bilgi vermeye çalışacağım.
Ne tür uygulamalar geliştirebiliriz Apex ile?
Özellikle db deki datalar ilgili çeşitli konularda rapor çekmemize yardımcı olacak uygulamar için çok kullanışlıdır. Raporlar ile ilgili grafiksel gösterimleri elde etmemize yardımcı olan toolarıda bulunmaktadır.
09 Aralık 2009 Çarşamba
12 Kasım 2009 Perşembe
Socket Programlama (Java - UDP)
Socket Nedir?
Bir socket iletişim hattının iki ucunda daki hostlar üzerinde çalışan programın networke açılan kapıları gibi düşünebiliriz. Java da socket sınıfları kullanılmakta, client ve server programlarının birbirleri ile iletişimini temsil etmek için. java.net package içindeki iki sınıf Socket ve ServerSocket
client ve server taraflı geliştirmelerde kullanılmaktadır.
UDP ? -> UDP protokolü networkte uygulamaların gönderdiği paketlerin ki bunlara datagrams diyoruz, iletiminde diğer bir uygulamaya iletim yönteminin (örneğin pakedin iletim garantisi vermiyor) bağlantı güvencesi olmaksızın gerçekleştirilmesi.
Datagram nedir? -> Bağımsız , nerden nereye gideceğini varış zamanını kendisi içerir ; içeriğinin iletilme garantisi yoktur.
Daha ayrıntılı bilgi için ; http://en.wikipedia.org/wiki/Packet_%28information_technology%29
Datagram Client ve Server
Bir socket iletişim hattının iki ucunda daki hostlar üzerinde çalışan programın networke açılan kapıları gibi düşünebiliriz. Java da socket sınıfları kullanılmakta, client ve server programlarının birbirleri ile iletişimini temsil etmek için. java.net package içindeki iki sınıf Socket ve ServerSocket
client ve server taraflı geliştirmelerde kullanılmaktadır.
UDP ? -> UDP protokolü networkte uygulamaların gönderdiği paketlerin ki bunlara datagrams diyoruz, iletiminde diğer bir uygulamaya iletim yönteminin (örneğin pakedin iletim garantisi vermiyor) bağlantı güvencesi olmaksızın gerçekleştirilmesi.
Datagram nedir? -> Bağımsız , nerden nereye gideceğini varış zamanını kendisi içerir ; içeriğinin iletilme garantisi yoktur.
Daha ayrıntılı bilgi için ; http://en.wikipedia.org/wiki/Packet_%28information_technology%29
Datagram Client ve Server
06 Ağustos 2009 Perşembe
Cache Bellek nedir? ile ilgili alıntı
Kaynak http://www.ceviz.net/cache-bellek-nedir_a314.html
Siz bir uygulamayı ikinci çağırışınızda ilk çağırışınızdan hızlı açılıyorsa cache bellek ile tanıştınız demektir. Peki bu olayın perde arkası nedir?
Cache Bellek en son yaptığınız işlemleri değerlendirerek bir sonraki yapacağınız işlemi %90 tahmin edip bu bilgileri tutan L1 ve L1 in %10 tutturamaması durumunda bu %10 un da %90'ı oranında (siz hesaplayın artık) tahmin edip bu bilgileri tutan L2 adında işlemci çekirdeğine gömülü iki adet statik Ram den oluşur.
Cpu L2'de de bu bilgileri bulamamsı durumunda RAM'e gider. Orada da yoksa HDD'e gider.
Cache Belleği ilk icat edildiği yıllarda board üzerine koymuşlar ve sadece L1'den oluşuyormuş. O zamanlar da bu tahmin mekanizması bayağı işe yarasa da board üzerinde olduğu için Cpu L1 ile iletişime geçeceği zaman board'un veri yolu hızına düştüğü için pek şimdikisi kadar kullanışlı değildi. Abiler bu Cache'i Cpu içine koymak istiyorlardı. Fakat bu o kadar kolay değildi. Milyonlarca transistörü Cpu içine koyan adamlar, bir türlü Cache'i çekirdeğe gömemiyorlardı ki çekirdek hızında erişebilsinler. Bir ara akıllarına bir fikir geldi. Madem biz bunu çekirdeğe koyamıyoruz çekirdeğe en yakın yere koyalım dediler ve bu fikrin ürünü olan SLOT işlemciler piyasaya çıktı. Bu tip işlemcilerde çekirdeğin etrafında Cache'ler görülebilir. Fakat bu yöntemle hem istedikleri performans'ı alamadılar hem de işlemci board üzerinde dikine durduğu için sabitlemek zor oluyordu. Bir süre sonra Cachle'i çekirdeğe gömmeyi başardılar. Hatta L2 ile birlikte. Cache li işlemciler normallerinden daha pahalıydı. Çünkü cache'i çekirdeğe gömmek zor bir işlemdi. Öyle ki ürettikleri 100 işlemciden 98'ini çöpe atmak zorunda kalıyorlardı.
İşte bir işlemci alırken dikkatimizi çeken 512 cache olayının hikayesi kısaca böyle.
Nasıl Çalışır?
Her zaman şu örnek verilir. Bir lokantaya ilk defa gidip bir kase çorba istediğinizde Çorbanın yapılıp gelmesi uzun sürebilir. Eğer yemeğin yapıldığı yerin(HDD) hemen ön tarafında belirli bir miktar yemeği sıcak tutabilecek bir hazne varsa (RAM) ve siz oradaki çeşitlerden birini yiyecekseniz çorbanın pişmesini beklemezsiniz. Siz eğer aynı yere daha sık gelmeye başlarsanız garson sizi tanır ve sizin geleceğiniz saatlerde yemek arabasına(L2) sizin çeşitlerinizi de koyar. Sürekli müşterisi olursanız ve %90 aynı siparişleri veriyorsanız geleceğiniz saatte çorbanızı masanızda(L1) hazır bulursunuz.
Ne işe yarar?
İşte siz örn: Excel'i ilk açtığınızda normal hızda açılır. 2. Açtığınızda nasıl açıldığını bile fark edemezsiniz.
Cache farkını Setup'tan L1 ve L2 seçeneklerini DİSABLE yapıp test edebilirsiniz.
Statik ram den bahsettik onu da açıklayalım;
Çalışma prensibi olarak temelde 2 tip RAM vardır. Dynamic ve Static.
Static RAM makine açık olduğu sürece üzerine yazılan veriyi tutabilir. Transistörlerden imal edilmiştir.
Dynamic RAMler üzerindeki veriyi tutabilmek için belirli aralıklarla kondansatörlerle tetiklenmeleri gerekir. Aksi takdirde üzerindeki veri kaybolur. Bunun için ana kart üzerinde bu tetiklemeyi yapacak ayrı bir devre dizayn edilmiştir ve bu yüzden dynamic ramler cache bellek olarak çekirdekte kullanılamazlar. Bildiğimiz ramler Dynamic ramdir. Static ramler yapılarında transistör kullanıldığı için daha pahalıdır.
Siz bir uygulamayı ikinci çağırışınızda ilk çağırışınızdan hızlı açılıyorsa cache bellek ile tanıştınız demektir. Peki bu olayın perde arkası nedir?
Cache Bellek en son yaptığınız işlemleri değerlendirerek bir sonraki yapacağınız işlemi %90 tahmin edip bu bilgileri tutan L1 ve L1 in %10 tutturamaması durumunda bu %10 un da %90'ı oranında (siz hesaplayın artık) tahmin edip bu bilgileri tutan L2 adında işlemci çekirdeğine gömülü iki adet statik Ram den oluşur.
Cpu L2'de de bu bilgileri bulamamsı durumunda RAM'e gider. Orada da yoksa HDD'e gider.
Cache Belleği ilk icat edildiği yıllarda board üzerine koymuşlar ve sadece L1'den oluşuyormuş. O zamanlar da bu tahmin mekanizması bayağı işe yarasa da board üzerinde olduğu için Cpu L1 ile iletişime geçeceği zaman board'un veri yolu hızına düştüğü için pek şimdikisi kadar kullanışlı değildi. Abiler bu Cache'i Cpu içine koymak istiyorlardı. Fakat bu o kadar kolay değildi. Milyonlarca transistörü Cpu içine koyan adamlar, bir türlü Cache'i çekirdeğe gömemiyorlardı ki çekirdek hızında erişebilsinler. Bir ara akıllarına bir fikir geldi. Madem biz bunu çekirdeğe koyamıyoruz çekirdeğe en yakın yere koyalım dediler ve bu fikrin ürünü olan SLOT işlemciler piyasaya çıktı. Bu tip işlemcilerde çekirdeğin etrafında Cache'ler görülebilir. Fakat bu yöntemle hem istedikleri performans'ı alamadılar hem de işlemci board üzerinde dikine durduğu için sabitlemek zor oluyordu. Bir süre sonra Cachle'i çekirdeğe gömmeyi başardılar. Hatta L2 ile birlikte. Cache li işlemciler normallerinden daha pahalıydı. Çünkü cache'i çekirdeğe gömmek zor bir işlemdi. Öyle ki ürettikleri 100 işlemciden 98'ini çöpe atmak zorunda kalıyorlardı.
İşte bir işlemci alırken dikkatimizi çeken 512 cache olayının hikayesi kısaca böyle.
Nasıl Çalışır?
Her zaman şu örnek verilir. Bir lokantaya ilk defa gidip bir kase çorba istediğinizde Çorbanın yapılıp gelmesi uzun sürebilir. Eğer yemeğin yapıldığı yerin(HDD) hemen ön tarafında belirli bir miktar yemeği sıcak tutabilecek bir hazne varsa (RAM) ve siz oradaki çeşitlerden birini yiyecekseniz çorbanın pişmesini beklemezsiniz. Siz eğer aynı yere daha sık gelmeye başlarsanız garson sizi tanır ve sizin geleceğiniz saatlerde yemek arabasına(L2) sizin çeşitlerinizi de koyar. Sürekli müşterisi olursanız ve %90 aynı siparişleri veriyorsanız geleceğiniz saatte çorbanızı masanızda(L1) hazır bulursunuz.
Ne işe yarar?
İşte siz örn: Excel'i ilk açtığınızda normal hızda açılır. 2. Açtığınızda nasıl açıldığını bile fark edemezsiniz.
Cache farkını Setup'tan L1 ve L2 seçeneklerini DİSABLE yapıp test edebilirsiniz.
Statik ram den bahsettik onu da açıklayalım;
Çalışma prensibi olarak temelde 2 tip RAM vardır. Dynamic ve Static.
Static RAM makine açık olduğu sürece üzerine yazılan veriyi tutabilir. Transistörlerden imal edilmiştir.
Dynamic RAMler üzerindeki veriyi tutabilmek için belirli aralıklarla kondansatörlerle tetiklenmeleri gerekir. Aksi takdirde üzerindeki veri kaybolur. Bunun için ana kart üzerinde bu tetiklemeyi yapacak ayrı bir devre dizayn edilmiştir ve bu yüzden dynamic ramler cache bellek olarak çekirdekte kullanılamazlar. Bildiğimiz ramler Dynamic ramdir. Static ramler yapılarında transistör kullanıldığı için daha pahalıdır.
10 Temmuz 2009 Cuma
Volantis Mobility Server
Volantis Mobility Server™ java temmelli devolopment ve çalışma ortamı sağlayan bir platformdur. Web devolopmentler için kendi mobil Internet uygulamalarının 6,300 device tarafından kullanılabilecek şekilde build edilmesinden sorumludur.
Volantis Mobility Server mobil içeriklerin yönetiminin karmasısını azaltmak için tasarlanmıştır. Bu nedenle developerlar ve içerik sahipleri , kullanıcıların daha kolay servis alabilecekleri uygulamalar oluşturabilmektedir.
VMS bir çok connector içermektedir ki dinamik içerik kaynağı ve Web 2.0 Internet servislerini entegre olmasını sağlamaktadır.
Developerlar connectorleri özelleştirirler kendi mobil tarafları içinde , basit XML tagleri kullanarak, Java programlama azaltılır, otomatik olarak transformasyon işlemleri gerçekleştirilir ve optimizasyon sağlanır device karşılık gelen içerik için.
Volantis Mobility Server mobil içeriklerin yönetiminin karmasısını azaltmak için tasarlanmıştır. Bu nedenle developerlar ve içerik sahipleri , kullanıcıların daha kolay servis alabilecekleri uygulamalar oluşturabilmektedir.
VMS bir çok connector içermektedir ki dinamik içerik kaynağı ve Web 2.0 Internet servislerini entegre olmasını sağlamaktadır.
Developerlar connectorleri özelleştirirler kendi mobil tarafları içinde , basit XML tagleri kullanarak, Java programlama azaltılır, otomatik olarak transformasyon işlemleri gerçekleştirilir ve optimizasyon sağlanır device karşılık gelen içerik için.
09 Temmuz 2009 Perşembe
Apache Ant
Ant Nedir?
Java tabanlı olarak geliştirilmiş olan bir tool dur.
Make olarak bilinen başka bir tool gibi build ve deploy gibi işlemleri büyük projeler de kolaylaştırmak için yaratılmıştır.
"Another Neat Tool" tanımının baş harflerinin kısaltılmasından türetilerek isimlendirilmiştir.
Daha sonraları Ant için "Karıncalar inşaat faaliyetlerinde çok küçük ve çok çalışkan varlıklardır.","Karıncalar ufak vücutlarına rağmen kendi ağırlıklarının düzinelerce katı ağırlıkları taşıyabilirler." sözleri atfedilerek övülmüş ve tanıtılmıştır.
Neden Ant?
Büyük bir java projesiyle uğraştığınızı düşünün.Elinizde bir sürü ".java" dosyası var ve üstüne üstlük farklı-farklı klasörlerin altındalar.Projeyi geliştirirken hep aynı rutin işlemleri yapıyorsundur.Kodları derle,manifest dosyası hazırla, jar'la, war dosyaları hazırla,sonrada tüm yaptıklarını alıp server'e deploy et.Ufak projeler için önemsenmeyebilir fakat büyük projeler için bütün bu işlemleri her değişiklik yapıldığında tekrar-tekrar yapmak bezginlik verebilir.
İşte Ant burada ortaya çıkıyor ve sizi rutin,sıkıcı işlemlerden ve hamallıktan kurtarıyor.
Ant ile başka bir bilgisayarda çalışarak remote bir servere ftp ile dosyalarınızı atabilir ve deploy edebilirsiniz.Hatta birbaşkasına mail ile gönderebilirsiniz.
Kaynak :
Java tabanlı olarak geliştirilmiş olan bir tool dur.
Make olarak bilinen başka bir tool gibi build ve deploy gibi işlemleri büyük projeler de kolaylaştırmak için yaratılmıştır.
"Another Neat Tool" tanımının baş harflerinin kısaltılmasından türetilerek isimlendirilmiştir.
Daha sonraları Ant için "Karıncalar inşaat faaliyetlerinde çok küçük ve çok çalışkan varlıklardır.","Karıncalar ufak vücutlarına rağmen kendi ağırlıklarının düzinelerce katı ağırlıkları taşıyabilirler." sözleri atfedilerek övülmüş ve tanıtılmıştır.
Neden Ant?
Büyük bir java projesiyle uğraştığınızı düşünün.Elinizde bir sürü ".java" dosyası var ve üstüne üstlük farklı-farklı klasörlerin altındalar.Projeyi geliştirirken hep aynı rutin işlemleri yapıyorsundur.Kodları derle,manifest dosyası hazırla, jar'la, war dosyaları hazırla,sonrada tüm yaptıklarını alıp server'e deploy et.Ufak projeler için önemsenmeyebilir fakat büyük projeler için bütün bu işlemleri her değişiklik yapıldığında tekrar-tekrar yapmak bezginlik verebilir.
İşte Ant burada ortaya çıkıyor ve sizi rutin,sıkıcı işlemlerden ve hamallıktan kurtarıyor.
Ant ile başka bir bilgisayarda çalışarak remote bir servere ftp ile dosyalarınızı atabilir ve deploy edebilirsiniz.Hatta birbaşkasına mail ile gönderebilirsiniz.
Kaynak :
26 Haziran 2009 Cuma
Free Marker Template Language
FTL(FreeMarker Template Language) uzantılı dosya örnekleri ile karşılanca, ftl nedir? diyip araştırınca
Java temelli olup, MVC mimarisi üzerine kurulu bir engine tarafından , html web taslakları üretiyor.
Template Engine (web) çalışma mantığını net bir şekilde tasvir eden bir foto;
Template Engine ile ilgili daha detaylı bilgi için;
http://en.wikipedia.org/wiki/Template_engine_(web)
FreeMarker ile ilgili bir örnek ;
böle bir taslak var;
< html>
< body>
< p>Hello ${name}! You have the following messages:
< #list messages as m>
< /#list>
< /body>
< /html>
ve bazı süreçler sonrası aşağıdaki hali alıyor...
< html>
< body>
< p>Selam Pinar! Mesajın var:
< p>< b>Annen: Anneciğim yavaş git tamam mı!!!
< p>< >Raiba: Abla eve gelirken güzel bir film al ..
< /body>
< /html>
gibi
Java temelli olup, MVC mimarisi üzerine kurulu bir engine tarafından , html web taslakları üretiyor.
Template Engine (web) çalışma mantığını net bir şekilde tasvir eden bir foto;
Template Engine ile ilgili daha detaylı bilgi için;
http://en.wikipedia.org/wiki/Template_engine_(web)
FreeMarker ile ilgili bir örnek ;
böle bir taslak var;
< html>
< body>
< p>Hello ${name}! You have the following messages:
< #list messages as m>
${m.from}: ${m.body}
< /#list>
< /body>
< /html>
ve bazı süreçler sonrası aşağıdaki hali alıyor...
< html>
< body>
< p>Selam Pinar! Mesajın var:
< p>< b>Annen: Anneciğim yavaş git tamam mı!!!
< p>< >Raiba: Abla eve gelirken güzel bir film al ..
< /body>
< /html>
gibi
25 Haziran 2009 Perşembe
Subclipse nedir? Eclipse ile iliştirlmesi nasıl?
Subclipse, takım halinde (ya da tek başınıza)kodlama yaparken, yazdığımız programların versiyonlanmasını sağlıyor. Kimlerin hangi değişiklikleri yaptığı ,herhangi bir sorun olması durumunda kodların önceki hallerine dönülmesini sağlayan açık kaynak versiyon kontrol sistemi Subversion programının, başta Java olmak üzere birçok programlama dilinde kod geliştirmeye yarayan Eclipse platformu üzerinden kullanılmasını sağlayan bir eklentidir.
İster bir ekibin parçası olunan durumlarda ; yanlız çalışırkende kullanılması projenin geliştirilme süreci açısından oldukça faydalı olacağı kaneatindeyim...
Kurulumu;
1) Help->Sofware Update->Find and Install menüsüne girin,
2) “Search for new features to install” seçeneğini işaretleyerek ileri tuşuna basın,
3) Sağdaki menüden “New Remote Site” butonuna basın,
4) Açılan pencerede “Name:” kısmına Subclipse, “URL:” kısmına http://subclipse.tigris.org/update_1.2.x yazarak kaydedin
5) “Finish” butonuna basarak Eclipse’in sizin için var olan yüklemeleri yapmasını bekleyin.
şeklindedir.
İster bir ekibin parçası olunan durumlarda ; yanlız çalışırkende kullanılması projenin geliştirilme süreci açısından oldukça faydalı olacağı kaneatindeyim...
Kurulumu;
1) Help->Sofware Update->Find and Install menüsüne girin,
2) “Search for new features to install” seçeneğini işaretleyerek ileri tuşuna basın,
3) Sağdaki menüden “New Remote Site” butonuna basın,
4) Açılan pencerede “Name:” kısmına Subclipse, “URL:” kısmına http://subclipse.tigris.org/update_1.2.x yazarak kaydedin
5) “Finish” butonuna basarak Eclipse’in sizin için var olan yüklemeleri yapmasını bekleyin.
şeklindedir.
Kaydol:
Kayıtlar (Atom)