Cách viết một extension chrome cơ bản

Trước hết, chúng ta cần biết một extension là gì. Extension chỉ là một ứng dụng bao gồm HTML, CSS và JavaScript, nó cho phép chúng ta thêm một số tính năng vào trình duyệt Chrome thông qua một số API JavaScript và hiển thị trên Chrome . Một extension về cơ bản chỉ là một trang web được lưu trữ ...

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

[iOS] Share cho mọi người 1 source code làm việc với Google Maps

Như các bạn đã biết, khi một ứng dụng trên iOS muốn sử dụng map thì mặc nhiên chúng ta liền nghĩ đến 2 loại map MapKit hay Google Maps, một cái được Apple phát triển và tích hợp sẵn trong Xcode, còn 1 cái thì được phát hành bởi ông lớn Google. Theo quan điểm cá nhân, khi khách hàng không chỉ đích ...

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

Làm việc với lập trình viên? 10 điều sau sẽ giúp công việc của bạn trở nên suôn sẻ hơn.

Nếu bạn phải đoán điều lập trình viên ghét nhất là gì, bạn sẽ trả lời sao? Trên Quora, câu hỏi này đã thu hút 90 replies và gần 450k lượt xem. Rõ ràng vấn đề này khá thu hút được sự quan tâm của mọi người. Điều khiến tôi ngạc nhiên là một số vấn đề mà các lập trình viên phàn nàn lại có thể ...

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

5 Khó khăn và giải pháp trong kiểm thử di động

Sự bùng nổ của điện thoại di động rất rõ rệt và nó chưa có dấu hiệu dừng lại. Những chiếc smart-phone đang nhanh chóng trở thành phương pháp chính của sự tương tác cho người tiêu dùng và các doanh nghiệp trên toàn thế giới, cùng với đó là sự ra đời của hàng ngàn ứng dụng mỗi ngày. Các ứng dụng ...

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

ASP.NET MVC Tip #7 – Prevent JavaScript Injection Attacks with Html.Encode

Trong thủ thuật này, bạn biết rằng JavaScript tấn công Injection là nghiêm trọng hơn nhiều so với bạn nghĩ. Tôi chỉ cho bạn cách để làm những việc kinh khủng với một trang web ASP.NET MVC sử dụng một cuộc tấn công JavaScript Injection và sau đó tôi giải thích một cách dễ dàng để ngăn chặn kiểu tấn ...

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

Chrome Dev Tools có gì mới?

Chrome DevTools cho phép bạn thay đổi các phần tử và kiểu dáng trên trang web và xem các thay đổi của bạn ngay lập tức. Theo mặc định, nếu làm mới trình duyệt và các thay đổi sẽ biến mất trừ khi bạn đã sao chép và dán chúng vào trình biên tập bên ngoài một cách thủ công. Với chrome dev tools ...

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

Hướng dẫn tự động sao lưu dữ liệu mongodb lên AWS S3

Bài toán này xuất phát từ nhu cầu thực tế của team Machine Learning. Chẳng là anh em đang muốn backup dữ liệu của viblo lên cloud, để tiện sau này dùng, ngoài ra thì lưu nhiều data tại con product server của viblo cũng không phải giải pháp lâu dài. Thế là mình ngồi mày mò viết code ... php để sao ...

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

15 sự thật về nghề lập trình có thể bạn chưa bao giờ để ý

15 sự thật thú vị về nghề lập trình dưới đây, thật không may, không phải được nhiều người trong giới lập trình viên biết đến. Tuy nhiên, cũng cần phải nhắc rằng những kết quả dưới đây được đưa ra dựa trên những thử nghiệm và lý thuyết dựa trên một hoàn cảnh cụ thể. Điều đó có nghĩa là vẫn có những ...

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

OpenCV With Python Part 3

Ở bài trước mình đã hướng dẩn các bạn các bước để bắt đầu với một video, hướng dẩn load video từ camera, chạy một video từ file và cách lưu lại video đó như thế nào. Và ở bài viết tiếp theo này mình sẽ hướng dẩn về cách vẻ các hình, ký thự lên một bức ảnh hay video như thế nào nhé. Trong các bài ...

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

Lập trình shell-MNM

Một số bài tập trên lớp 1. Kiểm tra số nguyên tố: $$ ở đây là lấy pramater đầu tiên khi chúng ta truyền vào hàm isprime(). is_prime $$. Ở câu lênh trên $1 = $$ . #!/bin/bash is_prime(){ n=$1 if [ $n -lt 1 ];then return 0 fi for ((i=2;i<n;i++));do let ...

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

Làm thế nào để đổi mật khẩu 5000 Gmail?

Mình là lập trình viên java. Vừa rồi mình có đọc được một yêu cầu tuyển việc, có cái title là "Cần người code tool đổi mật khẩu gmail tự động". Nội dung cụ thể là "Tôi có khoảng 5000 tài khoản gmail, bao gồm username và password, tôi cần đổi tất cả mật khẩu cũ sang mật khẩu mới, ai code được tool, ...

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

Arel, the SQL manager for Ruby (path 2)

Trong bài viết này (https://viblo.asia/p/arel-the-sql-manager-for-ruby-path-1-L4x5xyQwKBM) mình đã dịch phần đầu bài viết Arel, the SQL manager for Ruby, sau đây là phần còn lại (bài viết khá dài mong bạn thông cảm) Nguồn bài viết: https://jpospisil.com/2014/06/16/the-definitive-guide-to-arel-the-s ...

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

Penetration Testing Android Application Checklist

Android là nền tảng có tổ chức lớn nhất của bất kỳ nền tảng di động nào và phát triển nhanh chóng mỗi ngày. Bên cạnh đó, Android đang tăng lên như là hệ điều hành mở rộng nhất trong quan điểm này vì những lý do khác nhau. Tuy nhiên, đối với an ninh, không có dữ liệu liên quan đến những lỗ ...

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

[Android] Tích hợp Emoticon và ảnh GIF vào ứng dụng chat trong Android

Các ứng dụng chat hay nhắn tin đang dần trở nên phổ biến, có thể kể đến 1 số ứng dụng như: Facebook Messenger, Google Hangouts, WhatsApp, Skype... Ngoài các tính nắng nổi trội thì bên cạnh đó, mỗi ứng dụng đều mang đến những emoticon rất dễ thương và thú vị. Bên cạnh đó, gần đây những đoạn chat + ...

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

Cơ bản về phân quyền cho file trong Linux (phần 2)

Trong bài viết Cơ bản về phân quyền cho file trong Linux (phần 1) mình đã giới thiệu sơ qua về phân quyền cũng như cách xem chi tiết phân quyền của một file bất kỳ trong hệ thống Linux. Ở bài viết này mình sẽ tiếp tục nói về các phương pháp phân quyền và một vài lưu ý phân quyền hiệu quả. ...

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

[iOS] Xây dựng ứng dụng thanh toán trực tuyến với Shopify mobile buy SDK [Phần 2]

Mở đầu Qua phần 1 chúng ta đã có cái nhìn đầu tiên về việc mua bán trên Shopify. Với việc thanh toán đơn giản, an toàn thông qua Shopify mobile buy SDK. Phần 2 này chúng ta sẽ bắt đầu xây dựng ứng dụng chi tiết hơn với việc tạo sản phẩm và show sản phẩm lên ứng dụng. Thao tác với Shopify store: ...

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

Reactive Cocoa: Function Reactive Programming!

Khởi động Auto Binding ~> Code Step 1 Tạo IBOutlet như bình thường chúng ta vẫn làm. // MARK: - IBOutlet @IBOutlet weak fileprivate var emailTextField: UITextField! @IBOutlet weak fileprivate var passwordTextField: UITextField! @IBOutlet weak fileprivate var ...

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

Gọi API với Net::HTTP

Thông thường trong các dự án sử dụng Ruby, khi cần làm việc với các ứng dụng bên thứ 3 chúng ta sẽ tìm các gem hỗ trợ. Tuy nhiên trong nhiều trường hợp, ứng dụng bên thứ ba không hỗ trợ gem Ruby. Hoặc gem đó đã bị quá hạn, không cập nhật dẫn đến việc sai lệch dữ liệu. Trong những trường hợp đó, ...

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

Tối ưu cấu trúc đường dẫn (URLs) trong Laravel 5

Tại sao nên tối ưu cấu trúc đường dẫn? Việc tối ưu cấu trúc đường dẫn sẽ giúp bạn tạo ra các đường dẫn thân thiện (Friendly URLs) để các công cụ tìm kiếm dễ dàng đọc, lập chỉ mục, dễ nhớ và ngắn gọn ngoài ra còn có thể bao gồm từ khóa có trong nội dung của đường dẫn để tốt nhất cho việc SEO. Ví ...

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

Giới thiệu Apache tapestry - component oriented java web framework

Model--View-Controller là một mô hình lập trình web khá phổ biến và được hỗ trợ rất mạnh bởi nhiều framework, nhất là SpringMVC. Tuy nhiên, MVC không phải là cách tiếp cận duy nhất trong lập trình web. Bài viết này muốn giới thiệu qua về Apache Tapestry, là một Component-Oriented Java Web ...

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