Cài đặt Oracle 11g, 12c

Thử cài đặt Oracle trên Máy ảo linux hoặc window

https://o7planning.org/vi/10347/huong-dan-cai-dat-va-cau-hinh-database-oracle-12c

https://o7planning.org/vi/10211/huong-dan-cai-dat-va-cau-hinh-database-oracle-11g

Kết nối Python với MariaDB trên Anaconda

Trong nhiệm vụ crawl dữ liệu cho những dự án linh tinh của mình, việc cần thiết là phải lưu trữ lại các dữ liệu trong một hệ quản trị cơ sở dữ liệu nào đó, mình đã chọn MariaDB để làm điều này.
Vì việc lựa chọn Python trên Anaconda để thực hiện nên mình cần một hệ quản trị cơ sở dữ liệu nào đó vừa nhẹ, dễ sử dụng và quen thuộc. Đối với SQL Server và Oracle thì quá quen thuộc nhưng phải cài đặt nó mất rất nhiều thời gian mà không cần thiết vì nó hơi to so với dự án của mình. Với lại Oracle thì mình cũng đã kết nối được với Python rồi. Sử dụng No SQL thì mình đã từng sử dụng Nodejs kết nối với MongoDB thì thực sự mình không ưa cái anh MongoDB này lắm vì thấy cũng hơi phức tạp.
Cái tên quen thuộc nữa là MySQL, ban đầu định dùng nó nhưng đúng là lúc đó đang gặp vấn đề về việc cài đặt Xampp và Wampp lên máy tính ở nhà (do xung đột một số cổng của các phần mềm khác như Skype…). Với có thông tin rằng MySQL dần dần không còn là nguồn mở nữa, anh bạn Oracle đã mua lại và không còn được hào phóng như cộng đồng nguồn mở nữa. Cho nên cái nên MariaDB là lựa chọn cuối cùng của mình.

  • MariaDB là một phiên bản khác của MySQL và được cộng đồng nguồn mở dần chuyển qua để thay thế cho MySQL ngày càng đóng lại.
    Để cài đặt MariaDB thì khá đơn giản, hoàn toàn có thể cài đặt được ở máy tính cá nhân và trên server. Các bạn có thể vào địa chỉ: https://mariadb.com/downloads/#mariadb_platform-mariadb_server để tải về và cào đặt dễ dàng (chỉ cần next thôi).
  • Trong gói này mặc định có một GUID để thao tác các câu lệnh trên đó là HeidiSQL. Ta có thể sử dụng nó để thực hiện các truy vấn cơ bản tới cơ sở dữ liệu MySQL hoặc MariaDB.

Về phần DB là xong, để kết nối từ Python tới MariaDB ta cần sử dụng một thư viện để thực hiện kết nối và thực hiện các câu lệnh như Select, Insert, Update, Delete. Vì MariaDB là một phiên bản được fork từ MySQL nên ta có thể sử dụng thư viện mysql-connector.

Trên Anaconda ta có 2 cách để cài đặt thư viện là:

  1. Vào mục Environments, tìm gói đã được Anaconda tập hợp vừa tương thích Python và tương thích với các thư viện khác.
  2. Nếu cách trên không được do một lỗi nào đó hoặc Anaconda chưa hỗ trợ thì ta có thể cài đặt thực tiếp thông qua dòng lệnh. Có thể tham khảo thông qua hướng dẫn: https://enterprise-docs.anaconda.com/en/latest/data-science-workflows/data/mariadb.html

Khi mọi thứ done ta có thể sử dụng đoạn lệnh sau để test kết nối.

import pandas as pd
 import numpy as np
 import matplotlib.pyplot as plt
 import seaborn as sns
 %matplotlib inline
 from urllib.request import urlopen
 from bs4 import BeautifulSoup
 #
 import MySQLdb
 db = MySQLdb.connect(host="127.0.0.1", port=2017, user="root", passwd="test", db="test")
 c = db.cursor()
 a1="https://trituenhantao.info/posts"
 c.execute("SELECT url FROM test")
 d=c.fetchall()
 a2=0
 for url in d:
     #if url.startswith('http://trituenhantao.info'):
         a2=a2+1
         print(f'{a2} URL: {url}')
         print(url)
 print(c.fetchone())

Sử dụng Keras trên Anaconda3 – Deep learning để phân loại ảnh

https://nttuan8.com/bai-7-gioi-thieu-keras-va-bai-toan-phan-loai-anh/
Có code test.

Cách cài đặt Keras trên Anaconda 3- Win 10:

Trong mục Environments chọn All nhập keras và nhấn tìm kiếm.

Tích vào keras, keras-base, keras-applications, keras-preprocessing. Sau đó nhấn Apply để cài đặt.

Sử dụng Python kết nối CSDL Oracle bằng Anaconda

Anaconda là 1 tool trên Windown giúp học và sử dụng Python được dễ dàng hơn. Bài viết này sẽ ghi lại các thao tác cài đặt để có thể sử dụng Python kết nối với CSDL Oracle.

  • B1: Chuẩn bị sẵn Anaconda3
  • B2: Cài đặt thư viện cx_oracle làm cầu nối giao tiếp giữa Python và Oracle
    Trong phần quản trị của Anaconda, chọn tab Environments.
    Trong màn hình này chọn All và nhập tìm kiếm cx_oracle
  • B3: Tích chọn vào cv_oracle và ấn Apply. chờ 1 chút để việc cài đặt hoàn tất.
  • B4: Để test, tạo mới một Notebook Jupiter, và nhập thử như sau:
import cx_Oracle
dsn_tns = cx_Oracle.makedsn('192.168.177.xxx' , 1522, 'oracl')
connection = cx_Oracle.Connection('admin','admin',dsn_tns)
ver=connection.version
print('DB version : '+ ver)
cur=connection.cursor()
cur.execute('Select name from v$database')
for result in cur:
    print('DB Name : ' + result[0])
cur.close()
connection.close 

Kết quả hiển thị thành công:

DB version : 11.2.0.4.0
DB Name : ORACL

Phát hiện đối tượng real-time với YOLO

YOLO là một thư viện sử dụng trí tuệ nhân tạo để phát hiện đối tượng real-time trong ảnh và video. Ta có thể sử dụng YOLO với nhiều ngôn ngữ khác nhau như Python, Javascript, C++… YOLO xử lý ảnh có thể sử dụng GPU hoặc OPENCV
Trang chủ của YOLO: https://pjreddie.com/darknet/yolo/#demo

Phát hiện đối tượng với YOLO
Phát hiện đối tượng với YOLO

Cài đặt YOLO trên máy ảo

  • Thiết lập máy ảo CENTOS 7
  • Cài đặt git: sudo yum install git
  • cài đặt GCC: # yum group install “Development Tools”
  • Clone project darknet: git clone https://github.com/pjreddie/darknet
  • Cài đặt OPEN CV
    yum install cmake gcc gtk2-devel numpy pkconfig -y
    cd
    wget https://github.com/opencv/opencv/archive/3.4.2.zip
    unzip 3.4.2.zip
    https://www.vultr.com/docs/how-to-install-opencv-on-centos-7
  • Sửa file Makefile dòng OPENCE từ 0 thành 1
  • Biên dịch darknet:
    cd darknet
    make
  • Tải trọng số có sẵn đã được train: wget https://pjreddie.com/media/files/yolov3.weights
  • Test: ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

Một số địa chỉ tham khảo:

https://www.blog.pythonlibrary.org/2018/06/05/creating-pdfs-with-pyfpdf-and-python/

https://pjreddie.com/darknet/yolo/#demo

https://www.vultr.com/docs/how-to-install-opencv-on-centos-7

Dùng python call webservice XML SOAP

Sau một hồi vật vã tìm kiếm thì mới tìm thấy cách sử dụng python để gọi một 1 webservice XML sử dụng SOAP.
Webservice XML được tạo ra bởi .NET và sử dụng .NET để gọi thì đơn giản rồi. Bây giờ mình muốn sử dụng Python thì cũng khá phức tạp, tìm mãi mới thấy cách dùng:

Code:

import requests
url="http://xxx.xxx.xxx:8668/xxx/WHOLESALESTATISTIC.asmx?WSDL"
#headers = {'content-type': 'application/soap+xml'}
headers = {'content-type': 'text/xml'}
body = """<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body><WholesaleStatistic xmlns="http://tempuri.org/">  <Account>xxx</Account> <Password>[email protected]</Password> <sDate>2019-02-17</sDate></WholesaleStatistic>  </soap:Body></soap:Envelope>"""

response = requests.post(url,data=body,headers=headers)
print(response.content)

Kết quả sẽ trả về định dạng XML, từ đây có thể lấy dữ liệu ra bằng cách pase XML hoặc google…

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><WholesaleStatisticResponse xmlns="http://tempuri.org/"><WholesaleStatisticResult><newsubs>0</newsubs><deactivated>0</deactivated><portfolio>20</portfolio></WholesaleStatisticResult></WholesaleStatisticResponse></soap:Body></soap:Envelope>'

Một số link tham khảo thêm:

https://medium.com/@adriennedomingus/using-zeep-to-make-soap-requests-in-python-c575ea0ee954

https://www.geeksforgeeks.org/get-post-requests-using-python/

https://viblo.asia/p/xay-dung-mot-restful-api-don-gian-voi-python-va-flask-bJzKmMvDK9N

http://hoctuduylaptrinh.com/category/lap-trinh/lap-trinh-python/

Cài đặt máy ảo để lấy môi trường để “vọc” thứ mới

Máy ảo có nhiều tác dụng mà mình đang sử dụng như sau:

  • Check các file cần giải nén nghi ngờ có virut ở trong như các file crack
  • Tạo môi trường linux để thử nghiệm các lệnh linux, lập trình trên linux
  • Tạo môi trường server để tập build app, public trên các môi trường khác như Windowserver, Linux server..
  • Tự học các thứ mới như các hệ thống HA, Database Oracle, Apex…

Để cài máy ảo trên window và linux hiện mình biết có 2 phần mềm là Virtualbox và Vmware workstation.
Trong đó máy chính của mình là Window nên mình hay dùng với Vmware workstation, trước đây cũng dùng Virtualbox nhưng về sau lại thôi.
Để cài Vmware workstation thì đơn giản, google cái ra rất nhiều. Nhưng nếu muốn cài máy ảo 64 bit thì phải vào BIOS bật tính năng VT(x) lên (google nhé: BIOS cài máy ảo 64 bit).

Để đỡ phải cài máy ảo nhiều lần, khi ta cài xong 1 máy thì có thể nhân bản để lưu trữ lại. Vmware workstation cho phép ta nhân bản với 2 tính năng:

  • Clone: chép nguyên 1 bản máy ảo lại, mình thích dùng cách này, cách này cho ta 1 bản mới nguyên.
  • Snapshot: Sao lưu lại trạng thái của máy ở 1 thời điểm nào đó, cách này cho phép ta restore máy về 1 trạng thái nào trước đó.

Chiến lược của mình là cài xong 1 máy ảo, tiến hành clone ra 1 bản để sử dụng. Khi nào muốn dùng bản mới ở trạng thái ban đầu thì lại clone từ bản gốc để sử dụng.
Đối với mỗi bản đang dùng, trước khi làm 1 thao tác gì hoặc cài đặt, cấu hình cái gì thì tiến hành snapshot lại để có thể dễ dàng trở lại trạng thái trước đó.

Học và ứng dụng DATA SCIENTIST, AI, MACHINE LEARNER với KAGGLE

KAGGLE: học tập và áp dụng kiến thức vào các Project về DATA SCIENTIST, AI, MACHINE LEARNER

Kaggle là nơi để những người nghiên cứu về data science có thể chia sẻ kiến thức, dữ liệu và những người mới nghiên cứu về machine learning có thể học tập, tìm kiếm tài liệu, tham gia các cuộc thi và áp dụng các kiến thức này vào các project thực tế.

Máy có thể vẽ bằng bút theo một định dạng cho trước với AxiDraw

Trong quá trình làm luận văn về sử dụng sóng não để điều khiển thiết bị thông qua Emotiv. Thầy Vĩnh có đưa ra ý tưởng vẽ lại một bức ảnh gì đó đã được nhìn thấy trong quá khứ. Ý thầy sử dụng Emotive là thiết bị đọc sóng não kết hợp với thiết bị vẽ AxiDraw.

Ý tưởng này để hậu xét nhưng thấy thằng AxiDraw cũng khá hay ho. Là một thiết bị ứng dụng IOT mà điển hình là Adruino.

The AxiDraw V3 Drawing machine by Evil Mad Scientist. AxiDraw.com