Thứ Sáu, 22 tháng 12, 2017

Top 5 công cụ mã nguồn mở dành cho MySQL administrator

                                               
 
sử dụng những phương tiện sạch này để cải thiện CLI và web admin, SQL queries, schema migration, sao chép và bình phục môi trường MySQL của bạn.

Đối với các database administrators (DBA), việc giữ cho cơ sở dữ liệu chạy ở tốc độ tối đa có thể giống như xoay: tốc độ, tụ họp, phản ứng nhanh với cái đầu lạnh và thỉnh thoảng hãy cậy từ người xem có ích. Database là trung tâm của sự thành công của hầu hết các áp dụng. vày DBA chịu nghĩa vụ về dữ liệu của tổ chức, việc dạo các dụng cụ đáng tin cậy giúp họ hợp lý hóa quá trình quản lý cơ sở dữ liệu và giảm bớt các công việc bảo trì hàng ngày là rất cấp thiết. DBAs cần những công cụ đủ tốt để giữ cho hệ thống của họ hoạt động trót lọt.

Vậy các công cụ đáng tin tưởng cho các MySQL administrator là gì? Ở đây tôi chia sẻ 5 dụng cụ mã nguồn thiên lí đầu các MySQL administrator và công dụng của chúng trong việc hỗ trợ các công việc quản trị hàng ngày MySQL. Đối với mỗi công cụ, tôi đã cung cấp liên kết tới kho GitHub và kê số lượng GitHub star tại thời khắc viết.
Mycli
Dự án Mycli cung cấp MySQL tự động hoàn tất dòng lệnh và đánh dấu cú pháp. Đây là một trong những công cụ phổ thông nhất của MySQL.

Các hạn chế về an ninh chẳng hạn như jump host và chính xác hai nguyên tố để lại nhiều MySQL DBA với lệnh chỉ truy cập vào hệ thống của họ. Trong những trường hợp như vậy, các dụng cụ GUI yêu thích giống như MySQL Workbench, Monyog, và các dụng cụ khác không phải là một lựa chọn.

Tại dòng lệnh, ta sẽ tốn nhiều thời kì tại vùng light-on-black terminal. nên, một trong những điều tiệt về Mycli là sự phong phú của cú pháp. Điều này cho phép bạn, tỉ dụ, để trực giác seperate function và các nhà phá hoang từ chuỗi query trong mệnh đề WHERE. Đối với một truy tìm ngắn, dòng đơn không phải là một vấn đề lớn, nhưng nó sẽ đổi thay khi bạn làm việc với các query thực hiện các JOIN operation trên nhiều hơn một vài bảng. Tôi đang dùng JOIN bằng cách sử dụng các cột index? Tôi có thể lọc bằng cách sử dụng ký tự đại diện trong mệnh đề WHERE? Mycli tương trợ các query với nhiều dòng và được đánh dấu cú pháp, điều này có nghĩa là bạn có thể tìm hiểu về các phần quan trọng nhất khi xem xét hoặc tối ưu hóa query. Bạn có thể chọn từ một số cú pháp làm trổi hay tạo ra một số của riêng bạn.

Các tính năng đáng giá khác của Mycli thực thụ sáng dạ. Nó này cho phép bạn chọn tên bảng và cột từ danh sách bằng cách nhập chỉ vài ký tự trước tiên. Đầu vào hiện tại của bạn không bị bỏ qua để chạy lệnh SHOW CREATE TABLE do bạn quên tên cột mà bạn muốn xuất hiện trong mệnh đề WHERE!

                                                   

 
Với Mycli, bạn có thể ẩn danh các query chuộng bằng việc dùng dùng \ fs, thí dụ: \ fs myAlias myQuery. Điều này rất tiện dụng, vì bạn có thể thực hiện tquery bằng cách dùng \ f myAlias bất cứ khi nào cần thiết.

Dự án Mycli dùng BSD 3 license. Với sự 44 comtributor, 1.2k cam kết, và 5k sao.
Gh-ost

phải 99% người dùng của MySQL DBA phải đối mặt với việc đổi thay đối với bảng MySQL trong khi vẫn lo sợ tác động lên quá trình làm việc thì bạn nên cân nhắc dùng Gh-ost (GitHub Online Schema Migration). Gh-ost cung cấp các đổi thay sơ đồ MySQL mà không blocking write, hay không sử dụng các trigger, với khả năng tạm dừng và tiếp quá trình chuyển di!

vì sao việc này lại quan yếu đến vậy? Vì MySQL 5.6 được vận chuyển với ALTER TABLE mới … ALGORITHM = INPLACE DDL (Data Definition Language), có thể chỉnh sửa một bảng mà không blocking wite cho các hoạt động chung như thêm một index (B-tree). Tuy nhiên, vẫn còn một đôi điều kiện mà ( DML statement) bị chặn, đáng để ý nhất là việc bổ sung một index ĐẦY ĐỦ, mã hoá không gian bảng và chuyển đổi thành định dạng cột.

Một số công cụ thay đổi giản đồ trực tuyến phổ quát khác, chả hạn như trình thay đổi giản đồ-trực tuyến Percona, bằng cách thực hành một bộ ba trình trigger (INSERT, UPDATE và DELETE) trên máy chủ để giữ một bảng sao chép để đồng bộ với sự thay đổi. Điều này giới thiệu một hình phạt hiệu suất nhỏ nhờ vào viết khuếch đại, nhưng đáng kể hơn đề nghị bảy trường hợp khóa metadata. Điều này có hiệu quả ngăn chặn DML Data Manipulation Language).

Vì Gh-ost hoạt động dùng binary log, nó không dễ bị ảnh hưởng bởi những hạn chế trigger-based. rút cục, Gh-ost có thể kích hoạt hoạt động một cách hiệu quả đến mức không, cho phép bạn tạm dừng quá trình chuyển di sơ đồ một thời gian nếu máy chủ của bạn bắt đầu xảy ra xung đột và tiếp chuyện khi bubble vẫn hoạt động.
 

                                                             

 
Vậy Gh-ost hoạt động như thế nào? Mặc định, Gh-ost kết nối với một bản sao (slave), xác định chủ, và chuyển di trên máy chủ. Nó nhận các thay đổi trên một bản sao cho bảng nguồn trongbinlog_format = ROW, phân tích cú pháp và chuyển đổi các câu lệnh này để được thực hành lại trên shadow table của Master. Nó theo dõi việc đếm các hàng trên bản sao và xác định khi nè thời gian để thực hiện một atomic cutover (bảng chuyển đổi).

Gh-ost cung cấp một chế độ thay thế nơi bạn thực hiện việc chuyển di trực tiếp trên master (cho dù nó có slave hay không), đọc lại các sự kiện binlog_format=ROW của Master, và sau đó vận dụng lại chúng vào sahdow table.

Tùy chọn chung cục cho phép chuyển di chỉ trên bản sao mà không ảnh hưởng đến master, vì thế bạn có thể thể nghiệm hoặc bằng cách khác xác thực việc chuyển di

Lưu ý rằng nếu sơ đồ của bạn ở nước ngoài, thì Gh-ost có thể không hoạt động trơn, vì không được tương trợ.

Lưu ý rằng oak-online-alter-table là tiền thân của Gh-ost. Bạn có thể đọc một so sánh giữa Gh-ost và pt-online-schema-change performance của Peter Zaitsev, CEO của Percona, cùng với phản hồi từ Shlomi Noach, tác giả và người duy trì bộ dụng cụ OAK và Gh-ost.

Dự án Gh-ost sử dụng MIT license. Với 29 contributor, gần 1k cam kết, và 3k sao.
PhpMyAdmin

Một trong những dự án chạy dài hơi và trưởng thành nhất trong số các dụng cụ MySQL là dụng cụ PhpMyAdmin cho phép quản lý MySQL qua web. phpMyAdmin cho phép DBA để duyệt và chỉnh sửa các đối tượng cơ sở dữ liệu MySQL: database, bảng biểu, view, field, và các index. Có các tùy chọn để thực hành xuất dữ liệu bằng cách sử dụng một tá định dạng, sửa đổi người dùng MySQL và đặc quyền của họ, và – yêu thích của tôi-thực hành các ad-hoc query.

Bạn cũng sẽ tìm thấy tab Status với những câu hỏi, kết nối/quy trình và lưu lượng truy cập mạng cho trường hợp cơ sở dữ liệu cho phép, cùng với tab Advisor cho bạn thấy danh sách các vấn đề về hiệu năng có thể cùng với các đề xuất khắc phục.

PhpMyAdmin sử dụng GPLv2 license. Đây là một dự án khổng lồ với hơn 800 contributor, 112k cam kết tuyệt vời, và 2.7k sao. Bản giới thiệu trực tuyến hiện có tại https://demo.phpmyadmin.net/master-config/
Sqlcheck

SQL anti-pattern làm chậm các query, nhưng thường phải đề nghị DBA có kinh nghiệm và nghiên cứu phát triển qua mã để xác định và giải quyết chúng. Sqlcheck phản chiếu những nạm của Joy Arulraj để soạn thảo cuốn sách “SQL Anti-patterns: Avoiding the Pitfalls of Database Programming” của Bill Karwin. Karwin phân loại thành bốn loại anti-pattern:
Thiết kế cơ sở dữ liệu hợp lý
Thiết kế cơ sở dữ liệu vật lý
Query
Phát triển ứng dụng

Sqlcheck trở nên đích tại nhiều chừng độ rủi ro, được phân loại là rủi ro thấp, làng nhàng hoặc cao. Điều này hữu ích nếu danh sách các anti-pattern của bạn lớn, vì bạn có thể ưu tiên các tróc nã có tác động hiệu quả lớn nhất. vớ những gì bạn cần làm để bắt đầu là thu thập một danh sách các truy biệt lập của bạn vào một tệp tin và chuyển chúng như một đối số cho dụng cụ.

Tôi đã dùng mẫu lấy từ môi trường PMM Demo để tạo ra kết quả sau:

[michael@fedora ~]$ sqlcheck —file_name PMMDemoQueries.txt

SQLCHECK

> RISK LEVEL :: ALL ANTI-PATTERNS
> SQL FILE NAME :: output
> COLOR MODE :: ENABLED
> VERBOSE MODE :: DISABLED
> DELIMITER :: ;

SQL Statement: select table_schema, table_name, table_type, ifnull(engine, ‘none’) as engine,
ifnull(version, ‘0’) as version, ifnull(row_format, ‘none’) as row_format,
ifnull(table_rows, ‘0’) as table_rows, ifnull(data_length, ‘0’) as data_length,
ifnull(index_length, ‘0’) as index_length, ifnull(data_free, ‘0’) as data_free,
ifnull(create_options, ‘none’) as create_options from information_schema.tables
where table_schema = ‘innodb_small’;
[output]: (HINTS) NULL Usage
[Matching Expression: null]

All Anti-Patterns and Hints :: 7
> High Risk :: 0
> Medium Risk :: 0
> Low Risk :: 2
> Hints :: 5

Sqlcheck được bao gồm trong Apache 2.0 license. Dự án có năm người đóng góp, 187 thành viên, và 1,4k sao.
Orchestrator

Orchestrator là phương tiện quản lý sẵn có với khả năng nhân rộng cao. Nó cung cấp khả năng để tìm ra replication topology của một môi trường MySQL bằng cách thu thập dữ liệu thay đổi của chuỗi để xác định các master và slave. Nó cũng có thể được sử dụng để tái cấu trúc lại replication topology thông qua GUI, cung cấp một giao diện drag-and-drop để xúc tiến một slave cho một master. Quá trình vận hành này rất an toàn. Trong thực tiễn, Orchestrator chối từ bất kỳ hoạt động bất hợp pháp để không phá vỡ hệ thống của bạn.

rốt cuộc, Orchestrator có thể hỗ trợ khôi phục khi các nodes bị lỗi, vì nó sử dụng khái niệm về trạng thái để chọn lọc phương pháp khôi phục chuẩn xác và quyết định quy trình truyền bá chính hạp để vận dụng.

Orchestrator là một phương tiện khác được cung cấp bởi Shlomi Noach tại GitHub. Nó được bao gồm trong Apache 2.0 License. Orchestrator có 34 contributor, 2,780 cam kết, và 900 sao.
“Keeping the plates spinning”

Khóa học lập trình Java

Thứ Tư, 20 tháng 12, 2017

Nuôi mèo ảo đang trở thành cơn sốt của cộng đồng Crypto thế giới

Trò chơi mèo ảo CryptoKitties được phát triển trên nền móng blockchain Ethereum, giao du bằng Ethereum.

 

 

CryptoKitties mới chỉ ra mắt cách đây vài ngày, nhưng CryptoKitties đang trở nên một cơn sốt của cộng đồng Crypto (hay còn gọi là cộng đồng tiền mã hóa) trên toàn thế giới. CryptoKitties giống như trò chơi nuôi thú ảo trước đây, nhưng được phát triển trên nền tảng blockchain của Ethereum và nó có thể giúp bạn kiếm ra rất nhiều tiền.

CryptoKitties được phát triển bởi studio thiết kế AxiomZen. Khi bắt đầu trò chơi này, bạn cần bỏ ra 0,01 ETH (khoảng 12 USD) để mua một con mèo ảo trước hết của mình. Sau đó, bạn sẽ nuôi con mèo ảo của mình và bắt đầu cho nó lai giống, để tạo ra những con mèo đặc biệt.

Tính cho đến nay, đã có 1,3 triệu USD được giao tiếp qua hệ thống blockchain của trò chơi. Đặc biệt, có những con mèo ảo được bán với giá 50 ETH (khoảng 23.000 USD), hay giữ kỷ lục cao nhất đến nay là con mèo có tên “Geneesis” với giá bán 246 ETH (khoảng 113.000 USD).
Cách chơi của CryptoKitties

Trò chơi bắt đầu với 100 con mèo ảo trước nhất do AxiomZen tạo ra, được gọi là “Founder Kitties”. nhàng nhàng cứ 15 phút sẽ lại có thêm một con mèo ảo được ra đời, với giá bán Trung bình của 5 con gần nhất đã được bán và cộng thêm 50%. Tuy nhiên giá bán này sẽ giảm dần trong vòng 24 giờ, cho đến khi có một ai bằng lòng mua nó.
 

 

 

mỗi con mèo được quy định một gen di truyền 256-bit khác nhau, chúng được hiển thị bên ngoài qua hình dạng, màu sắc, các vết sọc, tốc độ phối giống và sinh con. Khi được cho giao cấu, hai bộ gen phối hợp tạo ra một bộ gen di truyền hoàn toàn mới. Chính vì vậy mà có hàng trăm triệu bộ gen khác nhau mà những người chơi có thể tạo ra.

Bạn có thể bắt đầu bằng cách mua một con mèo ảo Gen 0 (đời trước nhất), thường có giá rẻ nhất. Sau đó, bạn có thể quyết định bán lại con mèo mới mua trên chợ, cho những người chơi khác. Hình thức bán theo cách đấu giá, bạn chọn giá bắt đầu và giá chấm dứt (thấp hơn), giá bán sẽ tự động giảm trong 24 giờ cho đến khi có ai đó chấp nhận mua.

Nếu không bán, bạn có thể cho con mèo của mình đi giao cấu. Nếu mèo của bạn là giống đực, bạn có thể đăng trên chợ và cho những con mèo cái khác giao phối. Nếu những người chơi khác sở hữu mèo cái, họ sẽ chấp thuận trả một số ETH cho bạn để được giao cấu và những con mèo cái này sẽ đẻ con.

na ná, nếu bạn sở hữu mèo cái, bạn sẽ phải trả một số lượng ETH cho người chơi khác để được giao cấu với mèo đực của họ. Chính thành thử mặc cả mèo đực và mèo cái đều có thể tạo ra tiền. Tuy nhiên mỗi con mèo đều có thời kì cooldown sau mỗi lần giao phối và sinh con.

 

 
đời thứ hai được sinh ra từ Gen 0 là Gen 1, chúng có những điểm ưu việt hơn như thời gian cooldown nhanh và màu sắc đặc biệt do được lai tạo. Bạn có thể tiếp bán đấu giá những con mèo Gen 1, hoặc cho chúng giao cấu để tạo ra những gen tiếp theo. Lưu ý, bạn sở hữu mèo cái mới có thể tạo ra các gen tiếp theo.

Điều quan yếu là AxiomZen không quy định giá hay mức độ quý hiếm của từng con mèo ảo. Số lượng gen di truyền là rất lớn và không được quản lý, chính vì thế mà cộng đồng là người quyết định giá trị và độ quý hiếm của từng con mèo. Nếu một con mèo nào đó là độc nhất vô nhị và có chỉ số ưu việt, nó có thể được bán lại với giá rất cao.
Không chỉ là một trò chơi đơn thuần

CryptoKitties không chỉ là một trò chơi đơn thuần do một nhà phát triển game tạo ra. Nó là một ứng dụng của công nghệ blockchain Ethereum, cho nên không ai có thể kiểm soát các dữ liệu. Một con mèo mà bạn tạo ra sẽ hoàn toàn thuộc về bạn và tồn tại mãi mãi trên blockchain, ngay cả khi công ty thiết kế AxiomZen đóng cửa.

Trò chơi được kết liên với ví Ethereum của bạn, các giao tế cũng được thực hành bằng Ethereum. Chính bởi vậy mà CryptoKitties giống như một khoản đầu tư, từ số vốn ETH bỏ ra ban sơ, bạn có thể kiếm được rất nhiều tiền từ trò chơi này bằng cách cho giao phối, sinh con và bán lại các thế hệ sau trên chợ cho người chơi khác.
 

 
hững con mèo đặc biệt và hiếm sẽ có giá bán cao. Điều quan trọng là giá bán được quy định bởi cộng đồng, chứ không phải nhà phát triển.

Điều thúc, đó là tất tật nội dung của trò chơi đều là ảo, nhưng giá trị của nó được một cộng đồng chấp nhận và do đó nó có giá trị thật. AxiomZen đã áp dụng công nghệ giao kèo sáng dạ, đặc trưng riêng của blockchain Ethereum, để đảm báo cho từng giao du được thực hiện xác thực và an toàn.

ngày nay, có tới 15% lưu lượng mạng blockchain Ethereum được dành riêng cho trò chơi này, làm cho CryptoKitties trở thành vận dụng hợp đồng sáng ý phổ quát nhất bây giờ của Ethereum.

Khóa học lập trình viên quốc tế

Stack Overflow đã phát hành nghiên cứu hàng năm về ngành công nghiệp lập trình.

Công ty cho biết ấn bản 2018 của nó đại diện cho nghiên cứu 'lớn nhất từng có' về thái độ, lương và nhân khẩu học của nhà phát triển...