Skip to content
Showing 51-100 of 228 items.
@renovate
Admin 11/03/2021 14:40
Cách đặt log hiệu quả trong Android

Đặt Log đôi khi có thể được coi là công cụ được sử dụng như một phương sách cuối cùng. Bạn viết rất nhiều dòng log như "being here", "user=23939", v.v. và xóa mọi thứ ngay khi bạn hiểu nguyên nhân gốc rễ của lỗi. Và lần sau, bạn bắt đầu lại. Tôi thấy rằng log có thể hữu ích hàng ngày nếu được thực hiện đúng cách. Dưới đây là một số mẹo để đặt log tốt hơn...

Happy New Year Activity Android
@renovate
Admin 12/03/2021 11:50
OAuth2: Những điều chúng ta không nên bỏ qua.

Câu chuyện này bắt đầu từ năm 2020, hồi đó có ngồi vọc vạch viết Restful API sử dụng Nestjs framework. Sau khoảng hơn một năm khi dự án đã lên production, khách hàng của tôi có thêm những yêu cầu mới. Tuy nhiên, lúc đó tôi đã là một Fan hâm mộ của Golang và chợt nhận ra mình phải giải quyết thêm một bài toán nữa. Đó chính là bài toán liên quan đến Authentication và Authorize. Trong lúc còn...

Happy New Year
@renovate
Admin 12/03/2021 14:50
Đặt tên commit message sao cho "tình nghĩa anh em chắc chắn bền lâu"????

Lời mở đầu Chắc hẳn anh em coder đã không còn lạ lẫm gì với workflow và các command thông thường trong quá trình làm việc với Git phải không nào (còn nếu bạn mới bắt đầu tìm hiểu và chưa biết gì về git, hãy thử xem qua bài viết này). CHÚ Ý: Đừng nhầm lẫn 2 khái niệm git và github nhé, nó không phải là 1 đâu, Git là phần mềm quản lý mã nguồn, còn Github là dịch vụ lưu trữ trực...

Happy New Year Git Conventional Commits
@renovate
Admin 12/03/2021 16:50
Tập tành crawl dữ liệu với Scrapy Framework

Lời mở đầu Chào mọi người, mấy hôm nay mình có tìm hiểu được 1 chút về Scrapy nên muốn viết vài dòng để xem mình đã học được những gì và làm 1 demo nho nhỏ. Giả sử dạo này đang nhiều tiền muốn nhập Macbook về bán lấy hời, và giờ muốn nghiên cứu những shop khác họ bán những con Macbook nào và giá rổ ra làm sao thì chả nhẽ mình phải lên trang web của họ rồi xem trực tiếp từng...

Happy New Year Python crawl data Scrapy
@renovate
Admin 12/03/2021 18:10
Extreme Programming - Lập trình cực hạn là gì? Vai trò và giá trị cốt lõi

Trong thời đại ngày nay, dần dần mô hình quản lý dự án truyền thống Waterfall dần bị thay thế bởi những mô hình Agile, khi mà dự án cần sự linh hoạt cao, đáp ứng được tốt hơn yêu cầu của khách hàng ngày càng khó tính. Ngoài scrum là một mô hình Agile rất phổ biến, bài viết này sẽ đề cập đến Extreme Programming, một mô hình cũng dần phổ biến bởi nhiều đặc tính nổi trội của nó....

Happy New Year Project Management
@renovate
Admin 13/03/2021 08:00
In calculus, love also means zero.

Mình nhớ hồi năm 2 đại học, thầy giáo môn calculus, trong một giây phút ngẫu hứng, đã đưa ra cái definition này. Lúc đấy mình cũng không nghĩ gì nhiều. Hôm nay trong lúc design cái CI/CD pipeline, tự nhiên nhớ lại. Chợt nghĩ: Nếu mình sinh ra sớm hơn chút xíu, mình sẽ xúi (dại) người sáng tạo ra Docker, để người đó đặt tên Docker là Heart. Cứ nghĩ mà xem, pushing (her) heart, pull (her) heart. Nghe động...

Happy New Year DevOps Docker
@renovate
Admin 13/03/2021 10:20
Tìm hiểu về Transaction Log

Xin chào mọi người, thường là khi tìm tới các chủ đề khá 'chi tiết' về SQL thì chắc hẳn các bạn cũng đã khá quen thuộc với khái niệm cơ sở dữ liệu là gì rồi. Hôm nay mình sẽ chia sẻ về 1 khía cạnh mà hầu như khi chúng ta làm việc với hệ quản trị cơ sở dữ liệu ( cụ thể là SQL SERVER) thì đều sẽ bỏ qua và thậm chí là không hề biết đến, đó là Transaction Log. Trước khi đến...

Happy New Year
@renovate
Admin 13/03/2021 10:40
Docker cơ bản - image và container

Xin chào mọi người, ngày hôm nay mình xin phép quay lại với một bài viết về môi trường development khi phát triển ứng dụng. Và mình xin chia sẻ một chút kiến thức về Docker - một công cụ tuyệt vời cho việc phát triển hay scale (mở rộng) ứng dụng. Với chút kiến thức ít ỏi của mình hy vọng giúp được phần nào để các bạn hiểu đôi chút cơ bản và bắt đầu sử dụng Docker. Chúng ta cùng...

Happy New Year
@renovate
Admin 13/03/2021 23:00
Áp dụng 5 mẹo hữu ích này cho Xcode

1. Tìm kiếm sử dụng RegEx: Các bước : Chọn File Navigator từ menu ở phía trái Xcode Chuyển chế độ Text preference sang Regular Expression Giờ chúng ta có thể tìm kiểu bằng RegEx 2. Mở một project từ Terminal với Xcode Chúng ta có thể mở những Xcode dự án từ Terminal. Nếu chạy lệnh xed. trong thư mục index của dự án, nó sẽ mở dự án trực tiếp. 3. Xem interface của các tệp class hoặc struct Nếu bạn...

Happy New Year
@renovate
Admin 14/03/2021 16:30
Crypto Crew University Review – Top Crypto Courses For Traders

Becoming a successful trader isn’t that hard if you choose Crypto Crew University as your teacher. You can learn all dominating strategies from the leading experts. Read this Crypto Crew University review to know more. 5 Benefits Of Crypto Courses Say No To Losses If you are tired of constantly losing money, then it’s time to come up with a better plan. Each crypto course from Crypto Crew University will provide the most outstanding strategies. In other words, money won’t leave your...

Happy New Year Blockchain cryptocrewuniversityreview cryptocrewuniversitycoupon cryptocrewuniversity
@renovate
Admin 14/03/2021 18:30
Live Server - Làm gì khi cái VS Code extension thân yêu trở chứng?

Hôm nay là một ngày Chủ Nhật cuối tuần đẹp trời để... code. Như bao ngày cuối tuần, mình lại ngồi vào máy, bật VS Code để vọc vạch những thứ linh tinh về web, JS các kiểu. Lâu ngày mở lại cái pet project từ thời tám hoánh nào đó mà mình viết bằng HTML, CSS, JS thuần, cái thời chưa biết React, Vue là cái beep gì, lúc đấy toàn xài cái Live Server Extension để phục vụ cho việc development. Vậy...

Happy New Year Visual Studio Code Live Server
@renovate
Admin 14/03/2021 19:50
Rails - Docker - Circle CI - Github

Như tiêu đề, thì trong bài này mình sẽ hướng dẫn tạo 1 project rails, sử dụng docker, circle CI và check statut pass trước khi merge PR trên github Tạo rails app với docker Tạo rails app Trước hết bạn cần tạo mới 1 rails app ở local(nên ở local bạn cần cài đặt rails từ trước) rails new circle-ci -d mysql mình dùng db là mysql, nên có -d mysql Khi tạo xong rails app, thì đừng vội làm gì cả, chúng ta sẽ chuyển...

Happy New Year Ruby on Rails Docker CircleCI GitHub
@renovate
Admin 14/03/2021 23:20
Docker networking được xây dựng và hoạt động thế nào?

Một trong những lý do Docker là một nền tảng rất mạnh mẽ là bởi lẽ bạn có thể kết nối các container hay các service của chúng với nhau một cách dễ dàng, hoặc có thể kết nối với những service không phải Docker. Các container hay service của docker cũng không cần phải biết chúng được deploy trên Docker, hay là các service hoạt động với chúng có phải là service Docker hay không. Bất kể các host chạy...

Happy New Year Docker docker networking
@renovate
Admin 15/03/2021 00:20
Tìm hiểu về hệ phân tán (Phần 7: Tính chịu lỗi ) - Part 1

Trong hệ thống phân tán, lỗi có thể xảy ra ở bất cứ thành phần nào, là lỗi máy chủ hay lỗi mạng đều làm giảm hiệu năng và có thể làm gián đoạn dịch của hệ thống. Một yêu cầu quan trọng khi xây dựng hệ thống phân tán là phải lường trước được các lỗi có thể xảy ra và chuẩn bị phương án xử lý sao cho tối thiểu hóa ảnh hưởng của nó đến hệ thống. Hay nói cách khác, khi...

Happy New Year Fault Tolerance tính chịu lỗi hệ phân tán
@renovate
Admin 15/03/2021 01:50
Javascript - Phân biệt let, const và var

Giới thiệu Javascript 2015 (ES6) ra mắt kèm theo rất nhiều tính năng giúp chúng ta viết code một cách gọn gàng, sạch đẹp hơn, dễ dàng đọc hơn. Một số chức năng tiêu biểu như: let, const, arrow function, promises, ... Trong bài viết này chúng ta sẽ tìm hiểu về let và const phục vụ trong việc khai báo dữ liệu trong JS. Sự khác biệt của let, const và var. Sự khác biệt Hoisting Trước tiên ta sẽ tìm hiểu xem...

Happy New Year JavaScript es6
@renovate
Admin 15/03/2021 02:50
Java deserialization - Write up MatesCTF 2018 WutFaces

Mở đầu Bài ctf này là 1 bài rất hay về lỗ hổng java deserialization mà các bạn muốn tìm hiểu về lỗ hổng này nên làm. Mức độ kiến thức trong bài cũng khá cao. Thông qua bài này chúng ta có 1 cái nhìn tổng quan về lỗ hổng cũng như focus ta vào cách viết PoC 1 day. Một lĩnh vực khá là thú vị. Cảm ơn bài viết MatesCTF 2018 WutFaces & CVE-2013-2165 của anh @tint0. Bài viết của anh không đi vào chi...

Happy New Year CTF Java deserialization Write Up
@renovate
Admin 15/03/2021 07:50
Docker cơ bản (P1) - image và container

Xin chào mọi người, ngày hôm nay mình xin phép quay lại với một bài viết về môi trường development khi phát triển ứng dụng. Và mình xin chia sẻ một chút kiến thức về Docker - một công cụ tuyệt vời cho việc phát triển hay scale (mở rộng) ứng dụng. Với chút kiến thức ít ỏi của mình hy vọng giúp được phần nào để các bạn hiểu đôi chút cơ bản và bắt đầu sử dụng Docker. Chúng ta cùng...

Happy New Year
@renovate
Admin 15/03/2021 08:10
Khai thác lỗ hổng File Upload trên php để up shell

1.Giới thiệu Trong thực tế chúng ta bắt gặp rất nhiều trang web cho phép chúng ta upload file từ máy lên. Đơn giản như upoad hình nền làm avatar hoặc gửi file video các thứ. Tuy nhiên nếu chúng ta không đảm bảo file upload lên được kiểm soát chặt chẽ, hacker rất có thể sẽ sử dụng các shell giả mạo dưới dạng file ảnh nhằm thực thi mã và chiếm quyền điều khiển. Bài viết này sẽ chỉ cho bạn...

Happy New Year sharpuploadfile
@renovate
Admin 15/03/2021 10:50
Đọc Medium khi bị nhà mạng chặn

Intro Dạo gần đây nhà mạng VN cứ chặn medium làm mình không load được, làm mọi cách rồi nhưng mà vẫn không truy cập được medium ngoài bật VPN sang nước khác , tuy nhiên mình lại có con VPS bên Châu Âu nên thành ra chạy khá chậm. Ban đầu mình định config allow các IP của medium mới chạy qua VPN, tuy nhiên Medium lắm IP nên việc này khả thi nhưng mất thời gian =)). Tuy nhiên có một cách khác mà bạn...

Happy New Year switchy omega wiregoard Medium
@renovate
Admin 15/03/2021 11:20
Bảo mật các tệp tải lên AWS S3 bằng presigned URLs

1. Giới thiệu Mặc định , tất cả các object là private - nghĩa là chỉ bucket account owner mới có quyền truy cập vào đối tượng . Nếu bạn muốn user có thể truy cập đến bucket cụ thể hoặc object mà không public chúng bạn có thể cung cấp cho user với quyền thích hợp sử dụng IAM policy . Ngoài ra để cho phép truy cập sử dụng IAM policy ban cũng có thể tạo một presigned URL - nghĩa là user có thể...

Happy New Year sharpuploadfile Amazon S3
@renovate
Admin 15/03/2021 11:20
Lỗi validation với nested array object data ở laravel 5.7

Giải thích về issue: Khi validate data có dạng array object, bạn dùng validation form có rules như bên dưới. public function rules() { return [ 'timestamp' => 'nullable|max:20|date_format:Y/m/d H:i:s', 'count' => 'nullable|integer', 'data' => 'required|array', 'data.*.id' => 'required|max:100', 'data.*.type' => 'required|max:20', 'data.*.name' =>...

Happy New Year Laravel
@renovate
Admin 15/03/2021 11:50
Laravel job is retried even when option tries is set to 1

Lỗi như tiêu đề, bạn có thể xem tại https://github.com/laravel/framework/issues/15696 Và 1 lần nữa mấy anh contributors của laravel lại bảo đây là feature =)) https://github.com/laravel/framework/issues/15696#issuecomment-250935907 Tóm tắt lại là laravel sẽ chạy lại job sau khi job bị timeout bất kể bạn để try time bao nhiêu lần. Đọc code của laravel bạn sẽ thấy....

Happy New Year Laravel
@renovate
Admin 15/03/2021 12:20
Thực hành truy vấn tìm kiếm dữ liệu trong Elasticsearch với dữ liệu sản phẩm của Shoppe

I. Mở Đầu: Hello mọi người, như mọi người đã biết thì Elasticsearch là một engine mạnh mẽ phục vụ cho việc tìm kiếm dữ liệu thông minh hơn, đáp ứng về mặt tốc độ gần như là Realtime và khả năng phân tán dữ liệu rất tốt của nó. Có rất nhiều bài viết đi từ tổng quan đến chi tiết về Elasticsearch trên Viblo rồi nên mọi người tìm kiếm để tìm hiểu và cài đặt nhé, hôm nay mình...

Happy New Year tìm kiếm Tối ưu truy vấn Elastic Search tìm kiếm cho dữ liệu lớn
@renovate
Admin 15/03/2021 13:20
Nguyên tắc thứ tư trong SOLID: Interface Segregation Principle

Câu chuyện về cái tên Interfact Segregation Principle (ISP) có thể kể bắt đầu từ cái đồ thị dưới đây: Trong tình huống được minh hoạ trong đồ thị trên, có một vài user sử dụng các thao tác của class OPS (đặt tên class là OPS vì nó viết tắt của operations ấy mà). Giả sử rằng người dùng User1 chỉ sử dụng method op1, User2 chỉ sử dụng op2, User3 chỉ sử dụng op3. Giờ nếu như mà OPS là một...

Happy New Year Software Architecture
@renovate
Admin 15/03/2021 13:40
Xây dựng Ứng dụng hiển thị hình ảnh với thư viện Glide trong Android

1. Glide là gì ? Glide là thư viện Android mã nguồn mở phổ biến để tải hình ảnh, video và ảnh động GIF. Với Glide, bạn có thể tải và hiển thị hình ảnh từ nhiều nguồn khác nhau, chẳng hạn như từ server hoặc các ảnh lưu cục bộ. Theo mặc định, Glide sử dụng thực hiện tùy chỉnh của HttpURLConnection để tải hình ảnh qua internet. Tuy nhiên, Glide cũng cung cấp các plugin cho các thư viện mạng...

Happy New Year ActiveAndroid
@renovate
Admin 15/03/2021 15:40
[Secure coding - Part 4] Là developer cần làm gì để ứng dụng của mình an toàn và bảo mật hơn?

Tổng quan về vấn đề bảo mật Trở lại với chuỗi bài viết về hướng dẫn lập trình an toàn cho lập trình viên, bài viết thứ tư trong series's post: Secure coding for developers sẽ tiếp tục với nội dung về các vấn đề liên quan đến các vấn đề: Error handling and Logging, Data protection. Việc xử lý lỗi hệ thống, lỗi ứng dụng hay lưu log ứng dụng là vấn đề cần được quan tâm vì nếu không...

Happy New Year secure coding security guides security tips web security
@renovate
Admin 15/03/2021 15:50
[Swift tricks] Preserving Initializers

Làm thế nào để tạo custom initializer và vẫn giữ được default initializer của structure? Trong bài viết này, chúng ta cùng sẽ dùng 1 struct Person để làm ví dụ. Struct này có 2 constant property là first và last. Swift sẽ tự động tạo cho chúng ta một default initializer, init(first:last:), và tất nhiên chúng ta có thể sử dụng initializer này để tạo 1 instance của struct Person: Nhưng trong thực tế sẽ có lúc...

Happy New Year Swift Swift Tricks
@renovate
Admin 15/03/2021 16:40
Build, Deploy Express Nodejs App với Docker Image, Kubernetes và Gitlab Registry

I, Đôi chút về Kubernetes Kubernetes: là dịch vụ điều phối container. Được phát triển bởi Google và tặng lại cho Tổ chức Điện toán đám mây CNCF. Kubernetes hiện là nguồn mở. Có lợi thế là tận dụng nhiều năm kinh nghiệm trong quản lý container của Google. Đó là một hệ thống toàn diện để tự động hóa việc triển khai, lập lịch và nhân rộng các ứng dụng được đóng gói và hỗ trợ nhiều...

Happy New Year Docker Docker Registry deploy using kubernetes
@renovate
Admin 15/03/2021 16:50
Tổ chức TableView một cách hiệu quả trong iOS

Giới thiệu TableView là một trong những component sử dụng phổ biến trong các ứng dụng iOS. Trong bài viết này ta sẽ phân tích và từng bước để tổ chức Table View một cách hiệu quả để dễ dàng bảo trì và áp dụng được nhiều yêu cầu khác nhau về dữ liệu. Giả sử ta cần xây dựng một TableView với nhiều kiểu cell khác nhau, giống như hình dưới đây: Với yêu cầu như sau: Dữ liệu hiển...

Happy New Year
@renovate
Admin 15/03/2021 17:10
Cache lại Laravel API với ETag

Mở đầu Hiện nay, các ứng dụng web hiện đại thường tách biệt các thành phần frontend và backend, việc này giúp cho bạn chủ động trong việc phát triển từng thành phần, có thể deploy từng thành phần riêng biệt. Khi đó phía frontend sẽ sử dụng dữ liệu từ backend thông qua các API, vì thế dần bạn sẽ phải quan tâm tới các request tới API, khi nào cần fetch dữ liệu từ API, hay khi nào dữ liệu...

PHP Happy New Year Laravel Ruby
@renovate
Admin 15/03/2021 18:40
Mô hình cơ sở dữ liệu EAV giải quyết bài toán các thực thể có số lượng các thuộc tính thay đổi

Giới thiệu mô hình CSDL EAV Mô hình csdl EAV viết đầy đủ là Entity-Attribute-Value Pattern là một mô hình đáp ứng được việc xây dựng hệ thống yêu cầu có sự tùy biến các thuộc tính của bảng thường xuyên tăng. EAV là một cấu trúc thiết kế cơ sở dữ liệu trong Magento. Điểm mạnh của mô hình cơ sở dữ liệu này là có tính tùy biến tính mở rộng cao, không bị dư thừa dữ liệu. Bài toán...

Happy New Year Entity-Attribute-Value Pattern
@renovate
Admin 15/03/2021 22:40
Một số cách nối chuỗi trong Javascript

Trong bài viết này, mình sẽ đưa ra một cách nối chuỗi trong Javascript, hy vọng sẽ giúp code của bạn ngắn hơn và dễ đọc hơn. 1. Sử dụng template string Template string là một tính năng trong ES6, cú pháp của tính năng này cho phép chúng ta có thể viết biểu thức ngay bên trong chuỗi. Trong đó, thay vì sử dụng cặp dấu " " hay ' ' bao quanh chuỗi thì sử dụng cặp dấu ` `. Để hiểu rõ hơn, mình...

Happy New Year Javascript ES6
@renovate
Admin 16/03/2021 00:20
Apache Presto - Toán tử và hàm có sẵn trong SQL

Trước khi bắt đầu bước vào thực hành về Presto, chúng ta nên biết cơ bản những dữ liệu, hàm có sẵn do Presto cung cấp, để tránh những lỗi cơ bản về kiểu dữ liệu, cũng như việc ''nhu nhốc" như build lại một hàm đã có sẵn. Dạng dữ liệu cơ bản TT Kiểu dữ liệu và mô tả 1. VARCHAR Dữ liệu ký tự có độ dài thay đổi 2. BIGINT Một số nguyên có dấu 64 bit 3. DOUBLE Đây...

Happy New Year
@renovate
Admin 16/03/2021 01:00
Linux Hardening and System Auditing (P2)

Tiếp nối những kiến thức đã tìm hiểu xong ở P1 . Hôm nay chúng ta sẽ cùng nhau điểm thêm những hướng dẫn quan trọng - giúp nâng cao bảo mật cho các máy chủ Linux. 9. Set Password Expiration Days Tham số PASS_MAX_DAYS trong /etc/login.defs cho phép người quản trị bắt buộc mật khẩu phải hết hạn sau một khoảng thời gian nhất định. Điều này sẽ làm giảm việc kẻ tấn công có thể sử dụng thông tin...

Happy New Year
@renovate
Admin 16/03/2021 08:20
[Series CentOS ] Phần 1: Đặt IP tĩnh siêu nhanh bằng tool NMCLI

Các bước đổi IP tĩnh cho thiết bị sử dụng hệ điều hành CentOS (CentOS 7, CentOS 8 ) một cách đơn giản và cực kì nhanh chóng với 6 CLI sau 1. Kiểm tra các card đang có và xác định tên card mạng cần đặt ip tĩnh nmcli c 2. Đặt ip với tên card mạng tương ứng nmcli c m ens33 ipv4.addresses 192.168.99.100/24 3. Đặt ip gateway nmcli c m ens33 ipv4.gateway 192.168.99.1 4. Đặt mode static nmcli c m ens33 ipv4.method...

centos Happy New Year best tips Linux OS
@renovate
Admin 16/03/2021 08:20
Giải quyết vấn đề với phương pháp 5 Whys

1. Giới thiệu Trong công việc, cũng như cuộc sống hằng ngày, việc gặp phải những vấn đề xảy ra ngoài kế hoạch có lẽ là không thể tránh khỏi. Đặc biệt trong công việc lập trình, những xung đột không hẳn là mang nghĩa tiêu tực, đôi khi “Không gặp vấn đề gì mới là vấn đề lớn nhất”. Những lúc như vậy việc phân tích nguyên nhân vấn đề, đưa ra biện pháp giải quyết, tránh lặp...

Happy New Year
@renovate
Admin 16/03/2021 11:10
Tìm hiểu một chút về JWT

Hello mọi người, trong bài viết hôm nay mình cùng các bạn sẽ cùng tìm hiểu về JWT nhé. JWT là gì ? JWT ( Json Web Token ) là 1 tiêu chuẩn mở (RFC 7519) định nghĩa cách truyền thông tin một cách an toàn giữa các bên dưới dạng đối tượng JSON. Thông tin này có thể được xác thực và đánh dấu tin cậy nhờ vào "chữ ký" của nó. Phần chữ ký của JWT sẽ được mã hóa lại bằng HMAC hoặc...

Happy New Year jwt
@renovate
Admin 16/03/2021 11:30
Tôi đã đánh cắp tên miền của MIT như thế nào?

Chào cả nhà, lại là mình đây! Hôm này mình mang tới chủ đề mới đó là subdomain takeover hay nói cách đơn giản chiếm subdomain của người khác. Lỗi này rất thú vị và khá đơn giản để tìm kiếm. Trước khi đi vào nội dung chính mình sẽ nói về tổng quan về lỗi subdomain takeover và tại sao nó lại xảy ra. Tổng quan subdomain takeover Để hiểu được lỗi này trước tiên ta cần tìm hiểu quá trình...

Happy New Year subdomain takeover hacking CyberSecurity
@renovate
Admin 16/03/2021 13:30
Tôi đã dùng Service Pattern trong NuxtJS như thế nào ?

Giới thiệu Trong quá trình làm VueJS NuxtJS hay thậm chí là Laravel mình cũng hay áp dụng các pattern như Service hoặc Repository. Mình cũng đã trải nghiệm qua thằng Angular, và thực sự nó support các pattern này khá tốt và theo khuôn khổ. Với VueJS hay Nuxt thì các dev sẽ phải cần có kinh nghiệm và tự dựng bằng tay Bài viết này mình mong muốn chia sẻ về cách sử dụng Service pattern trong NuxtJS mình hay làm...

Happy New Year VueJS Design Pattern nuxt
@renovate
Admin 16/03/2021 14:00
Các kĩ thuật hack cơ bản lập trình viên nên biết - Phần 2

Part 1 Part 2 Directory Traversal Là lỗ hổng cho phép hacker có thể đọc được các file trên server, cơ bản nhất là qua url, có thể là param hoặc đường dẫn trực tiếp Ví dụ: bạn có url foodle.com/menus?menu=menu.pdf => foodle.com/menus?menu=../../../../ssl/private.key => xong cái server nhà bạn Hoặc dễ thấy nhất là bạn có url file (thường là ảnh) foodle.com/upload/images/menu/menu2nd.png => oodle.com/upload/images =>...

Happy New Year Hack Basic security
@renovate
Admin 16/03/2021 15:00
Lambda expression trong Java là cái giề?

Hãy nghĩ về lambda expression như một cú pháp rút gọn cho compiler (tương tự như khi ta lập trình trên các IDE, chỉ cần gõ psvm + Tab sẽ ra được hàm “public static void main(String[] args)”), khi compiler thấy cú pháp lambda, nó sẽ mở rộng ra thành hai phần: phần định nghĩa class và phần khởi tạo class. Nếu bạn nghĩ nó như một công cụ để rút ngắn code lại, bạn sẽ yêu thích nó, đến mức mà bạn...

Happy New Year Java Lambda
@renovate
Admin 16/03/2021 18:10
Router, Controller trong Express

Mở đầu Xin chào các bạn mình đã quay trở lại rồi đây, tiếp tục với series Nodejs cơ bản thì hôm nay mình sẽ giới thiệu đến các bạn Express Router và Controller.Vậy tại sao lại cần chia ra làm gì code kia vẫn đang chạy ổn mà nhỉ . Đúng là code kia vẫn đang chạy được nhưng bạn thử nghĩ xem mình đang code tất cả ở file index.js mà một trang web thì cần quản lý rất nhiều thứ nếu chúng ta...

Happy New Year Nodejs express controller Router
@renovate
Admin 16/03/2021 20:30
Linux Networking: Sử dụng Netstat quản lý mạng trên Linux

Giới thiệu netstat (network statistics) là một công cụ mạng nằm trong gói công cụ net-tools, sử dụng dòng lệnh, được sử dụng để khắc phục sự cố và cấu hình mạng. netstat là công cụ hoạt động đa nền tảng, được tích hợp sẵn trên các hệ điều hành Linux, Unix-Like và có sẵn trên cả Windows. Đây là một trong những công cụ gỡ lỗi dịch vụ mạng cơ bản nhất trên Unix/Linux, mạnh mẽ và...

Happy New Year
@renovate
Admin 17/03/2021 00:40
Tìm hiểu về nền tảng Huobi ECO Chain – Heco

Heco chain là gì Huobi ECO Chain (Heco) là một nền tảng blockchain đầu tiên được ra mắt trên Huobi Open Platform. Nền tảng này được giới thiệu là một nền tảng public chain decentralized, có hiệu quả cao và tiết kiệm phí giao dịch. Nó thì cho phép lập trình smart contract và hỗ trợ các giao dịch với hiệu suất cao. Native token của Heco chain là HT và nó sử dụng cơ chế đồng thuận HPoS. Houbi thì cũng...

Happy New Year Blockchain Solidity
@renovate
Admin 17/03/2021 08:30
Các mẹo nhỏ để tăng hiệu suất trong React component

Hello hello, hôm nay mình sẽ chia sẻ một số cách để làm tăng hiệu suất của React khi chúng ta sử dụng với MobX. Và nó hầu hết có thể áp dụng khi chúng ta sử dụng React, không phải dành riêng cho MobX nhé. Let's gooooooooooo!!!!!!! 1. Chia nhỏ các component (Use many small components) Observer components sẽ theo dõi tất cả các giá trị mà chúng sử dụng và tracking lại nếu bất kỳ giá trị nào trong số chúng thay...

Happy New Year React MobX
@renovate
Admin 17/03/2021 09:50
TailwindsCSS có gì hay ?

1. Mở đầu Đổi với các bạn làm việc bên phía front-end hoặc thậm chí cả back-end thì cái tên Bootstrap không còn xa lạ gì với chúng ta. Đây là một trong những framework nổi tiếng hỗ trợ chúng ta trong việc style cho trang web của chúng ta. Framework này cũng đã gắn bó với mình trong rất nhiều các dự án khác nhau cho đến gần đây mình thấy có một cái tên khác bắt đầu được nổi lên đó là...

Happy New Year TailwindCSS
@renovate
Admin 17/03/2021 11:20
Tạo ra virus bằng tool (Part2)

Ở phần trước chúng ta đã làm quen với các khái niệm về phần mềm và con đường tạo ra virus giờ chúng ta cùng đi sâu vào khâu thực hành nhé ! Link part 1 : https://viblo.asia/p/tao-ra-virus-bang-tool-part1-maGK7Awelj2 Ta quan sát thì file notepad2.exe chỉ có 4 section của code, việc tiếp theo là chúng ta sẽ thêm 1 section nữa thông qua các thao tác sau: Ở đây, phần mềm sẽ cho ta chọn cách Add section sao cho hợp...

Happy New Year virus
@renovate
Admin 17/03/2021 13:10
[PHP] The Structure of PHP (P2)

Trong bài này, chúng ta tiếp tục cùng nhau tìm hiểu về cấu trúc tổng quát của ngôn ngữ PHP nhé. Multiple-Line Commands Trong thực tế, đôi khi ta cần output ra khá nhiều nội dung text, và nếu dùng nhiều lệnh echo (hoặc print) thì có vẻ khá tốn thời gian và trông lộn xộn. Để khắc phục điều này, PHP đã cung cấp 2 tiện ích. Một là, viết nhiều dòng nằm trong dấu nháy kép. Hai là, có thể gán giá trị...

Happy New Year lap trinh vien php
@renovate
Admin 17/03/2021 16:00
11 Best Magento 2 Multi vendor Marketplace Extensions - Price, Demo & Features

Owning reliable marketplace software is the key to run a successful business. The marketplace platform should be capable enough to handle all the basic features that are essential for selling a product. Every single minute, there are many new ecommerce portals are emerging into the market. To survive in this digital world, your multi vendor platform should be quite simple as well as attractive. Marketplace magento software is gaining more responses from users nowadays. Let us get into...

Happy New Year magento 2 marketplace extension magento multi vendor marketplace magento 2 multi vendor marketplace marketplace magento
@renovate
Admin 17/03/2021 22:00
Một ít về type script

TypeScript mở rộng JavaScript bằng cách thêm các type cho việc khai báo. Có thể ví dụ một cách đơn giản như sau: Javascript: const myVariable = 1; TypeScriprts const myVariable: number = 1; Mối khi khởi tạo hay đinh nghĩa variable cho function, class, bạn phải xác định rõ loại giá trị mà bạn đưa vào. Bằng cách hiểu JavaScript, TypeScript giúp bạn tiết kiệm thời gian bắt lỗi trước khi bạn chạy code. Việc định...

Happy New Year typesciprt