Văn hoá "xấu hổ" của người Nhật

Văn hóa truyền thống và văn hóa hiện đại Nhật Bản luôn mang trong mình một sức hấp dẫn hết sức đặc biệt. Song, trong quá trình tiếp xúc với người Nhật, không ít người nước ngoài đã hiểu lầm những giá trị rất riêng của nền văn hóa đảo quốc Nhật Bản, do không lý giải được những đặc thù ấy, ngay cả ...

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

Dependency injection với Dagger 2 - API

Bài viết này sẽ đi sâu vào tìm hiểu các nguyên tắc cơ bản của Dagger 2 và toàn bộ API của framework DI này. Trong bài viết trước, chúng ta đã tìm hiểu về framework DI - có nhiệm vụ gắn kết, xâu chuỗi mọi thứ với nhau mà sử dụng ít code nhất có thể. Dagger 2 là một framework DI mà tạo ra rất nhiều ...

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

Tản mạn về Vulkan

Chắc hẳn mọi người đều biết DirectX là thư viện phát triển multimedia và đặc biệt là game trên nền tảng Windows. Với sự ra đời của Windows 10 cùng với DirectX 12. DX 12 mang lại hiệu suất cao hơn (fps) so với những nền tảng trước ở cùng cấu hình. Còn Vulkan được phát triển bởi Khronos Group, cũng ...

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

Intent

Intents are abstract description of an operation that is to be executed. It can be used to start and Activity (Simply start or pass data along), it can also be used to broadcast an intent to a BroadcastReciever component (BroadcastReceiver varies and is provided by the Android system itself. It may ...

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

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 ...

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

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 ...

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

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 ...

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

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 ...

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

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 ...

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

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 ...

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

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ác giả: Bùi Văn Nam viết 14:29 ngày 12/08/2018

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ác giả: Hoàng Hải Đăng viết 14:29 ngày 12/08/2018

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ô ...

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

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 ...

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

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 ...

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

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. ...

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

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ó ...

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

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 </p> <div class= Tác giả: 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: ...

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

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 ! ...

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