Part 4 - Jenkins CI : Cấu hình slave node machine và tích hợp hệ thống phân tán - phần cuối

Part 1 - Introduction Part 2 - Cài đặt , cấu hình Gerrit với apache basic authen Part 3 - Tích hợp CI / CD Part 4 - Jenkins CI : Cấu hình slave node machine và tích hợp hệ thống phân tán - phần cuối Tiếp theo chuỗi bài viết về Gerrit vs Jenkins, trong phần này mình sẽ đề cập đến kiến ...

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

Notification với Action Cable

Ngày hôm nay tôi sẽ giới thiệu các bạn một cái mini app với notification. Hiểu đơn giản Action Cable là một hệ thống chuyển giao thông tin một cách tức thời, giống như một người lắc chuông bằng dây: ở đây người cầm chuông là chủ thể tạo ra action, cable chính là dợi dây nối với chuông là nơi chúng ...

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

[Swift3] Cách tạo hiệu ứng viết chữ chuyên nghiệp

Chào các bạn, hôm nay mình sẽ trở lại với chủ đề tạo hiệu ứng viết chữ chuyện nghiệp, được sử dụng trong các app học hán tự, tiếng nhật... trước hết mời các bạn xem topic này sẽ hướng dẫn bạn làm được gì: Vậy chúng ta cần phân tích 1 chút: theo như hình ảnh trên thì chúng ta sẽ cần 2 layer, 1 ...

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

Overview of Kotlin Language and Comparison Between Kotlin and Java

What is Kotlin Language?**** Kotlin is a new programming language from JetBrains. It first appeared in 2011 when JetBrains unveiled their project named “Kotlin”. Kotlin is an Open-Source Language. Basically like Java, C and C++ - Kotlin is also “statically typed ...

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

Native Html Push Notification With Asp.Net API

Hôm nay mình sẽ xây dựng một ví dụ nhỏ về native HTML5 đẩy notification lên WebAPI, nó có thể xem như là một chatbox đơn giản. Hy vọng sẽ hữu ích cho mọi người. Chúng ta sẽ xây dựng một page cho phép nhiều người chat cùng nhau, và chúng ta cũng có thể dựa trên những điều này để xây dựng nên các ...

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

Hướng dẫn cài đặt Android App Link

Deep Linking với Android App Links Với sự ra đời của phiên bản Android M (6.0), Android có thêm một kỹ thuật mới để mở app trực tiếp từ đường link, gọi là App Links. Kỹ thuật này có tính năng giống như Universal Links ở iOS9, tức là nếu người dùng bấm vào một đường link HTTP/HTTPS thì app liên ...

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

Caching với Realm và RxJava

Trước khi sử dụng Realm, ta có một câu lệnh request API đơn giản: @GET("weather?units=metric") Observable<WeatherResponse> getWeather(@Query("q") String city, @Query("appid") String apiKey); Đây là một API call đơn giản sử dụng Retrofit + RxJavaRx. ...

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

AngularJS part 1

Trong bài này tôi xin giới thiệu với bạn về AngularJS AngularJS(AJS) là một javascript framework mạnh mẽ.Nó mở rộng HTML DOM với các thuộc tính mới và khiến nó trở nên responsive đối với người dùng.AngularJS là framework mã nguồn mở,hoàn toàn miễn phí.Nó được phát triển vào năm 2009 và giời ...

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

Thử Nghiệm Với Angular – Forms Trong Angular

Hầu hết các ứng dụng web hiện đại đều làm việc với forms để thu thập dữ liệu từ người dùng. Angular cung cấp cho chúng ta hai phương pháp để tạo forms, một là Template-driven forms (mà có thể bạn đã quen thuộc từ Angularjs) và hai là Reactive forms hay Model-driven forms. Trong bài này chúng ta ...

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

Hàng đợi thông điệp Apache Kafka

Hôm nay tạm gác lại mấy chủ đề liên quan đến NoSQL, mình sẽ viết về một thứ khá hay ho, đó là hàng đợi thông điệp phân tán Hệ thống hàng đợi thông điệp là hệ thống xử lý dữ liệu động bao gồm các thành phần được kết nối với nhau và làm việc chung theo một chuỗi xử lý hướng tới một trạng thái cuối ...

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

Machine Learning - Linear Regression with One Variable

Chào các bạn, cũng đã gần 1 tháng từ khi tôi viết bài đầu tiên về machine learning - tổng quan về machine learning Với kì vọng mỗi tuần 1 bài viết, vừa là để tổng kết những gì đã học được, vừa là để làm tài liệu mình lưu trữ sau này. Nhưng kế hoạch đã đổ bể ngay tuần đầu tiên bởi không chỉ có quá ...

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

Xác thực 2 lớp trong Rails với Devise và Nexmo

Vào năm 2015, hơn 150 triệu hồ sơ người dùng đã bị đánh cắp và rò rỉ dữ liệu đã cho thấy mọi người vẫn có xu hướng sử dụng chung mật khẩu cho các trang web khác nhau. Vì vậy, để gia tăng an toàn bảo mật cho tài khoản, các ứng dụng đã sử dụng cơ chế xác thực hai lớp Two-factor authentication hay còn ...

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

Cách tạo Rails gem từ Jquery plugin

Đối với một Ruby developer thì việc sử dụng các gem trong các dự án về Ruby cũng như Rails là một điều vô cùng quen thuộc. Sau một thời gian tìm hiểu, tôi có biết cách đơn giản để tự xây dựng một gem từ một Jquery plugin để sử dụng trong Rails project. Trong bài viết này, tôi xin trình bày các bước ...

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

Race for performance. User''s psychology.

The page should load faster than 1 second; The number of server requests must be kept to a minimum; CSS and JS files should be compressed and not exceed 50 kilobytes ... "- this is only a small part of the technical solutions and recommendations that the industry supplies us in pursuit of ...

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

Laravel: Mail (Phần 1)

Laravel cung cấp API rất đơn giản thông qua thư viện [SwiftMailer](http://swiftmailer.org/) với drivers SMTP, Mailgun, SparkPost, Amazon SES, hàm ```mail``` của PHP, và ```sendmail```, cho phép bạn nhanh chóng bắt đầu gửi mail qua dịch vụ mail local hay cloud tuỳ theo lựa chọn của bạn. Driver ...

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

Memory Leak Pattern in Android - Identification & Prevention

Mọi ứng dụng đều cần bộ nhớ để thực hiện công việc của nó. Để đảm bảo mỗi ứng dụng trong Android có đủ bộ nhớ, hệ thống Android cần phải quản lý phân bổ bộ nhớ một cách hiệu quả. Android kích hoạt Garbage Collection - GC khi bộ nhớ chạy. Mục đích của GC là thu hồi bộ nhớ bằng cách xóa tất cả những ...

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

同時に複数のgitブランチを編集する方法

複数のgitブランチを同時に編集する方法を発見したのでメモ git worktree このワークツリーというコマンドが救世主だった 使い方はこう git worktree add 生成するフォルダのパス ブランチ名 このコマンドでフォルダを生成すると、そのブランチの中身がそのフォルダの中に生成される。 gitコマンドも普通に使えるので、コミットをすることも可能 ただし、databese.yml等のgit管理されていないファイルは生成されないので注意(当然のことではあるがハマったのでメモ)

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

Các bước để khắc phục vấn đề Encoding trong Ruby

Gần đây khi là dự án với khách hàng Nhật tôi gặp chút rắc rối trong việc encoding các chuỗi ký tự khác nhau, để cho dễ hình dung thì tôi xin đưa ra 1 đoạn exception mình nhận được khi format vài ký tự sang SHIFT-JIS từ UTF-8 irb ( main ) : 005 : 0 > x = "㈱" irb ( main ) : 007 ...

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

CI/CD with Jenkins (P2)

Chào các bạn, Trong bài trước, mình đã giới thiệu các khái niệm cơ bản về CI/CD, cách set up 1 ví dụ đơn giản với Jenkins. Trong bài viết này, mình sẽ hướng dẫn các bạn xây dựng 1 chuỗi các tiện ích bằng Jekins có thể áp dụng trong dự án: Setting quyền truy cập vào hệ thống Jenkins sử dụng ...

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

7 nguyên tắc thiết kế cho IoT

Ngày nay, IoT đang trở thành một xu hướng cho sự phát triển của xã hội thông minh, nơi mà mọi vật có thể kết nối Internet và giao tiếp với nhau. Cuộc sống hằng ngày của chúng ta ngày càng tràn ngập những đồ vật thông minh, nó xuất hiện trong nhà, trong môi trường làm việc và tại các thành phố cũng ...

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