Blog sitenize özelleştirilmiş Friendfeed Widget yerleştirin

Uğur ÇELENK tarafından yayınlanmıştır 14. Kasım 2008 01:01

Friendfeed.com nedir, ne işe yarar, eğer bilmiyorsanız öncelikle Volkan Görgülü'nün hazırladığı bu tanıtım videosunu izlemenizi öneririm.

Friendfeed, sitelerimize yerleştirmemiz için çeşitli görünüm ve amaçlara sahip widgetlar hazırlamış.Bu widgetlardan en çok tercih edilen ve benim de sayfamda sağda bulunan "Friendfeed Akışım" başlıklı bölümde görebileceğiniz üzere kullandığım bu widgetı nasıl yerleştirdiğimi ve özelleştirdiğimi sizlere bahsedeceğim, 3-4 dakika içerisinde sitenize yerleştirebileceksiniz siz de, hemen anlatalım.

Öncelikle widget scriptinin oluşturulduğu sayfaya girip, istediğiniz kriterleri seçin ve kriter seçiminize göre sitenizde göreceğiniz halini görebiliyorsunuz, yazı rengini, fontunu, friendfeed logosunu felan düşünmeyin şimdilik, bunları css kullanarak değiştirebileceğiz. İstediğiniz kriterleri seçtikten sonra sol alttaki script kodunu kopyalayıp, sitenizde nerede gözükmesini istiyorsanız oraya yapıştırın.
Artık demoda gördüğünüz şekliyle sitenizde de görebiliyor olmanız gerekir, peki çerçeveyi kaldırmak, üst taraftaki logoyu kaldırmak gibi çeşitli görsel düzenlemeler yapmak istermisiniz?
"Evet, isterim", diyorsanız sitenizin css dosyasını açıp içine aşağıdaki kodları yapıştırırsanız, benim sayfamda sağda bulunan "Friendfeed Akışım" başlıklı bölümün aynısı sizin sitenizde de oluşmuş olacak. ( Css ile ff widgetını özelleştirme konusuna friendfeed'in sayfasında genel olarak yer verilmiş)

.friendfeed.widget a {
text-decoration: none !important;
border: 0px !important;
}

.friendfeed.widget a:hover {
text-decoration: underline !important;
border: 0px !important;
}

.friendfeed.widget {
width: 100% !important;
background-color: transparent !important;
border: none !important;
}

.friendfeed.widget .logo { /*  Üstte bulunan logoyu kaldırdık  */
display: none;
}

.friendfeed.widget,
.friendfeed.widget div,
.friendfeed.widget span,
.friendfeed.widget img,
.friendfeed.widget table,
.friendfeed.widget tr,
.
friendfeed.widget td {
background-color: transparent !important;
}

.friendfeed.widget .feed .entry .media {display:none}  /*  Mesajda eğer resim,video vs. eklemişsek(text dışında), kötü bir görünüm oluşturabileceğinden, kaldırdık */

.friendfeed.widget .feed .entry {
font-size: 12px !important;
}

.friendfeed.widget .feed .entry .info {
font-size: 8px !important;
}

.friendfeed.widget .bottom {
font-size: 8px !important;
background: none !important;
border-top: 1px solid #794822 !important;
}

Yorum kısmında isteyenler friendfeed widget yerleştirdikleri sitelerinin linklerini paylaşabilir.

T-SQL : 'Kayıt varsa güncelle, yoksa ekle' durumu için iki farklı yöntem

Uğur ÇELENK tarafından yayınlanmıştır 5. Kasım 2008 16:05

İlk Yöntem

Öncelikle update işlemi gerçekleştirilir, bu işlem sonucunda etkilenen kayıt sayısı kontrol edilir, eğer @@ROWCOUNT = 0 ise güncellenebilecek bir kayıt bulunmuyor demektir, bu durumda kayıt eklenir.

    UPDATE Tablo1 SET Kolon1 =  @Kolon1_Degeri WHERE ID = @ID
    IF @@ROWCOUNT = 0
    BEGIN
       INSERT INTO Tablo1 (Kolon1) VALUES (@Kolon1_Degeri)
    END
 

İkinci Yöntem

Öncelikle kaydın olup olmadığını anlamak için IF EXISTS kullanılarak select cümlesi çalştırılır. Kayıt varsa güncelleme işlemi yapılıyor, yoksa ekleme işlemi yapılıyor. 

    IF EXISTS(SELECT ID FROM Tablo1 WHERE ID = @ID)
    BEGIN
       UPDATE Tablo1 SET Kolon1= @Kolon1_Degeri WHERE ID = @ID
    END
    ELSE
    BEGIN
       INSERT INTO Tablo1 (ID, Kolon1) VALUES (@ID, @Kolon1_Degeri)
    END


Peki hangi yöntem performans açısından daha iyidir?

Kesinlikle X. yöntem kullanılmalıdır gibi birşey söylemek mümkün değil, tamamen kullandığınız yapıyla ilgili sizin karar vermeniz gerekmektedir. Şöyle ki,
- Eğer kayıt  büyük ihtimalle bulunuyorsa yani güncelleme işleminin büyük ihtimalle gerçekleşeceğini düşünüyorsanız 1. yöntemi uygulamak performans açısından daha iyi olacaktır.
- Eğer büyük ihtimalle insert işlemi gerçekleşecek diyorsanız, 1. yönteme göre 2. yöntemi uygulamak daha mantıklı olacaktır. Çünkü INSERT ve UPDATE işlemleri pahalı işlemlerdir.

YTÜ Matematik Mühendisliğinin düzenlediği seminerden izlenimlerim

Uğur ÇELENK tarafından yayınlanmıştır 1. Kasım 2008 03:45

Yıldız Teknik Üniversitesinde 31 Ekimde Matematik Mühendisliği tarafından düzenlenen SharePoint, C#, Asp.net semineri hakkındaki izlenimlerimi ve seminere katılma fırsatı bulamayanlar için seminerde nelerden bahsedildiğini paylaşmaya çalışacağım ama öncelikle organizasyonda emeği geçen ytü'lü arkadaşlara ve Netron'a + Burak Batur'a teşekkür ediyorum.

2 ayrı oturum gerçekleşti.

İlk oturum da  Asp.NET ve C# hakkında bilgiler verildi. Framework 1.1'den Framework 2.0'e geçişt hangi yeniliklerin geldiğinden ve ardından framework  2.0'dan framework  3'e ve framework  3.5'a geçişte gelen yeniliklerden bahsedildi ve Visual Studio 2008in, VS 2005e göre farklılıklarına değindi. Örneğin split view görünümü, css style penceresinin eklenmesi ve artık element üzerinde uygulanan style değişikliklerinin doğrudan tagın içersinde yer almadığına, head tagları içinde tanımlandığına kadar çeşitli yenilikler gösterildi. 

Asp.NET Ajax'ın ne amaçla kullanıldığı ve ajax kullanılması gereken noktalardan bahsedildi. Verilen örneklerden birisi haber sitelerinde yazı okunurken sayfanın refresh olması nedeniyle yazıya odaklanamama sorununu ve borsa işlemlerini gerçekleşen sitelerde de aynı şekilde refresh yüzünden ciddi maddi sıkıntılar yaşanabildiğini ve bu durumlarda ajaxın kullanılmasını gerektiğinden bahsedildi. ( Ajax hakkında bir sorum oldu Burak Batur'a ama cevap pek tatmin etmedi beni açıkçası, bu konuya yazımın sonunda eleştiri başlığında ayrıntılı olarak bahsedeğim )

İkinci oturumda ise 'Sharepoint nedir?', 'neler yapılabilinir?' ve 'nasıl kullanılır?' sorularına cevap şeklinde ufak demolarla gösterildi. 'Sharepoint nedir?' sorusunu "SharePoint kurumsal uygulamarda kod yazılarak gerçekleştirilebilecek pek çok projenin tek satır kod yazmadan var olan komponentler ile gerçekleştirilmesine olanak tanıyan bir teknoloji." şeklinde cevapladı. Örnek olarakta pamukkale üniversitesinin sistemini verdi. "Anket sistemi yazan oldu mu?" şeklinde gelen soruya tek kalkan el benim ki oldu, kalkan elin ardından Burak Batur'un söylemiş olduğu fazlasıyla iddialı olan "sharepoint kullanmadan yaptıysanız, boşa kod yazdınız" şeklindeki cümle çok şaşırttı beni açıkçası, fazla uçtu sanki.! Eleştiri kısmında bahsedeceğim konular arasında bu da. Çok basit bir anket oluşturma, kişiye özel sayfa ekleme ve bilgilerin kolaylıkla değiştirebileceği bir demo gerçekleştirildi.

Eleştirilerim

Sürekli .NET'in avantajlarını anlatıp, dezavantajı olduğu noktalara hiç değinilmedi, ben de microsoft tarafındayım ama olumsuz olan yönlerini de söylemekten çekinmiyorum. Örneğin Asp.NET Ajax gerçekten kullanımı kolay olan ama arkaplanda oluşturduğu büyük boyuttaki javascript dosyaları yüzünden sayfalarınız çok yavaş açılabilinir, ufak bir google araması ile bu tür sorunlar yaşayanlara denk gelebilirsiniz. Bu sitede bu konu ele alınmış ve dosya boyutlarının büyüklüklerini ve uygulanabilinecek tekniklere değinilmiş, sonuçta çıkan js dosyalasnın boyutları bile yine çok büyük. Sayfa açılışı yavaşlıyor, fazlasıyla bandwith harcıyabiliyor. Bunun yanında biraz ayrıntı olacak ama benim saatlerce uğraşıpişin içinden çıkmayı başaramadığım bir konudan bahsedeceğim --> Asp.NET ajax kullanılan bir sayfa hiçbir zaman XHTML 1.0 Strict kullanıldığında 0 hata ile çalışmıyor, W3C ile test edince bunu farkettim, sorunun nedenine inecek olursak strict olarak kullanmaya çalışınca form tagı için id özelliği bulunmaması gerekiyor W3C'ye göre, yani web standartlarına uymayan bir durum var ortada, herneyse çözeriz dedim formun render edildiği kodları override ederek form un id özelliğini sildirmeyi başardım ve 0(sıfır) hata ile çalışıyordu ama bilin bakalım bu sefer de ne oldu.! Asp.NET Ajax form id olmadan iş yapamıyormuş, arkaplanda oluşan javascriptler form id ye göre işlem yapıyormuş, anlayacağınız bir türlü asp.net ajax kullanılan bir proje de W3C'nin önerdiği bir kullanım olan XHTML 1.0 Strict ile sıfır hataya ulaşamıyorsunuz.! XHTML 1.0 Transitional kullanmaya mahkum kalıyorsunuz.

Biz ajax kullanmak isteriz ama aynı zamanda en az zararla bu işten sıyrılmakta isteriz? diyorsanız benim size tavsiyem sürekli geliştirilen ve şuan en yaygın olarak kullanılan jQuery kütüphanesine göztamanız şeklinde olacaktır. jQuery sadece 30kb ve istediğiniz herşeyi yapabiliyorsunuz ama javascript bilginizin orta seviye olması gerekiyor ki bence asp.net ajax ile 250kb lık javascript dosyaları kullanmaktansa, 30kb lık bir kütüphanecik ile herşeyi halletmek için javascript öğrenmeye değer. (en fazla 7-8 saatinizi alır javascriptte orta seviyeye gelebilmeniz, zor değildir). jQuery kullanarak ajax çağrıları yapabilmekteseniz, bunun yanında asp.net ajax ı yine projenize dahil edipte kullanabilirsiniz ama sayfanıza updatepanel ve diğer zımbırtıları koymadan sadece scriptmanager ekleyerek, client-side yani html tarafından webservisleri kullanarak server tarafındaki bir kodu çalıştrıp, geriye sonuç döndürebilmeniz mümkün. Tüm kontrolün elinizde olmasının sizi fazlasıyla tatmin edeceğine inanıyorum.

Bence tüm proje için wizard kullanarak ve sürükle-bırak kullanılarak yapılan işe programcılık denilemez(denilmemesi gerektiğini düşünüyorum en azından), program kullanan denilebilinir belki. Php fanatikleri genellikle .NET platformunda yazılım geliştirenler için şöyle diyorlar "herşeyi sürükle-bırak(drag-and-drop) ile yapıyorsunuz, belki de mantığını bile bilmeden site yapıyorsunuz, gerçek codder değilsiniz". Neden böyle düşündüklerine bir türlü anlam veremiyordum, bu seminer ile  PHP fanatiklerinin bu tutumunun neden kaynaklandığını anlamış oldum.

Eğer iyi bir yazılımcı iseniz bu tür sürükle-bırak olaylarına bu kadar bağımlı kalarak proje geliştirmeyi pek tercih etmezsiniz, hatta büyük ihtimalle işe bile alınmazsınız.İş ilanlarında OOP(Object-Orianted Programming), 3 katmanlı mimariyi bilen yazılımcı ararlar, ama bu sürükle-bırak olayı bu duruma çok tezat kalmıyor mu? Herşeyi code-generator yapıyor, siz sadece tıklıyorsunuz, iyi güzel, proje erken bitiyor da, hazır oluşturulan kısımlarda değişiklik yapılmak istenirse bazen tabiri cai ise "deveye hendek atlatmak" gerekebiliyor.

Sharepoint sunumundaki söylenen söylediği cümle üzerinde de eleştiri yapmadan duramayacağım, çünkü hiç ama hiç söylenmemesi gereken bir cümleyi söyledi, karşısındakileri küçük gören bir yaklaşımı varmış gibisinden gibisinden şu sözleri sarfetti "Anket sistemi yazan oldu mu?" gelen soruya tek kalkan el benim ki oldu, ardından da  "sharepoint kullanmadan yaptıysanız, boşa kod yazdınız demekki".  Ne kadar yanlış bir cümledir ya, çok gelişmiş bir anket sistemi kodlamış birisi olaraktan anket dediğin sadece 1 soru gir 2-3 de seçenek gir, oyla sonuçları görden ibaret değildir herzaman, anket için 5 çeşit soru türüne özel kodlama yaptım ve anketi oylayabilecek kişilerde demografik bilgilerine göre ankete katılıp katılamayacağının belirlendiği ve ankete katılanların ankete özel belirlenen miktarda para kazanıyor olması da sistemin ayrı bir özelliğiydi. Hadi bunu sharepointte yapmayı deneyin bakalım, sharepoint ile buna kalkışmak komedi olur, sharepointi küçümsemek anlamında demiyorum, bahsettiğim anket sistemi için sharepoint'in hiç uygun düşmeyeceği için.

Neden bu kadar eleştirdin? diye soracak olursanız, tamamen stratejik işleyen sisteme karşı bir eleştiri olarak algılayabilirsiniz dediklermi, kimse çalıştığı kurumunda eğitimini verdiği toolları/dilleri kötülemeye kalkışmaz, dışarıdan birisinin müdahele etmesini gerektiğim nokta da eleştirilerimi yazdım.
ve eleştiriler biter..

(Not: Etkinlik fotoğraflarına facebook'tan bakabilmektesiniz.)

Yeni .NET Logosu

Uğur ÇELENK tarafından yayınlanmıştır 29. Ekim 2008 01:52

Microsoft PDC '08'de duyurulan yeni .NET logosu.! Dalga(the wave) ve 'N' harfinin birleşimi ile 8 senelik .NET logosu yenilendi. Beyaz arkaplan ve koyu mavi arkaplan, yatay ve dikey yönde farklı versiyonları mevcut (bkz. Scott Hanselman's blog). 


'Neden bunu yaptık?' sorusuna MossyBlog'ta verilen cevap :
"We needed a logo that was in sync with the key values that we want .NET to stand for: consistency, robustness and great user experiences. We also wanted a logo that conformed to the design principles that are driving Microsoft’s brand identity evolution and is reflected in newer brands such as Silverlight, Surface and more.  Finally, we needed a logo that is more strongly aligned with the portfolio of brands that .NET is most strongly aligned with: Silverlight, Visual Studio and the AppPlat server products."

Kartvizitlerinde kullanmak için şimdiden sabırsızlananlar olmaya başlamış :) Logoyu kesinlikle çok başarılı buldum. Sizce nasıl yeni .NET logosu?

Kontrata mutlaka eklenmesi gereken maddeler nelerdir? (Tecrübeyle sabittir)

Uğur ÇELENK tarafından yayınlanmıştır 26. Ekim 2008 22:30

Freelance olarak müşterilerime birçok web/windows projesi yaptım,müşterilerle nasıl bir kontrat yapılmasını gerektiğini maalesef yaşayarak tecrübe ettim ve freelance olarak çalışmak isteyen arkadaşlarla bu tecrübelerimi paylaşmak istedim.

Öncelikle bu proje süreçlerinde yaşadığım kendimden/müşteriden kaynaklı sorunları anlatmak istiyorum, hangi sorunlarla karşılaşabileceğiniz konusunda size ışık tutacaktır.

Yaptığım ilk işte, tanıdık olduğundan hiçbir sözleşme yapmadım(SORUN 1). Müşteriden "X fiyata böyle bir site yaparmısın" diye sorduğunda "evet,mümkün" dedim(SORUN 2). Yapılacaklar listesi oluşturmadan, proje süresini konuşmadan, kısacası konuşulacak herşey bitmeden kesinlikle fiyat konuşmamanız gerekmektedir, hem müşterinin ürkmesine neden olabiliyor, hem de işin kalitesi düşüyor. Nihayetinde anlaştık X liraya ama projenin bitimi uzun sürdü, hiç karlı çıkmadım ama pek üzül(e)medim, tecrübe edinmiştim.!

İkinci işte(projede), "tecrübeliyim, sorun çıkmayacak bu sefer" diyerek müşteriyle her konuda uzlaştıktan sonra hemen bir sözleşme hazırladım. Şimdilik sorun yok gözüküyor ama maalesef yine var, bu sefer de sözleşme de yapılacak işi çok detaylı yazmadığım için, müşteri "biz şunu şunu böyle istemiştik" dedi(SORUN 3) ve mecbur istediği gibi yapmak zorunda kaldım, fazla üstele(ye)medim çünkü hata bendeydi, sözleşmede yapılacak olan herşeyi detaylı bir şekilde yazmamıştım  ama pek üzül(e)medim, tecrübe edinmiştim.!

Üçüncü veya dördüncü işimde (tam hatırlayamadım), paranın 25%'ini proje başlangıcında aldım(SORUN 4) ve sözleşmeyi imzalayıp/imzalatıp projeyi yapmaya başladım. Aradan 3 hafta geçti ve projeyi yarılamışken müşteri "maddi durumlarım xxx,yyy,.. nedenlerinden dolayı çok kötü, ödeme yapamayacağım, projeyi  şimdilik durduralım/iptal edelim.." dedi ve 3 haftalık uğraşa karşılık toplam ücretin sadece %25ini almış oldum ki tahmin edeceğiniz üzere yine zarardaydım ama pek üzül(e)medim, tecrübe edinmiştim.!

Sonraki yaptığım işlerde ufak tefek sıkıntılar(Müşterinin ödemeyi posta yoluyla yapmak istemesi gibi ufak sorunlar) dışında önemli bir sorunla karşılaşmadım(evet evett, sonunda başardım.!!).

  Kontrata eklenmesi gereken bazı maddeler :
 - İlk ödeme ve son ödeme tarihleri, (Almanız gereken toplam miktarın %50sini işin başında almanız önerilir.Aynı zamanda bu, müşterinin işe olan ciddiyetinin göstergesidir)
 - Yapılması gereken işin tüm detayları,
 - Detaylı müşteri bilgileri,
 - Başlangıç ve bitiş tarihleri,
 - Yaptığınız projenin haklarının kime ait olduğunun bilgisi ("Müşteriniz projeyi başkasına satabilirmi?" veya "siz başka bir müşteriye aynı projeyi satabilirmisiniz?" sorularının cevapları olmalı)

İmzalar atılıp, sözleşmenin de bir kopyasını müşteriye verdikten sonra artık sözleşmede yazılan herşeyden sorumlu olduğunuz gibi yazılmayan şeylerden de sorumlu değilsiniz..

ÖRNEK KONTRAT : Ornek_Kontrat.pdf (68,60 kb) (ingilizce hazırlanmış güzel bir kontrat)


Sonuç olarak, "hata yapa yapa öğrenilir" felsefesi ile olaya yaklaşmak herzaman mantıklı olmuyor (Tecrübeyle sabittir.!). Mümkün olduğunca başkalarının tecrübelerinden de yararlanıp en az sorunla işi bitirmek gerekiyor.

Sorunsuz işler bitirmeniz dileğiyle..


2  3 ... 10  Önceki Sayfa » 

Altyapı olarak BlogEngine.NET 1.4.5.0 kullanılmış olup Türkçe çevirisi BlogEngine TR ekibi tarafından yapılmıştır ve tasarımı bana aittir. || Oturumu aç

 Friendfeed AkışımTakip Et

 Son Yorumlar

Yorumlar RSS

 Etiket Bulutu