wake on lan from internet WOL

Open the Router web configuration interface, and switch to the “Advanced” tab.

Go to Network » DHCP server » Address reservation, assign a static IP to machine you want.

Go to Security » IP & Mac Binding. Find your machine in the “ARP list”, and click the link icon on the far right. It should then show up in the “Binding list” below, and be listed as “Bound” in the ARP list.

Go to NAT Forwarding » Virtual Servers and create a new service called WakeOnLan:

Set external port to anything (say 9999)
Set internal port to 9
Set internal IP to the static address of your machine.
Create a service for SSH, whatever other services you need. (Changing the external SSH port to something other than 22 reduces the number of brute force attacks on your router by a lot.)

Go to Network » Dynamic DNS and enable one of the many services.

Now you can wake your computer remotely by:

wakeonlan -p 9999 -i router.tplinkdns.com <Mac Address>
and then connect to it by

ssh -p XXXX router.tplinkdns.com
For multiple computers, just assign different external ports for each computer.

Flask display pandas df

if i have datafram to display on how will my template looks like?

This is an example of how you can render a Pandas DataFrame in a Flask template:

<!doctype html>
<html>
  <head>
    <title>Stocks Information</title>
  </head>
  <body>
    <h1>Stocks Information</h1>
    <table>
      <thead>
        <tr>
          <th>Symbol</th>
          <th>Indicator 1</th>
          <th>Indicator 2</th>
          <th>Indicator 3</th>
        </tr>
      </thead>
      <tbody>
        {% for index, row in df.iterrows() %}
          <tr>
            <td>{{ row['Symbol'] }}</td>
            <td>{{ row['Indicator 1'] }}</td>
            <td>{{ row['Indicator 2'] }}</td>
            <td>{{ row['Indicator 3'] }}</td>
          </tr>
        {% endfor %}
      </tbody>
    </table>
  </body>
</html>
flask python photo
Photo by See-ming Lee (SML)

This template includes a table that displays the data from a Pandas DataFrame. The DataFrame is passed to the template as a variable named df. The template uses a for loop to iterate over the rows of the DataFrame and generate a row in the table for each row of the DataFrame.

To render the template in your Flask application, you can use the render_template() function and pass the DataFrame as a keyword argument. For example:

from flask import Flask, render_template
import pandas as pd

app = Flask(__name__)

@app.route('/')
def home():
    df = pd.read_csv('data.csv')
    return render_template('stocks.html', df=df)

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

This Flask application reads a CSV file containing the stocks information and loads it into a Pandas DataFrame named df. The df variable is then passed to the stocks.html template using the render_template() function.

I hope this helps!

python ML Python divergencce finder ML machine learning

machine learning photomachine learning photo

import pandas as pd
import numpy as np
import talib
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split

def extract_features(df):
    # Calculate RSI
    df['rsi'] = talib.RSI(df['close'].values, timeperiod=14)

    # Calculate Bollinger Bands
    upperband, middleband, lowerband = talib.BBANDS(df['close'].values, timeperiod=14)
    df['bollinger_upper'] = upperband
    df['bollinger_middle'] = middleband
    df['bollinger_lower'] = lowerband

    # Calculate Moving Average
    df['ma50'] = talib.SMA(df['close'].values, timeperiod=50)

    return df

def label_data(df):
    # Mark the rows where the RSI value is above 70 as "divergence" (0)
    # Mark the rows where the RSI value is below 30 as "convergence" (1)
    df['label'] = np.where(df['rsi'] > 70, 0, 1)
    df['label'] = np.where(df['rsi'] < 30, 1, df['label'])

    return df

def load_data(filename):
    df = pd.read_csv(filename)
    df = extract_features(df)
    df = label_data(df)

    return df

def train_model(df):
    # Split data into training and testing sets
    X = df.drop(['label'], axis=1)
    y = df['label']
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)

    # Train a decision tree model
    clf = DecisionTreeClassifier(random_state=0)
    clf.fit(X_train, y_train)

    # Test the model on the testing data
    accuracy = clf.score(X_test, y_test)
    print("Accuracy:", accuracy)

    return clf

def predict(clf, df):
    # Use the trained model to predict the labels for the test data
    X = df.drop(['label'], axis=1)
    y_pred = clf.predict(X)

    return y_pred

# Load the data from a CSV file
df = load_data('stock_data.csv')

# Train the model
clf = train_model(df)

# Use the trained model to predict the labels for new data
y_pred = predict(clf, df)







import pandas as pd
import numpy as np
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
import joblib

def load_data(file_name):
    df = pd.read_csv(file_name)
    return df

def preprocess_data(df):
    df = df.dropna()
    df['rsi'] = calculate_rsi(df)
    df['bolinger_band'] = calculate_bolinger_band(df)
    df['ma50'] = calculate_ma50(df)
    return df

def calculate_rsi(df):
    gain = df['close'].diff().where(df['close'].diff() > 0, 0)
    loss = df['close'].diff().where(df['close'].diff() < 0, 0)
    avg_gain = gain.rolling(14).mean()
    avg_loss = loss.rolling(14).mean().abs()
    rs = avg_gain / avg_loss
    rsi = 100 - (100 / (1 + rs))
    return rsi

def calculate_bolinger_band(df):
    rolling_mean = df['close'].rolling(window=20).mean()
    rolling_std = df['close'].rolling(window=20).std()
    bolinger_high = rolling_mean + (rolling_std * 2)
    bolinger_low = rolling_mean - (rolling_std * 2)
    bolinger_band = (df['close'] - bolinger_low) / (bolinger_high - bolinger_low)
    return bolinger_band

def calculate_ma50(df):
    ma50 = df['close'].rolling(window=50).mean()
    return ma50

def create_features_and_labels(df):
    df['price_pattern'] = np.where(df['close'].diff(1) > 0, 1, 0)
    df['rsi_pattern'] = np.where(df['rsi'].diff(1) > 0, 1, 0)
    X = df[['rsi_pattern', 'bolinger_band', 'ma50']]
    y = df['price_pattern']
    return X, y

def train_model(X_train, y_train):
    model = DecisionTreeClassifier()
    model.fit(X_train, y_train)
    return model

def evaluate_model(model, X_test, y_test):
    y_pred = model.predict(X_test)
    accuracy = accuracy_score(y_test, y_pred)
    return accuracy

def save_model(model, file_name):
    joblib.dump(model, file_name)

def load_model(file_name):
    return joblib.load(file_name)

def write_result_to_csv(file_name, stock_name, result):
    with open(file_name, 'a') as f:
        f.write(f'{stock_name},{result}\n')

if __name__ == '__main__':
    stock_








# Get a list of all the CSV files in the directory
files = [f for f in os.listdir() if f.endswith('.csv')]

# Read each file into a separate DataFrame and store them in a list
dfs = [pd.read_csv(f) for f in files]

# Concatenate the DataFrames into a single DataFrame
df = pd.concat(dfs, ignore_index=True)

machine learning photomachine learning photomachine learning photo

disable all logging ubuntu 22.04

you can stop the rsyslog service using the sudo service rsyslog stop command. However, as the warning message indicates, stopping the rsyslog service will not necessarily prevent messages from being written to the log files if the syslog.socket unit is still active.

If you want to completely disable logging, you should disable or stop any other services or applications that might be writing to the log files. Additionally, you can also disable the syslog.socket unit to prevent any further messages from being logged:

bash

sudo systemctl disable syslog.socket

This command will prevent the syslog.socket unit from automatically starting on boot, which means that no further messages will be logged until the unit is manually started again.

free docker registry as of March 2023

Docker hub change their policy for docker registry

As of 2023, Docker Hub still offers a free plan, but with more limitations compared to the paid plans. The free plan includes one private repository and 500 MB of storage, with a limit of 200 pull requests per day.

If you need more storage and features, you can consider using alternative Docker registries that offer free plans, such as:

  1. GitHub Container Registry: This is a Docker registry that’s integrated with GitHub and allows you to store and manage Docker images in your GitHub repositories. It offers unlimited free storage and bandwidth, but has a limit of 500 MB per package size.
  2. Harbor: This is an open-source Docker registry that allows you to store and manage Docker images on your own infrastructure. It offers unlimited free storage and bandwidth, but requires you to set up and maintain your own registry server.
  3. Google Container Registry: This is a Docker registry that’s integrated with Google Cloud Platform and allows you to store and manage Docker images in your Google Cloud Storage buckets. It offers 5 GB of free storage per month and a limit of 1 GB per image size.
  4. Quay.io: This is a Docker registry that’s owned by Red Hat and allows you to store and manage Docker images in a private or public repository. It offers unlimited free storage and bandwidth for public repositories, and a limit of 500 MB per private repository.

Note that the free plans for these Docker registries may have some limitations or restrictions, so be sure to check their documentation and terms of service before using them.

ปิดปุ่ม F1 windows

[HKEY_CURRENT_USER\SOFTWARE\Classes\Typelib\{8cec5860-07a1-11d9-b15e-000d56bfe6ee}\1.0\0\win32]
@=""
[HKEY_CURRENT_USER\SOFTWARE\Classes\Typelib\{8cec5860-07a1-11d9-b15e-000d56bfe6ee}\1.0\0\win64]
@=""

Computer\HKEY_CLASSES_ROOT\TypeLib\{8cec5860-07a1-11d9-b15e-000d56bfe6ee}\1.0\0\win64
Computer\HKEY_CLASSES_ROOT\TypeLib\{8cec5860-07a1-11d9-b15e-000d56bfe6ee}\1.0\0\win32
@echo off
taskkill /f /im HelpPane.exe
takeown /f %WinDir%\HelpPane.exe
icacls %WinDir%\HelpPane.exe /deny Everyone:(X) 

Aquaponics คืออะไร

Aquaponics มาจากการรวมกันของสองคำ คือ Aquaculture กับ Hydroponic คือการเลี้ยงสัตว์น้ำและการปลูกพืชแบบไร้ดิน การวิวัฒนาการศึกษาของทั้งสองเรื่องถือว่ามาถึงจุดที่สูง คือสามารถให้ผลลัพธ์ที่ดีถ้าทำอย่างถูกต้อง

hydroponic photo

การทำอควาโปนิคส์ คือการนำสองอย่างนี้มาประกอบกันเป็นระบบใหม่ที่เป็นระบบนิเวศที่สมบูรณ์มากขึ้น โดยส่วนประกอบหลัก มีสามส่วนคือ ปลา พืช และจุลินทร์หรือแบคทีเรียต่างๆ ส่วนที่ถูกมองข้ามไปบ่อยๆของaquaponics คือแบคทีเรียซึ่งเป็นส่วนเติมเต็มให้กับระบบไนโตรเจนไซเคิล

ระบบ Aquaponics ไม่ใช้ดินในการปลูกแต่อาจจะใช้วัสดุปลูกอื่น เพื่อเป็นตัวประคองราก เช่น ดินเผา หิน กรวด หินภูเขาไฟ หรือแม้กระทั่งไม่ใช้วัสดุปลูกเลยหรือ เทคนิค NFT

ระบบนิเวศเล็กๆในระบบAquaponics

ปลาขับของเสียต่างๆและแอมโมเนีย ซึ่งเป็นอันตรายกับปลา และลดทอนคุณภาพน้ำ ในระบบอควาโพนิคส์ น้ำจากการเลี้ยงปลาจะถูกป้อนให้เข้า พื้นทีเลี้ยง ซึ่งจะถูกแบคทีเรียที่ดีทำการแปลงแอมโมเนียเป็นไนไตรต์และไนเตรตตามลำดับ

ไนเตรทและแร่ธาตุที่มีประโยชน์อื่นๆ จะถูกดูดซึมโดยพืช ทำให้คุณภาพน้ำดีและสะอาดมากขึ้น ตามสะอาดเหล่านี้ จะถูกหมุนเวียนกลับไปให้ปลา ส่วนของเสีย หรือตะกอน จะถูกกรองออกโดย กรองกายภาพ

น้ำสะอาดที่ถูกหมุนเวียนกลับไป และจะถูกเพิ่มออกซิเจนในน้ำ เพื่อให้ได้ตามความต้องการของปลา ระบบนี้เป็นระบบที่จำลองระบบนิเวศของธรรมชาติ สามารถให้ผลผลิตที่มีคุณภาพ และไร้สารเคมี ทั้งปลาและพืชผักต่างๆ

อควาโปนิกส์แบบต่างๆ

ระบบอควาโปนิกส์ มีหลายระบบ แต่จะมี 3 ระบบที่ได้รับการยอมรับสูงสุดและเป็นระบบที่ใช้ อย่างแพร่หลาย ทั้งๆในครัวเรือนและอุตสาหกรรม

Media filled growbed

ระบบนี้เป็นระบบที่ทำง่ายที่สุด โดยในกระบะปลูก จะถูกใส่ด้วยวัสดุปลูกจนเต็ม วัสดุปลูก ที่ใช้ จะมีทั้งก้อนดินเผา กรวด หินภูเขาไฟ หรือวัสดุที่มีความคล้ายคลึง น้ำจะถูกสูบจากบ่อเลี้ยงปลาเข้ามาไว้ใน พื้นที่ปลูกพืช โดยจะมี 2 แบบ 1 คือ แบบใส่น้ำไว้ตลอดเวลา และ 2 คือแบบ ที่มีการระบายน้ำทิ้งเป็นพักๆ

hydroponic photo

NFT nutrient film technique

ระบบนี้เป็นระบบที่ ถูกใช้อย่างแพร่หลาย ในการปลูกพืชไร้ดินหรืออะควาโพนิค โดยจะไม่ใช้วัสดุปลูกในพื้นที่ปลูก แต่น้ำจะมีการไหลผ่านรากซึ่งน้ำที่มีแร่ธาตุอาหารเหล่านี้จะถูกดูดซึมไปใช้โดยพืชโดยตรง พืชที่เหมาะกับการปลูกลักษณะนี้ส่วนมากจะเป็นผักที่มีขนาดเล็ก เนื่องจากต้นไม้ที่มีขนาดใหญ่จะไม่มีพื้นที่สำหรับยึดเกาะราก และจะทำให้ต้นล้มลงได้ ระบบนี้ถูกใช้มากในการปลูกเพื่ออุตสาหกรรม เพื่อให้ได้ผลผลิตสูงสุด แต่ระบบนี้จำเป็นต้องมีการกรองน้ำที่ดี เนื่องจากแตกต่างจากการปลูกแบบไฮโดรโปนิกส์ เพราะน้ำที่ มาจากบ่อเลี้ยงปลา จะมีตะกอนอยู่มากซึ่งทำให้เกาะติดกับรากพืช แล้วจะทำให้พืชขาดออกซิเจน

hydroponic photo

DWC deep water culture

ระบบนี้จะคล้ายกับระบบ nft แต่จะใช้ช่องน้ำขนาดใหญ่ แล้วปลูกพืชบนแพ ให้รากพืชลงไปหาอาหารในน้ำ ระบบนี้จะดีกว่าระบบ nft เพราะสามารถทำได้โดยใช้ต้นทุนต่ำกว่า สำหรับระบบขนาดใหญ่ เมื่อเทียบ กับระบบ nft ที่ต้องทำหลุมปลูกสำหรับพืชแต่ละต้น ระบบ dwc สามารถใช้แผ่นโฟม วางไว้บนน้ำ และเจาะหลุมเพื่อทำการปลูกพืช ระบบนี้สามารถทนต่อตะกอนในน้ำได้มากกว่าระบบ nft

hydroponic photo

ใครที่เหมาะกับการทำอควาโปนิกส์

ระบบอควาโปนิกส์ เป็นระบบที่มีความหลากหลายมาก สามารถทำได้ตั้งแต่ระบบขนาดเล็กสำหรับใช้ภายในบ้าน หรือทำเป็นระบบขนาดใหญ่เพื่อปลูกผักเป็นอุตสาหกรรม โดยจะได้ทั้งผลลัพธ์เป็นผัก และปลาในบ่อเลี้ยงที่มีขนาดสมบูรณ์

aquaponics photo
Photo by Mananasoko

ระบบ aquaponic ถูกใช้ในโรงเรียนและมหาวิทยาลัยในต่างประเทศ
โดยใช้เป็นสื่อการสอนสำหรับในโรงเรียนและมหาวิทยาลัย เนื่องจากระบบอควาโปนิกส์เป็นการจำลองระบบนิเวศภายในธรรมชาติ เป็นระบบที่เข้าใจได้ไม่ยากและได้ผลลัพธ์ที่น่าตื่นเต้น ทำให้ผู้ศึกษาสามารถเข้าใจ การอยู่ร่วมกันระหว่างสัตว์น้ำและพืชในระบบนิเวศ เหมาะทั้งในระดับ เด็กเล็กไปจนถึงระดับมหาวิทยาลัย ระบบอควาโปนิกส์ได้รับการยอมรับ ให้เป็นสื่อการสอนที่ดีทั้งทางทฤษฎีและในภาคปฏิบัติ และยังเป็นสื่อในการ สอนการทำอาชีพทางด้านเกษตรกรรม

aquaponics photo
Photo by Kanu Hawaii

พืชชนิดใดที่เหมาะกับการปลูกอควาโปนิกส์

พืชผักต่างๆ ทั้งที่โตเร็ว เก็บผลผลิตทั้งต้น เช่นผักต่างๆผักกาด ผักกาดหอม ผักสลัดต่างๆกรีนโอ๊คเรดโอ๊คผักคอส หรือเก็บเฉพาะผล เช่นมะเขือเทศ เมล่อนพริก แตงกวา ในระบบอควาโปนิกส์ขนาดใหญ่ ยังสามารถปลูกต้นไม้ขนาดใหญ่ได้ด้วย ถ้ามีระบบประคองลำต้นที่ดีพอ เนื่องจากระบบอควาโปนิกส์ ไม่ใช้ดิน จึงต้องมีส่วนช่วยค้ำจุนลำต้น

aquaponics photo
Photo by Cara Harpole

ปลาที่เหมาะกับระบบอควาโปนิกส์

ควรเป็นปลาที่เติบโตในท้องถิ่น เนื่องจากสภาวะและอุณหภูมิที่เหมาะสม ในประเทศไทย ปลาที่สามารถ ทนสภาพแวดล้อมได้ดี และมีตลาดรับซื้อเมื่อปลาตัวเต็มวัย เช่นปลานิล ปลาทับทิม หรือปลาดุก แต่สำหรับผู้ที่ ไม่ได้ต้องการผลผลิตจากปลา ก็สามารถเลี้ยงปลาสวยงามแทนได้ เช่นปลาทอง ปลาคาร์ฟ หรือปลาสวยงามอื่น ในต่างประเทศที่มีอุณหภูมิเย็น นิยมเลี้ยงปลาค็อต ปลาเทร้าท์ และปลาดุก

aquaponics photo
Photo by Kanu Hawaii

เพิ่มคุณภาพน้ำ ให้กับการเลี้ยงปลา สวยงาม

ในบ่อ หรือตู้ปลาสวยงาม ที่มีระบบกรองที่สมบูรณ์แล้ว จะได้ของเหลือจากการย่อยสลาย แอมโมเนียและไนไตรท์ โดยแบคทีเรียที่ดีคือ ไนเตรท ซึ่งตามปกติไนเตรทไม่สามารถถูกขับออกไปจากระบบเลี้ยงได้ ทำได้เพียง การทำให้เจือจางลง ด้วยการถ่ายน้ำเก่าและเติมน้ำใหม่เข้าไปในระบบ แต่เรา สามารถต่อยอดด้วยการเพิ่มระบบอควาโปนิกส์ โดยไม่ส่งผลกระทบกับบ่อปลาสวยงามที่มีอยู่ เพราะพืชที่ปลูกเพิ่มลงไป จะดึงไนเตรทออกจากน้ำ โดยที่ไม่ต้องถ่ายน้ำ ลดภาระให้กับผู้เลี้ยง ในต่างประเทศ นิยมใช้พืชตระกูลพลูด่างในการ ดูดซึมไนเตรตออกจากระบบ มีผู้ทดลองนำต้นโกงกาง สำหรับปลา ทะเลสวยงาม โดยปลูกต้นโกงกางไว้ในบ่อกรอง พบว่าปริมาณไนเตรทลดลง และได้ผลดี

ระบบกรองสำหรับเลี้ยงปลาทอง

จริงๆแล้วการเลี้ยงแบบไม่มีกรองทำได้ไหม? ทำได้ครับ แต่ว่าต้องถ่ายน้ำตลอดทุกวันเพื่อกำจัดของเสียออกไปจากน้ำเก่า แต่จะทำแบบนี้ทำไมล่ะ การเลี้ยงปลาทองต้องสนุกและสบายความสุขของเราควรอยู่เป็นการดูปลาว่ายน้ำอย่างร่าเริงไม่ใช่การถ่ายน้ำทุกวัน ถ้าเราสามารถสร้างระบบกรองที่ดีขึ้นมาได้ภาระการถ่ายน้ำจะลดลงอย่างไม่น่าเชื่อ

ระบบกรองที่ดีเป็นสิ่งจำเป็นสำหรับการเลี้ยงปลาสวยงามทุกชนิด โดยเฉพาะปลาทอง เพราะปลาทองเป็นปลาที่ปล่อยของเสียเยอะ ทั้งจากขี้ปลาและการขับเมือกต่างๆ

จุดประสงค์ของระบบกรองคือการกำจัดของเสียออกไปจากพื้นที่เลี้ยง ระบบกรองที่ดีจะช่วยให้น้ำใส และคุณภาพน้ำดี การกรองน้ำสำหรับปลาทองแบ่งเป็นสามประเภท กรองกายภาพ กรองชีวภาพ และกรองเคมี

กรองกายภาพทำให้น้ำใส
กรองชีวภาพทำให้คุณภาพน้ำดี
กรองเคมีเพื่อปรับค่าเคมีในน้ำ

นักเลี้ยงปลาทองมือใหม่จะให้ความสำคัญกับกรองทางกายภาพเป็นหลักเพราะว่าทำให้น้ำใส แต่จริงๆแล้วสิ่งที่สำคัญคือคุณภาพน้ำ คุณภาพน้ำดีถึงจะไม่ใสแต่ปลาอยู่แล้วมีความสุขกว่า

4 สิ่งที่ต้องคิดถึงเมื่อต้องเลือกระบบกรอง
พื้นฐานที่ควรรู้คือของเสียทางเคมีที่เกิดจากปลาคือแอมโมเนีย ของเสียทางกายภาพที่ทำให้เรารู้สึกว่าน้ำขุ่นคือเศษขี้ปลา หรือตะกอนที่อยู๋ในน้ำ เรามาดูกันว่าสิ่งที่ว่าคืออะไร

1. กระแสน้ำและความแรง
ลองนึกภาพว่าเวลาเราไปนั่งที่ลมพัดชิวๆเราก็รู้สึกสบายแต่ถ้าลมพัดแรงมาก พัดจนผมเพ้าพะรุงพะรัง เราคงอยากออกมาจากตรงนั้น

ที่นี้มาเทียบกับปลาทองระบบกรองที่ดีควรมีรอบน้ำที่เหมาะสม และกระแสน้ำที่เหมาะกับการเลี้ยง ปลาทองบางสายพันธุ์ก็สามารถอยู่กระแสน้ำแรงได้ เช่น พวกโคเมท พวกนี้สามารถอยู่ในกระแสน้ำได้ด้วยรูปร่างที่เพรียวบาง

ปลาทองสายพันธุ์ที่มีหางและครีบยาว อาจจะไม่เหมาะกับระบบกรองที่มีกระแสน้ำแรง เพราะกระแสน้ำที่ไหลตลอดจะทำให้ปลามีความเครียดไม่สามารถอยู่นิ่งๆ ได้

2. ความสะดวกในการบำรุงรักษา
ระบบกรองที่บำรุงรักษาง่ายย่อมช่วยให้เราลดภาระของเวลาในการเปลี่ยนหรือนำกรองออกมาล้าง การล้างกรองที่หมักหมมบ้างจะช่วยเป็นการผลัดเปลี่ยนแบตทีเรียที่เก่าหรือตายออกไป เพื่อคืนพื้นที่ผิวให้กับแบตทีเรียที่มีประโยชน์

3. ประสิทธิภาพ
ระบบกรองที่สมบูรณ์นอกจากจะทำให้น้ำใสแล้ว จะต้องช่วยรักษาคุณภาพน้ำ พื้นที่ส่วนของกรองชีวภาพจะต้องมีพื้นที่ผิวที่มากพอให้เป็นที่อยู่ของแบคทีเรียที่มีประโยชน์ เพื่อใช้ในการกำจัดแอมโมเนียและไนไตรท์ แอมโมเนียแทบจะเป็นสาเหตุหลักของการตายของปลาทองในตู้ของผู้เริ่มเลี้ยง

4. พื้นที่สำหรับติดตั้งกรอง
ระบบกรองยิ่งมีขนาดใหญ่มากเท่าไร ยิ่งดีกับการเลี้ยงปลาทอง เพราะจะทำให้คุณภาพน้ำ รวมทั้งอุณหภูมิ ค่อนข้างคงที่ แต่เราคงต้องเลือกระบบกรองที่เหมาะสมกับสภาพพืื้นที่ด้วย ระบบกรองมีหลากหลายมาก ทั้งกรองในตู้ กรองข้างตู้ กรองแขวน กรองฟองน้ำ กรองใต้กรวด กรองนอกตู้ จะเขียนเรื่องนี้เป็นลำดับต่อไป