Thứ Ba, 24 tháng 3, 2015

Top các Android app đáng chú ý tháng 2 - 2015

Opera Max - Data manager



Opera thì rất nổi tiếng với trình duyệt Opera Mini có chức năng nén dữ liệu truyền tải khi truy cập web, để giảm dung lượng data tiêu tốn khi duyệt web. Và tính năng hữu ích này, bây giờ được cung cấp bằng một app riêng biệt chính là Opera Max này.
Opera Max là apps miễn phí, có chức năng quản lý data, nhờ đó giúp bạn kéo dài được thời gian sử dụng gói data của bạn.
Bạn có thể theo dõi lưu lượng sử dụng hàng ngày; hạn chế các apps được sử dụng theo dung lượng, hoặc hạn chế cho các app chỉ được vào mạng qua WiFi thôi.
Tính năng hấp dẫn là nén dữ liệu của Opera Max, hoạt động với cả các dữ liệu là video, ảnh, file media, và hoạt động với hầy hết các apps cũng như websites khác nhau, mà bạn sẽ không nhận ra được sự thay đổi chất lượng do data đã bị nén. Với Opera Max, bạn sẽ hạn chế được việc sử dụng quá dữ liệu.

Các tính năng chính:

  • Data savings

    - Nén hầu hết các loại data tự động. Bạn không phải làm gì cả. Việc nén dữ liệu nhỏ lại này, cũng có nghĩa là bạn sẽ duyệt web được nhanh hơn, download nhanh hơn.
    - Tiết kiệm lưu lượng data sử dụng.

  • Xem được nhiều video hơn

    Đây là app đầu tiên có tính năng nén data video cho smartphone. Và nếu bạn có sở thích xem video online trên chiếc điện thoại của bạn, thì Opera Max là app nên cài đặt ngay và luôn. Hãy thử tưởng tượng, thay vì tốn 10MB như thường lệ, bạn sẽ chỉ tốn 3MB thôi. Điểm sung sướng đó là bạn vừa tiết kiệm được tiền, vừa giảm được thời gian ngồi chờ video buffer data về nữa. Việc này hoạt động cả trên các app xem video online, chứ không chỉ là trên trình duyệt.

  • Data Manager

    Cung cấp cho bạn công cụ quản lý đo đạc mức sử dụng data real-time, hàng ngày, hàng tháng. Bạn cũng thấy được app nào đang sử dụng bao nhiêu dung lượng data. Chặn các app không cần thiết không cho truy cập data qua mobile plan nữa.

  • Bảo mật và An toàn

    Opera Max sẽ không tác động đến các dữ liệu được gửi sử dụng các kết nối có mã hóa. Và Opera cũng sẽ không can thiệp vào các dữ liệu cá nhân như ảnh, video, hay emails, của bạn, do đó bạn có thể an tâm sử dụng.

  • Miễn phí

    Với Savings Pass, Opera Max miễn phí 100%, bạn chỉ cần trả bằng cách thỉnh thoảng xem một video quảng cáo, hoặc share thông tin về app, hoặc rate app này trên Google Play Store là đủ.

Thứ Tư, 4 tháng 3, 2015

Gaming - Lập trình game với Cocos2D-JS - Hello Game World

Sau khi đã chuẩn bị đầy đủ môi trường phát triển như đã làm trong bài Giới thiệu, bài viết này nhằm hướng dẫn bạn cách khởi đầu làm game với Cocos2d-JS, cũng như có cái nhìn đầu tiên về làm game với framework này.

Phương pháp học là, thông qua những project demo, ta sẽ tiếp cận dần dần từ dễ đến khó, và nhờ đó hiểu biết cùng kỹ năng cũng sẽ tăng theo.
Ở bài này, chúng ta sẽ làm những công việc sau:
  • Tạo một project mới để làm với Cocos2D-JS
  • Code game Hello World
  • Tham khảo


Source code cho toàn bộ các bài học trong series này có thể download ở GitHub.

Đây là hình ảnh của game sau khi đã hoàn thành:

Thứ Hai, 2 tháng 3, 2015

Gaming - Lập trình game với Cocos2D-JS - Giới thiệu

Cocos2D-JS là framework sản xuất game opensource, hoàn toàn miễn phí.
2014 là một năm có nhiều đổi thay lớn đến với Cocos2D-JS, bằng sự kết hợp của Cocos2d-html5 và Cocos2d-x JSB. Với nền tảng này, việc làm game support cross-platform, cross-browser, trở nên dễ dàng hơn nhiều lần. Đi kèm với đó là một hệ thống tools, APIs,... giúp cho việc "Code one, run anywhere" dễ dàng đạt đến. Cách viết game là consistent cho các nền tảng khác nhau, Mac OS X, Android, iOS, Windows,... và nhờ đó, bạn dễ dàng cung cấp phiên bản game của mình đến nhiều đối tượng hơn, tăng thêm các kênh phân phối game.


Với phiên bản 3.0, một số điểm quan trọng được hoàn thiện trong framework Cocos2D-JS gồm:
  • Dung nhập 2 engine game Cocos2d-html5 và native Cocos2d-x Javascript thành một bộ duy nhất là Cocos2D-JS, hỗ trợ đa nền tảng cross-platform, đa trình duyệt cross-browser
  • Cung cấp một quy trình làm việc thống nhất consistent workflow cho mọi nền tảng
  • Tiến một bước lớn trong việc cải thiện performance cho engine, cả về web lẫn native
  • Dựng sẵn hàng tá các tính năng mới, mà cần thiết ví dụ như là Facebook Integration, Assets Manager, Object Pool, JS to Objective-C/JAVA reflection, ...

Dưới đây là sơ đồ các thành phần kiến trúc được tích hợp trong Cocos2D-JS.


Requirement để làm được Cocos2D-JS

Để làm được cocos2d-js thì chuẩn bị cũng khá đơn giản, gồm:
  • IDE/Editor: Công cụ chính chủ là Cocos Code IDE. Ngoài ra, nếu bạn đã quen thuộc với các công cụ text editor khác thì bạn vẫn có thể tiếp tục dùng chúng nếu muốn.
  • Webserver: Để test project, bạn cần 1 webserver chạy trên máy của mình. Mình thường dùng XAMPP, các bạn cũng có thể dùng MAMP, WAMP,...
  • Browser: Ưu tiên test bằng Google Chrome và Safary trước.
  • Bộ cài đặt framework Cocos2D-JS download: http://www.cocos2d-x.org/download

Dựng môi trường để sẵn sàng working với Cocos2D-JS

Cocos2D Code Studio được tuỳ biến dựa trên bộ IDE Eclipse. Bạn download về và cài đặt như là đối với Eclipse, sau đó có thể sẵn sàng sử dụng bộ IDE này. Nếu bạn đang quen thuộc với các IDE hoặc tool text editor khác, bạn có thể tiếp tục sử dụng chúng theo sở thích mà không gặp phải khó khăn gì.
Cũng theo đường link trên, bạn cần down bộ framework về. Xả nén ra một nơi an toàn là được.

Gaming - Các khái niệm khởi đầu khi làm game

Hiện nay có nhiều framework hỗ trợ mạnh các developer trong việc sản xuất game theo ý thích của mình. Các gương mặt tiêu biểu có thể nhắc đến, có cộng đồng lớn như cocos2d-x (cocos2d series), Unity,...
Tuy nhiên, trước khi bắt tay vào làm game, bạn cũng nên nắm được một số khái niệm cũng như là thuật ngữ chuyên môn sử dụng trong sản xuất game.


Director - Đạo diễn
Việc làm game cũng giống như việc thực hiện một bộ film, chỉ khác một chút là khán giả cũng có thể thao tác trực tiếp để tạo nên câu chuyện chứ không chỉ đơn thuần là thưởng thức bằng cách xem như là film. Và để khởi đầu, bạn cũng tưởng tượng như bạn đang phải thực hiện một bộ film, và bạn chính là Executive Producer - Nhà điều hành sản xuất game. Bạn sẽ phải nói với Director - Đạo diễn về những gì cần làm cho game của mình.
Director - Đạo diễn sẽ điều khiển các Scene - Cảnh, việc thay cảnh này cảnh kia, chuyển đổi các Scenes.
Trong một game, Director thường là một singleton Object được shared dùng chung, bạn có thể gọi nó ở bất kỳ đâu trong code.


Scene
Tương tự như trên, Scene sẽ là nơi bạn tổ chức, phân bố các thành phần sẽ hiển thị trên màn hình: main menu, buttons, objectives,...
Các object hiển thị trên Scene theo một quy tắc hình cây như sau:

Các object sẽ được hiển thị lần lượt theo hình cây, theo hướng đường nét đứt. Từ trái qua phải, từ trên xuống dưới.
Bạn cũng cần hiểu thêm về z-index (z-order) là khái niệm có liên quan khi hiển thị các object. Z-order là chiều từ màn hình hướng về phía người chơi, ví dụ: background của game có z-index = 0, sau đó trên background có thể có nhà với z-index = 1, trên nhà lại có người ở bên ngoài có z-index = 2. Như vậy, khi người chơi nhìn vào màn hình sẽ thấy người đầy đủ, đằng sau người là nhà, và người không bị nhà che lấp đi.

Sprites
Sprite là các object graphics sẽ sử dụng để hiển thị việc move-di chuyển, trong game. Ví dụ như nhân vật chính với các hành động đi lại, đánh quái trong game của bạn.

Sprites Sheet
Sprites sheet là cách kết nối các sprite thành một file. Việc này giúp cho dung lượng của file tính về tổng là giảm đi so với việc để riêng rẽ từng file. Như vậy, cũng tương ứng với việc giảm được bộ nhớ phải sử dụng, thời gian tải object lên bộ nhớ. Ngoài ra còn tăng được tốc độ xử lý perfomance vì chỉ cần init một object graphics thôi. Việc làm này thường đã trở thành một chuẩn chung, thường gặp trong sản xuất game.


Nodes
So với Sprite, thì Node tương tự, nhưng nó là những object no-move, không cho phép bạn di chuyển chúng. Xem hình bên dưới đây để hiểu rõ hơn:


Trong hình đó, Sprites là các nhân vật, bạn có thể tap vào và drag để di chuyển. Còn các Nodes là Banners, tường gạch, bạn sẽ không di chuyển được.


Sequences và Spawns
Sequences là tập hợp các Actions chạy theo một thứ tự cố định được chỉ sẵn. Ví dụ, hành động mây bay trên trời ở nền của cảnh game thường được điều khiển tự động bằng sequence.
Khi mà nhiều sequences cùng chạy một lúc thì gọi là Spawn. Ví dụ, khi nhân vật được thăng cấp, có thể có các hiệu ứng cùng xảy ra một lúc vào thời điểm đó.

Parent Child Relationship - Quan hệ Cha Con
Các thay đổi được gán cho parent node, sẽ được apply vào children node của node đó, tương ứng ngay.


Thứ Năm, 26 tháng 2, 2015

Ruby ngừng hỗ trợ bản 1.9, hãy nâng cấp hệ thống của bạn lên 2.x

Theo thông báo mới nhất từ homepage của Ruby thì thời hạn support bản 1.9.3 đã kết thúc.

Kế hoạch ngừng hỗ trợ này đã được thông báo 1 năm trước.

Việc fix bug hoặc các vấn đề về bảo mật của bản 1.9.3 trở về trước sẽ ngừng hoàn toàn.


Do đó, nếu trước kia vì lý do gì đó bạn chưa nâng cấp lên Ruby v2 thì hiện tại khuyến cáo bạn nên làm càng sớm càng tốt.

Nếu bạn có một lý do nào đó mà KHÔNG THỂ bỏ được bản 1.9.3 thì có thể liên lạc lại để được hỗ trợ thêm.

Chi tiết cụ thể xem ở trang tin của Ruby.

Đồng thời với việc trên, có tin tốt là phiên bản Ruby 2.0.0-p643 mới cũng đã được phát hành vào ngày 25/2/2015 vừa qua.

Phiên bản Ruby này không phải là mới nhất (hiện mới nhất là Ruby 2.2.0), mà là bản fix cuối lớn cho Ruby v2.0.0.

Trong vòng 1 năm tới thì bản Ruby 2.0.0 cũng sẽ bị ngừng hỗ trợ.

Do đó, càng sớm nắm bắt các bản Ruby mới thì càng tốt.

Thứ Bảy, 14 tháng 2, 2015

Apple đang promote app không có In-App-Purchases (IAP) ở trang chủ

Lâu nay bạn đã quen với việc chơi game Freemium - miễn phí chơi thoải mái. Nhưng nếu bạn muốn trở nên khoẻ hơn trong game (get well) thì bạn sẽ phải bỏ tiền ra mua vật phẩm. Điển hình như là các game đình đám như Clash Of Clan (COC), BoomBeach, Temple Run, ..., hoặc các game có nguồn gốc từ Trung Quốc, game kiếm hiệp bạn sẽ hiểu rõ điều này.
Các game của châu Âu hoặc Mỹ còn đỡ, bạn vẫn có thể sống khoẻ nếu không bỏ tiền mua, bạn vẫn có cơ hội để trải nghiệm toàn bộ game. Riêng game Trung Quốc, bạn không bỏ tiền nghĩa là bạn không là khách hàng của game, bạn chẳng có benefit gì cả.

Điều này thực là cay đắng khi bạn trót chơi một thời gian rồi, và bạn nhận ra rằng mình sẵn sàng phải chi tiền ra nếu muốn nhân vật, hoặc cuộc chơi trở nên vui hơn. Và Apple cũng cho rằng, thật là khó chịu nếu đã trót chơi mà lại phải bỏ thêm tiền. Do đó, họ đang có một chiến dịch quảng bá những app không có In-App-Purchases Mua bán trong App, ngay trên trang chủ của App Store.


Hiện tại, khu vực quảng bá apps này mới được mở ở UK, và Apple gọi nó là "PAY ONCE & PLAY" (Thanh toán một lần và Chơi) . Sắp tới, chức năng này cũng sẽ được mở ở US store như là một phần trong kế hoạch làm mới App Store hằng tuần.



Khu vực Pay Once & Play này đang hiển thị những app, được gọi là "great games" (những game tuyệt vời nhất), mà không hề yêu cầu người dùng phải bỏ thêm một đồng nào để mua bán qua IAP nữa.
Khu vực quảng bá Pay Once & Play này được tổ chức thành các mục gồm: Recent Releases (Mới Phát hành), Blockbuster Games (Game bom tấn), và App Store Originals (App Store Nguyên bản). Các game bao gồm nhiều thể loại của các lập trình viên, và được xếp hạng dựa vào tính phổ biến.

Trong nhiều năm qua, mặc dù phát minh ra IAP, nhưng cũng chính Apple phải chịu rất nhiều phàn nàn, và điều tra về những game có tính năng này. Làm sao họ có thể quảng cáo một game miễn phí download, nhưng những tính năng chính cũng như gameplay lại bị ẩn đằng sau In-App Purchases. Apple đã cố gắng thực hiện nhiều thay đổi về việc hiển thị các game freemium này trên App Store, như là thêm nhãn IAP báo trước cho người dùng khi download; rồi thay đổi nút download của các game có IAP từ "Free" (Miễn phí) thành "Get" (Tải về).

Đây vẫn chưa rõ là một section (khu vực mới) sẽ được đều đặn cập nhật, hoặc là trở thành một phần đặt cố định trên trang chủ của App Store hay không, nhưng nó cũng là một dấu hiệu thú vị trong việc quảng bá các game có trải nghiệm chất lượng cao không theo xu hướng freemium hiện nay.

Điều này chắc chắn sẽ được welcome. Tôi còn nhớ, tôi đã từng say mê trò Diablo 2, hay trò Đế chế, GTA Vice City, hay Hero 3 như thế nào. Tôi chơi các game đó qua hàng năm, trải nghiệm mọi ngõ ngách, khám phá mọi điều tuyệt vời trong game mà không phải lo nghĩ đến chuyện bỏ tiền ra để trả cho những vật phẩm mà mình rất thích trong game.

Thứ Sáu, 13 tháng 2, 2015

Các công ty tuyển dụng cần gì ở lập trình viên PHP?

Để tuyển dụng được một lập trình viên tốt, thì nhà tuyển dụng thường đặt khá nhiều kỳ vọng vào các kỹ năng mà lập trình viên đã tự trang bị được cho mình, chẳng hạn như: làm việc nhóm, độc lập, tư duy tốt, tự tìm tòi và học hỏi, nghiên cứu nhanh,...
Trong bài này, chỉ bàn riêng về chuyên môn trong lĩnh vực PHP, các nhà tuyển dụng cần gì ở một lập trình viên? Bạn đã chuẩn bị được những kỹ năng gì để đi xin việc làm một lập trình viên PHP.


Những kỹ năng bắt buộc

Những kỹ năng dưới đây là bắt buộc khi bạn làm một lập trình viên PHP.

Bắt buộc 1: Nắm chắc kiến thức cơ bản về lập trình web với HTML, CSS (và cả JS thì là tốt nhất)

PHP là để lập trình web, mà HTML+CSS(+JS) là bộ cơ sở đi với nhau, và do đó, bạn muốn làm web mà không biết HTML+CSS thì chắc chắn là không thể được. Thực tế, với HTML+CSS bạn không cần phải biết tường tận mọi ngõ ngách, không cần phải siêu đẳng, thế nhưng những thứ thường gặp bạn cần phải nắm rõ.
Ví dụ:
- Với HTML bạn cần hiểu biết trong đầu về thẻ là gì, các thẻ thường làm có meta, div, các thẻ h, span, p, a, form, ...
- Với CSS bạn cần hiểu biết về: border, padding, margin, float, overflow, z-index, background, color, :hover,...
- Với JS: bạn có thể làm chưa quen, nhưng bạn cũng cần phải đọc được các câu lệnh JS đơn giản để: show/hide element, get/change/remove css class,...

Những thứ trên là các kiến thức rất cơ bản, nếu bạn không nắm chắc, hãy kiếm những quyển sách rất đơn giản và học lại, làm theo những bước trong sách hướng dẫn, thử thay đổi các tham số để hiểu rõ hơn về việc mình thực hành.

Nhấn mạnh lại một điều nữa để bạn hiểu rõ, Không nắm được HTML+CSS, đừng nghĩ đến chuyện làm WEB, và cũng đừng nghĩ đến chuyện làm PHP.


Bắt buộc 2: Về ngôn ngữ PHP

Bạn làm về PHP, rõ ràng bạn phải hiểu được cơ bản về nó. Cách bạn đặt biến như nào, đặt hàm như nào, làm thế nào để gọi,... rồi những vấn đề cơ bản như: hiển thị một chuỗi lên HTML bằng PHP như thế nào, PHP kết nối đến DB như là MySQL ra làm sao,... Bạn có thể quên quên nhớ nhớ, nhưng khi đưa code có sẵn ra bạn phải đọc được và hiểu được, rồi mới tính đến chuyện tự tay code được. Bạn đọc hiểu code có sẵn không được thì làm sao mà code được.

Những kỹ năng cạnh tranh, làm lợi thế

Nếu bạn tu luyện được một trong các kỹ năng dưới đây, ngoài việc tăng khả năng kiếm được một công việc như ý về PHP, bạn còn có lợi thế nhất định khi đàm phán lương bổng.

Thành thạo một, hoặc nhiều thì càng tốt, các PHP framework

Với cộng đồng PHP lớn mạnh, cũng như vị trí của bộ sậu PHP-MySQL trong thế giới web, thì việc mà có vô số các sản phẩm opensource, hoặc có phí là điều dễ hiểu. Tương tự đó, rất ít các công ty phát triển web làm từ đầu sản phẩm của mình, mà thường dựa vào một nền tảng framework nào đó để tuỳ biến. Nhất là các công ty ở Việt Nam, có rất ít công ty bỏ tiền ra đầu tư làm từ đầu sản phẩm của mình. Do đó, bạn nắm được nhiều framework thì bạn lại càng có nhiều lợi thế hơn khi xin việc cũng như khi đàm phán lương bổng.

Các framework đáng chú mà các bạn cần bỏ thời gian nghiên cứu, làm thử gồm:
- Về CMS: Wordpress, Joomla, CakePHP, Yii, Laravel, ...
- Về eCommercer: Magento, OpenCart, Shopify,...
- Ngoài ra, còn có một số khác, mặc dù ít gặp ở VN nhưng không phải là không cần: CRM như Sugar hoặc Tiger,...

Thành thạo làm Responsive



Với thời điểm bùng nổ smartphone, tablet iOS, Android như hiện tại, việc có thêm kỹ năng làm web Responsive là cực kỳ quan trọng. Các website lớn, hoặc chuyên nghiệp sẽ yêu cầu điều này. Việc học cách để làm responsive này cũng không tốn nhiều thời gian, vì cũng như PHP, hiện có rất nhiều framework giúp cho các bạn về việc này. Và do đó, tôi recommend, hoặc xúi các bạn cũng có thể nói là vậy, nên học thêm Bootstrap, sau đó là Foundation framework. Ngoài ra cũng nên dành thời gian tìm hiểu thêm việc ứng dụng HTML5, các hiệu ứng CSS mới,...

Thành thạo các Javascript framework, tối đặc biệt JQuery

Tương tự với các quan điểm trên, bạn cũng nên nắm được vững cách sử dụng JQuery. Tài liệu hướng dẫn rõ ràng dễ hiểu, các biện pháp giải quyết khó khăn bằng JQuery nhiều vô kể. Và cũng có vô số người sẵn sàng giúp bạn trên StackOverflow.


Một số kỹ năng, hoặc hiểu biết khác

Ngoài những điểm đề cập trên, thật tuyệt vời nếu nhà tuyển dụng cũng biết được bạn thành thạo, hoặc đã từng làm, hoặc có hiểu biết, hoặc thậm chí là có nghe nói đến một số các thứ sau đây:
- Kỹ thuật về AJAX với JQuery.
- JSON
- Restful Webservices
- Tương tác với web API, request header, response header
- AngularJS
- Thành thạo các tool như Sublime Text, Notepad++, IntelliJ IDEA,...
- Cách deploy một web PHP lên hosting bằng FTP, CPanel,...


Bạn cũng nên theo dõi blog này thường xuyên, tôi sẽ post các bài hướng dẫn lập trình từ cơ bản đến phức tạp trên một số lĩnh vực như web, android, ios...


Thứ Tư, 11 tháng 2, 2015

Samsung Galaxy S6 sẽ có màn hình cong ở cạnh bên, theo Bloomberg

Theo một báo cáo từ Bloomberg, Samsung cho rằng việc trang bị một màn hình cong, giống như Galaxy Note Edge đã làm (hình minh hoạ bên dưới), là cách để chiếc siêu phẩm flagship smart phone Galaxy S6 sắp ra mắt chiến đấu với những chiếc smartphone phẳng. Và, cũng theo báo cáo đó thì công ty Hàn Quốc sẽ ra mắt chiếc Galaxy S6 màn hình 5.1-inch, với việc cong xuống ở cả 2 bên cạnh màn hình chứ không phải chỉ một cạnh như Note Edge.
Ngoài ra, cũng có thể một thiết bị tương tự như Galaxy S6 với 5.1-inch màn hình phẳng như các bản cũ cũng được sản xuất. Hiện tại chưa có thêm thông tin cụ thể nào về các thiết bị đó, tuy nhiên ở hội nghị Mobile World Congress sắp diễn ra vào ngày 1 tháng 3 tới đây tại Barcelona, mọi bí mật sẽ được Samsung bật mí.



Theo bước chân của Galaxy Note 4, khung sườn của những chiếc Galaxy S6 sẽ được làm bằng thép. Thêm vào đó, Samsung đã từ bỏ việc trang bị con chip vi xử lý Qualcomm Snapdragon 810 (do vấn đề của dòng chip này, mặc dù các vấn đề đó đã được sửa fix), và trang bị con chip cao cấp model Exynos 7420 (Samsung cũng đã build một vài con chip A8 cho các thiết bị Apple iPhone). Samsung đã chiến đấu với Apple để giành giật thị phần smartphone, và kể cả chiến đấu lại những công ty đang nổi từ Trung Quốc như Xiaomi, và Lenovo (cho những chiế Zenfone).

Thiếp mời tham gia sự kiện "What's Next" (Điều gì tiếp theo?) ngày 1 tháng 3 tới đây ở Barcelona đã được gửi đi, nhấn mạnh đến một thiết kế có màn hình cong ở góc. Chúng ta đã thấy những thiết kế concept cho thiết bị đa màn hình, dựa trên Note Edge đã làm. Có vẻ rất đẹp, nhưng vẫn thiếu một chút gì đó tiện ích để khiến cho chiếc phone đó trở nên đắt đỏ hơn so với một chiếc Note bình thường.
Sẽ thật thú vị nếu Samsung có thể cung cấp những tính năng mới nữa, và cũng hy vọng giá cả sẽ giảm xuống, đến dòng điện thoại đầu bảng Galaxy model.

Copy.com - Dịch vụ lưu trữ trên mây cloud miễn phí, có 20GB ngay hôm nay

Copy là dịch vụ lưu trữ trên mây (Cloud Storage Service) cung cấp cho bạn miễn phí 15GB lưu trữ. Và nếu bạn bấm vào link này (https://copy.com?r=AojzKC) để đăng ký; sau đó bạn login account vừa đăng ký trên vào apps Copy trên PC (cách làm này giống như với Dropbox đang thực hiện, nên nếu bạn quen với Dropbox thì điều này không có gì khó khăn cản trở bạn được), bạn sẽ được thêm 5BG bonus thưởng thêm nữa, tổng sẽ là 20Gb.



Copy là dịch vụ mới đáng để thử, bên cạnh các dịch vụ quen thuộc như: Google Drive, Dropbox, OneDrive,...
Cũng giống như các dịch vụ khác, Copy hỗ trợ bạn sync tự động các files giữa PC-Mobile-Cloud thông qua apps được cung cấp sẵn theo từng nền tảng. Và các file của bạn cũng có thể được đánh dấu phiên bản, bạn có thể lấy lại phiên bản cũ hơn của file lúc nào cũng được.

Vậy so với Google Drive, Dropbox,... thì Copy có thêm những điểm gì xứng đáng để bạn phải thử nó. Hãy xem các thông tin dưới đây:

Pros - Ưu điểm


  • Dung lượng 15GB là khá lớn so với các dịch vụ miễn phí hiện nay
  • Nhiều user cho một tài khoản, bạn có thể gán tới 5 người dùng cho một tài khoản
  • Chia nhỏ phí lưu trữ với các thư mục chia sẻ shared folders
  • Các tính năng Đồng bộ, Chia sẻ, Sao lưu, Khôi phục hoạt động rất mượt mà, dễ sử dụng
  • Hỗ trợ đa nềng tảng: Windows, Mac OS X, Linux, Mobiles smartphone Android hoặc iOS


Cons - Nhược điểm

  • Giao diện ứng dụng web đang còn lỗi, về tương lai chắc điều này sẽ được khắc phục dần
  • Hiện tại chưa hỗ trợ việc mã hoá file bằng key riêng của mình, mà làm tự động.



  • The Bottom Line - Điểm mấu chốt

    Với 15GB miễn phí lưu trữ, hỗ trợ đa người dùng, Copy là một giải phát tuyệt vời làm phương án backup thay thế cho Google Drive.

    Copy Plans and Pricing - Gói dịch vụ và phí

    Mặc dù miễn phí 15GB hỗ trợ 5 người dùng với đầy đủ tính năng, hiện tại bạn còn có thể được hưởng thêm 5GB thưởng nữa nếu dùng link cung cấp này để đăng ký: https://copy.com?r=AojzKC.

    Với gói dịch vụ 250GB bạn tốn $9.99/tháng (hoặc mua cả năm là $99).
    Với gói dịch vụ 500GB, bạn tốn $14.99/tháng (hoặc $149 / năm).

    Copy cũng hỗ trợ các gói dành cho doanh nghiệp, với giá rẻ hơn Dropbox, và Box. Khởi điểm là $79/tháng cho 10 người dùng, và có gói $239/tháng cho 30 người dùng. Copy cũng có cả gói tuỳ chọn, theo số lượng người dùng nữa.

    Bắt đầu sử dụng Copy


    Với Copy trên web, bạn có thể upload files, thư mục lên account của mình. Chỉ cần nhấn vào nút upload, chọn đối tượng upload, file của bạn sẽ được tải lên.

    Tôi thấy là tốc độ chuyển dữ liệu cho upload và download khá là ấn tượng.
    Ngoài ra, giao diện quản lý nền web cũng khá là sáng sủa.

    Hình ảnh giao diện nền web:


    Ứng dụng Copy trên desktop PC


    Ứng dụng Copy cho desktop PC có các phiên bản dành cho Windows, Mac, Linux (bao gồm cả Raspberry Pi). Về cơ bản, ứng dũng sẽ tạo một thư mục Copy ở trong thư mục Home của bạn. Thư mục Copy này bạn có thể thay đổi sang vị trí khác nếu muốn. Các file bạn đưa vào thư mục này, sẽ được tự động sync lên máy chủ Copy, và từ đó, những thiết bị hoặc desktop khác cũng cài app Copy có thể truy cập được vào những file này.
    Ngược lại, các file được lưu trữ sẵn trên máy chủ Copy, sẽ được tự động tải về máy của bạn.

    Bạn có thể lựa chọn loại bỏ những thư mục không muốn sync tự động. Bạn cũng có thể tuỳ chỉnh được băng thông upload, download, gán proxy, và thậm chí là share thư mục qua LAN mà không cần phải kết nối với Internet. Ngoài ra, tính năng "undelete" sẽ giúp bạn lấy lại những file, folder đã bị xoá nhầm, nằm trong thùng rác.

    Mobile Apps - Ứng dụng cho Mobile


    Copy cũng có ứng dụng di động dành cho Android, iOS, và Windows Phone.
    Với các app này bạn cũng làm được những việc rất là cần thiết và hữu ích như:
    • Upload file từ điện thoại lên máy chủ Copy
    • Xem các phiên bản của files
    • Lựa chọn chỉ cho sync thông qua WiFi để tránh bị tính thêm phí data qua 3G
    • Đặt passcode mật khẩu cho app để tăng bảo mật
    • Chia sẻ các thư mục, quản lý các chia sẻ
    • Tự động sao lưu ảnh chụp bằng điện thoại lên máy chủ Copy
    • Phát các file media đến Chromecast TV
    Tính năng hấp dẫn là xem, hoặc khôi phục các phiên bản của file. Không chỉ là trên nền web, ngay trong app bạn cũng có thể làm được điều này.


    Đánh dấu phiên bản File Versioning

    Copy đóng vai trò là dịch vụ backup rất tốt. Bạn có thể lấy lại phiên bản cũ hơn của file bằng Web, bằng mobile app, hoặc bằng cả desktop app (nhấn chuột phải vào file đó). Đồng thời file bị xoá sẽ chỉ thực sự xoá khỏi server sau 30 ngày, do đó bạn có nhỡ xoá phải file quan trọng thì vẫn có cơ hội để bạn có thể khôi phục lại.

    Fair Storage - Tính năng chia sẻ chi phí cho các thư mục share

    Các file và thư mục shared thay vì bị tính cùng một dung lượng với mỗi account được share, Copy sẽ chia việc sử dụng cho mỗi người dùng. Do đó, với 10GB folder được chia sẻ cho 5 người, bạn thực tế sẽ chỉ bị tính là mới dùng 2GB dung lượng, thay vì bị tính 10GB dung lượng như các dịch vụ khác. Copy gọi đây là "Fair Storage"

    Chia sẻ files

    Chia sẻ nội dung của folder bằng Copy thì rất là đơn giản và hiệu quả. Bạn chỉ cần nhấn chuột phải vào file hoặc folder, chọn Share. Một đường link sẽ được tạo, và bạn có thể gửi đường link này qua email, qua mạng xã hội (Facebook, Twitter, Google+) thông qua nút chia sẻ.

    Copy có 2 kiểu chia sẻ là: Đơn giản và Bảo mật.
    Chia sẻ Đơn giản là: nếu người nào có link thì đều có thể truy cập được.
    Chia sẻ Bảo mật: người được truy cập phải được mời, "invitation only", và người được mời qua email phải xác thực trước khi có thể truy cập. Tính năng này, còn cho phép đổi quyền cụ thể cho mỗi người được chia sẻ. Các quyền gồm: Có thể Sửa Edit & Sync, chỉ Xem, và có thể quản lý Can Manage.

    Speed Tốc độ hoạt động

    Tốc độ hoạt động khá là tốt trong bài test của tôi. Một số khách hàng của tôi từ Châu Âu như UK, cũng bắt đầu chia sẻ tài liệu với chúng tôi qua dịch vụ Copy này. Tôi có thể upload file lên với max băng thông upload. Tốc độ download cũng khá tốt.

    Security Bảo mật

    Copy sẽ tự động mã hoá file sử dụng phương pháp 256-bit AES encryption, cả quá trình upload cũng được mã hoá, và file lưu trên server cũng được mã hoá. Các file được lưu trên mạng máy chủ của Barracuda Networks, không phải trên một dịch vụ của bên thứ 3 nào khác, not on 3rd party servers.
    Bởi vì tính bảo mật cao, bạn sẽ không được cung cấp lựa chọn là sử dụng key mã hoá cá nhân của mình (personal encryption key). Bạn có thể thấy nó không phù hợp để lưu trữ các dữ liệu tối mật của mình nếu không được sử dụng personal encryption key của mình.

    Tổng kết những điểm được ưa thích

    • 15GB miễn phí (bây giờ đang được hưởng 20GB rồi :) ) thì hoàn toàn đủ cho nhu cầu sao lưu, lưu trữ và chia sẻ
    • Các file upload, download nhanh, chia sẻ dễ dàng
    • Tuyệt vời cho việc chia sẻ ảnh

    Điểm mà không thích

    Các điểm trừ dưới đây là điểm làm tôi cảm thấy bớt thích Copy đi một chút.

    Giao diện web đang còn lỗi, điều này có thể sẽ được sửa chữa về sau, nhưng hiện tại đang là điểm khó chịu.
    Không hỗ trợ khoá mã hoá cá nhân "personal encryption", nên mặc dù được mã hoá, các file của bạn không thể đảm bảo được tiêu chí là "File của bạn chỉ được thấy bởi những người bạn cho phép". Bạn phải đặt niềm tin vào khả năng bảo vệ dữ liệu của Copy, giống như bạn đặt niềm tin vào Dropbox, hoặc các dịch vụ khác tương tự.

    Ai nên dùng Copy?

    Nếu bạn đang tìm kiếm một dịch vụ lưu trữ trên mây miễn phí, với các tính năng tuyệt hảo, đôi khi để thay thế cho Google Driver (GD không hỗ trợ Linux) thì bạn sẽ rất thích Copy.

    Copy cũng rất tuyệt dành cho doanh nghiệp, bởi vì ngay với gói miễn phí, Copy cũng hỗ trợ tới 5 người dùng cho mỗi account.



    Hãy sử dụng ngay link này https://copy.com?r=AojzKC để đăng ký, bạn có 20GB miễn phí chứ không ít đâu :).

Thứ Ba, 10 tháng 2, 2015

AngularJS Tutorial - Bài 1: Giới thiệu

Angular là một MVW Javascript framework rất hấp dẫn để xây dựng nên những ứng dụng web. Angular được xây dựng, phát triển bởi Google, và nó cung cấp những tính năng rất hiện đại cho việc xây dựng web. MVW là viết tắt của Model-View-Whatever, bạn có thể thấy rằng tham vọng cũng như những gì nó mang lại là rất lớn, và nó sẽ hỗ trợ chúng ta một cách mềm dẻo flexible để phát triển mọi thể loại ứng dụng. Trong MVW, chữ W có thể được thay thế để bạn có thể đi theo các hướng MVC (Model-View-Controller) hoặc MVVM (Model-View-ViewModel), do đó bạn có thể thấy được sự quen thuộc nhất định khi bắt tay vào tìm hiểu và sử dụng Angular.

Bài này là một trong series các bài viết:


Trước khi biết về Angular JS, bạn sẽ không thể ngờ rằng HTML còn có thể trở nên "ĐỘNG" và tiện dụng đến như vậy. Bạn thử tưởng tượng rằng, web của bạn sẽ kết nối với server API, lấy về result dưới dạng JSON, Angular JS sẽ đóng vai trò data-driven để biến JSON đó thành những Models. Bạn có thể nhanh chóng update lên HTML content mà không cần phải refresh lại trang,...


Angular thì miễn phí và open-source do đó bạn có thể thoải mái sử dụng và tuỳ biến theo ý thích của mình.

Dưới đây là một sơ đồ mà tôi vẫn hay sử dụng khi làm việc với AngularJS:




Angular thích hợp sử dụng nhất cho những ứng dụng có 1 trang SPA - Single Page Application.
Thông qua các bài tutorial này, bạn sẽ lần lượt làm quen với những tính năng nổi trội mà Angular JS mang lại.

Đối tượng hướng đến

Các bài trong series này hướng đến những người đã có ít nhiều kinh nghiệm lập trình web, làm việc với Javascript.
Do đó, bạn cần tham khảo phần các yêu cầu chuẩn bị trước khi theo dõi các bài tutorial này.

Điều kiện để học Angular JS

Để làm quen và sử dụng Angular, bạn phải có những kiến thức, hiểu biết cơ bản về những môn sau:
Ngoài ra, bạn có thêm được các kiến thức công nghệ về JQuery, HTML5, AJAX, JSON, Restful Webservices,... thì lại càng lợi thế hơn khi học Angular.


Các tính năng Cơ bản của Angular JS


Nhìn tổng quát ở sơ đồ trên, ta có thể thấy được những tính năng chính do Angular JS cung cấp gồm có:
  • Data-binding Sự gắn kết data lưu trong model với view

    Angular có khả năng tự động đồng bộ hoá data giữa Model và View. Data được thay đổi trên View (thông qua input field) sẽ ngay lập tức được cập nhật vào Model javascript object. Ngược lại, javascript object khi có thay đổi, có thể là từ JSON phía server API trả về, sẽ được tự động cập nhật hiển thị lên HTML view ngay mà bạn không cần phải can thiệp vào. Đây chắc chắn là thế mạnh mà bạn sẽ cực kỳ thích thú.
  • Scope

    Scope có thể hiểu là những objects model ở tầng application (chú ý, nó không chỉ là Model để lưu các giá trị thuộc tính của object trong OOP, mà nó còn lưu cả các cài đặt cho application ở thời điểm hiện tại nữa). Và chúng sẽ đóng vai trò kết nối giữa controller với view. Chẳng hạn, bạn sẽ gán action cho button đến một hàm trong scope.
  • Controller

    Controller trong Angular JS sẽ chứa các javascript method, và giới hạn trong một scope cụ thể.
  • Services

    AngularJS cung cấp một vài services sẵn, ví dụ như $http để thực hiện một lời gọi AJAX (XMLHttpRequest) đến server API. Những services này là những object duy nhất, dùng chung trong toàn app, và nó chỉ được khởi tạo một lần. Bạn sẽ có thể sẵn sàng sử dụng các object này ngay bất cứ lúc nào, và Angular framework sẽ quản lý những object này giúp bạn.
  • Filters - Các bộ lọc

    Bạn sẽ sử dụng các bộ lọc này để lọc ra được những item từ một arrays nào đó.
  • Directives - Điều hướng

    Các điều hướng là những đánh dấu (markers) trên các thành phần DOM. Nó có thể là bản thân cả element, thuộc tính, css,... để giúp bạn thao tác với element đó. Directives cũng có thể được sử dụng để tạo ra những thẻ HTML tuỳ biến, các widgets. AngularJS cung cấp sẵn một số directive thường dùng, mà sau này bạn sẽ quen thuộc, ví dụ như ngBind, ngModel, ...
  • Templates - Mẫu giao diện

    Template sẽ những view hiển thị các thông tin từ model do controller chỉ thị. Nó có thể là một file (ví dụ index.html), có thể là nhiều view như là những thành phần con (partials) để ghép lại thành một màn hình.
  • Routing - chuyển hướng trang web

    Nếu bạn đã từng làm việc với các framework MVC, bạn sẽ hiểu khái niệm này. Routing sẽ giúp bạn chỉ định view nào sẽ hiển thị, nếu người dùng truy cập vào URL có patterns như thế nào. Nghĩa là nó sẽ thay đổi views hiển thị tương ứng với ngữ cảnh.
  • MVW - Model View Whatever

    MVW là một design pattern mà chia một ứng dụng thành các phần Model, View, và thường là Controller tương tự là MVC truyền thống. Mỗi phần sẽ có khả năng và vai trog đáp ứng riêng. So với MVC truyền thống, MVW còn pha trộn thêm MVVW (Model-View-ViewModel). Và cái tên MVW Model View Whatever là do Angular JS team đặt ra.
  • Deep Linking - Liên kết sâu

    Deep linking liên kết sâu cho phép ta mã hoá tình trạng của ứng dụng vào URL, và ta có thể bookmark lại được. Sau đó, ứng dụng có được dựng lại hoàn toàn trạng thái của nó sau này khi ta access vào URL đó.
  • Dependency Injection

    AngularJS có sẵn một hệ thống injection để developers có thể dễ dàng tạo, hiểu, và kiểm tra ứng dụng.



Ưu điểm của AngularJS

  • Với concept ý tưởng, cũng như những thành phần có sẵn mà Angular cung cấp, ta có thể thấy là những ứng dụng SPA Single Page Application - Ứng dụng một trang, sẽ rất thực hiện một các rõ ràng clean, và dễ cho bảo trì code.
  • Với việc mà binding được data vào HTML DOM, nó rất nhanh update data qua lại giữa view và model.
  • Code viết với AngularJS rất dễ test.
  • AngularJS sử dụng injection để bạn ngăn cách và hiểu một cách tách bạch được những thứ liên quan đến nhau.
  • Có thể viết theo hướng tái sử dụng.
  • Với AngularJS, các lập trình viên developers sẽ chỉ cần code ít hơn cho những tính năng lớn.
  • Trong AngularJS, các views là những trang HTML code thuần; các Controller thì được viết bằng javascript để thực hiện các nghiệp vụ business.
  • Và điều quan trọng nhất, ứng dụng viết bằng AngularJS sẽ chạy trên hầu hết các trình duyệt hiện nay, bao gồm cả các trình duyệt trên smart phones, tablets máy tính bảng, đương nhiên là bao gồm cả iOS và Android :)

Nhược điểm của AngularJS

Mặc dù có nhiều lợi ích khi sử dụng AngularJS, tuy nhiên không có gì là hoàn hảo, bạn cũng cần xem xét một số nhược điểm của Angular để có kế hoạch cho mình khi develop app bằng AngularJS. Điều may mắn là những nhược điểm này có thể khắc phục hoặc hạn chế được, đủ để ta yên tâm coding app bằng AngularJS.
  • Không an toàn: Vì nó là nền tảng dựa trên javascript, có nghĩa là nó chạy phía client. Điều này đồng nghĩa với việc người dùng có hiểu biết về coding, có mục đích mờ ám, thì họ có thể sửa đổi code phía client trước khi submit lên server. Do đó, một số các tác vụ quan trọng, bạn nên thực hiện phía server, ví dụ: Authenticate và Authorization (xác thực và kiểm tra quyền của người dùng); thực hiện validation với những data được submit lên API trước khi save hoặc thao tác với data do người dùng submit lên đó. Do đó cách tốt nhất là dùng AngularJS để query vào các WebService API, không nên save trực tiếp data vào database mà không check.
  • Nếu người dùng ứng dụng, bật chức năng chặn Javascript, bạn sẽ không thể làm gì được, webpage sẽ chỉ hiển thị được những thông tin cơ bản, và đương nhiên là các thao tác business sẽ không hoạt động. Tuy nhiên điều này có lẽ ít xảy ra, nhưng bạn cũng cần consider chuyện này.





Tài liệu tham khảo

Bạn có thể tham khảo các ví dụ, cũng như hướng dẫn từ trang chủ Angular JS.