diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..c64420a --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +# Auto detect text files and perform LF normalization +* text=auto +*static/media/* filter=lfs diff=lfs merge=lfs -text diff --git a/.idea/CompiledCV.iml b/.idea/CompiledCV.iml deleted file mode 100644 index 24643cc..0000000 --- a/.idea/CompiledCV.iml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml deleted file mode 100644 index aa3f0aa..0000000 --- a/.idea/codeStyles/Project.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml deleted file mode 100644 index 79ee123..0000000 --- a/.idea/codeStyles/codeStyleConfig.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/dictionaries/Schme.xml b/.idea/dictionaries/Schme.xml deleted file mode 100644 index e029f94..0000000 --- a/.idea/dictionaries/Schme.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - contenthash - cybersecurity - europass - ffffff - gifsicle - imagemin - jpegtran - lato - markwon - mozjpeg - noquotes - opacify - optipng - pngquant - raleway - screenshot - transparentize - webm - webp - - - \ No newline at end of file diff --git a/.idea/dictionaries/andras.xml b/.idea/dictionaries/andras.xml deleted file mode 100644 index af0839e..0000000 --- a/.idea/dictionaries/andras.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - andrás - deltatime - forex - schmelczer - vitaes - önéletrajz - - - \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml deleted file mode 100644 index 0213191..0000000 --- a/.idea/inspectionProfiles/Project_Default.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 28a804d..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 74189d9..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vagrant.xml b/.idea/vagrant.xml deleted file mode 100644 index a5aa786..0000000 --- a/.idea/vagrant.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/watcherTasks.xml b/.idea/watcherTasks.xml deleted file mode 100644 index aaea7ba..0000000 --- a/.idea/watcherTasks.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml deleted file mode 100644 index 660c859..0000000 --- a/.idea/workspace.xml +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1575800131097 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/README.md b/README.md index 73bd2bb..d3db1cc 100644 --- a/README.md +++ b/README.md @@ -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) diff --git a/package.json b/package.json index c7ebb43..eb7956d 100644 --- a/package.json +++ b/package.json @@ -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" } } diff --git a/src/portfolio.ts b/src/portfolio.ts index 7e02c8f..b13aa99 100644 --- a/src/portfolio.ts +++ b/src/portfolio.ts @@ -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` diff --git a/src/static/media/ad_astra.jpg b/src/static/media/ad_astra.jpg new file mode 100644 index 0000000..1cb52dd Binary files /dev/null and b/src/static/media/ad_astra.jpg differ diff --git a/src/static/media/ad_astra_720.mp4 b/src/static/media/ad_astra_720.mp4 new file mode 100644 index 0000000..dbc810c Binary files /dev/null and b/src/static/media/ad_astra_720.mp4 differ diff --git a/src/static/media/ad_astra_720.webm b/src/static/media/ad_astra_720.webm new file mode 100644 index 0000000..8a9bb47 Binary files /dev/null and b/src/static/media/ad_astra_720.webm differ diff --git a/src/static/media/me-2.jpg b/src/static/media/me-2.jpg deleted file mode 100644 index 16e1ab4..0000000 Binary files a/src/static/media/me-2.jpg and /dev/null differ