Skip to content
View Jandini's full-sized avatar
🙂
I am ! a geek
🙂
I am ! a geek

Highlights

  • Pro
Block or Report

Block or report Jandini

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Jandini/README.md

My name is Matt Janda,

This is my software engineering journey; How I turned ideas into small tools, the small tools into a projects and the projects into full stack applications. I designed and wrote from scratch most of the tools and applications presented here. Some of them are available in my public repositories.


Year 2023

AutoByte

AutoByte is a data structure deserializer.

KiBoards

KiBoards Inspired by Xunit.TestLogger provides Elasticsearch logging for Xunit and visualisations in Kibana.

Terragate

Terragate is simple web API gateway for terraform command line tool.

JandaBox

JandaBox is everything what I learned while working on Janda.Go and much more.

HelloWorld from command line...

jandabox

The same HelloWorld directly from Visual Studio...

helloworld

WinGif

No more online converters... WinGif is a simple windows screen capture tool that allows to quickly create animated gif files. It can create animated GIF files by capturing given window title or make it from individual frames saved in PNG files.

WinGif 0.2.0
Copyright (C) 2023 Matt Janda

  capture    (Default Verb) Create animated GIF by capturing active window.

  make       Make animated GIF from PNG files.

  help       Display more information on a specific command.

  version    Display version information.

Key features:

  • Capture active windows
  • Provide case sesitive, full or partial window title to trigger the capture.
  • Start capture when window with given title become active. After this any active window will be captured.
  • Capture only window with given title. The capture will pause if active window is does not match given title.
  • Save individual frames as PNG files.
  • Make GIF file from individual frames saved in PNG files.
  • Provide delay between taking screen shoots in milliseconds.
  • Provide delay between GIF frames in milliseconds. (33ms delay between frames equals ~30fps)
  • Allow self capture. By default WinGif will pause capturing when the window with WinGif title is active.

Self capture and "Chrome" window capture.

wingif2

Make a new gif file from png frames saved by WinGif.

image

Here we are... a GIF.

chrome


Year 2022

Janda.Go

Janda.Go provides .NET template for console application with dependency injection, logging, and configuration. The template is available as Nuget package that can be accessed directly using dotnet new install Janda.Go command.

Key features:

  • GitHub actions automatically publish templates to nuget.org
  • Installation through dotnet command
  • Provides Microsoft logging and Serilog
  • Binding configuration file
  • Main program exception handling

JandaGo

Github and Jira metrics in Kibana

I moved my career into management in 2018. Yet, I am still developing in my own time. Management is easier if you find a way to measure success of your team. Since my company is using Jira for project management and GitHub for development I created fully containerised platform which visualise developers participation within the projects.

Metrics service is responsible for transferring relevant data from Jira and Github into Elasticsearch and visualize through Kibana.

ezgif-2-2c0cd0e8e7

The platform consist of 3 containers:

  • Kibana
  • Elasticsearch
  • Metics Loader

Key features:

  • Automatically create Kibana spaces.
  • Import dashboards from ndjson files.
  • Running Jira and GitHub loader services at the same time.
  • Index multiple Jira projects simultaneously.
  • Retries if too many requests is returned.
  • Caching to reduce number of lookups.

Start platform with docker compose.

metrics

Jira loader indexing issues.

metrics2

Jira loader waits and retires when too many requests was made.

metrics7

Deployment scripts for metrics services

I wrote deployment script for Ubuntu 18.04.6. The script configure operating system and deploy metrics services.

  • Install docker and docker-compose.
  • Run docker-compose.
  • Pull image containers for kibana, elastic search and metric.
  • Start containers.

It takes only a minute to deploy and start metrics services. The script is executed directly from the last successfull build in Jenkins:

curl -s https://jenkins.***.com/job/mjanda/job/Metrics/job/develop/lastSuccessfulBuild/artifact/ubuntu.sh | sudo bash

metrics9

CI/CD Pipelines with Jenkins

Automatically build and push docker images to proget feed.

jenkins4

Running Jenkins pipeline with Ocean Blue plugin.

jenkins


Year 2020

Capture The Flag Framework

I created simple .NET framework for playing CTF.

I participated in multiple Capture The Flag events organized by SANS on My ranges.io

Name Finished At Challenges Position Points
SANS Community CTF 14:00 on 17 Oct 2020 BST 35 of 37 completed 21st of 1055 players 12,750 of 13,500 possible
SANS Community CTF - November 13:00 on 23 Nov 2020 GMT 61 of 62 completed 27th of 1690 players 19,850 of 20,350 possible
Cyber Camp 2020 04:59 on 7 Jan 2021 GMT 37 of 39 completed 26th of 360 players 10,050 of 11,550 possible
Global Community CTF: Mini BootUp 18:00 on 19 Feb 2021 GMT 32 of 32 completed 17th of 360 players 8,500 of 8,500 possible
Intermediate: Global Community CTF: BootUp 23:00 on 23 Apr 2021 BST 13 of 24 completed 88th of 1293 players 2,300 of 7,500 possible
Global Community CTF: Bootup 23:00 on 16 Oct 2021 BST 36 of 45 completed 20th of 889 players 1,934 of 4,630 possible

ezgif-5-766ce72835

CoolCat

Teaching basics of C# programming with a bit of ASCII fun. The picture of CoolCat was copied from my daughter's T-shirt logo.

image


Year 2018

Lightweight Document Review Platform

I designed simple and fast document review platform for Electronic Discovery. I wrote back bone of the application and with a small team of talented developers completed the project.

User can drag and drop data through the web browser. The data is automatically processed and published for review.

iv

Key features:

  • Isolated, self serived client workspaces.
  • Role based access to client's workspaces.
  • Client can create projects, add users and assign them to the projects.
  • User can open multiple projects in separate web browser tabs.
  • Drag and drop files like archives, mailboxes or standalone documents.
  • Data processing powered by ICE processing engine.
  • Data deduplication.
  • Customizable coding templates.
  • Code documents based on isseue or relevance.
  • Mass code multiple documents.
  • Keyword search powered by dtSearch.
  • Search documents by date and coding.
  • Saved searches.
  • Show unseen documents.
  • Show duplicate documents.
  • Download documents.
  • Print documents into PDF.

Year 2006

Hard drive imaging via IDE ports for DOS

I wrote a simple hard drive imaging tool using Borland Pascal. I used Turbo Vision library to create user interface. The software was communicating with hard drive directly via Integrated Drive Electronics (IDE) ports.

IDE

Running under Windows 98 with virtual hard drive...

ezgif-1-36dfefd664

This was my last software written for DOS. You can find the code in IDE repository.

Software Reverse Engineering with SoftICE

SoftICE was my favourite debugger for Windows XP/2000.

This is one projects I was working on, where I needed to bypass certian software behaviour...

ezgif-4-45d0f61e6a


Year 2008

Dictionary Mobile

My first software written for Windows PDA. Slowniki Mobile was Polish English, Polish German and Polish French bidirectional dictionary client. The data was retrived from online dictionary website.

dict

"Slownki Mobile" running on my Windows PDA device.

vlc

TFL Mobile

Transport for London Mobile application for PDA. The source code is available in TFLMobile repository.

tfl1

Search options:

  • Station or stop
  • Postcode
  • Address
  • Place of intrest

tfl2


Year 2005

Media Eraser

MediaEraser was compiled into three feature versions: Free (lite), Standard and Full. Each build contained only the code for the features available in given version. The free version of MediaEraser can be still downloaded from websites like programy.net.pl

image

Media Eraser 2.0a lite (free) was limited to signle file deletion below 10Kb only. The application user interface provides only file deletion settings.

virtualboxcrop

The full version offered many more features like:

  • Recursively erase multiple file and folders from Windows explorer's context menu
  • Erase entire partitions (volumes)
  • Erase free space, slack space and information about files deleted without MediaEraser
  • Erase entire physical hard drives

MediaEraser was fully written in C++ with WTL for GUI. MediaEraser was one of the fastest data erasing tools at the time.

me3 0

Erase volume settings offered Complete volume erase (destructive) and Partial volume erase (safe) erase options.

me9-volume-settings

Complete volume erase (destructive) physically erase entire volume no matter what file system the partition is formatted to. Once the volume is erased it has to be formatted to be accessible by operating system.

me15-volume

Partial volume erase (safe) option erase free space, slack space and optionally unused MFT entries. Slack space is the area of a hard drive ranging from the end of a stored file to the end of that file cluster. Unused MFT entries holds information about files deleted without MediaEraser.

me4-freesace-slack

Erase drive settings.

me8-drive-settings

Erase physical drive.

me6-drive

Erase files from Windows Explorer's context menu.

me


Year 1999

Interrupt List Navigator

Interrupt List Navigator is a tool written in Delphi 5 to provide a quick search for Interrupt List created by Ralf Brown.

image

The Interrupt List is a text file with detailed description of 8163 interrupt calls.

notepad

The tools offsers quick search by typing interrupt number with AH/AX register value or interrupt description.

virtualboxcrop

Interrupt List Navigator running under Windows 10 with different font.

interrupts

Key features:

  • Serach by interrupt number and AX register.
  • Search by iterrupt title.
  • Find keyword or phrase in text.
  • Print single or multiple interrupt descriptions.
  • Change display font.
  • Copy interupt description to clipboard.
  • Maximize window by pressing F5 key.

Year 1998

Assembler for 8086

It was exciting time writing software using assembler and pascal for DOS. You can find all my assembler source codes and binaries in 8086 repository. The code can be executed only under DosBox. Kudos to the authors for keeping the legacy alive.

Multi-Edit was one of the text editors to write and run assembler code.

ME_MASZ

Software Reverse Engineering in DOS

I modified software which helped me to learn touch typing. The software was called "Maszynistka" which translates to "Typist". Maszynistka was free to use with the caveat that unregistered version has a splash screen. The splash screen is taking about 15 minutes before you can start using the tool.

I used Turbo Debugger to figure out how to skip the splash screen. This is how I did it...

TD_MASZ

I let the program to execute until I found the splash screen call. I applied simple NOP slide over the splash screen call. Three bytes only. The challenge was that the code of the program was encoded. I could not make permanent change to MASZ.EXE binaries.

I wrote my own debugger. The assembler code in CRACK.ASM repeats steps required to bypass the splash screen. Instead running MASZ.EXE the program can be executed via CRACK.COM which skips the splash screen.

Program "Maszynistka" with the splash screen...

MASZ-SPLASH

... and without the splash screen after running it with CRACK.COM

MASZ-CRACK

TSR programs for DOS

TSR is Terminate and Stay Resident program which allowed to run your program in the background and let the DOS operating system continue. This is where the journey with concept of viruses starts.

Text mode pictures in Assembler

I created a number of picutres in text mode and converted them into assembler code. For example, the picture below was manually created in X.ASM (1536 bytes) and compressed to C.ASM file (584 bytes). Compressed picture in C.ASM was converted to assembler's byte array in OUT.ASM. The source code to draw the picture was added later to OUT.ASM code.

The compressed pictures converted to assembler code could easlily fit into a few sectors between MBR and BPB on the hard drive. I used similar idea in boot loader for two operating systems.

OUT.ASM

COMPRESS

PICTURE.ASM

PICTURE

Floppy Disk Boot Loader

I worte boot loader MULTI.ASM which allowed me to place two operating systems on a single 1.44MB floppy disk. I added animated floppy disk picture to the code to make the boot loader a bit more fancy. User can select operating system from the menu.

Microsoft DOS 6.22

W95-screen0-D622 (online-video-cutter com) 720x400

Microsoft DOS 4.00 for Windows 95

W95-screen0-W95 (online-video-cutter com) 720x400

The physical image of the 1.44MB floppy disk is available in the repository.

Pinned

  1. Janda.CTF Janda.CTF Public

    Provides Capture The Flag console application challenge runner.

    C#

  2. Janda.Dot.CLI Janda.Dot.CLI Public

    Batchfile

  3. RightTurn RightTurn Public

    C#