Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

bir toplistin anatomisi ve net hikâyem...

Konu, 'PHP' kısmında mustafa tarafından paylaşıldı.

  1. mustafa

    mustafa Daimi Üye

    Kayıt:
    17 Ocak 2003
    Mesajlar:
    962
    Beğenilen Mesajlar:
    0
    Meslek:
    web programlama
    Şehir:
    istanbul
    aşağıdaki yazıyı hit sıfırlamayla ilgili konuya cevap olarak ekleyecektim. ama belki başkalarının da işine yarar diye, çok uzun olduğundan yeni bir başlık olarak ekleyeyim dedim.

    herkese kolay gelsin.

    -----------

    2001 yılının ilk aylarında ilk sitemiz iktibas.net yerini yavaş yavaş tutarken, bir de toplist kurmanın çok iyi olacağını düşündük. sâdece perl biliyordum. mysql, asp, php gibi şeylerin adı vardı ama kullanan pek yoktu. çok iyi bâzı siteler asp kullanıyorlardı ama en çok salt html kullanılıyordu. (alt tarafı iki yıl öncesinden "ahh ahh, ne yıllardı be" diye bahsetmek mümkünse, bu bilgi teknolojileri gerçekten çok hızlı ilerliyor ve yayılıyor demektir.)

    iktibas'taki metinleri "text database" denilen çok iptidâî bir usûl ile saklıyordum. yâni bir yazının bir kere daha okunduğunu kaydedebilmek için bütün bir text dosyasını okutup, arasından bir satırı değiştirip, geri yazdırıyordum. ama o zaman için her gün sitemize stoktan yeni bir yazının kendiliğinden eklenmesi ve bütün üyelere mail yolu ile gönderilmesi bile çok büyük lükstü. siteye hiç bakmasan günlerce kendiliğinden güncellenip gidecek ha? vayy be... ne müthiş hâdise. millet her güncelleme için html upload ederken, gerçekten müthiş bir hâdise idi. itiraf.com'un da o zamanlar salt html olduğunu bilenler bilir.

    o zaman iyinet'in ve zirve100'ün çıkış yaptıkları zamandı. herkes bir iyinet, bir zirve100 kurmak hevesine düşünce meydana çıktı ki, bu iş sâdece html kodlama ile olmuyor. bir kaç uyanık virtualave'den veyâ hypermart'tan bedâva aldıkları alanlarda hazır scriptlerle ufak toplistlerini kuruverdi.

    işte biz de o hevesle kurduk kalite100'ü. "zirve100 varken, kalite100'e ne ihtiyâç var?" sorusuna da kendimizce bir cevap bulduk. biz kalitesiz (=hitlerinin sebebi muhtevâsının bozukluğu olan) sitelerin barınmayacağı bir toplist kuracaktık.

    dedim ya sâdece perl biliyordum. nitekim perl + text database'le toplistin ilk temellerini attım.

    text database şunun gibi bir şeydi:

    _kod (bu sitenin âit olduğu konu başlığını gösterir kod. meselâ _bsn="Basın Yayın")
    filankes (kullanıcı adı)
    1234567 (şifre)
    Filânkeş site (listede görünecek başlık)
    http://www.filankes.com (nerede tabiî böyle url? o zamanlar http://www.geocities.com/filankes kaydolursa topliste, öp başına koy)
    12 (bugünkü hit)
    85 (bu ayki hit)
    _kod
    falankes
    324567
    Falankeş site
    http://www.falankes.com
    9
    30
    ...

    böylece her "_" karakteri yeni bir kaydın başladığını, her satır başı da diğer sütüna (=field) geçildiğini gösteriyordu. birisi site başlığına tutup "_=filân site=_" yazdığında karışıklık çıkmış ("_" yüzünden) ve site başlığına "_" karakteri ile başlamayı engelleyici kodlar ilâve etmek durumunda kalmıştık. ha günlük ve aylık hitleri nasıl sıfırlıyorduk? şöyle: ana sayfanın her açılışında bir dosyada yazan bir târih kontrol ediliyordu. eğer şu andaki târihin günü o dosyadaki târihin gününden farklıysa gün değişmiş demek olduğundan günlük hit sıfırlanıyor ve o dosyaya yeni târih yazılıp kaydediliyordu. eğer dosyadaki târih günün târihine eşitse, yapacak bir şey yok. aynı algoritmanın ay için olanı da ay sonunda aylık hitleri sıfırlıyordu. böylece işler yürüyordu. sayfaya giren olmazsa hitler de sıfırlanmıyordu. "zâten giren olmayan sayfanın hitleri sıfırlansa ne, sıfırlanmasa ne?" mantığıyla işi hallediyorduk.

    bu iptidâî yolla iktibas da, kalite100 de 5-6 ay çalıştı. tabiî ara sıra her ikisinde de text dosyamızın birbirine girdiği, ortalığın savaş alanına döndüğü oluyordu. aynı anda iki yerden birden dosyaya yazılmaya kalkınca dosyanın şaftı kayıyor ve karman çorman oluyordu. biri yazarken öbürü yazamasın diye engeller mi koymadık, başka bir kontrolör dosya oluşturup, kayıt yapmaya başlarken ona bir kırmızı ışık kaydı yapıp, iş bitince ışığı yeşile çevirme ve ışığı kırmızı bulanın kayıt yapmaması üstüne sistemler mi kurmadık... ne ettiysek olmadı. işler giderek çığrından çıktı ve buna köklü bir çözüm bulmak gerekti.

    işte o zaman çok enteresan bir şey yaptım ve hayâtımın ilk ve tek database sistemini yazdım. adını da "perl sql" mânâsında "PSQL" koyduk. perl ile yazdığım bu database sisteminin kendine has bir sql dili vardı ve türkçe idi. meselâ:

    ekle::metin::konu=:5::baslik=:Bu ne ya!::metin=:bir metin salla::iktibas=:kafadan attım

    sql cümleciği "metin" tablosuna konu sütûnu 5, baslik sütûnu "Bu ne ya!", metin sütûnu "bir metin salla", iktibas sütûnu "kafadan attım" olan bir kayıt ekliyordu. bütün cümle çeşitlerini yazıp lâfı uzatmayayım, ama sql ile ekleme, sorgulama (ki karşılaştırma operatörleri bile vardı), silme, düzenleme işlemleri yapılabilen bir sistemdi bu. yeni tablo oluşturmak için, hazırdaki tabloları düzenlemek için şimdi "perl sql admin" diye adını da koyabileceğim bir bölümü de vardı. rakam, yazı, târih gibi sütûn çeşitleri vardı.

    esâsen yine text database kullanıyordum ama nasıl? bir kere cümlecik sorgulama işine bir program ayırmıştım. database'den bilgi okunmasına dâir bir emir geldiğinde hemen istenen tablo oluşturulup geri döndürülüyordu. database'de değişiklik yapılmasına dâir bir sql cümleciği geldiğinde ise bu emirler hemen yerine getirilmiyordu. bir "emirler" dosyası daha oluşturmuştum. oraya da yine diğer programın anlayacağı şekilde gelen kayıt düzenleme emirlerini kaydediyordum. bir de "yazankafa" isimli bir programcığım daha vardı ki, o da bütün databaselerde yapılması istenen değişikliklerin biriktiği "emirler" dosyasındaki emirleri topluca yerine getirir, "emirler"i de boşaltırdı. böylece her bir hit artırımı için ana dosyalar rahatsız edilmemiş olurdu. table bilgilerinin tutulduğu büyük kayıt dosyaları (uzantıları .kay idi) bir kere açıldı mı, birikmiş bütün değişiklikler yapılır ve kapatılırdı.

    ha bir de bu sistemin sıkıştırma işi de vardı. çok iyi hatırlıyorum, aynı bilgiler bir access mdb'sinde 5 MB tutarken benim sistemde 900 KB'lık bir .kay oluyordu. rakamları 250'lik sistemde binary olarak kaydettiğim ve türkçe kelimelerde en çok yan yana gelen harflere göre değişik şifreleme usûlleri kullandığım için fenâ sayılmayacak bir sıkıştırma da gerçekleşiyordu.

    ahhh ahhh, o zamanlar bulunduğum server'ın linux olduğunu bilmiyordum. daha doğrusu o zaman server denen şeyler değişik şeylerdi ve windows olma ihimâlleri sanki pek yoktu. NT kullanan kaç yer vardı ki? bilseydim cron jobs diye bir şey var, ne kolay olurdu işlerim. sordum hostuma da o kadar, "zamana bağlı program çalıştırma imkânımız var mı?" diye. o da bilemedi. yaaaa, o zaman cpanel mi vardı? vardıysa bile ben bilmiyordum. o yüzden bütün otomatik işlerimiz "sayfaya birisi gelirse..." ihtimâline dayalı olarak çalışıyordu.

    her neyse, kalite100'ü bu "perl sql" sistemine geçirdim. iktibas'ı da geçiriyordum ki... başka bir şey oldu. hostumuz artan trafiğimiz kendini rahatsız ettiğinden başka bir host bulmamızı istedi. işte o zaman "websahibi" diye bir yer bulduk. gâyet ucuz görünüyordu. hem de asp çalıştırabilecektik. yaa, asp'yi iyi zannediyorduk o zaman. hem de access database kullanacaktık. böylece bütün çökme işlerinden de kurtulacaktık hesapta. vaziyet böyle olunca hemen oraya taşındık.

    iktibas'ı asp ile tekrar yazdım. database'leri access'e attım. işler büyük ölçüde yoluna girdi. ama kalite100'ü perl sql'de bıraktım. açıkçası ikisini de denemek istiyordum. acaba benim sistemim de işe yarayacak mıydı?

    taşınırken öğrendim ki, biz önceden linux bir serverda imişiz, şimdi ise windows 2000 servera geçiyormuşuz. ah o websahibi'nin ilgisiz, sorumsuz sorumluları... hiçbir zaman o kadar sorumsuz host görmedim. şaka değil bu, şu anda 5. hostumuzdayız, 2'si gavur 5 host gezdim, onlar gibisini görmedim. yine de perl sql ile çalışan kalite100'ü de, access + asp ile çalışan iktibas'ı da ne ettim ettim çalıştırdım.

    kalite100'ün sisteminde bir değişiklik yoktu. yine bugün ve bu ayki hitleri yine aynı yolla tutuyordu.

    şunu da söyleyeyim, bu arada bâzı büyük toplistlerde ana sayfadaki hitlerin her yeni açılışta değişmediğini görüyor ve değişik bir sistem kurduklarını tahmin edebiliyordum. "hitler bir yerde birikiyor, belli zaman aralıkları ile toplanıyor olmalı" diye düşünüyordum. ama o tür bir uygulamanın ancak hitler çok arttığında gerekeceğini düşündüğümden "şimdilik böyle gider..." deyip, o işe vakit ve zihin mesâisi ayıramadım.

    sonra websahibi ile sonu gelmeyen kapışmalarımız... saatler, bâzen günler süren downtimeler. daha kötüsü access database'lerin kilitlenip kalması. HTTP 500 devirleri... inanın benim "perl sql" access'ten sağlam çıktı. iktibas'ın databaseleri bir kilitleniyor, ulaş ulaşabilirsen. ama kalite100 bomba gibi çalışıyordu. taa ki, günde 10 - 15 bin hit sayar hâle gelene kadar. bir yanda iktibas'ın zırt pırt kilitlenen access database'leri, bir yanda yavaş yavaş ufak çöküntüler yaşamaya başlayan kalite100. bir çöküntü haftada bir gerçekleşiyorsa dert değil, her akşam yedek alarak vaziyeti şöyle böyle idâre edebilirsiniz. ama her gün çökmeye başlayan bir database'in belini kim doğrultabilir ki?

    access database'lerin çalışmaması / ya da kilitlenmesi sâdece bizi rahatsız etmediğinden (serverda hiçbir access database çalışmaz oluyordu) aylar sonra bizi daha hızlı bir server'a aldılar. işte o vakit birden bire access databaseler hızlandı ve access'e bir kez daha güvenmek hatâsına düştüm. oturdum artık her gün çökmeye başlayan kalite100'ü de asp + access ile yeniden yazdım.

    ama tablo kullanımında biraz değişiklik yaptım. bir liste tablom vardı. sitelerin adlarının, url'lerinin filân kaydolduğu ana tablo. bir de hitler diye ayrı bir tablom vardı. onda da hiti alanın seri nosu, ve hiti alış târihi iki sütûn hâlinde kaydoluyordu. böylece ana sayfa açılırken siteleri hitlerine göre sıralamak için iki tabloyu birden ilişkili şekilde seçiyordu ki, bu iş için kullandığım sql hayâtımda kullandığım en karışık sql'di. aradım eski çalışmaların içinde bulamadım şimdi. önceleri sayfa "şakk" diye açılırken zamanla ağırlaşmaya başladı. sql oyunları ile bir müddet daha işi kurtardık.

    zaman geçti, kalite100'ün hitleri daha da arttı. gün geldi günde 40.000 hit sayar olduk. bu hitlerin gündüz saatlerinde yoğunlaştığını göz önüne alırsak, sâniyede bir kaç hit sayıyor olmalıydık. ve sonunda bir gün komple server kilitlendi. websahibi bizim bütün account'ları kapattı. anladım ki sistemde yine bir değişiklik yapmalıyım. işte o zaman, o dar günlerimde bir yol daha geliştirdim.

    tampon diye bir table daha oluşturdum. gelen hitleri önce tampon table'a kaydediyordum. sayfaya her ziyâretçi gelişinde de tampon table'ında birikenleri hitler tablosuna topluca atıyor ve tamponu temizliyordum. böylece hitler table'ının aşırı yüklenmesini ve bütün sitelerin 7 günlük hitinin târihleriyle birlikte durduğu o koca table'a sâniyede bir kaç kayıt birden gelerek çökmeye sebep olmasını engelledim. ayrıca 7 günlük kayıt yerine 3 günlük kayıt tutmaya başladım.

    böylece bir kaç ay daha gitti. ama sonra yine çöküntüler başladı. anladım ki artık asp + access benim yükümü çekemiyordu. başka bir yol denemeliydim. yine kendi database sistemimi yazmayı plânladım. ama bu sefer c++ ile yazacaktım. oturdum biraz c++ öğrendim. başladım kendi database sistemimi yazmaya. ama bu sefer daha çok mesâfe alamadan başka bir şey oldu...

    websahibi bizim database yükümüzün çok olduğu ve kalite100'ün fazla cpu kullandığı gerekçesiyle accountlarımız kapattı ve kendimize yeni bir host aramamızı istedi. o zaman yeni database sistemimi yazmaya vaktimin olmadığını anladım. siteyi âcilen alphost diye bir yere taşıdım. yine win 2000 bir serverdaydım. ve 2000 ile işin sonuna geldiğimi anladım. artık kendi database sistemimi yazacak kadar da vaktim olmadığından hazır bir sisteme geçmeliydim.

    kısa sürede php öğrendim. php + mysql'e dayalı yepyeni bir sistem yazmaya başladım. hâlâ da bu sistemi kullanıyoruz.

    iktibas'ın ve kalite100'ün ve kalite100 banner değişiminin üyelik sistemlerini tek bir kimlikte birleştirdim. (ha bu arada bir de banner değişim sistemi kurmuştuk.) hobaa!id adını verdiğimiz bu kimlikle bütün sitelerimizde üyelik gerektiren bütün işler tek giriş ile hallolabilecekti. nitekim öyle de oldu.

    tabiî kalite100'ün data yapısını da tamâmen baştan dizayn ettim. artık akıllanmıştım. artık günde 40.000 hit gelince ortalığın nasıl savaş alanına döndüğünü iyi biliyordum.

    kalite100'ün kayıtlarını tutmak için üç table kullanıyorum:

    1) tampon: bu table'da bir tek sütûn (=field) var. o da hiti alan sitenin serî nosu. yeni bir hit geldiğinde hiçbir şey kontrol edilmeden doğrudan buraya "INSERT" cümleciği ile seri numarası ekleniyor.

    2) hitler: bu table'da üç sütûn var. birisi site serî nosu için, birisi hit sayısı için, birisi de târih için.

    3) analiste: bu table'da url, başlık, filân, falan sütûnlarının yanında ayrıca bhit (=bugünkü hit), bsira (=bugünkü sıra) ve dsira (=dünkü sıra) sütûnları var.

    sistem şöyle çalışıyor:

    * bir hit geldiğinde tampona serîsi ekleniyor. peş peşe aynı sitenin, aynı makineden çok hitinin eklenmesi session ile (engellenebildiği kadar) engelleniyor.
    * yarım saatte bir (cron jobs sağolsun) çalışan bir program "SELECT seri, COUNT(seri) AS hit FROM tampon GROUP BY seri" sql'i ile tampon databaseindeki hitleri; "site serîsi, aldığı hit" şeklinde iki sütûnu olan bir tablocuk şeklinde okuyor. sonra da bu hitleri o anki târih ile hitler table'ına işliyor. böylece hitler table'ında her hit ayrı bir kayıt olmuyor. o yarım saat içinde 8 hit alan bir site için, hitler table'ında site serîsi ve karşısında 8 yazan bir kayıt oluşuyor. bu da hitler tablosunun hacmini önemli ölçüde azaltıyor.
    * yarım saatte bir çalışan bu programın çok büyük bir vazîfesi daha var. o da şu: hitler tablosundan bugünün hitlerini "SELECT seri, SUM(hit) AS bhit FROM hitler WHERE tarih='bugünün târihi' GROUP BY seri ORDER BY bhit DESC" sql cümleciği ile hem seçiyor ve hem de aynı anda sıralıyor, sonra da buradan okuduğu hitleri ana tabloya işliyor.
    * gündönümünde çalışan bir programcık da ana tabloda dsira=bsira yapıyor. yâni dünkü sıra kayıtlarının hepsini bugünkü sıra kayıtlarına eşitliyor. bugünkü sıra kayıtları zâten bir müddet sonra günün ilk hitleriyle yeniden belirlenecek.

    böylece ana sayfayı gösteren program hitler tablosuna hiç bakmıyor. ana tablodaki bugünkü sıra değerine göre listeyi sıralayıp, bugünkü hit değerini de yine ana tablodan okuyup (bhit) gösteriyor. ayrıca bugünkü sıra dünkü sıradan düşükse aşağı doğru bir ok, yüksekse yukarı doğru bir ok, eşitse düz bir çubuk göstererek başka bir güzellik daha sağlamış oluyor. evet bu durumda ana sayfada gözüken hit ve sıralama yarım saatte bir değişiyor ama, gâyet stable bir sistem sağlanmış oluyor. bu sistemin sapasağlam çalıştığını gören ben de, anlıyorum ki daha önce de dikkatimi çeken bu işin sebebi buymuş. büyük toplistlerin hepsinde de bu yüzden ana sayfada hitler anlık gösterilmiyormuş. evet... işte böyle... büyümenin bâzı mâliyetleri var... ama tedbirinizi iyi alırsanız, hasar almadan da sıyrılabiliyorsunuz. şu anda kayıtlı sitelerin 7 günlük hitlerini tutuyoruz ve site sâhipleri hobaa!id'leri ile 7 günlük ziyâret grafiklerini görebiliyorlar.

    7 aydan fazla oldu php + mysql kullanıyorum. bu sistemi kullanırken de bir kere host değiştirmek zorunda kaldık ama bu sefer database problemleri sebebiyle değil, hostun anormal downtimeları sebebiyle.

    şu anda onsmart.net'teyiz. buradaki 5. ayım olsa gerek. burada da bir kere mysql çökmesi yaşadım. ama kalite100'den değil. onun sebebi de bambaşka bir hikâye. hoşunuza gittiyse onu da başka zaman yazarım. ama kalite100 şimdi bu son hâliyle bayağı iyi bir vaziyette. müstehcen veyâ illegal (dialer filân) içerikli siteleri listeye almadığımız için listemiz çok yavaş büyüyor. gelen kayıtların ancak 3'te biri listeye giriyor. ama yine de büyük kesintiden sonra şimdilerde yine günde 30.000 hit sayar hâle geldik. sistemimiz yukarıda anlattığım gibi olduğu için şimdilik en ufak bir yavaşlama veyâ sıkıntı yok. bu sistem de iflâs ederse yeniden ar-ge çalışmaları yapacak ve sistemi yine değiştireceğim. bu işin sonu yok. ben şimdiye kadarki yolumu anlattım. toplist kurmak isteyen arkadaşlar için işe yarar bir kaynak olur umarım.

    bu arada php'nin asp'ye şüphe götürmez üstünlüğünü ve mysql'in gücünü (evet onu da çökerttim ama çökmesi normaldi. onu sonra anlatırım...) gördüm. linux server'ın win 2000 server'a nasıl beş bastığını da gördüm. bundan sonra başım tekrar dara girerse herhalde oturup kendi database sistemimi yazmaya kalkmam, ama mysql++ ile php yerine c++ kullanmayı deneyebilirim. öyle bir tecrübe de yaşarsam onu da yazarım. sizin bildiğiniz başka yollar varsa onları da öğrenmek isterdim.
     
  2. Mingitau

    Mingitau Misafir

    Güzel anılar....:)
    Mustafa çalışmayan sayfaların üzüntüsünü belirtmişsin ama sorunu çözmenin verdiği zevkten pek bahsetmemişsin....

    Bu arada Şu senin PSQL bir aralar Ocal da sorduğun şey mi?
    Text-Database i sorgulamak...
     
  3. acemi

    acemi Misafir

    Hmmmm, hmmmm. Hemen bunlari not aliyorum :)
    Bu tip tecrubeleri okumak cok ogretici oluyor.
     
  4. mustafa

    mustafa Daimi Üye

    Kayıt:
    17 Ocak 2003
    Mesajlar:
    962
    Beğenilen Mesajlar:
    0
    Meslek:
    web programlama
    Şehir:
    istanbul
    üzüntüler hep sevinçten çok olmuştur. sevinç çok olsaydı, ilerleme kaydetmek mümkün olmazdı.

    her bir sıkıntının bitişi bayramdır tabiî. onu da inkâr etmeyelim. ve o bayramlar o sıkıntılara deymektedir her zaman.

    PSQL'e gelince...

    ilk kullandığım text database bol bol çökmeye başlayınca ocal'da çok sordum, bunu nasıl çözeceğimi. sağolsunlar çok yardım edenler oldu. ama hiçbir destek işi kökten çözmedi. o zaman mecbur kaldım PSQL adını verdiğim o enteresan database sistemini yazmaya.

    PSQL'in kodları hâlâ duruyor. çalışması için tâdilât ve başkalarının kullanabilmesi için biraz da dokümantasyon lâzım. ama mysql varken, benim dandik sistemi yeniden canlandırmaya hiç ihtiyâç yok.
     
  5. ozan

    ozan Üye

    Kayıt:
    27 Ekim 2002
    Mesajlar:
    53
    Beğenilen Mesajlar:
    0
    herşkeşler yapsa.. :)

    herkes böyle yazsa net hikayesini süper bir arşiv olur, insanlar faydalanır..
     
  6. HunTER

    HunTER ...

    Kayıt:
    15 Ağustos 2002
    Mesajlar:
    8,684
    Beğenilen Mesajlar:
    0
    Meslek:
    Web Programlama
    Şehir:
    İstanbul
    Azmın karsısında hayrete dustum.. Tebrıkler dogrusu.. Kendı sayfamı hızlandırmak ıcın ufak bıkac degısıklıgı yapmak bıle zoruma gıtmıstı.. Hem tinyint yerıne int smalltext yerıne text kullanan ve sadece satır sayıyısı ogrenmek ıcın select * from dıyen bırı ıcın bu cabalar gercekten sasırtıcı.. Demek dara dusmeden cozum ıcın caba harcamıyor ınsan.. Nede olsa gunde 100-150 hıt alan bı sıte bızımkısı :)

    Ama artık akıllandım.. Bence daha ısın basındayken alıstırmalı ınsan buna kendısını.. Hiti ne olursa olsun :)
     
  7. Mingitau

    Mingitau Misafir

    Önce düşünmek her lasılığı değerlendirmek gerekli...
     
  8. RakyoL

    RakyoL Üye

    Kayıt:
    12 Eylül 2002
    Mesajlar:
    101
    Beğenilen Mesajlar:
    0
    Meslek:
    öğrenci
    Şehir:
    CHoRLu
    mustafa bu yazıyı okuyacam ama daha sonra kaydediyorum şimdi sora yorum yaparım :))
     
  9. LEthaL

    LEthaL Daimi Üye

    Kayıt:
    8 Kasım 2002
    Mesajlar:
    601
    Beğenilen Mesajlar:
    0
    Meslek:
    0grEnmEk :p
    Şehir:
    Sakarya
    Müthiş.
    Bir sorum olacak. Hosting hakkında şu an kullanmakta olduğunuz hosting firmasından memnun musunuz? Hosting konusunda önerileriniz var mı?
     
  10. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    Sürekli vt çökerten bir forumda bunları yazmak bir tesduf değil dimi Mustafa sık sık downtimelar yasamak kadar kötü bir olay yok ama bizde bayramı göreceğiz inşallah yakında... :yildiz:
     
  11. mustafa

    mustafa Daimi Üye

    Kayıt:
    17 Ocak 2003
    Mesajlar:
    962
    Beğenilen Mesajlar:
    0
    Meslek:
    web programlama
    Şehir:
    istanbul
    bu forum gâlibâ bayağı bayağı büyük, o yüzden belki daha çok sistem kaynağı olan bir server'a ihtiyâcınız olabilir.

    belli bir târihten öncesini ayıracak şekilde tabloyu ikiye bölüp, o târihten eski yazıları sâdece okunur hâle getirmek (bir nevi arşiv hâline dönüştürmek) her ne kadar zahmetli bir işse de işinizi büyük ölçüde çözer gibi geliyor bana. tabiî bu ihtimâlleri hep düşünmüşsünüzdür muhtemelen, diyecek bir şey yok, allah kolaylık versin. biz de bayramı bekliyoruz.
     
  12. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    Valla taşınacaz ama bir türlü taşınamadık inşallah o zaman sorunlar hallolur.

    Şaşırdığım nokta bundan 1 ay önce alexada 43 binlerdeydik şu anda geriliyoruz 65 binlere düştük ama yinede bu kadar ziyaretçi var mı cidden bilmiyorum eğer varsa cidden büyümüşüz farkında değiliz ya da alexa da hata var :) gerçi google da ne aratsan ceviz çıkıyor ama... :rolleyes:
     
  13. blackhawk

    blackhawk Üye

    Kayıt:
    16 Kasım 2002
    Mesajlar:
    244
    Beğenilen Mesajlar:
    0
    Meslek:
    ...
    mustafa, seni tebrik ediyorum

    bize güzel bir örnek oldun.

    birkaç şeyi merak ettim;

    i_) cron jobs.. bu program tam olarak ne işe yarıyor acaba ?
    bu program genelde serverlarda bulunuyor mu ?

    ii_) C++ 'la kendi veritabanımı yazacağım demişsin. Peki bunu serverda nasıl çalıştıracaksın?
     
  14. HunTER

    HunTER ...

    Kayıt:
    15 Ağustos 2002
    Mesajlar:
    8,684
    Beğenilen Mesajlar:
    0
    Meslek:
    Web Programlama
    Şehir:
    İstanbul
    Blackhawkın sorundugu soruların cevabını almayı bende cok ısterım. Bırde sahın abı cevize gırmekte gercektende sıkıntı cekıyorum.. Gun ıcınde ara ara 5-10 dakıkalık sureler ıcınde cevıze ulasamıyorum.. Ya zaman asımı yada dns hatası alıyorum.. Yanı ne yapsak bu durumda beklemek harıcınde?
     
  15. blackhawk

    blackhawk Üye

    Kayıt:
    16 Kasım 2002
    Mesajlar:
    244
    Beğenilen Mesajlar:
    0
    Meslek:
    ...
    mustafa, cevap vermeyecek misin ?
     
  16. acemi

    acemi Misafir

    cron, bir programi belli zamanlarda calistirmak icin kullanilir. Windows'daki "scheduled task" gibi... Zamani gelince program calisir. Unix/Linux sunucularda bulunur.
     
  17. mustafa

    mustafa Daimi Üye

    Kayıt:
    17 Ocak 2003
    Mesajlar:
    962
    Beğenilen Mesajlar:
    0
    Meslek:
    web programlama
    Şehir:
    istanbul
    cron jobs hâdisesini son yazan arkadaş tam da benim düşündüğüm gibi îzâh etmiş. ek olarak, CPanel bulunan hostinglerde, panel üzerinden cron jobs ekleme/çıkarma/düzenleme imkânı da bulunur çoğunlukla.

    c++ ile kendi veritabanı sistemimi yazmayı plânladığım zaman bütün detayıyla düşünmüştüm. önce c++ ile cgi yazmayı denedim ve oldu. .exe uzantısını .cgi yaptığınızda herşey tamam oluyor. tabiî serverda buna izin verilmiş olmalı. (zor bulunan bir şey değil)

    bu sistemde

    1. kendi database kayıt sistemimi yazacaktım. yâni bilgiler database'e âti dosya veyâ dosyalara nasıl bir kodlama ile yazılacak/okunacak. (ki PSQL'den bu konuda tecrübelerim vardı.)

    2. kendi Türkçe SQL dilimi üretecektim. (bu da PSQL'de yaptığımın geliştirilmişi olacaktı.)

    3. kendi basit web programlama dilimi üretecektim. yine Türkçe olmasını düşündüğüm bu dil, asp php gibi, eski programlama dillerine dayanmayan (c, basic gibi), sâdece web üstü uygulamaların ihtiyâçlarına göre dizayn edilmiş, öğrenmesi ve kullanması kolay bir şey olacaktı. ama buna programlama dili demek programlama dillerine hakâret olur, basit bir scripting kabûl edilebilir belki.

    sonracığıma, bütün işi yapan tek cgi dosyasını, hazırladığım scriptleri çalıştırması için, bilmemne.com/bilmemne.cgi?filanca.script şeklinde çağıracaktım. tabiî bunun eksikleri vardı. her bir script için tekrâr çalışan o exe (ki hem database kontrolünü, hem script yorumlamayı aynı anda yapacaktı.) sistem kaynaklarını yer bitirirdi herhâlde. halbuki php yanlış hatırlamıyorsam class olarak (windows'taki dll muâdili) çalıştığından bir kere RAM'e yüklenip, bütün scriptleri aynı class yorumluyor. (tıpkı asp.dll de olduğu gibi) buna nasıl çâre bulurdum tabiî orasını düşünecek kadar vaktim olmadı. sıkışık bir dönemdi dediğim gibi, php+mysql gemisine atlayarak o dönemi şimdilik atlattık elhamdülillâh.
     
  18. Yns

    Yns Daimi Üye

    Kayıt:
    3 Ekim 2004
    Mesajlar:
    2,848
    Beğenilen Mesajlar:
    0
    Gerçekten zevkle okudum , ve oldukça yararlı oldu :).Teşekkürler.
     
  19. mustafa

    mustafa Daimi Üye

    Kayıt:
    17 Ocak 2003
    Mesajlar:
    962
    Beğenilen Mesajlar:
    0
    Meslek:
    web programlama
    Şehir:
    istanbul
    son yazılandan bu zamana neredeyse 3 yıl geçmiş. ilk sayfada görünce birden şaşırdım. tekrar okuyup hâtıraları tâzeledim. bu artık kapanmış bir toplistin hikâyesi. bunun üzerine bununla ilgili daha ne gelişmeler oldu ama yazsam bir o kadar daha yazı olur ve maalesef buna vaktim yok. devir çok hızlı değişiyor, yetişmek mümkün değil, şimdi de şu ajax belâsıyla uğraşıyorum.
     
  20. stbolen

    stbolen Aktif Üye

    Kayıt:
    11 Kasım 2004
    Mesajlar:
    282
    Beğenilen Mesajlar:
    0
    Okumaktan müthiş keyif aldığım bir yazı. Herkesten bu başlık altında net hikayelerini yayınlamasını istesem çok şey mi istemiş olurum acaba. Biz acemiler de iyi bir tecrübe kaynağı keşfetmiş oluruz. Teşekkürler mustafa...