Welcome to Viblo
Free service for technical knowledge sharing
Join us to find useful information required to perfect your skill
Get started
Framework được thiết kế với mục đích chính là để giúp các web developer xây dựng các ứng dụng web. Mặc dù có rất nhiều Framework có sẵn nhưng khản năng phát hiện ra các lỗ hổng như CSRF hoặc giả mạo nội dung (chúng ta không nói về XML Entity và Paramater Pollution) là rất cao. Mặc dù, một số framework giúp các developer bảo vệ ứng dụng web, nhưng các developer không nên quá dựa dẩm vào các tính năng bảo mật được xây dựng trong các framework, để đảm bảo ứng dụng không bị truy cập trái phép. ...
20 0 0
1
JSON Feed là một tiêu chuẩn mới để formalize JSON dựa trên RSS feed nhằm đơn giản hóa việc tạo ra các feeds mà không phải dùng tới XML standard. Implement feed cho trang web của bạn đơn giản, và spec thực sự rõ ràng. Đây là một ví dụ đơn giản của nó: json { "version": "https://jsonfeed.org/version/1", "title": "My Example Feed", "homepageurl": "https://example.org/", "feed_url": "https://example.org/feed.json", "items": [ { "id": "2", ...
14 0 0
1
Các Rubyist chắc không còn xa lạ gì với khái niệm Gem. Khi cần tìm một Gem nào đó, chúng ta thường truy cập [RubyGems](http://rubygems.org/). Ở đây, gần như mọi Gem cần thiết cho việc phát triển đều có thể tìm thấy, thật tiện phải không. Nhưng với tư cách là một Rubyist chân chính muốn đóng góp cho cộng đồng Ruby, đã khi nào các bạn đặt ra câu hỏi, làm thế nào để tạo ra Gem ? và làm thế nào để mọi người biết đến, để đóng góp cho cộng động ? Bài viết này sẽ giúp bạn hiểu cơ bản về cách thức ...
5 0 0
0
![](https://viblo.asia/uploads/e5d6c9cf-9aee-49a4-968a-6adda4aa57a9.png) Khi bạn làm việc với ngôn ngữ lập trình yêu thích của mình, bạn thường tìm kiếm các công cụ để làm cho công việc của mình dễ dàng hơn. Trong thế giới Ruby, những công cụ này (gems) được tạo ra hàng ngày, nhưng chỉ một số trong số chúng là đủ tốt để chiếm được cảm tình của các coder. Gem devise là 1 trong những số đó. Nó được sử dụng rộng rãi hầu hết ở mọi project. Gem Devise là một giải pháp authentication linh hoạt ...
9 0 0
0
Là môt lập trình viên PHP (có thể cả ngôn ngữ khác) chắc các bạn không xa lại gì với ký hiệu &. Nhưng bạn có chắc là đã sử dụng hết tình năng của nó không? Vậy cùng điểm lại nhé. Toán tử thao tác bit AND(AND Bitwise Operators) Toán tử thao tác bit AND lấy 2 toán hạng nhị nhân có chiều dài bằng nhau và thực hiện phép toán lý luận AND trên mỗi cặp bit tương ứng bằng cách nhân chúng lại với nhau. Nhờ đó, nếu cả 2 bit ở vị trí được so sánh đều là 1, thì bit hiển thị ở dạng nhị phân sẽ là 1 (1 ...
19 0 0
0
Caching là một trong những lợi ích khiến ta chọn Hibernate thay vì JDBC. Bài viết này tôi xin trình bày chi tiết hơn về Hibernate caching. Hibernate cach có hai cấp độ (hai loại) là First level và Second level. Hibernate caching - First level First level cache trong Hibernate là chức năng được mặc định có. Ta không cần thiết phải thiết lập gì cho chức năng này, đồng thời ta cũng không thể loại bỏ chức năng này khỏi Hibernate. Để dễ hiểu First level cache trước tiên ta cần hiểu mối liên hệ ...
12 0 0
0
Kể từ thời điểm Google cho ra mắt Material Design, đã luôn có những cuộc tranh luận không hồi kết xung quanh Material Design và Flat Design: cái nào là tốt nhất? Nếu bạn đặt câu hỏi này với một vài nhà thiết kế, có lẽ bạn sẽ nhận được những câu trả lời khác nhau. Thiết kế giao diện người dùng bị ảnh hưởng bởi rất nhiều trào lưu trong những năm gần đây.Trong bài viết này, chúng ta sẽ cùng thảo luận, đâu sẽ là ngôn ngữ thiết kế giao diện người dùng tốt nhất. Sau khi đọc bài viết này, bạn sẽ ...
23 0 0
0
Reactjs: Hello World. Chào các bạn, từ rất lâu rồi tôi có mong muốn là tìm hiểu về reactjs. Tuy nhiên bắt đầu của tôi thực sự rất kém về kiến thức cơ bản như npm, component, webpack..... Trên con đường tôi đi đến học js thì vấp phải những cái chưa biết bao giờ như trên vì vậy để bắt đầu với Reactjs thì bạn cần biết trước đến những thứ như vậy. Bạn có thể tìm kiếm định nghĩa của các vấn đề trên ngạy tại trang Viblo này hoặc có thể biết đến với google. Định nghĩa về React Vâng bắt đầu một ...
26 0 0
1
Carrierwave là một trong nhưng gem mà có thể giúp các bạn upload file lên server như Paperclip, Dragonfly, Shrine … Nhưng mình thích Carrierwave bởi nó có rất nhiều tính năng và cũng dễ sử dụng nữa. Trong bài viết này mình sẽ giới thiệu với các bạn một cách tổng quát về cách sử dụng carierwave. Tạo một application Demo Như mọi bài mình sẽ tạo một app demo giúp các bạn có thể follow dễ dàng hơn rails new demo Tiếp theo chúng ta tạo một model Post trong đó có các thuộc tính title, body, ...
8 0 0
0
Enums Vậy Enums là gì? Có thể hiểu đơn giản Enums như sau: Enums là dùng để khai báo một loại dữ liệu mới (kiểu liệt kê). Các biến thuộc kiểu Enum này chỉ được phép chứa các giá trị đã được định nghĩa từ trước. Ví dụ // C++ enum DaysOfWeek { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }; DaysOfWeek test1 = SUNDAY; // OK DaysOfWeek test2 = 1; // Raise errors Enums trong Ruby on Rails Khác với các ngôn ngữ khác, Ruby lại không hỗ trợ kiểu dữ liệu Enums. Tuy nhiên ...
11 0 0
0
Gems Ruby For Website Movies With this the article, I want to show my experience with ruby on rails to make website movie, in the base ruby on rails provide the many gems, however maybe some of them you need to know, and how to use it for your website movie. However it is tip for you guy if you want to start up website movie and code it with ruby on rails. Google API I recommend you to use one gem it call: gem "google-api-client", it allows you to uploads your file movie to google drive. ...
22 0 0
0
Trong quá trình làm dự án, đôi khi chúng ta cần thực hiện việc copy text trên màn hình vào clipboard ( giống như khi copy url clone repo của git hub chẳng hạn), với js chúng ta có thể làm bằng nhiều cách, tuy nhiên với thư viện clipboard js, công việc này trở nên đơn giản và rất nhẹ nhàng. Trước hết các bạn cần cài đặt thư viện clipboard js bằng một trong các cách sau: I. Cài đặt thư viện Cách 1: Sử dụng npm để tải như sau: npm install clipboard --save Cách 2: Đơn giản các bạn có ...
23 0 0
1
Locking là một cơ chế RDBMS ngăn chặn người dùng từ nhiều transactions khác nhau gây ra data conflicts. Locking một row giúp ngăn chặn các transactions khác thay đổi row đó cho đến khi transaction đang truy cập vào nó kết thúc. Trong đó có 2 chiến lược lock là: optimistic và pesimistic. Trong bài post này, tôi sẽ giải thích sự khác nhau giữa pessimistic và optimistic locking đối với context của ADF framework. Pessimistic Locking Hầu hết các Oracle Developers đều rất quen thuốc với ...
15 0 0
1
Chắc hẳn các bạn lập trình viên đã từng ít nhiều nghe qua khái niệm Fat model - Skinny Controller khi nói về Framework MVC. Vậy như thế nào được gọi là Fat model hay Skinny Controller??? Keep as much business logic in the models as Rõ là khi nghe cái tên như thế, chúng ta cũng mường tượng ra được phần nào: kiểu như là, Fat model thì làm béo, làm phình model trong khi Skinny controller là làm gọn, thu nhỏ controller lại, giống với việc chúng ta làm đẹp Controller nhưng lại làm xấu Model ...
13 0 0
2
Scrum thường là loại practice Agile dễ bị lạm dụng nhất, bởi vì nó có thể được xem như là một cách dễ dàng khi làm Agile architecture. Khi hầu hết mọi người nghĩ đến Agile, họ nghĩ đến "Scrum". Scrum là khái niệm đơn giản nhưng có thể rất khó thực hiện tốt. Dưới đây là 10 lỗi phổ biến khi áp dụng Scrum và cách tránh chúng: Nghĩ rằng chuyển đổi sang Agile và Scrum là dễ dàng Thông thường, mọi người mới bắt đầu với Agile hoặc Scrum sẽ làm như sau, bắt đầu thu thập các requirement, chia nhỏ ...
49 0 0
1
Array và Hash Table là hai trong số những kiểu dữ liệu được sử dụng khá thường xuyên trong lập trình. Trên thực tế thì cả hai kiểu dữ liệu này được sử dụng theo cách tương tự nhau và thường thực hiện các tác vụ phổ biến như thêm dữ liệu, tìm kiếm, sửa và xoá dữ liệu. Đối với các lập trình viên ít kinh nghiệm thì hai kiểu dữ liệu này không có gì khác biệt. Điều này cũng không phải là lạ bởi sự khác biệt giữa Array và Hash Table chỉ được thể hiện rõ nét khi chúng được đánh giá trên góc độ ...
37 0 0
0
![](https://viblo.asia/uploads/aea1147b-2fbe-42b3-a8fc-2c2e3651337d.png) Hiện nay chúng ta vẫn thường sử dụng Retrofit cho việc connect với Server, trong phạm vi rất rộng của việc giao tiếp Client-Server thì có quá nhiều thứ chúng ta có thể làm nên mình không đề cập ở đây. Nhưng có 1 khía cạnh nhỏ mà rất hay gặp phải đó là: Refresh Token À đúng rồi đây là điều đã được biết khi token server gửi về cho client sử dụng làm key chính cho những lần giao tiếp và nó sẽ bị hết hạn trong 2 hoặc vài ...
19 0 0
1
Trong quá trình lập trình web, có những lúc ta có nhu cầu phải chụp lại màn hình trang web lại, để chia sẻ, hoặc là một chức năng cần có của app. Vậy bạn thường chụp lại màn hình bằng cách nào? Sử dụng phím PrintScreen? Phím này chỉ có thể giúp chụp lại những gì có trên màn hình lúc đó. Hoặc có thể sử dụng một plugin của trình duyệt hoặc một phần mềm phụ trợ? Cách này có thể giải quyết được vấn đề trên nhưng không thể tương thích với mọi loại trình duyệt, mọi hệ điều hành. Phương pháp triệt ...
32 0 0
0
Lời mở đầu TIếp theo phần 2, trong phần này mình sẽ giới thiệu với các bạn về thiết kế phần trong một dịch vụ khả phổ biến hiện nay đó là mạng xã hội trực tuyến. Trong bài viết này mình chỉ mình đến module timeline và search. Một điều quan trọng nữa các bạn sẽ thấy đó là các step giống hệt nhau, điều đó có nghĩa với bất kỳ hệ thống nào nữa thì cách tiếp cận vấn đề là không thay đổi. Step 1 : Phác thảo ra các use case và những ràng buộc Thu thập các yêu cầu và phạm vi vấn đề. Đặt ra các câu ...
56 1 0
2
What Is Amazon S3? Amazon S3 (Amazon Simple Storage Service ) là dịch vụ lưu trữ file trên Internet của Amazon. Nó được thiết kễ chủ yếu để hỗ các trang web lớn dễ dàng phát triển. Amazon có nhiều dịch vụ đơn giản để lưu trữ dữ liệu với số lượng lớn và truy xuất ở bất kỳ đâu trên web. Nó cung cấp cho nhà phát triển truy cập vào vùng lưu trữ dữ liệu nhanh chóng, đáng tin cậy mà chi phí thấp, không tốn kém. Dịch vụ này tối đa hóa những lợi ích đối với nhà phát triển sử dụng dịch ...
36 0 0
1