Nokia’dan “şaka gibi” telefon
0Nokia, Windows Phone 7’ye geçiş yapmış olmasına rağmen söz verdiği gibi Symbian telefonlar üretmeye devam ediyor.
MWC’de bugün duyurusu yapılan 808 PureView, tıpkı diğer Symbian modellerinde olduğu gibi güçlü kamera özellikleriyle ön plana çıkıyor.
Nokia 808 PureView, geçtiğimiz yıl piyasaya sürülen N8 modelinin yerini alıyor. N8’in en dikkat çekici özelliği olan 12MP kamera ve kaliteli 720p videolar düşünüldüğünde 808’in daha fazlasını yapmasını bekleyebilirsiniz. Nokia da böyle düşünmüş ancak çözünürlüğü biraz abartmış; 808 PureView’un kamerası tam 41 MP!
Carl Zeiss lens ile donatılan kamera, 41 MP fotoğraflar çekebiliyor. 16:9 oranında ise çözünürlük 34MP’e düşüyor. Nokia, bu çözünürlüğe ulaşabilmek için yeni bir piksel sıkıştırma teknolojisi kullanmış. Bu teknolojinin kaliteyi nasıl etkilediğini 808 PureView piyasaya çıktığında göreceğiz. Bu kamera video aynı zamanda 1080p video çekebiliyor ve sürekli otofokus özelliğine sahip. Continue reading “Nokia’dan “şaka gibi” telefon” »
Knight Online Pedal
0Evet arkadaşlar can sıkıntısından ve birazdan sinirlenmemden dolayı yapmış olduğum pedal programı. Pedal ne oluyor ki la gibi bir düşünce varsa aklınızda basit olaraktan sen birşey yapmıyorsun o herşeyi yapıyor demeyeceğim tabi. Pedal dediğimiz mahlukat assaslar için vazgeçilmez olan bir sistem uygulama parametre herneyse işte ondan. Seri bi şekilde skillbarda olan skillere basıyor. Yani örnek olarak dersen 2 de mana 8 minör var bu ikisine aynı anda kaçırmadan basıyor. Sadede gelelim olay bu birader kaynak kodlarını isteyene gönderebilirim ama şimdilik kullanım olan halini veriyorum. PVP oynayanlar için SOACS v32 den geçiyor ama v34 de sıkıntı yaratıyor üstüne düşmediğim için SOACS v34 uğraşmadım ama onuda halledince paylaşırım. Diğer tüm knight uygulamalarında çalışıyor. 1397 falan filan işte.
Continue reading “Knight Online Pedal” »
2012 Milli Piyango Sonuçları
0Neden böyle birşey yapma gereksiniminde hissettim kendimi ama hem uzun zamandır birşeyler paylaşmıyorum hemde alışılmışın dışında programlamanın dışında olacak birşeyler olsun istedim. Dedim gündemden bir mevzu olacak saat 01:43 ilk akıla gelen mevzu bu olsa gerek diyerekten Milli Piyango sonuçları paylaşalım dedim. Herhangi bir rant sağlamak için yapmıyorum bir pirimim olsun diye değil yani. Biletimden beklentim var ama sonuçlara bakmak hiç içimden gelmiyor ama işin enteresan tarafı. Çeyrek anasını satayım lan çeyrek 4 bölünecek olm kafadan ondanmıdır. Gerçi 10 trilyon benim başından beri moraliniz bozulmasın diye söylemiyorum. Neyse sadede gelelim ve büyük ikramiyeyi yazasımda gelmiyor ne olur ne olmaz
Büyük ikramiyeyi kazanan numara bu Continue reading “2012 Milli Piyango Sonuçları” »
CodeIgniter Nedir?
0Uzun süredir php ile haşır neşirim. Bazen yazmış olduğum kodlardan dolayı kendime kızdığım oluyor. Bazen zaman yetersizliğinden bazende tembellikten yazmış olduğum kodları template ile iç içe yazardım. Tabi uygulamamı başka bir yerde kullanmak istediğimde oturur baştan söylene söylene düzenlemeye başlardım. Canımı git gide sıkan bu olay için vaktim olduğunda ilk işim baştan bütün uygulamalarımı modüler bir yapı ile yazmak olacaktı. Tabi bu aşamada Ahmett arkadaşımızın önerisi olan codeigniter ile tanıştım ve tam olarak aradığım bir php çatısı olduğunu farkettim ve bende codeigniter kullanmaya başladım.
Peki nedir bu codeigniter?
Codeigniter, MVC(Model-View-Controller) yapısını kullanan bir frameworktur. Codeigniter sayesinde yazmış olduğunuz kodlar hem daha anlaşılır, hemde başka uygulamalarda kullanmanızı kolaylık sağlamaktadır. Açık kaynak kodlu Codeigniter dosyalarını kendi resmi sitesinden (www.codeigniter.com) indirebilirsiniz. Uygulamalarınızda hem performans artışını, hem temiz kod yazmayı hedefliyor iseniz mutlaka test etmenizi öneririm.
Codeigniter kullanmanın bize sağlayacağı avantajları nelerdir?
- Codeigniter Seo (Search Engine Optimization) destekli URL üretmesi ve arama moturu dostu olması sayfanızın hitini arttıracaktır,
- SQL injection, XSS ve diğer güvenlik açıklarından sizi koruyacaktır ve daha güvenli siteler yapmanıza ulanak sağlayacaktır,
- Size çok geniş bir kütüphane sunmaktadır. Bu kütüphanelere sonraki yazılarımda değineceğim,
- Yazmış olduğunuz uygulamaların değişik PHP versiyon ve konfigürasyonlarına sahip sunucular üzerinde çalışma uyumluluğu olacaktır,
- Aynı şeyleri tekrar tekrar yazmak zorunda kalmadığınızdan dolayı az yer kaplayan kodlar yazmak ve bu sebep ile vakitten kazanç sağlayacaktır.
Zaman zaman codeigniter hakkında örnekleri ve yaşamış olduğum sorunların çözümlerini (çözebilirsem
) burada sizler ile paylaşacağım.
Codeigniter Klasörlerini Tanıyalım
0system Dizini

Her şeyden önce system dizinindeki içinde 11 adet klasöre dikkatimizi verelim. Buradaki applicationklasörü bizim projemiz için oluşturacağımız dosyaların bulunacağı klasör. Diğer klasörler ise Codeigniter’ın temel yapısını oluşturan dosyaların bulunduğu klasörler. Kısacası application dışındaki klasörlerle genel olarak hiç işimiz olmayacak.
application Dizini

Gelelim bizi asıl ilgilendiren application klasörüne. Resimde gördüğünüz gibi burada 9 adet klasör bulunmaktadır. Bu klasörlerin (config ve error hariç) içleri genel olarak boştur. Yani doldurmak bize kalmış. Şimdi önem sırasına göre klasörleri incelemeye başlayalım.
config: Bu klasör ve içindeki dosyalar sistemin olmazsa olmazıdır. Porjemizle ilgili bütün ayarları bu klasörden yaparız. Hatırlarsanız kurulum ve ilk ayarlar konulu yazımda dizin ve veritabanı ayarını yapmak için buradaki bazı dosyaları güncellemiştik. İşte bu tür bir çok ayar dosyası mevcuttur configdizininde; kendiliğinden başlatılacak uygulamalar (autoload.php), önceden tanımlı sabit değerler (constants.php), projenin url yapısını belirleyeceğimiz ayarlar (routes.php) vb. Buradaki dosyaları zamanla, yeri geldikçe işleyeceğiz.
controller: Controller’ın ne olduğu konusunu MVC’den bahsederken incelemiştik. Kısacası gemimizin kaptanı diyebiliriz. Şöyle özetleyeyim meseleyi, Codeigniter ile hazırlayacağımız projelerin üç önemli unsuru vardır. Controller, Model ve View (MVC) dosyaları. Bunlara bir de ek olarak config(ayar) dosyalarını sayabiliriz. İşte bu MVC dosyalarından Controller’lar vazgeçilmez olanıdır çünkü sistemin nasıl çalışacağına bu dosyalar karar verir. Model ve View dosyaları olmadan da sadece Controller dosyası ile sistemimiz çalışır.
view: Controller dosyaları farklı dosyalardan elde etmiş olduğu verileri View dosyaları ile ekrana yansıtır. Buradan çıkarmamız gereken sonuç View klasörüde bulunacak olan dosyaların HTML ve CSS dillerini barındıracağıdır.
model: Controller dosyalarının bir numaralı veri kaynağı Model dosyalarıdır. Örnek vermek gerekirse veritabanından verilerin alınma işi Model dosyalarına, bu verileri görüntüleme işi View dosyalarına ve aradaki bağı sağlama işi de Controller dosyalarına aittir.

Not: Sadece yukarıdaki klasörlerden faydalanarak çok iyi performansa sahip büyük projeler oluşturabilirsiniz. Buradan sonraki klasörler ikinci derecede önceliklidirler ve önem seviyeleri hemen hemen aynı diyebilirim.
errors: Sistemde oluşacak hataların yönlendirileceği dosyalar burada bulunur.
helpers: Codeigniter’ın kendi yapısında bir takım yardımcı (helper) uygulamalar vardır. Bunlara ekleme yapmak isterseniz bu klasörden faydalanabilirsiniz.
hooks: Codeigniter’ın mevcut fonksiyonlarının farklı bir şekilde çalışmasını istiyorsanız hazırlayacağınız uygulamaları burada oluşturabilirsiniz.
language: Çok dilli sistemler için oluşturacağınız dil dosyalarını buraya eklemelisiniz.
libraries: Sistemi daha da güçlendirmek için yazacağınız kütüphaneleri bu klasörde bulundurmalısınız.
Daha önce kullanmış olduğum aşağıdaki resmi klasörlerin ve çalışma mantığının anlaşılmasına faydası olacağını düşünerek tekrar eklemeye karar verdim. Umarım artık daha anlaşılır bir resimdir.

Diğer Dosyalar

Peki ya projelerimizde kullanacağımız resimler, javascript ve css dosyaları gibi ek öğeler nerede bulunacak diye sorabilirsiniz. Bu klasörler ana dizinde system ile aynı seviyede bulunmalıdırlar. Viewdosyalarımızın içinden de basit bir şekilde bu dosyaları çağırabiliyoruz. Zaten ilerde örneklerini vereceğim.
Özet ve Sonuç
Bu yazımızın konusu Codeigniter’ın klasörleriydi. Anafikir ise system/application içindeki config,controller, view ve model klasörlerinin projelerimiz için çok önemli ve hatta yeterli olduğu, diğer klasörlerin ise çok daha ileri seviyelerde kullanılabileceğidir.
Codeigniter konusunda temel konuları bitirince daha ileri seviyede ve uygulamaya yönelik makaleler yazacağım. Bu konuda istekte bulunan arkadaşlar için bu notu düşüyorum ve birazcık daha sabretmelerini diliyorum.
Umarım bu makale Codeigniter’a ilk bakıştaki karmaşıklığı biraz olsun sadeleştirmiştir. En kısa zamanda tekrar görüşmek dileğiyle.
Not: Codeigniter konusunda Codeigniter Türkiye (www.codeigniter.gen.tr ) sitesini de tavsiye ederim. Oldukça güzel hizmet vermekteler.
Kaynak: Yakuter.com



Codeigniter Sayfalama Yapımı
0Bu Yazıda Codeigniter ile sayfalama sınıfının (Pagination Class) kullanımına bir örnek yapıcam. Veri tabanından listelenecek olan içerik çok fazlaysa malum sayfalama kullanıyoruz. MySQL’e çok fazla yüklenmemek lazım. Evet şimdi gelelim yapılışına öncelikle alttaki kodu paging.php ismiyle libraries klasörünün içine atıyoruz.
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); class paging { var $ci; function __construct() { $this->ci = & get_instance(); } function listele($data) { //Sayfalama $this->ci->load->library('pagination'); $config['base_url'] = $data['url']; $config['total_rows'] = $data['toplam']; $config['per_page'] = $data['limit']; $config['uri_segment'] = $data['url_segment']; # SAYFALAMA CSS $config['full_tag_open'] = '<ul id="sayfalama">'; $config['full_tag_close'] = '</ul>'; $config['first_link'] = 'İlk Sayfa'; $config['first_tag_open'] = '<li class="previous">'; $config['first_tag_close'] = '</li>'; $config['last_link'] = 'Son Sayfa'; $config['last_tag_open'] = '<li class="next">'; $config['last_tag_close'] = '</li>'; $config['next_link'] = 'Sonraki'; $config['next_tag_open'] = '<li class="next">'; $config['next_tag_close'] = '</li>'; $config['prev_link'] = 'Önceki'; $config['prev_tag_open'] = '<li class="previous">'; $config['prev_tag_close'] = '</li>'; $config['cur_tag_open'] = '<li class="active">'; $config['cur_tag_close'] = '</li>'; $config['num_tag_open'] = '<li>'; $config['num_tag_close'] = '</li>'; $this->ci->pagination->initialize($config); $return['page'] = $this->ci->pagination->create_links(); /* LİMİT */ if ($this->ci->uri->segment($data['url_segment'])) { $segment = $this->ci->uri->segment($data['url_segment']); } else { $segment = 0; } $return['limit'] = array($config['per_page'] => $segment); return $return; } }