Bir türlü ikincisini yazamadığım entegrasyonlar serilerinin bir yenisi ile yine karşınızdayım. Birinci bölümleri yayınlayınca iş bitmiş gibi oluşan bir kanı var bende sanırım. Ve tembelliğimin de bu sonuca katkısı yadsınamaz bir gerçek. Neyse bu sefer Facebook Connect (fbc) ile asp.net in nasıl entegre çalışacağını, kullanıcı authentication işlemlerinin nasıl fbc ile yapılacağını kısaca anlatacağım. Bir tane de örnek sayfamız ve kodlarımız da olacak.

Öncelikle fbc’nin auth. mekanizmasını anlatarak başlamalıyım. Facebook şu an 350 milyon kullanıcıya sahip bir sosyal ağ. Bu kabarık rakamın yanında Türkiye ve Türkler için bir başka önemi ise en yoğun kullanılan sosyal ağ olması. Şöyleki ABD ve İngiltereden sonra en çok kullanıcıya sahip olan ülke Türkiye. Şuradan incelenebilecek rakamlara göre şu anda 14 milyondan fazla Türk’ün dahil olduğu sanal ağda ingilizceden sonra en çok konuşulan dil de haliyle Türkçe oluyor. Bu rakamlar arasında en önemli veri ise bu kullanıcı sayısının internet kullanıcıları sayısına oranı. Bu rakam Türkler için şu an %53 oranında ve sıralamadaki en yüksek oranlardan birisi. Kısaca interneti görmüş her 100 Türk’ten 53′ünün fb hesabı var. Bu noktada eğer Türkçe içerik hazırlıyor ve kullanıcı doğrulaması (eskilerin deyimiyle üyelik sistemi) öngörüyorsanız fbc işinizi fazlasıyla görecek demektir.

Devamını oku »

Vakti zamanında ara ara da olsa algoritma çalışmaları yapardım blog için. Bir soruyu alır ve programatik olarak nasıl çözüleceğini anlatmaya çalışırdım. Böyle aktivitelere pek işten güçten fırsat bulamıyorum sanırım. En son iki yıla yakın bir zaman olmuş onu farkettim.

Neyse efendim girişi toparlayalım; mors alfabesi üzerine ufak bir algoritma çalışması yapacağız. Problemimiz şu; bir arkadaşınız facebook iletisi olarak mors alfabesinde bir metin girdi ancak metni karakterlerine ayırmadı (ayıramadı da denebilir). Mors alfabesi ile az bir süre bile haşır neşir olduysanız her karakter için aynı sayıda ses kullanılmadığını bilirsiniz. Aslında bu anda mors alfabesinden kısaca bir bahsetmek gerekli sanırım. Mors alfabesi 1800 lerden beri kullanılan bir tür iletişim kodlamasıdır. Uzun ve kısa olmak üzere iki tip eleman barındırır. Tüm alfanümerik karakterler bu iki elemanın kombinasyonları şeklinde oluşturulmuş bir sistemde alfabeye aktarılmıştır. (Genel standart olarak metin dilinde uzun ses için – kısa ses için . karakteri kullanılmakta olduğundan bende bu yazıda bu iki karakteri kullanacağım) Örnek vermek gerekirse M karakteri – - , T karakteri – ,  ? karakteri . . – - . . E karakteri ise . olarak gösterilir.

Devamını oku »

Joe Armstrong isimli Erlang dilinin geliştiricilerinden bir abimiz, vakti zamanında nesne yönelimli programlama modeli için bir örneklemede bulunmuş, ve demiş ki;

“The problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.”

Devamını oku »

LinQtoSQL kullanmak için bir dbml’i yarattınız, içerisine gerekli gördüğünüz tabloları eklediniz bağlantılarını kurdunuz ve projenizde mutlu ve mesut bir biçimde kullanıyorsunuz diyelim. Bir sorun yaşayana kadar yeni şeyler öğrenmeyi red eden benim gibi bir yapıdaysanız “Delay Loaded” özelliğinin ne olduğunu içi dolu dolu byte array’ler ile çalışmadan araştırmazsınız sanıyorum.

Bir tane tablomuzda bir kolon var tipi VARBINARY(MAX) kısaca limiti belli olmayan byte dizisi olarak tanımlanmış. Kullanım amacımız bir çoğumuzun yaptığı gibi dosyaları veritabanına yerleştirmek için. Şimdi siz bu tabloyu dbml’e ekleyip sorguyu aldığınızda oluşturulacak class’ın içerisinin (siz o içeriği hiç kullanmasanız bile) doldurulduğunu tahmin etmek zor değil. Ki bir sorgu alıp 10 dakika cevap vermesini beklediğinizde bir şeylerin ters gittiğini daha rahat kavrayabiliyorsunuz.

Devamını oku »

Yine blog’u yanlızlığa terkettiğim bir ayın ardından ufak bir sorun ve çözüm ile beraberiz. Dün akşam saatlerinden bugün sabaha kadar bir türlü içinden çıkamadığım bir sorunun kaynağını absürd bir biçimde buldum, sizlerle paylaşmak isterim sayın seyirciler.

Şimdi WCF ile birlikte callback yapan bir sistem kurduk diyelim. Bu sistemde ana operation contract olarak subscribe isimli bir method’umuz var. Bu method cağırıldığında bağlı olan ve kanalı halen açık olan istemcilerdeki subscribed isimli callback methodu cağrılıyor. İçerik şu şekilde

Devamını oku »

Uzun bir süredir yine blogu birbaşına bırakmış olmamın verdiği hüznü derin derin içimde hissederken ilginç bir durumu paylaşayım istedim. Bir linq sorgusu yazacaksınız ve kıstaslarınız dinamik olarak, çalışma zamanında belirlenecek. Kısaca linq içerisinde yazacağınız WHERE expression duruma göre değişecek. Nasıl böyle bir gereklilik doğar; örneğin bir adres defteri sorgusu alacaksınız, bir kullanıcı gider sadece adı ahmet olanları listelemek ister, bir diğeri adı ahmet ve telefon no’sunda 9 geçenler listelemek ister. Bu örnekte kıstas en fazla 2 tane olduğu için bir sorun yok belki, iki ayrı linq sorgusu yazarsanız, ancak bu tip kıstaslarınızın sayısı arttıkça iş içinden çıkılmaz olur. Bu durumlar için şu şekilde bir çözüm geliştirilmiş. Çok ayrıntılı inceleyemedim fakat tek tablolu sorgularınızda gayet başarılı sonuçlar veriyor gibi.

Ancak bu yazının konusu biraz daha karışık, 1 ana tablo ve ona bağlı 2 adet yan tablo var diyelim. Bu durumda dinamic linq sorgusu nasıl olacak. Öncelikle örnek tabloların yapılarını verelim;

Devamını oku »

Üç J’ler devam yazısını yakında yayınlıyor olacağım umarım. Bu esnada şu anda farkettiğim bir tuhaflığı paylaşayım istedim. Şimdi bildiğimiz bir string türü için split fonksiyonu var. Bir string değişken yaratıp .split diyerek çağırabilir ve string veriyi verdiğimiz parametreye göre parçalara ayırabiliriz. Örneğin “axaxaxaxa” string değeri için .split(“x”) şeklinde bir çağırım bize 5 elemanlı bir string dizisi döndürür. Önemli nokta bu elemanların hiçbirisinde seperator olarak tanımladığımız “x” bulunmaz. En azından şu ana kadar bu şekilde olduğunu sanıyordum.

Şöyle ki, elimizde uzunca ve çok satırlı bir string verisi var, bunu satırlarına ayırmak için yıllardır yaptığım gibi .split(vbcrlf) çağırımı yaptım fakat farkettim ki .net ile gelen bu yeni split metodu girdi olarak iki baytlık girişlerde (vbcrlf = 0xD ve 0xA = bildiğiniz carriage return line feed işte) çıktıların içerisinden seperatoru ayıklamıyor. Eskiden basic semalarında olmayan char türü ile birlikte gelen bi acayiplik sanıyorum.

Devamını oku »

The Package They Carry

30 Mayıs
2009

The Package They Carry

Sözünü vermiştim, ancak fırsat oldu. JSON, jQuery ve jTemplates ile ASP.net’in entegre bir biçimde çalıştığı örnek web sistemi yazacağım. Bir kaç bölüm halinde ayırmaya karar verdim. Bu birinci bölüme geçmeden kısa bir açıklama yapayım başlık hakkında.

JSON: Bir tür veri değişim formatı olarak düşünebilirsiniz. XML gibi yani, tek farkı daha az yer tutması ve jscript tarafından direk parse edilebilmesidir diyebiliriz. Ufak çapta veri taşımalarınızda kapsülleme olarak çok rahatlıkla kullanılabiliyor.

Devamını oku »

Virüslü Piller

18 Nisan
2009

Yine yine blog’u fazlaca yanlızlığa terk ettim biliyorum fakat js ve ajax ile dolu bir ay geçirdim, oldukça yakın zamanda jQuery, JSON ve jTemplates ile ilgili oldukça uzun bir yazıyı yayınlıyor olacağım. Uzatmadan konumuza dönelim.

Şurada bahseldilen konu üzerine bahsedeceğim; tek cümle ile söylemek istersek genetik olarak bozulmuş virüslerin içerisinde çalıştığı bir pil mevzubahis. Şöyleki MIT’deki bir kaç bilim adamının üzerinde çalıştığı projede ortaya çıkan piller günümüzdeki li-ion pillerden daha uzun süre gidiyor ve daha kısa sürede yeniden şarj oluyor. Temel farklılık söylediğim gibi bir tür virüsün yapısının planlı biçimde bozup pilin içerisine yerleştirilmesiymiş.

Devamını oku »

başa dön