1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
|
<script lang="ts">
import { fade } from "svelte/transition";
import github from "$lib/images/github.svg?raw";
import xmppSvg from "$lib/assets/xmpp.svg?raw";
import { decode, isDecoded } from "$lib/decoder";
import { getContext, onMount } from "svelte";
import { isMobile } from "$lib/mobile";
import { browser } from "$app/environment";
const header = getContext<Header>("Header");
var description = [
"Hiiiii im Rose!! I've been coding and abusing computers for like 8 years now (as of 2024)!",
"My main focus is in OSdev and Containers, but my experience ranges all accross the spectrum, ",
"frontend, backend, weird amalgamations inbetween, I can make everything work! ",
].join("");
var xmpp:string = "e714815f15b15315615a12714b15015a15915615615b11515615914e";
var matrix: string = "c210213a12713012b1230fc13612a1270ef12313213113612a12712512313413b0f012512e137124"
onMount(() => {
if (navigator.webdriver) {
document.body.toggleAttribute("data-noscript");
return;
}
xmpp = decode(xmpp);
matrix = decode(matrix);
});
onMount(async () => {
var chrome: boolean = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
if (chrome && !isMobile()) { // I can forgive people for using chrome on mobile tbh
header.addMessage("Chrome browsers enforce Googles monopolistic position while harming user privacy. See https://contrachrome.com/", {
dismissable: false
})
}
});
function copyText(text: string): (event: MouseEvent|KeyboardEvent) => void {
return (event) => {
if (event instanceof KeyboardEvent && event.code != "Enter")
return;
if (navigator.clipboard == null) {
return;
}
navigator.clipboard.writeText(text)
.then(() => header.addMessage("Copied to clipboard"))
.catch(() => header.addMessage("Failed to copy to clipboard"));
};
}
</script>
<svelte:head>
<title>rose</title>
<meta name="description" content="Coder of C. Abuser of Containers. Hater of golang." />
<meta property="og:title" content="axtlos"/>
<meta property="og:type" content="website"/>
<meta property="og:description" content={description}/>
<meta property="og:image" content="/me.png"/>
<meta property="og:url" content="https://xenia.blahaj.land"/>
<meta property="og:locale" content="en_US"/>
<link rel="me" href="https://eepy.moe/@rose"/>
</svelte:head>
<page>
<section id="welcome">
<h1>Hi! I'm Rose</h1>
</section>
<section id="about">
<h2>About me!</h2>
<p>
I'm a software engineer with an interest in Containers and OSdev.
I currently live in germany and study Computer Science.
</p>
<p>
Apart from Coding and tinkering with Hardware, I enjoy listening to music, reading books and going on walks!
</p>
</section>
<section id="projects">
<h2>My work</h2>
<p>
Currently most of my time is spent working on
<a href="https://github.com/Vanilla-OS/vib">vib</a>,
as the maintainer of vib I handle any project management,
while actively expanding it with more features.
</p>
<p>
In connection to vib. I am currently reviving an older
project called Project Shards, an arch based immutable
distribution, that went through many different designs,
but has settled on using systemd-sysupdate in the same vein as
<a href="https://os.gnome.org">GNOME OS</a>.
</p>
<p>
A more thorough list of Projects can be found in the
<a href="/projects">Projects</a> page.
</p>
</section>
<section id="contact">
<h2>Contact</h2>
<p class="subheader">Click on an element to copy its address</p>
<p>
You can contact me on these platforms!
</p>
{#if !browser}
<p id="noscript">
You seem to have disable javascript! But this website uses js to deobfuscate the contacts >w<
The obfuscated codes are displayed in the boxes below, you can use <a href="/deobfuscate.sh">this shell script</a> to debofuscate them locally!
</p>
{/if}
<ul>
<li id="xmpp">
<div
role="button"
tabindex="0"
on:click={isDecoded(matrix) ? undefined : copyText(xmpp)}
on:keydown={isDecoded(matrix) ? undefined : copyText(xmpp)}>
<h3>XMPP</h3>
{#if !browser}
<noscript>{xmpp}</noscript>
{:else}
<p>{xmpp}</p>
{/if}
</div>
</li>
<li id="matrix">
<div
role="button"
tabindex="0"
on:click={isDecoded(matrix) ? undefined : copyText(matrix)}
on:keydown={isDecoded(matrix) ? undefined : copyText(matrix)}>
<h3>matrix</h3>
{#if !browser}
<noscript>{matrix}</noscript>
{:else}
<p>{matrix}</p>
{/if}
</div>
</li>
<li id="email">
<div>
<a class="permalink"
href={isDecoded(matrix) ? `javascript:void` : `mailto:${xmpp}`}>
<h3>email</h3>
{#if !browser}
<noscript>{xmpp}</noscript>
{:else}
<p>{xmpp}</p>
{/if}
</a>
</div>
</li>
</ul>
</section>
</page>
<style lang="scss">
@use "$lib/styles";
page {
& section {
width: 100%;
&#contact {
& .subheader {
font-size: 0.8em;
margin-top: -25px;
}
& ul {
list-style: none;
display: flex;
gap: 10px;
flex-wrap: wrap;
flex-direction: row;
padding: unset;
margin: unset;
margin-top: 1em;
margin-bottom: 1em;
justify-content: space-around;
& li#xmpp > div { @include styles.contact($color: #FFC067, $text-color: #000000); }
& li#matrix > div { @include styles.contact($color: #7D7, $text-color: #000000); }
& li#email {
& a {
text-decoration: none;
}
& > div {
@include styles.contact($color: #B19CD9, $text-color: #000000);
}
}
& li > * {
& p {
text-align: center;
}
}
}
}
}
}
</style>
|