HN user

EllipticCurve

251 karma

Contact me at <anything> @tollmien.de

Posts16
Comments85
View on HN
github.com 5y ago

Small tool for interactive Voronoi image manipulation

EllipticCurve
1pts0
github.com 6y ago

Show HN: A compiler for a small language into x86-64 assembly

EllipticCurve
74pts22
news.ycombinator.com 6y ago

Ask HN: What skills to learn to build SaaS' as algorithm developer

EllipticCurve
2pts0
github.com 7y ago

Show HN: Real-time image manipulation with Voronoi/Delaunay

EllipticCurve
87pts12
github.com 8y ago

Show HN: A fast Skiplist library in Go

EllipticCurve
5pts0
github.com 8y ago

Show HN: A real-world heightmap terrain with an animated energy dome (in Go)

EllipticCurve
6pts0
github.com 9y ago

Show HN: Simple C library for an XBox Controller (Linux) for easy use in games

EllipticCurve
36pts9
github.com 10y ago

Show HN: Interactively access/execute from your Bash-History (very small/simple)

EllipticCurve
4pts1
github.com 10y ago

Show HN: A small low-level C library for Quaternions (+ Usage example/sample)

EllipticCurve
6pts2
github.com 10y ago

Show HN: Screen-Space Ambient Occlusion from Scratch – 3D Shading on 2D Screen

EllipticCurve
7pts2
github.com 10y ago

Show HN: Particle Simulation with OpenGL compute shader – 8M particles

EllipticCurve
29pts21
github.com 10y ago

Show HN: OpenGL-Shader Tutorial in form of a detailed documented sample project

EllipticCurve
58pts7
github.com 10y ago

Show HN: Water-Simulation with Real-Time Reflections and Perlin-Noise Terrain

EllipticCurve
51pts18
github.com 10y ago

Show HN: Particle-based Cloth-Simulation (with pictures)

EllipticCurve
7pts1
github.com 10y ago

Show HN: Image-triangulation – Delaunay and Voronoi from scratch

EllipticCurve
63pts21
news.ycombinator.com 10y ago

Show HN: Image-triangulation (delaunay and voronoi)

EllipticCurve
2pts4

Then let me say thanks! There was a programming competition in university where we made bots to play 2048 for (with a few months time), that played against each other in a live tournament (who got the most points mostly). That was the most fun competition I ever participated in!!

The bot was playing way better than me personally and regularly reached the 4096 tile. It was a lot of fun to just watch it play and really awesome to make it play better :)

What do you mean by dangerous exactly? I was briefly involved with some people from the Steiner philosophy (the school) and while some people could definitely be labeled as a weird bunch with esoteric tendencies, none of them seemed dangerous at all.

Everything seemed very open and accepting to people different than themself. In a positive way, not in a "join my cult" way.

Yes, I think you should absolutely get one!

For once, it will always place your resume above the ones without a masters degree. And even if you look at the topics and think you won't like it or need it - you will always learn things that will likely be useful in the future! Be it to just get a different perspective on things or be able to suggest or bounce some ideas.

For me personally, the masters degree was the best thing I could have done. It helped me academically, made me a better programmer and helped several times when applying for jobs!

So yes, I highly recommend it!

Not really. Not everything is interesting all the time, but at least every couple of days there are submissions that perfectly fit my interests.

And I like the general high quality and good/positive community towards people that build things.

Nothing wrong with semi-colons. Everyone has a different preference anyway.

Thanks for saying all that. It was a huge amount of work and getting appreciation makes it all worth it!

No hard constraints as of now. But I don't think I want to include meta programming or a pre-processor (don't really like it to be honest). I do want to keep it compatible with C internally, on Assembly level. One thought is, to create a file with function headers/definitions that are then dynamically linked and can just be used.

I used some C std library functions that way for debugging (printf, ...). And as I follow the standard calling conventions, the compiler should automatically generate compatible code.

With this, it would also be possible, to write OpenGL code. That would be really awesome :)

As of usage of my language - Not sure yet. Up until now, the road was more of the goal then the finished language.

I didn't really read any books on that topic. But did lots of general research about compiler stages. I also posted a few links some comments up, that helped a lot.

For for it! Start small and increase. But seeing a program in your own language output something makes it all worth it :)

:) I (now) agree. In fact, each part isn't even really that hard. It's mostly just a lot to work. And then code generation. I had some headaches with multiple return values and keeping the calling conventions intact... And then with structs as well.

That language flow and general simplicity was one of my most important goals. Thanks for noticing :)

No, I had no problems regarding that. What you mention ('+', '(') are all part of simple expressions when parsing. And I strictly parse right recursive and re-order the expressions later (for operator priority). So that was not an issue. Most of these problems I solved, by making my parser a lookahead of >1. In a few cases, there is a lookahead of 3 to determine what exactly should be parsed.

I guess anything, that can run an X86-64 Elf executable? ;) Although there is still a lot missing, for it to be taken serious. Starting with strings, files, input, ... But thats for another time or whenever I need it, I guess.

Those are some of my currently open tabs :) Lots of Google use on top of that. The parser is actually quite straight forward. The much harder part (for me) was the code generation afterwards (No experience with Assembly so far).

- General compiler design - This was one of the main ressources. https://www.tutorialspoint.com/compiler_design/compiler_desi...

- https://www.lua.org/manual/5.3/manual.html#9

- https://www.godbolt.org/

- Linux system call table: http://blog.rchapman.org/posts/Linux_System_Call_Table_for_x...

- A bit on floating point: https://cs.fit.edu/~mmahoney/cse3101/float.html

- Assembly https://www.cs.yale.edu/flint/cs421/papers/x86-asm/asm.html

- More assembly: https://www.complang.tuwien.ac.at/ubvl/amd64/amd64h.html

Thanks :) That's where I was trying to get to. I did some smaller performance comparisons against C (with -O0), where I was at about 90% speed. But there is a lot of performance to gain, if I optimize the resulting assembly. There are lots of cases where I push and pop directly afterwards because of the general expression code generation (no real knowledge of broader context). So I expect that to help a lot regarding performance. Also things like jump tables for simple switches are on the table.

Yes, I thought about going for LLVM or another representation but decided to do it once myself (no given performance optimizations or the like) with room for improvement.

In some sports this is kind-of normal procedure to reach a weight class before a major competition. You go into a sauna or do sports in air-tight clothes and lose a few kg of water. After getting weighted and assigned a weight class you drink lots of water again

I am currently writing my own compiler for a smaller language :)

This is my first real compiler and it's lots of fun!!! It's also my first time working with x86-64 assembler (compiler target).

I'll write a Show HN post when I finished it.

In addition to the advice given by the others, I would suggest to maybe participate in the Advent-of-code (https://adventofcode.com/). It started a few days ago but you should be able to quickly catch up.

You might do it to get back into coding, put it on a resume or just for fun (my reason to do it).

But the community around it (https://www.reddit.com/r/adventofcode/) is really great and it's a lot of fun!

It also provides as a specific daily purpose, in contrast to some random code test online.

Best of luck!

If you don't mind - What sector are you in/is your recruiter working in? Really good recruiters (such as yours it seems) are really scarce. Would you mind sharing the contact of her on LinkedIn/Xing (Here or per mail (see my profile))?

I learned, that working in a cutting edge field in a huge well known/respected company (europe) is most of the time really not that exciting and the actual work not that cutting edge.

My feeling is, that we were doing more complex problem solving at university and my personal projects are much more challenging than most things we do at work.

It's honestly quite a bit frustrating. And makes me want to build something up myself. Problem is, I am just not an idea-person...

Thanks, that means a lot :)

In this case real-time in the sense that one can adjust parameters and (for not too many points) get an instant result instead of an image on disk. Additionally, I used all components to have it displayed with an adjustable fps count (OpenGL based rendering).

But I see, that the meaning of real-time is a bit biased. Any suggestions?