Tạo ứng dụng mở rộng chia sẻ đơn giản cho iOS

Share extensions, được giới thiệu trong iOS 8, cung cấp cho người dùng một cách dễ dàng và thuận tiện để chia sẻ nội dung với các thực thể khác, chẳng hạn bạn muốn chia sẻ URL khi dùng safari. Với share extensions, người dùng có thể chia sẻ nội dung trực tiếp cho dịch vụ của bạn từ app họ đang ...

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

Batch Update : Tìm hiểu về Updating Multiple record.

Đôi khi, chúng ta cần cập nhật nhiều hàng trong bảng cơ sở dữ liệu với yêu cầu đơn giản như: # Updating multiple records: animal = {1 => {"type" => "động vật ăn thịt"}, 2 => {"name" => "hổ" } Animal.update(animal.keys, animal.values) Update method là một class method được định ...

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

Newbies’ Guide To iOS Callbacks

Unlike my other posts, this time I’m writing a tutorial for the beginners. As you can tell from the title, this time it’s about iOS, more specifically its callbacks. Since this post is aimed for the newcomers in iOS (or any mobile platform) development, I think it’s necessary to ...

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

Transactions trong Rails

Transactions trong Rails Transaction (giao dịch) được dùng để đảm bảo tính toàn vẹn dữ liệu khi xảy ra cập nhật (cập nhật xin được hiểu theo nghĩa rộng là các hành động sửa đổi dữ liệu, như INSERT, UPDATE, DELETE…). Khi một transaction bao gồm nhiều lệnh cập nhật, nó đảm bảo tất cả các ...

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

Phân biệt Block, Proc, lambda trong Ruby

Những người mới băt đầu tìm hiểu về ruby, đặc biệt là ruby on rails thường rất khó khăn trong việc phân biệt Block, Proc và Lambda. Các tính năng này theo mình nghĩ là một trong các tính năng mạnh nhất của Ruby, nhưng cũng giống mọi người mới học, sự phân biệt rạch ròi khái niệm giữa ...

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

Tìm hiểu về pipe trong Angular 2

Nếu như bạn đã làm quen với AngularJS 1.x , thì khái niệm pipes Angular 2 có lẽ không có gì quá xa lạ. Nó chính là filters trong Angular 1, thậm chí đến tên gọi của một số filter cũng được thay tương ứng bằng pipes cùng tên trong Angular 2 ( trừ một số thay đổi nhỏ, có 3 filter đã biến mất trong ...

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

Giới thiệu về Elixir on Phoenix

I. GIới thiệu Có thể các bạn đã biết đến ngôn ngữ Erlang. Nó được thiết kế để đáp ứng yêu cầu high availability của hệ thống telecom, một hệ thống lớn mà có thể dễ dàng scale, khả năng chịu lỗi cao, giảm thiểu downtime tới mức thấp nhất có thể. Và giải pháp để thực hiện việc đó trong ngôn ngữ ...

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

Ruby Metaprogramming - define_method

Chào các bạn, trong bài viết trước mình có giới thiệu về metaprogramming trong ruby và cách sử dụng hàm eval. Để tiếp nối chủ đề về metaprogramming trong ruby, bài viết này mình sẽ đề cập đến define_method và một số ứng dụng của nó. Trước khi bắt đầu, mình có một ví dụ nhỏ về class: class ...

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

HÓA ĐƠN ĐỎ- HÓA ĐƠN VAT- HÓA ĐƠN GIÁ TRỊ GIA TĂNG

Chắc hẳn mọi người đều được nghe tới “Hóa đơn đỏ” rất nhiều lần khi đến các nhà hàng hay đi mua hàng rồi, nhưng bản chất loại hóa đơn này như thế nào thì hôm nay mình sẽ làm rõ cho các bạn. Thực chất hóa đơn đỏ là hóa đơn giá trị gia tăng (hóa đơn VAT). Và chúng ta cần hiểu một số vấn ...

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

Design Patterns - Object Pool

Mở đầu Performance có thể đôi khi cũng là vấn đề lớn trong việc phát triển phần mềm và việc tạo ra object là một step cần phải được cân nhắc. Trong khi prototype pattern giúp cho việc cải thiện performance bằng cách cloning object, Object pool pattern cung cấp một kỹ thuật để tái sử dụng objects ...

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

Cơ bản về ruby on rails part 2

Tạo Dự Án Sau khi Ruby on Rails được cài đặt trên máy, chúng ta có thể sử dụng câu lệnh rails trên cửa sổ dòng lệnh (terminal với Linux hoặc command prompt với Windows) để thực hiện các tác vụ liên quan. Một trong số các tác vụ bạn đã được làm quen đó là kiểm tra phiên bản của Ruby on Rails ...

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

Selecting Element in jQuery

Xin chào tất cả mọi người, hôm nay mình sẽ giơi thiệu sơ qua về cách selecting element trong jQuery. Mình thấy có rất nhiều bạn sử dụng các cách thông thường như select theo class hay theo id và thêm một vài selecting form như :checked, :disable, :enable,... Do vậy, hôm nay mình sẽ tổng hợp các ...

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

Permission trong Android (Part 3): Các chú ý khi yêu cầu cấp quyền

Trong phần 3 này mình sẽ giới thiệu cho các bạn về các chú ý khi yêu cầu cấp quyền trong Android. Các phần trước: Permission in Android (Part 1) - Khai báo các quyền (permission) cho ứng dụng Permission trong Android (Part 2) - Yêu cầu cấp quyền khi ứng dụng đang chạy Rất dễ dàng để 1 ứng ...

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

Export CSV, Excel

Đôi khi người sử dụng muốn xử lý dữ liệu theo cách mà họ muốn. Trong tình huống như vậy thì chúng ta nên xuất dữ liệu trong một định dạng bảng để người dùng có thể dùng các trình soạn thảo để làm bất kỳ điều gì họ muốn. Bài viết này giới thiệu đến mọi người cách đơn giản nhất để export dữ liệu ra ...

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

Font Awesome

Giới thiệu Đây là bộ icon free được sử dụng rộng rãi trong lập trình web. Ngày hôm nay mình sẽ hướng dẫn mọi người cách sử dụng bộ font icon này trong android. Bình thường trong lập trình android có nhiều bạn thường thêm icon bằng cách tạo ra các vector trong drawable rồi kéo nó vào file XML. ...

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

Upload image by carrierwave && server khác

Xin chào tất cả các bạn, hôm nay mình xin giới thiệu một chủ đề đó là upload ảnh cho app dùng gem carrierwave . Bước 1: Cài đặt. Các bạn thêm vào Gemfile như sau: gem 'carrierwave' Sau đó chạy trên terminal: bundle install Bước 2: Cấu hình để up ảnh, chạy câu lệnh tạo ra tệp upload ...

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

Xây dựng ứng dụng chat bằng Nodejs, SocketIO, Angularjs (phần 2)

Tiếp nối phần 1 The best structure of Angular project mình sẽ viết tiếp phần 2: Tạo ứng dụng chat bằng Nodejs, Socket.io, AngularJs Websoket, Nodejs, Socket.io đã luôn là những hotkey trong giới công nghệ, đặc biệt là ngành lập trình trong những năm gần đây. Đặc biệt khi mà các ứng dụng ...

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

Hành động CRUD trên OData dùng Asp.Net Web API

Trong bài này chúng ta sẽ thêm một OData Controller mà có tất cả chức năng Insert Create Update Delete (Gọi chung là CRUD). ODATA theo quy chuẩn của HTTP và REST. Ngoài HTTP POST, HTTP DELETE còn có HTTP PATCH mà sẽ hiệu quả khi muốn thay đổi một thuộc tính nào đó trên entity. Step 1: Thêm OData ...

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

The Quality of Software Design ~kỳ 3~

Part 3. Journey to the Utopia(*) of reuse Bài viết trong số trước hơi nhiều chữ nên có lẽ có nhiều bạn cảm thấy khó đọc. Lần này, chúng ta hãy cùng một lần nữa suy nghĩ về "reuse" thông qua nhiều bài tập nhé.  Đầu tiên là phần bài tập. Chúng ta hãy cùng xem xét "Chương trình hiển thị số tiền ...

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

ReactiveCocoa

Introduction ReactiveCocoa is a functional reactive programming (FRP) framework developed by GitHub. FRP, is a specific way of writing and architecting software that creates a malleable abstraction for timelines; RAC implements one version of it for iOS and OS X. ReactiveCocoa combines a couple ...

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