php dir order

php de bir folderdaki dosyaları creation time a göre sıralamanız gerekiyorsa ve dir /tc kullanma şansınız yok ise bu kodu deneyebilirsiniz:


// dosyaları alır
$files = glob( 'c:/tmp/*.*' );

// creation time a göre sıralar. tersten. SORT_ASC ve SORT_DESC sıralamayı değiştirmenizi sağlar yani yeniden eskiye veya eskiden yeniye diye.
array_multisort(
array_map( 'filectime', $files ),
SORT_NUMERIC,
SORT_DESC,
$files
);

// print edelim
print_r( $files );

mysql select log

normalde gelen her sql in logu tutulmaz ama diyelimki bir uygulama geliştiriyorsunuz ve mysql’den sql hatası geliyor napcaz. o sql i görcez. bende limit ?limit dediğim yerde abuk bir hata geliyor. sonuçda limit ne kadar hata yapabilirimki. windowsda bu işlem biraz zahmetli ki ortamım linux değil.  general_log diye bir argüman var mysql dökümantasyonda ama bi türlü yerini gösteremiom windows 7 de log u conf dan veremedim. bu durumda şöyle yapıyoruz

SET GLOBAL general_log = ‘ON’; komutu ile çalışan mysql de sql logu aktif ediyoruz. sonra mysql administrator ile girip baktığımızda aynen sql leri görüyoruz.

bu arada benim hatam ?limit değişkenine string atıyormuşum oda tırnak içinde yazarmış limit ’12’ buda hatayı patlatırmış. neyse logda gördüm düzelttim tıkanana çare =)

windows ln -s

linux de ln diye bir komut var anlamı link demek bi sürü opsiyonu var genelde de ln -s ile kullanılır. bir dosyayı veya directory’e başka bi path ilede ulaşmanız gerektiğinde yapılır. windowsda bi site yazıyorum. aslında var olan bi sitenin design değişti onu yazmaya çalışıyorum. pathler karıştı tabi. ki şöyle bi durum var ilanresimleri diye bir folder var içinde 13 bin kadar folder ve resimler var. önce bi kısmını kopyaladım falan çalışıyorum ama server a attığımda kodları database taze olduğu için önyüzde bi sürü resim eksik kaldı falan filan bende başladım aranmaya windowsda ln -s yapılabilirmi yapılırsa nasıl yapılır. velhasılı mklink komutunu buldum.

windows xp den beri varmış sanırım bu komut yapısı basit

mklink gercek_path olusturulacak_link_path

hemen gerçek örneğide vereyim:

mklink c:inetpubvhostsmpazari.comilanresimleri c:inetpubvhostsbeta.mpazari.comilanresimleri

windows 7 de bi problem oldu oda admin olmanızı istiyor sistem. secpol.msc kurcaladım  ordan aslında Local Policies/User Rights Assignment/Create Symbolic Links özelliğine kendi kullanıcımı ekledim restart ettim falan yemedi neyse sonunda command prompt u run as administrator yaptım ordan bu komutları verdim. linkler oluştu ve sitem düzgün çalışmaya başladı. bu user rights konusu belki normal windows 7 lerde düzgün çalışır benimki RC versiyon.

sıralı gitmesi gereken verilerdeki eksik id’leri bulmak

database de bir kolonuzun sıralı gitmesi gerekiyor. 1 2 3 4 5 6 7 8 9 gibi sıra sıra olması gereken bir kolonunuz var ama nerden insert yapıyorsanız bu kolona ordan bi şekilde sırayı bozup veri gönderiyorsunuz ve bunu çözme şansınız yok. şimdi ne yapabilirsiniz 🙂

tabiiki arkadaşınıza şunu sorarsınız. olm bu veriler sıralı olmalı ama arada boşluklar var ve öyle bi kayıt tabloda olmadığı için nasıl select ederim bilemiyorum.

bende bunu epey aradım düşündümde bulamadım 🙂 yani olmayan kayıdı nasıl bulabilirsinki bütün database de arama mantığı olan veriler üstünedir 🙂 neyse hemen örnek geliyor


select l.id + 1 as start
from tablo as l
  left outer join tablo as r on l.id + 1 = r.id
where r.id is null;

kendinden kendine left outer joinli selectimizde id nin null olduğu yerleri ver ve id her zaman id+1 e eşit olsun diye bir tarama yapan bu mükemmel select sonuç olarak tabloda eksik olan id leri tıkıt tıkır sıralıyor.

duplike verilerin olduğu satırları yakalamak

mysql veya mssql hangi database i kullanıyorsanız kullanın yazılım gelişim sürecinde illaki birgün bir kolona unique vermeniz gerekecekdir ve buda var olan veriler yüzünden problem olacakdır ve tanıdığınıza soracaksınız: aynı verinin/duplikasyon/çoklanan olduğu satırları nasıl bulabilirim ?

mysql için örnek:


select unique_olmasi_gereken, count(*) from tablo
group by unique_olmasi_gereken
having count(*) > 1;

sonra isterseniz o satırların idlerine göre silersiniz örnek


delete from tablo where satir_id in (select satir_id,unique_olmasi_gereken, count(*) from tablo
group by unique_olmasi_gereken
having count(*) > 1;)

hangi cdn microsoft mu google mı ?

CDN yani Content Delivery Network ün tam türkçe karşılığı içerik teslim ağı demek. internette webmasterların sıkça kullanması gereken bu işler youtube akamai ve yslow çıktıktan sonra ortaya çıkıyor. internet çok çok büyüdükten sonra artık bir kısım içeriğin aynı serverdan verilmesi siteleri yavaşlatır oldu. çünkü kullanıcı sayıları çok büyük rakamlara ulaştı ve basitçe var olan webserverlara bütün içeriği verdirmek ağır bir yük olmaya başladı.

dinamik oluşturulan içerik zorunlu ana serverlardan verilmeliydi ama statik bi çok içerikse bir sürü servera dağıtılabilir  ve ayrı ayrı serverlardan verilebilirdi. ki şu anda bütün büyük siteler bunu yapıyor google facebook bing.

dinamik içerik nedir ?

sayfanın istek başına değişmesi gereken içeriğe dinamik içerik denebilir. gerçek hayattan örnek verelim. http://www.youtube.com/watch sayfası aslında youtube ün video oynattığı sayfadır ve bu sayfaya bazı argümanlar gider bunlar soru işaretinden sonraki kısımlardır. örnek:?v=5PsnxDQvQpw&feature=channel asıl url http://www.youtube.com/watch?v=5PsnxDQvQpw&feature=channel. şimdi watch sayfası aldığı parametreler doğrultusunda değişicek ve hangi videoyu oynatması gerektiğini o video ya ait yorumları getirmesi gerektiğini bilicektir. bu her istek başına(aynı session’da) sabit bir web serverdan çıkması gereken html dir. çünkü az evel izlediklerinizi sonra izliceklerinizi tutması ve ona göre youtube ana sayfasında profilinize uygun videoları göstermek isticeklerdir. bunlar için IIS veya apache gibi bişey kullanılır.

statik içerik nedir ?

her sayfada aynı şekilde gelen içeriktir. bunlar neler olabilir örneğimiz youtube dan devam edelim. youtube logosu ve design için gereken css ler. javascriptler. bunlar her sayafaya girer ve hep aynıdır değişmeden gelirler. işte bu içerik bir sürü farklı serverdan gönderilebilir. ayrıca lokasyona göre kullanıcıya yakın olan yerden verilmesinde fayda vardır. yani türkiyeden google a bağlandığınızda google.com.tr nin gelmesi gibi düşünebilirsiniz. youtube’a türkiyeden bağlanıldığında CDN js ve css leri türkiyeye yakın olan serverdan verir buna CDN karar verir youtube ün orda bişey yapmasına gerek yoktur.

akamai ve limelight bu işte en ünlü olan firmalar. akamai internetin %20 si bizim üstümüzden gidiyor diyor ama bilemem. daha detaylı firma listesi ve CDN konusunun devamı için wiki ye bakınız.

yazımızın ana konusuna gelelim microsoftmu google mı?

küçük webciler yani ben CDN için para verip büyük büyük siteler kuramam. buna ne zamanım nede yeterince param var. fakat ufak işlerimde kullandığım jquery i herzaman google dan verirdim yani CDN olarak google tercih ediyordum en azından sadece jquery nin kendisini bile vermesi benim işimi/serverımı rahatlatıyordu. aslında benim microsoft cdn den haberim yoktu ki az evel okudum onlarda jquery veriyorlar. hemen aklıma iwebtools un speed testi geldi ve direk sınadım. sonuç biraz garip jquery mini 1.3.2 için microsoft 57.94kb veriyor ve bunu 0.32 saniyede veriyor. google ise 55.91kb ve bunu 0.07 saniyede veriyor. yani genel jquery CDN için google tercih etmek en mantıklısı.

sizde bakın hatta sonuçlar bu yazıdan farklıysa lütfen yorum bırakın.

windows 7 hibernate aktifleştirmek

  1. Command Prompt u administrator olarak açın ve powercfg /hibernate on. komutunu verin
  2. kontrol panelindeki Power Options dan “Change advanced power settings” i bulun açın
windows 7 hibernate açmak
windows 7 hibernate açmak

görüntüdeki gibi hybrid sleep i off yapın ve artık başlata baktığınızdada hibernate opsiyonunu göreceksiniz.