Skip to content

Repository containing some information about me.

Notifications You must be signed in to change notification settings

mhahnFr/mhahnFr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

                /####/  #################                                      
              /####/    #####/     ######                                      
            /####/      ###/       ######                                      
          /####/        #/         /####/                                      
        /####/          /        /####/                                        
      /####/                   /####/                                          
    /####/                   /####/                                            
  /####/                   /####/       /                                      
/####/                   /####/        /#                                      
#####################   ######       /###                                      
#####################   ######     /#####                                      
#####################   #################                                      
               ######                                                          
               ######                                                          
               ######   #                                                      
   _                    #  #  #  #==  #  #    #==\   #==,  *==*  #\\  #  #\\  #
  |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(); }
}