Swift: Optional và Thuật ngữ liên quan tới Optional

Mình là một dev đi lên từ Objective-C, ban đầu khi tìm hiểu về Swift mình đã gặp phải vấn đề kha khá về Optional (trong Objective-C đơn giản là chỉ cần check nil object != nil). Khi mới code chắc hẳn không ít người gặp vấn đề với những warning hay error về Optional, và thật tiện là Xcode cung ...

Tác giả: Trịnh Tiến Mạnh viết 09:55 ngày 07/09/2018

Fulltext Search trong MySQL - Áp dụng Scout và Algolia

Bài toán 1 Giả sử ta có 1 bảng dữ liệu khách hàng(có khoảng 10000 bản ghi). Bây giờ chúng ta muốn tìm 2000 khách hàng có description bắt đầu bằng từ Queen. Câu lệnh quen thuộc mà chúng ta thường sử dụng: SELECT * FROM items WHERE description LIKE 'Queen%' LIMIT 2000 Trước khi xem kết quả, ...

Tác giả: Hoàng Hải Đăng viết 09:55 ngày 07/09/2018

Làm quen với React Native với game Simon Says color

Introduction React Native hiện đang là một từ khoá rất hot trên các trang báo công nghệ cũng như trong giới lập trình mobile. React Native là framework xây dựng ứng dụng di động native sử dụng Javascript do Facebook phát hành. Sử dụng React Native để xây dựng ứng dụng iOS và AndroidAndroid chỉ ...

Tác giả: Vũ Văn Thanh viết 09:55 ngày 07/09/2018

Xây dựng một RESTful API đơn giản với Python Flask

Trong phạm vi bài viết, mình giả sử rằng các bạn đã có một sự hiểu biết cơ bản về Python cũng như thiết lập môi trường bằng virtualenv trước đó. Nếu chưa thì tin chắc rằng trên Viblo có rất nhiều bài hướng dẫn thiết lập cũng như các kiến thức cơ bản về Python. Ở đây mình sẽ dùng phiên bản Python ...

Tác giả: Hoàng Hải Đăng viết 09:55 ngày 07/09/2018

Điều không ai nói cho bạn về z-index

Vấn đề với z-index, đấy là có rất ít người thực-sự-hiểu nó hoạt động như thế nào. Z-index không hề phức tạp, nhưng nếu như bạn chưa bao giờ bỏ thời gian ra đọc tài liệu specification, sẽ có rất nhiều khía cạnh mà gần như chắc chắn bạn sẽ hoàn toàn không biết tới. Không tin phải không ? Vậy thì, ...

Tác giả: Bùi Văn Nam viết 09:55 ngày 07/09/2018

Thủ thuật đơn giản về python nên biết

Sau đây mình xin giới thiệu một số mẹo Python tương đối phổ biến và rất hữu ích. In [1]: a , b = 5, 10 In [2]: print(a, b) (5, 10) In [3]: a, b = b, a In [4]: print (a, b) (10, 5) cách trao đổi giá trị cơ bản a = ["python", "is", "awesome"] print(" ".join(a)) --------------------- pyth ...

Tác giả: Vũ Văn Thanh viết 09:55 ngày 07/09/2018

29 công cụ chụp ảnh màn hình tốt nhất cho máy tính

Có lẽ ai cũng nên sử dụng 1 tool nào đó để chụp màn hình máy tính vì nó rất tiện lợi cho mọi tình huống, trong việc ghi lại các bước cài đặt, hay trong công việc tester mà tôi đang làm thì nó vô cùng cần thiết khi cần phải lưu lại chứng cứ bắt bugs. Sau đây tôi xin giới thiếu danh sách 1 số tool ...

Tác giả: Bùi Văn Nam viết 09:55 ngày 07/09/2018

Tại sao lại cần HTTPS? Những điều engineer cần biết về lịch sử và kỹ thuật phía sau của TLS. (phần 3)

Tiếp theo phần 2 tôi sẽ hoàn thành nội dung phần cuối về HTTPS trong bài viết này. Sau này sẽ thế nào? Tiến tới TLS1.3 hay QUIC IETF đang tiến hành phát triển kỹ thuật sau khi mà đã thực hiện HTTPS hoá toàn bộ. Tôi sẽ trình bày khái lược TLS1.3 và QUIC của phương thức mới đang được châm cứu ...

Tác giả: Trần Trung Dũng viết 09:55 ngày 07/09/2018

Overview Model-View-ViewModel+Coordinator(MVVM-C)

Overview Model-View-ViewModel + Coordinator là một biến thể của MVC với việc tích hợp view-model và một coordinator để quản lý view controller hierarchy. Model-View-ViewModel(MVVM) MVVM ra đời đã giải quyết được 2 vấn đề lớn của MVC: Xây dựng một mối liên hệ trực tiếp giữa các views ...

Tác giả: Trịnh Tiến Mạnh viết 09:55 ngày 07/09/2018

Elasticsearch Example Queries - Part 01

Xin chào các bạn! Hôm nay chúng ta cùng tìm hiểu dần về 23 ví dụ cơ bản để có thể hiểu được cách sử dụng Elasticsearch nhé. Link tham khảo: https://dzone.com/articles/23-useful-elasticsearch-example-queries Tóm tắt bài viết Bài viết chỉ gồm 2 phần cơ bản, easy dễ hiểu dễ sử dụng. A. ...

Tác giả: Bùi Văn Nam viết 09:55 ngày 07/09/2018

Một số medthods hữu dụng thường dùng trong Ruby Metaprogramming

Mời các bạn đọc các concept trước ở trong series này Còn dưới đây là một số method hay dùng trong Ruby Metaprogramming: Sự tự xét(introspection) hay sự phản chiếu (reflection) Trong ruby, ta hoàn toàn có thể đọc thông tin về một class hay object trong quá trình thực thi ( runtime ) . ...

Tác giả: Trần Trung Dũng viết 09:55 ngày 07/09/2018

Hướng dẫn Deploy Rails App lên AWS EC2 kết hợp Nginx và Puma ( Part I)

AWS là hệ thống webservice mạnh mẽ. Được sử dụng rộng rãi trên khắp thế giới, hôm nay mình sẽ hướng dẫn cho các bạn cách deploy 1 Rails App lên EC2 của AWS kết hợp sử dụng Capistrano Gem, Nginx và Puma. AWS : Amazon Web Services Nginx: Là một máy chủ proxy mã nguồn mở (open source reverse ...

Tác giả: Vũ Văn Thanh viết 09:55 ngày 07/09/2018

Bắt đầu làm quen với mã hóa string trong ruby

Trong công nghệ thông tin (đặc biệt là lĩnh vực phần mềm và công nghệ) của ngày nay, chúng ta thấy thông tin ở dạng text ở mọi nơi. Text không được cung cấp cho chúng ta ở định dạng đa phương tiện như hình ảnh và video mà nó được lưu trữ nội bộ trong máy tính dưới dạng các con số có mã hóa. Điều đó ...

Tác giả: Hoàng Hải Đăng viết 09:55 ngày 07/09/2018

Lập trình Kotlin với RxJava và RxKotlin

Kể từ khi trở thành ngôn ngữ được hỗ trợ chính thức cho phát triển Android, Kotlin đã nhanh chóng phát triển phổ biến. Google đã báo cáo rằng số lượng các ứng dụng được tạo bằng Kotlin đã tăng 6 lần. Nếu trước đây bạn đã sử dụng RxJava hoặc RxAndroid và muốn chuyển sang Kotlin hoặc muốn bắt đầu ...

Tác giả: Trần Trung Dũng viết 09:54 ngày 07/09/2018

Xử lý background service trên Android O

Giới thiệu Như các bạn đều biết mỗi lần Google cập nhật phiên bản mới thì đều có rất nhiều những thay đổi kéo theo tác động đến việc phát triển ứng dụng. Android O được ra mắt vào năm 2017. Và với phiên bản này có tương đối nhiều điểm mà những nhà phát triển như chúng ta cần quan tâm. Đối với ...

Tác giả: Hoàng Hải Đăng viết 09:54 ngày 07/09/2018

5 Best Practices về cấu trúc khi làm việc với React

Có lẽ ta không cần phải nghi ngờ gì nữa về việc React đã tạo ra môt cuộc cách mạng trong cách mà chúng ta xây dựng các giao diện cho người dùng. Giờ đây chúng thật dễ để học và tạo điều kiện tuyệt vời cho phép ta tạo ra những component có khả năng sử dụng lại được ở nhiều chỗ, giúp cho trang web ...

Tác giả: Hoàng Hải Đăng viết 09:54 ngày 07/09/2018

CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT

2.1.1. Phân rã bài toán thành các bài toán nhỏ hơn. Các bài toán giải trên máy tính càng ngày càng đa dạng và phong phú dẫn tới quy mô chương trình ngày càng lớn. Quy mô càng lớn dẫn tới việc lập và kiểm soát chương tình càng gặp nhiều khó khăn hơn. Ta cần chia bài toán lớn thành nhiều bài ...

Tác giả: Vũ Văn Thanh viết 09:54 ngày 07/09/2018

Replace và Add Fragment với cơ chế back stack

I) Sơ lược về fragment Như các bạn đã biết Fragment nó được hiểu như là một sub Activity, nó cũng có vòng đời hoạt độnh riêng nhưng gắn liền với vòng đời của activity, nó sinh ra để giải quyết các vấn đề mà activity không thực hiện được, cụ thể ở đây chính là chức năng đa màn hình, việc nắm rõ ...

Tác giả: Trịnh Tiến Mạnh viết 09:54 ngày 07/09/2018

1 số bài toán đơn giản trên codefight

Đây là một số bài toán đơn giản trên codefight, đáp án là tự mình viết nên có thể code vẫn còn cùi chưa đc ngon ăn như của các anh senior (mình hiện là beginner ruby thôi), rất mong nhận được sự chỉ giáo của mọi người, nhất là bài 6 ạ, mình rất mong nhận đc sự góp ý cải thiện. Bài 1: Phone Call ...

Tác giả: Hoàng Hải Đăng viết 09:54 ngày 07/09/2018

Tìm hiểu về Cassandra - Update và Delete data trong Cassandara

Chú ý timestamp khi update data Update data trong Cassandra thực ra là sử dụng API giống như khi insert. Chỉ một điểm khác biệt đó là khi update thì timestamp là điều vô cùng quan trọng. Nếu timestamp không phải là thời gian sau thời gian nhập dữ liệu trước đó thì data sẽ không được update. Hãy ...

Tác giả: Vũ Văn Thanh viết 09:54 ngày 07/09/2018