bildirgec.org

Site arşivi: kodaman

Büyük siteler için php ile google sitemap yapımı

admin | 13 November 2008 15:00

Sitemap ya da diğer bir deyişle site haritaları, sitemizin google ve diğer arama motorlarına daha hızlı endekslenmesini sağlayan önemli faktörlerden biri.

Bir site haritası temel olarak sitemizin içindeki sayfaların bir listesini içeren bir tür xml dosyasıdır.

Sitemizin haritasını çıkarmak için, eğer sitemiz küçük veya orta ölçekteyse hazır araçlar kullanabiliriz. Bu araçlar genelde crawling mantığı ile çalışırlar. Fakat örneğin sitemizde en az 200.000 sayfa varsa, bu durumda kullandığımız hazır araçlar site haritası yapımında sadece zaman kaybına sebep olacaktır.

xaml ile dinamik kod çalıştırma

admin | 13 November 2008 13:30

kodaman.org yeni bir oluşum olduğu için ne kadar ilgileneni var bilemiyorum ama benim ilk yazım microsoft’un hem windows presentation foundation’da hem de silverlight’da ortak kullandığı xaml hakkında olacak.

xaml ile dinamik olarak herhangi bir dış kaynaktan penceremizin içerisine kod ekleyebilmemiz mümkün. bu ne işimize mi yarar? eğer programlarımızda değişen reklam alanlarına veya kullanıcı girdisine göre oluşacak static bir animasyondan fazlasına ihtiyacımız olduğunda bize yardımcı olur.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using Sys = System;
using SysIO = System.IO;
using SysWinMarkup = System.Windows.Markup;
using SysXml = System.Xml;
using SysXmlLinq = System.Xml.Linq;
public static class XamlUtils {
public static object GetXamlObject(string source) {
SysXml.XmlDocument _xmlDocument = new SysXml.XmlDocument();
_xmlDocument.LoadXml(source);
return Xaml.GetXamlObject(_xmlDocument);
}
public static object GetXamlObject(SysXml.XmlDocument xmlDocument) {
const string xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation";
const string xmlns_x = "http://schemas.microsoft.com/winfx/2006/xaml";
if(string.IsNullOrEmpty(xmlDocument.DocumentElement.GetAttribute("xmlns"))) {
xmlDocument.DocumentElement.SetAttribute("xmlns", xmlns);
}
if(string.IsNullOrEmpty(xmlDocument.DocumentElement.GetAttribute("xmlns:x"))) {
xmlDocument.DocumentElement.SetAttribute("xmlns:x", xmlns_x);
}
SysIO.TextReader _stringReader = new SysIO.StringReader(xmlDocument.OuterXml);
SysXml.XmlReader _xmlReader = new SysXml.XmlTextReader(_stringReader);
return SysWinMarkup.XamlReader.Load(_xmlReader);
}
}

Kodaman Sen de Kimsin? ((:

wrz | 13 November 2008 06:36

Pilli ve Nokta’dan ortak çalışma: kodaman.org
Pilli ve Nokta’dan ortak çalışma: kodaman.org

” Pilli ve Nokta’dan ortak çalışma: kodaman.org ” başlığıyla internette haberler dolaşıyor.Bu biz yazarlar için yeni bir kaynak tabiki.Seviniyoruz ve bu konu hakkında biraz daha açıklama talep etsek fazla mı olur?

Benim bildiğim kadarıyla Kodaman.org adresinden yayın yapacak olan yeni pillinetwork üyesi, Nokta tarafından yönetiliyor olup, reklamlarını şirketin reklam servisi Virgül üzerinden alıyor olacakmış.

kodaman.org açıldı

hafifuyku | 13 November 2008 05:53

Dün Arda’nın duyurduğu, nokta ile birlikte tasarlayıp, hayata geçirdiğimiz kodaman.org bu gün yayın hayatına başladı.

kendisi bir yazılım geliştiricileri topluluğu. pillinetwork’ün altyapısını kullanıyor ve içeriği nokta tarafından yönetilecek. Diğer pillinetwork siteleri gibi gelirini paylaşacak. henüz reklam yok, ama olduğunda bu reklam virgül‘den geliyor olacak.

kodaman.org’a hoş geldiniz.

admin | 13 November 2008 04:57

Bu siteyi Nokta ve pilli olarak, yazılım geliştiricilerinin başlarından geçen kan, ter ve gözyaşı dolu maceraları paylaşabilecekleri ve birbirlerine yardımcı olabilecekleri bir yer olarak hayal ettik.

Yazılımcılık zor bir meslek. Dükkân asla kapanmıyor, sabahlamalar hiç bitmiyor. Umuyoruz, bu sitedeki kaynaklar sayesinde kümülatif olarak binlerce sabahlama seansından kurtulacağız.

Her programlama diline, işimize yarayacak her türlü bilgiye açığız.

Nasıl yazılar bekliyoruz?
Kodaman.org’a yazı gönderirken lütfen birçok insana faydalı olacak bir kaynak hazırlıyor olduğunuzu göz önünde bulundurun. Yazıların ağırlığının bu yönde olmasını rica ediyoruz. Çok önemli haberlere de açığız, ama “php 6.0 çıktı” haberi yerine “php 6.0’yı denedim. Şu yönleri ile 5.0’dan farklı” konulu yazıları tercih ederiz.

MySQL İle Memcache Kullanımı

admin | 11 November 2008 22:59

Bilindiği gibi Php ile Memcache kullanılarak veritabanı üzerinden çok fazla yük alınabiliyor. Ayrıca Memcache’nin dağılabilir yapısı bize birçok kolaylık sağlayabiliyor. Örneğin çoklu web sunucularında tek bir Memcache ile veri paylaşımı yapılabiliyor veya çoklu Memcache sunucuları kullanılarak daha sağlam bir cache yapısı kurulabiliyor. Memcache’nin kullanımında başka bir kolaylık sağlayabilecek şey ise MySQL’den direk Memcache’ye erişebilmek, veri okuyup saklayabilmek. Bu yazıda bu işlemin nasıl olduğunu ve kendi yaptığım çeşitli performans testlerini anlatacağım.

fibonacci kod yazarsa!

admin | 10 November 2008 09:03

2000’lerde programlama giderek sanat olmaktan çıkıyor, genellikle hazır kütüphaneleri, api’leri kullanmak, kod parçalarını sağdan soldan alıp birleştirmek, havalı kelimeleri yanyana kullanmak (tdd, bdd, grid computing vs.. ) programlama olarak düşünülüyor. giderek programlama zanaat-vari bir iş olmaya başlıyor.

ne demek istediğimi anlatmak için şöyle bir örnekten gidelim; fibonacci sayılarını duymuşsunuzdur, “- 0, 1, 1, 2, 3, 5, 8, 13, 21,..” diye giden sayılar… matematikçi olmadığımız için teorisi ile ilgili çok detaya girmeye de gerek yok-zaten gir deseniz giremem-, ama (altın oranla ilgisi nedeniyle) genellikle çizim işlerinde kullanılır. tabii çizim dendiğinde aklımıza ilk gelen oyun programlaması olacaktır. kısaca “bir işlere” yaradığını biliyoruz. programcı olarak bizi ilgilendiren kısmı ise uygulaması.

formülü şöyle ;

Farklı bir tasarım mantığı

admin | 08 November 2008 13:28

“Mysql performansını ve sayfaların açılış sürelerini daha çok nasıl hızlandırırım” diye kafa yorduğum zamanlarda, kendim için geliştirdiğim bir tasarım mantığını sizlerle paylaşmak istedim. Bu mantık aslında çok basit gibi görünse de ciddi bir performans artışı sağlıyor ve gereksiz yere mysql select sorgularından da bizi kurtarıyor.

Mantığın bir prensibi var. O da; mysql tablosunda bulunan bir satırda yapılan değişikliği, başka sayfaya geçtiğimde tekrardan mysql Select sorgusu atmadan gerekli veriye ulaşmaktı.

KDE 3.6 genel olarak niye yavaş?

admin | 07 November 2008 04:50

Linux kullandığım süreçlerde sıkı bir kde kullanıcısı olmama rağmen diskden okuma, geç yükleme gibi yavaşlıklarına dikkat etmeden geçemiyordum. “KDE’nin standart kum saati animasyonunu değiştireyim, daha güzel bir animasyon yapayım” diyerek yola çıktığımda karşılaştığım kod, kde’nin açılıştaki yavaşlığını göstermek için yeterli oldu.

KDE’nin svn den gerekli kod bloğunu buldum.

1
2
3
4
5
// setup animation frames
for (int i = 1; i < 11; i++)
{
frames.append(new QPixmap(locate("data", "kicker/pics/disk" + QString::number(i) + ".png")));
}

Yüksek Performanslı Sunucu Yazılım Mimarisi ve Epoll

admin | 07 November 2008 01:55

Geçen yıllar süresince internet dünyasında popülasyonun artmasıyla birlikte akıllara takılan soruların sayısı da arttı. Bunlardan en can alıcı olanı ise “bu kadar kullanıcıya daha az maliyetli yapılarla nasıl hizmet verilecek?” sorusu idi. Mali konulara takılmadan düşündüğümüzde bile bu kadar sunucuyu nereye koyacağımızı bilemiyorduk. Örneğin standart programlama mantığında birbirinin mantıksal kopyaları olan birden fazla değişkeni denetlemek için bir loop kurulur ve içerisinde her seferinde koşul sağlanmış mı diye denetlenmesi gerekir. Bu da fazlasıyla işlem yükünü beraber getirmekte. Kabaca örnek vemek gerekirse; bir FTP sunucuyla hizmet verdiğinizi düşünün. Protokol içerisindeki gelen giden paketleri bir şekilde yorumlamanız gerekir. bu iş için socket açılır. 1 kullanıcı bağlandı, bağlantı socketi denetlenmeye başlandı, iş dosya almaya geldi ve socket üzerinden veri akışı sağlandı. Buraya kadar herşey normal. peki ya 1 değil 10,000 kullanıcı dosya transferi gerçekleştirmek isteseydi ne yapacaktık? Sonuç düz mantıkla yine meşhur loop mantığına gidiyor. Bir loop açılıyor ve işlemcinin sınırları zorlanarak açılan soketler denetlenmeye çalışılıyor. Diyelim ki sorunumuzu bu şekilde aştığımızı düşündük ama madalyonun diğer tarafında sunucunun asıl yapması gereken işler var. Diske erişim, yetki denetimi, kota denetimi, dosya yazma/okuma. Bukadar işi birarada yapabilmek gerekliydi ve yapıldı. ama oldukça maaliyetli ve pratik olmayan çözümlerle yapıldı. Sunucuyu ve işlemci gücünü boşa harcadık. Peki ya işletim sistemi bize yardımcı olamaz mıydı? evet olmalıydı ve oldu. Hadi biraz daha derinlere inelim.