Plugin upload hình cá»§a forum nodejs.vn là gi váºy má»i ngưá»i Æ¡i
mình Äang tìm hiá»u Keystone. cấu trúc có vẻ khá hay. thằng nà y dá»±a trên Express và MongoDB. Má»i tìm hiá»u nên cÅ©ng ko có nhiá»u Äá» chia sẻ
@vunhattruong Bạn nháºn Äá» tà i như thế nà o thì tìm hiá»u vá» các vấn Äá» Äó thôi. Android - Nodejs và MongoDB. Còn chi tiết cụ thá» thì bạn phải là m nó, thá»±c hiá»n nó, mắc á» Äâu má»i ngưá»i sẽ cùng giúp Äỡ.
MSBUILD : error MSB3428: Could not load the Visual C++ component "VCBuild.exe".
To fix this, 1) install the .NET Framework 2.0 SDK, 2) install Microsoft Visua
l Studio 2005 or 3) add the location of the component to the system path if it
is installed elsewhere. [C:\Users\vietnv\node_modules\socket.io\node_modules\e
ngine.io\node_modules\ws\build\binding.sln]
MSBUILD : error MSB3428: Could not load the Visual C++ component "VCBuild.exe".
To fix this, 1) install the .NET Framework 2.0 SDK, 2) install Microsoft Visua
l Studio 2005 or 3) add the location of the component to the system path if it
is installed elsewhere. [C:\Users\vietnv\node_modules\socket.io\node_modules\e
ngine.io\node_modules\ws\build\binding.sln]
NhỠchỠgiúp - cảm ơn
vấn Äá» nà y Äã Äc giải quyết :),
cÅ©ng cứ send array như bình thưá»ng là Äc thôi
@Trần-Tuấn-Kiá»t
Hi,
Code mình Äá» trên github bạn nhé: https://github.com/luanvuvt/envato-market
Trong app thì mình không Äặt footer Äó :)
@luanvuvt Bạn ÄÆ°a Äoạn Html lên mình xem ÄÆ°á»£c không?

Các ứng dụng thá»i gian thá»±c cung cấp rất nhiá»u chức nÄng trên các ứng dụng khác nhau. Chúng ta có Google Drive có thá» chá»nh sá»a thá»i gian thá»±c (real-time), twitter hiá»n thá» các twetts má»i, bất kì há» thá»ng chat nà o ÄÆ°á»£c xây dá»±ng gần Äây và nhiá»u hÆ¡n thế nữa.
Má»t thay thế cho viá»c xây dá»±ng toà n bá» backend cá»§a chúng ta là sá» dụng má»t dá»ch vụ có tên là Firebase.
Váºy Firebase là gì?Firebase là má»t dá»ch vụ API Äá» lưu trữ và Äá»ng bá» dữ liá»u real-time (thá»i gian thá»±c). Äiá»u nà y có nghÄ©a là bạn không cần phải lo lắng vá» backend server, cÆ¡ sá» dữ liá»u, hay các thà nh phần real-time (socket.io). Tất cả Äá»u ÄÆ°á»£c Firebase xá» lý cho bạn.
Chá» cần lấy dữ liá»u từ Firebase, lưu trữ dữ liá»u và o Firebase, và Firebase sẽ lo công viá»c là m thế nà o Äá» lưu trữ, và cÅ©ng Äá»ng bá» trên tất cả các thiết bá» Äã ÄÆ°á»£c kết ná»i.
Bạn chỠcần lo vỠphần front-end trong ứng dụng của bạn.

Firebase má»i gia nháºp Google, vì váºy ná»n tảng nà y có má»t sá»± há» trợ tuyá»t vá»i và Äang có kế hoạch cho viá»c tiếp tục phát triá»n.
Äây là má»t demo nho nhá». Bạn có thá» nhấn nút Play Äá» má»t ứng dụng chát thá»i gian thá»±c. Bạn cÅ©ng có thá» click và o link Äã ÄÆ°á»£c cung cấp: https://xxxxxxx.firebaseio-demo.com Äá» xem những cáºp nháºt trong cÆ¡ sá» dữ liá»u trên Firebase dashboard. Dashboard (bảng Äiá»u khiá»n) cho phép chúng ta xem dữ liá»u cÅ©ng như sá»± thay Äá»i cá»§a dữ liá»u.
Chúng ta hãy cùng xây dá»±ng má»t ứng dụng ÄÆ¡n giản vá»i Firebase Äá» chúng ta có thêm sá»± hiá»u biết sâu hÆ¡n vá» những gì mà nó là m.
Our Sample ApplicationChúng ta sẽ xây dá»±ng má»t ứng dụng láºp lá»ch nÆ¡i mà má»i ngưá»i có thá» Äặt thá»i gian cho mình. Äây là má»t khái niá»m ÄÆ¡n giản tương tá»± như má»t cái gì Äó giá»ng như youcanbook.me. Chúng ta cÅ©ng muá»n ứng dụng cá»§a chúng ta là real-time (thá»i gian thá»±c).
Những yêu cầu:
Hiá»n thá» toà n bá» ngà y và những ngà y còn trá»ng Nếu ai Äó Äánh dấu má»t vùng nà o Äó, thì nó sẽ không có sẵn cho tất cả má»i ngưá»i. Sá» dụng AngularJs/HTML/CSS á» phÃa front-end. Sá» dụng Firebase á» backend.Äây là má»t demo ÄÆ¡n giản:
Setting UpNhững táºp tin dưá»i Äây là cần thiết cho demo nà y:
index.html style.css app.jsGiải thÃch má»t chút:
index.html Sẽ giữ tất cả mã HTML cá»§a chúng ta style.css lưu trữ những style cÆ¡ bản. Chúng ta sẽ sá» dụng bootstrap cho viá»c style nà y. app.js Sẽ tá» chức những module angular cá»§a chúng ta. Äây là nÆ¡i mà chúng ta sẽ kết ná»i vá»i Firebase và Äá»ng bá» dữ liá»u cá»§a chúng ta vá»i dá»ch vụ cá»§a Firebase.Hãy cùng thiết láºp các cÆ¡ sá» cần thiết cho các tá»p tin cá»§a chúng ta.
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Angular Scheduling</title> <!-- CSS --> <!-- load Bootstrap and custom style.css --> <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootswatch/3.3.0/journal/bootstrap.min.css"> <link rel="stylesheet" href="style.css"> <!-- JS --> <!-- load Angular, Firebase, Firebase Angular Library, and custom app.js --> <script src="http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.0/angular.min.js"></script> <script src="https://cdn.firebase.com/js/client/1.1.1/firebase.js"></script> <script src="https://cdn.firebase.com/libs/angularfire/0.8.0/angularfire.min.js"></script> <script src="app.js"></script> </head> <body> <div class="container"> <div class="page-header text-center"> <h1>Schedule City</h1> </div> <!-- were doing one day with 1 time slot for simplicity --> <!-- we'll use angular's ng-repeat in a bit to get the other days and times --> <div class="row times"> <div class="col-xs-4 text-center"> <h2>Monday</h2> <div class="time-slot"> <input type="checkbox" id="monday-time"> <label for="monday-time">9:00am</label> </div> </div> </div> <p class="text-center"> <a href="#" class="btn btn-primary">Reset</a> </p> </div> </body> </html>Chúng ta Äang ẩn các input box và sá» dụng các lable như các item có thá» click (tương tá»± như viá»c upload ảnh). Äá» tiá»n cho là m viá»c nà y, chúng ta cần chắc chắn rằng label có má»t thuá»c tÃnh for mà trá» Äến id cá»§a input.
style.css
/* checkbox - each time slot */ .time-slot { } /* hide the checkbox itself - the label will be styled */ .time-slot input { display:none; } /* default styling for our labels */ .time-slot label { padding:10px 20px; color:#FFF; cursor:pointer; background:#EEE; border-radius:5px; transition:0.3s ease all; } /* if the label is checked */ .time-slot input:checked ~ label { background:#f2dede; cursor:not-allowed; animation:flashBooked 0.5s ease; } /* if the label is not checked */ .time-slot input:not(:checked) ~ label { background:#6AB074; animation:flashAvailable 0.5s ease; } /* animation for the time slot to flash red */ @keyframes flashBooked { 0%, 100% { background:#f2dede; transform:scale(1); } 50% { background:#F99090; transform:scale(1.5); } } /* animation for the time slot to flash green */ @keyframes flashAvailable { 0%, 100% { background:#6AB074; transform:scale(1); } 50% { background:rgb(119, 218, 78); transform:scale(1.5); } }Vendor Prefixes: Äá» ÄÆ¡n giản thì chúng ta sẽ bá» qua các tiá»n tá» (prefixes) như -moz- hay -webkit-, váºy chắc chắn bạn sẽ phải thêm và o dá»± án cuá»i cùng cá»§a mình
Sau khi thiết láºp những táºp tin cÆ¡ bản, chúng ta sẽ ÄÆ°á»£c nhu sau:

Bây giá» chúng ta Äã cÆ¡ sá» cho ứng dụng cá»§a mình. Cho Äến bây giá», nó hoà n toà n là tÄ©nh. Hãy sá» dụng Angular và Firebase Äá» chúng ta lấy dữ liá»u thá»±c tế ngay bây giá».
JS (AngularJS)
Chúng ta sẽ thiết kế cÆ¡ sá» cho ứng dụng Angular cá»§a chúng ta ngay bây giá». Chúng ta sẽ Äi từng bưá»c má»t Äá» tương tác vá»i Firebase.
app.js
Vá»i các cÆ¡ sá» Äã có, chúng ta hãy bắt Äầu là m viá»c vá»i Firebase.
Connecting to and Using FirebaseÄầu tiên chúng ta phải tạo má»t tà i khoản á» Firebase. Sau khi tạo má»t tà i khoản thà nh công, Firebase sẽ ÄÆ°a chúng ta Äến má»t ứng dụng mẫu cá»§a há» có tên là hacker-plan.

URL á» Äây (https://chris1.firebaseIO.com) sẽ là Äá»a chỠứng dụng cá»§a cá nháºn bạn. Bạn có thá» click và o URL Äó Äá» và o backend dashboard ứng dụng cá»§a bạn.
Bây giá» chúng ta Äã có ÄÆ°á»ng dẫn cá»§a ứng dụng, chúng ta có thá» kết ná»i Äến ứng dụng cá»§a chúng ta bên trong các Äoạn mã Angular.
Äá» tạo má»t kết ná»i từ Firebase Äến Angular là vô cùng ÄÆ¡n giản. Firebase cung cấp má»t thư viá»n cụ thá» cho Anguler ÄÆ°á»£c gá»i là AngularFire. Chúng ta thá»±c sá»± Äã add nó và o project cá»§a mình bằng viá»c link Äến script bên trong Äoạn mã HTML á» trên và nhúng firebase và o ứng dụng cá»§a chúng ta.
// create our angular module and inject firebase angular.module('scheduleApp', ['firebase']) // create our main controller and get access to firebase .controller('mainController', function($scope, $firebase) { // connect to firebase var ref = new Firebase("https://chris1.firebaseio.com/days"); var fb = $firebase(ref); });Äây là tất cả những gì mà chúng ta cần Äá» kết ná»i. Tháºt thú vá» là chúng ta Äã thêm days và o cuá»i ÄÆ°á»ng dẫn URL. Bạn có thá» sá» dụng URL như là má»t cách ÄỠánh xạ dữ liá»u cá»§a mình. Tất cả má»i thứ mà chúng ta là m bây giá» sẽ ÄÆ°á»£c lưu trữ trong cÆ¡ sá» dữ liá»u cá»§a chúng ta â trong Äá»i tượng days.
Setting DataÄá»i tượng fb ÄÆ°á»£c chúng ta tạo ra cho viá»c có má»t sá» chức nÄng và thiết láºp. Firebase guilde (https://www.firebase.com/docs/web/guide/) là má»t hưá»ng dẫn tuyá»t vá»i sẽ giúp bạn là m thế nà o Äá» thiết láºp và lấy dữ liá»u. Hãy cùng tạo dữ liá»u cho 2 ngà y( thứ 2 và thứ 3) và má»i ngà y 2 má»c thá»i gian.
Chúng ta sẽ tạo má»t function Angular Äá» tạo dữ liá»u rá»i sau Äó có má»t button Reset Äá» reset toà n bá» dữ liá»u.
/ create our angular module and inject firebase angular.module('scheduleApp', ['firebase']) // create our main controller and get access to firebase .controller('mainController', function($scope, $firebase) { // connect to firebase var ref = new Firebase("https://chris1.firebaseio.com/days"); var fb = $firebase(ref); // function to set the default data $scope.reset = function() { fb.$set({ monday: { name: 'Monday', slots: { 0900: { time: '9:00am', booked: false }, 0110: { time: '11:00am', booked: false } } }, tuesday: { name: 'Tuesday', slots: { 0900: { time: '9:00am', booked: false }, 0110: { time: '11:00am', booked: false } } } }); };Chúng ta sẽ thiết láºp Äá»i tượng nà y cá»§a thứ 2 và thứ 3 Äến DB days trong csdl cá»§a chúng ta.
Bây giá», chúng ta chá» cần có má»t nút Äá» reset dữ liá»u.
Chá» cần như váºy, chúng ta Äã có má»t button Äá» reset data. Hãy click và o nó rá»i truy cáºp và o firebase dashboard cá»§a bạn:

Bây giá» chúng ta Äã có thông tin trong cÆ¡ sá» dữ liá»u, chúng ta cần hiá»n thá» nó ra ứng dụng cá»§a mình. Äầu tiên, chúng ta cần bind (liên kết) dữ liá»u mà chúng ta lấy ÄÆ°á»£c từ Firebase Äến Angular. Có 2 cách chÃnh Äá» chúng ta có thá» Äá»ng bá» dữ liá»u: Three-way data binding và array pushing.
Trong demo nà y, chúng ta muá»n các Äá»i tượng ÄÆ°á»£c Äá»ng bá» ngay láºp tức, váºy chúng ta sẽ sá» dụng three-way data-binding. Array pushing ÄÆ°á»£c sá» dụng nhiá»u hÆ¡n, nhưng thưá»ng dùng cho những ứng dụng không cần Äá»ng bá» ngay láºp tức như real-time chat. Những items (tin nhắn) là chá» ÄÆ°á»£c Äá»ng bá» khi ngưá»i dùng click âSendâ.
Chúng ta sẽ xá» dụng phương thức three-way data-binding cho ứng dụng nà y. Äầu tiên, chúng ta cần Äá»ng bá» thông tin từ database cá»§a chúng ta Äến các biến trong Angular.
Äá»ng bá» Äá»i tượngÄá» các Äá»i tượng Äá»ng bá» hóa như má»t Äá»i tượng trong Angular, chúng ta có thá» là m như sau:
// create our angular module and inject firebase angular.module('scheduleApp', ['firebase']) // create our main controller and get access to firebase .controller('mainController', function($scope, $firebase) { // connect to firebase var ref = new Firebase("https://chris1.firebaseio.com/days"); var fb = $firebase(ref); // sync as object var syncObject = fb.$asObject(); });Bây giá», chúng ta Äã có tất cả dữ liá»u dưá»i dạng JSON ÄÆ°á»£c lưu và o biến syncObject. Phần cuá»i cùng Äá» nháºn ÄÆ°á»£c three-way data-binding( giữa Angular, front-end view và Firebase) là chúng ta sá» dụng $bindTo function Äến Äá»i tượng syncObject cá»§a chúng ta.
Three Way Data BindingÄoạn mã sau Äây dùng Äá» lấy thông tin từ database cá»§a chúng ta và o má»t biến $scope.
// create our angular module and inject firebase angular.module('scheduleApp', ['firebase']) // create our main controller and get access to firebase .controller('mainController', function($scope, $firebase) { // connect to firebase var ref = new Firebase("https://chris1.firebaseio.com/days"); var fb = $firebase(ref); // sync as object var syncObject = fb.$asObject(); // three way data binding syncObject.$bindTo($scope, 'days'); });Äiá»u tuyá»t vá»i á» Äây là chúng ta chá» cần những Äoạn mã ÄÆ¡n giản Äá» lấy thông tin từ Firebase và không chá» Äá»ng bá» trên máy tÃnh cá»§a chúng ta, mà còn Äá»ng bá» vá»i má»i ngưá»i mà Äã kết ná»i và o.
Chúng ta có thá» Äi và o tá»p tin HTML và type {{days}} và bạn sẽ thấy những thông tin mà chúng ta Äã tạo trưá»c Äó bên trong function reset() Äá» lấy dữ liá»u từ Firebase và hiá»n thá» trong view cá»§a chúng ta.
Hãy cùng sá» dụng ng-repeat cá»§a Angular Äá» lặp qua các object nà y và hiá»n thá» nó trên view cá»§a chúng ta.
Displaying Dynamic Days and Time SlotsTrong tá»p tin index.html cá»§a chúng ta, nÆ¡i mà chúng ta Äặt dữ liá»u cá»§a mình, chúng ta sẽ cáºp nháºt nó vá»i dữ liá»u từ Angular thông qua biến $scope.
Äây là ná»i dụng HTML Äã ÄÆ°á»£c cáºp nháºt:
<div class="row times"> <div class="col-xs-4 text-center" ng-repeat="day in days"> <h2>{{ day.name }}</h2> <div class="time-slot" ng-repeat="slot in day.slots"> <input type="checkbox" id="{{ day.name }}-{{ $index }}" ng-model="slot.booked" ng-disabled="slot.booked"> <label for="{{ day.name }}-{{ $index }}">{{ slot.time }}<br> <span ng-if="slot.booked">Booked</span> <span ng-if="!slot.booked">Available</span> </label> </div> </div> </div>Chúng ta sẽ lặp qua Äá»i tượng mà chúng ta Äã liên kết trưá»c Äó Äến $scope.days. Bằng viá»c sá» dụng ng-repeat 2 lần, chúng ta sẽ lặp thông qua ngà y và các thá»i gian trong ngà y.
Chúng ta cÅ©ng sẽ sá» dụng má»t checkbox như chúng ta Äã là m trưá»c Äó Äá» ng-model sẽ cáºp nháºt từ false sang true khi nó ÄÆ°á»£c check.
Chúng ta sẽ sá» dụng ng-disabled Äá» disable checkbox sau khi nó Äã ÄÆ°á»£c booked và cÅ©ng sá» dụng ng-if Äá» show những thá»i gian Äã ÄÆ°á»£c Booked hay Available.
Dưá»i Äây là video demo sau cùng:
ConclusionKhi các ứng dụng Real-Time ngà y cà ng trá» nên phá» biến hÆ¡n, má»t dá»ch vụ như Firebase là tuyá»t vá»i vì nó sá» lý rất nhiá»u các chi tiết cho ứng dụng cá»§a bạn. Những ngưá»i phát triá»n Front-end sẽ có không cần phải lo lắng vá» backend mà chá» cần lo vá» viá»c thiết kế front-end.
Vá» những Äoạn mã trong bà i viết, các bạn có thá» lên github[1] hoặc sá» dụng codepen á» trên.
[1]. https://github.com/NgaNguyenDuy/FireBaseApp
Link gá»c tiếng anh: http://goo.gl/lkN2be
Job Description
Boomerang (http://boomerang-vn.com/) is the leading Social Monitoring platform in Vietnam.
We serve major brands including P&G, Unilever, Uber, Samsung..
Our platform processes millions or data records everyday, and big-data is in our heart.
Weâre looking for a Senior full-stack Web Engineer and/or Technical Lead to help us innovate our system and expand to the Regional market, as well as building next-generation Social data based products.
You will be the core engineer of the new system and potentially become technical lead if you could demonstrate strong leadership skills.
Job Requirement
At least 2 years working with web development, both backend and frontend
Strong OOP and design patterns knowledge
Deep understanding of 3-tier web architecture
Adequate knowledge of networking (OSI, TCP/IP, HTTP, DNS, CDN, ..), OS (preferably Linux), database (preferably MongoDB and/or MySQL), distributed systems, parallel processing, web performance
Familiar with fulltext search systems, either Lucene or Solr or ElasticSearch
Understanding of different caching mechanism, from browser cache to server cache and distributed cache
Familiar with at least one frontend framework such as Backbone, Bootstrap, AngularJS, ReactJS
Ability to design web system that is robust, scalable and extendable.
Strong database design skill; knowledge of NoSQL, Big Data processing is a plus.
Preferred if having prior experience with NodeJS, Facebook API, Twitter API, Google+ API, YouTube API, Instagram API
Contact
Email: [email protected]
Các bạn quan tâm xem chi tiết tại link và gá»i há» sÆ¡ vá» sá»m nhé
http://vieclam.fpt.net/viec-lam/nhan-vien-lap-trinh-web-1479.html
http://vieclam.fpt.net/viec-lam/nhan-vien-lap-trinh-ung-dung-paytv-1368.html
DiemNTN
Skype: Lena.nguyen86
á»§ng há» sản phẩm viá»t
@nganguyen oke bạn, mình xin cảm ơn ạk
Chà o cả nhà , hôm nay ÄÆ°a 1 bà i viết hữu Ãch cho những bạn rất cần nó. Chắc hẳn chúng ta Äá»u biết Extension DevTools có sẵn Google Chrome (F12).
Nhưng nhiá»u bạn á» Äây chưa dùng hết ÄÆ°á»£c khả nÄng Tools ÄÆ°a lại. Äặc biá»t là trong vấn Äá» xá» lý hiá»u nÄng và debug javascript.
Website : http://discover-devtools.codeschool.com
Giá»i thiá»u : Là sá»± kết hợp giữa Code School và sá»± tà i trợ Google, chương trình há»c cách sá» dụng công cụ DevTools cá»§a Chrome.
Chúng ta sẽ có 7 level như sau :
Level 1: ** Bắt Äầu là m quen và cÆ¡ bản DOM và Styles **
Level 2: Nâng cao DOM và Styles
Level 3: Là m viá»c vá»i Console
Level 4: Là m viá»c JavaScript
Level 5: Nâng cao hiá»u suất Network
Level 6: Nâng cao hiá»u suất Website
Level 7: Theo dõi Memory
TungNguyen
Má»t shop bán hà ng bình thưá»ng thôi, như #1.
Thiết kế phẳng, hiá»n Äại. Dá»± bán quần áo, mỹ phẩm, nưá»c hoa. Có Coupon giảm giá, gift card, Store Credit system.
Nodejs, setup chạy trên AWS, responsive, build luôn API Äá» sau là m mobi app
Paygate: nganluong, baokim, 123pay.vn, megabank..
Cần nháºn hà ng trưá»c tháng 6/2015, các pro cho xin cái báo giá: [email protected]