Mình hiểu không hết được bài viết mà chỉ hiểu sơ sơ thế này. Ví dụ như mình dùng Facebook và xác minh 2 bước qua ứng dụng Google Authenticator. Đầu tiên Facebook sẽ cho app Google Authenticator một cái quy luật mã hoá mà chỉ có 2 bên mới biết, quy luật đó sẽ tự biến đổi (có quy luật) theo thời gian. Sau đó cả trên Sever của Facebook và app Google Authenticator sẽ cùng chạy cái quy luật đó để cho ra 1 dãy số gồm 6 số (có thời gian hết hạn). Khi người dùng nhập mã từ app Google Authenticator vào Facebook thì Facebook sẽ đối chiếu mã ấy với Sever đang chạy quy luật đó, nếu 2 mã giống nhau thì cho qua (cả hai Sever Facebook và app Google Authenticator đều chạy cùng một quy luật theo thời gian thì chắc chắn sẽ cho ra mã số giống nhau theo thời gian rồi).
Khác nhau ở chỗ với simple binding: mỗi khi resolve cùng một instance đã được register thì nó sẽ khởi tạo 1 object mới khác nhau, còn Singleton binding sẽ sử dụng object cũ nếu đã được tạo từ trước đó
private fun createFile(): File {
val timeStamp: String =
SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(Date())
val storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
// val storageDir = context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS)
return File.createTempFile(
"audioRecoding_${timeStamp}_", /* prefix /
".3gp", / suffix */
storageDir
)
}
bạn làm theo các bước trên là được
Nếu ông code theo hướng DDD ( domain driven design) , thì comment phải đi theo post, có nghĩa là, để lấy comment thì phải lấy ra post. Nên là việc xóa mềm chỉ cần xóa Post, thì sẽ không có cách nào lấy comment ra được nữa, nên không cần xóa mềm comment.
Bạn có thể chỉ rõ bằng chứng cho việc query chậm, hoặc phải query bao nhiêu dòng bằng cách dùng Explain hoặc các trình phân tích query, mình nghĩ là tốc độ cũng như nhau thôi. Trong thực tế các query bị ảnh hưởng rất nhiều bởi các điều kiện tìm kiếm chứ ko phải đk join ( vì đk join là cố định, đánh index dễ dàng). Còn về logic mình thấy bạn có thể lọc userid trong bảng profiles.
lúc ban đầu tôi cũng nghĩ nó xanh chín. nhưng khi thua mới nghiệm ra rằng , các mã hash hay md5 chuẩn đến mấy thì khi chơi xong mình mới có key để check theo từng lần chơi hoặc check tất cả ván với mã hash đó.
tóm lại check hash thì ra đúng kq. nhưng kq đó là sau khi đánh nó mới cho mã hash, sao lại k cho trước từng ván. và khi chơi xong có key để check thì đó chỉ là lịch sử được ghi lại.
những trang có md5 cho trước từng ván thì họ hạn chế đặt cược dẫn đến chơi thua k dc gỡ lớn .
khuyên các bạn k nên tham gia bất kì loại hình cờ bạc nào cả . mình là một kẻ thất bại nhưng vẫn bị mù quáng đi theo cho tới khi nợ nần mới dừng lại.
Em chưa rành lắm về các trường hợp sử dụng Fragment, anh cho em hỏi thế này:
Ví dụ em đang làm một ứng dụng Album Ảnh:
Màn hình chính (Main Activity) sẽ hiển thị ra danh sách ảnh, bấm vào ảnh bất kỳ sẽ hiển thị ảnh đó toàn màn hình và có thể sử dụng các action bar item và navigation bar item (VD: Share ảnh, xoay ảnh, sửa ảnh) khác với main activity.
Cho em nỏi khi mở ảnh lên thì dùng fragment hay acivity mới
Option item Edit Ảnh có nên mở Activity khác lên hay sử dụng fragment
Mong anh giải thích nên chọn cái nào và vì sao, cảm ơn anh nhiều.
THẢO LUẬN
Mình hiểu không hết được bài viết mà chỉ hiểu sơ sơ thế này. Ví dụ như mình dùng Facebook và xác minh 2 bước qua ứng dụng Google Authenticator. Đầu tiên Facebook sẽ cho app Google Authenticator một cái quy luật mã hoá mà chỉ có 2 bên mới biết, quy luật đó sẽ tự biến đổi (có quy luật) theo thời gian. Sau đó cả trên Sever của Facebook và app Google Authenticator sẽ cùng chạy cái quy luật đó để cho ra 1 dãy số gồm 6 số (có thời gian hết hạn). Khi người dùng nhập mã từ app Google Authenticator vào Facebook thì Facebook sẽ đối chiếu mã ấy với Sever đang chạy quy luật đó, nếu 2 mã giống nhau thì cho qua (cả hai Sever Facebook và app Google Authenticator đều chạy cùng một quy luật theo thời gian thì chắc chắn sẽ cho ra mã số giống nhau theo thời gian rồi).
Khác nhau ở chỗ với simple binding: mỗi khi resolve cùng một instance đã được register thì nó sẽ khởi tạo 1 object mới khác nhau, còn Singleton binding sẽ sử dụng object cũ nếu đã được tạo từ trước đó
private var audioFile: File? = null
audioFile = createFile()
private fun createFile(): File { val timeStamp: String = SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(Date()) val storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) // val storageDir = context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS) return File.createTempFile( "audioRecoding_${timeStamp}_", /* prefix / ".3gp", / suffix */ storageDir ) } bạn làm theo các bước trên là được
Cảm ơn ý kiến mọi người, sau một hồi thảm khảo mình nghĩ chỉ có cách này giải quyết tạm ổn vấn đề. Thank you so much.
add nhiều host VM để monitor làm sao bác nhỉ
Bài viết hữu ích quá
hay bro
Cả 2 đều có sức mạnh riêng của chúng, chúc bạn áp dụng thật tốt nha
Mình sửa lại như này thì chạy được server.js rồi ạ, cảm ơn bạn ^^
Nếu ông code theo hướng DDD ( domain driven design) , thì comment phải đi theo post, có nghĩa là, để lấy comment thì phải lấy ra post. Nên là việc xóa mềm chỉ cần xóa Post, thì sẽ không có cách nào lấy comment ra được nữa, nên không cần xóa mềm comment.
Bạn có thể chỉ rõ bằng chứng cho việc query chậm, hoặc phải query bao nhiêu dòng bằng cách dùng Explain hoặc các trình phân tích query, mình nghĩ là tốc độ cũng như nhau thôi. Trong thực tế các query bị ảnh hưởng rất nhiều bởi các điều kiện tìm kiếm chứ ko phải đk join ( vì đk join là cố định, đánh index dễ dàng). Còn về logic mình thấy bạn có thể lọc userid trong bảng profiles.
Hay vl, tự vẽ luôn, tuyệt vời (+1) respect
Good job


Khá quá nhỉ


lúc ban đầu tôi cũng nghĩ nó xanh chín. nhưng khi thua mới nghiệm ra rằng , các mã hash hay md5 chuẩn đến mấy thì khi chơi xong mình mới có key để check theo từng lần chơi hoặc check tất cả ván với mã hash đó. tóm lại check hash thì ra đúng kq. nhưng kq đó là sau khi đánh nó mới cho mã hash, sao lại k cho trước từng ván. và khi chơi xong có key để check thì đó chỉ là lịch sử được ghi lại. những trang có md5 cho trước từng ván thì họ hạn chế đặt cược dẫn đến chơi thua k dc gỡ lớn . khuyên các bạn k nên tham gia bất kì loại hình cờ bạc nào cả . mình là một kẻ thất bại nhưng vẫn bị mù quáng đi theo cho tới khi nợ nần mới dừng lại.
Em chưa rành lắm về các trường hợp sử dụng Fragment, anh cho em hỏi thế này: Ví dụ em đang làm một ứng dụng Album Ảnh: Màn hình chính (Main Activity) sẽ hiển thị ra danh sách ảnh, bấm vào ảnh bất kỳ sẽ hiển thị ảnh đó toàn màn hình và có thể sử dụng các action bar item và navigation bar item (VD: Share ảnh, xoay ảnh, sửa ảnh) khác với main activity. Cho em nỏi khi mở ảnh lên thì dùng fragment hay acivity mới Option item Edit Ảnh có nên mở Activity khác lên hay sử dụng fragment Mong anh giải thích nên chọn cái nào và vì sao, cảm ơn anh nhiều.
Thanks b