bulut (cloud) demek sanal sunucu demek degildir

Dünyada yakın geçmişte çığ gibi büyüyen bir yapıdır bulut bilişim (cloud computing). Bulut nedir, ne işe yarar bundan bahsetmeyeceğim. Bahsetmek istediğim Türkiye’de bu kavramın sıkça yanlış ifade edilmesi ve artık anlamını yitiriyor olmasıdır.

Bulut yapıda bir sistemde olması gereken, büyük sistemin içindeki küçük parçaların birbirinden bağımsız yapıda çalışabilir olmasıdır. Bir web bulutunda, siz yeni bir uygulama (aplication) serveri eklediğinizde sisteme, onu ayarlamakla, onu sisteme monte etmekle uğraşmamalısınız. İçine yazılımlarınızı yüklemeyle, ayarlamayla vakit harcamamalsınız. Başka bir örnekle; bir mail serveri eklediğinizde sisteme, onun bulut sistem tarafından otomatik olarak kullanabilir hale gelmesidir asıl amaç.

Türkiyede ise sanal sunucu oluşturmayı bilen , ve kendine sanal sunuucu kurmayı bilen herkesin ağzında bir bulut terimidir uçup gidiyor! Vmware, Virtualbox, vb.. gibi sanal sunucu oluşturabilen programlar ile, insanlar sanki birer bulut inşa etmiş gibi telafuzlar ediyor. “Biz bulut bilişime geçtik..” Bulutun B sini bile oluşturmaz bu, çünkü bulut dediğiniz, sanal bir sunucu oluşturma sihirbazından ibaret değildir. Bu sisteme 2 TB bir harddisk taktığınızda bütün bulutun storage kapasitesinin 2 TB artmasıdır bulut bilişim. Veya X no’lu uygulama serverinizde bulunan bir hesabı küçük bir işlemle Y no’lu uygulama serverinden sunabilmenizdir.

Bulut bilişimi inşa etmek kolay bir işlem değildir. Fakat keskin avantajları vardır. Sistemleri birbirinden ayırma, her sunucunun sadece belirli bir işe odaklanmasını sağlamayı sağlar. Ki bu da, her işe has durumların , kendine has optimizasyon sonuçlarını beraberinde getirir. Örneğin bulut olmayan yani sadece tek bir web server’i düşünün. İçinde mysql ve php var. Bu ikisi birlikte çalışırken hem read hem de write oranı yüksek bir IO grafiği elde edersiniz. Fakat bunları ayrıdığınızda, yani mysql ve php ayrı serverlar olduğunda, php nin çalıştığı kısmı read gücünü optimize ederek artırabilir, mysql tarafında da write konusunda geliştirme yaparak üstel bir şekilde performans artışı gösteren bir optimizasyon yapabilir hale gelirsiniz. Bu da gerçek buluta giden yolda elde edeceğiniz yegane karlardan biridir.

Herkesin ağzında bir bulut bulut, kelime eriyip gitmesin diye bu yazıyı yazma gereksinimi hissettim. Bulut demek, sanal bir sunucudan ibaret değildir!

iframe tecrübeleri

Bir web projesinde bazı durumlarda ister istemez iframe kullanılabiliyor. Iframe, mantık olarak her ne kadar geçmiş te kalan bir çözüm yöntemi olsa da, yine de web projelerinde zaman zaman çözüm olarak karşımıza çıkabiliyor.

Iframe kullanırken bizim zaman zaman karşılaştığımız sorunlar mevcut, bunlardan bahsetmek isterim.

Öncesinde kısaca iframein çalışma mantığını ve küçük bir kullanım örneğini verelim.

Bir sayfa içinde 3rd party bir uygulama çalıştırmak istiyorsunuz fakat bunu browser aracılığıyla çağırmak istiyorsunuz. Bu noktada sayfanın ortada gözüken kısmına farklı bir URL si olan bir iframe yerleştiriyorsunuz.
İşte tam bu noktada internet explorer için bir daha düşünün! Eğer iframe ile açtığınız url deki site içinde session kullanacaksanız, internet explorer bunu cookie’sine yazdmayı kabul etmeyecektir. Bu durumda her refresh için, yeni bir oturum oluşmaı durumu olacak + işinizi halledememiş olacaksınız. (Muhtemelen aynı sayfa içindeki farklı bir URL den gelen cookieleri kabul etmeyen bir yapısı var)

Bu yüzden bu size bir çözüm olmayacaktır.
Edit : http://stackoverflow.com/questions/3871199/facebook-iframe-not-working-in-ie-session-login-issue linkinde yer alan header gönderme yöntemi ile iframe içinden cookie gönderebilmeyi sağlıyayabiliyoruz.

 
header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');

Bu header’in de ne manaya geldiğini http://stackoverflow.com/questions/15841245/meaning-headerp3pcp-idc-dsp-cor-adm-devi-taii-psa-psd-ivai-ivdi-coni-his-ou linkinden öğrenebilirsiniz.

diğer bir kullanım örneği şu olabilir;

Bİr listeleme sayfanız var. Bir de sayfayı yazdırma (print etme) tuşunuz var. Print ettiğiniz şey, yazıcı dostu bir sayfa olmalı. Yani farklı bir sayfa. Buna ek olarak da, her browserin print için farklı bir politikası var. Bazısı o window.print() metoduyla birlikte ilgili sayfayı yeniden açıyor, bazısı yeni tabda açıyor, bazısı hemen printer ekranını da açıyor, bazısı önizleme yaptırıyor, bazısı yaptırmıyor, vb.. Bunları iframe ile bir standarda oturtabilrisiniz. Mevcut sayfanızın yazıcı dostu halini farklı bir URL olarak yazılımınızda ayarlayın. Daha sonra ilgili sayfa içinde bir adet gözükmez iframe oluşturun (style=’visibility:hidden;’) Print tuşuna basınca da , bu iframei idsinden bulup URL kısmını yazıcı dostu sayfanız olarak set edin. Yazıcı dostu sayfanızın sonunda da, < script>window.print() ekleyin. Artık tüm tarayıcılarda ortak davranan bir print metodu elde etmiş oldunuz.

Umarım faydası olur.

chrome eklenti (extension) siparis edin!

Chrome için bir eklentiye (extension’a) mi ihtiyacınız var? Aslında pekala kendiniz yapabilirsiniz. Fakat yine de bu şeylerle uğraşmak istemiyor olabilirsiniz. Bu sebeple isteğinizi bize iletebilirsiniz. İsteğinizi küçük bir ücret karşılığında üniversite öğrencilerine yaptırıyoruz. Böylece hem onların eğitimine bir miktar katkıda bulunmuş oluyorsunuz, hem de ihtiyacınızı karşılaşmış oluyorsunuz.

Birkaç tane istek geldi bugüne kadar fakat bunları değerlendirmedik. Fakat, bu yönde bir istek oluşumu artmaya başlayınca biz de yukarıda belirttiğimiz şekilde böyle bir hizmeti verebileceğimizi düşündük.

Bizimle iletişim kurmak için lütfen iletişim sayfamızı ziyaret ediniz.

php 5.4 Diziler (Array) – Php Yeni Özellikler

Php 5.4 ün içindeki yeniliklerden biri de dizilerdeki (array’lerdeki) kısaltılmış kullanım özelliğidir. Aşağıda bu kullanım ile ilgili bir örnek verdim.

//Php 5.4'ten önce
< ?php
$array = array(
    "key1" => "value1",
    "key2" => "value2",
);

// PHP 5.4 'ten itibaren
$array = [
    "key1" => "value1",
    "key2" => "value2",
];

Ayrıca geri döndürdüğü (return değeri) array olan fonksiyonlarda da eskiden uğraştığımız ilk önce değişkene atama çilesi, php 5.4 ile bitmiş olacak.
Artık fonksiyon çağırdıktan sonra doğrudan köşeli parantez ile istediğimiz indisi alabiliriz.

Not : Bu durum optimize çalışmayan metodlar, fonksiyonlar yazmanıza sebep olabilir, bu konuda sistemin gereksiz enerji harcamamasına dikkat ediniz.

< ?php
function getArray() {
    return array(1, 2, 3);
}
// php 5.4'ten önce
$tmp = getArray();
$secondElement = $tmp[1];

//PHP 5.4'ten itibaren
$secondElement = getArray()[1];

// veya
list(, $secondElement) = getArray();
?>

PHP gibi Javascript yazmak (PHP functions in JavaScript)

Bir web geliştiricisiyseniz, yolunuz bir yerde bir browser script dili olan Javascript ile mutalak kesişir. Browser üzerinde bir fonksiyon, bir işlem, bir doğrulama, vb.. yapmak istersiniz. Fakat Javascript’e o kadar da aşina değilsiniz, ne yapacaksınız?

Burada Bir alternatif devreye giriyor.
phpjs.org adresinde göreceğiniz projede, insanlar php fonksiyonlarını javascript e port ediyorlar. (port etmek = uyarlamak)
yani ben bu siteden ilgili dosyaları çağırdığımda, artık javascriptte şunu çalıştırabileceğim ; bildiğimiz echo.

echo('

abc

abc

');

Şu an sitede bir çok php fonksiyonu js’ye uyarlanmış şekilde var. Ayrıca bir çok fonksiyon da devam ediyor veya sırasını bekliyor. Eğer işinizi gördüyse, siz de bu OPENSOURCE projeye, port edilmemiş fonksiyonlardan birkaçını portlayarak katkıda bulunabilirsiniz.