THẢO LUẬN

thg 5 13, 2018 4:51 CH

def ._not_exists(scope) em đã băn khoăn định hỏi về cú pháp này trong ruby cho tới trước khi đọc đến cuối bài và mở link gốc xem -_-

0
thg 5 13, 2018 3:17 CH

bài viết rất hay ❤️

0
thg 5 13, 2018 12:58 CH
<script>
	$(document).ready(function() {
		$('.select2-multi').select2();
	});
	var simplemde = new SimpleMDE({
		placeholder: 'Type here...',
		promptURLs: true,
		toolbar: [
			{ name: "bold", action: SimpleMDE.toggleBold, className: "fa fa-bold", title: "Bold", },
			{ name: "italic", action: SimpleMDE.toggleItalic, className: "fa fa-italic", title: "Italic", },
			{ name: "strikethrough", action: SimpleMDE.toggleStrikethrough, className: "fa fa-strikethrough", title: "Strikethrough"},
			{ name: "heading-1", action: SimpleMDE.toggleHeading1, className: "fa fa-header fa-header-x fa-header-1", title: "Bold",},
			{ name: "heading-2", action: SimpleMDE.toggleHeading2, className: "fa fa-header fa-header-x fa-header-2", title: "Bold",},
			{ name: "heading-3", action: SimpleMDE.toggleHeading3, className: "fa fa-header fa-header-x fa-header-3", title: "Bold",},
			"|",
			{ name: "code", action: SimpleMDE.toggleCodeBlock, className: "fa fa-code", title: "Code",},
			{ name: "quote", action: SimpleMDE.toggleBlockquote, className: "fa fa-quote-left", title: "Quote",},
			{ name: "unordered-list", action: SimpleMDE.toggleUnorderedList, className: "fa fa-list-ul", title: "Generic List",},
			{ name: "ordered-list", action: SimpleMDE.toggleOrderedList, className: "fa fa-list-ol", title: "Numbered List",},
			{ name: "clean-block", action: SimpleMDE.cleanBlock, className: "fa fa-eraser fa-clean-block", title: "Clean block",},
			{ name: "horizontal-rule", action: SimpleMDE.drawHorizontalRule, className: "fa fa-minus", title: "Insert Horizontal Line",},
			{ name: "table", action: SimpleMDE.drawTable, className: "fa fa-table", title: "Insert Table",},
			{ name: "link", action: SimpleMDE.drawLink, className: "fa fa-link no-mobile", title: "Create Link",},
			"|",
			{ name: "preview", action: SimpleMDE.togglePreview, className: "fa fa-eye no-disable", title: "Toggle Preview",},
			{ name: "side-by-side", action: SimpleMDE.toggleSideBySide, className: "fa fa-columns no-disable no-mobile",
				title: "Toggle Side by Side",},
			{ name: "fullscreen", action: SimpleMDE.toggleFullScreen, className: "fa fa-arrows-alt no-disable no-mobile", title: "Toggle Fullscreen",},
			{
		    name: "image",
		    action: (editor) => {
		        // Open modal:
		        const modal = document.querySelector('#myModal');
		        modal.open();
		        modal.addEventListener('insert-image', (event) => {
		            url = event.getImageUrl();
		            editor.insertText("[Alt](${url})");
		        });
		    },
		    className: "fa fa-image",
                    title: "Upload Image",
		},
	    ]
	});
</script>

Đây là đoạn code để open modal lúc click vào image button nhưng không mở lên được ạ..

Anh có thể xem giúp e được kg ạ...

Dưới đây là code Modal của e ạ... E chỉ đang test thôi ạ

<div class="modal fade" id="myModal" role="dialog">
    <div class="modal-dialog">
			    
    <!-- Modal content-->
    <div class="modal-content">
	<div class="modal-header">
		<button type="button" class="close" data-dismiss="modal">&times;</button>
		<h4 class="modal-title">Modal Header</h4>
	</div>
	<div class="modal-body">
		<p>Some text in the modal.</p>
	 </div>
	<div class="modal-footer">
		<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
	</div>
</div>
			      
</div>
</div>

Em cám ơn a đã giúp ạ..

0
thg 5 13, 2018 7:58 SA

cám ơn bạn nhé

0

Haha. Đợt trước có nghiên cứu 1 chút về Blockchain mà về cái bị cty cho đi học Computer Vision mất rồi =)).

0

Hay và chi tiết quá 😄 cảm ơn em nhiều 😉

+1
thg 5 13, 2018 1:08 SA

Nếu bạn chưa biết gì về Recommender System thì mình nghĩ tốt hơn hết là thuê người khác làm. 😄 Nếu bạn muốn tìm hiểu thì có thể tìm từ khoá Recommender Systems, Recommendation Systems.

0
thg 5 12, 2018 3:22 CH

thanks anh a. bai viet rat hay

0
thg 5 12, 2018 10:45 SA

Cám ơn bạn, giờ mình khá hiểu về những gì bạn đã viết. Mình có chút góp ý nhỏ, đó là về việc filter của bạn, theo mình nghĩ bản chất của nó vẫn là load hết danh sách Movie, xong mới filter theo như code viết ra, nếu vậy thì sao ko viết hàm filter vào url để nó tự filter trong db rồi mới trả về nhỉ, khi đó client ko mất công filter nữa

0
thg 5 12, 2018 7:09 SA

cái lambda này nó ko tự động show code ra giống android như bình thường nhỉ?

0
thg 5 12, 2018 6:54 SA

NameError: name 'translate' is not defined

0
thg 5 12, 2018 3:45 SA

Bài viết thiếu rất nhiều bước

0
thg 5 11, 2018 10:59 CH

Rất hữu ích, dễ hiểu

0
thg 5 11, 2018 4:32 CH

Hello, do you have the source files? With details of class name etc?

0

Cậu cấu hình lại file config nhé tên thư mục bên trong themes trùng với tên trong file themes = "" trong file config thế là chạy được ấy

0

vâng em cám ơn a để em thử lại ạ

0

Mỗi node khi mới đăng ký thì sẽ lấy data ở đâu khi không có server chung, có phải nó sẽ download từ 1 node khác được chỉ định? Nghĩa là lúc mới đăng ký node, mình phải gõ địa chỉ IP của node nào đó?

Một IP khi muốn bắt đầu kiếm tiền từ Blockchain Bitcoin sẽ download mã nguồn BitCoin về, trong đó sẽ có sẵn thuật toán connect đến 1 IP gần nhất (bạn phải hiểu mạng ngang hàng P2P nghĩa là 2 máy tính connect trực tiếp và truyền được file cho nhau, như kiểu 2 máy bắn bluetooth cho nhau). Vì máy nào cũng sẽ có một bản copy của data mảng Blockchain hiện tại. Nên ta kết nối máy nào cũng sẽ down được, không cần server chung. Bạn cũng k cần tự gõ địa chỉ IP vì bạn không biết máy kia là máy nào. Danh sách các máy đang kết nối trong mạng sẽ có sẵn thuật toán tìm và kết nối. Cái này nếu bạn tự viết Blockchain bạn sẽ phải tự viết thuật toán phần này.

Transaction khi được tạo mới, có phải sẽ được Broadcast đến tất cả các nodes trong mạng biết, vậy khi nào thì 1 node sẽ bắt đầu tính Hash để thêm block mới? Có phải nó chờ cho đến khi nhận được đủ số transactions (ví dụ 10 txs), hay theo 1 khoảng thời gian nhất định thì nó sẽ bắt đầu tính Hash?

Transaction được tạo mới nhưng để regist thành công được vào Blockchain thì phải có mã Hash đã chứ bạn. Khi tạo mới nó chỉ lưu tạm vào mảng GiaoDichTamHoan để chờ có máy đào Hash cho nó. Một node sẽ tự động lấy 1 số lượng tùy chọn các giao dịch để tính Hash. Nhưng BitCoin họ muốn giới hạn chính xác 10 phút 1 Block ra đời. Vì thế số lượng Tx ít hay nhiều sẽ được dùng để chia ra cho vào Block cho hợp lý. Cái này do thuật toán lựa chọn của BitCoin. Ở demo của mình k viết thuật toán này.

Cơ chế giải quyết conflict của các node như thế nào, khi có 2 nodes cùng tìm được 2 Hash khác nhau, cùng 1 thời điểm?

Cái này bạn chưa đoc kỹ bài của mình. Cơ chế giải quyết khi 2 máy cùng đào 1 Hash, máy nào xong trước sẽ được thưởng 12,5Bitcoin (ví dụ ở đồng BitCoin) còn máy kia cho dù đào xong cũng sẽ vứt đi, coi như bad luck (y như đánh đề trật). Thời gian đào được tính đến nghìn mili giây. Đó chính là lý do người ta đầu tư trâu cày BitCoin và chưa thành tỉ phú vì bạn phải giành giật mới có được 1 Hash. Trên thực tế thế giới sẽ không chơi 1 chọi 1 như thế. Mà lúc này khái niệm Pool mới ra đời. Pool là một tập hợp nhiều Node, cùng đào 1 lượng lớn Hash và khi đào xong sẽ đảm bảo là chuỗi có được sẽ rất dài. Đào hẳn 100Hash 1 lần và số tiền thưởng được chia đều cho toàn bộ máy tham gia đào. Các farm (nông trại cày Coin) sẽ join vào các Pool để đảm bảo chắc chắn nhận được 1 phần tiền thường (chứ k chơi may rủi)

0
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí