Đặ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 AndroidCâ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 YearLờ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 CommitsLờ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 ScrapyTrong 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 ManagementMì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 DockerXin 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 YearXin 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 Year1. 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 YearBecoming 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 cryptocrewuniversityHô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 ServerNhư 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 GitHubMộ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 networkingTrong 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ánGiớ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 es6Mở đầ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 UpXin 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 Year1.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 sharpuploadfileIntro 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 Medium1. 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 S3Giả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 LaravelLỗ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 LaravelI. 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ớnCâ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 Architecture1. 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 ActiveAndroidTổ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 securityLà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 TricksI, Đô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 kubernetesGiớ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 YearMở đầ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 RubyGiớ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 PatternTrong 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 ES6Trướ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 YearTiế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 YearCá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 OS1. 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 YearHello 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 jwtChà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 CyberSecurityGiớ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 nuxtPart 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 securityHã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 LambdaMở đầ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 RouterGiớ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 YearHeco 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 SolidityHello 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 MobX1. 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Ở 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 virusTrong 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 phpOwning 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 magentoTypeScript 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