Maarten H. van Emden

59 papers A* 2A 1B 5Journal 36Unranked 12
YearRankTypeTitle / Venue / Authors
2011 J jnl
Reliab. Comput.
Maarten H. van Emden
2011 J jnl
CoRR
Maarten H. van Emden
2010 J jnl
CoRR
Maarten H. van Emden
2008 J jnl
CoRR
William W. Edmonson, Maarten H. van Emden
2007 J jnl
CoRR
Maarten H. van Emden, Belaid Moa, S. C. Somosan
2007 J jnl
CoRR
Maarten H. van Emden, Belaid Moa
2006 J jnl
CoRR
Maarten H. van Emden
2006 B conf
ICLP
Maarten H. van Emden
2006 J jnl
CoRR
Maarten H. van Emden, Belaid Moa
2006 conf
CCCG
Maarten H. van Emden, Belaid Moa
2006 J jnl
CoRR
Maarten H. van Emden, S. C. Somosan
2006 J jnl
CoRR
Maarten H. van Emden
2006 J jnl
CoRR
H. Ibrahim, Maarten H. van Emden
2004 J jnl
Reliab. Comput.
Maarten H. van Emden
2004 J jnl
CoRR
Maarten H. van Emden, Belaid Moa
2003 J jnl
CoRR
Maarten H. van Emden, Belaid Moa
2002 conf
Computational Logic: Logic Programming and Beyond
Maurice Bruynooghe, Luís Moniz Pereira, Jörg H. Siekmann, Maarten H. van Emden
2002 J jnl
CoRR
Maarten H. van Emden
2002 J jnl
CoRR
Maarten H. van Emden
2001 J jnl
CoRR
Maarten H. van Emden
2001 J jnl
CoRR
Maarten H. van Emden
2001 J jnl
J. ACM
Timothy J. Hickey, Qun Ju, Maarten H. van Emden
2000 J jnl
Reliab. Comput.
Timothy J. Hickey, Zhe Qju, Maarten H. van Emden
1999 J jnl
Constraints An Int. J.
Maarten H. van Emden
1999 ch.
The Logic Programming Paradigm
Maarten H. van Emden
1998 A conf
CP
Timothy J. Hickey, Maarten H. van Emden, Huan Wu
1997 conf
JFPLC
Maarten H. van Emden
1997 J jnl
Constraints An Int. J.
Maarten H. van Emden
1995 B conf
ICLP
Mantis H. M. Cheng, Douglas Stott Parker Jr., Maarten H. van Emden
1993 J jnl
Ann. Math. Artif. Intell.
Paul A. Strooper, Maarten H. van Emden
1993 J jnl
J. Log. Program.
Jimmy Ho-Man Lee, Maarten H. van Emden
1992 conf
FGCS
Jimmy Ho-Man Lee, Maarten H. van Emden
1992 J jnl
J. Log. Comput.
Maarten H. van Emden
1992 conf
FGCS
Maarten H. van Emden
1992 J jnl
Softw. Test. Verification Reliab.
Maarten H. van Emden
1990 B conf
ICLP
Mantis H. M. Cheng, Maarten H. van Emden, B. E. Richards
1988 conf
META
Mantis H. M. Cheng, Maarten H. van Emden, Paul A. Strooper
1988 conf
ICLP/SLP
Maarten H. van Emden
1988 ch.
Foundations of Deductive Databases and Logic Programming.
Maarten H. van Emden, Péter Szeredi
1988 conf
FGCS
Mantis H. M. Cheng, Maarten H. van Emden, Jimmy Ho-Man Lee
1987 A* conf
LICS
Maarten H. van Emden
1987 J jnl
J. Log. Program.
Maarten H. van Emden, Keitaro Yukawa
1986 J jnl
J. Log. Program.
Maarten H. van Emden
1986 J jnl
New Gener. Comput.
Maarten H. van Emden, Masaru Ohki, Akikazu Takeuchi
1985 J jnl
J. Log. Program.
Maarten H. van Emden, M. A. Nait Abdallah
1984 B conf
ICLP
Maarten H. van Emden, John W. Lloyd
1984 J jnl
J. Log. Program.
Maarten H. van Emden, John W. Lloyd
1984 ch.
Implementations of Prolog
Maarten H. van Emden
1984 conf
SLP
Derek R. Brough, Maarten H. van Emden
1984 conf
ACM Annual Conference
Maarten H. van Emden
1982 B conf
ICLP
Maarten H. van Emden
1982 J jnl
J. ACM
Krzysztof R. Apt, Maarten H. van Emden
1981 J jnl
IEEE Trans. Software Eng.
Keith L. Clark, Maarten H. van Emden
1979 conf
Advances in Data Base Theory
Maarten H. van Emden, T. S. E. Maibaum
1979 J jnl
IEEE Trans. Software Eng.
Maarten H. van Emden
1977 conf
Formal Description of Programming Concepts
Maarten H. van Emden
1976 J jnl
J. ACM
Maarten H. van Emden, Robert A. Kowalski
1976 A* conf
ICALP
Maarten H. van Emden
1970 J jnl
Commun. ACM
Maarten H. van Emden
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.")