Rafael Angarita

42 papers A 1B 3C 3Journal 11Unranked 23
YearRankTypeTitle / Venue / Authors
2025 J jnl
CoRR
Allaa Boutaleb, Bernd Amann, Rafael Angarita, Hubert Naacke
2025 J jnl
IEEE Access
Souha Al Katat, Chamseddine Zaki, Hussein Hazimeh, Ibrahim El Bitar, Rafael Angarita, Lionel Trojman
2025 J jnl
CoRR
Allaa Boutaleb, Bernd Amann, Hubert Naacke, Rafael Angarita
2024 conf
WI/IAT
William Aboucaya, Oana Balalau, Rafael Angarita, Valérie Issarny
2024 J jnl
IEEE Trans. Big Data
Souha Al Katat, Chamseddine Zaki, Hussein Hazimeh, Ibrahim El Bitar, Rafael Angarita, Lionel Trojman
2023 conf
TEXT2KG/BiKE@ESWC
William Aboucaya, Sonia Guehis, Rafael Angarita
2023 conf
INFORSID
Shufan Jiang, Rafael Angarita, Stéphane Cormier, Julien Orensanz, Francis Rousseaux
2023 J jnl
Frontiers Artif. Intell.
Shufan Jiang, Stéphane Cormier, Rafael Angarita, Francis Rousseaux
2023 J jnl
CoRR
Shufan Jiang, Rafael Angarita, Stéphane Cormier, Francis Rousseaux
2023 ch.
The Evolution of Pervasive Information Systems
Juliana Fernandes, Lucas Oliveira, Valdemar Vicente Graciano Neto, Rodrigo Pereira dos Santos, Rafael Angarita, Sonia Guehis, Yudith Cardinale
2022 B conf
RCIS
Shufan Jiang, Rafael Angarita, Stéphane Cormier, Julien Orensanz, Francis Rousseaux
2022 conf
FairWare@ICSE
William Aboucaya, Rafael Angarita, Valérie Issarny
2022 conf
ICPRAI (2)
Shufan Jiang, Rafael Angarita, Stéphane Cormier, Julien Orensanz, Francis Rousseaux
2022 conf
EGC
Shufan Jiang, Rafael Angarita, Stéphane Cormier, Julien Orensanz, Francis Rousseaux
2022 J jnl
Int. J. Softw. Eng. Knowl. Eng.
Hussein Baalbaki, Hussein Hazimeh, Hassan Harb, Rafael Angarita
2022 C conf
SEKE
Hussein Baalbaki, Hussein Hazimeh, Hassan Harb, Rafael Angarita
2022 conf
UV
Shufan Jiang, Rafael Angarita, Stéphane Cormier, Francis Rousseaux
2022 B conf
KES
Hussein Baalbaki, Hussein Hazimeh, Hassan Harb, Rafael Angarita
2021 J jnl
CoRR
Shufan Jiang, Rafael Angarita, Stephane Cormier, Francis Rousseaux
2021 conf
EGC
Shufan Jiang, Rafael Angarita, Raja Chiky, Stéphane Cormier, Francis Rousseaux
2020 conf
CAiSE Workshops
Grigorios S. Piperagkas, Rafael Angarita, Valérie Issarny
2020 conf
CAiSE Workshops
Shufan Jiang, Rafael Angarita, Raja Chiky, Stéphane Cormier, Francis Rousseaux
2019 conf
INFOCOM Workshops
Rafael Angarita, Alexandre Dejous, Patrick Blake
2019 A conf
ICDCS
Rafael Angarita, Nikolaos Georgantas, Valérie Issarny
2019 J jnl
ACM Trans. Internet Techn.
Rafael Angarita, Bruno Lefevre, Shohreh Ahvar, Ehsan Ahvar, Nikolaos Georgantas, Valérie Issarny
2018 conf
PAIS
Merzoug Soltane, Yudith Cardinale, Rafael Angarita, Philippe Rosse, Marta Rukoz, Derdour Makhlouf, Okba Kazar
2018 J jnl
CoRR
Merzoug Soltane, Yudith Cardinale, Rafael Angarita, Philippe Rosse, Marta Rukoz, Derdour Makhlouf, Okba Kazar
2018 B conf
RCIS
Zakaria Maamar, Noura Faci, Khouloud Boukadi, Emir Ugljanin, Mohamed Sellami, Thar Baker, Rafael Angarita
2018 conf
WWW (Companion Volume)
Patrick Wang, Rafael Angarita, Ilaria Renna
2017 conf
ICSE-SEIS
Rafael Angarita, Nikolaos Georgantas, Cristhian Parra, James Holston, Valérie Issarny
2017 conf
CIC
Rafael Angarita, Nikolaos Georgantas, Valérie Issarny
2016 C conf
MEDES
Rafael Angarita, Marta Rukoz, Maude Manouvrier, Yudith Cardinale
2016 conf
IoTBD
Rafael Angarita, Maude Manouvrier, Marta Rukoz
2016 J jnl
World Wide Web
Rafael Angarita, Marta Rukoz, Yudith Cardinale
2015 conf
MobiWIS
Rafael Angarita, Maude Manouvrier, Marta Rukoz
2015 conf
ICAC
Rafael Angarita
2014 conf
ICSOC Workshops
Rafael Angarita, Marta Rukoz, Maude Manouvrier
2013 C conf
MEDES
Rafael Angarita, Yudith Cardinale, Marta Rukoz
2013 conf
CLEI Selected Papers
Rafael Angarita, Yudith Cardinale, Marta Rukoz
2012 conf
ANT/MobiWIS
Marta Rukoz, Yudith Cardinale, Rafael Angarita
2012 conf
ESWC (Satellite Events)
Rafael Angarita, Yudith Cardinale, Marta Rukoz
2012 conf
RED
Yudith Cardinale, Marta Rukoz, Rafael Angarita
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.")