Xiaolan Tang

41 papers A* 1A 1B 1C 3Journal 22Unranked 13
YearRankTypeTitle / Venue / Authors
2026 A* conf
AAAI
Shaofei Wang, Yunan Liu, Xiaolan Tang, Wenlong Chen
2025 J jnl
Neural Process. Lett.
Wei Hu, Juhua Pu, Xiaolan Tang, Xingwu Liu
2025 J jnl
IEEE Trans. Comput. Soc. Syst.
Shufei Li, Xingwu Liu, Xiaolan Tang, Xi Chen, Juhua Pu
2025 A conf
ICME
Xiaolan Tang, Yan Xiang, Zhengtao Yu, Yuxin Huang
2024 J jnl
ACM Journal on Computing and Cultural Heritage
Zhixiang Fan, Tianrui Song, Xiaolan Tang
2023 J jnl
Appl. Intell.
Xiaolan Tang, Desheng Zheng, Gebre S. Kebede, Zhengyu Li, Xiaoyu Li, Chao Lu, Lintao Li, Yong Zhou, Shan Yang
2023 J jnl
Displays
Xiaolan Tang, Yuting Liang, Guan Wang, Wenlong Chen
2023 B conf
TrustCom
Xionghe Yu, Xiaolan Tang, Wenlong Chen
2022 conf
CSAE
Jing Zeng, Zifeng Hao, Xiaolan Tang, Chengan Zhao
2022 conf
VTC Spring
Guan Wang, Xiaolan Tang, Lixin Xu, Wenlong Chen
2022 J jnl
ISPRS Int. J. Geo Inf.
Haoqi Wu, Zhenan Chen, Jun Yan, Xiaolan Tang
2021 conf
ICAIS (1)
Yu Peng, Xiaoyu Li, Chao Lu, Xiaolan Tang, Bin Lin
2021 conf
CSAE
Zifeng Hao, Xiaolan Tang, Qun Wang, Wenlong Chen, Yongting Zhang
2021 conf
CSAE
Siyuan Lu, Xiaolan Tang, Yu Liu, Wenlong Chen
2021 J jnl
Neurocomputing
Hejun Jiang, Xiaolan Tang, Kai Jin, Wenlong Chen, Juhua Pu
2021 J jnl
IEEE Syst. J.
Xiaolan Tang, Minglu Chai, Xiaoran Chen, Wenlong Chen
2021 J jnl
Intell. Autom. Soft Comput.
Desheng Zheng, Xiaolan Tang, Xinlong Wu, Kexin Zhang, Chao Lu, Lulu Tian
2020 conf
ICC
Yongting Zhang, Xiaolan Tang, Yao Xu, Wenlong Chen
2018 conf
PCM (3)
Xiaozheng Xie, Faqiang Shi, Jianwei Niu, Xiaolan Tang
2018 conf
VTC Fall
Hejun Jiang, Xiaolan Tang, Wenlong Chen, Juhua Pu
2018 conf
ISIE
Wei Liu, Xiaolan Tang, Suling Jia, Juhua Pu
2018 C conf
CollaborateCom
Xiaolan Tang, Zhi Geng, Wenlong Chen
2017 J jnl
IEEE Access
Wenlong Chen, Mingshu Zhang, Guangwu Hu, Xiaolan Tang, Arun Kumar Sangaiah
2017 J jnl
Sensors
Xiaolan Tang, Donghui Hong, Wenlong Chen
2017 J jnl
Sensors
Xiaolan Tang, Hua Xie, Wenlong Chen, Jianwei Niu, Shuhang Wang
2017 J jnl
Wirel. Commun. Mob. Comput.
Xiaolan Tang, Zhi Geng, Wenlong Chen, Mojtaba Moharrer
2017 conf
INISCOM
Xiaolan Tang, Hua Xie, Wenlong Chen, Jianwei Niu
2017 J jnl
IEEE Access
Peng Xu, Xiaolan Tang, Wei Wang, Hai Jin, Laurence T. Yang
2017 conf
NAS
Yucheng Zhang, Dan Feng, Yu Hua, Yuchong Hu, Wen Xia, Min Fu, Xiaolan Tang, Zhikun Wang, Fangting Huang, Yukun Zhou
2016 conf
IIKI
Xiaolan Tang, Donghui Hong, Wenlong Chen
2016 conf
DASFAA Workshops
Yi Zhang, Xiaolan Tang, Bowen Du, Weilin Liu, Juhua Pu, Yujun Chen
2016 C conf
CollaborateCom
Wenlong Chen, Lijing Lan, Xiaolan Tang, Shuo Zhang, Guangwu Hu
2016 C conf
CollaborateCom
Zhenzhen Sun, Wenlong Chen, Xiaolan Tang, Guangwu Hu
2015 J jnl
Comput. J.
Xiaolan Tang, Juhua Pu, Yang Gao, Yu Xie, Zhang Xiong
2014 J jnl
J. Supercomput.
Xiaolan Tang, Juhua Pu, Kun Ma, Zhang Xiong
2014 J jnl
Trans. Emerg. Telecommun. Technol.
Xiaolan Tang, Juhua Pu, Yang Gao, Zhang Xiong, Yuelong Weng
2014 J jnl
Trans. Emerg. Telecommun. Technol.
Xiaolan Tang, Juhua Pu, Yang Gao, Mohammad Aziz Z. Alshehri, Zhang Xiong, Yueliang Wan
2012 J jnl
Int. J. Distributed Sens. Networks
Juhua Pu, Xiaolan Tang, Fengkun Wang, Zhang Xiong
2012 J jnl
Int. J. Distributed Sens. Networks
Xiaolan Tang, Juhua Pu, Ke Cao, Yi Zhang, Zhang Xiong
2012 J jnl
IEICE Trans. Commun.
Juhua Pu, Jia Chen, Xiaolan Tang, Zhicheng Han
2012 J jnl
IEICE Trans. Inf. Syst.
Wei Zhang, Li Ruan, Mingfa Zhu, Limin Xiao, Jiajun Liu, Xiaolan Tang, Yiduo Mei, Ying Song, Yuzhong Sun
redb/utils/wrapper_run_sort_files.py
← Index redb/utils/wrapper_run_sort_files.py python
import os
import subprocess
import multiprocessing
import logging
from concurrent.futures import ThreadPoolExecutor
import signal

# Variables (replace these with actual values)
src_root_folder_path = "/mnt/samples/consilience/malware/vx-bazaar-expanded/"
dst_root_folder_path = "/mnt/samples/consilience/malware/_sorted_samples/vx-bazaar/"
log_folder_path = "/mnt/samples/consilience/malware/ops-logs/"
folder_names = ["Bazaar.2022.01", "Bazaar.2022.02", "Bazaar.2022.03", "Bazaar.2022.04"]  # List of folder names
script_name = "sort_files_by_type.py"
dry_run = True  # Set to True for testing without execution


# Ensure the log folder exists
os.makedirs(log_folder_path, exist_ok=True)

# Configure logging
main_log_name = "20241229-main_script.log"
main_log_file = os.path.join(log_folder_path, main_log_name)
if not os.path.exists(main_log_file):
    open(main_log_file, 'a').close()  # Create the log file if it doesn't exist
# main_log_file = os.path.join(log_folder_path, main_log_name)
# try:
#     with open(main_log_file, 'a') as f:
#         print(f"Successfully created/opened log file at: {main_log_file}")
#     # Verify the file exists
#     if os.path.exists(main_log_file):
#         print(f"Confirmed log file exists at: {main_log_file}")
#         print(f"File size: {os.path.getsize(main_log_file)} bytes")
# except Exception as e:
#     print(f"Error with log file: {e}")

# Configure logging
logging.basicConfig(
    filename=main_log_file,
    level=logging.INFO,
    format="%(asctime)s - %(levelname)s - %(message)s",
    force=True,
    filemode='a'
)

logging.info("Logging initialization test message")

# Add logging handler to flush immediately
class FlushableFileHandler(logging.FileHandler):
    def emit(self, record):
        super().emit(record)
        self.flush()

for handler in logging.getLogger().handlers:
    if isinstance(handler, logging.FileHandler):
        handler.flush()

# Global flag for graceful termination
terminate_flag = False

def signal_handler(signum, frame):
    global terminate_flag
    terminate_flag = True
    logging.warning("Termination signal received. Attempting to shut down gracefully.")

# Register signal handler
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)

# Define the worker function
def process_folder(folder):
    global terminate_flag
    if terminate_flag:
        logging.warning(f"Skipping folder {folder} due to termination signal.")
        return

    try:
        # Extract the word and date fields from the folder name
        word, year, month = folder.split('.')

        # Construct source, destination, and log paths
        src_folder = os.path.join(src_root_folder_path, folder)
        dst_folder = os.path.join(dst_root_folder_path, folder)
        log_file = os.path.join(
            log_folder_path, f"20241229-SORT_FILES-bazaar_{year}.{month}.output.log"
        )

        if not os.path.exists(log_file):
            open(log_file, 'a').close()  # Create the log file if it doesn't exist

        # Build the command
        command = ["python3", script_name, src_folder, dst_folder]

        if dry_run:
            logging.info(f"Dry run: Would execute: {command}, log: {log_file}")
            print(f"Dry run: Would execute: {command}, log: {log_file}")
        else:
            logging.info(f"Starting task for folder: {folder}")
            with open(log_file, "w") as log:
                subprocess.run(command, stdout=log, stderr=subprocess.STDOUT, check=True)
            logging.info(f"Task completed for folder: {folder}")

    except subprocess.CalledProcessError as e:
        logging.error(f"Subprocess failed for folder {folder} with return code {e.returncode}: {e}")
        print(f"Subprocess failed for folder {folder}: {e}")
    except Exception as e:
        logging.error(f"Error while processing folder {folder}: {e}")
        print(f"Error while processing folder {folder}: {e}")

# Determine the number of processors
num_processors = multiprocessing.cpu_count()

try:
    # Process folders using ThreadPoolExecutor
    with ThreadPoolExecutor(max_workers=num_processors-1) as executor:
        executor.map(process_folder, folder_names)

except Exception as e:
    logging.critical(f"Critical error in the main execution: {e}")
    print(f"Critical error: {e}")

logging.info("All tasks completed.")
print("All tasks completed.")