Chào mọi người. Hôm nay mình xin chia sẻ 1 vài thứ về trình tiện ích của trình duyệt, đối với chrome thì gọi là extension, còn đối với firefox thì được gọi là addons, với IE thì gọi là plugin. Khi trình được sinh ra thì bên cạnh đó nó cũng tạo các trình mở rộng cho các developer phát triển các tiện ích đi kèm cùng trình duyệt. Nhằm giúp cho việc sử dụng trình duyệt được tốt hơn, thuận tiện cho người sử dụng. Như chúng ta có thể biết đến những extension kinh điển của browser như trình chặn quảng cáo của Adblock Plus, trình fakeIP của Hotspot,...

Với mỗi browser thì có cấu trúc tạo tiện ích mở rộng khác nhau.Theo kinh nghiệm của mình đã từng làm việc nhiều với các trình tiện ích thì tạo 1 tiện ích trên chrome là dễ dàng nhất. Nên sau đây mình xin chia sẻ 1 tí để tạo 1 extension đơn giản cho chrome. Các bạn có thể xem cấu trúc file sau:

Trong đó file manifest sẽ chưa các thông tin về extension, cũng như các permission mà extension có thể truy cập, log script khi chạy, cũng như popup action icon trên browser.

{
  "manifest_version": 2,
  "author": "Huy Vo Minh",
  "name": "Example Extension",
  "description": "...",
  "version": "1.0",

  "icons": {
    "48": "icon.png"
  },

  "permissions": [
    "tabs", "<all_urls>"
  ],

  "content_scripts": [
    {
      "matches": ["https://www.youtube.com/*"],
      "include_globs": [
        ],
      "js": [
        "lib/jquery-2.1.1.min.js",
        "main.js"
      ]
    }
  ],

  "browser_action": {
      "default_popup":"popup.html"
  },

  "background": {
    "scripts": ["background.js"],
    "persistent": false
  }
}

File popup.html và popup.js thực chất thì như 1 page hiển thị khi popup thôi.

File main.js ở đây được mình include vào 1 page, chẳng hạn google.com, nghĩa là khi bạn mở 1 tab và gõ google.com trên trình duyệt thì main.js sẽ được include vào thực hiện cùng với js của google.com. Trong khái niệm extension nó chính là content-script.

File background.js thì được thực hiện các tác vụ đặc thù của extension, 1 phần nó còn là các function trung gian để trao đổi dữ liệu giữa main.js và popup.

Kết quả:

Như vậy ở trên mình đã giới thiệu cách tạo 1 extension đơn giản trên chrome. Với những yêu cầu phức tạp hơn thì yêu cầu bạn phải tìm hiểu nghiên cứu thêm. Trong giới hạn 1 bài giới thiệu về technical thì mình không thể trình bày hết được. Nếu có bất cứ thắc mắc hay muốn nghiên cứu thêm các bạn có thể liên hệ với mình, mình có thể support phát triển các tiện ích trên các browser phổ biến hiện nay(Chrome, Firefox, IE, Edge, Opera). Mình có những bộ source, extension do mình phát triển, có thể share để cùng tìm hiểu thêm. Cảm ơn các bạn đã theo dõi bài viết. Good luck for you!


Bower là gì?

Khi lập trình một web application, bạn phải import các thư viện của javascript và css như Boostrap, AngularJS, JQuery…Bạn thường lên trang chủ của các thư viện này tải về các thư viện boostrap.min.css, angular.min.js, jquery.min.js rồi copy vào project của mình. Việc đó rất mất thời gian. Giờ đây với Bower bạn có thể dễ dàng để làm việc đó hơn. Vậy chúng ta cùng tìm hiểu Bower là gì nhé.

Bower là ứng dụng quản lý các gói (package) cho web được viết bởi Twitter( ví dụ có sẵn bootstrap, jquery…) , nó giúp chúng ta có thể quản lý và download các package cần thiết cho công việc thiết kế web một cách nhanh chóng hơn và giúp lập trình viên tiết kiệm rất nhiều thời gian.


Read More...

Bảo mật là một phần quan trọng trong quá trình phát triển phần mềm. Phần lớn các ứng dụng di động thao tác với thông tin người dùng qua một remote server. Mặc dù công nghệ bảo mật đã có sự phát triển vượt bậc trong thập kỷ qua, nhưng nó vẫn là một chủ để thu hút được nhiều tranh luận.

 

Là một developer không sớm thì muộn bạn cũng sẽ phải đối mặt với vấn đề lưu trữ những dữ liệu nhạy cảm của người dùng. Bài viết này nói về việc sử dụng Keychain để lưu trữ những dữ liệu nhạy cảm đó.


Read More...

Authentication luôn là chức năng quan trọng của bất kỳ hệ thống nào. Phương pháp auth đơn giản và hay được sử dụng trong các ứng dụng web đó là dựa trên cookie và lưu giữ state ở phía server(session, database...). Nhưng với các ứng dụng trên mobile và các ứng dụng web SPA(Single Page Application) thì cần có cơ chế auth tốt hơn, đặc biệt khi mà chúng ta phải thiết kế các stateless api thì server không thể đảm nhiệm việc lưu state phiên làm làm việc của user. Có 2 phương pháp tốt để giải quyết là OAuth 2.0 và JWT(JSON Web Token). Bài viết này đi vào tìm hiểu về JWT.


Read More...

1          Giới thiệu về Raspberry pi

1.1         Raspberry Pi là gì? và xuất xứ? Tại sao lại chọn Raspberry Pi?

1.1.1       Raspberry Pi là gì ?

  • Raspberry Pi ban đầu là một thẻ card được cắm trên bo mạch máy tính được phát triển bởi các nhà phát triển ở Anh. Sau đó Raspberry Pi đã được phát triển thành một bo mạch đơn có chức năng như một máy tính mini dùng để giảng dạy trong môn khoa học máy tính ở các trường trung học.
  • Raspberry Pi Foundation– là tổ chức phi lợi nhuận với tiêu chí xây dựng hệ thống mà nhiều người có thể sử dụng được trong những công việc tùy biến khác nhau.


Read More...

posted by Dương Quang Lộc on 2016-06-27 11:59

Unit Testing in PHP with PHPUnit

 

Testing là một trong những giai đoạn quang trọng trong vòng đời phát triển ứng dụng. Unit test không chỉ giúp giảm bớt căng thẳng trong quá trình phát triển mà còn làm việc duy trì code của bạn trở nên dễ dàng hơn, cho phép bạn thực hiện nhiều những thay đổi một cách tự do mà không hề suy nghĩ gì nhiều. 

PHPUnit là một 'programmer-oriented testing framework' dành riêng cho PHP.


Read More...

x1LVtu9KUstxJv7kJCr8lsIQeqACBvICGjqKyqubLnNc_cLEgeXIwp6P69qkgkf68awESYDm5S_2wBDKlKIYzQpR-k6NgNErdLJSHD9Ia9ZtYMlRmj25tihInSwCHn5eR-IIf6tf

Đã bao giờ bạn chán với việc liên tục F5 lại trang web trong lúc dev, hay làm thế nào để minify script, đơn giản hơn là chép resource vào cùng một nơi,... Với môi trường làm việc năng động, developer cần một công cụ giúp thực hiện các thao tác một cách tự động, nhanh chóng,...

Gulp là task runner giúp ta tối ưu các thao tác trong quá trình làm việc, ví dụ như live reload, complile, minify, check lỗi,...

Gulp hoạt động trên môi trường nodejs vì vậy tận dụng được nguồn plugin vô tận và mạnh mẻ. Các thao tác thông qua command-line nên gần gũi với dân IT và web developer.


Read More...

 Perfect là gì ?

perfect-logo.png

Perfect là một web-server và toolkit cho phép các nhà phát triển sử dụng ngôn ngữ lập trình Swift để xây dựng những ứng dụng và những REST service. Nó cho phép những developer có thể phát triển ứng dụng cả client-side và server-side trong cùng 1 workspace, cùng 1 ngôn ngữ lập trình Swift. Nó là một bộ khung hoàn hảo cho những kỹ thuật cloud và mobile.



 

Tại sao lại sử dụng Perfect?

- Hiện tại Swift đã được Open Source vì thế nó sẽ còn phát triển nhanh và mạnh, do đó Swift là ngôn ngữ của tương lai.

- Đa số những dân lập trình trên iOS chỉ biết về Objective-C hay Swift hoặc cả 2, vì thế nếu bạn muốn viết cho server-side thì bạn phải học thêm ngôn ngữ PHP hoặc Java để có thể viết cho server-side. Nếu bạn dùng thư viện Perfect thì bạn khỏi cần quan tâm đến việc học thêm ngôn ngữ khác cho công việc đó, bạn có thể dễ dàng debug cả bên client lẫn server đều được.

- Hiện tại Perfect cũng đang trong giai đoạn phát triển và đã có 1 phiên bản release là Perfect version 1.0. Code của thư viện Perfect cũng được open source trên GitHub, nếu các bạn muốn học thêm cách người ta viết library đó như thế nào thì cũng có thể tải về và đọc code.

- Swift và Perfect có thể chạy trên nền tảng Linux vì thế các bạn có thể viết để deploy trên Linux server. Hiện tại trên mạng cũng có nhiều hướng dẫn về việc này.


Read More...

posted by Nguyễn Văn Phong on 2016-05-15 15:42

Thực hiện CSS  border để có thể vẽ những hình cơ bản như hình tam giác (trái, phải, giữa, dưới) , hình vuông, hình thang, hình thoi và các hình đặc biệt khác...


Read More...

posted by Nguyễn Thành Tuấn on 2016-05-11 00:33

REACT NATIVE LÀ GÌ?

 

React Native là 1 framework Javascript được dùng để viết các ứng dụng native cho iOS và Android. Đây là thư viện dựa trên React, là 1 thư viện Javascript do Facebook hình thành để xây dựng các giao diện người dùng trên các trình duyệt web. Và React Native được dùng trong việc phát triển các ứng dụng có nền tảng điện thoại. Hay nói cách khác: các nhà phát triển website bây giờ có thể viết các ứng dụng mobile được dùng bằng ngôn ngữ Javascript, ngôn ngữ rất được ưa thích của web developer. Một điểm cộng nữa đó là hầu hết code được viết có thể được dùng cho nhiều nền tảng, cho cả iOS và Android. 

Ưu điểm

  1. Các ưu điểm trong phần giới thiệu trên.
  2. React Native được xây dựng trên React, mà React lại làm việc một cách độc lập với UI thread chính, vì thế các ứng dụng được viết có thể duy trì hiệu năng cao.
  3. Giả sử rằng bạn đang làm việc với React trên webweb thì bạn có thể viết các ứng dụng mobile bằng React Native với việc thực thi hiệu năng, debug,... bằng chính các công cụ dùng trên web.
  4. Vì React Native đơn thuần là Javascript vì vậy bạn không cần rebuild lại ứng dụng để thay đổi các hiệu ứng,... Thay vào đó bạn chỉ cần nhấn CommanCommand + R (trên Mac) để refresh lại ứng dụng. Việc này sẽ giúp tiết kiệm khối thời gian cho bạn đấy.
  5. Điều mà tôi biết cuối cùng cho hàng vạn các ưu điểm đó là bạn có thể sử dụng các text editor bạn thích cho Javascript. Bởi vì React Native không tập trung bạn làm việc với Xcode hoặc Android Studio quá nhiều. Cross-plaftorm mà.
  6. ...

Nhược điểm 

  1. Nhược điểm có vẻ lớn nhất của React Native đó là "sự trưởng thành". Tất cả các tài liệu chắc chắn rằng đang dần cải thiện và nâng cấp. Một số tính năng trên iOS và Android vẫn chưa được hỗ trợ. 
  2. ...
    Mặc dù vậy, bản thân tôi từng là 1 iOS developer nguyên thuỷ (sử dụng Objective-C) nhưng khi tìm hiểu về React Native tôi vô cùng thích thú và điều quan trọng là tôi tin tưởng vào Mark Zuckerberg, tin vào Facebook. Nếu vậy thì tiếp theo tối xin giới thiệu về cách làm việc với React Native như thế nào.

Read More...