29 Ağustos 2008 Cuma

Mysql den Veri Kurtarma Üzerine

Geçen gün başıma ilginç bir olay geldi.Mysql sunucum aşırı yüklenmeden dolayı cevap veremez hale geldi ve çöküşünü phpmyadmin aracılığı ile resmen ilan etti.Bir web programcısı için veritabanının çökmesi kadar kötü bir olay yoktur heralde.Prpjelerin tabloları bilgiler vs gerçekten korkunç bir durum.Fakat bu durum zmanla bende eğlencel bir hal aldı.Nasıl mı?:

Bu işlemi yapabilmek için sunucu yönetimi tamamen size ait olmalıdır.Sunucumda mysql in kurulu olduğu dosya gittim hani belki roottdan çalıştırabilirim diye.Dosya ve klasörleri inceledikçe ilginç bir detayla karşılaştım.Data klasöründe her veritabanı için bir klasör hazırlanmış ve içlerinde çeşitli dosylar bulunuyordu.O dosyaları kopyalayıp (en azından tablo yapılarını kurtarmak adına ) sunucumu yeniden yapılandırdım ve kendimce yedeğini almış olduğum dosyaları yapıştırdım.ve...

Php myadminden girip baktığımda veritabanlarım yerinde duruyordu ve içindeki bilgilerle beraber! Bir programcı için bundan büyük mutluluk yoktur heralde :)

Bu konuda sizlere yardımcı olmuşumdur umarım.Tamamen tesadüf sonucu bulduğum bu yöntem daha önceden biliniyor yada kullanılıyormuydu haberim yok.Ama bu yöntemle çökmüş veritabanlarınızı rahatlıkla kurtaracağınızdan eminim.

23 Ağustos 2008 Cumartesi

Session,cookie,üyelik sistemleri (1)

php öğrenmeye başlarken en çok bu iki konu dikkatimi çekmişti.O zamanlar deneyimsizliğimden ötürü bu iki kavramın işlevlerinin aynı olduğunu söyleyip herhangi birinin varlığını 'gereksiz' görürdüm.

Zaman geçtikçe bu kavramın aslında ne kadar farklı olduklarını çok acı tecrübelerle yaşamış oldum :) Eğer bir üyelik sistemi geliştirecekseniz session mantığıyla geliştirilmesini kaçınılmaz olarak görüyorum.Çünkü session sunucu tarafında çalıştığı için güvenlik açısından webmasterların içini rahatlatır cookielere nazaran.bir üyelik sistemi tasarlanırken programlama ile veritabanı tasarımı çok iyi yapılmalıdır.Kodlamaya geçilmeden önce program senaryosu ve veritabanının kurulmuş olması gerekir.

Kısaca örneklemek gerekirse;

Veritabanımız :
id-kullanici_adi-mail-parola-tel-onay kodu-kullanici_kodu*
Onay kodumuz sistem tarafından otomatik oluşturulup,kullanıcıya mail olarak
gönderilecek.
* Güvenlik ve

girişler açısından daha sağlılı olsun istersek kullanici_kodu satırını veritabanına ekleyerek girişleri mail ve kullainici_kodu ile yapabiliriz.

Senaryo(Kayıt Sayfası için) :


----Kod Başlangıcı---

//POST tan gelen değişkenler tanıtılır;

//POST alanlarının kontrolü (eksik form geçersiz şifre ve mail adresi
vs)

//Veritabanı bağlantısı;

//kullanici kodu ve onay kodlarının oluşturulması;

//bilgilerin veritabanına girişi;

//Mail gönderme işlemleri;

---Kod Bitişi---

Şeklinde senaryolar oluşturmamızın her zaman yararı olacaktır.Bu şekilde kayıt sayfasının senaryo işlemlerini bitirdik.Bir sonraki yazımda giriş sayfası ve session kullanımı ile ilgili düşüncelerimi sizlerle elimden geldiğince paylaşacağım.
İyi Günler.


22 Ağustos 2008 Cuma

Yazılımcı - Programcı İlişkisi

Bu yazımda yazılımcı ve programcı arasında --bence-- olması gereken ilişkiyi ve farklılıkları paylaşmak istiyorum.

Yazılımcı kimdir? Ne iş yapar?

Yazlımıcılar aslında işin felsefesini yapan adamlardır yada öyle olmalıdır.Yani sürekli bilgisayar başında kod yazan insanlara yazılımcı ünvanı vermek doğru değildir.Yazlımcılar yazılımın mimarisini oluştururlar.Sonuca ulaşmak için en güvenilir ve basit yolları saptarlar,veritabanlarını en etkili şekilde kullanmanın yollarını ararlar.Kısacası ne yapmalıyım sorusuna değil; nasıl yapmalıyım sorusuna cevap arayan insanlara yazılım mühendisi-yazılım uzmanı gibi ünvalar verilmelidir.Yazlımcılar sadece kullandığmız bilgisayarlar için değil diğer elektronik aletler içinde çözümler üretebilirler.Savunma sanayisinde kullanılan yazılımlar gibi.

Yazılımcı ile programcı arasındaki ilişki; felsefeci ile bilim adamı arasındaki ilişkiyebenzer.Programcılar genelde belli programlama platformları üzerinde üzerinde yoğunlaşır,uzmanlaşırlar.Projelerin bitişine kadar kritik roller üstlenirler.Çünkü bir proje ne kadar iyi olanlanmış olursa olsun sonuçta programcının kabiliyetiyle doğru orantılı olacaktır herşey.

Umarım bu farkı sizlere doğru anlatmışımdır.Yazdıklarım genellemeden ziyade kişisel düşüncelerimdir,sistem belki tam öyle işlemesede doğrusunun öyle olduğunu düşünüyorum

Kitaplardan Programlama Çalışmak

Programlamaya başlarken eğer bir kursa gitmiyorsanız ve kendi çabalarınızla birşeyler yapmak istiyorsanz programlama kitapları kaçınılmazdır.Bir sonraki yazımda bu tür kitaplar hakkında ayrıntılı bir yazı yazmayı düşünüyorum.Bu yazmda ise programlama kitaplarıyla verimli ve öğretici bir şekilde çalışma yöntemlerine...Programlama kitapları öncelikle anlattığı dil,platform hakkında kısa bilgiler verir ve o platform,dilin doğuş aşamasına kadar olan süreci özetlerler.Sizlere tavsiyem bu bölümleri dikkkatle okumanızdır.Bu sayede çalışıcağınız dilin,platformun hangi amaca hizmet ettiğini daha iyi kavramış olursunuz ve daha başarılı işler çıkartabilirsiniz.En önemlisi bu tür çalışmaları bir zorunluluk yada para kazanma hırsıyla yapmayın.Hobi olarak başlarsanız ve gerçekten hakkını vererek çalışırsanız gerisi çorap söküğü gibi gelecektir.Programlama kitapları içerisinde birçok kodla beraber gelir.Bizıları bir CD de toplayarak ta bu kodlara ulaşmanızı sağlar.Sizlere tavsiyem;bu hazır kodları incelemeden önce kitabın içindeki alıştırma tadında kodlar vardır.Onları inceleyin.IF,ELSE kullanımı;Döngü işlemleri gibi kodları analiz ederek incelerseniz ve bu kodları kopyala yapıştır yöntemiyle değilde kendiniz yazarak çalışırsanız gerçekten o programlşama dilini öğrenmiş olursunuz.Aksi takdirde bir döngü bile kuramazken kendinizi programcı ilan edersiniz;fakat sadece kendinize programcı olursunuz.Kitaptaki hazır kodları incelerken gerkerise satır satır kalemle üstünü çizerek analiz yapın.Böylece işin mantığını tam olarak kavrar ve gerçek bir programcı olma yolunda sağlam temeller atmış olursunuz.Programlama işinde en çok canımı sıkan olay aklımdakileri bir türlü kodlara dökememem olurdu.Aklınızda canlandırdığınız olayları kodlara rahatça dökmek istiyorsanız tavsiyelerimi dikkate almanızda fayda var...

Hangi Programlama Dilinden Başlamalıyım?

Forumlarda gördüğüm ve yakın çevremde tanıdıklarım arasında programlamaya merak salan arkadaşlarda hep aynı soru? Acaba hangi dilden başlamalıyım hangi kaynaktan çalışmalıyım?Bu aşamaya gelinmeden önce yapılması gereken daha önemli bir işvardır: Programlamanın mantığnı anlamak.Hangi dilde,hangi platformda çalışırsanız çalışın değişken nedir,nesne nedir veritabanı nedir nasıl kullanılır gibi sorulara cevap verebilmelisiniz.Aksi taktirde programlamaya başlandığında zorluk çekilir demeyelimde zman kaybı olur bazı kavramlar havada kalır.(kendimden biliyorum.)Birinci aşamadan sonra gerçekten çok iyi seçim yapılmalıdır seçilecek platformlar konusunda.Yazılım sektörü çok iyi analiz edilmeli ve uzun vadede düşünülmelidir.

Yazlım sektöründe devir internet devridir.Yani internet programcılığı devri.Örneğin bir şirket çalışanı evinden günlük bilançoları görebilmeli , önündeki günlerin planını yapmalı gibi işlemleri internet teknolojilerini kullanarak yapabiliriz.Bu konuda php (asp ye nazaran) ; programcısının kabiliyeti ve hayal gücüyle beraber ihtiyaçlarımızı karşılayabilir.Fakat biraz daha profesyonel düşünürsek yani kurulabilir bir exe dosyasından bu işlemleri yapmak istersek C# ve JAVA gibi güçlü dillerle karşılaşırız.(php de gtk kütüphaneleriylede olabilir)

C# ve Java ile hem kurulabilir hemde internet tabanlı programlar yazılabilir.Bu yüzden bu iki dilden biri ileri programlama için tercih edilebilir.bu iki dil arasından bir tercih yapmak istersem benim tercihim Java olur.Çünkü C# ; Microsoft'un kendi platformlarını desteklemek ve Java da gördüğü başarıyı kendinisine uyarladığı bir dildir.Artıları ve eksileri tabiki tartışılır ama Java benim için daha baskındır.Kısacası artık çok yönlü diller tercih edilmelidir.Bunun yanında benim düşüncem her programcı C dilini orta düzeyde bilmelidir.Çünkü çoğu platformun atasıdır C :)Java yada C#dışında alternatif iki dil daha görüyorum. Ruby ve Python.Gerçekten bu iki dil öğrenilmesi kolay ve dondurulmuş gıda gibi çabucak güçlü projeler hazırlayabilirsiniz.

Özetlemek gerekirse ;- C dilini orta düzeyde bilmekte fayda var,-Yüksek seviyeli dillerden (Java,C#,C++ da olabilir) birine hakim olmak beklentileri tam olarak karşılamanızı sağlar,-Web tabanlı diller geçerliliğini her zman sürdürür(php açısından),-Yeni teknolojileri takip etmek her zaman yaralı olacaktır.(Python,Ruby).İyi Günler.

Merhabalar

Bu sizlerle ilk yazım.Bu ilk yazımda sizlere bu sitenin içeriğini anlatmak istiyorum.Dilimin döndüğü kadar sizlerle temel programcılık ve php bilgilerimi paylaşcağım.Programcılıkta çok iddialı olduğum söylenemez fakat edindiğim tecrübeler ve bilgi birikimimi paylaşmak için sabırsızlanıyorum.Takıldığınız konuları beraber tartışır , benim birikimlerime eklemek istediklerinizi konuşmayı umuyorum.Böylece her kesim php programcısına hitap etmeyi düşünüyorum.Hoşgeldiniz. :)