
Automation Test cho iOS. Part 1
Đối với công việc lâp trình phần mềm thì Unit Test và UI Test là những việc vô cùng quan trọng trong việc bảo đảm 1 phần mềm đạt chất lượng tốt. Bài viết này, mình chỉ tập trung chủ yếu vào UI Test. Với lập trình viện iOS thì việc viết UI Test đã có sự support từ Apple với XCTest framework. Nhưng ...

Build application với vue-cli
Dạo này làm nhiều backend quá đầu óc mình đã bị quay cuồng nên giờ đổi gió sang frontend cho nó đỡ buồn. Lướt qua 1 lượt các blog về frontend thì nhận ra rằng thời thế thay đổi chóng mặt quá. 1 loạt những framework cho frontend đã phát triển vù vù. Tại thời điểm mình biết thì có mấy framework mình ...

Basic ReactJs (P2)
Đáp án của câu hỏi phần 1 là b, d, c, e, a render() thường chứa những event listener. VD scream() { alert('AAAAAAAAHHH!!!!!'); } render() { return <button onClick={this.scream}>AAAAAH!</button>; } onClick={this.scream} sẽ bắt sự kiện click vào button. Khi user ...

PhantomJS là gì?
Theo Wikipedia, headless browser là một trình duyệt web không có giao diện đồ họa người. Các headless browser cung cấp tương tác tự động một trang web trong một môi trường giống như các trình duyệt web phổ biến khác, nhưng nó được thực hiện thông qua giao diện dòng lệnh hoặc qua một mạng truyền ...

Upload file using Net::HTTP in Ruby
First, you'll need to know how the browser work on uploading files or how the HTTP request looks like when sending as upload files request. To upload files in the browser, we use a form like this: < form enctype = " multipart/form-data " action = " http://localhost:3000/ " ...

JVA đi học swift
Với một developer đã học một ngôn ngữ nào đó rồi thì việc học thêm một ngôn ngữ mới sẽ như thế nào? Hiện tại swift đang là ngôn ngữ khá được ưa chuộng, với một Java developer mình muốn chia sẻ cảm nhận của bản thân khi học swift sẽ như thế nào. Trong swift không thấy cái dấu ; nào cả :v Việc ...

Toán tử === trong Ruby
Gần đây công việc của tôi hay dùng tới với module Enumerable của Ruby. Và tôi cố gắng cân bằng giữa việc học các API phổ biến nhất (mà có thể bạn đã biết) với các API ít phổ biến hơn nhưng rất hữu ích. Qua đó tôi cũng học được rất nhiều điều thú vị. Sau đây tôi sẽ chia sẻ một trong số những điều mà ...

Điểm nhấn của AngularJS-P1
Chao! (Tiếng Ý, không biết có đúng không nữa) Một tháng nữa lại về với hàng tá bài Report được post lên trên Viblo. Thú thực là mấy hôm nay mình đang loay hoay, tìm ra một chủ đề thiệt hay để viết report nhưng mãi vẫn không thấy được vấn đề chi đẹp-độc-lạ cả. Nên tới ngày ni, mình quyết định chia ...

Processes vs Threads
Process và thread là 2 khái niệm khá phổ biến và gây nhập nhằng cho nhiều developer. Hôm nay mình sẽ phân tích rõ hơn về bản chất của 2 khái niệm này. Một process là một thực thể thực thi của một ứng dụng. Điều này có nghĩa là gi? Như thế này nhé, khi bạn kích đúp chuột vào biểu tượng Microsoft ...

Golang - ngôn ngữ lập trình mã nguồn mở giúp xây dựng ứng dụng dễ dàng, đáng tin cậy và hiệu quả.
Có một bài toán đau đầu dành cho các công ty là khi họ đã lên tới tầng scale cho một dự án. Thời gian đầu thì sẽ là optimize code, database, scale phần cứng… nhưng khi tới một lượng user cực lớn thì vấn đề đó sẽ càng ngày càng nan giải. Và giải pháp của một số công ty đó là chọn Go. Nó được ...

So sánh giữa Capistrano và Mina.
Sau khi phát triển 1 ứng dụng Rails, việc tiếp theo ta cần làm là deploy nó lên server cho tất cả mọi người cùng truy cập. Bài trước mình đã hướng dẫn các bạn deploy bằng Capistrano. Tuy nhiên, việc deploy bằng Capistrano khá tốn kém thời gian (Mình sẽ phân tích rõ phía dưới.), và mình đi tìm một ...

Immutability in React.js
Nếu đã từng tìm hiểu về " Functional Programing ", hẳn bạn đã từng nghe thấy thuật ngữ " Immutability - Tính bất biến ". Đây là 1 trong những tính chất quan trọng nhất của Functional Programing . 1 đối tượng bất biến là 1 đối tượng không thể thay đổi trạng thái sau khi đã được khởi tạo ...

How and when override equals() and hashCode()
1. Giới thiệu Chào các bạn hôm nay chúng ta sẽ tìm hiểu một chủ đề không mới lắm, nhưng vẫn luôn là quan trọng cho những ai vẫn còn đang mơ hồ về hai method hashcode() và equals() trong java. Đồng thời tìm hiểu và mục đính sử dụng của hai hàm đó trong Hash collections. Như chúng ta biết thì tất ...

Understanding android input event
Cho dù bạn làm bất cứ ứng dụng android nào thì đều phục vụ 1 nhóm đối tượng người dùng nào đó. Và phần lớn người sử dụng tương tác với ứng dụng của bạn là thông qua 1 loạt các action click button, swipe left/right, fling ... tôi gọi chung các action đầu vào này là touch event. Về cơ bản mọi touch ...

Waterfall vs Agile vs Scrum - Part 2: Waterfall là gì?
Other posts Phần 1: Agile là gì? Phần 2: Waterfall là gì? Phần 3: Scrum là gì? Phần 4: So sánh Agile, Scrum và Water? Con đường nào phù hợp với bạn Phần 5: Agile có thực hiện phù hợp với outsource và các dự án offshore Phần 6: Kết hợp mô hình waterfall và scrum để thích nghi với các dự án ...

Vài vấn đề về deadline trong SCRUM''s Sprint
Chúng ta đều biết rằng deadline sẽ điều khiển hành vi. Đó là lý do tại sao trong Scrum, và các phương pháp Agile khác, chúng ta timebox việc phát triển với những deadline (Sprint). Nó sẽ chỉ rõ cho chúng ta: Tập trung vào những thứ quan trọng và đảm bảo rằng nó được thực hiện đúng. Về bản chất điều ...

[Xamarin Form] How to create PageView
1. Tổng quan Như các bạn đã biết, Xamarin Form có một sức mạnh lớn khi giúp chúng ta có thể code một lần, nhưng chaỵ được trên nhiều nền tảng. Tuy nhiên, chỉ dựa vào những UI Control default mà nó cung cấp thì không đủ để làm, ví dụ như trường hợp này, mình muốn tạo ra môt màn hình mà có nhiều ...

Rack basics
I. Lời nói đầu: Trong hệ thống Ruby web, Rack là một thành phần không thể thiếu. Khi code Rails chắc hẳn bạn đã từng nghe tới Rack - aka Web server interface . Tò mò search thử trên trang chủ của nó thì đập thẳng vào mặt cái mô tả: Rack provides a minimal interface between webservers ...

FuelPHP: Làm việc hiệu quả với cơ sở dữ liệu thông qua migrations, generate migration và DBUtil
Migrations giúp quản lý, control database một cách dễ dàng. Bạn có thể sử dụng migration để chỉnh sửa database cả về cấu trúc lẫn dữ liệu. Khi sử dụng migration để thay đổi database sẽ giúp cho các dev trong cùng dự án hay trong quá trình maintain có thể tường minh về database. Khi bạn là một dev ...

Một số kiến thức về Angular 2 router - reuse component với RouteReuseStrategy
Trong quá trình xây dựng single-app, đôi khi ta gặp phải tình huống sau: Ta cần giữ lại trạng thái của trang trước sau khi quay về từ một trang nào đó. Ví dụ: Khi từ trang tìm kiếm, ta mong muốn sau khi xem một kết quả và quay lại, trang đó vẫn giữ lại các kết quả tìm kiếm. Khi từ trang index, ...