Wemos authenticate qua laravel (phần 4.3 - Tìm hiểu GET và POST trong Wemos)

Xin chào các bạn, hôm nay mình xin chia sẻ tiếp phần 3 của chủ đề "Wemos authenticate qua laravel" trong loạt bài "Làm bể cá thông minh". Ở phần trước thì ta đã kết nối được web client với server nodejs và authenticate với server PHP (laravel) bằng Jwt. Như trong sơ đồ dưới đây: Client phải ...

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

Sử dụng Docker commit để tạo và lưu thay đổi một Image

Dockerfile là một trong những tính năng chính dẫn đên sự thành công của Docker. Với khả năng xây dựng một container image mới từ một tập tin đơn giản đã giúp thay đổi rất nhiều của việc ứng dụng docker. Khi nói đến sửa đổi một Docker image, suy nghĩ đầu tiên của chúng ta là sẽ sửa đổi thông tin ...

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

Android Architecture Components - Live Data

Tiếp theo các phần trước, lần này chúng ta sẽ tìm hiểu về lớp Live Data của Android Architecture Components. LiveData là một lớp dữ liệu dạng observable. Không giống như observable thường lệ, LiveData nhận biết vòng đời, có nghĩa là nó tôn trọng vòng đời của các thành phần ứng dụng khác, chẳng ...

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

Những nguyên nhân thường gặp khiến ứng dụng của bạn bị từ chối trên chợ AppStore

Cho dù bạn là một lập trình viên iOS mới vào nghề hay một người đã có nhiều kinh nghiệm thì việc phải đối mặt với việc ứng dụng bạn muốn đưa lên AppStore bị từ chối tại một thời điểm nào đó trong suốt sự nghiệp lập trình của bạn là không tránh khỏi.Nếu bạn chưa từng gặp việc đó thì bạn là một người ...

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

Concurrency in C++11

Trong bài viết này bạn sẽ học được kiến thức cơ bản về chạy các luồng song song sử dụng shared memory. C++11 Sử dụng shared memory Threads Race conditions Mutexes Atomicity Asynchonous tasks Condition variables Bài toán Producer-Consumer Resources Concurrency examples ...

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

Processing Stripe Payments with a Background Worker in Rails

Kỹ thuật được sữ dụng trong bài viết này có thể được sữ dụng để xữ lý bất kỳ công việc dài hạn nào trong background . Ví dụ dưới đây sẽ không thực sự xử lý việc thanh toán mà background job sẽ nhận dữ liệu để xử lý. Tạo một class background job để xử lý thanh toán: rails g job ...

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

Sử dụng Appium trong iOS Automation Test

1. Giới thiệu Appium là một Open Source hỗ trợ việc viết UI Automation Test cho các ứng dụng mobile vô cùng tiền lợi, mạnh mẽ. Appium hỗ trợ nhiều ngôn ngữ giúp cho việc viết test script trở nên đơn giản hơn rất nhiều. Các ngôn ngữ mà Appium hỗ trợ bao gồm: C#, Java, Node JS, Ruby, ...

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

Xử lý file CSV lớn với Ruby

Xử lý những file dung lượng lớn có thể tiêu tốn rất nhiều ram. Chúng ta cũng thử một số cách xử lý dưới đây và đo tốc độ và lượng ram đã sử dụng: Chuẩn bị dữ liệu Trước khi bắt đầu, chúng ta chuẩn bị 1 file CSV data.csv với 1 triệu dòng (khoảng 75MB) require 'csv' require_relative ...

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

Học Python từ con số 0 (Phần 1) - The Basics

Trước tiên, Python là gì ? Theo người tạo ra ngôn ngữ này, Guido van Rossum, Python là một: “high-level programming language, and its core design philosophy is all about code readability and a syntax which allows programmers to express concepts in a few lines of code.” Đối ...

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

Introduction to React Native 1

React is a component-oriented front-end framework developed by Facebook, used for making native applications. Firstly, we start with installing Homebrew (https://brew.sh/) Homebrew is package management software that can be used with mac. $ brew install node $ brew install watchman $ npm ...

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

Python: Cách sử dụng hàm lồng nhau

Như chúng ta đã biết, trong Python, hàm cũng là đối tượng, hơn nữa, nó còn là đối tượng first-class. Nhờ đó, chúng ta có thể thao tác với hàm như mọi đối tượng khác. Chúng ta có thể tạo ra hàm, xoá bỏ nó, gán cho biến, truyền làm tham số, v.v... Cũng vì hàm là đối tượng first-class, nên nó có thể ...

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

[Ruby] Block and variable scope

Block and variable scope Block have direct access to variables that already exist: x = "original x" 1. times do x = 200 end puts x # => 200 But if the name x is used as a block parameter, it'll be a totally different variable from the variable x that already ...

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

The Cost Of JavaScript

Khi các website chúng ta xây dựng ngày càng phụ thuộc vào JavaScript, thỉnh thoảng chúng ta cũng phải trả giá cho những gì được gửi về phía người dùng, theo những cách không dễ nhìn thấy . Trong bài viết này, tôi sẽ nói về lý do tại sao một chút kỷ luật có thể giúp nếu bạn muốn website của mình có ...

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

How to save the history of the user action

Sau đây mình xin giới thiệu thử viện dùng để lưu các hành động của người dùng đó là gem "paper_trail" Cài đặt Thêm gem "paper_trail" vào Gemfile bundle exec rails generate paper_trail:install bundle exec rake db:migrate Xong khi chạy xong thì nó sẽ sinh ra bảng "versions". class ...

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

Zulip - Powerful group chat

Hôm nay, mình sẽ giới thiệu tới các bạn các bước tự cài đặt một group chat với nhiều tính năng mạnh mẽ như Slack. Đó là Zulip - một group chat open source. Nếu bạn muốn có một group chat cho riêng team, công ty hay đơn giản là thích vọc vạch như mình. Thì bạn có thể thử. Chúng ta cùng đi tìm hiểu ...

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

Cách tạo và export Certificate

Tạo Distribution Certificate Truy cập Keychain Access trên macbook để tạo Request a Certificate from a Certificate Authority cho tài khoản của mình Keychain Access > Certificate Assistant > Request a Certificate from a Certificate Authority Điền các thông tin cần thiết để tạo ...

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

Sử dụng Capybara để test ứng dụng

Chúng ta hầu như đều rất quen thuộc với Rspec-một công cụ viết test trên ứng dụng Ruby on Rails.Rspec là 1 công cụ rất mạnh hỗ trợ chúng ta test độ chính xác của logic code của mình tạo ra.Với rspec ta có thể dùng để kiểm nghiệm độ chính xác của function mình viết ra, thế nhưng đối với sự hoạt động ...

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

Tổng quan về giao thức Network Time Protocol (NTP)

Giao thức NTP (Network Time Protocol) là một giao thức để đồng bộ đồng hồ của các hệ thống máy tính thông qua mạng dữ liệu chuyển mạch gói với độ trễ biến đổi. Giao thức này được thiết kế để tránh ảnh hưởng của độ trễ biến đổi bằng cách sử dụng bộ đệm jitter. NTP cũng là tên gọi của phần mềm được ...

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

Tự động watermark ảnh với ImageMagick

Khách hàng trong dự án gần đây của tôi yêu cầu mỗi hình ảnh upload lên đều phải được watermark. Điều này khá quan trọng vì hiện nay, việc sử dụng hình ảnh vi phạm bản quyền là rất phổ biến. Để làm việc này, chúng ta có thể chèn một ảnh mờ hoặc một đoạn text chứa thông tin liên hệ lên trên ảnh gốc ...

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

Docker basic

Tại sao lại chọn Docker Trước khi nghiên cứu về một công nghệ nào đó thì điều đầu tiên mình tìm hiểu là tính ứng dụng của nó. Do đó mình đã lên google và search về tính ứng dụng của docker sau đây mình sẽ tổng hợp lại những lợi ích về docker mà mình tìm được: Docker cho phép giả lập môi ...

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