Tuesday, April 19, 2016

Monday, April 18, 2016

Symbolic Link với Yii2 asset

"Symbolic Link" - Khi muốn truy cập nhiều folder với cùng nội dung. 
- Trước tiên, nói về Symbolic Link. Nói riêng trong windows, khi bạn có 1 main-folder tại "D:\F01", còn lại các folder khác sẽ được "link" đến nó (D:\F02, D:\F03...), các link-folder này vẫn được truy cập hoặc chỉnh sửa nội dung trong đó theo "path" riêng (D:\F02, D:\F03,...), KHÔNG chuyển "path" đến F01 như dạng Shortcut nhé!!! Sau chỉnh sửa, nội dung main-folder sẽ y chang thế, đó chính là lúc bạn nhờ đến Symolic Link. Đọc tài liệu sau để rõ hơn, trong đây cũng có link cài đặt trong Windows:
http://www.howtogeek.com/howto/16226/complete-guide-to-symbolic-links-symlinks-on-windows-or-linux/ (Hướng dẫn khá kỹ)
http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html#usinglinkshellextension   (Trong đây có mô tả chi tiết về chức năng và cách cài đặt)

- Thứ 2, yii2 liên quan gì đến đây? Đó là khi thực thi, yii2 lấy các asset trong 1 khu vực main-folder tại "vendor", sau đó cho vào 1 khu vực tạm "\yii2_starter_kit\backend\web\assets". Khi sửa code thì sửa trong main-folder, vào nó được đồng bộ đến khu-vực-tạm như mô tả. Sau đây là bức hình mô tả:

- Thứ 3, Cài đặt cho yii2 asset:
Tìm file trong web-app "...\common\config\main.php" , thêm component "assetManager", gắn giá trị TRUE cho thuộc tính linkAssets:
'assetManager' => [
'class' => 'yii\web\AssetManager',
'linkAssets' => true,
'appendTimestamp' => true
],


Saturday, March 19, 2016

Quy tắc lập trình cơ bản của riêng Phong

Trong quá trình viết code, mình tự lập ra vài quy tắc cơ bản cho riêng mình như sau:
+ Đoạn LOCs nào dùng ở nhiều nơi (>2 nơi) thì tùy theo FW, CMS chịu khó tạo function, module, plugin,... j j đó để tái sử dụng.
+ Đặt tên biến nên có tiếp đầu ngữ nói lên loại dữ liệu: strName, arrAllNames, intCounter... Không nhất thiết đó phải là một loại dữ liệu cụ thể, thường gặp, nên linh động chút, vì cũng có thể là một loại cấu trúc dữ liệu tự định nghĩa, loại model nào đó giao tiếp database,...
+ Khi lập trình, thấy cái gì quy về chức năng, thủ thuật nhỏ cũng nên comment để đọc sau, trong khoảng 100 LOCs mà không thấy comment nào thì cũng nên xem lại.

Bộ source khủng cho yii2

- Bộ source khủng cho yii2: Yii2 Starter Kit  (viết bởi: Eugene Terentev)
- Trong đây có nhiều tiện ích như: có 2 app: frontend và backend; có dùng admin theme AdminLTE cho backend; nhiều quyền truy cập (webmaster, manager...) dựa trên RBAC của yii2; có migration; đa ngôn ngữ; Content Management (for Article, Category...) - quản lý nội dung; có các Components filesystem, maintenance; có các Widgets: menu, carosel; v.v... Và còn nhiều cái hấp dẫn, tha hồ tìm hiểu các tiện ích trong đấy.
- Link liên quan:
+ Link github: https://github.com/trntv/yii2-starter-kit
+ Demo frontend: http://yii2-starter-kit.terentev.net/
+ Demo backend: http://backend.yii2-starter-kit.terentev.net/ (webmaster / webmaster)

Sunday, March 6, 2016

Link tạo app(ID+Secret) kết nối của các website HOT.

Dưới đây là link đi đến các site phổ biến, cho phép tạo app (ID+Secret) để kết nối, thao tác trên public-resource của họ. Thông tin thêm về cái gọi là public-app này: Cho phép tùy biến thêm các tính năng chưa sẵn có, tích hợp để tăng thêm sự hữu dụng, tăng sự kết nối, làm đa dạng theo từng dịch vụ bên dưới.
+ E-commerce platform:
Shopify: https://app.shopify.com/services/partners/api_clients
Haravan: https://app.haravan.com/services/partners/apiclient#/list
Bizweb: https://developers.bizweb.vn/services/partners/api_clients
Amazon: https://developer.amazon.com/public/apis/manage/developer-publishing/creating-and-submitting-a-new-app-using-the-developer-publishing-api#Submitting (submit App)
Ebay: https://developer.ebay.com/base/membership/signin/
Paypal: https://developer.paypal.com/developer/applications/

+ Social networks, big place
Google: https://console.developers.google.com/project
Facebook: https://developers.facebook.com/apps/
Twitter: https://apps.twitter.com/app/new
Microsoft: https://account.live.com/developers/applications/create

+ Others (tool, productive app, programming )
Github: https://github.com/settings/applications
LinkedIn: https://www.linkedin.com/secure/developer
Slack: https://api.slack.com/applications/new
Flickr: https://www.flickr.com/services/apps/create/ (Yahoo)
Pinterest: https://developers.pinterest.com/apps/

Thursday, February 25, 2016

Gửi ajax đến site khác

- Có bao giờ bạn viết js ajax từ 1 domain01 lấy data của 1 domain02 khác? Nếu gặp rắc rối, đây là cách giải quyết, thử qua 2 bước như sau:
- Bước 1: Chỉnh sửa responde-header bằng cách cấu hình trong file .htaccess của web-app ứng với domain02 như sau:
<IfModule mod_headers.c>
Header add Access-Control-Allow-Origin: *
</IfModule>
- Bước 2: Viết js thế nào? => Chỉ cần thêm tham số "crossDomain: true" khi gửi ajax. Xem VD bên dưới:
$.ajax({
url: 'http://[URL_CỦA_BẠN]',
crossDomain: true, // chú ý!
type: 'GET',
success: function(data){  
// làm cái gì đó đi!
}  
});
- Tham khảo:
+ http://www.webdevdoor.com/jquery/cross-domain-browser-json-ajax (khuyên dùng)
+ http://stackoverflow.com/questions/1653308/access-control-allow-origin-multiple-origin-domains

Wednesday, February 24, 2016

Tăng tốc với PageSpeed Module

- Một nguồn mở làm tăng tốc độ load website, phát triển bởi Google.
- Hiện thấy hỗ trợ Debian/Ubuntu; CentOS/Fedora, chưa thấy tài liệu nào nói có thể dùng trên Windows.
- Xem hình bên dưới: 1 nội dung script được giảm dung lượng với PageSpeed, từ 1327 bytes còn 710 bytes (giảm gần 45%).


- Tham khảo: pagespeed/module