Cannot connect Hope Speak?

Google Public DNS is a free, global Domain Name System (DNS) resolution service. Using that one will let you access our website in Vietnam if you could not.

It’s not so difficult to setup even without experience, but if you have some geek nearby ask her/him to change the settings. :)

Changing DNS server settings on Microsoft Windows 7:

1. Go the Control Panel.
2. Click Network and Internet, then Network and Sharing Center, then Manage network connections.
3. Select the connection for which you want to configure Google Public DNS. For example:
To change the settings for an Ethernet connection, right-click Local Area Connection, and click Properties.
To change the settings for a wireless connection, right-click Wireless Network Connection, and click Properties.
If you are prompted for an administrator password or confirmation, type the password or provide confirmation.
4. Select the Networking tab. Under This connection uses the following items, click Internet Protocol Version 4 (TCP/IPv4), and then click Properties.
5. Click Advanced and select the DNS tab. If there are any DNS server IP addresses listed there, write them down for future reference, and remove them from this window.
6. Click OK.
7. Select Use the following DNS server addresses. If there are any IP addresses listed in the Preferred DNS server or Alternate DNS server, write them down for future reference.
8. Replace those addresses with the IP addresses of the Google DNS servers: and
9. Restart the connection you selected in step 3.
10. Test that your setup is working correctly; see Testing your new settings below.
11. Repeat the procedure for additional network connections you want to change.

If you have trouble with this method, try replacing DNS servers with Open DNS project servers as follows: (instead of (instead of

Otherwise the instructions are same as above.

Hope Speak Team

Hope Speak – những trang đầu

Vậy là sau 1 quá trình dài, hôm nay mình cũng release được trang account của Hope Speak, nhìn chung thì giao diện cũng khá bắt mắt (theo ý mình) và mình khá tự hào về điều đó. Hi vọng website sẽ phát triển hơn nữa !!!


So after a long time, today I release Hope Speak account page. In general, the interface is quite stunning ( according to me), and I am pretty proud of that. Hopefully, the website will grow more !!!


Hope Speak account page
Hope Speak account page

View more on:

Jquery sticky banner follow on scroll

[script language=”javascript”]
var $itemScript = $(‘.advertising-script-left-right’);
if ($itemScript.offset()) {
var stickyTop = [];
$itemScript.each(function (index) {
$(window).scroll(function() {
var windowTop = $(window).scrollTop();
$itemScript.each(function (index) {
if (stickyTop[index] < windowTop) {
$(this).css({ position: 'fixed', top: 0 });
} else {
$(this).css('position', 'static');

Building a Social Profile Widget: Get Your Follower Count

A feature that’s becoming more common with websites is the social media profile widget. The widget consists of icons and text that link to a number of social network profiles to which the website is associated. Some of these widgets also show the number of followers on each of their respective social network.

There are a lot of free and premium social profile widget plugins available for WordPress that one can use in linking to his/her personal or website social network’s profiles.

In this two-part series, I will show how to get the count of Facebook page Likes, Twitter and Google+ Followers, and how to build a social profile WordPress widget.

We’ll be focusing on Facebook, Twitter, and Google+ because they are three of the biggest social networks.

Read more at: tutplus

select2 3.* insert data without replace content

<li class="list-group-item" data-id-user="3"><span class="badge">+</span>Song Ph'"a'"m</li>
<input type="hidden" name="partners" value="" class="multiselect-partner" style="width:100%"/>
<script type="text/javascript">
window.dataPartners = [
{ id: 4, text: "Xuân Hồng" },
{ id: 5, text: "Văn Luyện" },
{ id: 6, text: "Sau Ngu" },
$(document).ready(function () {
     * select2 function
    if ($().select2) {
            multiple: true,
            query: function (query){
                var data = {
                    results: window.dataPartners
            dropdownCssClass: "multiple", // apply css that makes the dropdown taller
            escapeMarkup: function (m) { return m; } // we do not want to escape markup since we are displaying html in results
		$newItem = $('.list-group-item');
		$newItem.on('click', function () {
			var isValid = true,
				$me = $(this),
				$fieldMultiselect = $('.multiselect-partner'),
				objectData = {
					id: $'id-user'),
					text: $me.text().substr(1)
			$.each(window.dataPartners, function (index, value) {
				if ( == $'id-user')) {
					isValid = false;
					return false;
			if (isValid === true) {
				window.dataPartners.push(objectData); /* update list dataPartners */
				 * insert this user to group chat
				var data = $fieldMultiselect.select2('data');
				$fieldMultiselect.select2("data", data, true);

Sửa lỗi facebook api: Problem with the SSL CA cert (path? access rights?)

Download file pem
Và đặt ở đâu đó trên server.
Sửa file php.ini đoạn:
curl.cainfo = PATH_TO_PEM/cacert.pem;
service httpd restart

Sử dụng custom font trên cross browser

Quy trình bình thường thì đợi font face load xong thì css mới đc load, nhưng với cách này thì chúng ta sẽ load async css, sau khi load css xong thì mới add vào font vào css trên header:

(function() {
    var headID = document.getElementsByTagName("head")[0],
    fontNode = document.createElement('link');
    fontNode.type = 'text/css';
    fontNode.rel = 'stylesheet';
    fontNode.href = /css/fonts.css'; = 'screen';

Continue reading Sử dụng custom font trên cross browser

Protected: SEO Step by Step

This content is password protected. To view it please enter your password below:

Javascript set style element on load

var w = window.innerWidth;
document.getElementById("navbar-collapse-left").setAttribute("style","width: " + ((window.innerWidth / 2) - 96 - 27) + 'px');


At the end of your day, write down the tasks you need to complete tomorrow
Look at the list when you start the next day.
End your day by creating another list for tomorrow.