Typo and structure fixes
This commit is contained in:
parent
b7d0384c10
commit
cd8489e221
@ -7,9 +7,9 @@ menu = "main"
|
|||||||
|
|
||||||
+++
|
+++
|
||||||
|
|
||||||
About Me
|
## About Me
|
||||||
=
|
|
||||||
I'm Valentin, an computer science student from Regensburg, Germany. Currently I'm studying at [OTH Regensburg][1].
|
I'm Valentin, a computer science student from Regensburg, Germany. Currently I'm studying at [OTH Regensburg][1].
|
||||||
|
|
||||||
My interests are mainly in IT security and open source software but also practical cryptography and blockchain based technologies. I also like administrating Linux machines and planing network infrastructures.
|
My interests are mainly in IT security and open source software but also practical cryptography and blockchain based technologies. I also like administrating Linux machines and planing network infrastructures.
|
||||||
In my free time I like to play around with binary analysis and exploiting techniques by solving wargames.
|
In my free time I like to play around with binary analysis and exploiting techniques by solving wargames.
|
||||||
@ -18,19 +18,19 @@ I'm coding since ~2010.
|
|||||||
|
|
||||||
Currently working at [EBSnet][2].
|
Currently working at [EBSnet][2].
|
||||||
|
|
||||||
Skills
|
## Skills
|
||||||
=
|
|
||||||
* Linux
|
* Linux
|
||||||
* Java SE and EE
|
* Java EE and SE
|
||||||
* C
|
* C
|
||||||
* Perl 5
|
* Perl 5
|
||||||
* Little Rust and Python
|
* Getting better in Rust and little Python
|
||||||
* Bash
|
* Bash
|
||||||
* MySQL
|
* MySQL
|
||||||
* Oracle SQL
|
* Oracle SQL
|
||||||
|
|
||||||
System/Tools
|
## System/Tools
|
||||||
=
|
|
||||||
* OS: [Arch Linux][3]
|
* OS: [Arch Linux][3]
|
||||||
* WM: [i3wm][4]
|
* WM: [i3wm][4]
|
||||||
* Editor: [Vim][5]
|
* Editor: [Vim][5]
|
||||||
@ -38,8 +38,8 @@ System/Tools
|
|||||||
|
|
||||||
Also refer to my [dotfiles][10]
|
Also refer to my [dotfiles][10]
|
||||||
|
|
||||||
GitHub
|
## GitHub
|
||||||
=
|
|
||||||
Visit [my GitHub profile][11].
|
Visit [my GitHub profile][11].
|
||||||
|
|
||||||
[1]: https://www.oth-regensburg.de/
|
[1]: https://www.oth-regensburg.de/
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
+++
|
+++
|
||||||
date = "2017-04-07T12:19:43+02:00"
|
date = "2017-04-07T14:05:00+02:00"
|
||||||
publishdate = "2017-04-07T12:19:43+02:00"
|
publishdate = "2017-04-07T14:05:00+02:00"
|
||||||
title = "A Rusty Weekend"
|
title = "A Rusty Weekend"
|
||||||
categories = ["programming", "rust"]
|
categories = ["programming", "rust"]
|
||||||
draft = true
|
draft = true
|
||||||
@ -10,35 +10,50 @@ tags = ["rust","skeleton"]
|
|||||||
+++
|
+++
|
||||||
## The Rust Language
|
## The Rust Language
|
||||||
|
|
||||||
Since reading about Mozilla's new programming language [Rust](https://www.rust-lang.org/) I was eager to give it a try. Rust is a really new language and the first stable version was released in 2015.
|
Since reading about Mozilla's new programming language [Rust][0] I was eager to give it a try. Rust is a really new language and the first stable version was released in 2015.
|
||||||
Almost C like performance without memory corruption vulnerabilities, no race conditions and so forth thanks to a number of very interesting design concepts
|
Almost C like performance without memory corruption vulnerabilities, no race conditions and so forth thanks to a number of very interesting design concepts
|
||||||
and no garbage collector or any other kind of runtime overhead made that language sound really awesome.
|
and no garbage collector or any other kind of runtime overhead made that language sound really awesome.
|
||||||
|
|
||||||
In Rust all safety checks are done in compile time. The compiler translates into the [LLVM](https://en.wikipedia.org/wiki/LLVM) meta language which then takes care
|
In Rust all safety checks are done in compile time. The compiler translates into the [LLVM][1] meta language which then takes care
|
||||||
of the optimization and compilation into machine code for the target architecture. Rust libraries provide a [FFI](https://en.wikipedia.org/wiki/Foreign_function_interface)
|
of the optimization and compilation into machine code for the target architecture. Rust libraries provide a [FFI][2]
|
||||||
so they can be used from almost every other language. Due to it's safety features and the lack of performance overhead, Rust also aims to be a system programming language and there are
|
so they can be used from almost every other language. Due to it's safety features and the lack of performance overhead, Rust also aims to be a system programming language and there are
|
||||||
some really awesome projects, e.g. the [Redox operating system](https://www.redox-os.org/) which implements a microkernel architecture and has some really great design ideas (have a look at it!).
|
some really awesome projects, e.g. the [Redox operating system][3] which implements a microkernel architecture and has some really great design ideas (have a look at it!).
|
||||||
Also Mozilla started implementing a new, parallel browser engine called [Servo](https://servo.org/) which is more than 3 times faster than Gecko, the current engine used in Firefox[^servo].
|
Also Mozilla started implementing a new, parallel browser engine called [Servo][4] which is more than 3 times faster than Gecko, the current engine used in Firefox[^servo].
|
||||||
The MP4 parser in Firefox is already implemented in Rust an there is more to come. [Here](https://www.rust-lang.org/en-US/friends.html) is a more complete list of Rust code that runs on production systems.
|
The MP4 parser in Firefox is already implemented in Rust and there is more to come. [Here][5] is a more complete list of Rust code that runs on production systems.
|
||||||
|
|
||||||
Rust also has a own package manager/build management tool called [cargo](https://github.com/rust-lang/cargo) that makes working with libraries really easy.
|
Rust also has its own package manager/build management tool called [cargo][6] that makes working with libraries really easy.
|
||||||
Libraries in the Rust ecosystem are hosted on [crates.io](https://crates.io/) and you just need to reference them in the cargo configuration and they will be downloaded and included in the build.
|
Libraries in the Rust ecosystem are hosted on [crates.io][7] and you just need to reference them in the cargo configuration and they will be downloaded and included in the build.
|
||||||
|
|
||||||
## New Projects
|
## New Projects
|
||||||
|
|
||||||
Last weekend i started my first project to get in contact with Rust, called [skeleton](https://github.com/ntzwrk/skeleton/), which aims to be a language independent project management tool. When starting a new project, e.g. using
|
Last weekend I started my first project to get in contact with Rust, called [skeleton][8], which aims to be a language independent project management tool. When starting a new project, e.g. using
|
||||||
Gradle for build management, one initializes the structure using `gradle init` but in most cases that's not the only thing to do. You might want to initialize a git repository for the project, maybe copy a license file
|
Gradle for build management, one initializes the structure using `gradle init` but in most cases that's not the only thing to do. You might want to initialize a git repository for the project, maybe copy a license file
|
||||||
and download a gitignore file. Skeleton aims to automate these steps using some simple configuration files which allow the user to execute commands, create folders, touch files, include other skeleton configurations
|
and download a gitignore file. Skeleton aims to automate these steps using some simple configuration files which allow the user to execute commands, create folders, touch files, include other skeleton configurations
|
||||||
or download a gitignore file from [gitignore.io](https://gitignore.io) by a given list of languages, IDEs, ... to ignore. So `skeleton --lang=java init` might initialize a Gradle project, copy your license file, touch your
|
or download a gitignore file from [gitignore.io][9] by a given list of languages, IDEs, ... to ignore. So `skeleton --lang=java init` might initialize a Gradle project, copy your license file, touch your
|
||||||
README.md, initialize a git repository and download a gitignore file for [Java, Gradle and IntelliJ](https://www.gitignore.io/api/java%2Cgradle%2Cintellij).
|
README.md, initialize a git repository and download a gitignore file for [Java, Gradle and IntelliJ][10].
|
||||||
|
|
||||||
## Conclusion
|
## Conclusion
|
||||||
|
|
||||||
The design of Rust makes you think different about your code, e.g. by default every variable in Rust is immutable. If you want a mutable variable you have to explicitly mark it as such. When passing a variable as a parameter to
|
The design of Rust makes you think different about your code, e.g. by default every variable in Rust is immutable. If you want a mutable variable you have to explicitly mark it as such. When passing a variable as a parameter to
|
||||||
a function you can't simply reuse after the function returns as long as you don't explicitly borrow the variable for the time of the function call. All these features can also make you think different when writing C code
|
a function you can't simply reuse it after the function returns, as long as you don't explicitly borrow the variable for the time of the function call. All these features can also make you think different when writing C code
|
||||||
and probably producing better code. I really think Rust is worth looking at when implementing performance critical parts of a project. Also when looking for a new language to learn it is a good idea.
|
and probably help producing better code. I really think Rust is worth looking at especially when implementing performance critical parts of a project. Also when looking for a new language to learn it is a good idea.
|
||||||
Even for people coming from scripting languages who aren't familiar with the edit-compile-run cycle of compiled languages it is really easy thanks to cargo.
|
Even for people coming from scripting languages who aren't familiar with the edit-compile-run cycle of compiled languages it is really easy thanks to cargo.
|
||||||
Write your code, maybe add some dependencies and simply run `cargo test` for your tests or `cargo run` to execute the program.
|
Write your code, maybe add some dependencies and simply run `cargo test` for your tests or `cargo run` to execute the program. To get started I can recommend the official documentation [The Book][11] or have a look at some
|
||||||
|
examples on [Rust by Example][12].
|
||||||
|
|
||||||
|
|
||||||
[^servo]: http://events.linuxfoundation.org/sites/events/files/slides/LinuxConEU2014.pdf
|
[^servo]: http://events.linuxfoundation.org/sites/events/files/slides/LinuxConEU2014.pdf
|
||||||
|
|
||||||
|
[0]: https://www.rust-lang.org/
|
||||||
|
[1]: https://en.wikipedia.org/wiki/LLVM
|
||||||
|
[2]: https://en.wikipedia.org/wiki/Foreign_function_interface
|
||||||
|
[3]: https://www.redox-os.org/
|
||||||
|
[4]: https://servo.org/
|
||||||
|
[5]: https://www.rust-lang.org/en-US/friends.html
|
||||||
|
[6]: https://github.com/rust-lang/cargo
|
||||||
|
[7]: https://crates.io/
|
||||||
|
[8]: https://github.com/ntzwrk/skeleton/
|
||||||
|
[9]: https://gitignore.io
|
||||||
|
[10]: https://www.gitignore.io/api/java%2Cgradle%2Cintellij
|
||||||
|
[11]: https://doc.rust-lang.org/book/
|
||||||
|
[12]: http://rustbyexample.com/
|
||||||
|
@ -15,8 +15,8 @@ I created this website to give an overview about my person and the projects I'm
|
|||||||
|
|
||||||
<!--more-->
|
<!--more-->
|
||||||
|
|
||||||
Setup
|
## Setup
|
||||||
=
|
|
||||||
This website is generated by the static website generator [Hugo][1] using the awesome [After Dark theme][2]. I track the source files of the website in a [GitHub repository][3]. The web server is a [nginx server][5] running on my own dedicated server from [Kimsufi][6] and does not log the visitors IP address (I **do** write access logs but I will never log IP addresses).
|
This website is generated by the static website generator [Hugo][1] using the awesome [After Dark theme][2]. I track the source files of the website in a [GitHub repository][3]. The web server is a [nginx server][5] running on my own dedicated server from [Kimsufi][6] and does not log the visitors IP address (I **do** write access logs but I will never log IP addresses).
|
||||||
|
|
||||||
I chose a static site generator over a CMS like WordPress because plain markdown files are easier to manage e.g. using git in contrast to WordPress posts being stored somewhere deep in a database. Also have a look at the amount of security releases in the [WordPress release notes][7]. Hugo generates static HTML files which are served through nginx, so there are no security risks.
|
I chose a static site generator over a CMS like WordPress because plain markdown files are easier to manage e.g. using git in contrast to WordPress posts being stored somewhere deep in a database. Also have a look at the amount of security releases in the [WordPress release notes][7]. Hugo generates static HTML files which are served through nginx, so there are no security risks.
|
||||||
|
Loading…
Reference in New Issue
Block a user