Anh tạo user cho em rồi, vào đổi password đi nhé!

Dự án hiện tại của tôi đang dùng 26 con Ubuntu server lớn nhỏ, và tất nhiên không phải ai trong đội phát triển cũng có quyền truy cập vào tất cả chúng. Tôi có quyền đó, đồng nghĩa với việc tôi phải đảm nhận nhiệm vụ quản lý quyền truy cập của các thành viên trong đội tới từng server một. Gần đây ...

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

Multithreading: Java Synchronized Blocks

Java synchronized blocks (Khối xử lý đồng bộ) được sử dụng để tránh xảy ra race conditions (Điều kiện tương tranh). Nếu các bạn đã đọc qua bài viết của tôi thì các thuật ngữ trên không có gì là khó hiểu cả. 1. The Java synchronized Keyword Synchronized blocks trong Java được thể hiện qua ...

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

Ruby Exceptions

Trong một chương trình execution và exception luôn đi cùng với nhau, nghĩa là một chương trình khi thực thi có thể gặp một số trường hợp xấu. ví dụ gỉa sử chúng ta có một đoạn code mở một file mà nếu file đó không tồn tại thì khi chạy chương trình đó sẽ xảy ra lỗi dẫn đến chương trình sẽ dừng lại. ...

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

Top 7 xu hướng Game Mobile năm 2016

Hãy cùng điểm qua những xu hướng mới sẽ tác động mạnh mẽ tới làng Game Mobile trong năm 2016 1. Google Play trở lại Trung Quốc, Game Android bùng nổ Google vừa qua đã chính thức thông báo về kế hoạch mở rộng tại thị trường Trung Quốc, gợi ý cho sự trở lại của Google Play. Nếu điều này ...

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

10 lý do tại sao lỗi của bạn bị từ chối . Là một QA/tester bạn sẽ làm gì trong trường hợp đó!

Nếu như một dự án không có sự tranh luận của các developer và các tester chỉ vì những lý do hết sức tầm thường, đơn giản hay chỉ vì cái tôi cá nhân quá lớn của từng người, tôi chắc dự án đó sẽ thành công. Phần lớn, tester và developer tranh luận chỉ vì một lý do đơn giản đó là lỗi (bug) của sản ...

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

Synergy - Công cụ hoàn hảo cho người dùng nhiều máy tính

Bạn có nhiều hơn 1 máy tính trên bàn làm việc? Trường hợp này xảy ra rất nhiều trong thực tế. Bạn cần một chiếc máy case cấu hình cao để làm việc, đồng thời cũng cần 1 chiếc laptop nhỏ gọn để có thể có thể đem đi chỗ này chỗ kia. Cũng có thể bạn cần làm việc trên nhiều hệ điều hành khác nhau, ...

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

Tìm hiểu về Strict Mode trong Javascript

"use strict"; Chắc hẳn bạn đã bắt gặp dòng lệnh trên khi làm việc với JavaScript rồi chứ nhỉ? Đó là nội dung thường xuyên xuất hiện trong hầu hết các thư viện Javascript hiện đại. Vậy "use strict"; là gì, nó có ảnh hưởng gì đến code của bạn, và liệu bạn có nên sử dụng nó? Bài viết này ...

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

Typesafe action trong redux với Typescript

Tình cờ bắt gặp bài viết Managing state in angular 2 app của Victor Savkin, mình chợt nhận ra Action của redux có thể được viết dưới dạng class của typescript để đảm bảo an toàn kiểu. Ví dụ ta không thể truy cập vào một property không tồn tại của một action, chẳng hạn: class AddTodoAction { ...

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

Giới thiệu về Web MIDI (phần 1)

"1 tut về MIDI? Vào năm 2016? Bạn đang đùa, phải không?" Không! Nó không như bạn nghĩ đâu! Đối với nhũng người đã sử dụng web từ thập niên 90, cụm từ "Web MIDI" làm nhớ đến một thời gian khi trang web tự động chơi một phiên bản rút gọn bloopy của The Final Countdown khi bạn đã đăng ký sổ lưu ...

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

OkHttp 3

Một trong những việc rất nhàn chán khi phát triển ứng dụng trên nền tảng Android đó là xử lý kết nối mạng, bắt lỗi và exception, kiểm soát kích thước file download và thời gian download file đó...vv. Tuy nhiên có một thư viện giúp chúng ta giải quyết các vấn đề đó một cách nhanh gọn, đó là ...

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

Play around with ChatWork - A Chat++ Contribution Guidelines

Bài viết kỷ niệm 5 năm ngày ChatWork ra đời! ... và chúc mừng Chat++ release version 5.0.0 ... From Chat++'s Creators with Love! ... Mở đầu bài viết, mình xin được giới thiệu về ChatWork, những điều có thể bạn chưa biết. ChatWork là một sản phẩm của Công ty cổ phần ChatWork ...

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

Một số phương pháp hay để thực hành kĩ năng lập trình của bạn

Nếu như bạn đã lựa chọn được một ngôn ngữ lập trình để học, chúng ta hãy bắt đầu học thông qua một số trang web rất thú vị sau đây: Dash - Học qua các dự án Nội dung học: HTML, CSS, JavaScript Dash tương tự như trang web Codecademy với phương pháp tiếp cận là nhập vai vào các dự án, và ...

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

Chuyển đổi từ postal_code thành address

Trong công việc của bạn, đôi khỉ phải chuyển đổi từ postal_code thành address, dự án mình có động đến phần này nên muốn chia sẻ 1 ít kinh nghiệm, khách hàng là người Nhật nên mình chia làm 2 phần, đối với postal_code của Nhật và phần còn lại. Phần postal_code của Nhật (http://qiita.com/inodev/ite ...

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

Những điểm khác nhau quan trọng giữa Python 2.x và Python 3.x

1. Division operator Nếu bạn đang có một công việc nâng cấp phiên bản Python, vậy hãy chú ý tới phép chia. Xem ví dụ sau đây nhé. print 7 / 5 print - 7 / 5 Output in Python 2.x: 1 -2 Output in Python 3.x: 1.4 -1.4 2. Print function Đây là một trong những sự thay đổi ...

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

Tìm hiểu Google Cloud Messageing (GCM) trong Android

GCM là gì? GCM hay còn gọi là Google Cloud Messageing, đây là một Service được Google phát triển giúp android developer dễ dàng triển khai việc send message từ server tới mobile của bạn. Server mà bạn develop có thể là Android, và cũng có thể là Browser. Các kiểu data có thể là các ...

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

Một số vấn đề cần lưu ý khi estimate project Android

1. Spec Spec đã quyết định hay chưa? Chăc chắn không thể giữ nguyên spec ngay từ đầu nhưng nếu spec không thay đổi ở mức độ nào đó là tốt rồi. Chẳng hạn khi đang làm thì cũng có thể cùng nhau xem xét Spec, hay là có ý tưởng gì khác,... 2. Tên app Nếu tên app bắt đầu bằng "Android", ...

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

Chạy server Ruby on Rails trên AWS sử dụng Unicorn và Nginx (phần 1)

Trong bài trước, tôi đã giới thiệu với các bạn về cách sử dụng miễn phí một số dịch vụ AWS với chế độ FreeTier, chúng ta hãy cùng sử dụng một trong các dịch vụ đó là EC2 để triển khai code Ruby on Rails nhé. Trong bài lần này chúng ta hãy tìm hiểu cách chạy server Ruby on Rails trên EC2 instance. ...

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

Unit Test (iOS)

http://www.slideshare.net/dunglinh111/nguyenvandungb-seminar Unit Test (iOS) Nguyen Van Dung B, D3 Table of Content 1. What is unit test?. 2. What is testing for? 3. XCTest 4. Mock Object 5. Write stubs 6. Demo What is unit test ? Unit tests are small pieces of code that test the behavior ...

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

Is Ruby 2.3 Faster? Nested Iterator Performance

http://ruby-performance-book.com/blog/2016/01/is-ruby-2-3-faster-nested-iterator-performance.html Ruby 2.3 đã được phát hành vào cuối năm ngoái với một loạt các cải tiến về hiệu suất. Nhưng nó có thực sự nhanh hơn so với 2.2? Chúng ta hãy cùng xem những khía cạnh sau. Đây là bài viết đầu ...

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

9 sai lầm về UX cho mobile có thể mắc phải

Sự khác biệt giữa một ứng dụng tốt và một ứng dụng xấu thường là chất lượng của UX của nó. Nhưng thay đổi trên UX di động có thể là một quá trình khó khăn, đặc biệt là nếu app đó phát triển từ nền tảng web. Danh sách này sẽ giúp bạn đi đúng hướng bằng cách giúp bạn tránh xa những cạm bẫy ...

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