Bilgi paylaştıkça değerlenir...!

How to configure your domain for Google Webmail

How to configure your domain for Google Webmail

In order to configure your domain name to work with Google Webmail there are several steps you need to accomplish. You will need to create a new CNAME record pointing to Google in a manner similar to verifying your domain name for Google Apps.

Login to cPanel for your hosting account. Go to Simple DNS Zone Editor. Select the domain name you would like to setup with Google Webmail from the “Select a Domain” drop-down menu.

In the “Add an CNAME Record” section enter “webmail” in the “Name” text box and enter ghs.google.com in the “CNAME” text box.

Then click the Add a CNAME record button. A confirmation will appear that the CNAME was added successfully.

Now that you have configured your domain for Google Email, you need to change the Google Email URL in Google Apps so that you can access it through your domain. Follow the steps below to complete the setup:

  • Go to your Google Apps Dashboard > Email.
  • In the Web address section, click Change URL.

 

  • Select the second option and type the name of the subdomain you want to use for accessing your Google Email through your domain. In our case we’ll leave the default subdomain mail. To proceed, click Continue.

 

  • To complete the setup, click I’ve completed these steps.

 

Once your Google Email is configured and the DNS changes propagate, you will be able to access your webmail directly through http://mail.yourdomainname.com.

Query UI sürükle bırak ile alış veriş sepeti mantığı

jQuery UI sürükle bırak ile alış veriş sepeti mantığı

Bir tarafta ürünler diğer tarafta ise alış veriş sepeti bulunuyor. Almak istenilen ürünü sürükleyip sepete bırakılıyor. Aynı ürünü tekrar sepete atıldığında adet bir artırılıyor. Ürünü sepetten çıkartmak istenildiğinde ise, üzerine çift tıklanılıyor. Bu işlemleri yapabilmek için jQuery ve jQueryUI kullanacağız. jQuery UI nin Draggable ve Droppable özelliği ile bu işlemi kolaylıkla yapabiliyoruz. Kodların üzerinde açıklamalar yazılıdır.

[code lang=”js”]
$(document).ready(function(){

// Sürükleme yapılacak elemanları seçiyoruz.
$(".urunGrid ul li").draggable({
revert:true,
helper: "clone"
});

// Üzerine elemanları alacak olan kısmı belirtiyoruz. Yani sepetimiz.
$(".sepet").droppable({
drop: function( event, ui ) {
var t = $(this);
var d = ui.draggable; // bu bizim tuttuğumuz eleman yani <li> elementi
var ul = t.find("ul"); // Sepetimizin içindeki ul elementimiz.
var id = d.attr("id"); // tuttuğumuz ürünün id si.
var idToLi = ul.find("#"+id); // sepette, tuttuğumuz id ye sahip ürünü seçiyoruz.
var adet;

// Veritabanına yazma işlerini burada yapabilirsiniz. (ajax)

idToLi.fadeOut().fadeIn(); // şeklimizi yapıyoruz :)

// eğer daha önce ürün ekli değilse ekliyoruz, ekliyse adetini 1 arttırıyoruz.
if(idToLi.html()==null){
ul.append("<li id=\""+id+"\" title=\"Silmek için çift tıklayın\"><em>1 *</em> "+d.html()+"</li>");
}
else{
adet = parseInt(idToLi.find("em").text().replace(" *",""));
idToLi.find("em").text(adet+1+" *");
}
toplam(); // sepetin altına toplam alan fonksiyonu çağırıyoruz.
}
});

// Sepetteki ürüne çift tıklandığında silinmesini sağlıyoruz.
$(".sepet ul li").live("dblclick", function() {
var adet = parseInt($(this).find("em").text().replace(" *", ""));
if (adet == 1) {
$(this).remove();
}
else {
$(this).find("em").text(adet-1+" *");
}
toplam(); // Ürün silindiğinde toplamın yeniden hesaplanmasını sağlıyoruz.
});
});

function toplam(){
var toplam=0;
var t;
var fiyat;
var adet;

// Eğer sepette ürün yoksa "ürün yok" ibaresini görünmez yapıyoruz.
if($(".sepet ul li").length != 0){
$(".sepet h1 small").fadeOut();
}
else
{
$(".sepet h1 small").fadeIn();
}

// Sepetin içinde ki ürünleri yani <li> leri döndürüp toplama işlemini yapıyoruz.
$(".sepet ul li").each(function(){
t = $(this);
fiyat = parseFloat(t.find("span").text().replace(t.find("span small").text(),""));
adet = t.find("em").text().replace(" *","");
toplam += (fiyat*adet);
});

// toplamı ilgili alana yazdırıyoruz.
$("#toplam").fadeIn().text($(".sepet ul li").length+" Ürün, Toplam: "+toplam+" TL");
}
[/code]

[code lang=”html”]
<body>
<div class="tasiyici">
<div class="kutu urunGrid">
<h1>Ürünler</h1>
<ul>
<li id="1">Kalem <span>10<small> TL</small></span></li>
<li id="2">Silgi <span>5<small> TL</small></span></li>
<li id="3">Kalem Traş <span>2<small> TL</small></span></li>
<li id="4">Defter <span>15<small> TL</small></span></li>
<li id="5">Bant <span>3<small> TL</small></span></li>
</ul>
</div>

<div class="kutu sepet">
<h1>Sepet <small>ürün yok</small></h1>
<ul></ul>
<div id="toplam"></div>
</div>

<div style="clear:both"></div>
</div>
</body>
[/code]

Yukarıdaki kodun demosu:

Facebook’ta “Oy Veriyorum” özelliği

Facebook’un ülkemizdeki seçim günü için kullanıcılarına sunduğu “Oy veriyorum” etkinliğine 1 milyon 600 bin kişi katıldı! İşte detaylar…

Bilindiği gibi 2015 Genel Seçimler için 7 Haziran günü siyasi partiler iktidar olabilmek için sık sık mitingler düzenlemiş, seçmenden oy istemişti. Ve 7 Haziran günü tüm Türkiye 25. dönem milletvekili seçimi için sandıklara gitti. Sonuçlar kesin olmamak ile birlikte geçmiş döneme nazaran kısmen şaşırtıcı oldu. Genel seçimler için dünyanın en büyük sosyal ağlarından biri olan Facebook; Türkiye deki bu seçimler için özel bir hizmet sundu. Seçim günü gecesinden itibaren (00:00) Facebook, ana akış sayfasının en üstünde “Oy veriyorum” butonu ile üye kullanıcılarının ne kadarının oy kullanacağını belirlemek istediğini duyurmuştu. Oy kullanan vatandaşların sayısından çok daha az kimsenin kullandığı bu etkinlik öyle tahmin ediliyor ki “Aktif kullanıcı sayısını tespit etmek” adına yapılmış. Seçim gününün ertesinde katılım sonucunun 1.692.512 olduğu açıklandı. Gün boyunca hangi saatler arasında kaç kişinin ve yaş gruplarının istatistiğini paylaşan Facebook, 25-34 arası yaş grubundan oldukça memnun gibi görünüyor. Sebebi ise elbette ki bu yaş grubunun daha fazla tıklamış olması, bir diğer deyişle aktif kullanıcılarının olması.


http://www.silikonvadisi.tv/wp-content/uploads/2015/06/facebook.oy_.veriyorum.svtv_.icerik.png

ASP.NET response.redirect problemi.

Geçtiğimiz günlerde yetki kontrolü yaptığım bir sayfada response.redirect yaparken “Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack” şeklindeki hatayı almaktaydım. Biraz incelediğimde client side ‘da callback yaptığım sayfadan server side da redirect yapmaya çalıştığımdan dolayı thread abort olup hataya düşüyordu. bunun çözümü için redirect ettiğimiz method a endresponse parametresini false göndermemiz gerekiyor.

Hata alan kod:
System.Web.HttpContext.Response.Redirect(“accessdenied.aspx”);

Hata almayan kod:
System.Web.HttpContext.Response.Redirect(“accessdenied.aspx”,false);

Xslt compile problemi

For security reasons DTD is prohibited in this XML document. To enable DTD processing set the DtdProcessing property on XmlReaderSettings to Parse and pass the settings into XmlReader.Create method.

Eğer XslCompiledTransform nesnesinin transform methodunu cağırırken yukarıdaki  gibi bir hata ile karşılaşırsanız. Sebebi ve çözümü aşağıdaki gibidir.

 

Yukarıdaki hatanın sebebi xslt nizin içinde  <!DOCTYPE xsl:stylesheet []> şeklinde bir style eklemişsiniz ve transformasyonda bunu parse etme ayarini set etmemişsiniz demektir. Bu yüzden yukarıdaki hatayı alıyorsunuz. Çözümü için aşağıdaki kod parçasını kodunuza eklemeniz yeterli olacaktır.

XmlReaderSettings settings = new XmlReaderSettings();

settings.DtdProcessing = DtdProcessing.Parse;

 

Örnek:

XmlReaderSettings settings = new XmlReaderSettings();
settings.DtdProcessing = DtdProcessing.Parse;

XslCompiledTransform transform = new XslCompiledTransform();
StringReader xsltStringReader = new StringReader(inputXsltString);
XmlReader xsltXmlReader = XmlReader.Create(xsltStringReader, settings);
transform.Load(xsltXmlReader);
StringReader inputXmlStringReader = new StringReader(inputXmlString);
XmlReader inputXmlReader = XmlReader.Create(inputXmlStringReader);
StringWriter results = new StringWriter();
transform.Transform(inputXmlReader, null, results);