Thứ Ba, 19 tháng 12, 2017

[PHP Cơ Bản] Cài đặt PHP 7 trên windows

PHP sau nhiều năm cũng đã tới được version 7 rồi. Một thời nó đã từng là xu hướng trong việc xây dựng website động, mình quen biết PHP từ năm 2008 đến bi giờ.

Đễ giúp những bạn mới học và đang tìm hiểu về PHP có thể tiếp cận nhanh, và hiểu được cách hoạt động của PHP, mình sẽ viết bài hoặc quay video chia sẽ các thủ thuật lập trình PHP cho mọi người.

Thông thường người lập trình viên PHP sẽ cho website của mình chạy trên server linux. Nhưng mình vẫn có thể sử dụng Windows để học.

Video bên dưới chia sẽ cách thức cài đặt PHP trên windows nhanh nhất để có thể bắt đầu vọc PHP.



Và tiếp theo là video cài đặt composer trên windows


Các bất kì thắc mắc hay yêu cầu gì các bạn cứ thoải mái comment ngay bên dưới nhé.

Angular (v4+) Series - Những bước cơ bản - Phần 1

Thời đại internet rẻ như uống nước mía rồi. Văn chương của mình thì ngày càng tệ. Do đó sẽ hạn chế viết linh tinh lại mà chuyển qua nói linh tinh.

Đây sẽ là video bắt đầu cho series các bài chia sẽ về kinh nghiệm lập trình Angular (v4+) cho các bạn yêu thích em Angela này :)

Nội dung video sẽ bao gồm:
1. Giới thiệu qua angular
2. Cách cài đặt môi trường
3. Cách sử dụng angular-cli
4. Các tạo source skeleton với angular-cli



Mọi yêu cầu, thắc mắc hay chửi bới các bạn comment bên dưới hoặc trực tiếp trên youtube cũng dc. 

Chân thành cảm ơn tất cả các bạn đã  theo dõi.

Thứ Ba, 21 tháng 2, 2017

5 CSS Framework nhỏ gọn dành cho website của bạn

Đằng sau sự nỗi tiếng của các ông lớn như Bootstrap CSS, Blueprint, Foundation thì một số framework nhỏ được ra đời để đáp ứng nhu cầu nhanh, gọn, nhẹ, lẹ cho một số developer & designer.

Bạn chắc chắn sẽ không cần đến đầy đủ các chức năng mà các UI framework như Bootstrap cung cấp, đặc biệt là khi bạn đang làm trên các dự án nhỏ, hoặc các dự án đơn giản mà bạn chỉ muốn xong và chạy sớm nhất có thể. May mắn thay, bên ngoài có nhiều framework đủ nhỏ & đủ đơn giản để bạn có thể dùng thay thế.


Dưới đây mình sẽ liệt kê một số css framework đã được release và được cộng đồng develop review nhé.



1. min


min, là một framework nhỏ nhất trong danh sách lần này (cái tên nói lên tất cả), bao gồm hệ thống lưới 12 cột, hỗ trợ cả responsive, có sẵn button, table, icon dành cho android. min cũng support các browser đã tuyệt chủng như IE5.5 :)



2. Milligram


Milligram thì dành cho các UI hiện đại, sử dụng FlexBox cho hệ thống lưới, kích thước size hay lengths sử dụng đơn vị là "rem"



3. Pure


Pure là một dự án mở của Yahoo! Developer, nên cũng an tâm mà sử dụng :)



4. Skeleton


Skeleton mình thấy đánh giá cao, nhưng bản release gần đây nhất từ 2014 lận.

5. Bulma

Bulma một CSS framework dựa trên FlexBox


Nguồn: http://sixrevisions.com/css/small-css-frameworks/

Thứ Bảy, 18 tháng 2, 2017

Sự kết hợp giữa ảnh SVG với CSS clip-path

Đầu tiên mình xin phép nêu lên một số ví dụ để các bạn có thể hình dung được SVG với clip-path có liên quan gì với nhau nhé.

HOLA


Tiếp nè



Với kỹ thuật Clipping mình có thể qui định được vùng hiển thị của một bức ảnh với các hình thù mà mình thích.


Bức ảnh này sử dụng ảnh một con mòe làm vùng hiển thị cho background biển bên dưới.

Một số ví dụ cụ thể bạn có thể tham khảo tại link: http://bennettfeely.com/clippy/



Clippy đã hỗ trợ bạn khá nhiều shape có sẵn, trường hợp bạn muốn sử dụng một shape của riêng bạn giống ví dụ con mòe ở trên thì bạn sẽ cần phải tự tạo cho mình một ảnh con mèo bằng SVG nhé.

Để có thể tạo được các ảnh SVG như mong muốn, bạn có thể sử dụng một số tools hỗ trợ xử lý SVG như Inkscape, https://www.vectorizer.io/, http://editor.method.ac/


Tóm lại: với kỹ thuật này thay vì phải hiển thị các bức ảnh hình vuông hay chữ nhật nhàm chán, thì chúng ta có thể hiển thị chúng theo bất kỳ hình dạng nào mà chúng ta thích nhé.

! Lưu ý: Hầu hết các browser hiện đại đều hỗ trợ kỹ thuật clipping này (nhưng không phải tất cả nhẻ các bạn thân yêu)

Nếu các bạn có bất kỳ vấn đề gì thắc mắc về kỹ thuật này, thì cứ comment bên dưới mình sẽ xem xét và giải quyết cùng các bạn nhé.

Xin lỗi các bạn vì bài viết sơ sài nhé.

Thứ Bảy, 29 tháng 11, 2014

Tạo todo app đơn giản sử dụng backbonejs và requirejs

Tạo TODO app với Backbonejs và Requirejs.


Theo như bài trước chúng ta đã có thể tạo được một app cực kì đơn giản với backbonejs. Nhìn lại thì code đó vẫn còn lung tung lắm, khó quản lý code :).


Chính vì vậy hôm nay mình sẽ giới thiệu sử dụng thằng backbonejs này underscorejs, requirejs để refractor lại TODO app đó.


Đầu tiên mình cũng cần một chút khái niệm về requirejs đã nhé.
Requirejs là một thư viện hỗ trợ script loading, nhằm cải thiện tốc độ load js file, hỗ trợ load theo các module.


Với hướng dẫn lần trước mình sẽ include script file theo thứ tự:
<script type="text/javascript" src="lib/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="lib/underscore.js"></script>
<script type="text/javascript" src="lib/backbone.js"></script>
<script type="text/javascript" src="todo/app.js"></script><!-- Main app file -->


Nếu load theo cách trên thì trình duyệt sẽ phải load script file một cách tuần tự, từ trên xuống. Điều đó sẽ ảnh hưởng 1 chút đến tốc độ render của website chúng ta.


Một cách khác nếu sử dụng requirejs, thì các script file sẽ được load sau khi document đã được load xong, và các script file của chúng ta sẽ load theo cơ chế bất đồng bộ nhưng vẫn đảm bảo các file được load theo đúng thứ tự.


<script data-main="js/main.js" src="js/require.js"></script><!-- Main app file -->


Nội dung main.js


Screen Shot 2014-11-28 at 10.18.50 PM.png


Cách các script file được load trên trình duyệt.


Screen Shot 2014-11-28 at 10.22.01 PM.png

Ok mình sẽ quay lại TODO app của chúng ta

Todo.png

Mình sẽ liệt kê lại các thành phần chính trong TODO app lần trước.
  • TodoModel
  • TodoView
  • TodoListView
  • TodoCollection
  • AppView
Lần này cấu trúc app mình có thay đổi một chút như sau:

Screen Shot 2014-11-29 at 7.06.34 AM.png


Đi thẳng vào code luôn nhé. :)

// khai báo TodoModel (model/todo.js)
Screen Shot 2014-11-29 at 7.16.40 AM.png

// khai báo TodoCollection (collection/todo.js)
Screen Shot 2014-11-29 at 11.34.01 PM.png

// khai báo TodoView (view/todo.js)
Screen Shot 2014-11-29 at 11.35.31 PM.png

// khai báo TodoListView (view/todo-list.js)
Screen Shot 2014-11-29 at 11.39.14 PM.png

// khai báo AppView (app.js)
Screen Shot 2014-11-29 at 11.41.10 PM.png

// Khai báo main app (main.js)
Screen Shot 2014-11-29 at 11.42.26 PM.png


Nếu các bạn để ý có thể thấy rằng đối với mỗi đối tượng như TodoModel, TodoView, … mình đều khai báo cũng không khác hướng dẫn lần trước cho lắm, chỉ có 1 điểm khác biệt là lần này mình khai báo như một module riêng biệt và sẽ được gọi thông qua requirejs.


Kiểu khai báo 1 module của requirejs như sau:
define([?dependency], function(dep1, dep2, ….){
// Some function with dep1
// Some function with dep2
// ….
});


hoặc
define(function(require){
var something = require(some_path);
});

Link Demo: http://vntrace.github.io/backbone/bb-rj/

Xin lỗi các bạn do mình không có nhiều thời gian, nên chỉ có thể đăng được nội dung hd như trên, chưa có đi vào giải thích từng vấn đề cụ thể được. Nếu các bạn quan tâm hơn có thể để lại comment bên dưới, đảm bảo mình sẽ reply lại nhiệt tình nhé.