9 Nisan 2012 Pazartesi

PHP curl ile istek örnegi (php curl example)

CURL basit manada bir bot yapmak için kullanılabilir. Veyw webservis altyapısı olmayan yapılar için bir alternatif sağlayabilir. file_get_contents ile yapacağınız url isteklerinde (bunda allow_url_fopen açık olması lazım) kodunuza herhangi bir timeout koyamadığımız için sıkıntılı bir durum oluşabilir. CPU kullanımımız tehlikeye girebilir. Burada da yine curl, güçlü alternatif olarak karşımıza çıkmaktadır. Aşağıda basit bir CURL isteği yapabilmek için gerekli kodları göreceksiniz. Bunun ile örneğin www.google.com'u request ederseniz, ilgili sayfanın içeriğini alabileceksiniz. Yanlarında comment ile açıklamalarını yazdım
  $temp = array("a"=>1, "b"=>2);  $postdata = http_build_query($temp);    $ch = curl_init();  curl_setopt($ch, CURLOPT_POST, true); //POST Metodu kullanarak verileri gönder  curl_setopt($ch, CURLOPT_HEADER, false); //Serverdan gelen Header bilgilerini önemseme.  curl_setopt($ch, CURLOPT_URL, "http://www.domain.com"); //Bağlanacağı URL  curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata); //POST verilerinin querystring hali. Gönderime hazır!  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //Transfer sonuçlarını return et. Onları kullanacağım!  curl_setopt($ch, CURLOPT_TIMEOUT, 20); //20 saniyede işini bitiremezsen timeout ol.  $data = curl_exec($ch);  curl_close($ch);    echo $data;  
NOT : php_curl php eklentinizin açık olması gerekiyor. php.ini'de yer alır kendisi. Wamptan sırayla Wamp simgesi -> PHP ->PHP extensions-> php_curl a tıklayarak açabilirsiniz. Ya da php.ini nize ekleyebilirsiniz. Devamı için : PHP curl ile istek örnegi (php curl example)

Bellona online satıs hizmetine basladi

Boydak Holding bünyesinde üretim ve pazarlama faaliyetlerine devam eden, sektörünün lider markalarından olan Bellona, teknolojik yenilikleri ile büyümeye devam ediyor. Yurt içi ve yurtdışı pazarlarda yaygın bayi ağı ile müşterilerine ulaşan Bellona, sanal pazardaki yerini "bellonastore.com.tr" ile alıyor. Özellikle ev tekstili, halı ve aksesuar gruplarında online alışveriş imkanı sağlayan Bellona, anlaşmalı kredi kartları ile peşin fiyatına 12 taksit ve bütün ürünlerde ücretsiz kargo seçeneği ile sanal pazarda şimdiden en çok tercih edilen marka olmaya başladı. Bellonastore projesi İDEASOFT Akıllı E-Ticaret altyapısı kullanılarak hazırlanmıştır. İDEASOFT un profesyonel ekip ve hizmet anlayışının yayında kendisini kanıtlamış yazılım altyapısı en büyük tercih sebebi olmuştur. Proje kapsamında SAP ERP ile entegre çalışabilecek bir yapıya sahip olan bellonastore için çalışmalar WEB ve ERP yazılım departmanlarımız tarafından hazırlanmıştır. Bellonastore projesi yazılım altyapısı yanında lojistik ve müşteri hizmetleri anlamında da birçok fiziki süreçleri bünyesinde barındıran bir projedir. Lojistik ve müşteri hizmetleri merkezi olarak perakende şirketlerimizden Anadolu Dörtler Mobilya A.Ş. tüketicilerimize hizmet vermektedir. Bellona online satış hizmetine "bellonastore.com.tr" ile başladı. | Boydak Bilişim Bülteni. Devamı için : Bellona online satıs hizmetine basladi

6 Nisan 2012 Cuma

SaaS (Software As A Service) nedir

SaaS (Software As A Service) Nedir?

Bir hizmet sağlayıcı tarafından merkezi olarak sunucu üzerinde barındırılan bir yazılım uygulamasının; birden fazla kişi/kurumun kullanımına sunulması işe dağıtımını sağlayan modeldir. Tamamen SaaS, Servis sağlayıcılar tarafından sunulmaktadır. Bu şu demektir: müşteri olarak işletme ve operasyonel maliyetlerden kurtulmak ve sadece ihtiyacınız kadar olanı için düşük maliyetli ama kaliteli hizmet almak. Hazır paket bir programa yapılan yatırımın toplam sahip olma maliyetini analiz edersek şu gerçeği açıklıkla görürüz; eğer bu şemsiyenin altında sabit ve esneklik açısından zayıf bir programla yola çıkmışsanız yakın gelecekte sıklıkla olası ihtiyaçların değişmesinden ötürü farklı bir paket programa yapılacak geçiş maliyetlerinin yüksek olması gibi gerçeklerle karşılaşılacağından ötürü bu yatırım modelinin çöpe gideceğini söylemek mümkündür. Rekabetin ve iş kurallarının ivmelendiği yeni ekonomik düzende çevikliğin kurumlar için vazgeçilmez bir hayatta kalma stratejisi olduğunu düşünebiliriz. SaaS modeli, şirketlerin ticari olarak lisanslama yolu ile kendi iç bünyelerinde barındırdıkları ve işlettikleri yazılımların yüksek ön maliyetli ve kompleks yapılarına alternatif olarak düşük maliyetli bir şekilde aynı avantajlara ulaşmayı sağlar. Herhangi bir web sayfasına nasıl ulaşıyorsanız bu yazılıma da web üzerinden bir istemci olarak yine aynı şekilde ulaşmamız mümkündür. Sahip olmanız gereken tek şey ise yalnızca o servisi almanızı sağlayacak bir hesap. İşte bu aşamada SaaS yazılımlarının ücretlendirilmesinin de farklı olduğunu söylemek gerekiyor. Bu teknoloji sayesinde geleneksel lisans satın alma durumu yerini kullanıcı hesaplarına bırakıyor. İşin daha cazip yanıysa şu: ücretlendirme de kullanım miktarınıza bağlı olarak yapılabiliyor. Yani uygulamaları ne kadar kullanıyorsanız, o kadar ücret ödeyebiliyorsunuz. SaaS modelinin temel özelliklerini sıralarsak;
  • Ticari olarak sunulan yazılım uygulamasının ağ tabanlı erişim ve yönetim.
  • Her müşterinin kendi lokasyonu yerine merkezi olarak yönetilen aktiviteler ile müşterilerin aktivitelere uzaktan web üzerinden her an bağlanabilme imkanı.
  • Uygulamanın one to one ilişki yerine one to many vasıtası ile (tek seferlik, çoklu kullanıcı mimarisi) sunulması ile gelen fiyatlama, ortaklık, yönetimsel avantajlar.
  • Merkezi güncelleme, merkezi güvenlik uygulamaları ile gelen kolaylık.
SaaS Teknolojileri ve Kurumlara sağladığı avantajlar;
  • Sunucu maliyetleri azaltılır.
  • Teknik bakım ve uygulama geliştirme maliyetleri azaltılır.
  • Güncelleme işlemleri ve maliyetleri sıfırlanır.
  • Lisans maliyetleri sıfırlanır.
  • Kullandığınız süre ve kullanan kullanıcı sayısı kadar ödeme.
  • Hizmeti dünyanın her yerinde alma imkânı.
  • Güvenlik maliyetleri sıfırlanır.
SaaS ve son kullanıcıya sağladığı avantajlar;
  • İnternet bağlantısının olduğu her yerden ve her zaman uygulamanıza ulaşma imkânı.
  • Kullanıcılar arasında dosya ve bilgi paylaşımı imkânı.
  • Matbu evrak maliyetlerinin ve kargaşasının sıfırlanması.
  • Tüm yazışmaların ve bilgilerin online ortamda barındırılması ve yedeklenmesi.
  • Online dokümantasyon arşivleme imkanının olması.
Hizmetin son müşteriye sunulması ve maliyeti;
  • Hizmet internet aracılığı ile sunuluyor.
  • Hizmet son müşteriye sıradan web tarayıcıları ile sunulmakta.
  • Hizmetin bedeli aylık veya yıllık kullanıcı sayısı ve alınan hizmetler bazında hesaplanır.
  • Kullanıcı sayısı azaldığında, maliyet azalır.
Bu yazı bir arkadaşımın sitesinden alıntıdır. Devamı için : SaaS (Software As A Service) nedir

4 Nisan 2012 Çarşamba

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! Devamı için : bulut (cloud) demek sanal sunucu demek degildir

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. 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. Devamı için : iframe tecrübeleri

1 Nisan 2012 Pazar

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. Devamı için : chrome eklenti (extension) siparis edin!

Git Versiyon Kontrol Sistemi Genel Komutlari

Daha önceki yazımda Git sisteminden biraz bahsetmiştim. Git'e yabancı olanlar öncelikle o yazıyı incelemek isteyebilirler. Bu yazıda Git komutlarına genelde kullanıldığı sıra ile değineceğim. Git deposunu lokalde oluşturmak Git sistemini kullanmak için önce uzak bir sunucudan Git deposunu lokalimize indirelim. Bu komut SVN'deki checkout'a denk geliyor diyebiliriz (mantık tam olarak benzemese de).
git clone [-b <branch_adi>] <depo_adresi> [<indirilecek_klasor_adi>]
Bu komutta herhangi bir Git deposunu tüm branch bilgisiyle ve ya sadece belirli bir branch'i belirttiğimiz bir klasöre indiriyoruz. Daha sonra bu klasöre geçiyoruz. Lokaldeki değişiklikleri görmek Depoyu ve dosyaları lokale indirdikten sonra bazı değişiklikler yaptık ve ne olduğu görmek istiyoruz, bu durumda aşağıdaki komuttan faydalanıyoruz.
git status
Bu kısacık komut bize çalışma klasörümüzde versiyon açısından neler olup bittiğini gösteriyor. Git ayrıca bir takım ufak yorum satırlarıyla bize yardımcı olmaya çalışıyor :)
$ git status  # On branch dev  # Untracked files:  #   (use "git add <file>..." to include in what will be committed)  #  #       README  nothing added to commit but untracked files present (use "git add" to track)
  Gönderilecek değişiklikleri işaretlemek Git'in de anlattığı üzere, README dosyası şu an sistem tarafından takip edilmiyor ve bunu takip edilecek olarak işaretlemek için aşağıdaki komutu çalıştırmak gerekiyor.
git add <dosya_yolu>
Burada dosya yolu tam olarak verilebilir ya da sadece "." verilerek tüm değişikliklerin eklenmesi sağlanabilir. Önemli bir nokta, yukarıdaki komutu sadece yeni dosyaları sisteme eklemek için değil, varolan dosyalarda  yapılan  değişiklikleri göndermek için de kullanıyoruz. Yani README dosyası daha önce sisteme eklenmiş olsaydı ve bazı güncellemeler yapıp göndermek isteseydik, yine aynı komutu kullanacaktık. Değişiklikleri göndermek (commit) Gönderilecek olan tüm değişiklikleri işaretledikten sonra Git sistemine gönderme işlemini gerçekleştiriyoruz.
$ git commit -m "added README file"  [dev b9b5954] added README file   0 files changed, 0 insertions(+), 0 deletions(-)   create mode 100644 README
Git her versiyon oluşturma aşamasında bizden yapılan değişikliklere ait bir mesaj girmemizi ister. Bunu -m parametresinden sonra belirtiyoruz. Buraya "qweqwe" yerine anlamlı bir şeyler girerseniz ileride kendinize teşekkür edersiniz :) Bu işlemden sonra bir versiyon oluşturmuş olduk. Lokaldeki versiyonu uzak bir sunucudaki Git deposuna atmak Her ne kadar Git sisteminde zorunlu olmasa da, projenizi başkaları ile geliştiriyorsanız ortak bir uzak depo kullanmak zorundasınız. Değişikliklerinizi lokal Git deposuna gönderdikten sonra paylaşılan uzak bir depoya (GitHub gibi) da gönderebilirsiniz. Bunun için şu komuttan faydalanabilirsiniz.
git push <uzak_depo_adi> <branch_adi>
Eğer değişiklik yapmazsanız uzak depo,  projeyi ilk aldığımız depoyu gösterecektir ve branch "master" olacaktır.  Eğer yetkiniz varsa en son versiyonunuzu depoya bu komutla gönderebilirsiniz. Daha detaylı komutları ilerleyen yazılarda paylaşacağım :) Devamı için : Git Versiyon Kontrol Sistemi Genel Komutlari