Jumat, 27 April 2012

5 Tools Online Data BackUp Terbaik

0 5 Tools Online Data BackUp Terbaik

Description: 5 Tools Online Data BackUp Terbaik Rating: 4.5 Reviewer: Stasiun Geofisika Alor - ItemReviewed: 5 Tools Online Data BackUp Terbaik
Kehilangan data-data penting kita akibat laptop terjatuh dan rusak, install ulang atau terkena infeksi virus adalah hal yang menyakitkan (hehe bahasanya lebay..).Namun hal ini seharusnya tidak perlu terjadi dan masih bisa di hindari. Karena teknologi sekarang mampu untuk membantu Anda menjaga dokumen dan file penting melalui sistem Cloud. Konsep yang diterapkan adalah fasilitas penyimpanan data auto-synchronizes, dimana data di komputer anda akan secara otomatis di synkronkan dengan server penyedia tools ini. Cara ini bahkan bekerja jika anda kehilangan perangkat komputer atau laptop, Anda masih dapat mengakses file Anda melalui perangkat yang lain. Ini juga dapat digunakan sebagai file-sharing atau alat untuk berbagi file meskipun yang berukuran besar sekalipun.
Berikut ini adalah 5 tool online data backup terbaik yang saya ketahui:

1. Dropbox

Dropbox adalah aplikasi penyimpanan online populer yang menjaga data Anda di mana saja dan memungkinkan Anda untuk berbagi dengan mudah ke teman, kolega dan keluarga yang juga memiliki akun Dropbox.
Download dan install Dropbox ke komputer. Kemudian Anda akan menemukan folder Dropbox di komputer Anda. Drag data ke dalam folder Dropbox, dan data Anda akan diunggah secara otomatis ke server Dropbox. Untuk akun yang free disediakan Space 2GB.


Features | Pricing | Sign Up


2. Box

Box memungkinkan Anda untuk menyimpan dan berbagi data penting Anda. Garansi 99,9% up-time, enkripsi SSL, ruang penyimpanan besar, hak akses dapat disetting, dan banyak lagi.
Ruang penyimpanan 5GB untuk akun free.

Features | Pricing | Sign Up


3. Comodo Backup

Comodo Backup menawarkan 5GB ruang penyimpanan online gratis untuk Anda untuk membuat backup file Anda. Anda dapat dengan mudah mengakses file dari mana saja, dan sinkronisasi antara komputer.

Features | Pricing | Sign Up


4. Memopal

Memopal memberikan 3GB penyimpanan online gratis untuk backup data penting Anda. Hanya men-download Memopal dan menginstalnya pada komputer Anda. Memopal secara otomatis akan melakukan sinkronisasi folder dan file yang dipilih.

Features | Pricing | Sign Up


5. Mozy

Mozy menawarkan 2GB penyimpanan online gratis untuk Anda untuk membuat cadangan foto, musik, dan file lainnya di Internet dengan fitur tambahan seperti enkripsi, backup data otomatis atau terjadwal, pembatasan bandwidth dan bisa di akses melalui handphone.

Features | Pricing | Sign Up


Rating: 4.5 Reviewer: Mr. Sumawan
Posted by: Sumawan.Mr
Trik SEO terbaik, Updated at: 22.31

Sabtu, 31 Maret 2012

Mengatasi Tampilan "Elemen Laman" Yang Error

0 Mengatasi Tampilan "Elemen Laman" Yang Error

Description: Mengatasi Tampilan "Elemen Laman" Yang Error Rating: 4.5 Reviewer: Stasiun Geofisika Alor - ItemReviewed: Mengatasi Tampilan "Elemen Laman" Yang Error
Pernah kah anda mendapatkan tampilan "Element Laman" pada tab rancangan di akun blogger anda hanya satu kolom saja? sedangkan blog anda memiliki dua atau tiga kolom. Jika jawabannya YA, berarti anda tidak salah mengunjungi blog ini, hehehe...
Contoh tampilan Elemen Laman yang error seperti gambar di bawah ini:


Jika blog anda memiliki dua kolom, seharusnya pada tampilan Element Laman juga memiliki dua kolom dan penempatan widgetnya yang sama seperti pada blog anda juga. Apabila anda menemukan tampilan Elemen Laman seperti gambar di atas, maka lakukan langkah-langkah berikut ini untuk mengatasinya:

1. Login ke Blogger >> Rancangan >> Edit HTML
2. Copy code dibawah ini:
body#layout ul{list-style-type:none;list-style:none}
body#layout ul li{list-style-type:none;list-style:none}
body#layout #outer-wrapper{overflow:visible;width:1000px}
body#layout #header{float:left;width:240px}
body#layout #header2{float:right;width:240px}
body#layout .add_widget{width:240px}
body#layout div.widget{width:240px}
body#layout #sidebar-wrapper{overflow:visible;width:240px}
body#layout #lsidebar-wrapper{overflow:visible;float:left;width:240px;margin-right:50px;}
body#layout #main-wrapper{overflow:visible;float:left;width:240px}
body#layout #rsidebar-wrapper{overflow:visible;float:right;width:240px}
body#layout #myGallery{display:none}
body#layout .featuredposts{display:none}
body#layout .fp-slider{display:none}
body#layout #navcontainer{display:none}
body#layout .menu-secondary-wrap{display:none}
body#layout .menu-secondary-container{display:none}
body#layout #skiplinks{display:none}
body#layout .feedtwitter{display:none}
body#layout div.section{font-family:sans-serif;margin:0 auto 2px;padding:0 0 10px 0;position:relative;overflow:visible}
body#layout .section-columns{margin:0}
.section{width:100%}
3. Cari Variable definitions atau lihat contoh gambar di bawah, dan tempatkan kode tadi di atas Variable definitions. Lihat gambar:

4. Save Template dan lihat tampilan Elemen Laman anda.

Sekarang anda dapat mengidentifikasi tampilan Elemen Laman anda dengan jelas.
Rating: 4.5 Reviewer: Mr. Sumawan
Posted by: Sumawan.Mr
Trik SEO terbaik, Updated at: 02.56

Senin, 27 Februari 2012

Meta Tag Open Graph Facebook

0 Meta Tag Open Graph Facebook

Description: Meta Tag Open Graph Facebook Rating: 4.5 Reviewer: Stasiun Geofisika Alor - ItemReviewed: Meta Tag Open Graph Facebook
FOREST CITY, NC - APRIL 19:  (L-R) Facebook Vi...
FOREST CITY, NC - APRIL 19: (L-R) Facebook Vice President of Site Operations Tom Furlong, Facebook data center manager George Henry, North Carolina deputy commerce secretary Dale Carroll, North Carolina senator Wes Westmoreland, former North Carolina senator Debbie Clary and North Carolina senator Ralph Hise pose for pictures after pressing a large 'like' button at the new Facebook Data Center on April 19, 2012 in Forest City, North Carolina. The company began construction on the facility in November 2010 and went live today, serving the 845 million Facebook users worldwide. (Image credit: Getty Images via @daylife)
Facebook logo
Facebook logo (Photo credit: Wikipedia)
Open Graph Protocol adalah skema FBML untuk media sosial sharing seperti facebook misalnya agar link bisa di masukkan ke facebook dengan gampang. Hal ini sangat berguna untuk optimasi SEO blog di Facebook.
Memasang meta tags untuk Open Graph Protocol di Blogger:
1. Login ke blogger Dasboar >Rancangan> Edit HTML,
2. Cari kode:
xmlns:expr='http://www.google.com/2005/gml/expr'>
3. Tambahkan kode Open Graph Protocol ini sebelum kode penutup >
xmlns:og='http://ogp.me/ns#'
4. Sehingga hasilnya akan terlihat seperti ini:
<html ...... xmlns:expr='http://www.google.com/2005/gml/expr' xmlns:og='http://ogp.me/ns#'>
5. Cari kode <head> dan simpan kode meta tag berikut ini dibawah kode <head> atau dibawah kode meta tag yang sudah ada sebelumnya.
<b:if cond='data:blog.pageType != &quot;item&quot;'>
property='og:title'/>
<meta expr:content='data:blog.homepageUrl' property='og:url'/>
<meta content='blog' property='og:type'/>
<b:else/>
<meta expr:content='data:blog.pageName' property='og:title'/>
<meta expr:content='data:blog.url' property='og:url'/>
<meta content='article' property='og:type'/>
</b:if>
<b:if cond='data:blog.postImageThumbnailUrl'>
<meta expr:content='data:blog.postImageThumbnailUrl' property='og:image'/>
<b:else/>
<meta content='http://example.com/logo blog.jpg' property='og:image'/>
</b:if>
<meta content='Nama Blog' property='og:site_name'/>
<meta content='Your-App-ID' property='fb:app_id'/>

<meta content='Facebook-profile-ID' property='fb:admins'/>
(ganti tulisan warna merah sesuai dengan blog kamu)
6. Save Template, Selesai.

Untuk memeriksa apakah Anda telah menerapkan semua tag <META> dengan benar, kunjungi Facebook Debugger for Developers.

Note: Open graph ini juga berguna untuk menampilkan gambar atau logo blog kamu ketika di share, like atau send ke facebook jika artikel yang di posting tidak memiliki gambar.
Enhanced by Zemanta
Rating: 4.5 Reviewer: Mr. Sumawan
Posted by: Sumawan.Mr
Trik SEO terbaik, Updated at: 04.31

Script Anti Copas - Copy Paste

0 Script Anti Copas - Copy Paste

Description: Script Anti Copas - Copy Paste Rating: 4.5 Reviewer: Stasiun Geofisika Alor - ItemReviewed: Script Anti Copas - Copy Paste
Cara memasukkan script anti copy paste di blog :

1.Login ke akun blogger kamu.
2.Klik Rancangan lalu klik Edit HTML.
3.Tandai Expand Template Widget pada bagian Edit Template.
4.Cari kode </head>
5.Jika sudah ketemu, masukkan script berikut ini diatas kode </head>
<SCRIPT type="text/javascript">
if (typeof document.onselectstart!="undefined") {
document.onselectstart=new Function ("return false");
}
else{
document.onmousedown=new Function ("return false");
document.onmouseup=new Function ("return true");
}
</SCRIPT>
6.Lalu klik Simpan Template dan lihat hasilnya.
7.Selesai.
Rating: 4.5 Reviewer: Mr. Sumawan
Posted by: Sumawan.Mr
Trik SEO terbaik, Updated at: 02.25

Jumat, 24 Februari 2012

Mengatasi Tombol Reply Yang Tidak Bisa di Klik Alias Error

0 Mengatasi Tombol Reply Yang Tidak Bisa di Klik Alias Error

Description: Mengatasi Tombol Reply Yang Tidak Bisa di Klik Alias Error Rating: 4.5 Reviewer: Stasiun Geofisika Alor - ItemReviewed: Mengatasi Tombol Reply Yang Tidak Bisa di Klik Alias Error
Tadi saya ingin membalas sebuah komentar di blog ini dan saya menemukan masalah bahwa fitur tombol reply yang ada di blog ini tidak berfungsi dan tidak berpengaruh apa-apa saat di klik, walhasil saya tidak jadi membalas komentar tersebut, hehehe..
Setelah mencari info, ternyata ada perubahan pada JavaScript thread comment. Nah untuk mengatasi masalah tersebut, Lakukan langkah-langkah berikut ini:

1. Login ke Dasbor Anda >> Rancangan >> Edit HTML
2. Centang Expand Template Widget
3. Untuk menjaga hal-hal yang tidak diinginkan saya sarankan backup dulu template blog anda dengan mengklik Download Full Template.
4. Cari kode:
<b:includable id='threaded_comment_js' var='post'>
  <script defer='defer' expr:src='data:post.commentSrc' type='text/javascript'/>

  <script type='text/javascript'>
    (function() {
      var items = <data:post.commentJso/>;
      var msgs = <data:post.commentMsgs/>;
      var postId = &#39;<data:post.id/>&#39;;
      var feed = &#39;<data:post.commentFeed/>&#39;;
      var authorName = &#39;<data:post.author/>&#39;;
      var authorUrl = &#39;<data:post.authorUrl/>&#39;;
      var blogId = &#39;<data:top.id/>&#39;;
      var baseUri = &#39;<data:post.commentBase/>&#39;;

// <![CDATA[
      feed += '?alt=json&v=2&orderby=published&reverse=false&max-results=50';
      var cursor = null;
      if (items && items.length > 0) {
        cursor = parseInt(items[items.length - 1].timestamp) + 1;
      }

      var bodyFromEntry = function(entry) {
        if (entry.gd$extendedProperty) {
          for (var k in entry.gd$extendedProperty) {
            if (entry.gd$extendedProperty[k].name == 'blogger.contentRemoved') {
              return '<span class="deleted-comment">' + entry.content.$t + '</span>';
            }
          }
        }
        return entry.content.$t;
      }

      var parse = function(data) {
        cursor = null;
        var comments = [];
        if (data && data.feed && data.feed.entry) {
          for (var i = 0, entry; entry = data.feed.entry[i]; i++) {
            var comment = {};
            // comment ID, parsed out of the original id format
            var id = /blog-(\d+).post-(\d+)/.exec(entry.id.$t);
            comment.id = id ? id[2] : null;
            comment.body = bodyFromEntry(entry);
            comment.timestamp = Date.parse(entry.published.$t) + '';
            if (entry.author && entry.author.constructor === Array) {
              var auth = entry.author[0];
              if (auth) {
                comment.author = {
                  name: (auth.name ? auth.name.$t : undefined),
                  profileUrl: (auth.uri ? auth.uri.$t : undefined),
                  avatarUrl: (auth.gd$image ? auth.gd$image.src : undefined)
                };
              }
            }
            if (entry.link) {
              if (entry.link[2]) {
                comment.link = comment.permalink = entry.link[2].href;
              }
              if (entry.link[3]) {
                var pid = /.*comments\/default\/(\d+)\?.*/.exec(entry.link[3].href);
                if (pid && pid[1]) {
                  comment.parentId = pid[1];
                }
              }
            }
            comment.deleteclass = 'item-control blog-admin';
            if (entry.gd$extendedProperty) {
              for (var k in entry.gd$extendedProperty) {
                console.log(entry.gd$extendedProperty[k].name + ' - ' + entry.gd$extendedProperty[k].value);
                if (entry.gd$extendedProperty[k].name == 'blogger.itemClass') {
                  comment.deleteclass += ' ' + entry.gd$extendedProperty[k].value;
                }
              }
            }
            comments.push(comment);
          }
        }
        return comments;
      };

      var paginator = function(callback) {
        if (hasMore()) {
          var url = feed;
          if (cursor) {
            url += '&published-min=' + new Date(cursor).toISOString();
          }
          window.bloggercomments = function(data) {
            var parsed = parse(data);
            cursor = parsed.length < 50 ? null
                : parseInt(parsed[parsed.length - 1].timestamp) + 1
            callback(parsed);
            window.bloggercomments = null;
          }
          url += '&callback=bloggercomments';
          var script = document.createElement('script');
          script.type = 'text/javascript';
          script.src = url;
          document.getElementsByTagName('head')[0].appendChild(script);
        }
      };
      var hasMore = function() {
        return !!cursor;
      };
      var getMeta = function(key, comment) {
        if ('iswriter' == key) {
          var matches = !!comment.author
              && comment.author.name == authorName
              && comment.author.profileUrl == authorUrl;
          return matches ? 'true' : '';
        } else if ('deletelink' == key) {
          return baseUri + '/delete-comment.g?blogID=' + blogId + '&postID=' + comment.id;
        } else if ('deleteclass' == key) {
          return comment.deleteclass;
        }
        return '';
      };

      var replybox = null;
      var replyUrlParts = null;
      var replyParent = undefined;

      var onReply = function(commentId, domId) {
        if (replybox == null) {
          // lazily cache replybox, and adjust to suit this style:
          replybox = document.getElementById('comment-editor');
          if (replybox != null) {
            replybox.height = '250px';
            replybox.style.display = 'block';
            replyUrlParts = replybox.src.split('#');
          }
        }
        if (replybox && (commentId !== replyParent)) {
          document.getElementById(domId).insertBefore(replybox, null);
          replybox.src = replyUrlParts[0]
              + (commentId ? '&parentID=' + commentId : '')
              + '#' + replyUrlParts[1];
          replyParent = commentId;
        }
      };

      var tok = 'comment-form_';
      var hash = window.location.hash || '';
      var startThread = hash.indexOf(tok) == 1 ? hash.substring(tok.length + 1) : undefined;

      // Configure commenting API:
      var configJso = {
        'maxDepth': 2
      };
      var provider = {
        'id': postId,
        'data': items,
        'loadNext': paginator,
        'hasMore': hasMore,
        'getMeta': getMeta,
        'onReply': onReply,
        'rendered': true,
        'initReplyThread': startThread,
        'config': configJso,
        'messages': msgs
      };

      var render = function() {
        if (window.goog && window.goog.comments) {
          var holder = document.getElementById('comment-holder');
          window.goog.comments.render(holder, provider);
        }
      };

      // render now, or queue to render when library loads:
      if (window.goog && window.goog.comments) {
        render();
      } else {
        window.goog = window.goog || {};
        window.goog.comments = window.goog.comments || {};
        window.goog.comments.loadQueue = window.goog.comments.loadQueue || [];
        window.goog.comments.loadQueue.push(render);
      }
    })();
// ]]>
  </script>
</b:includable>
5. Ganti semua kode tersebut dengan kode dibawah ini:
<b:includable id='threaded_comment_js' var='post'>
  <script async='async' expr:src='data:post.commentSrc' type='text/javascript'/>

  <script type='text/javascript'>
    (function() {
      var items = <data:post.commentJso/>;
      var msgs = <data:post.commentMsgs/>;
      var config = <data:post.commentConfig/>;

// <![CDATA[
      var cursor = null;
      if (items && items.length > 0) {
        cursor = parseInt(items[items.length - 1].timestamp) + 1;
      }

      var bodyFromEntry = function(entry) {
        if (entry.gd$extendedProperty) {
          for (var k in entry.gd$extendedProperty) {
            if (entry.gd$extendedProperty[k].name == 'blogger.contentRemoved') {
              return '<span class="deleted-comment">' + entry.content.$t + '</span>';
            }
          }
        }
        return entry.content.$t;
      }

      var parse = function(data) {
        cursor = null;
        var comments = [];
        if (data && data.feed && data.feed.entry) {
          for (var i = 0, entry; entry = data.feed.entry[i]; i++) {
            var comment = {};
            // comment ID, parsed out of the original id format
            var id = /blog-(\d+).post-(\d+)/.exec(entry.id.$t);
            comment.id = id ? id[2] : null;
            comment.body = bodyFromEntry(entry);
            comment.timestamp = Date.parse(entry.published.$t) + '';
            if (entry.author && entry.author.constructor === Array) {
              var auth = entry.author[0];
              if (auth) {
                comment.author = {
                  name: (auth.name ? auth.name.$t : undefined),
                  profileUrl: (auth.uri ? auth.uri.$t : undefined),
                  avatarUrl: (auth.gd$image ? auth.gd$image.src : undefined)
                };
              }
            }
            if (entry.link) {
              if (entry.link[2]) {
                comment.link = comment.permalink = entry.link[2].href;
              }
              if (entry.link[3]) {
                var pid = /.*comments\/default\/(\d+)\?.*/.exec(entry.link[3].href);
                if (pid && pid[1]) {
                  comment.parentId = pid[1];
                }
              }
            }
            comment.deleteclass = 'item-control blog-admin';
            if (entry.gd$extendedProperty) {
              for (var k in entry.gd$extendedProperty) {
                if (entry.gd$extendedProperty[k].name == 'blogger.itemClass') {
                  comment.deleteclass += ' ' + entry.gd$extendedProperty[k].value;
                }
              }
            }
            comments.push(comment);
          }
        }
        return comments;
      };

      var paginator = function(callback) {
        if (hasMore()) {
          var url = config.feed + '?alt=json&v=2&orderby=published&reverse=false&max-results=50';
          if (cursor) {
            url += '&published-min=' + new Date(cursor).toISOString();
          }
          window.bloggercomments = function(data) {
            var parsed = parse(data);
            cursor = parsed.length < 50 ? null
                : parseInt(parsed[parsed.length - 1].timestamp) + 1
            callback(parsed);
            window.bloggercomments = null;
          }
          url += '&callback=bloggercomments';
          var script = document.createElement('script');
          script.type = 'text/javascript';
          script.src = url;
          document.getElementsByTagName('head')[0].appendChild(script);
        }
      };
      var hasMore = function() {
        return !!cursor;
      };
      var getMeta = function(key, comment) {
        if ('iswriter' == key) {
          var matches = !!comment.author
              && comment.author.name == config.authorName
              && comment.author.profileUrl == config.authorUrl;
          return matches ? 'true' : '';
        } else if ('deletelink' == key) {
          return config.baseUri + '/delete-comment.g?blogID='
               + config.blogId + '&postID=' + comment.id;
        } else if ('deleteclass' == key) {
          return comment.deleteclass;
        }
        return '';
      };

      var replybox = null;
      var replyUrlParts = null;
      var replyParent = undefined;

      var onReply = function(commentId, domId) {
        if (replybox == null) {
          // lazily cache replybox, and adjust to suit this style:
          replybox = document.getElementById('comment-editor');
          if (replybox != null) {
            replybox.height = '250px';
            replybox.style.display = 'block';
            replyUrlParts = replybox.src.split('#');
          }
        }
        if (replybox && (commentId !== replyParent)) {
          document.getElementById(domId).insertBefore(replybox, null);
          replybox.src = replyUrlParts[0]
              + (commentId ? '&parentID=' + commentId : '')
              + '#' + replyUrlParts[1];
          replyParent = commentId;
        }
      };

      var hash = (window.location.hash || '#').substring(1);
      var startThread, targetComment;
      if (/^comment-form_/.test(hash)) {
        startThread = hash.substring('comment-form_'.length);
      } else if (/^c[0-9]+$/.test(hash)) {
        targetComment = hash.substring(1);
      }

      // Configure commenting API:
      var configJso = {
        'maxDepth': config.maxThreadDepth
      };
      var provider = {
        'id': config.postId,
        'data': items,
        'loadNext': paginator,
        'hasMore': hasMore,
        'getMeta': getMeta,
        'onReply': onReply,
        'rendered': true,
        'initComment': targetComment,
        'initReplyThread': startThread,
        'config': configJso,
        'messages': msgs
      };

      var render = function() {
        if (window.goog && window.goog.comments) {
          var holder = document.getElementById('comment-holder');
          window.goog.comments.render(holder, provider);
        }
      };

      // render now, or queue to render when library loads:
      if (window.goog && window.goog.comments) {
        render();
      } else {
        window.goog = window.goog || {};
        window.goog.comments = window.goog.comments || {};
        window.goog.comments.loadQueue = window.goog.comments.loadQueue || [];
        window.goog.comments.loadQueue.push(render);
      }
    })();
// ]]>
  </script>
</b:includable>
6. Save Template dan lihat hasilnya
Rating: 4.5 Reviewer: Mr. Sumawan
Posted by: Sumawan.Mr
Trik SEO terbaik, Updated at: 21.28

Sabtu, 18 Februari 2012

Cara Membuat Fitur Reply Comment Seperti Wordpress di Blogger - Terbaru

0 Cara Membuat Fitur Reply Comment Seperti Wordpress di Blogger - Terbaru

Description: Cara Membuat Fitur Reply Comment Seperti Wordpress di Blogger - Terbaru Rating: 4.5 Reviewer: Stasiun Geofisika Alor - ItemReviewed: Cara Membuat Fitur Reply Comment Seperti Wordpress di Blogger - Terbaru
Kita mungkin iri melihat fitur reply comment pada blog wordpress teman-teman yang lain, nah blogger jg tidak mau kalah dengan fitur seperti itu dan sekarang di blogger juga sudah bisa ditambahkan fitur comment reply atau thread comments. Sebenarnya cara ini sangat mudah dilakukan, tinggal mengubah sedikit kode template html anda.
Disini saya akan mejelaskan cara yang paling simple dengan mengedit template.
1. Login ke Dasbor Anda ---> Edit HTML
2. Jangn lupa centang Expand Template Widget
3. Cari kode ini:
<b:include data='post' name='comments'/>
 (di template saya ada 4 kode seperti itu)
4. Ganti semua kode diatas dengan :
<b:if cond='data:post.showThreadedComments'>
<b:include data='post' name='threaded_comments'/>
<b:else/>
<b:include data='post' name='comments'/>
</b:if>
 5. Save.

Dan hasilnya akan seperti ini:



Sampai disini, fitur replay comment atau thread comments blogger anda sudah jadi.
Semoga bermanfaat...
Rating: 4.5 Reviewer: Mr. Sumawan
Posted by: Sumawan.Mr
Trik SEO terbaik, Updated at: 01.34
 

Blog Webmaster | Indotrading ™ Copyright © 2012 - |- Template created by O Pregador - |- Powered by Blogger Templates

www.e-referrer.com