@turnipxenon/pineapple 2.4.42 → 2.4.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.idea/codeStyles/Project.xml +3 -1
- package/.idea/workspace.xml +126 -115
- package/.svelte-kit/__package__/template/Seaweed/SeaweedTemplate.svelte +34 -22
- package/.svelte-kit/generated/server/internal.js +1 -1
- package/dist/template/Seaweed/SeaweedTemplate.svelte +34 -22
- package/package.json +1 -1
- package/src/lib/template/Seaweed/SeaweedTemplate.svelte +34 -22
- package/src/routes/(pineapple)/pineapple/(pineapple)/+page.svelte +8 -1
- package/src/routes/(seaweed)/portfolio/+page.svelte +1 -4
- package/src/routes/(seaweed)/portfolio/actual/+page.svelte +1 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
<component name="ProjectCodeStyleConfiguration">
|
|
2
2
|
<code_scheme name="Project" version="173">
|
|
3
3
|
<HTMLCodeStyleSettings>
|
|
4
|
+
<option name="HTML_ATTRIBUTE_WRAP" value="0" />
|
|
5
|
+
<option name="HTML_TEXT_WRAP" value="0" />
|
|
4
6
|
<option name="HTML_SPACE_INSIDE_EMPTY_TAG" value="true" />
|
|
5
7
|
</HTMLCodeStyleSettings>
|
|
6
8
|
<JSCodeStyleSettings version="0">
|
|
@@ -27,7 +29,7 @@
|
|
|
27
29
|
<option name="INTERPOLATION_NEW_LINE_BEFORE_END_DELIMITER" value="false" />
|
|
28
30
|
</VueCodeStyleSettings>
|
|
29
31
|
<codeStyleSettings language="HTML">
|
|
30
|
-
<option name="SOFT_MARGINS" value="
|
|
32
|
+
<option name="SOFT_MARGINS" value="80,120" />
|
|
31
33
|
<indentOptions>
|
|
32
34
|
<option name="INDENT_SIZE" value="2" />
|
|
33
35
|
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
package/.idea/workspace.xml
CHANGED
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
<option name="autoReloadType" value="SELECTIVE" />
|
|
5
5
|
</component>
|
|
6
6
|
<component name="ChangeListManager">
|
|
7
|
-
<list default="true" id="accb6ba2-c343-4f84-ad30-6e2d71eceee5" name="Changes" comment="
|
|
8
|
-
<change beforePath="$PROJECT_DIR$/
|
|
7
|
+
<list default="true" id="accb6ba2-c343-4f84-ad30-6e2d71eceee5" name="Changes" comment="Adjust description">
|
|
8
|
+
<change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
|
|
9
|
+
<change beforePath="$PROJECT_DIR$/src/routes/(seaweed)/portfolio/+page.svelte" beforeDir="false" afterPath="$PROJECT_DIR$/src/routes/(seaweed)/portfolio/+page.svelte" afterDir="false" />
|
|
9
10
|
</list>
|
|
10
11
|
<option name="SHOW_DIALOG" value="false" />
|
|
11
12
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
|
@@ -43,6 +44,11 @@
|
|
|
43
44
|
<option value="+page" />
|
|
44
45
|
<option value="NavigationComponent" />
|
|
45
46
|
<option value="NavigationControl" />
|
|
47
|
+
<option value="Hepcat" />
|
|
48
|
+
<option value="Pengi" />
|
|
49
|
+
<option value="ChefWings" />
|
|
50
|
+
<option value="Soulwork" />
|
|
51
|
+
<option value="ItchPromo" />
|
|
46
52
|
<option value="TypeScript File" />
|
|
47
53
|
</list>
|
|
48
54
|
</option>
|
|
@@ -79,40 +85,40 @@
|
|
|
79
85
|
<option name="hideEmptyMiddlePackages" value="true" />
|
|
80
86
|
<option name="showLibraryContents" value="true" />
|
|
81
87
|
</component>
|
|
82
|
-
<component name="PropertiesComponent"
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
88
|
+
<component name="PropertiesComponent"><![CDATA[{
|
|
89
|
+
"keyToString": {
|
|
90
|
+
"DefaultHtmlFileTemplate": "HTML File",
|
|
91
|
+
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
|
92
|
+
"RunOnceActivity.ShowReadmeOnStart": "true",
|
|
93
|
+
"WebServerToolWindowFactoryState": "false",
|
|
94
|
+
"git-widget-placeholder": "turnip/adjust-description",
|
|
95
|
+
"ignore.virus.scanning.warn.message": "true",
|
|
96
|
+
"last_opened_file_path": "C:/Users/Pumpkin/Projects/Web/pineapple/src/lib/template/seaweed/entries",
|
|
97
|
+
"list.type.of.created.stylesheet": "CSS",
|
|
98
|
+
"node.js.detected.package.eslint": "true",
|
|
99
|
+
"node.js.detected.package.tslint": "true",
|
|
100
|
+
"node.js.selected.package.eslint": "(autodetect)",
|
|
101
|
+
"node.js.selected.package.tslint": "(autodetect)",
|
|
102
|
+
"nodejs_interpreter_path": "node",
|
|
103
|
+
"nodejs_package_manager_path": "yarn",
|
|
104
|
+
"npm.build.executor": "Run",
|
|
105
|
+
"npm.dev (1).executor": "Run",
|
|
106
|
+
"npm.dev --open.executor": "Run",
|
|
107
|
+
"npm.dev offline.executor": "Run",
|
|
108
|
+
"npm.dev-offline.executor": "Run",
|
|
109
|
+
"npm.dev.executor": "Run",
|
|
110
|
+
"settings.editor.selected.configurable": "preferences.editor",
|
|
111
|
+
"ts.external.directory.path": "C:\\Users\\Pumpkin\\Projects\\Web\\pineapple\\node_modules\\typescript\\lib",
|
|
112
|
+
"vue.rearranger.settings.migration": "true"
|
|
107
113
|
}
|
|
108
|
-
}
|
|
114
|
+
}]]></component>
|
|
109
115
|
<component name="RecentsManager">
|
|
110
116
|
<key name="CopyFile.RECENT_KEYS">
|
|
117
|
+
<recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\lib\template\seaweed\entries" />
|
|
111
118
|
<recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\routes\(pineapple)\pineapple\(extra-pages)\page3\page7\(test_layout)\page8" />
|
|
112
119
|
<recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\routes\(pineapple)\pineapple\(extra-pages)\page3\page5" />
|
|
113
120
|
<recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\routes\(pineapple)\pineapple\(extra-pages)\page2" />
|
|
114
121
|
<recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\lib\components\navigation_component" />
|
|
115
|
-
<recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\routes\(pineapple)\pineapple\page3\page7\(test_layout)\page8" />
|
|
116
122
|
</key>
|
|
117
123
|
<key name="MoveFile.RECENT_KEYS">
|
|
118
124
|
<recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\routes\(pineapple)\pineapple\(pineapple)" />
|
|
@@ -158,7 +164,7 @@
|
|
|
158
164
|
<item itemvalue="npm.dev-offline" />
|
|
159
165
|
<item itemvalue="npm.dev --open" />
|
|
160
166
|
<item itemvalue="npm.dev-offline" />
|
|
161
|
-
<item itemvalue="npm.dev
|
|
167
|
+
<item itemvalue="npm.dev --open" />
|
|
162
168
|
</list>
|
|
163
169
|
</recent_temporary>
|
|
164
170
|
</component>
|
|
@@ -256,79 +262,12 @@
|
|
|
256
262
|
<workItem from="1711682931608" duration="198000" />
|
|
257
263
|
<workItem from="1711683164653" duration="79000" />
|
|
258
264
|
<workItem from="1711683280312" duration="11000" />
|
|
259
|
-
<workItem from="1711684148768" duration="
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
<
|
|
263
|
-
<
|
|
264
|
-
<
|
|
265
|
-
<option name="presentableId" value="LOCAL-00070" />
|
|
266
|
-
<option name="project" value="LOCAL" />
|
|
267
|
-
<updated>1710651196829</updated>
|
|
268
|
-
</task>
|
|
269
|
-
<task id="LOCAL-00071" summary="Add default PR template">
|
|
270
|
-
<option name="closed" value="true" />
|
|
271
|
-
<created>1710651695177</created>
|
|
272
|
-
<option name="number" value="00071" />
|
|
273
|
-
<option name="presentableId" value="LOCAL-00071" />
|
|
274
|
-
<option name="project" value="LOCAL" />
|
|
275
|
-
<updated>1710651695177</updated>
|
|
276
|
-
</task>
|
|
277
|
-
<task id="LOCAL-00072" summary="Fix chip in light mode">
|
|
278
|
-
<option name="closed" value="true" />
|
|
279
|
-
<created>1710654837283</created>
|
|
280
|
-
<option name="number" value="00072" />
|
|
281
|
-
<option name="presentableId" value="LOCAL-00072" />
|
|
282
|
-
<option name="project" value="LOCAL" />
|
|
283
|
-
<updated>1710654837283</updated>
|
|
284
|
-
</task>
|
|
285
|
-
<task id="LOCAL-00073" summary="2.4.14">
|
|
286
|
-
<option name="closed" value="true" />
|
|
287
|
-
<created>1710655474323</created>
|
|
288
|
-
<option name="number" value="00073" />
|
|
289
|
-
<option name="presentableId" value="LOCAL-00073" />
|
|
290
|
-
<option name="project" value="LOCAL" />
|
|
291
|
-
<updated>1710655474323</updated>
|
|
292
|
-
</task>
|
|
293
|
-
<task id="LOCAL-00074" summary="Run dialog parser in runtime">
|
|
294
|
-
<option name="closed" value="true" />
|
|
295
|
-
<created>1710731570794</created>
|
|
296
|
-
<option name="number" value="00074" />
|
|
297
|
-
<option name="presentableId" value="LOCAL-00074" />
|
|
298
|
-
<option name="project" value="LOCAL" />
|
|
299
|
-
<updated>1710731570794</updated>
|
|
300
|
-
</task>
|
|
301
|
-
<task id="LOCAL-00075" summary="Fix dialog layout to make it usable on hobby site">
|
|
302
|
-
<option name="closed" value="true" />
|
|
303
|
-
<created>1710739937750</created>
|
|
304
|
-
<option name="number" value="00075" />
|
|
305
|
-
<option name="presentableId" value="LOCAL-00075" />
|
|
306
|
-
<option name="project" value="LOCAL" />
|
|
307
|
-
<updated>1710739937750</updated>
|
|
308
|
-
</task>
|
|
309
|
-
<task id="LOCAL-00076" summary="Add option to set default dialog behavior in Pineapple">
|
|
310
|
-
<option name="closed" value="true" />
|
|
311
|
-
<created>1710741953853</created>
|
|
312
|
-
<option name="number" value="00076" />
|
|
313
|
-
<option name="presentableId" value="LOCAL-00076" />
|
|
314
|
-
<option name="project" value="LOCAL" />
|
|
315
|
-
<updated>1710741953853</updated>
|
|
316
|
-
</task>
|
|
317
|
-
<task id="LOCAL-00077" summary="Export Card">
|
|
318
|
-
<option name="closed" value="true" />
|
|
319
|
-
<created>1711093190088</created>
|
|
320
|
-
<option name="number" value="00077" />
|
|
321
|
-
<option name="presentableId" value="LOCAL-00077" />
|
|
322
|
-
<option name="project" value="LOCAL" />
|
|
323
|
-
<updated>1711093190088</updated>
|
|
324
|
-
</task>
|
|
325
|
-
<task id="LOCAL-00078" summary="Replace all $lib to $pkg">
|
|
326
|
-
<option name="closed" value="true" />
|
|
327
|
-
<created>1711093944293</created>
|
|
328
|
-
<option name="number" value="00078" />
|
|
329
|
-
<option name="presentableId" value="LOCAL-00078" />
|
|
330
|
-
<option name="project" value="LOCAL" />
|
|
331
|
-
<updated>1711093944293</updated>
|
|
265
|
+
<workItem from="1711684148768" duration="1021000" />
|
|
266
|
+
<workItem from="1711910172413" duration="485000" />
|
|
267
|
+
<workItem from="1711910783501" duration="388000" />
|
|
268
|
+
<workItem from="1711930835848" duration="1753000" />
|
|
269
|
+
<workItem from="1711933293449" duration="16410000" />
|
|
270
|
+
<workItem from="1711990899017" duration="1339000" />
|
|
332
271
|
</task>
|
|
333
272
|
<task id="LOCAL-00079" summary="Refactor all util functions into util/util">
|
|
334
273
|
<option name="closed" value="true" />
|
|
@@ -650,7 +589,79 @@
|
|
|
650
589
|
<option name="project" value="LOCAL" />
|
|
651
590
|
<updated>1711683031188</updated>
|
|
652
591
|
</task>
|
|
653
|
-
<
|
|
592
|
+
<task id="LOCAL-00119" summary="Change media to containre">
|
|
593
|
+
<option name="closed" value="true" />
|
|
594
|
+
<created>1711685062499</created>
|
|
595
|
+
<option name="number" value="00119" />
|
|
596
|
+
<option name="presentableId" value="LOCAL-00119" />
|
|
597
|
+
<option name="project" value="LOCAL" />
|
|
598
|
+
<updated>1711685062499</updated>
|
|
599
|
+
</task>
|
|
600
|
+
<task id="LOCAL-00120" summary="Change media to container">
|
|
601
|
+
<option name="closed" value="true" />
|
|
602
|
+
<created>1711685070024</created>
|
|
603
|
+
<option name="number" value="00120" />
|
|
604
|
+
<option name="presentableId" value="LOCAL-00120" />
|
|
605
|
+
<option name="project" value="LOCAL" />
|
|
606
|
+
<updated>1711685070024</updated>
|
|
607
|
+
</task>
|
|
608
|
+
<task id="LOCAL-00121" summary="Add toggle to showcase pagination prevention">
|
|
609
|
+
<option name="closed" value="true" />
|
|
610
|
+
<created>1711910588771</created>
|
|
611
|
+
<option name="number" value="00121" />
|
|
612
|
+
<option name="presentableId" value="LOCAL-00121" />
|
|
613
|
+
<option name="project" value="LOCAL" />
|
|
614
|
+
<updated>1711910588772</updated>
|
|
615
|
+
</task>
|
|
616
|
+
<task id="LOCAL-00122" summary="WIP custom v1">
|
|
617
|
+
<option name="closed" value="true" />
|
|
618
|
+
<created>1711940053335</created>
|
|
619
|
+
<option name="number" value="00122" />
|
|
620
|
+
<option name="presentableId" value="LOCAL-00122" />
|
|
621
|
+
<option name="project" value="LOCAL" />
|
|
622
|
+
<updated>1711940053335</updated>
|
|
623
|
+
</task>
|
|
624
|
+
<task id="LOCAL-00123" summary="Rename Seaweed to seaweed">
|
|
625
|
+
<option name="closed" value="true" />
|
|
626
|
+
<created>1711940145763</created>
|
|
627
|
+
<option name="number" value="00123" />
|
|
628
|
+
<option name="presentableId" value="LOCAL-00123" />
|
|
629
|
+
<option name="project" value="LOCAL" />
|
|
630
|
+
<updated>1711940145763</updated>
|
|
631
|
+
</task>
|
|
632
|
+
<task id="LOCAL-00124" summary="Fully extract all entries from groups">
|
|
633
|
+
<option name="closed" value="true" />
|
|
634
|
+
<created>1711943579891</created>
|
|
635
|
+
<option name="number" value="00124" />
|
|
636
|
+
<option name="presentableId" value="LOCAL-00124" />
|
|
637
|
+
<option name="project" value="LOCAL" />
|
|
638
|
+
<updated>1711943579891</updated>
|
|
639
|
+
</task>
|
|
640
|
+
<task id="LOCAL-00125" summary="Allow full reordering for entries">
|
|
641
|
+
<option name="closed" value="true" />
|
|
642
|
+
<created>1711950000817</created>
|
|
643
|
+
<option name="number" value="00125" />
|
|
644
|
+
<option name="presentableId" value="LOCAL-00125" />
|
|
645
|
+
<option name="project" value="LOCAL" />
|
|
646
|
+
<updated>1711950000817</updated>
|
|
647
|
+
</task>
|
|
648
|
+
<task id="LOCAL-00126" summary="WIP">
|
|
649
|
+
<option name="closed" value="true" />
|
|
650
|
+
<created>1711990921948</created>
|
|
651
|
+
<option name="number" value="00126" />
|
|
652
|
+
<option name="presentableId" value="LOCAL-00126" />
|
|
653
|
+
<option name="project" value="LOCAL" />
|
|
654
|
+
<updated>1711990921949</updated>
|
|
655
|
+
</task>
|
|
656
|
+
<task id="LOCAL-00127" summary="Adjust description">
|
|
657
|
+
<option name="closed" value="true" />
|
|
658
|
+
<created>1711992114854</created>
|
|
659
|
+
<option name="number" value="00127" />
|
|
660
|
+
<option name="presentableId" value="LOCAL-00127" />
|
|
661
|
+
<option name="project" value="LOCAL" />
|
|
662
|
+
<updated>1711992114854</updated>
|
|
663
|
+
</task>
|
|
664
|
+
<option name="localTasksCounter" value="128" />
|
|
654
665
|
<servers />
|
|
655
666
|
</component>
|
|
656
667
|
<component name="TypeScriptGeneratedFilesManager">
|
|
@@ -688,7 +699,7 @@
|
|
|
688
699
|
<entry key="branch">
|
|
689
700
|
<value>
|
|
690
701
|
<list>
|
|
691
|
-
<option value="turnip/
|
|
702
|
+
<option value="turnip/customizable" />
|
|
692
703
|
</list>
|
|
693
704
|
</value>
|
|
694
705
|
</entry>
|
|
@@ -708,15 +719,6 @@
|
|
|
708
719
|
</option>
|
|
709
720
|
</component>
|
|
710
721
|
<component name="VcsManagerConfiguration">
|
|
711
|
-
<MESSAGE value="Place fab on a higher z-index" />
|
|
712
|
-
<MESSAGE value="v2.4.29" />
|
|
713
|
-
<MESSAGE value="Implement basic navigation component logic" />
|
|
714
|
-
<MESSAGE value="Add basic navigation component logic" />
|
|
715
|
-
<MESSAGE value="Refactor NavigationComponent logic to its component" />
|
|
716
|
-
<MESSAGE value="Parse meta from subdirectories" />
|
|
717
|
-
<MESSAGE value="Refactor the test pages to have unique headers" />
|
|
718
|
-
<MESSAGE value="Document limitations of PageMeta.image" />
|
|
719
|
-
<MESSAGE value="Move test pages into a singluar director" />
|
|
720
722
|
<MESSAGE value="Move test pages into a directory" />
|
|
721
723
|
<MESSAGE value="Add Navigation control" />
|
|
722
724
|
<MESSAGE value="Move NavigationControl to a component" />
|
|
@@ -733,6 +735,15 @@
|
|
|
733
735
|
<MESSAGE value="Allow preventing NavigationComponent pagination" />
|
|
734
736
|
<MESSAGE value="Export SocialSection" />
|
|
735
737
|
<MESSAGE value="Fix allowLinkedin arg in SocialSection" />
|
|
736
|
-
<
|
|
738
|
+
<MESSAGE value="Change media to containre" />
|
|
739
|
+
<MESSAGE value="Change media to container" />
|
|
740
|
+
<MESSAGE value="Add toggle to showcase pagination prevention" />
|
|
741
|
+
<MESSAGE value="WIP custom v1" />
|
|
742
|
+
<MESSAGE value="Rename Seaweed to seaweed" />
|
|
743
|
+
<MESSAGE value="Fully extract all entries from groups" />
|
|
744
|
+
<MESSAGE value="Allow full reordering for entries" />
|
|
745
|
+
<MESSAGE value="WIP" />
|
|
746
|
+
<MESSAGE value="Adjust description" />
|
|
747
|
+
<option name="LAST_COMMIT_MESSAGE" value="Adjust description" />
|
|
737
748
|
</component>
|
|
738
749
|
</project>
|
|
@@ -15,6 +15,7 @@ import GameSection from "./GameSection.svelte";
|
|
|
15
15
|
import ProjectSection from "./ProjectSection.svelte";
|
|
16
16
|
let isVisible = true;
|
|
17
17
|
let isAdvanceSettingOn = false;
|
|
18
|
+
let shouldAddFunNote = false;
|
|
18
19
|
$:
|
|
19
20
|
isSocialsGone = !isVisible;
|
|
20
21
|
import gameContent from "./GameSection.svelte?raw";
|
|
@@ -181,10 +182,12 @@ $:
|
|
|
181
182
|
I also graduated with BS Computing Science, Specializing in Software Practice, and a
|
|
182
183
|
certificate in Computer Game Development at University of Alberta.
|
|
183
184
|
</p>
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
185
|
+
{#if shouldAddFunNote}
|
|
186
|
+
<p>
|
|
187
|
+
I'm inspired by games like Harvest Moon: Friends of Mineral Town, Rune Factory 4, Theatrhythm,
|
|
188
|
+
Bravely Default: Flying Fairy, Boku no Natsuyasumi 2, and A Short Hike.
|
|
189
|
+
</p>
|
|
190
|
+
{/if}
|
|
188
191
|
|
|
189
192
|
<!-- todo: maybe put cute stuff here -->
|
|
190
193
|
<!-- </ToggleableContent>-->
|
|
@@ -205,23 +208,32 @@ $:
|
|
|
205
208
|
<section class="section-card" slot="content">
|
|
206
209
|
<h1>Experience</h1>
|
|
207
210
|
|
|
211
|
+
<h2>Highlight</h2>
|
|
212
|
+
<p>Worked on Go backend microservices and Typescript React frontend app, serving <b>over 30 million daily
|
|
213
|
+
active users</b> at Twitch</p>
|
|
214
|
+
|
|
208
215
|
<h2>Software Engineer</h2>
|
|
209
216
|
<div class="two-column-separated">
|
|
210
217
|
<div>July 2023 – January 2024</div>
|
|
211
218
|
<div style="text-align: end">Twitch, Remote</div>
|
|
212
219
|
</div>
|
|
213
220
|
<ul>
|
|
214
|
-
<li>
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
221
|
+
<li>
|
|
222
|
+
Contributed to
|
|
223
|
+
<span class="qt-go">Golang</span>
|
|
224
|
+
microservices and
|
|
225
|
+
<span class="qt-ts">Typescript</span>
|
|
226
|
+
<span class="qt-react">React</span> codebases, across several teams, to accommodate public-facing user safety features to better comply with EU’s Digital Services Act, which applies to no more than
|
|
227
|
+
<a href="https://safety.twitch.tv/s/article/Digital-Services-Act-Information?language=en_US">30.5 million users</a>
|
|
228
|
+
. Work includes feature flags, alarms, unit tests, end-to-end testing, and documentation.
|
|
220
229
|
</li>
|
|
221
|
-
<li>
|
|
222
|
-
resources to integrate internal data platform tools with existing alarms in our team’s microservice,
|
|
223
|
-
|
|
224
|
-
|
|
230
|
+
<li>
|
|
231
|
+
Improved observability for upcoming features by setting up new AWS resources to integrate internal data platform tools with existing alarms in our team’s microservice, utilizing
|
|
232
|
+
<span class="qt-aws qt-observability">Cloudwatch</span>,
|
|
233
|
+
<span class="qt-aws qt-observability">Grafana</span>,
|
|
234
|
+
<span class="qt-aws">Kinesis Data Stream</span>,
|
|
235
|
+
<span class="qt-aws qt-infra">AWS CDK (infrastructure as code)</span>, and
|
|
236
|
+
<span class="qt-aws qt-cicd">CodePipeline (CI/CD)</span>
|
|
225
237
|
</li>
|
|
226
238
|
</ul>
|
|
227
239
|
<br>
|
|
@@ -266,14 +278,11 @@ $:
|
|
|
266
278
|
</div>
|
|
267
279
|
<ul>
|
|
268
280
|
<li>
|
|
269
|
-
Implemented and wrote tests for a feature in Twitch’s
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
Learned <span class="qt-go">Go</span>, <span class="qt-ts">Typescript</span>, <span
|
|
275
|
-
class="qt-react">React</span>, and other new technologies on the go to contribute to
|
|
276
|
-
the codebase
|
|
281
|
+
Implemented and wrote tests for a feature in Twitch’s
|
|
282
|
+
<span class="qt-go">Golang</span> backend authentication microservices and
|
|
283
|
+
<span class="qt-ts">Typescript</span>
|
|
284
|
+
<span class="qt-react">React</span> frontend web app that will help suggest security improvements to
|
|
285
|
+
<b>over 100k+ users daily</b>
|
|
277
286
|
</li>
|
|
278
287
|
</ul>
|
|
279
288
|
{:else}
|
|
@@ -311,6 +320,9 @@ $:
|
|
|
311
320
|
<SlideToggle name="game-section-slider" bind:checked={gameSectionFirst}>
|
|
312
321
|
Should game section appear first over projects: {gameSectionFirst ? "On" : "Off"}
|
|
313
322
|
</SlideToggle>
|
|
323
|
+
<SlideToggle name="fun-note-slider" bind:checked={shouldAddFunNote}>
|
|
324
|
+
Should add fun note in description: {shouldAddFunNote ? "On" : "Off"}
|
|
325
|
+
</SlideToggle>
|
|
314
326
|
|
|
315
327
|
<h3>Query terms to bold</h3>
|
|
316
328
|
<div class="query-term-grid">
|
|
@@ -21,7 +21,7 @@ export const options = {
|
|
|
21
21
|
app: ({ head, body, assets, nonce, env }) => "<!DOCTYPE html>\n<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<link rel=\"icon\" href=\"" + assets + "/favicon.png\" />\n\t\t<meta name=\"viewport\" content=\"width=device-width\" />\n\t\t" + head + "\n\t</head>\n\n\t<body data-sveltekit-preload-data=\"hover\" data-theme=\"crimson\">\n\t\t<div style=\"display: contents\" class=\"h-full overflow-hidden\">" + body + "</div>\n\t</body>\n</html>\n",
|
|
22
22
|
error: ({ status, message }) => "<!doctype html>\n<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<title>" + message + "</title>\n\n\t\t<style>\n\t\t\tbody {\n\t\t\t\t--bg: white;\n\t\t\t\t--fg: #222;\n\t\t\t\t--divider: #ccc;\n\t\t\t\tbackground: var(--bg);\n\t\t\t\tcolor: var(--fg);\n\t\t\t\tfont-family:\n\t\t\t\t\tsystem-ui,\n\t\t\t\t\t-apple-system,\n\t\t\t\t\tBlinkMacSystemFont,\n\t\t\t\t\t'Segoe UI',\n\t\t\t\t\tRoboto,\n\t\t\t\t\tOxygen,\n\t\t\t\t\tUbuntu,\n\t\t\t\t\tCantarell,\n\t\t\t\t\t'Open Sans',\n\t\t\t\t\t'Helvetica Neue',\n\t\t\t\t\tsans-serif;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\theight: 100vh;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t.error {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tmax-width: 32rem;\n\t\t\t\tmargin: 0 1rem;\n\t\t\t}\n\n\t\t\t.status {\n\t\t\t\tfont-weight: 200;\n\t\t\t\tfont-size: 3rem;\n\t\t\t\tline-height: 1;\n\t\t\t\tposition: relative;\n\t\t\t\ttop: -0.05rem;\n\t\t\t}\n\n\t\t\t.message {\n\t\t\t\tborder-left: 1px solid var(--divider);\n\t\t\t\tpadding: 0 0 0 1rem;\n\t\t\t\tmargin: 0 0 0 1rem;\n\t\t\t\tmin-height: 2.5rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t}\n\n\t\t\t.message h1 {\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-size: 1em;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t@media (prefers-color-scheme: dark) {\n\t\t\t\tbody {\n\t\t\t\t\t--bg: #222;\n\t\t\t\t\t--fg: #ddd;\n\t\t\t\t\t--divider: #666;\n\t\t\t\t}\n\t\t\t}\n\t\t</style>\n\t</head>\n\t<body>\n\t\t<div class=\"error\">\n\t\t\t<span class=\"status\">" + status + "</span>\n\t\t\t<div class=\"message\">\n\t\t\t\t<h1>" + message + "</h1>\n\t\t\t</div>\n\t\t</div>\n\t</body>\n</html>\n"
|
|
23
23
|
},
|
|
24
|
-
version_hash: "
|
|
24
|
+
version_hash: "1dgnh0c"
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
export async function get_hooks() {
|
|
@@ -15,6 +15,7 @@ import GameSection from "./GameSection.svelte";
|
|
|
15
15
|
import ProjectSection from "./ProjectSection.svelte";
|
|
16
16
|
let isVisible = true;
|
|
17
17
|
let isAdvanceSettingOn = false;
|
|
18
|
+
let shouldAddFunNote = false;
|
|
18
19
|
$:
|
|
19
20
|
isSocialsGone = !isVisible;
|
|
20
21
|
import gameContent from "./GameSection.svelte?raw";
|
|
@@ -181,10 +182,12 @@ $:
|
|
|
181
182
|
I also graduated with BS Computing Science, Specializing in Software Practice, and a
|
|
182
183
|
certificate in Computer Game Development at University of Alberta.
|
|
183
184
|
</p>
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
185
|
+
{#if shouldAddFunNote}
|
|
186
|
+
<p>
|
|
187
|
+
I'm inspired by games like Harvest Moon: Friends of Mineral Town, Rune Factory 4, Theatrhythm,
|
|
188
|
+
Bravely Default: Flying Fairy, Boku no Natsuyasumi 2, and A Short Hike.
|
|
189
|
+
</p>
|
|
190
|
+
{/if}
|
|
188
191
|
|
|
189
192
|
<!-- todo: maybe put cute stuff here -->
|
|
190
193
|
<!-- </ToggleableContent>-->
|
|
@@ -205,23 +208,32 @@ $:
|
|
|
205
208
|
<section class="section-card" slot="content">
|
|
206
209
|
<h1>Experience</h1>
|
|
207
210
|
|
|
211
|
+
<h2>Highlight</h2>
|
|
212
|
+
<p>Worked on Go backend microservices and Typescript React frontend app, serving <b>over 30 million daily
|
|
213
|
+
active users</b> at Twitch</p>
|
|
214
|
+
|
|
208
215
|
<h2>Software Engineer</h2>
|
|
209
216
|
<div class="two-column-separated">
|
|
210
217
|
<div>July 2023 – January 2024</div>
|
|
211
218
|
<div style="text-align: end">Twitch, Remote</div>
|
|
212
219
|
</div>
|
|
213
220
|
<ul>
|
|
214
|
-
<li>
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
221
|
+
<li>
|
|
222
|
+
Contributed to
|
|
223
|
+
<span class="qt-go">Golang</span>
|
|
224
|
+
microservices and
|
|
225
|
+
<span class="qt-ts">Typescript</span>
|
|
226
|
+
<span class="qt-react">React</span> codebases, across several teams, to accommodate public-facing user safety features to better comply with EU’s Digital Services Act, which applies to no more than
|
|
227
|
+
<a href="https://safety.twitch.tv/s/article/Digital-Services-Act-Information?language=en_US">30.5 million users</a>
|
|
228
|
+
. Work includes feature flags, alarms, unit tests, end-to-end testing, and documentation.
|
|
220
229
|
</li>
|
|
221
|
-
<li>
|
|
222
|
-
resources to integrate internal data platform tools with existing alarms in our team’s microservice,
|
|
223
|
-
|
|
224
|
-
|
|
230
|
+
<li>
|
|
231
|
+
Improved observability for upcoming features by setting up new AWS resources to integrate internal data platform tools with existing alarms in our team’s microservice, utilizing
|
|
232
|
+
<span class="qt-aws qt-observability">Cloudwatch</span>,
|
|
233
|
+
<span class="qt-aws qt-observability">Grafana</span>,
|
|
234
|
+
<span class="qt-aws">Kinesis Data Stream</span>,
|
|
235
|
+
<span class="qt-aws qt-infra">AWS CDK (infrastructure as code)</span>, and
|
|
236
|
+
<span class="qt-aws qt-cicd">CodePipeline (CI/CD)</span>
|
|
225
237
|
</li>
|
|
226
238
|
</ul>
|
|
227
239
|
<br>
|
|
@@ -266,14 +278,11 @@ $:
|
|
|
266
278
|
</div>
|
|
267
279
|
<ul>
|
|
268
280
|
<li>
|
|
269
|
-
Implemented and wrote tests for a feature in Twitch’s
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
Learned <span class="qt-go">Go</span>, <span class="qt-ts">Typescript</span>, <span
|
|
275
|
-
class="qt-react">React</span>, and other new technologies on the go to contribute to
|
|
276
|
-
the codebase
|
|
281
|
+
Implemented and wrote tests for a feature in Twitch’s
|
|
282
|
+
<span class="qt-go">Golang</span> backend authentication microservices and
|
|
283
|
+
<span class="qt-ts">Typescript</span>
|
|
284
|
+
<span class="qt-react">React</span> frontend web app that will help suggest security improvements to
|
|
285
|
+
<b>over 100k+ users daily</b>
|
|
277
286
|
</li>
|
|
278
287
|
</ul>
|
|
279
288
|
{:else}
|
|
@@ -311,6 +320,9 @@ $:
|
|
|
311
320
|
<SlideToggle name="game-section-slider" bind:checked={gameSectionFirst}>
|
|
312
321
|
Should game section appear first over projects: {gameSectionFirst ? "On" : "Off"}
|
|
313
322
|
</SlideToggle>
|
|
323
|
+
<SlideToggle name="fun-note-slider" bind:checked={shouldAddFunNote}>
|
|
324
|
+
Should add fun note in description: {shouldAddFunNote ? "On" : "Off"}
|
|
325
|
+
</SlideToggle>
|
|
314
326
|
|
|
315
327
|
<h3>Query terms to bold</h3>
|
|
316
328
|
<div class="query-term-grid">
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@turnipxenon/pineapple",
|
|
3
3
|
"description": "personal package for base styling for other personal projects",
|
|
4
|
-
"version": "2.4.
|
|
4
|
+
"version": "2.4.43",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"dev": "vite dev",
|
|
7
7
|
"build": "npm run check-requirements && vite build && yarn package",
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
let isVisible = true;
|
|
20
20
|
let isAdvanceSettingOn = false;
|
|
21
|
+
let shouldAddFunNote = false;
|
|
21
22
|
|
|
22
23
|
$: isSocialsGone = !isVisible;
|
|
23
24
|
|
|
@@ -252,10 +253,12 @@
|
|
|
252
253
|
I also graduated with BS Computing Science, Specializing in Software Practice, and a
|
|
253
254
|
certificate in Computer Game Development at University of Alberta.
|
|
254
255
|
</p>
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
256
|
+
{#if shouldAddFunNote}
|
|
257
|
+
<p>
|
|
258
|
+
I'm inspired by games like Harvest Moon: Friends of Mineral Town, Rune Factory 4, Theatrhythm,
|
|
259
|
+
Bravely Default: Flying Fairy, Boku no Natsuyasumi 2, and A Short Hike.
|
|
260
|
+
</p>
|
|
261
|
+
{/if}
|
|
259
262
|
|
|
260
263
|
<!-- todo: maybe put cute stuff here -->
|
|
261
264
|
<!-- </ToggleableContent>-->
|
|
@@ -276,23 +279,32 @@
|
|
|
276
279
|
<section class="section-card" slot="content">
|
|
277
280
|
<h1>Experience</h1>
|
|
278
281
|
|
|
282
|
+
<h2>Highlight</h2>
|
|
283
|
+
<p>Worked on Go backend microservices and Typescript React frontend app, serving <b>over 30 million daily
|
|
284
|
+
active users</b> at Twitch</p>
|
|
285
|
+
|
|
279
286
|
<h2>Software Engineer</h2>
|
|
280
287
|
<div class="two-column-separated">
|
|
281
288
|
<div>July 2023 – January 2024</div>
|
|
282
289
|
<div style="text-align: end">Twitch, Remote</div>
|
|
283
290
|
</div>
|
|
284
291
|
<ul>
|
|
285
|
-
<li>
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
292
|
+
<li>
|
|
293
|
+
Contributed to
|
|
294
|
+
<span class="qt-go">Golang</span>
|
|
295
|
+
microservices and
|
|
296
|
+
<span class="qt-ts">Typescript</span>
|
|
297
|
+
<span class="qt-react">React</span> codebases, across several teams, to accommodate public-facing user safety features to better comply with EU’s Digital Services Act, which applies to no more than
|
|
298
|
+
<a href="https://safety.twitch.tv/s/article/Digital-Services-Act-Information?language=en_US">30.5 million users</a>
|
|
299
|
+
. Work includes feature flags, alarms, unit tests, end-to-end testing, and documentation.
|
|
291
300
|
</li>
|
|
292
|
-
<li>
|
|
293
|
-
resources to integrate internal data platform tools with existing alarms in our team’s microservice,
|
|
294
|
-
|
|
295
|
-
|
|
301
|
+
<li>
|
|
302
|
+
Improved observability for upcoming features by setting up new AWS resources to integrate internal data platform tools with existing alarms in our team’s microservice, utilizing
|
|
303
|
+
<span class="qt-aws qt-observability">Cloudwatch</span>,
|
|
304
|
+
<span class="qt-aws qt-observability">Grafana</span>,
|
|
305
|
+
<span class="qt-aws">Kinesis Data Stream</span>,
|
|
306
|
+
<span class="qt-aws qt-infra">AWS CDK (infrastructure as code)</span>, and
|
|
307
|
+
<span class="qt-aws qt-cicd">CodePipeline (CI/CD)</span>
|
|
296
308
|
</li>
|
|
297
309
|
</ul>
|
|
298
310
|
<br>
|
|
@@ -337,14 +349,11 @@
|
|
|
337
349
|
</div>
|
|
338
350
|
<ul>
|
|
339
351
|
<li>
|
|
340
|
-
Implemented and wrote tests for a feature in Twitch’s
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
Learned <span class="qt-go">Go</span>, <span class="qt-ts">Typescript</span>, <span
|
|
346
|
-
class="qt-react">React</span>, and other new technologies on the go to contribute to
|
|
347
|
-
the codebase
|
|
352
|
+
Implemented and wrote tests for a feature in Twitch’s
|
|
353
|
+
<span class="qt-go">Golang</span> backend authentication microservices and
|
|
354
|
+
<span class="qt-ts">Typescript</span>
|
|
355
|
+
<span class="qt-react">React</span> frontend web app that will help suggest security improvements to
|
|
356
|
+
<b>over 100k+ users daily</b>
|
|
348
357
|
</li>
|
|
349
358
|
</ul>
|
|
350
359
|
{:else}
|
|
@@ -382,6 +391,9 @@
|
|
|
382
391
|
<SlideToggle name="game-section-slider" bind:checked={gameSectionFirst}>
|
|
383
392
|
Should game section appear first over projects: {gameSectionFirst ? "On" : "Off"}
|
|
384
393
|
</SlideToggle>
|
|
394
|
+
<SlideToggle name="fun-note-slider" bind:checked={shouldAddFunNote}>
|
|
395
|
+
Should add fun note in description: {shouldAddFunNote ? "On" : "Off"}
|
|
396
|
+
</SlideToggle>
|
|
385
397
|
|
|
386
398
|
<h3>Query terms to bold</h3>
|
|
387
399
|
<div class="query-term-grid">
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import { Card, dialogManager, enableDialogueOverlay } from "$pkg";
|
|
6
6
|
import NavigationComponent from "$pkg/components/navigation_component/NavigationComponent.svelte";
|
|
7
7
|
import { ImageMap } from "./ImageMap";
|
|
8
|
+
import { SlideToggle } from "@skeletonlabs/skeleton";
|
|
8
9
|
|
|
9
10
|
enableDialogueOverlay.set(false);
|
|
10
11
|
|
|
@@ -34,6 +35,7 @@
|
|
|
34
35
|
// todo: fix fragile relative reference to the root
|
|
35
36
|
const fileList = import.meta.glob("./../**/+page.svelte", { query: "?raw" });
|
|
36
37
|
const jsonList = import.meta.glob("./../**/meta.json", { query: "?raw", eager: true });
|
|
38
|
+
let allowPagination = true;
|
|
37
39
|
</script>
|
|
38
40
|
|
|
39
41
|
<Card>
|
|
@@ -52,6 +54,11 @@
|
|
|
52
54
|
<button
|
|
53
55
|
class="btn variant-filled-secondary"
|
|
54
56
|
on:click={onTestDialogClick}><h3>Test dialog</h3></button>
|
|
57
|
+
<div>
|
|
58
|
+
<SlideToggle name="advanced-setting-slider" bind:checked={allowPagination}>
|
|
59
|
+
Allow pagination: {allowPagination ? "On" : "Off"}
|
|
60
|
+
</SlideToggle>
|
|
61
|
+
</div>
|
|
55
62
|
</div>
|
|
56
63
|
</Card>
|
|
57
64
|
|
|
@@ -59,7 +66,7 @@
|
|
|
59
66
|
fileList={fileList}
|
|
60
67
|
jsonList={jsonList}
|
|
61
68
|
imageMap={ImageMap}
|
|
62
|
-
shouldAllowControl={
|
|
69
|
+
shouldAllowControl={allowPagination}
|
|
63
70
|
parentSubpath="/pineapple/">
|
|
64
71
|
</NavigationComponent>
|
|
65
72
|
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
<script>
|
|
2
2
|
import SeaweedTemplate from "$pkg/template/Seaweed/SeaweedTemplate.svelte";
|
|
3
|
-
|
|
4
|
-
export let metaWebsite = "https://www.crouton.com/test/portfolio-base-layout";
|
|
5
|
-
|
|
6
3
|
</script>
|
|
7
4
|
|
|
8
5
|
<!--todo: maybe add check that this is always false? -->
|
|
9
|
-
<SeaweedTemplate letChaos={
|
|
6
|
+
<SeaweedTemplate letChaos={false}></SeaweedTemplate>
|