cd /etc/httpd/sites-list

sudo cp file.config file-cp.config

sudo vi file-cp.config

<VirtualHost *:80>
     DocumentRoot "/var/www/html/folder name"
     ServerName servername.com
     ServerAlias www.servername.com
     DirectoryIndex index.php index.html
        <Directory "/var/www/html/folder name">
        Options All
        AllowOverride All
        Allow from all
    </Directory>
</VirtualHost>

sudo service httpd reload
- Chạy file sql 
mysql -uroot -proot DatabaseName < /var/www/.../file.sql

- Kiểm tra xe server mysql đang hoạt động hay không
sudo service mysqld status

- Start / Stop server mysql
sudo service mysqld start/stop
var n = 1234567890;
String(n).replace(/(.)(?=(\d{3})+$)/g,'$1,')
// "1,234,567,890"

    

public function indexAction() {
    $result = $this -> crawl_page("website crawler");
    $this -> view -> result = $result;
}

function crawl_page($url){

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec ($ch);

    curl_close ($ch);
    return $result;

}

Sau đó sử dụng javascript lấy dữ liệu đã nhận được, lọc ra để sử dụng.

Link tham khảo : http://hayageek.com/php-curl-post-get/
<div class="hidden-xs fanpage-fb">
    <a class="btn-fanpage-fb" href="javascript:void(0)"></a>
    <div id="fb-root"></div>
    <script>(function(d, s, id) {
      var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) return;
      js = d.createElement(s); js.id = id;
      js.src = "//connect.facebook.net/vi_VN/sdk.js#xfbml=1&version=v2.6&appId=1418906215084656";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));</script>
    <div class="fb-page" data-href="https://www.facebook.com/facebook" data-small-header="false" data-adapt-container-width="true" data-hide-cover="false" data-show-facepile="true"></div>
</div>

<style>
    .fanpage-fb {
        position: fixed;
        top: 200px;
        width: 340px;
        right: -340px;
        z-index: 999;
    }
    .fanpage-fb .btn-fanpage-fb {
        width: 48px;
        height: 155px;
        background: url(/images/icon/fb-right.png) no-repeat transparent;
        display: block;
        position: absolute;
        right: 340px;
    }
    @media (max-width: 767px) {
        .fanpage-fb {
            display: none;
        }
    }
</style>

<script>
    $(document).ready(function() {
        $(".fanpage-fb").on('mouseenter', function() {
            $(".fanpage-fb").stop().animate({right:'0px'}, 500);
        });
        $(".fanpage-fb").on('mouseleave', function() {
            $(".fanpage-fb").stop().animate({right:'-340px'}, 500);
        });
    });

</script>




1.Giới thiệu:

Đây là bài hướng dẫn cực kỳ đơn giản, dựa theo hướng dẫn của Leyan Lo, mình đảm bảo khi học theo hướng dẫn này thì chỉ cần biết đọc là có thể giải được khối rubik 3x3. Trong trường hợp đọc xong vẫn không làm được thì mình khuyên nên tìm những trò khác dễ dễ mà chơi.
Trước khi bắt đầu học, ta cần quy ước một số thứ cho dễ làm việc:
- Viên giữa: là viên chỉ có 1 màu, nằm chính giữa các mặt.
- Viên cạnh: là viên có 2 màu.
- Viên góc: là viên có 3 màu.

[Image: 1.jpg]

Trong hướng dẫn này, những phần không quan trọng của khối rubik, tức là những viên không cần quan tâm đến sẽ được tô màu xám, còn những phần quan trọng sẽ được đánh dấu X.
- Các ký hiệu:
Mỗi mặt của khối rubik sẽ được ký hiệu bởi 1 chữ cái tương ứng:
Phải: R Trái: L Trên: U Dưới: D Trước: F Sau: B

[Image: 2.jpg]

R L U D F B : xoay các mặt tương ứng 90 độ theo chiều kim đồng hồ.
R’ L’ U’ D’ F’ B’: xoay các mặt tương ứng 90 độ ngược chiều kim đồng hồ.
R2 L2 U2 D2 F2 B2: xoay các mặt tương ứng 180 độ.

- Lưu ý: khi gặp công thức B tức là xoay mặt B 90 độ theo chiều kim đồng hồ thì ta phải để mặt B hướng về phía mình rồi mới xoay 90 độ theo chiều kim đồng hồ. Các mặt khác cũng tương tự.

-Phương pháp giải: đây là phương pháp làm từng tầng, khi giải các tầng sau phải đảm bảo không làm xáo trộn các tầng trước. Tầng 1 là dễ làm nhất, có thể giải bằng trực giác, tự nghĩ ra cách giải. Tầng 3 dĩ nhiên là khó nhất, phải học nhiều công thức và chỉ một sai lầm ở tầng này cũng khiến ta phải làm lại khá nhiều.

2. Tầng 1:

Ta quy ước tầng 1 là tầng có mặt trắng, tầng 3 là tầng có mặt vàng. Lúc đầu, ta sẽ để mặt trắng là mặt U. Để giải tầng 1 ta cần làm 2 bước: giải các viên cạnh để tạo thành hình chữ thập và sau đó giải các viên góc. Chú ý rằng các viên góc và cạnh cần phải được đưa về đúng vị trí của nó.

[Image: 3.jpg]

Tạo hình chữ thập:

[Image: 4.jpg]

Bước này cực kỳ đơn giản, các bạn hoàn toàn có thể tự làm được, mình gợi ý cách làm sau: đầu tiên, ta cần tìm các viên cạnh có màu trắng, viên này có thể nằm ở tầng 1, tầng 2 hoặc tầng 3.

Nếu viên cạnh nằm ở tầng 2:

[Image: 5.jpg]

B1: Sau khi chọn được 1 viên cạnh, ta phải xác định nó thuộc về vị trí nào trên khối rubik. Để làm được việc này, ta xem màu kề với màu trắng là màu gì. Ở trường hợp 1 màu đó là màu đỏ, do vậy viên cạnh phải nằm ở chỗ chữ X bên phải, ngay phía trên viên giữa màu đỏ. Ở trường hợp 2, màu đó là màu xanh lá cây, do đó viên cạnh phải nằm ở chỗ chữ X phía trước. Ta gọi vị trí mà viên cạnh cần đưa tới là goal.

B2: Sau khi xác định được goal, việc tiếp theo là tìm cách đưa mặt màu trắng của viên cạnh lên mặt U. Trong trường hợp 1, ta xoay F’, viên cạnh sẽ được đưa tới vị trí chữ X phía trước. Trường hợp 2, ta xoay R, viên cạnh sẽ được đưa tới vị trí chữ X bên phải. Ta gọi vị trí mà viên cạnh sẽ tới sau khi làm bước 2 là target.

B3: Có 1 vấn đề xảy ra là nếu làm luôn bước 2 thì mặt trắng của viên cạnh đúng là được đưa đến mặt U nhưng viên cạnh lại không nằm ở goal. Không sao, chuyện nhỏ như con thỏ đang ăn cỏ bị thằng da đỏ nó bắn bỏ, trước khi làm bước 2 ta đưa goal tới vị trí target bằng cách xoay U hoặc U’ hoặc U2. Sau đó làm bước 2 rồi lại đưa goal trở về chốn cũ bằng cách làm ngược lại cái U, U’, U2 ở trên. Ví dụ ở trường hợp 1, cách làm sẽ là (U F’ U’). Trường hợp 2 cách làm sẽ là (U’ R U).

Nếu viên cạnh nằm ở tầng 1 hoặc tầng 3:

[Image: 6.jpg]

Ta xoay F hoặc F’ để đưa viên cạnh về tầng 2 rồi dùng phương pháp trên để giải.

Giải viên góc:

Từ bước này trở đi, ta sẽ lật ngược khối rubik lại, tức là mặt trắng thành mặt D còn mặt vàng thành mặt U. Việc này sẽ giúp chúng ta dễ dàng xác định vị trí các viên cần tìm.

[Image: 7.jpg]

Đầu tiên, ta cũng phải tìm các viên góc có màu trắng, viên này có thể nằm ở tầng 1 hoặc tầng 3.

Nếu viên góc nằm ở tầng 3:

B1: Xác định vị trí mà viên góc cần được đưa tới bằng cách xem xét 2 màu còn lại của viên góc. Ta gọi vị trí đó là goal.
B2: Đưa viên góc tới vị trí ngay phía trên goal.
B3: Tùy vào từng trường hợp, ta dùng 1 trong các công thức sau để giải.

[Image: 17.jpg]

[Image: 9.jpg]

1. Dùng công thức (R U’ R’ U2) để đưa mặt trắng sang phía bên cạnh.
2. Dùng 1 trong 2 công thức trên để giải.

Nếu viên góc nằm ở tầng 1:

[Image: 10.jpg]

B1: Dùng công thức (R U R’ U’) để đưa viên góc về tầng 3.
B2: Dùng phương pháp trên để giải.

3. Tầng 2:

Ở tầng này, công việc rất nhẹ nhàng, ta chỉ cần giải 4 viên cạnh. Đầu tiên ta xác định các viên cạnh của tầng 2, đó là các viên cạnh còn lại mà không có màu vàng. Các viên này có thể nằm ở tầng 2 hoặc tầng 3.

Nếu viên cạnh nằm ở tầng 3:

B1: Xác định vị trí viên cạnh cần đưa tới bằng cách xem xét 2 màu của viên cạnh. Ta gọi vị trí đó là goal.
B2: Xoay U, U’ hoặc U2 để đưa viên cạnh đến vị trí gần goal sao cho trục giữa của mặt F trùng màu (xem hình minh họa phía dưới).
B3: Tùy vào từng trường hợp, dùng 1 trong 2 công thức sau để giải:

[Image: 11.jpg]

Nếu viên cạnh nằm ở tầng 2:

[Image: 12.jpg]

B1: Dùng công thức (R U’ R’) (U’ F’ U F) để đưa viên cạnh về tầng 3.
B2: Dùng phương pháp phía trên để giải.

4. Tầng 3:

Để giải tầng 3, ta làm 4 bước như sau:

Định hướng cạnh:

Mục đích của bước này là tạo ra hình chữ thập màu vàng ở mặt U. Có 3 trường hợp cần giải quyết, tuy nhiên ta chỉ cần học 1 công thức duy nhất. Khi làm công thức dưới đây, tầng 3 sẽ biến đổi theo thứ tự như sau:

[Image: 13.jpg]

Công thức: (F R U) (R’ U’ F')

Định hướng góc:

Mục đích của bước này là đưa toàn bộ mặt U về đúng màu (màu vàng). Có tất cả 7 trường hợp cần giải quyết. Khi làm công thức dưới đây, tầng 3 sẽ biến đổi như hình minh họa. Chú ý hình minh họa bên dưới thể hiện góc nhìn từ trên xuống, khi làm công thức ta vẫn phải giữ khối rubik sao cho mặt vàng nằm ở trên cùng.

[Image: 14.jpg]

Công thức: (R U) (R’ U) (R U2) R’


Hoán vị góc:

Mục đích của bước này là đưa các viên góc về đúng vị trí của nó. Công thức dưới đây sẽ hoán đổi vị trí của 2 viên góc như hình minh họa. Để đưa cả 4 viên góc về đúng vị trí, ta có thể phải làm công thức này 2 lần.

[Image: 15.jpg]

Công thức: (R U R' F') (R U R' U') (R' F) (R2 U') (R' U')

Hoán vị cạnh:

Đây là bước cuối cùng, 2 công thức dưới đây sẽ hoán đổi vị trí của 3 viên cạnh như hình minh họa. Để đưa 4 viên cạnh về đúng vị trí, ta có thể phải làm các công thức đó 2 lần. Lưu ý ta có thể chỉ cần nhớ 1 trong 2 công thức là có thể hoàn thành bước này, tuy nhiên khi đó thời gian làm sẽ lâu hơn.

[Image: 16.jpg]
- Tùy chỉnh các thuộc tính của browser thì theo cấu trúc như sau:

::-moz-selection {
    color: gold; background: red;
}

::selection {
    color: gold; background: red;
}
- Còn nhiều thuộc tính phía sau :: (mọi người lên https://developer.mozilla.org/en-US/docs/Web/CSS/::selection để tìm hiểu thêm hoặc tìm các trang khác)
- Theo ví dụ trên thì khi rê chuột tô 1 đoạn text trên browser thì sẽ có nền là đỏ, chữ màu vàng.


<style type="text/css" >
    .banner-video {
        position: relative;
        height: 500px;
        width: 100%;
    }
    .banner-container {
        height: 500px;
        width: 100%;
        bottom: 0;
        left: 0;
        overflow: hidden;
        position: absolute;
    }
    .banner-video__video {
        height: 100%;
        width: 100%;
        object-fit: cover;
    }
</style>

<div class="banner-video">
    <div class="banner-container">
        <video autoplay loop muted class="banner-video__video">
            <source src="/video/banner-video.mp4" type="video/mp4">
            <!-- <source src="movie.ogg" type="video/ogg"> -->
            Your browser does not support the video tag.
        </video>
    </div>
</div>
$(document).ready(function() {
    validateForm($('#addPosts'));
    initRule();
    $("#btnSubmit").on("click", function(){
        CKEDITOR.instances.content.updateElement();
        if ($("#addPosts").valid()) {
            return true;
        }
        return false;
    });

    $.validator.addMethod("isExtension", function (value, element, options) {
        return checkIsExtension(value);
    },"Wrong extension type");

});

function checkIsExtension(value) {
    var ext = value.split(".");
    ext = ext[ext.length-1].toLowerCase();
    var arrayExtensions = ["jpg" , "jpeg", "png", "bmp", "gif"];
    if (arrayExtensions.lastIndexOf(ext) == -1) {
        return false;
    }
    return true;
}

function validateForm($form) {
    $form.validate({
        ignore: "",
        onfocusout : function( element, event ) {
            if ($(element).valid()) {
                $(element).closest("div.form-group").removeClass("has-error");
                //$(element).closest("div.form-group").addClass("has-success");
                $(element).closest("div.form-group").find("label.error").remove();
            }
        },

        onkeyup: function( element, event ) {
            $(element).valid();
        },

        errorPlacement: function (error, element) {
            $(element).closest("div.form-group").addClass("has-error");
            //$(element).closest("div.form-group").removeClass("has-success");
            error.insertAfter(element);
        },

        invalidHandler: function(form, validator) {
            if (!validator.numberOfInvalids()){
                return;
            }
            //scrollToTopElement($(validator.errorList[0].element));
        }
    });
}

function initRule() {
   $('#name').rules("add", {
            required : true,
            minlength: 2,
            maxlength: 100,
            messages: {
                required:'Vui lòng nhập tên',
                minlength:'Tên phải nhiều hơn hai chữ',
                minlength:'Tên phải ít hơn 100 chữ'
            }
    });
    $('#email').rules("add", {
            required : true,
            email: true,
            messages: {
                required:'Vui lòng nhập e-mail',
                email:'E-mail không đúng định dạng'
            }
    });
    $('#phone').rules("add", {
            required : true,
            number: true,
            messages: {
                required:'Vui lòng nhập số điện thoại',
                number:'Chỉ được phép nhập số'
            }
    });
    $('#image').rules("add", {
        required : true,
        isExtension: true // hàm custom validate
    });

}


Add validate min
<script language="javascript" src="/js/jquery.validate.min.js" type="text/javascript"></script>
@media only screen and (min-width: 1200px) {
    #detail-news {
        .grid-offer-photo img {
            width: 263px;
            height: 185px;
        }
    }
}

@media only screen and (min-width: 768px) and (max-width: 1199px) {
    #detail-news {
        .grid-offer-photo img {
            width: 330px;
            height: 247px;
        }
    }
}

@media only screen and (max-width: 767px) {
    #detail-news {
        .grid-offer-photo img {
            width: 330px;
            height: 232px;
        }
    }
}

@media only screen and (max-width: 497px) {
    #detail-news {
        .grid-offer-photo img {
            width: 100%;
        }
    }
}
$('#read-more').on('click', function() {
        var dataajax = {'read-more-from': $("#read-more-from").val()};
        // gọi ajax
        $.ajax({
            url : "/news/readmore",
            type : 'POST',
            data : dataajax,
            dataType : 'json',
            success: function(data){
                // gọi function append vào html
                addNewsAjax(data.arrNews);
                $("#read-more-from").val(data.offset);
            }
        });
    });

=================================

public function readmoreAction() {
        if ($this -> request -> isPost()) {
            $this -> view -> disable();
            // lấy dữ liệu truyền thông qua ajax
            $offset = $this->request -> getPost('read-more-from');

            $news = new News();
            // lấy dữ liệu từ DB
            $newsList = $news -> findByLimit(10, $offset);
            // khai báo array chứa dữ liệu để loop ngoài html
            $arrNews = array();
            foreach ($newsList as $news) {
                $arr = array('id'             => $news -> id,
                                'title'              => $news -> title,
                                'description'   => $news -> description,
                                'content'         => $news -> content,
                                'url'                => $news -> url,
                                'image'           => $news -> image,
                                'updated_at'   => date('d-m-Y', strtotime($news -> updated_at)));
                array_push($arrNews, $arr);
            }
            // output json ra ngoài javascript
            echo json_encode(array('arrNews' => $arrNews, 'offset' => ($offset + 10)));
        }
    }
==================================
<a href="javascript:void(0)" id="read-more">Xem tiếp >></a>
<script>
 $(document).ready(function() {
        $('class hoặc id').each(function() {
            var description = $(this).text();
            if (description.length > 100) {
                $(this).text(description.substring(0, 100) + "[...]");
            }
        });
});
</script>
  • Có một số trường hợp phổ biến vì lý do nào đó nguồn cấp điện bị tắt đột ngột, hoặc bạn đã cho chạy chức năng sửa chữa lỗi Checking file system. 
  • Do đó, bạn có thể hiệu chỉnh Registry để tắt chức năng Checking file system này bằng cách nhấn menu Start mở hộp Run gõ "regedit" và nhấn Enter để mở công cụ Registry Editor rồi tìm đến đường dẫn nhánh từ khóa sau: 
    •  HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Control / Session Manager. 
  • Tại đây, sau khi nhấn thẳng vào mục Session Manager thì ở khung bên phải bạn tìm và click liên kết chuột vào mục BootExecute và sửa trong khung Value Data giả sử có chữ AutoCheck autochk / p \?? \ C: thì bạn sửa nó thành AutoCheck autochk *. Hoặc cũng có thể "Delete" luôn dòng chữ AutoCheck autochk* rồi nhấn OK.
  • Sau khi thao tác xong thì khởi động máy lại để thiết lập thay đổi có hiệu lực.
1. Tải video trên YouTube cực đơn giản
Bạn có thể tải bất kỳ video nào trên YouTube đơn giản bằng cách gõ từ "ss" phía trước từ "youtube" ở link video trên thanh địa chỉ. Dưới đây là ví dụ với video ca nhạc "Sorry" của Justin Bieber.
Link gốc: www.youtube.com/watch?v=fRh_vgS2dFE
Link tải: www.ssyoutube.com/watch?v=fRh_vgS2dFE

Không chỉ tải về, bạn có thể chọn mức chất lượng và định dạng file cho video. Tuy nhiên, bạn đọc cũng cần lưu ý tôn trọng bản quyền với file video tải về.

2. Tải âm thanh từ video trên YouTube
Bạn cũng có thể tải âm thanh từ bất kỳ video nào trên YouTube đơn giản bằng sao chép địa chỉ video trên YouTube vào trang web listentoyoutube.com. Trang web này sẽ trích xuất file âm thanh của video đó thành file MP3 để cho người dùng tải về. Cũng tương tự như file video, bạn đọc cũng cần lưu ý tôn trọng bản quyền với file âm thanh tải về.


3. Chia sẻ video dưới dạng ảnh động GIF
Bạn có thể biến một đoạn của video YouTube thành ảnh động GIF bằng cách đơn giản thay cụm từ "youtube.com" trong thanh địa chỉ URL của trình duyệt thành "gifyoutube.com". Lúc này, YouTube sẽ đưa bạn đến một dịch vụ của bên thứ ba cho phép xác định điểm khởi đầu, điểm kết thúc cùng với chiều dài của đoạn video tạo ảnh GIF. Sau khi đã xác định các thông số này và chèn thông tin phụ đề, bạn có thể nhấn vào nút Create GIF để chuyển đổi video thành ảnh GIF động.


4. Chia sẻ video ở thời điểm cụ thể
Bạn thấy một video thú vị muốn chia sẻ với bạn bè. Nhưng bạn không muốn bạn bè mình phải xem cả video dài mà có thể đến ngay chỗ thú vị khi mở link chia sẻ ra. Để làm việc này, bạn chỉ cần bấm chuột phải vào video rồi chọn "Nhận URL video ở thời điểm hiện tại". Sao chép link đó và dán vào email hoặc Facebook. Khi mọi người bấm vào link, video sẽ bắt đầu mở ở đúng vị trí bạn muốn.

Lưu ý, sao chép link bằng lệnh Ctrl+C đôi lúc không hiệu quả. Nếu vậy, thay vì sao chép bằng link đó bằng lệnh Ctrl+C, bạn hãy bấm chuột phải vào link, rồi chọn lệnh Copy và dán vào email hoặc Facebook để chia sẻ.

5. Tìm kiếm trên YouTube mà không cần vào YouTube
Tìm kiếm trên YouTube chưa bao giờ đơn giản với mẹo này: khi sử dụng trình duyệt Google Chrome, bạn gõ địa chỉ youtube.com vào thanh địa chỉ, nhấn nút Khoảng cách (Space) và sau đó bạn có thể tìm kiếm video trên YouTube ngay trên thanh địa chỉ.


6. Ép YouTube tự động phát lại video
YouTube vừa cập nhật một tính năng mới cho phép bạn có thể ép dịch vụ này phát lại video đang chạy mà không cần phải nhấn nút phát lại (Replay) hay cài đặt thêm ứng dụng bên thứ ba như YouTurn.

Việc thực hiện đơn giản: Trên trang video YouTube đang phát, bạn hãy nhấn phải chuột vào giao diện trình chiếu, sau đó chọn tiếp mục Vòng lặp (Loop) trong trình đơn ngữ cảnh vừa xuất hiện. Lúc này, video vừa được thiết lập sẽ tự động chạy lại từ đầu sau khi đã kết thúc.

7. Cách xem phim YouTube ở bất kỳ tỷ lệ khung hình nào
YouTube cũng cho phép người dùng thay đổi chất lượng video nhưng có một thứ không dễ thực hiện là tỷ lệ khung hình của video. Ban đầu, tỷ lệ khung hình video trên YouTube là tỷ lệ 4:3, sau này màn hình rộng phổ biến thì tỷ lệ này đổi sang 16:9.
Có một cách đơn giản để thay đổi tỷ lệ khung hình video trên YouTube là dùng ứng dụng web Stretch.site. Mở trang web này, dán đường link của video trên YouTube vào và bạn có thể tuỳ ý thay đổi theo tỷ lệ bạn muốn.

Trang web này cung cấp hai thanh trượt, trong đó thanh bên trái sẽ thay đổi chiều rộng của video và thanh bên phải thay đổi chiều cao. Ngoài ra, Stretch.site đưa ra hai ô để chuyển đổi tỷ lệ khung hình từ 16:9 sang 4:3 và ngược lại.

8. Xem YouTube trên TV
Nếu xem YouTube trên TV theo cách truy cập thông thường, một số chương trình và website sẽ khó dùng. Bạn sẽ thấy chữ, con trỏ và các icon rất nhỏ, khó nhìn ở khoảng cách nhìn của TV.
YouTube có một giải pháp đơn giản. Truy cập vào trang https://www.youtube.com/tv sẽ mở ra giao diện được thiết kế riêng cho TV. Với giao diện này, bạn có thể sử dụng YouTube dễ dàng: bấm các phím mũi tên để di chuyển, bấm chữ "S" để tìm kiếm và "G" để mở cột hướng dẫn tìm chuyên mục bên trái.

9. Điều khiển bằng phím tắt
Khi xem YouTube, sử dụng chuột để điều khiển video không phải là thao tác vất vả và mất thời gian nhưng nếu biết dùng các phím tắt chắc chắn sẽ nhanh hơn nhiều.
- Phím J: tua lại 10 giây
- Phím K: chuyển đổi nút tạm dừng/mở video
- Phím L: tua nhanh 10 giây
- Phím M: tắt âm thanh video

Các phím tắt sau đây chỉ hoạt động khi bạn bấm vào nơi nào đó trên giao diện video (chạy, dừng, chỉnh âm lượng, tua…).
- Phím mũi tên trái/phải: tua nhanh hoặc tua lại 5 giây
- Phím mũi tên lên/xuống: điều chỉnh tăng giảm âm lượng.
- Các số từ 1 đến 9: tua tương ứng từ 10 – 90% của video.
- Phím Home: nhảy về đầu video
- Phím End: nhảy về cuối video
- Phím F: mở chế độ toàn màn hình
- Phím Esc: thoát chế độ toàn màn hình

Theo http://ictnews.vn/
- Xem việc bật file log đã được bật lên chưa
select @@general_log;

- Nếu general_log = 1 là đã bật, ngược lại = 0 là chưa.
- Ta phải set general_log = 1 để cho bật việc viết file log
set global general_log = 1;

- Xem file log đang được lưu ở đâu
select @@general_log_file;

- Các lệnh trên được gõ trong khung nhập query của các phần mềm quản lý MySQL (HeidiSQL, ...)
- Vào command line với quyền Admin, gõ lệnh sau:
C:\xampp\mysql\bin\mysqld --install MySQL --defaults-file=C:\xampp\mysql\bin\my.ini
- Khi cần thực hiện truy vấn MySQL thì chỉ cần mở xampp, start MySQL là có thể sử dụng MySQL bình thường.

- Đôi lúc khi tạo dựng lên 1 website, thì sẽ có trường hợp tự dưng có 1 ký tự làm cho xuống dòng, bể giao diện.
- Các ký tự thường là &878xcv; hay &lkiou873;
- Việc này chắc chắn nó là do lỗi font trong file mà lập trình viên đang thực hiện.
- Cách khắc phục:
  • Copy đoạn html có chữ chỗ ký tự đó sinh ra trên website.
  • Dán vào Notepad++ (Hoặc tùy phần mềm nào hỗ trợ lấy font là được)
  • Sau đó chọn Encoding - Encode in ANSI / Encode in UTF-8
  • Ký tự đó sẽ hiện ra, khi đó chỉ cần xóa bỏ nó, rồi copy tất cả vào lại website.
Html:
<html>
    <head>
        <title>Scrolling</title>
        <style>
            .container{ 
                position: relative;
                margin: 0 auto;
                width: 1000px;
                height: 2000px;
            }
        </style>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    </head>
    <body>
        <div class="container"></div>
    </body>
</html>


Jquery:
$(function(){
    $('html').append(
        '<div id="ban_left" class="ban_scroll">CONTENT BANNER LEFT </div>',
        '<div id="ban_right" class="ban_scroll">CONTENT BANNER RIGHT</div>'
    );
    $(window).scroll(function(){
        var $toado_old=0;
        var $toado_curr=$(window).scrollTop();
        $('.ban_scroll').stop().animate({'top':$toado_curr-$toado_old+50},400);//TOP 100px
        $toado_old=$toado_curr;
    });
});

Css:
div#ban_left {
       left: 1px;
}
div#ban_right {
       right: 1px;
}
div.ban_scroll {
   width: 100px;
       height: 300px;
       position: absolute;
       top: 50px;
       background: #ff0;
       z-index: -1;
       cursor: pointer;
}