Bastian Molkenthin - Sunshine2k

arrow C#


Simple Test Environment

Matrix / Vector playground Date : November 2021
Version : 1.0

Source available : YES

Description :
This is my own simplistic solution how to implement a basic unit test environment in C#.
It provides a default behavior for console mode applications, but is configurable by providing your own interface implementations.

Of course, I could have used NUnit or any other of the million (much more sophisticated, better, faster, more usable, more comprehensive, ...) frameworks, but I did not want any dependency to a foreign framework.
So here you have the result of my minimalistic approach.

Download Sunshine's Simple Test Environment demo application and library (source code and executable; Visual C# project, 23 kb)



Matrix / Vector playground

Matrix / Vector playground Date : February 2021
Version : 1.0

Source available : YES

Description :
This is an example implementation of Vector and Matrix classes for 2D and 3D in C#, along with tests for all provided functions.
It served me as my own playground to understand certain aspects of the common vector and matrix operations much better.

Download Vector Matrix calculations demo application (source code and executable; Visual C# project, 48 kb)



Simple camera-perspective-screen transform demo

Screenshot Date : October 2020
Version : 1.0

Source available : YES

Description :
This little application is my playground to start fiddling with camera-to-perspective and perspective-to-screen transformation.
It has no real use - it's just my own try to project a single 3D point and wireframe cube from camera space to screen and investigate the transformation steps.
I guess it makes most sense to read my article Simplistic fixed camera to perspective screen transformation on my website along with playing around with this tool to gain the biggest benefit for understanding the process.>

Download Camera-perspective-screen transformation demo application (source code and executable; Visual C# project, 39 kb)



Simple big (unsigned) integer library

Program screenshot Date : August 2020
Version : 1.0

Source available : YES

Description :
Implementations of a simple big unsigned integer class with the main arithmetic operations in C#.
This was created along with my article Understanding and implementing a simple big (unsigned) integer library.

Download C# big unsigned integer library (command line project, source code and executable; Visual C# project, 59 kb)



Raycasting Demo V1

Program screenshot Date : May 2020
Version : 1.0

Source available : YES

Description :
A simple raycasting demo in C#.
Raycasting is rendering technique to create a 3D view of a 2D map and can be seen as the most basic form of raytracing.
Having started coding it somewhen in 2014/2015, I pretty soon lost interest and was also never satisfied with the result. Now, after lying around on my hard drive for around five years in which I was never again motivated to continue development, I release it "as it is".

Download C# Raycasting Demo V1 (source code and executable; Visual C# 2010 Express project, 39 kb)



Sunshine's ELF viewer console

Program screenshot Date : October 2018
Version : 1.0

Source available : YES

Description :
Simple console application to read the most important information from 32/64 bit ELF files.
Supports ELF header, section header table, program header table, symbol tables and note tables. Each table can be shown in short or detailed mode.

Download C# ELF viewer console (command line project, source code and executable; Visual C# 2010 Express project, 81 kb)



Fixed point number class

Program screenshot Date : April 2017
Version : 1.0

Source available : YES

Description :
Implementations of a fixed point number class with the main arithmetic operations in C#.
This was created along with my article Understanding and implementing fixed point numbers.
View also javascript-based online fixed point number demonstration.

Download C# fixed point number implementation (command line project, source code and executable; Visual C# 2010 Express project, 20 kb)



Permutation generation algorithm implementations

Program screenshot Date : October 2016
Version : 1.0

Source available : YES

Description :
Implementations of eight different algorithms to generate all possible permutation of a set using C#.
This was created along with my article Calculating permutations.

Download C# permutation generation algorithms (command line project, source code and executable; Visual C# 2010 Express project, 24 kb)



Base64 algorithm implementations

Program screenshot Date : January 2016
Version : 1.0

Source available : YES

Description :
Implementations of different algorithms to encode and decode Base64 using C#.
This was created along with my article Understanding and implementing Base64.

Download C# Base64 algorithms (command line project, only source code, no executable; Visual C# 2010 Express project, 24 kb)



CRC algorithm implementations

Program screenshot Date : February 2015 (Last update: December 2017)
History:
* Version 1.0 (February 2015) : Initial release
* Version 2.0 (November 2016) : Added versions of reflected algorithms
* Version 3.0 (December 2017) : Added 64bit CRC support
Version : 1.0

Source available : YES

Description :
Implementations of different algorithms to calculate CRC using C#.
This was created along with my article Understanding and implementing CRC.

Download C# CRC algorithms V3 (command line tool) (Visual C# 2010 Express project, 37 kb)
Download C# CRC algorithms V2 (command line tool) (Visual C# 2010 Express project, 25 kb)
Download C# CRC algorithms V1 (command line tool) (Visual C# 2010 Express project, 15 kb)



SunPEView - A simple PE file viewer

Program screenshot Date : 2014-02-14
Version : 0.7.1.0

Source available : YES

Description :
SunPEView is a little PE file viewer to investigate PE32/PE64 files. It further supports a hexeditor view, a file location calculator and a hex-dec-bin converter.
SunPEView has its own site - Check it out now!



HeaderIncludeTool

Program screenshot Date : January 2013
Version : 1.02

Source available : YES

Description :
This tool creates an include dependency tree of C source files (*.c, *.h, *.cpp) and checks if there is a cycle in the hierarchy. The user has to specify all relevant source/include folders as well as a root file (normally the file which has the main() routine) which is used as root node for the include tree.

If the tool is executed without any arguments, it's a wizard-like GUI application. When providing commandline arguments, it runs as console application. Note that this is a simple tool and does not evaluate preprocessor statements and thus no conditional includes.

Package includes application, source code and some little tests to show the usage of the tool.
Download 1.02 (60KB)
New in Version 1.02:
Enlarged windows, added check button to test all found files for include cycles, corrected commandline handling.

Older Versions:
Download 1.01 (60KB) Download 1.00 (57KB)



My Simple Playlist Generator

Program screenshot Date : March 2009 (Perl port: May 2014)

Source available : YES

Description :
I 'hacked' this tiny app very quickly for personal needs. I wanted my music files sorted after file creation / modification date and none of the media players I use provided this functionality. This tool just parses a directory (with/without subdirectories) for music files and writes them to a *.m3u file (ready to be loaded with e.g. Winamp) sorted after modification date (from oldest to newest). That's it - maybe you are searching for exactly this tool. If not, as the source is easy, feel free to take it as a starting point to generate your own playlists by implementing your own sorting criterias.

Download (39KB)
Download Perl port (2KB)



Project "Sunshine's Brainfuck Studio"

Program screenshot Date : April 2007 / Version: 0.61

Source available : YES

Description :
A Brainfuck Interpreter with IDE.
Provides comfortable environment for creation, debugging (single-stepping supported) and running of Brainfuck programs. But why say another word - check the Brainfuck Studio Site.



GUI Wrapper for Huffman Compression

Program screenshot Date : June 2007

Source available : YES

Description :
A Gui-Wrapper for my huffman compression implementation.
I just put the whole functionality in a dll file and coded this GUI for easier use.
(Needs .NET Framework 2.0)

Download (97KB)





This site is part of Sunshine's Homepage