Skip to content
View mhahnFr's full-sized avatar
  • Germany
Block or Report

Block or report mhahnFr

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
mhahnFr/README.md
                /####/  #################                                      
              /####/    #####/     ######                                      
            /####/      ###/       ######                                      
          /####/        #/         /####/                                      
        /####/          /        /####/                                        
      /####/                   /####/                                          
    /####/                   /####/                                            
  /####/                   /####/       /                                      
/####/                   /####/        /#                                      
#####################   ######       /###                                      
#####################   ######     /#####                                      
#####################   #################                                      
               ######                                                          
               ######                                                          
               ######   #                                                      
   _                    #  #  #  #==  #  #    #==\   #==,  *==*  #\\  #  #\\  #
  |c| mhahnFr           #  #==#  #=   #  #    #==<   #=*   #  #  # \\ #  # \\ #
  '-'                   #  #  #  #==  #  #==  #==/   # \\  *==*  #  \\#  #  \\#
                        #                                                      

πŸ‘‹ Hey there, I'm mhahnFr!

As of now, I speak these languages:

Java Programming Language logo C Programming language icon C++ Programming language icon Objective-C Programming language icon Swift Programming language logo Dart Programming language logo

Among others, I use these tools:

Vim logo Xcode logo SwiftUI logo Flutter logo CLion logo IntelliJ logo Eclipse logo Android Studio logo Linux Fedora logo Bash icon GCC logo LLVM logo JSON logo Markdown Docker logo Git logo GitHub Android icon Gradle OpenGL logo SSH logo Apple logo

Currently, I am studying at the 42 Heilbronn.

The 42 Heilbronn is a coding school with a completely new educational design: Everyone is learning from everyone - without teachers. This peer learning principle challenges the traditional education system very successfully.
More information can be found on their website: 42heilbronn.de. My 42 intra profile can be found here.

Short story

I started my journey in the world of coding back when I was 12 years old using the Java Programming language. Later on, I added another language to my portfolio, the Swift Programming language. At the 42 Heilbronn, I learned the C and the C++ Programming languages.

Read the full story here.

Fun facts

How to break Swifts type checker (Click to expand)
let data: [UInt8] = [ 128, 128, 128, 128 ]

let i: Int = data[0] & 0xff << 24
           | data[1] & 0xff << 16
           | data[2] & 0xff <<  8
           | data[3] & 0xff <<  0
Correct solution (Click to expand)
let i: Int = Int(data[0]) & 0xff << 24
           | Int(data[1]) & 0xff << 16
           | Int(data[2]) & 0xff <<  8
           | Int(data[3]) & 0xff <<  0
Discovered while writing this piece of code.
Crash the JVM (Click to expand)
import java.lang.reflect.Field;
import sun.misc.Unsafe;

class Breaker {
    private final Unsafe unsafe;
    
    public Breaker() throws Exception {
        final var field = Unsafe.class.getDeclaredField("theUnsafe");
        field.setAccessible(true);
        
        unsafe = (Unsafe) field.get(null);
        
        segfault();
        freeError();
    }
    
    private void freeError() { unsafe.freeMemory(Integer.MAX_VALUE); }
    
    private void segfault() { unsafe.putByte(Integer.MAX_VALUE, (byte) 0); }
    
    public static void main(String[] args) throws Exception { new Breaker(); }
}

Pinned

  1. LeakSanitizer LeakSanitizer Public

    Small library showing information about lost memory.

    C++ 39 2

  2. SecretPathway_macOS SecretPathway_macOS Public

    macOS version of the SecretPathway, a MUD client.

    Swift 1

  3. nijakow/raven nijakow/raven Public

    A MUD driver, written in C

    C 4

  4. SecretPathway SecretPathway Public

    A MUD client, written in Java.

    Java 1