Tony Narlock's CV
Version 2 underway!
Let's see what's the latest and greatest for both of these.
This time we're using typescript and wiring-in webpack from the ground up.
$ yarn # Optional: Sync GitHub contributions to data/scraped/ $ yarn github # Assure GITHUB_API_TOKEN is set # React $ cd packages/react/ $ yarn start # Vue $ cd packages/vue/ $ yarn start # Angular $ cd packages/angular/ $ yarn global add @angular/cli $ yarn start # inside any of the 3, to build: $ yarn build # Build to dist/
Optional: Pull GitHub contributions
This isn't required as stub data preexists in
Create a GitHub Personal Access Token and set it in env, ideally .bashrc / .zshrc
/ etc. via
export GITHUB_API_TOKEN=INSERT_TOKEN_HERE. Check
env | grep GITHUB_API to verify
terminal has the variable set.
Edit your username in
packages/scripts/github.ts and run
yarn github in the
Project specific tasks
react, vue, angular
Start dev server / live reload:
Package updates (requires ncu):
yarn ncu # Apply package updates to `package.json` yarn ncu -u
Download latest github color mapping:
$ yarn workspace @tony/cv-data run github-colors
Run jest tests
yarn workspace @tony/cv-lib run jest
Install all packages:
Lint all packages:
yarn workspaces run lint
packages/lib/: Common code (reducers/filters code, initial data collections)
lib/search.ts- Search manager for filtering / faceting state. Each application uses this to hold raw state (of all activities, places), current filters, and filters/items available with filters applied.
This essentially replaces what a global storage, such as redux/vuex. So there's no need to have three systems. And this is custom tailored to the job being done. Which in a sense increases readability.
It has write inherent write protection and safety as it's just an ordinary ES2015 class
packages/scripts/: GitHub Scraper
packages/data/: initial data
- my_actors.json: Actors noun, person, place, thing, etc.
- my_activities.json: Activities verb, action, event, happening in relation to an actor
- scraped/: data pulled from remote API's (such as scripts/github.js)
- gh_activities.json: Pull requests for users except yourself / your own repos. Same format as my_activities.json, combined.
- gh_actors.json: GitHub Repos. Same schema as my_actors.json), combined.
Version 2 (Under development)
Written from scratch
No vue-cli or create-react-app
Better understanding, control of what's being used
Spin-off core webpack starter projects. MIT licensed. Fork to add your own loaders / wire-in to your project:
Typed webpack configuration (webpack.config.ts)
React: Typed components
Libraries / Common code: Typed Github commit fetcher
Libraries / Common code: Typed data structures
Lazy loaded, split chunks, smart initialization
Utilize new splitting, dynamic import,
React.lazysupport in Webpack 4.x (https://webpack.js.org/guides/code-splitting/)
Care taken to load essential stuff first and packages like moment (in itself split) last. Some experimentation is done here to find a balance of how to present the interface initially and can be tweaked overtime.
Internal data props using underscores now are camelCase, e.g. repo_url -> repoUrl