Giới thiệu Fragment trong Android

Fragment cho phép phân chia Activity thành các thành phần được đóng gói đầy đủ và tái sử dụng được. Các Fragment có vòng đời và giao diện UI riêng của mình. Ưu điểm chính của Fragment là dễ dàng tạo ra thiết kế giao diện người dùng (UI) động và linh hoạt, phù hợp với các kích cỡ màn hình khác ...

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

Thống kê, bảng biểu cho trang admin web với RoR

Bài này mình sẽ làm 1 demo nhỏ về việc làm thống kê cho trang admin với gem rails_admin. Các bạn có thể tham khác bài trước https://viblo.asia/danglv/posts/6BAMYV49Gnjz để có thể tạo 1 trang admin cho ứng dụng rails. Để vẽ chart mình sẽ sự dụng gem 'fusioncharts-rails'. đầu tiên bạn download ...

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

Tối ưu hóa schema và data type trong MySQL - P1

Thiết kế tốt về cả logic lẫn physic là những cột mốc quan trọng đem tới hiệu năng cao, và bạn phải thiết kế schema của mình theo những câu query mà bạn sẽ chạy. Điều này thường dẫn đến việc trao đổi được mất. Ví dụ như denormalized schema có thể tăng tốc một số loại query nhưng lại làm những loại ...

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

Pagination trong Laravel

Giới thiệu Trong các framework mà tôi từng làm việc, tôi cảm nhận thấy laravel hỗ trợ việc phân trang rất đơn giản, nhanh gọn mà lại phù hợp với công nghệ hiện thời. Việc tích hợp và sử dụng phân trang trong laravel khá dễ dàng, Laravel có thể tạo nhanh chóng phạm vi link của các trang hiện tại ...

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

Repeat chuỗi nhiều lần trong javascript

Ví dụ bạn có chuỗi "ruby" và muốn nó in ra 5 lần, thì làm như thế nào trong Javascript. Có 2 cách như sau: Cách cũ: dùng hàm join của Array để tạo một chuỗi từ Array . Ví dụ: Array ( 6 ) . join ( "ruby " ) Cách mới hơn, dùng hàm repeat được cung cấp cho đối tượng String ...

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

Học Sass trong 15 phút

Nếu bạn viết một lượng rất lớn về CSS, một bộ xử lý có thể làm giảm mức độ căng thẳng của bạn và giúp bạn tiết kiệm rất nhiều thời gian quý báu. Sử dụng các công cụ như Sass , less , Stylus hoặc PostCS . Làm stylesheets lớn , phức tạp dễ hiểu hơn và dễ dàng hơn để duy trì. Nhờ tính năng ...

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

Giới thiệu Google maps API

1.Giới thiệu Google maps Google Maps là một ứng dụng bản đồ trực tuyến trên web được cung cấp miễn phí bởi Google. Nó có thể dùng để nhúng vào các trang web của bên thứ ba thông qua Google Maps API. Nó cung cấp rất nhiều những tiện ích nâng cao giúp người dùng tìm kiếm đường đi,các địa điểm, các ...

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

Làm quen với Multithreading Trong C++

Dạo này loanh quanh nghe thấy từ multipe thread hơi nhiều. Từ những bài seminar đến trong project hiện tại cũng có nhiều vấn đề liên quan. Về cơ bản mình cũng không phải cao thủ gì, tuỳ nhiên cũng muốn lọ mọ 1 chút gọi là góp vui </p> <div class= Tác giả: Trịnh Tiến Mạnh viết 13:31 ngày 12/08/2018

Điều chỉnh thuộc tính adjustViewBounds của ImageView API Level 17 và thấp hơn với AdjustableImageView

Một yêu cầu mà hầu hết các ứng dụng đơn lẻ đó là: "Tôi muốn mở rộng việc hiển thị của ImageView để tương ứng với độ lớn của layout bao ngoài nó" Như thế này: Trên thực tế ImageView đã có sẵn tính năng này. Bạn có thể thiết lập đơn giản bằng cách cài đặt thuộc tính android:adjustViewBou ...

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

Tutorial : Sử dụng flask cho người mới bắt đầu ( Phần 5)

Phần tiếp này tôi sẽ cùng các bạn làm phần tạo user login cho ứng dụng post. để tạo phần login chúng ta sẽ sử dụng extensions Flask-Login và Flask-OpenID. Flask-login sẽ điều khiển logged in state và Flask-OpenID sẽ cung cấp authentication. 1.login Đầu tiên configure file app/__init__.py: ...

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

Cài đặt và cấu hình Symfony

Bắt đầu dự án với Symfony vô cùng đơn giản. Trong thực tế, bạn chỉ cần vài phút ngắn ngủi để chạy và làm việc với Symfony. Symfony cung cấp sẵn cho chúng ta một chương trình cài đặt, vô cùng tiện dụng. Tải trình cài đặt của Symfony về máy tính là bước đầu tiên bạn cần làm. Cài đặt Symfony ...

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

Tìm hiểu về ExoPlayer

Chơi nhạc và video là một hoạt động rất phổ biết trên tất cả các thiết bị Android. Và Android framework cung cấp lớp MediaPlayer như là một giải pháp nhanh chóng để thực hiện điều đó. Lớp MediaPlayer cũng cung cấp các api ở mức độ thấp như MediaCodec, AudioTrack và MediaDrm,để ta có thể xây dựng ...

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

Rails Authentication với gem Clearance

I. Mở đầu Xin chào các bác (lay2) Chắc hẳn các bác đã quen thuộc với Rails Authentication - hay hiểu nôm na là xác thực người dùng khi login đấy. Đối với rails, khi nói đến thuật ngữ này thì trong đầu ta nghĩ đến ngay gem Devise - 1 gem hỗ trợ để quản lý và xác thực người dùng rất rất phổ ...

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

Làm một task với Geofencing trong Android thì mất bao lâu?

Cuối tháng rồi mệt thật. (sleepy) Nói luôn với các bạn là bài viết này tập trung hướng dẫn các bạn cách quản lý sự kiện với Geofence và cân đong đo đếm thời gian cần thiết để thực hiện một task nào đó với nó chứ chả đi vào chi tiết quá từng hàm đâu nhé. Mà thực ra có muốn đi chi tiết cũng khó, cơ ...

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

RecyclerView trong Android ( phần 2 )

Tiếp theo phần 1 ở phần này mình sẽ giới thiệu tiếp tới các bạn 1 số tính năng nổi bật của RecyclerView Sử dụng RecyclerView 7. Notifying the Adapter Có nhiều phương thức được sử dụng để thông báo khi có thay đổi nguồn dữ liệu trong Adapter. notifyItemChanged(int pos) -> Thông báo ...

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

Làm việc với Mesh trong Unity 3D - Phần 2

Chào các bạn, như phần đầu chúng ta đã đi được hết những phần cơ bản như tạo cấu trúc thư mục, script, các method,... Nếu bạn chưa theo dõi qua phần đầu thì có thể xem ở đây: https://viblo.asia/nguyen.van.tung/posts/BYjv44OgvxpV Kết quả của phần trước chúng ta làm được đó là mỗi khi kéo và thả ...

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

Tối ưu hóa schema và data type trong MySQL - P2

Cache and Summary Tables Thỉnh thoảng cách tốt nhất để nâng cao hiệu năng là lưu dữ liệu dư thừa ở cùng luôn với bảng origin giống như dữ liệu trước khi đổ vào bảng. Tuy nhiên có lúc bạn phải tạo hẳn một bảng sumary hay cache riêng. Cách làm này đặc biệt hiiệu quả khi bạn có thể đủ space để lưu ...

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

RingZer0team SysAdmin Linux Writeup

Tiếp theo serier các bài writeup ở trang ringzer0team.com lần này mình xin chia sẻ 1 số writeup cho phần Linux system. Cũng như bài trước với phương trâm không có gợi ý, biết thì dễ không biết thì khó. Mình đã mày mò và kiếm được 1 số point xin chia sẻ cùng các bạn. Nếu bạn nào muốn tự tìm flag thì ...

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

LibGDX Tutorial 13 - Network cơ bản

Trong tutorial này, chúng ta sẽ tìm hiểu về Network trong ứng dụng LibGDX. Network trong LibGDX tương đối nguyên thuỷ, chỉ hỗ trợ kết nối thông qua socket. Trong nhiều trường hợp, như vậy là quá đủ. Chúng ta sẽ ứng dụng socket đơn giản thông qua một ứng dụng chat. Lần này mình sẽ giải thích bằng ...

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

9 lợi ích của Test Driven Development

Test Driven Development là gì Test Driven Development, viết tắt là TDD, là một phương pháp phát triển phần mềm mà trong đó bạn sẽ viết test trước cho tính năng mà bạn muốn phát triển. Dĩ nhiên là test sẽ thất bại trong lần chạy đầu tiên, và sau đó bạn sẽ hoàn thiện đoạn code tính năng để test có ...

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