Tạo một REST API đơn giản với Slim Framework

Slim là một framework nhỏ, siêu nhẹ của PHP giúp bạn nhanh chóng viết các ứng dụng web và API đơn giản nhưng mạnh mẽ. Nó đang nhanh chóng trở thành PHP framework được lựa chọn nhiều nhất để phát triển API và các ứng dụng web nhỏ. Mặc dù bạn có thể tạo REST API trong một số framework khác như ...

Tác giả: Hoàng Hải Đăng viết 17:29 ngày 12/08/2018

Azure IoT Essentials

Thuật ngữ ” Internet of things” dạo gần đây xuất hiện khá nhiều và thu hút không ít sự quan tâm chú ý của thế giới công nghệ. Vì sự bùng nổ của IoT trong tương lai sẽ có tác động mãnh mẽ tới cuộc sống, công việc và xã hội loài người. Vậy Internet of Things là gì? Theo wiki thì ...

Tác giả: Trịnh Tiến Mạnh viết 17:29 ngày 12/08/2018

[JavaScript] ES6 Objects and Arrays

Tiếp tục về loạt bài JavaScript, hôm nay chúng ta sẽ tìm hiểu về Objects và Arrays trong ES6. ES6 cung cấp cho chúng ta những cách mới để làm việc với Objects và Arrays, đặc biệt là phạm vi dữ liệu trong hai đối tượng trên. Bài viết sẽ bao gồm ba nội dung là: destructuring assignment, object ...

Tác giả: Bùi Văn Nam viết 17:29 ngày 12/08/2018

Modern JavaScript Cheatsheet (Part 2)

Một promise là 1 object mà có thể được trả về 1 cách đồng bộ từ 1 hàm bất đồng bộ (ref). Promise có thể được sử dụng để tránh callback hell và nó càng ngày càng được thấy nhiều hơn trong các dự án JavaScript hiện đại. Ví dụ const fetchingPosts = new Promise ( ( res , rej ) => { ...

Tác giả: Tạ Quốc Bảo viết 17:29 ngày 12/08/2018

Getting Started with Laravel Model Events

Bài dịch từ trang laravel-news.com Các sự kiện Model Laravel cho phép bạn tham gia vào các điểm khác nhau trong vòng đời của Model và thậm chí có thể ngăn không cho thao tác lưu hoặc xóa xảy ra. Laravel model events documentation phác thảo cách bạn có thể kết nối vào các sự kiện này với các ...

Tác giả: Bùi Văn Nam viết 17:29 ngày 12/08/2018

Tìm Hiểu ECMAScript 6 - P5

Chào các bạn. Hôm nay chúng ta sẽ cùng tiếp tục tìm hiểu những tính năng mới trong bản ECMAScript 6. Phần 1 các bạn có thể xem Tại Đây Phần 2 các bạn có thể xem Tại Đây Phần 3 các bạn có thể xem Tại Đây Phần 4 các bạn có thể xem Tại Đây Hôm nay chúng ta sẽ tiếp tục với series về ES6 nhé ...

Tác giả: Tạ Quốc Bảo viết 17:29 ngày 12/08/2018

Những điểm mới trên ECMAScript 2016, 2017

ES6 (ECMAScript 2015) đã ra mắt được 3 năm, với nhiều tính năng rất hữu ích đã trở nên quen thuộc với hầu hết web developer. Tuy nhiên thế giới công nghệ không ngừng phát triển, từ đó đến nay ECMAScipt cũng update thêm nhiều tính năng hay ho. Dưới đây là những tính năng mới của ES2016 và ES2017. ...

Tác giả: Hoàng Hải Đăng viết 17:29 ngày 12/08/2018

Sử dụng calc() trong CSS3

Chào các bạn, Trong bài này tôi sẽ giới thiệu về calc() trong CSS3 Như chúng ta đã biết thì từ CSS3, chúng ta đã có hàm calc() cho phép chúng ta thực hiện các phép toán học ngay trong thuộc tính(property). Thay vì khai báo các giá trị pixel tĩnh cho các độ rộng (awidth) của element, chúng ta ...

Tác giả: Hoàng Hải Đăng viết 17:29 ngày 12/08/2018

SEO website with friendly_id

Cài đặt gem 'friendly_id' sau đó bundle install Cách sử dụng Tạo 1 bảng posts Và thêm 1 trường slug vào bảng posts # terminal rails g scaffold post title:string content:text rails generate friendly_id rails g migration AddSlugToPosts slug:string rails db:migrate Thêm ...

Tác giả: Bùi Văn Nam viết 17:29 ngày 12/08/2018

Trên tay TypeScript trong 30 phút

Thời gian gần đây mình đang dần chuyển hướng từ Angular1 sang tìm hiểu và ứng dụng thử Angular2. Thời gian có lẽ là đủ để kiểm chứng sự ổn định và hiệu quả mà phiên bản mới này mang lại trong các dự án, nhưng mình nhận được khá nhiều lời khuyên từ các blogger là nên thử tìm hiểu Typescript trước ...

Tác giả: Hoàng Hải Đăng viết 17:29 ngày 12/08/2018

[Android] Fingerprint Dialog (Android P)

I.Giới thiệu Android P vừa mới ra mắt cùng với vo vàn các tính năng cải tiến, và cũng có nhưng tính năng lần đâu tiên xuất hiện, điển hình nhất là Fingerprint Dialog. Dialog xác nhận dấu vân tay người dùng, nó hoạt động như trình mở khoá vân tay. Mình sẽ giới thiệu về nó ngay sau đây ...

Tác giả: Tạ Quốc Bảo viết 17:29 ngày 12/08/2018

Sử dụng global event bus trong Vue.js

Chào các bạn, ở bài viết này mình sẽ chia sẽ cách sử dụng global event bus trong vue.js. 1. Global event bus Trong vue.js, các component tương tác với nhau thông qua một mô hinh gọi là Parent-Child Communication, hiểu đơn giản là props down, events up. Tuy nhiên, như ở hình vẽ trên, nếu bạn ...

Tác giả: Trịnh Tiến Mạnh viết 17:29 ngày 12/08/2018

Layout with Flexbox and screen size in react native

Flexbox provides a consitent layout on difference screen size. You can read more here First, you should understand flex property. With flex: 1, it will use full space of a parent that wap it. Take an example: import { View, Text } from "react-native" export default class TutorialScreen extends ...

Tác giả: Trịnh Tiến Mạnh viết 17:29 ngày 12/08/2018

3 workhack để duy trì năng lượng tích cực tại công sở cho kĩ sư phần mềm

Mặc dù vị trí kĩ sư phần mềm là một vị trí đáng mơ ước với nhiều người, nhưng trên thực tế thì đây là một công việc rất vất vả đòi hỏi hàng tiếng đồng hồ dưới đèn led, máy lạnh “âm độ” và bị “cách ly” với ánh nắng mặt trời. Nói cách khác, viết được một dòng code đơn giản ...

Tác giả: Tạ Quốc Bảo viết 17:29 ngày 12/08/2018

AWS-IoT-Greengrass - Giảm chi phí 10.000$ xuống còn 1$

Trước khi đọc tiếp thì các bạn nên đọc 2 bài viết trước của mình về AWS nhé. Vì bài này không nhắc lại các khái niệm. AWS-IoT AWS-Lambda Nông trại nhà mình (ví dụ thôi nhé) bắt đầu ứng dụng hệ thống AWS-IoT để quản lý mọi thiếu bị qua Cloud, từ quản lý tưới, đo độ ẩm, hệ thống mai ...

Tác giả: Trịnh Tiến Mạnh viết 17:29 ngày 12/08/2018

Xây dựng extension để check timesheet trên WSM (P2)

Ở phần 1 mình đã build ra được 2 API để check timesheet & submit form request rồi Giờ ta sẽ build phần Client cho user sử dụng Form login mình sẽ có 1 input nhập email framgia, 1 input nhập password & 1 checkbox để lưu thông tin user (mình sẽ dùng localStorage để lưu phần này). Validate ...

Tác giả: Tạ Quốc Bảo viết 17:29 ngày 12/08/2018

【bcrypt】Phương pháp mã hóa thật sự an toàn cho mật khẩu người dùng

Xin chào mọi người, trong bài viết lần này tôi sẽ tập trung vào 「Bảo mật mật khẩu người dùng」trong phát triển ứng dụng và suy nghĩ về cách lưu trữ an toàn mật khẩu của người dùng. 1. Tính an toàn trong lưu trữ mật khẩu người dùng a. Thực trạng của mật khẩu người dùng b. Mã hóa mật khẩu ...

Tác giả: Bùi Văn Nam viết 17:29 ngày 12/08/2018

Xây dựng load balancer

I. Load balancer là gì? Load balancer là hệ thống phân bố lưu lượng truy cập giữa hai hay nhiều các máy chủ có cùng chức năng trong cùng một hệ thống giúp cải thiện hiệu suất và độ tin cậy của hệ thống nhờ khả năng giảm thiểu tối đa tình trạng một máy chủ bị quá tải và ngưng hoạt động. Load ...

Tác giả: Trịnh Tiến Mạnh viết 17:28 ngày 12/08/2018

Từ Javascript thuần đến RxJS (Phần 3)

Phần tiếp theo này chúng ta sẽ tiến hóa code đã viết để học một cách viết code đẹp hơn, ngắn gọn dễ hiểu hơn. Đây là phần cuối và cũng là phần thú vị nhất trong 3 bài viết. Qua bài này bạn sẽ hiểu được cách code của Reactive Programming, hiểu về cách hoạt động của Observables, Stream... Qua 2 ...

Tác giả: Tạ Quốc Bảo viết 17:28 ngày 12/08/2018

Chia sẻ về hệ thống giúp nhân viên làm việc từ nhà - TeleWork (phần1)

Với lợi thế trong tính linh động về chỗ làm việc và thời gian làm việc giúp cho nhân viên có thể cân bằng giữa công việc và các nhu cầu khác của cuộc sống , TeleWork đang được dần dần được áp dụng tại những nước phát triển trên thế giới. Với rất nhiều công ty làm offshore ở Việt Nam thì việc tổ ...

Tác giả: Tạ Quốc Bảo viết 17:28 ngày 12/08/2018