About me


My name is Xenon!(not really)
I am a man in his 20s who is interested in electrical and computer engineering.
Everything you see here is created by myself from scratch, including the server itself, in an attempt to show off my skills to my future employer. And also because I'm really interested in web development, among other things!


The server

an image of the raspberry pi server The server is really just a tiny Raspberry Pi Zero 2 W. This little computer is what sent you the html file you're currently reading. Isn't that awesome?

Normally I would run all of my online projects on my laptop, which meant that they would only be available when it was on. One day I said 'screw that' and bought a cheap little computer that's separate from my main computer. And it's able to run 24/7.


The software

an image of code The program that runs the HTTP server started as a little fun project of mine in an attempt to really understand how internet protocols work. It's fully written in C using sockets. It only supports GET requests for now.

Realistically it's not a serious program, but it works, so I said 'why not?' and put it online. It did send you this html didn't it?
But hey, the simplicity of the server makes it too difficult to be hacked =)

There are several commercial HTTP (and more!) servers available out there but the thing is, it takes time to learn how to configure them yourself, as well as be aware of all the potential security issues they might possess. Might as well write your own tools for the job, no?


My thinking process as an engineer

Okay so this is a bit of a rant more than anything else.
When it comes to writing a piece of software or implementing an idea in general, the first thing to do is study what needs to be studied. I did not design the HTTP protocol, but I want to take advantage of it. So I'm going to read about it.
The last thing to be considered are the tools needed. There are many ways to implement a protocol. This includes Perl, Python, C, or any language that supports socket programming. The tools are not the goal. I can't believe this has to be said!

When I say I'm a programmer, I really mean solving problems. I first solve the problem on paper, then go on and implement it on the computer, overcoming each obstacle and each subproblem that emerges in the process. However, once you mention you're a programmer to someone, the first question they ask you is "Oh what kind of programming languages do you use? Python?".
I'm sorry, what would it feel like if I asked you "oh you're a mechanic? What screwdriver do you use?". It's the exact same thing! The language is a tool. Any language is a tool! Heck, most projects require writing scripts and subprograms, many programs that call each other. Just like how you have to use the right screwdriver for the screw, or multiple tools for multiple tasks, I have to use and spontaneously learn how to use the languages and environments I have to in order to achieve that goal.
So don't ask me what programming language I use! I use all of them! Ugh it's so frustrating! Ask me about how I manage to solve problems, and not what my favourite python library is! I'm more than thrilled to talk to you about my passion for problem solving. I am not the person to talk about my favourite screwdriver!

Having said that, you can contact me by sending me an email!
Or, you might find me on popular IRC chat channels in several servers! My nickname is usually icedjava37 =)


Back