11 Mart 2016 Cuma

IIS Express 32bit modu ve StackSize (maxStackSize) yetersizliği çözümü

Asp.Net üzerinde geliştirilen bir uygulamada StackOverflow hatası alındığında muhtemelen bir array için yüksek bir değer baştan tanımlanmıştır. Yada herhangi bir şekilde (muhtemelen gerekmediği halde) büyük miktarda bellek kullanımına sebep olabilecek bir tanım yapılması.
Alternatif bir örnek büyük bir text dosyayı stream olarak okumak yerine tek seferde belleğe alınmaya çalışılması...

Hatayı dışardan bir sınıf kullandığınızda alıyorsanız ve başkaları bu hatayı almıyorsa oluşacak hatalardan biri StackSize ile ilgili olabilir. Yani dışardan çağırdığınız sınıfın bellek kullanımı ile ilgili.

Son tecrübemde Java üzerinde geliştirilmiş bir sınıfın IKvm ile .Net'e port edilmiş halini Console uygulamasında hatasız çalışırken Visual Studio'da Asp.net projesi olarak çalıştırmayı denediğimde hata oluşuyordu. (StackTrace kaybolduğundan hata StackOverflow olarak orataya çıkmıyordu.)

Hatayı araştırdığımda iki alternatif öneri vardı:

1. İlgili sınıfı yeni bir thread açıp MaxStackSize belirtip orda çalıştırmak.
2. Visual Studio ile gelen IIS Express'i kullanmak yerine Servis olarak kurulan IIS'i kullanmak.

İlgili sınıfı yeni bir thread için de aşağıdaki şekilde çalıştırabiliriz;

  Thread thread = new Thread(MyMethod, 1048576);
  t.Start();

  void MyMethod()
        {
              //Çağrılan sınıf / method
        }


2 Ocak 2016 Cumartesi

SEO ajanslarının taksitle sattığı ücretsiz bilgiler

Yaklaşık son 5 yıldır yayıncılık özelinde yaptığım çalışmalardan dolayı SEO konusuyla teknik nedenlerle doğrudan, iş yapma şeklinden dolayı ise dolaylı olarak ilgilenmem gerekti.
Bu süre zarfında onlarca toplantıda SEO ile ilgili tartışmalarda bulundum, yine onlarca toplantıda gündem maddesi sadece SEO idi. Bu tecrübelerin yanında yaklaşık 5 yıllık içerik siteleri çalışmalarım, piyasada en iyiler diye bilinen 3 SEO konusunda danışmanlık satan firmalar ile birebir çalışma ve diğerlerinden alınan teklifler de var.

Teknik bir meslek seçme nedenim yapılan işin sonucunda başarıyı doğrudan görebilmeniz. Fakat mesleğimin faaliyet gösterdiği farklı alanlardan biri olan internet yayıncılığı SEO konusu içeriği itibariyle tartışmalı ve göreceli fikirlere sahne oldu.

Bu tecrübelerin ışığında aynı hataların tekrarlanmaması / azalması adına tecrübelerim kayıtlara geçsin istedim.

Bu yazının içerdiği konular:
  1. SEO hakkında ön bilgi
  2. Google'a göre SEO ne demektir ?
  3. SEO yapmak denince ne anlamalıyız ?
  4. Hangi durumlarda SEO çalışması yapmak gerekir ?
  5. SEO çalışması için nasıl bir ekip gerekli ve hangi süreçler takip edilmeli ?
  6. SEO ajansına / danışmanına ihtiyacanız var mı ?
  7. SEO ajansları / danışmanları ne iş yapar ?
  8. SEO çalışmasında kültürel etkiler : Çözüme giden yolda önyargı ve bilgisizliği yıkmak
  9. Diğer önemli kaynaklardan seo tanım ve anlatımları
  10. Arama motorlarına alternatif trafik kaynakları
  11. Ölçüm ve önemi

Bu yazıda anlatılan konuların devamı olarak teknik ve içerik ile ilgili bilgi tavsiyeleri içeren 2 ayrı yazı daha ilgili linklerde bulunabilir.

SEO Çalışmasında teknik konular

SEO çalışmasında içerik ile ilgili dikkat edilmesi gerekenler


10 Nisan 2015 Cuma

SEO ajanslarının taksitle sattığı ücretsiz bilgiler: Teknik konular



Burada anlatılan konular genel olarak web üzerinde uygulama geliştiricilere hitap etmekle birlikte bazı konu başlıkları web üzerinde iş yapan bir kurumda teknik ekip haricindeki kişilerinde (örn: ürün yöneticisi, analist) farkında olması gereken detayları içermektedir.
Burada en önemli konular, tanımları ve bazı örneklerle birlikte verilecek, konunun detayı için çoğunlukla Google yardım sayfalarına veya web üzerinde ilgili konuyu doğru ve açık anlatan başka sayfalara link verilecektir.

SEO konusunda içerik ile ilgili daha önce derlediğim bilgi ve tavsiyeler

  1. Site genel yapılandırma (robots.txt, sitemap.xml) ve standartlara uygunluk (w3c)
  2. Sayfa bazında ve site genelinde HTML yapılandırma ile ilgili dikkat edilecek konular
  3. Sitenin link yapısı
  4. İçeriği tanımlamak /anlamlandırmak : Microdata / Structured Data
  5. Resim, Video ve Haber içerikleri için teknik yapılandırma
  6. Sosyal medya paylaşımı için teknik yönergeler
  7. Mobil site  / yönlendirmeler
  8. Performans / hız'ın önemi ve ölçme yöntemleri
  9. Tasarımın etkileri
  10. Hata tespit yöntemleri ve sürekli takip için araçlar
  11. Bazı özel durumlar için (her sitede gerek olmayabilecek)  çözümler.
  12. Araçlar

1. Site genel yapılandırma (robots.txt, sitemap.xml) ve standartlara uygunluk (w3c)

Bir sitenin arama motorları tarafından erişilebilir ve taranabilir olması için en önce dikkat edilmesi gereken detaylardır.


19 Şubat 2015 Perşembe

SEO ajanslarının taksitle sattığı ücretsiz bilgiler : İçerik

Bu yazının içeriğinde değinilecek konular;


  1. İçerik oluşturma süreci ve ziyaretçi tatmini
  2. Terimler
  3. İçerik oluştururken dikkat edilmesi gereken konular, öneriler
  4. Link inşası
  5. İçerik üretirken kullanılabilecek araçlar ve araştırma yöntemleri
  6. Doğru içerik üretimiyle ilgili tavsiyeler / yönergeler
  7. İçerik oluşturmanın tamamlayıcıları
  8. Kopya içerik durumu
  9. Zararlı içerik konusu
  10. SEO için kullanılabilecek ücretli / ücretsiz araçlar


1. İçerik oluşturma süreci ve ziyaretçi tatmini

Sitenin faaliyet gösterdiği alan ve konusuna göre farklı türlerde içerik yapıları vardır:
Dinamik yani sürekli içerik eklenen siteler, örneğin e-ticaret sitesi için ana içerik satılan ürünler, haber sitelerinde haber detay, seri ilan sitelerinde ise ilandır ve ziyaretçinin bir siteye erişiminin asıl hedefi de bu içeriklerdir. Dinamik siteler için sitedeki diğer sayfalar olan kategori sayfası, arama sonuç sayfası gibi sayfalar da ilgili ana içeriğin olduğu detay sayfalara kapı olarak düşünülebilir.

Diğer türdeki sitelere "bir servis sağlayan firma", örneğin avukatlık bürosu örnek verilebilir. Çoğunlukla verilen servis aynı olacağı ve içerik güncellenmeyeceği için statik olarak adlandırılır. Bu tür siteler için içeriğin önemini göstermek adına ilgili alanda blog tutma veya haber oluşturma destekleyici güncel içerik olarak tavsiye edilir.

20 Ekim 2014 Pazartesi

Web uygulama performansı: İstemci tarafı izleme, hata tespiti, uyarı ve iyileştirme araç ve yöntemleri

Kullandığımız her uygulamada olduğu gibi ziyaret ettiğimiz web sitelerinde de mecbur değilsek hızlı olmasını tercih ediyoruz. Yavaş sitelerin neden olduğu ziyaretçi ve kullanım kaybı üzerinde yapılmış bir çok deney ve araştırma var. Bunlardan en çok bilineni Amazon.com'um açıkladığı:

"Tests at Amazon revealed similar results: every 100 ms increase in load time of Amazon.com decreased sales by 1% (Kohavi and Longbotham 2007)"
Özetle; Amazon, her 100 milisaniyelik sayfa yüklenmesindeki gecikme için satışlarda %1'lik azalma olduğu ölçülmüş:
The Psychology of Web Performance
http://www.websiteoptimization.com/speed/tweak/psychology-web-performance/

Performansın (hızın) yapılan yatırıma olan etkileriyle ilgili araştırmalar:

How Website Speed Affects Conversion Rates
http://www.globaldots.com/how-website-speed-affects-conversion-rates/
Web sayfa performansının ROI* ye etkisi:
Poor performance ruins holidays

Hız için yapılacak optimizasyonlar ile;

-Ziyaretin artması (arama motorları gözünde daha yüksek puan ve trafik artışı, yavaşlık nedeniyle terkeden / edecek kullanıcıları geri kazanma)
-Bounce rate'in düşmesi (ilk ulaştıkları sayfalardan direk ayrılma, hız algısı ile daha çok sayfa gezinme)
-Bandwidth maliyetinin azalması (Browser'a sadece mümkün olduğunca o sayfa için gerekli içerik uygun tekniklerle sunulduğunda yaklaşık 1/4 oranında daha az trafik tüketimi (minify, gzip, combine)
sağlanır.

Yayına çıkmadan önce yapılabilecek kontroller ve ayarlar

İlk defa yayına çıkacak bir site ya da hata düzeltme / iyileştirmeler sonrasında güncelleme olarak yayına çıkacaklar için bazı kontroller önceden yapılabilir.

Örnek olarak, bunun için Microsoft'un Web Platform Installer üzerinden sağladığı "Search Engine Optimization Toolkit" kullanılabilir.

20 Haziran 2014 Cuma

TFS Build yapılandırması: Bir günlük israf.

* TFS 2013 kullanılmıştır.

Visual Studio - TFS entegrasyonunda check-in kalitesini arttırmak için Build servisi belirli kurallara göre yapılandırılabilir.

10 dakikalık yapılandırmadan sonra sistemi çalışır hale getirmek için harcanacak bir günlük iş detayı 2. bölümde...

Genel yapılandırma ve ayarlar


TFS Administration Console'da Build Configuration sekmesinde servis ayarlarını "tfs service" kullanıcısından farklı bir kullanıcı ile aktif ettikten sonra (örn: Network Service, önerilen) Visual Studio Team Explorer'da istenen Proje için Builds > "New Build Definition" üzerinden istenen özelliklerde Build tanımlanır.

Servis kurulum detayları için : http://msdn.microsoft.com/en-us/library/ee259683.aspx


27 Mayıs 2014 Salı

Web uygulama performansı: IIS / W3C Logları ile hata ayıklama ve iyileştirme

İhtiyaç duyulabilecek ısaltma açıklamarı:
*W3C: World wide web consortium : http://en.wikipedia.org/wiki/World_Wide_Web_Consortium
*UTC : Coordinated universal time: http://en.wikipedia.org/wiki/Coordinated_Universal_Time
*IIS : Internet informatiın services  http://en.wikipedia.org/wiki/Internet_Information_Services

-Son dakika proje kurtartma yazısı değildir.

IIS üzerinde sunulan web/servis uygulamaları için loglamanın faydaları:
-Kullanım (en az/çok ziyaret alan sayfalar, css ve scriptler),
-Performans (yavaş sayfalar [network gecikmeleri dahil]),https://logparserplus.com/examples/
-Hata (Sayfa bulunamadı ve çalışma zamanı hataları gibi)
-Güvenlik (istek bilgilerine göre [query veya header]) hacking girişimleri

Buradaki süreç,
-IIS üzerinde log kaydı tutmak için tanımlar: Konum, içerik formatı, dosya formatı, tarih, büyüklük.
-Log tutulacak alanların yapılacak analiz türüne göre seçimi.
-Standart olmayan durumlar için ekstra geliştirmeler (advanced logging özellikleri)
-Logların analiz edilebilir duruma getirilmesi: Log analizi için kullanılabilecek araç ve yöntemler
-Analiz sürecinde çıkarımlar yapıp icraate dönüştürme.
-Loglardaki http status, win status ve user agent bilgilerini anlamlandırma


IIS üzerinde log kaydı tutmak için tanımlar (configuration)


IIS üzerinden standart log (Logging), Advanced Logging (IIS 7 sonrası extension olarak) ya da Failed Request Tracing Rules ile daha detaylı loglar tutulup analiz edilebilir