Dashboard
All activity
Link bài viết gốc: https://medium.com/codex/swift-upgrade-your-skills-with-these-8-tips-da612111668 1. Cách viết lệch If...else ngắn hơn với Ternary Operators Ternary Operators cho phép chúng ta viết if...else ngắn hơn. Cấu trúc là: condition ? true : false. Hãy cùng xem ví dụ dưới đây: let money = 100 if money > 0 { print("Some money") } else { print("No money") } Phần if...else có thể viết lại với 1 ternary operator với chỉ 1...
Happy New Year Swift TipsViệc vẽ view trên storyboard bao giờ cũng trực quan hơn, nhanh hơn so với việc code frame bằng tay. Hôm nay mình sẽ hướng dẫn các bạn cách tạo một view có thể tái sử dụng từ file xib theo cách đơn giản và chính xác nhất. Hãy follow theo các bước sau Bước 1 Tạo một "Persion View" là UIView Bước 2 Tạo file xib đặt tên giống class đã tạo ở bước 1 Hãy vẽ thêm 2 label lastname, first name để...
Swift iOS CustomViewMình có cái tật rất xấu. Đấy là hay cố gắng tìm hướng giải quyết cho người khác. Chuyện là ở công ty hồi đó mọi người đang cố gắng dockerize một monolithic project viết bằng C, được xây dựng cách đây hàng chục năm về trước. Vì chương trình được xây dựng quá lâu, thời đó mọi người chưa có khái niệm đầy đủ giữa state, cache, data, code etc. Việc trong code có chứa data là chuyện...
DevOps TipsCó khá nhiều cách để lưu trữ dữ liệu local trong iOS app. UserDefaults, Keychain và Core Data là những cách phổ biến để persist data (những dữ liệu vẫn tồn tại trong app dù đã quit app và có thể sử dụng cho lần khởi động app tiếp theo). Vậy làm sao để chúng ta quyết định xem cách lưu trữ nào là phù hợp trong từng trường hợp? Chúng ta hãy cùng nhau tìm hiểu nhé! UserDefaults Theo tài liệu của...
Swift XcodeTypeScript 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 typesciprtHãy suy nghĩ như một ông chủ Khi bạn bắt tay vào thực hiện bất kì một dự án nào, hãy ghi nhớ một điều: dự án bạn đang thực hiện là dự án của chính bạn, hãy đóng góp 100% nỗ lực của bạn vào sự thành công của dự án. Tôi không nói rằng bạn nên tự mình đưa ra các quyết định về bussiness của dự án, nhưng ngay từ đầu bạn nên thu thập yêu cầu, đặt câu hỏi cho các bên liên quan,...
QA good tester Agile TesterCloud computing, which was coined in late 2007, currently emerges as a hot topic due to its ability to offer flexible dynamic IT infrastructures, services and most of all innovative platforms to develop applications. Amazon, Google, Microsoft and several other organizations played a key role in the development of cloud computing by modernizing their data centers after the dot-com bubble, having found that the new cloud architecture emerged as an essential internal performance enhancement. Cloud...
Cloud Computing cloud technology cloud service models three cloud service modelsXin chào các bạn, đều đặn hàng tháng, để tạm thời xả tress sau những ngày làm việc, học tập vất vả, mình vẫn luôn dành 1 khoảng thời gian nhỏ để để đến với một nỗi tress mới : Vắt óc ra, kiếm 1 chủ đề để chia sẻ trên kênh blog này của mình. Và đến hẹn lại lên, cuối cùng mình cũng nghĩ ra chủ đề để chia sẻ vào tháng này . Đùa vậy thôi, chứ viết blog có ích nhiều lắm...
Python Deep Learning web app Streamlit Machine LearningVirtualization Technology là gì & hoạt động như thế nào? 16/03/2021 2 Lượt xem Ngày nay, có nhiều bộ vi xử lý được...
máy chủ website hệ điều hành hypervisorSnapshot là gì? Snapshot khác với backup thế nào? 17/03/2021 1 Lượt xem Hiện nay, có hai hình thức sao lưu dữ liệu phổ...
máy chủ website kho lưu trữ backupNhư các bạn đã biết, thế giới của con người chúng ta đang ngày càng phát triển mạnh mẽ và gắn liền với các công nghệ cực kì hiện đại. Và SMART PHONE là một thứ không thể thiếu trong cuộc sống hiện đại ngày nay. Là 1 QA ( Tester), chúng ta cùng thử đặt mình là USER để xem với một dự án phần mềm phát triển về APP (Mobile) thì cần thực hiện TEST những gì nhé! I, XÁC ĐỊNH ĐỐI TƯỢNG...
#AppMobile Tester AndroidiOS QAOwning 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 magentoGiới thiệu Chào mọi người. Hiện nay trong môi trường phát triển có rất nhiều công cụ giúp chúng ta có thể viết code nổi tiếng như Sublime, Atom, Visual Code và nhiều công cụ khác nữa nhưng có lẽ trong vài năm gần đây Visual Code đang nổi lên như 1 công cụ phổ biến mà rất nhiều người ban đầu từ dùng những công cụ khác cũng đã thử với Visual Code và dần thích nó. Hôm nay mình xin giới thiệu...
JavaScript CSS ReactJS visual codeChắc hẳn các bạn làm dự án về iOS cũng sẽ hay sử dụng các bộ thư viện ngoài nhưng có lúc nào bạn phải tự làm một bộ thư viện để cung cấp cho các dự án khác sử dụng chưa? Tức nhiên sẽ có nhiều giải pháp để làm việc này như CocoaPod. Nhưng nếu yêu cầu là static libraries thì như thế nào? Vấn đề gặp phải Để build một static libraires là một việc rất khó khăn rồi. Tuy nhiên bản...
Swift iOS StaticFramework XCFramework frameworkTrong 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Ở 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 virusChào các bạn, chắc hẳn ai trong chúng ta đã biết về biến và tham chiếu khi học các môn cơ sở lập trình khi mới vào nghề. Thế nhưng khi làm việc với PHP một vài người tưởng như đã quên là nó có tồn tại, hoặc một vài người thì biết nó có nhưng lại không biết xài nó như nào; thậm chí một vài trong chúng ta đã từng xài nhưng lại phát sinh một số lỗi không ngờ tới. Để giúp các bạn...
PHP ReferencesLàm thế nào để phân biệt GitHub và GitLab? Ngày nay, quản lý kho là một trong những yếu tố quan trọng của phát triển phần mềm hợp tác. Các tính năng phân phối thành công yêu cầu cần sự kết hợp của các thành phần mã nguồn mở và bên thứ ba được sử dụng cùng nhau để xây dựng chuỗi phần mềm. Chuỗi phần mềm này xuất hiện từ chu trình phát triển phần mềm được gọi là kho lưu trữ....
GitHub GitLab1. 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 TailwindCSSTrong quá trình code giao diện, có một trường hợp mà chúng ta thường hay gặp là đoạn văn bản quá dài, hoặc quá ngắn. Đôi khi, nếu chúng ta xử lý không tốt, chỉ thêm 1 chữ thôi, cũng đã đủ để vỡ layout rồi. Trong bài viết này, mình sẽ hướng dẫn các bạn các kỹ thuật để xử lý với những đoạn văn bản như vậy. Hãy bắt đầu với 1 ví dụ cho dễ hiểu nhé, giả sử chúng ta có 1 thanh...
CSS3Cài đặt Ubuntu - 4 bước cài đặt Ubuntu đơn giản nhất 16/03/2021 18 Lượt xem Ubuntu là một hệ điều hành được...
ubuntu windows hệ điều hành VirtualboxVirtualization Technology là gì? Nó hoạt động như thế nào? 16/03/2021 1 Lượt xem Ngày nay, có nhiều bộ vi xử lý...
máy chủ website hệ điều hành hypervisorCác ứng dụng Social Media thực sự đã trở thành “huyết mạch” của thế hệ hiện tại. Các ứng dụng Social Media hiện giống như một “khán đài”: Để kết nối với mọi người Cho mục đích giải trí Kinh doanh Tìm hoặc cung cấp việc làm Tiếp nhận các thông tin Ngoài những lợi ích của nó thì các ứng dụng Social Media cũng có thể rất có hại. Chúng có thể dẫn đến vi phạm bảo mật cao...
TesterHello 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 MobXHeco 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 SolidityTại bài viết Tài khoản người sử dụng và phân quyền truy cập tệp trên Ubuntu (P1) mình đã giới thiệu về người sử dụng và quản lý tài khoản người sử dụng trên Ubuntu. Trong bài viết lần này, mình sẽ trình bày về quản lý quyền truy cập trên Ubuntu. Các nhóm người sử dụng Mỗi tệp hay thư mục luôn thuộc về một người sử dụng và một nhóm xác định. Mỗi file bao gồm 3 nhóm người sử...
Linux ubuntu PermissionTrong bài viết này, mình sẽ cung cấp cho bạn chính xác những gì bạn nên biết khi bắt đầu phát triển Android. Những mẹo này sẽ giúp bạn học cách phát triển Android nhanh hơn nhiều so với việc bạn loay hoay tìm cách hiểu những gì cần học trước. Vì vậy, hãy bắt tay ngay vào nó nhé ! Let's go 1. Java vs Kotlin —Nên học cái nào trước ? Một trong những tình huống khó xử đầu tiên bạn sẽ phải...
Kotlin Android developmentIntroduction Image-to-image translation là một lớp bài toán computer vision mà mục tiêu là học một ánh xạ giữa ảnh input và ảnh output. Bài toán này có thể áp dụng vào một số lĩnh vực như style transfer, tô màu ảnh, làm nét ảnh, sinh dữ liệu cho segmentation, face filter,... Thông thường để huấn luyện một mô hình Image-to-image translation, ta sẽ cần một lượng lớn các cặp ảnh input và label. Ví dụ...
Deep Learning ganGiớ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 YearMở đầ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 RouterMở đầu Đợt vừa rồi thì mình có tham gia một cuộc thi về trích xuất thông tin từ hóa đơn có tên gọi là The Mobile capture receipts Optical Character Recognition (MC-OCR) . Mình biết đến cuộc thi này từ lúc a Sơn bên tổ chức đăng bài thu thập dữ liệu về hóa đơn và mình đã hóng từ lúc đó đến tận tháng 12 năm 2020 thì cuộc thi được tổ chức. Cuộc thi bao gồm 2 bài toán đó là: Đánh giá chất...
Text Detection image classification Image Segmentation Information Extraction ocrHã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 LambdaPart 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 securityGiớ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 nuxtSearching and sorting is always one of the main thing to know and improve about. Like sorting, searching also get special attention from the computer scientists. Today we will learn about a special searching algorithm named Jump sort. Jump Search In the vast world of computation, jump search refsembles to a search algorithm for ordered lists. It functions by first checking all items at the edge of block item where m is the size of the block. When an item is found that is larger than the search...
RubyChà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 CyberSecurityHello 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 jwtMở đầu Trong Google I/O 2018, Google đã giới thiệu Android Jetpack và điều này đã thay đổi cách phát triển một ứng dụng Android mạnh mẽ hiện đại. Jetpack is a collection of libraries, tools, and guidance to help developers write high-quality apps easier. Jetpack được tạo ra để sử dụng những ưu điểm của ngôn ngữ Kotlin để giúp các nhà phát triển làm việc hiệu quả hơn. Vì vậy, trong blog này, chúng ta sẽ...
Kotlin AndroidChắc hẳn ai cũng được học phân tích vecto trên ghế nhà trường, hiện tại mình cũng đang làm về 1 dự án về phân tích tư thế của cơ thể khi tập vật lý trị liệu, thế nên được áp dụng những công thức từ trước để tìm góc được tạo bởi 3 điểm : vai, hông, đầu gối. Có những không gian 2D, 3D nhưng hôm nay mình sẽ áp dụng với dữ liệu 2D. Công thức tính góc có thể xác định theo...
PythonTổng quát MutationObserver là một API Web được cung cấp bởi các trình duyệt hiện đại để phát hiện các thay đổi trong DOM. Với API này, người ta có thể lắng nghe các element mới được thêm vào hoặc loại bỏ, các thay đổi thuộc tính hoặc các thay đổi trong nội dung văn bản của các element. Tại sao bạn muốn làm điều đó? Có khá nhiều trường hợp mà API MutationObserver có thể thực sự hữu...
MutationObserver1. 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 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 OSChú ý: bài viết này sẽ là một bài giới thiệu về các khái niệm được được đơn giản hóa ở mức độ cao với mục đich là cung cấp cho người đọc một khung tham chiếu để phục vụ cho việc tìm hiểu sau này. Điều này có nghĩa là bài viết này sẽ không phải là bài hướng dẫn các bạn cách dùng một service nào đó của AWS và cũng sẽ không dùng các định nghĩa hay giải thích mang tính kĩ...
Cloud Computing Amazon Web Services (AWS)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 YearTrướ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 YearSubscribe to your news feed