Skip to content

Instantly share code, notes, and snippets.

View opentechnologist's full-sized avatar
🏠
Working from home

Mario (BU) Flores Rey II opentechnologist

🏠
Working from home
View GitHub Profile
@opentechnologist
opentechnologist / apicache.js
Created September 29, 2025 05:36
a simple axios request interceptor implementation to cache response data for a particular period of time to optimize multiple endpoint requests.
class ApiCache {
static CACHE_KEY_PREFIX = '__API_CACHE__';
constructor(axios) {
this.axios = axios.create();
this.axios.interceptors.request.use(this.requestInterceptor.bind(this));
}
// djb2 hash function
hash(str) {
@opentechnologist
opentechnologist / RsaFileHelper.cs
Created September 22, 2025 21:31
a simple implementation of file tamper detection in c# using rsa cryptographic functions.
using System.IO;
using System.Security.Cryptography;
namespace RsaFileCrypto
{
public class RsaFileHelper
{
// Signs a file using a private key (XML format), using a byte array
public void SignFile(string inputFile, string signatureFile, string privateKeyXml)
{
@opentechnologist
opentechnologist / main.cs
Created August 7, 2025 10:04
a tiny c# project that shows the use of the system timer class that periodically calls a class method after a specified amount of time.
using System;
using System.Timers;
namespace MainPackage
{
class MainClass
{
private static Timer timer;
static void Main(string[] args)
@opentechnologist
opentechnologist / Elapsed.cs
Created July 23, 2025 00:56
a small c# project with a custom class that keeps track of different elapsed times - useful for determining how long a particular piece of code is running.
using System;
using System.Collections.Generic;
namespace Elapsed
{
public class ElapsedTimeService
{
public class ElapsedTime
{
public DateTime? Last { get; set; }
@opentechnologist
opentechnologist / app.manifest
Created July 8, 2025 00:56
a c# project that uses a manifest file to gain elevated privelege access.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="main"
type="win32"
/>
<description>Elevated Privelege UAC Demo</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
@opentechnologist
opentechnologist / Logger.cs
Created July 6, 2025 07:07
a sample C# project that logs timestamped messages to a text file using a custom text logger class.
using System;
using System.IO;
namespace Logger
{
public class TextLoggerService
{
private readonly string filePath;
public TextLoggerService()
@opentechnologist
opentechnologist / WMI.cs
Created July 6, 2025 06:10
a sample C# project that retrieves workstation information via WMI.
using System;
using System.Collections.Generic;
using System.Management;
/*
https://learn.microsoft.com/windows/win32/wmisdk/wmi-glossary/
https://learn.microsoft.com/windows/win32/wmisdk/wmi-reference/
*/
namespace WMI
{
public class WmiQueryService
@opentechnologist
opentechnologist / CustomTextLogger.cs
Created June 25, 2025 05:22
a custom text logger in C# that will log text to a file created on the user's desktop.
using System;
using System.IO;
public class CustomTextLogger<T>
{
private readonly string filePath;
public CustomTextLogger()
{
string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
@opentechnologist
opentechnologist / app-es5.js
Created June 16, 2025 03:39
a simple example of a web server in express js that supports both http and https. es6 and es5 javascript compatible source codes are provided.
"use strict";
var fs = require('fs');
var http = require('http');
var https = require('https');
var express = require('express');
var app = express();
app.get('/', function (req, res) {
void req;
res.send("Date: ".concat(new Date()));
});
@opentechnologist
opentechnologist / yield_example.go
Created December 10, 2023 23:07
An example of using goroutine channel synchronization and communication to emulate the yield control statement from popular programming languages.
/*
Copyright © 2013 Mario (BU) Flores Rey CC BY-NC-SA 4.0 DEED
License: https://creativecommons.org/licenses/by-nc-sa/4.0/
Tested on GO v1.2.2
*/
package main
import (
"fmt"