Hội chứng classitis theo mình là điều không thể tránh khỏi. Nó đến từ 3 nguyên nhân:
Thiết kế rất trong trẻo, nhưng thực tế code phải cụ thể hóa hơn rất nhiều. Hay nói cách khác, là thiết kế quá nông.
Trong quá trình phát triển thì cực kì thiếu con người có khả năng review và update lại thiết kế. Code thì chỉ biết tuân theo thiết kế, có gì phát sinh là đẻ ra thêm class mới, function mới, easy mà chẳng đụng chạm đến ai. Mà thiết kế thì họ ko kiểm soát được việc code nảy nở ra thêm như thế nào.
Dự án có thể chia cho nhiều người, hoặc cắt nhỏ thành nhiều team. Mỗi team sẽ viết thêm code để phục vụ mục đích cho bên mình mà ko cần thảo luận với bên kia. Do đó chắc chắn sẽ gặp rất nhiều code thừa, code lặp, hoặc ý tưởng thì giống nhau nhưng code của mỗi team lại thêm mắm thêm muối, ko dùng chung của nhau được.
(cái này là phụ thôi, nhưng cũng khá nghiêm trọng) Tâm lí con người luôn muốn tránh đụng chạm và bản thân mình hay team mình về đích trước. Cha chung ko ai khóc mà.
Thiết kế mà đẹp ngay từ đầu thật là một điều không tưởng.
Phải chăng tác giả đang chê triết lí thiết kế của Oracle
Đúng vậy, lúc mình bắt đầu học sâu hơn về Java thì thực sự rối trí bởi nó có quá nhiều lớp, chả biết dùng như thế nào là chuẩn mực. Nếu chỉ dùng Java code web api thôi thì ít đụng chạm đến vấn đề này hơn. Chứ để làm app desktop hay làm game mà ko biết vận dụng các lớp nâng cao của Java thì chương trình rất kém về hiệu suất.
Thực ra mình ko chuyên backend nên nếu nói có gì sai, anh em vặn lại giùm ạ
Tùy vào các loại captcha khác nhau thì cũng sẽ có các bước xử lý khác nhau để loại bỏ nhiễu. Cái này nhìn vào dữ liệu thì mình mới có thể nói được.
Còn câu hỏi "liệu có tổng quát hóa model cho mọi loại capcha được ko" thì mình nghĩ đây vẫn là thử thách vì phần Text Recognition nhạy cảm với các loại nhiễu. Kể cả bạn đã huấn luyện trên tập ảnh có nhiễu rồi nhưng gặp nhiễu mới thì vẫn khó đọc được. Và để loại bỏ được nhiễu thì lại gặp vấn đề nhiễu rất đa dạng như bạn đã đề cập bên trên
Nhiễu của loại captcha này đơn giản, do đó bạn áp được threshold để loại bỏ. Với captcha có nhiều nhiễu, loại bỏ là mất ký tự thì chúng ta không được loại bỏ nhiễu.
Khi đó bạn sẽ dùng mô hình nào, cần bao nhiêu mẫu đã gán nhãn...để bypass. Liệu có tổng quát hóa model được để bypass mọi loại captcha ko.
mình thấy là bài của bạn nội dung sẽ khá trừu tượng, mình nghĩ nên có 1 dòng TLDR tóm tắt những ý chính dạng: should or shouldn't ở phần đầu hoặc cuối nội dung
Tóm tắt lại nội dung bài viết mình gửi là một số password của Facebook được lưu dạng plain text, nhưng không phải trong DB, mà là trong Log. Và pass vẫn được gửi dạng plain text lên server, sau đó server mới hash. Nên mình cũng ko chắc lắm về việc anh Mark biết pass của bạn hay không đâu.
Chào bạn, mình đang tích hợp cái passport-social-grant mà gặp phải lỗi này:
Target [Adaojunior\PassportSocialGrant\SocialGrantUserProvider] is not instantiable while building [Laravel\Passport\Http\Controllers\AuthorizationController].
THẢO LUẬN
Noiceeeeee
Hóng phần 2, hay quá bác ơi🙆
Anh @vigov5 ơi anh xem xét thêm hint 1 số bài lâu không có thêm bạn giải đi ạ , bí quá .
Hội chứng classitis theo mình là điều không thể tránh khỏi. Nó đến từ 3 nguyên nhân:
Phải chăng tác giả đang chê triết lí thiết kế của Oracle
Đúng vậy, lúc mình bắt đầu học sâu hơn về Java thì thực sự rối trí bởi nó có quá nhiều lớp, chả biết dùng như thế nào là chuẩn mực. Nếu chỉ dùng Java code web api thôi thì ít đụng chạm đến vấn đề này hơn. Chứ để làm app desktop hay làm game mà ko biết vận dụng các lớp nâng cao của Java thì chương trình rất kém về hiệu suất.
Thực ra mình ko chuyên backend nên nếu nói có gì sai, anh em vặn lại giùm ạ 
Sau không nghi nguồn tác giả vậy bạn?? console.aws.amazon.com/console/home
Bạn Minh thân. Cho hỏi code để lấy chỉ số index của một e trong list? Tks
Self-host hay IIS là bước deploy rồi, còn về cơ bản công cụ trong lúc develop là VS hay VSCode thì cũng có thay đổi được đâu.
@lozthiensu thanks bạn đã dành time để đọc qua bài chia sẻ. 4 điểm bạn nêu ở trên mình có chia sẻ trong phần 2 về multitasking bạn có thể tham khảo https://viblo.asia/p/process-may-tinh-va-nhung-dieu-co-the-chua-biet-phan-ii-multitasking-ByEZkaPx5Q0. Và mình cũng xin chia sẻ ý số 2 là 1 tiến trình bao gồm nhiều thread xử lý thì việc xử lý các thread trong 1 Core(CPU) là concurrent không phải parallel. Việc xử lý parallel sẽ xảy ra khi các thread được phân bổ ra nhiều Core và việc xử lý này không dùng chung resource giữa các thread và ngược lại. mình reference từ article này nhé http://tutorials.jenkov.com/java-concurrency/concurrency-vs-parallelism.html#:~:text=It is possible to have,CPUs are executed in parallel.
Nhiễu của loại captcha này đơn giản, do đó bạn áp được threshold để loại bỏ. Với captcha có nhiều nhiễu, loại bỏ là mất ký tự thì chúng ta không được loại bỏ nhiễu.
Khi đó bạn sẽ dùng mô hình nào, cần bao nhiêu mẫu đã gán nhãn...để bypass. Liệu có tổng quát hóa model được để bypass mọi loại captcha ko.
Dùng new RegExp thì phải escape back slash \ nữa. Ví dụ: \w thành \\w. Cứ dùng reg ex bình thường thôi bạn, ví dụ: let reg =/abcd/
@tiennguyen98 hê hê cũng từng nghĩ đến rồi bạn nhưng thấy có khi sách chả ai đọc =)))
@zzz Cảm ơn bác nhiều nha.
Có bao giờ anh nghĩ đến việc tổng hợp series này thành 1 cuốn sách không nhỉ
hóng lib manhBreakCaptcha @buiquangmanh
Cảm ơn bác, bài viết khá hữu ích.
mình thấy là bài của bạn nội dung sẽ khá trừu tượng, mình nghĩ nên có 1 dòng TLDR tóm tắt những ý chính dạng: should or shouldn't ở phần đầu hoặc cuối nội dung
Anh Mark có thể không biết nhưng hacker thì vẫn biết nhé. Bằng chứng là: https://toidicodedao.com/2019/03/26/facebook-luu-mat-khau-dang-text-lo-mat-khau/
Tóm tắt lại nội dung bài viết mình gửi là một số password của Facebook được lưu dạng plain text, nhưng không phải trong DB, mà là trong Log. Và pass vẫn được gửi dạng plain text lên server, sau đó server mới hash. Nên mình cũng ko chắc lắm về việc anh Mark biết pass của bạn hay không đâu.
Chào bạn, mình đang tích hợp cái passport-social-grant mà gặp phải lỗi này:
Bạn có thể cho mình cái code demo ko ?
Cảm ơn nhiều.