Şu anda 4 misafir bağlı Kaplama
ASP ile RSS Okuyucu
ASP ile Blog ve Haber sitelerinin RSS kaynaklarından çekilen verileri göstermek için bu projeye başladım ve
adresindeki adam gibi bir hal aldıktan sonra bunu başardım. Denemek isterseniz linki aşağıda. Lütfen değişik RSS kaynaklarıyla deneyin, gördüğünüz hataları ve önerilerinizi yorumlara yazın. Bu arada Firefox ile daha güzel çalışıyor. Firefox aldığı veriyi hemen işlediğinden kademe kademe yükleniyor, hoş görünüyor.
12.03.2005 00:14 ufukyayla
Powered By Access
Bir çok insan sitesine MySQL, MsSQL logosu koymuştur ama bir kişi bile gariban Access'inkini koymamıştır. Bu kadar emeği geçti, gücenmesin.
Sorgulanır aheste aheste.
Yavaşlar VT, üç-beş üyede,
Ah neyleyim bu hostinge,
Hasret kaldım MSSQL'e.
Ben sana dayanamam MySQL,
Ben sana aldanamam.
Ben sana katlanamam MySQL,
Ben seni kullanamam.
VT'yi flood ağlatır,
Siteyi bağlantı ağlatır,
Ben Access'e neylemişim,
Beni her zaman ağlatır.
9.03.2005 19:21: ufukyayla
Tamamlanma tarihi ile ilgili beklentilerin planlamada kazandığı ciddiyet arttıkça gecikme de büyür.
Kötüden daha kötüye gidecek olaylara yapılan müdahale en kötüye ulaşma hızını arttırır.
İşinizin tüm aşamalarını planlayıp birinci aşama ile işe başladığınızda, birinci aşamadan önce tamamlanmış olması gereken bir aşama daha olduğu ortaya çıkar.
İşinizi ne kadar iyi yaparsanız yapın, mutlaka sağını solunu değiştirmek isteyecek bir amiriniz/müşteriniz bulunacaktır.
Her şey düşündüğünüzden daha fazla zaman alır.
Eğer birkaç şeyin ters gitme olasılığı varsa, en fazla zarar verebilecek olan ters gidecektir.
Her işte ters gidebilecek 4 yol görüyorsanız ve bunları başarı ile atlatırsanız, o zaman beşinci bir ters yolun olduğunu göreceksiniz.
Her şeyi kendi haline bırakırsanız, kötü de en kötüye kayar.
Ne zaman bir şey yapmaya kalksanız, başka bir şeylerin daha önce yapılmış olması gerektiğini görürsünüz.
Hiç bir şeyi kazadan beladan uzak tutmak mümkün değildir. Çünkü aptallar çok beceriklidir.
Gülümse... yarın daha kötü olacaktır.
İşler tam da ters gitmeyeceği noktaya gildiği zaman ters gitmeye başlar.
Uzman, gittikçe daha az konuda daha çok şey bilen, en sonunda da hiçbir şey konusunda kesinlikle hiçbir şey bilmeyen biri haline gelen kişidir.
Hata yapmak insana özgüdür, ama her şeyi tam anlamıyla altüst etmek için bir bilgisayar gerekir.
Bir bilgisayar iki saniyede yirmi insanın yirmi yılda yaptığı kadar yanlış yapar.
8.03.2005 08:46: ufukyayla
Bugün bir deliyle karşılaştım "Abe bi cigara ver bea, bi cigara". Baktım adam samimi samimi sigara istiyor, kıvırmak yok, estek köstek yok, direk sigara istiyor; verdim. Bir teşekkür bile etmedi, yalakalanmadı, çekti gitti.
Kafama takıldı sonradan, etrafımdaki bir çok insana göre bu delide bir samimiyet var. Sözünde yalan yok, dosdoğru konuşuyor, nokta kadar menfaat için virgül gibi eğilmiyor. Adam gibi istediğini söylüyor. Amacını biliyor, gerekeni yapıyor, hedefine ulaşıyor.
Hakikaten deliler dünyadaki en dürüst insanlardır. Yalan söylemezler. Kendilerini olduklarından zengin, kültürlü, zeki, bilgili vs. göstermeye çalışmazlar. Yaltaklanmaz, yağ çekmezler.
Prensip sahibidirler, bildiklerinden vazgeçmezler.
Özgürdürler, kimse onlara ne yapacağını söyleyemez. İsterlerse yaparlar, istemezlerse yapmazlar. Canlarının istediği yerde gezerler. Kafaları bozulursa söver-sayarlar. İstedikleri gibi giyinirler, genelgeçer kaideleri iplemezler. Nezaket yahut şu bu gereği konuşmaz, dosdoğru bildiklerini okurlar.
Delilere ısınmaya başladım. Bişeyler var bu adamlarda. Yoksa bunlar veli mi?
7.03.2005 13:14: ufukyayla
VT de Kullanılan Alanı Bulmak
Örneğin bu sitede kullanılan site içi iletilerde (PM-ÖM) bir üyenin aldığı ve gönderdiği iletiler için kullandığı alanı hesaplatmak için aşağıdaki kodu kullandım. Burada verdiğim kod sadece alınan iletiler içindir. Diğerinide aynı mantıkla yazmak zor değil zaten.
Dim RsF, SqlF, xS
SqlF="select konu, metin from ileti_ileti where (alici='" & Session("kod") & "' and asil=false)"
RsF.Open SqlF, Conn, adOpenStatic, adLockReadOnly, adCmdText
If RsF.Bof=False And RsF.Eof=False Then
Alıcısı aktif üye [Session("kod")] olan iletilerden silinmemiş olanlarının sadece konu ve metin alanlarını seçtirdim. Bu alanlardaki bütün veriyi GetString ile xS adındaki bir değişkene atadım. Bu değişkenin boyutu üyenin gelen iletiler için kullandığı alandır. GetString yaparken hata vermesin diye araya "x" koyduğumdan xS değişkenine kayıt sayısının iki katı kadar "x" ekleneceğinden bunlarıda çıkardım. Çıkarmasakta olurdu, çünkü iletiler için kullanılan alan aslında bu bulduğumuz değerden fazladır.
Bir ileti için, gönderici, alıcı, tarih, okundu bilgisi ve ileti numarası gibi alanlarda kullanılıyor. Bunları göz ardı ettim. Eğer gözardı etmek istemesem select ifadesine bu alanlardan text türünde olanların adlarınıda yazardım. alıcı, gonderici gibi. Tabii o zaman "x" lerin sayısıda artardı. Son olarak bulduğum değere her ileti için tarih alanı 4 byte kullandığından (iletisayısı x 4) eklerdim. Ayrıca ino için integer olduğundan ve 4 byte kullandığından (iletisayısı x 4) eklerdim. Okundu, asil ve gsil alanları true/false olduklarından bunları eklemezdim. Tabii bu kadarı işi abartmak olacağından yapmadım.
Hamiş; konu ve metin alanları unicode sıkıştırmalıdır. Yani harf başına 1 byte kullanır. Aksi halde bulunan değeri 2 ile çarpmak gerekir.
Alan Tipi Alan Adı
6.03.2005 20:29: ufukyayla
İnternette başıboş gezen paketler,
Sitemde sizin kadar yalnızım,
Bir blog olsa belki duyulur sesim,
Scriptim bu, böyle yazılmış kodum,
Hiç kimsenin tasarımında yoktur gözüm,
Bir blog kodu yazar ki'bördüm,
Girmediğim site kalmadı dünyada,
Hangi foruma girdimse kaldı izim,
ASP'ye geçer, kendime geçmez sözüm,
5.03.2005 15:46: ufukyayla
Eğer bir yerde göstereceğiniz veri çok yerden derleniyorsa ve bir çok bağlantı açıp-kapatmak zorunda kalıyorsanız bütün bu verileri önceden derleyip bir yerde saklayıp, sonra her istek geldiğinde oradan okuyup yollamak sitenizi hızlandırabilir. Mesela işbu Karalama Defterinin sağ tarafındaki sabit kısmın oluşturulması için Bölümleri, Son Karalamaları, Son Yorumları ve vs. yi listelemek için tam 4 sorulamanın ve bunu yanısıra bir sürü kod satırının çalışması gerekiyor. Her istekte bunu yapmak iyi bir fikir değil. Ben bütün bu listele işlemlerinin sonucusu bir tablodaki bir LongText alanda saklıyorum. Tabii her değişiklikte (Bölüm ekle-sil, Karalama ekle-sil, Yorum ekle-sil vs.) bu alanı güncelliyorum. Karalama Defterini göstermek üzere bir istek gelince bu sağdaki sabit kısmı göstermek için sadece LongText alandaki veriyi yolluyorum. Tabii bu iş için bir tablodaki LongText alanı değilde, bir text dosyasını da kullanabilirdim. Ancak verileri text dosyalarında tutmaktan hoşlanmıyorum. Hem bir veritabanı bağlantısı varken ve açıkken neden ayrıca bir FSO nesnesi oluşturayım.
Bu sebeplerden dolayı HTML formatındaki veriyi bir LongText alanda tutmak bana iyi bir fikir gibi görünmüştü ve öyle yapmıştım.
Sonra bu iş için XML kullanmayı düşündüm. Ama sunucuda parsing işi çok zaman alıyor ve yavaş. Yada bu XML dosyasını hiç parsing yapmadan XSL ile gösterilmek üzere istemciye yollayabilirdim. Bu durumda XML dosyasını istemci yorumlamak ve XSL'e göre biçimlendirerek göstermek zorunda kalırdı. Mesele şu ki bütün istemcilerin (browser) XSL dosyalarını yorumlayabileceklerinden veya aynı şekilde yorumlayacaklarından emin değilim. Dahası (aslında 'Doğrusu' demeliydim) XML teknolojisi konusunda bilgi eksikliğim var.
3.03.2005 10:22: ufukyayla
MySQL konusunu epeyce bir araştırdım. Sonuç olarak henüz ASP, VB gibi Microsoft teknolojilerinde kullanılmak üzere hazır olmadığını gördüm. ADO nesne modeline kesinlikle uymuyor. Recordset kullanımı çok sorunlu. Recordset sadece veri okumada kullanılabiliyor, diğer durumlar fiyasko. .Update olmuyor. ANSI SQL'e bile uyumlu değil. Avantaj olarak sadece limit anahtar kelimesinin kullanım biçimi iyi. Bu yüzden MySQL ile vaktimi harcamamaya karar verdim.
Son birkaç aydır sıkça ziyaret ettiğim bir sitede MsSQL kullanmışlar. Anlık ziyaretçi sayıları 10'u geçmediği halde adamların sitesi korkunç yavaş. Aynı site optimize edilse üstelik Access kullanılsa bundan daha hızlı olur. Birçok kişi sorgularda * kullanmaya, her veri için bağlantı açmaya alışkındır. Site yavaşlayınca önce Access'den, sonra bir SQL sunucusuna geçilip SQL sunucusundan şikayet edilir. Anlık ziyaretçi sayısı 10 civarında olan bir sitede Access'in altından kalkamayacağı bir durum oluşmaz. Eğer oluşuyorsa sorun koddadır. Mesele kesinlikle optimizasyon meselesidir. Veri eklemede Recordset (.AddNew) yerine INSERT INTO kullanılması pek fayda sağlamıyor. Zaten siteler genelde ekleme değil okuma yapar. Yani bir kere eklenen veri defalarca okunur. Dar boğaz eklemede değil okumadadır. Bence ekleme için açılan Recordset'i 0 kayıt döndürecek şekilde (where kno=-1 gibi) açmak yeterlidir. Özellikle çoğu programcının INSERT INTO ile VT'ye veri eklerken ziyaretçinin ' " % ? _ * # ; vs. girmiş olabileceğini unutmaları ilginç sorunlara sebep oluyor. UPDATE kullanımında da aynı hatalar yapılıyor. Birçok programcının JOIN kullanmayı bilmediğini, bu yüzden basit bir iş için 2-3 kayıt kümesi açtıklarını ve hatta .Find ile (en kötüsü döngü ile) işi kotarmaya çalıştıklarını incelediğim çoğu örnekte gördüm. Hatta tek sorgu kullansalar bile elde ettikleri veriyi gruplandırmadıklarından işi koda havale etmek kolaycılığına da rastlıyorum. Bu konuda bir otorite değilim, iyi bir programcı da sayılmam, ama burada saydığım hataların hepsini defalarca yapmış biri olarak hatalarla aramdaki ünsiyet gereği "Kimse hataları benim kadar iyi tanıyamaz" diyebilirim.
1.03.2005 13:03: ufukyayla
(Bu proje'in 3 ayağıdan 2 si tamamlandı, yorumları okuyun)
Bir domainde çalışan ortak üyelik sistemi için (OÜS);
Önce katılımcı siteler kavramı oturtulacak, şöyle ki;
Katılımcı her site için bir hesap açılacak, bir şifresi olacak.
Üyeler buraya (OÜS'e) üye olacak. Ve hangi sitelerde üye olarak görünmek istiyorlarsa onları işaretleyecek. (İşaretlediği sitelerden onay alması katılımcı siteye bağlı olacak, ama üyeliği e-maille onaylama gibi birşey elbette olacak.)
Üyeler katılımcı sitelerden birine giriş yapmak isterse o sitede bulunan üye girişi formunu;
doldurup girişe basacak. Bu formdan gelen bilgiye;
(katılımcı site tarafından) eklenecek ve OÜS'ün giriş doğrulama scriptine yollanacak (login.asp gibi)
Bu (OÜS'deki) script girilen üye adının ve şifresinin doğru olup olmadığını kontrol edecek, gelen SiteID'ye göre bu siteyi seçip seçmediğine bakacak, ve tabii SitePWD doğru ise o site için açılan hesaptan öğreneceği adresteki scripte (katılımcı sitedeki bir scripte) üyenin bütün bilgilerini yollayacak. Üye giriş yapmış olacak.
nick (üyenin kısa adı)
email (üyenin doğrulanmış e-mail adresi)
web (üyenin web adresi)
avatar (üyenin seçtiği avatarın url'si "http://www.ous.net/avatar/123.gif" gibi.)
otarih (üyenin bir önceki giriş anı "dd/mm/yyy hh:mm:ss")
gtarih (şimdiki giriş anı "dd/mm/yyy hh:mm:ss")
Ayrıca OÜS de bir çok sorgulama olacak;
Parametre üyenin niki
Dönen değer Üyenin gerçek adı
Dönen değer Üyenin e-mail adresi.
Dönen değer Üyenin avatarının url'si "http://www.ous.net/avatar/123.gif" gibi.
(Bu sorgulamaları yapan katılımcı site sorgulama için SiteID ve SitePwd yolayacak.)
Henüz üye seviyelendirme ve üyelerin yetkilendirilmesi konularını düşünmedim. Bunlar katılımcı siteye bırakılabilir.
İlk aklıma gelenler bunlar, çok saçma gibi duruyor ama sizce bu tutar mı?
Sırf kendimi geliştirmek adına bile yapabilirim. Azda XML kastırmış olurum.
20.02.2005 13:55 ufukyayla
ASP Macerası Nasıl başladı
2 veya 3 yıl önceydi. Konyadan Nevşehire gidiyordum, sevgili dostum Alposman ile beraberdim yola çıkmadan önce. (Not; Alp'e html'yi ben öğrettim, boynuz kulağı geçti; Alp aldın mı cevabını) Yolda okurum çerez niyetine diye ondan bir kitap aldım "ASP Nedir" gibi bi ismi vardı. Otobüse bindim. Ağırdan okumaya başladım. Başlarda bişi olmadı, ama konular ilerleyince, kendi kendime "Lan ben bunu biliyorum, ASP dedikleri VB'nin ufak biladeri" dedim. Ve 3 saat sonra otobüsten indiğimde asp biliyordum. O ana kadar ASP bildiği mi bilmiyormuşum.
18.02.2005 11:43 ufukyayla
Sayfalar : (24üncü sayfadasınız)