Add ad_astra post

This commit is contained in:
schmelczerandras 2020-08-10 19:07:50 +02:00
parent a8e6cdffd6
commit fb044bc122
20 changed files with 66 additions and 428 deletions

3
.gitattributes vendored Normal file
View file

@ -0,0 +1,3 @@
# Auto detect text files and perform LF normalization
* text=auto
*static/media/* filter=lfs diff=lfs merge=lfs -text

12
.idea/CompiledCV.iml generated
View file

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View file

@ -1,39 +0,0 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<option name="LINE_SEPARATOR" value="&#10;" />
<JSCodeStyleSettings version="0">
<option name="FORCE_SEMICOLON_STYLE" value="true" />
<option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
<option name="USE_DOUBLE_QUOTES" value="false" />
<option name="FORCE_QUOTE_STYlE" value="true" />
<option name="ENFORCE_TRAILING_COMMA" value="WhenMultiline" />
<option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
<option name="SPACES_WITHIN_IMPORTS" value="true" />
</JSCodeStyleSettings>
<TypeScriptCodeStyleSettings version="0">
<option name="FORCE_SEMICOLON_STYLE" value="true" />
<option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
<option name="USE_DOUBLE_QUOTES" value="false" />
<option name="FORCE_QUOTE_STYlE" value="true" />
<option name="ENFORCE_TRAILING_COMMA" value="WhenMultiline" />
<option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
<option name="SPACES_WITHIN_IMPORTS" value="true" />
</TypeScriptCodeStyleSettings>
<codeStyleSettings language="JavaScript">
<option name="SOFT_MARGINS" value="80" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="TypeScript">
<option name="SOFT_MARGINS" value="80" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
</code_scheme>
</component>

View file

@ -1,5 +0,0 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>

View file

@ -1,25 +0,0 @@
<component name="ProjectDictionaryState">
<dictionary name="Schme">
<words>
<w>contenthash</w>
<w>cybersecurity</w>
<w>europass</w>
<w>ffffff</w>
<w>gifsicle</w>
<w>imagemin</w>
<w>jpegtran</w>
<w>lato</w>
<w>markwon</w>
<w>mozjpeg</w>
<w>noquotes</w>
<w>opacify</w>
<w>optipng</w>
<w>pngquant</w>
<w>raleway</w>
<w>screenshot</w>
<w>transparentize</w>
<w>webm</w>
<w>webp</w>
</words>
</dictionary>
</component>

View file

@ -1,12 +0,0 @@
<component name="ProjectDictionaryState">
<dictionary name="andras">
<words>
<w>andrás</w>
<w>deltatime</w>
<w>forex</w>
<w>schmelczer</w>
<w>vitaes</w>
<w>önéletrajz</w>
</words>
</dictionary>
</component>

View file

@ -1,9 +0,0 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="CssInvalidAtRule" enabled="false" level="ERROR" enabled_by_default="false" />
<inspection_tool class="CssInvalidFunction" enabled="false" level="ERROR" enabled_by_default="false" />
<inspection_tool class="JSBitwiseOperatorUsage" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="SassScssResolvedByNameOnly" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
</profile>
</component>

6
.idea/misc.xml generated
View file

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
</project>

8
.idea/modules.xml generated
View file

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/CompiledCV.iml" filepath="$PROJECT_DIR$/.idea/CompiledCV.iml" />
</modules>
</component>
</project>

7
.idea/vagrant.xml generated
View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VagrantProjectSettings">
<option name="instanceFolder" value="" />
<option name="provider" value="" />
</component>
</project>

6
.idea/vcs.xml generated
View file

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

85
.idea/watcherTasks.xml generated
View file

@ -1,85 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectTasksOptions" suppressed-tasks="SCSS">
<TaskOptions isEnabled="true">
<option name="arguments" value="--write $FilePathRelativeToProjectRoot$" />
<option name="checkSyntaxErrors" value="true" />
<option name="description" />
<option name="exitCodeBehavior" value="ERROR" />
<option name="fileExtension" value="js" />
<option name="immediateSync" value="false" />
<option name="name" value="Prettier" />
<option name="output" value="$FilePathRelativeToProjectRoot$" />
<option name="outputFilters">
<array />
</option>
<option name="outputFromStdout" value="false" />
<option name="program" value="$ProjectFileDir$/node_modules/.bin/prettier" />
<option name="runOnExternalChanges" value="true" />
<option name="scopeName" value="Project Files" />
<option name="trackOnlyRoot" value="false" />
<option name="workingDir" value="$ProjectFileDir$" />
<envs />
</TaskOptions>
<TaskOptions isEnabled="true">
<option name="arguments" value="--write $FilePathRelativeToProjectRoot$" />
<option name="checkSyntaxErrors" value="true" />
<option name="description" />
<option name="exitCodeBehavior" value="ERROR" />
<option name="fileExtension" value="xhtml" />
<option name="immediateSync" value="false" />
<option name="name" value="Prettier" />
<option name="output" value="$FilePathRelativeToProjectRoot$" />
<option name="outputFilters">
<array />
</option>
<option name="outputFromStdout" value="false" />
<option name="program" value="$ProjectFileDir$/node_modules/.bin/prettier" />
<option name="runOnExternalChanges" value="true" />
<option name="scopeName" value="Project Files" />
<option name="trackOnlyRoot" value="false" />
<option name="workingDir" value="$ProjectFileDir$" />
<envs />
</TaskOptions>
<TaskOptions isEnabled="true">
<option name="arguments" value="--write $FilePathRelativeToProjectRoot$" />
<option name="checkSyntaxErrors" value="true" />
<option name="description" />
<option name="exitCodeBehavior" value="ERROR" />
<option name="fileExtension" value="ts" />
<option name="immediateSync" value="false" />
<option name="name" value="Prettier" />
<option name="output" value="$FilePathRelativeToProjectRoot$" />
<option name="outputFilters">
<array />
</option>
<option name="outputFromStdout" value="false" />
<option name="program" value="$ProjectFileDir$/node_modules/.bin/prettier" />
<option name="runOnExternalChanges" value="true" />
<option name="scopeName" value="Project Files" />
<option name="trackOnlyRoot" value="false" />
<option name="workingDir" value="$ProjectFileDir$" />
<envs />
</TaskOptions>
<TaskOptions isEnabled="true">
<option name="arguments" value="--write $FilePathRelativeToProjectRoot$" />
<option name="checkSyntaxErrors" value="true" />
<option name="description" />
<option name="exitCodeBehavior" value="ERROR" />
<option name="fileExtension" value="scss" />
<option name="immediateSync" value="false" />
<option name="name" value="Prettier" />
<option name="output" value="$FilePathRelativeToProjectRoot$" />
<option name="outputFilters">
<array />
</option>
<option name="outputFromStdout" value="false" />
<option name="program" value="$ProjectFileDir$/node_modules/.bin/prettier" />
<option name="runOnExternalChanges" value="true" />
<option name="scopeName" value="Project Files" />
<option name="trackOnlyRoot" value="false" />
<option name="workingDir" value="$ProjectFileDir$" />
<envs />
</TaskOptions>
</component>
</project>

197
.idea/workspace.xml generated
View file

@ -1,197 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="8edc47ab-1265-4111-9771-536b24cc9310" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/src/static/cv/andras_schmelczer_cv.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/portfolio.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/portfolio.ts" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="JavaScript File" />
<option value="HTML File" />
<option value="TypeScript File" />
</list>
</option>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="HighlightingSettingsPerFile">
<setting file="file://$PROJECT_DIR$/src/style/configured-responsive.scss" root0="FORCE_HIGHLIGHTING" />
</component>
<component name="ProjectId" id="1UhDrRKewMzhTrQJ4npWjp729uJ" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true">
<ConfirmationsSetting value="2" id="Add" />
</component>
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showExcludedFiles" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="ASKED_ADD_EXTERNAL_FILES" value="true" />
<property name="DefaultHtmlFileTemplate" value="HTML File" />
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="ignore_missing_gitignore" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="node.js.detected.package.stylelint" value="true" />
<property name="node.js.path.for.package.stylelint" value="project" />
<property name="node.js.selected.package.stylelint" value="" />
<property name="nodejs_package_manager_path" value="npm" />
<property name="prettierjs.PrettierConfiguration.Package" value="/usr/local/lib/node_modules/prettier" />
<property name="run.code.analysis.last.selected.profile" value="pProject Default" />
<property name="settings.editor.selected.configurable" value="preferences.updates" />
<property name="ts.external.directory.path" value="$PROJECT_DIR$/node_modules/typescript/lib" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/src/static/cv" />
<recent name="$PROJECT_DIR$/src/page/background" />
<recent name="C:\Projects\portfolio\CompiledCV\src\page\background" />
<recent name="C:\Projects\portfolio\CompiledCV\src\static" />
<recent name="C:\Projects\portfolio\CompiledCV\src\static\icons" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/src/framework/events" />
<recent name="$PROJECT_DIR$/src/framework/model" />
<recent name="$PROJECT_DIR$/src/framework/styles/dark-mode" />
<recent name="$PROJECT_DIR$/src/framework/styles" />
<recent name="$PROJECT_DIR$/src/framework/helper/animations" />
</key>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="8edc47ab-1265-4111-9771-536b24cc9310" name="Default Changelist" comment="" />
<created>1575800131097</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1575800131097</updated>
<workItem from="1575800132288" duration="1444000" />
<workItem from="1576164066512" duration="3000" />
<workItem from="1576250286627" duration="24922000" />
<workItem from="1576342852221" duration="24000" />
<workItem from="1576352253939" duration="353000" />
<workItem from="1576748546157" duration="9887000" />
<workItem from="1576834875857" duration="16037000" />
<workItem from="1576871267880" duration="2613000" />
<workItem from="1576914921042" duration="13644000" />
<workItem from="1576958819998" duration="3247000" />
<workItem from="1577001408085" duration="15739000" />
<workItem from="1577040021962" duration="1657000" />
<workItem from="1577088438195" duration="19038000" />
<workItem from="1577271824791" duration="7691000" />
<workItem from="1577282613892" duration="11050000" />
<workItem from="1577348003642" duration="4876000" />
<workItem from="1577451432189" duration="11000" />
<workItem from="1577469180612" duration="18000" />
<workItem from="1577526744211" duration="46374000" />
<workItem from="1577639259221" duration="3798000" />
<workItem from="1577662869335" duration="6536000" />
<workItem from="1577702567470" duration="3227000" />
<workItem from="1577786195424" duration="4310000" />
<workItem from="1578128234878" duration="396000" />
<workItem from="1578128641780" duration="1136000" />
<workItem from="1578140662891" duration="4319000" />
<workItem from="1578213355277" duration="599000" />
<workItem from="1578327147961" duration="16067000" />
<workItem from="1578383579118" duration="5883000" />
<workItem from="1578391423465" duration="34000" />
<workItem from="1578392333248" duration="21735000" />
<workItem from="1578472848376" duration="13670000" />
<workItem from="1578556192921" duration="3098000" />
<workItem from="1578559306201" duration="8231000" />
<workItem from="1578641947739" duration="28021000" />
<workItem from="1578727663054" duration="2241000" />
<workItem from="1578731179373" duration="13801000" />
<workItem from="1578769440356" duration="1142000" />
<workItem from="1578775328528" duration="93000" />
<workItem from="1578775485718" duration="527000" />
<workItem from="1578814887967" duration="1959000" />
<workItem from="1578817329583" duration="2069000" />
<workItem from="1578831427111" duration="7110000" />
<workItem from="1578858690755" duration="133000" />
<workItem from="1580314868144" duration="1107000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State>
<option name="COLUMN_ORDER" />
</State>
</value>
</entry>
</map>
</option>
</component>
<component name="VcsManagerConfiguration">
<option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" />
</component>
<component name="WindowStateProjectService">
<state x="1629" y="108" width="571" height="897" key="#Dockerfile" timestamp="1578745273332">
<screen x="0" y="27" width="2560" height="1053" />
</state>
<state x="1629" y="108" width="571" height="897" key="#Dockerfile/0.27.2560.1053@0.27.2560.1053" timestamp="1578745273332" />
<state x="1515" y="215" width="800" height="684" key="#Inspections" timestamp="1578563668907">
<screen x="0" y="27" width="2560" height="1053" />
</state>
<state x="1515" y="215" width="800" height="684" key="#Inspections/0.27.2560.1053@0.27.2560.1053" timestamp="1578563668907" />
<state x="1515" y="215" width="800" height="684" key="#Plugins" timestamp="1578749197331">
<screen x="0" y="27" width="2560" height="1053" />
</state>
<state x="1515" y="215" width="800" height="684" key="#Plugins/0.27.2560.1053@0.27.2560.1053" timestamp="1578749197331" />
<state x="1648" y="359" width="552" height="417" key="#com.intellij.fileTypes.FileTypeChooser" timestamp="1578746105174">
<screen x="0" y="27" width="2560" height="1053" />
</state>
<state x="1648" y="359" width="552" height="417" key="#com.intellij.fileTypes.FileTypeChooser/0.27.2560.1053@0.27.2560.1053" timestamp="1578746105174" />
<state x="1653" y="303" width="524" height="508" key="#com.intellij.refactoring.safeDelete.UnsafeUsagesDialog" timestamp="1578646728957">
<screen x="0" y="27" width="2560" height="1053" />
</state>
<state x="1653" y="303" width="524" height="508" key="#com.intellij.refactoring.safeDelete.UnsafeUsagesDialog/0.27.2560.1053@0.27.2560.1053" timestamp="1578646728957" />
<state x="1664" y="411" width="502" height="292" key="ANALYSIS_DLG_com.intellij.analysis.BaseAnalysisAction$1" timestamp="1578563647005">
<screen x="0" y="27" width="2560" height="1053" />
</state>
<state x="1664" y="411" width="502" height="292" key="ANALYSIS_DLG_com.intellij.analysis.BaseAnalysisAction$1/0.27.2560.1053@0.27.2560.1053" timestamp="1578563647005" />
<state x="1171" y="27" width="1080" height="853" maximized="true" key="DiffContextDialog" timestamp="1578738442479">
<screen x="0" y="27" width="2560" height="1053" />
</state>
<state x="1171" y="27" width="1080" height="853" maximized="true" key="DiffContextDialog/0.27.2560.1053@0.27.2560.1053" timestamp="1578738442479" />
<state x="1703" y="311" width="424" height="491" key="FileChooserDialogImpl" timestamp="1578858821740">
<screen x="0" y="27" width="2560" height="1053" />
</state>
<state x="1703" y="311" width="424" height="491" key="FileChooserDialogImpl/0.27.2560.1053@0.27.2560.1053" timestamp="1578858821740" />
<state x="1072" y="473" width="415" height="167" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2" timestamp="1578855911005">
<screen x="0" y="27" width="2560" height="1053" />
</state>
<state x="1072" y="473" width="415" height="167" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2/0.27.2560.1053@0.27.2560.1053" timestamp="1578855911005" />
<state x="2130" y="404" width="969" height="749" key="dock-window-1" timestamp="1578731230649">
<screen x="0" y="27" width="2560" height="1053" />
</state>
<state x="2130" y="404" width="969" height="749" key="dock-window-1/0.27.2560.1053@0.27.2560.1053" timestamp="1578731230649" />
<state x="1603" y="289" width="774" height="677" key="find.popup" timestamp="1578740080122">
<screen x="0" y="27" width="2560" height="1053" />
</state>
<state x="1603" y="289" width="774" height="677" key="find.popup/0.27.2560.1053@0.27.2560.1053" timestamp="1578740080122" />
<state x="943" y="259" width="672" height="678" key="search.everywhere.popup" timestamp="1578749177327">
<screen x="0" y="27" width="2560" height="1053" />
</state>
<state x="943" y="259" width="672" height="678" key="search.everywhere.popup/0.27.2560.1053@0.27.2560.1053" timestamp="1578749177327" />
</component>
</project>

View file

@ -5,5 +5,10 @@ An easily configurable portfolio.
> [Click for live version](https://schmelczer.dev)
## Configuration
- The actual content is in [portfolio.ts](src/portfolio.ts).
- The assets referenced by that file should be located in [src/static](src/static).
- The actual content is in [portfolio.ts](src/portfolio.ts)
- The assets referenced by that file should be located in [src/static](src/static)
## Build
1. `npm install`
2. `npm run build`
3. You can find the results [here](dist)

View file

@ -33,30 +33,30 @@
],
"homepage": "https://github.com/schmelczerandras/timeline#readme",
"devDependencies": {
"autoprefixer": "^9.7.3",
"autoprefixer": "^9.7.6",
"clean-webpack-plugin": "^3.0.0",
"css-loader": "^3.4.0",
"file-loader": "^5.0.2",
"css-loader": "^3.5.2",
"cssnano": "latest",
"file-loader": "^5.1.0",
"html-webpack-inline-source-plugin": "0.0.10",
"html-webpack-plugin": "^3.2.0",
"image-webpack-loader": "^6.0.0",
"mini-css-extract-plugin": "^0.9.0",
"sass": "^1.24.2",
"optimize-css-assets-webpack-plugin": "^5.0.3",
"postcss-loader": "^3.0.0",
"prettier": "^1.19.1",
"resolve-url-loader": "^3.1.1",
"responsive-loader": "^1.2.0",
"sass-loader": "^8.0.0",
"sass": "^1.26.3",
"sass-loader": "^8.0.2",
"sharp": "^0.23.4",
"style-loader": "^1.0.2",
"style-loader": "^1.1.4",
"svg-url-loader": "^3.0.3",
"terser-webpack-plugin": "^2.3.1",
"ts-loader": "^6.2.1",
"typescript": "^3.7.3",
"webpack": "^4.41.4",
"webpack-cli": "^3.3.10",
"webpack-dev-server": "^3.10.1",
"cssnano": "latest"
"terser-webpack-plugin": "^2.3.5",
"ts-loader": "^6.2.2",
"typescript": "^3.8.3",
"webpack": "^4.43.0",
"webpack-cli": "^3.3.11",
"webpack-dev-server": "^3.10.3"
}
}

View file

@ -4,9 +4,14 @@ import { Image } from './framework/primitives/implementations/image';
import { Video } from './framework/primitives/implementations/video';
import { Anchor } from './framework/primitives/implementations/anchor';
import { last } from './framework/helper/last';
import me from './static/media/me.jpg';
import forexMP4 from './static/media/forex.mp4';
import forexWEBM from './static/media/forex.webm';
import adAstraMP4 from './static/media/ad_astra_720.mp4';
import adAstraWEBM from './static/media/ad_astra_720.webm';
import ad_astra_index from './static/media/ad_astra.jpg';
import myNotes from './static/media/my-notes.png';
import processSimulator from './static/media/process-simulator.jpg';
import processSimulatorInput from './static/media/process-simulator-input.jpg';
@ -19,7 +24,6 @@ import cvHungarian from './static/cv/schmelczer_andras_cv.pdf';
import cvEnglish from './static/cv/andras_schmelczer_cv.pdf';
import ledMP4 from './static/media/led.mp4';
import ledWEBM from './static/media/led.webm';
import { last } from './framework/helper/last';
export const portfolio: Portfolio = {
header: {
@ -41,6 +45,43 @@ export const portfolio: Portfolio = {
showMoreText: `Show details`,
showLessText: `Show less`,
elements: [
{
title: `Video game on an ATtiny85`,
date: `2020 Spring`,
figure: new Video(
last(ad_astra_index.images).path,
adAstraMP4,
adAstraWEBM,
`controls playsinline preload="none"`
),
description: new Text(
`A simple game engine with a sample game set in space. The greatest challenge was to overcome
the very limited resources of the hardware, this was also the most rewarding part.`
),
more: [
new Text(
`For reducing complexity while maintaining performance a balance had to be found between object-oriented
and structural programming. For example, a simple prototype-based inheritance is used for the game objects.
An optimized SIMD utilizing low level driver is used for drawing on the display.
I think the code base is quite readable and at the same time the
maximum frame times are between 15ms and 20ms at 8MHz.`
),
new Text(
`As for the hardware, it is rather simple. Aside from the ATtiny85V, a D096-12864-SPI7 display is used for
output and a TSOP4838 for input. The circuit runs on 3.3V, so a regulator is also needed. It uses a current
of 8mA to 11mA on full brightness and around 1.5mA on standby mode.`
),
new Text(
`There is also fault-tolerant persistent data storage using the built-in EEPROM.
For creating sprites (which are also stored in EEPROM) I made a tool to convert PNG-s into C code.
This can also be found on GitHub as well as the entire project.`
),
new Anchor(
`https://github.com/schmelczerandras/ad_astra`,
`View it on GitHub`
),
],
},
{
title: `Predicting foreign exchange rates`,
date: `2019 Autumn`,
@ -247,7 +288,7 @@ export const portfolio: Portfolio = {
],
email: `andras@schmelczer.dev`,
lastEditText: `Last modified on `,
lastEdit: new Date(2020, 0, 29), // months are 0 indexed
lastEdit: new Date(2020, 3, 21), // months are 0 indexed
gitHub: new Anchor(
`https://github.com/schmelczerandras/timeline`,
`Find this on GitHub`

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 555 KiB