
Thin Controller - Skinny Model by using chain service object (2)
Mình học và sử dụng Ruby khoảng 1 năm rồi, nhưng chỉ gần đây (vài ngày trước, khi lang thang trên mạng tìm chủ đề cho Study Report tháng này, mình vô tình nhìn thấy ở chỗ nào đó mà tác giả sử dụng class Set). Thú thật khi lập trình, mỗi khi cần store 1 list các đối tượng, 99/100 lần mình nghĩ đến ...

Implement OpenID Login with Docomo OpenID Provider
Chắc hẳn trong đa số chúng ta sẽ có rất nhiều ngừoi đang và đã từng làm việc với khách hàng Nhật bản. Một ngày đẹp trời khi bạn được giao nhiệm vụ tích hợp tính năng xác thực OpenID với nhà cung cấp Docomo trong hệ thống của mình - cái gần như chỉ hướng tới người dùng tại Nhật đang sử dụng hợp ...

GameSparks - Cơ sở dữ liệu cloud miễn phí cho game
Lời mở đầu Xin chào mọi người! Vài ngày trước mình có làm một game nhỏ trên facebook và mình đã rất băn khoăn khi phải tìm cách lưu score của từng người chơi. Facebook - theo mình tìm hiểu được thì hiện tại chỉ cho phép mỗi người chơi nhìn thấy score của chính họ và bạn của họ trên đó, nếu bạn ...

Debugging Autolayout in Xcode
Autolayout được apple giới thiệu từ IOS 6 (Xcode 6) và đã trở thành kỹ thuật không thể thiếu đối với các lập trình viên IOS. Việc vận dụng khả năng của autolayout tốt, giúp lập trình viên giải quyết bài toàn đa màn hình, và đơn giản hóa code xử lý trong controller. Trong quá trình sử dụng các lập ...

Java 9 Stream API Improvements
Phiên bản tiếp theo mà Oracle sẽ phát hành vào khoảng thời gian cuối tháng 3 năm 2017 tới đây chính là Java SE 9 . Vì vậy trong bài viết này tôi muốn giới thiệu cho các bạn biết về một đặc tính cải tiến khá hay về Java SE 9 Stream API. Đầu tiên ta sẽ nói qua về Java SE 8 Stream API. Sau đó tôi ...

Automated UI Testing in iOS app
Các lập trình viên chắc hẳn đã rất quen thuộc với việc viết unit test, tuy nhiên không hẳn ai cũng đã từng viết UI test cho ứng dụng của mình. Bên cạnh unit test, UI test (integration test) cũng vô cùng quan trọng và là một phần không thể thiếu để tạo nên những sản phẩm tốt. UI test cũng mang lại ...

Kotlin - Generics
Kotlin, like as Java, also can have a type parameter: class Box < T > ( t : T ) { var value = t } In general we need to provide the type arguments when we make an instance: val box : Box < Int > = Box < Int > ( 1 ) But if the parameters can be ...

Từng bước để trở thành senior programer
Kỹ sư phần mềm trải qua nhiều giai đoạn trong sự nghiệp của họ, bắt đầu khi bắt đầu tập tành code với tên gọi Junior coder, trải qua quá trình học tập và làm việc, họ đạt tới mức Mid Level. Sau đó, sau những ngày ôm bàn phím miệt mài, họ trở thành senior. Trong bài viết này, tôi sẽ chia sẻ từng ...

Tìm hiểu một vài khái niệm liên quan đến "mã hóa"
Cùng ăn mừng sự kiện gỡ bỏ quy định bắt buộc phải viết report trên Viblo, cùng hướng tới một tương lai xa xăm khi người người làm theo năng lực, hưởng theo nhu cầu và hàng tháng không còn phải lựa chọn giữa 2 ngày lương hay report, chúng ta cùng làm một bài viết nhỏ trên Viblo =)). Xét theo quy mô ...

Bàn về ajax. Nên sử dụng ajax khi nào ? Dùng ajax có tốt hay không ?
Cách vài hôm lại viết một bài ngại ghê hihi. :v Hôm nay, chúng ta sẽ bàn luận 1 chút về ajax các điểm tốt, xấu của ajax để chúng ta có thể sử dụng chúng sao cho hợp lý nhé. Trước hết mình sẽ giới thiệu qua 1 chút. Ajax là gì ? Hiểu nôm na thì ajax là một thuật ngữ mô tả việc sử dụng một vài ...

Query Expressions in Django (Part I)
Query expression mô tả một giá trị hoặc một tính toán được sử dụng trong update, create, filter, order by, annotation hay aggregate. Có một số built-in expression có thể giúp bạn trong việc viết các câu query. Các expression có thể được kết hợp hoặc trong một số trường hợp là lồng nhau để thực hiện ...

Rails Database Best Practices (Phần 1)
Thường thì chúng ta bắt đầu code với mục đích "chạy là ổn", để sau 1 thời gian làm việc, khi nhìn lại thì chúng ta nhận ra 1 đống vấn đề càn giải quyết. Tôi cũng đã trải qua 1 khoảng thời gian cần phải tăng tốc các trang web với database rất tồi tệ. Đó cũng là nguyên nhân để tôi có bài viết này. ...

Giới thiệu gem ZenginCode in ruby
1.Giới thiệu ZenginCode là một datasets chứa các mã ngân hàng ( bank_code ) và mã chi nhánh ( branch_code ) của tất cả các ngân hàng của Nhật Bản. Nó có thể dùng để quick_check validation của input bank information của hệ thống. ZenginCode hỗ trợ rất nhiều các ngôn ngữ khác nhau trong đó có ...

Thực hiện cuộc gọi điện thoại bằng Python
Một ngày đẹp trời nào đó bạn gặp dự án mà khách hàng yêu cầu làm call-center chẳng hạn thì chắc hẳn có vô vàn giải pháp bạn có thể tìm thấy hoặc nghĩ ra. Hôm nay tôi sẽ gợi ý cho các bạn 1 giải pháp sử dụng ngôn ngữ Python để thưc hiện cuộc gọi trên di động của bạn Trịnh Tiến Mạnh viết 14:29 ngày 12/08/2018

Validate data sử dụng Json schema (Phần 2)
Đây là bài viết tiếp theo của loạt bài viết về validate data sử dụng json schema. Có thể tham khảo Phần 1: Sử dụng Json Schema validate data Trong bài viết này, chúng ta sẽ tìm hiểu những tùy chọn validate cho những dữ liệu cụ thể. Nhắc lại, trong json-schema, chúng ta có những kiểu dữ liệu sau: ...

Kotlin for Android (III) : How beautiful it is
Hi cả nhà, hôm nay chúng ta sẽ quay lại với chuỗi bài về Kotlin cho Android, hi vọng qua 2 bài viết trước, mọi người đã có cái nhìn rõ ràng hơn về ngôn ngữ mới mẻ này, còn trong phạm vi bài viết này, mình sẽ chia sẽ một số điểm mà theo ý kiến mình đã góp phần làm nên vẻ đẹp cho Kotlin Android ! ...

React Native - Phần 3 - Tìm hiểu về Style, Height & Width và điều chỉnh Layout với Flexbox
Trong các phần trước chúng ta đã tìm hiểu cách thức cài đặt, cách tạo một chương trình và cách sử dụng Props, State trong React Native. Nếu các bạn chưa đọc thì có thể tham khảo lại các bài dưới đây: React Native - Phần 1 - Hướng dẫn cài đặt môi trường phát triển ứng dụng với React Native ...

Proshow, phần mềm tạo video chuyên nghiệp
1. Giới thiệu Đôi lúc chúng ta đi đám cưới, thấy cô dâu chú rể mở video show loạt ảnh cưới của họ thấy rất lung linh và đẹp mắt. Và chúng ta muốn làm được 1 video như thế để cho chính chúng ta hay làm quà tặng đến người thân yêu, bạn bè... Ở bài này, mình sẽ giới thiệu với các bạn phần mềm ...

Terminal bớt tẻ nhạt và dễ sử dụng với Terminator và Zsh trên Ubuntu
Từ hồi bước vào thế giới của Rails là gần như mình không thể dùng Windows cho việc develop Rails app được nữa. Và điều đầu tiên mọi người gặp phải khi làm việc với Ubuntu đó là khi làm việc với Terminal và các câu lệnh shell. Thật sự ấn tượng ban đầu của mình thì khó hiểu một cách kinh khủng và cảm ...

ASP.NET 5 và AngularJS Phần 6, An ninh
Đây là phần thứ 6 trong phần blog của loạt bài xây dựng ASP.NET 5 (ASP.NET vNext) ứng với AngularJS. Trong loạt bài đăng trên blog, tôi sẽ cho các bạn thấy làm thế nào để có thể tạo ra một ứng dụng Movie đơn giản sử dụng ASP.NET 5, MVC 6, và AngularJS. Bạn có thể tải về mã đã thảo luận trong bài ...