diff --git a/.github/workflows/awesome.yml b/.github/workflows/awesome.yml new file mode 100644 index 0000000..e58b6a6 --- /dev/null +++ b/.github/workflows/awesome.yml @@ -0,0 +1,71 @@ +name: Awesome + +on: + schedule: + # * is a special character in YAML so you have to quote this string + - cron: '0 1,12 * * *' + +jobs: + awesome: + name: Awesome + runs-on: ubuntu-latest + + steps: + - name: Checkout 🛎️ + uses: actions/checkout@v2 + with: + ref: dev + # TODO: find a way to checkout main branch with a shallow clone + fetch-depth: 0 + + - name: Cache node modules + uses: actions/cache@v2 + env: + cache-name: cache-node-modules + with: + path: '**/node_modules' + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-build-${{ env.cache-name }}- + ${{ runner.os }}-build- + ${{ runner.os }}- + + - name: Install dependencies + run: | + yarn install + + - name: Build packages + run: | + yarn build + + - name: Run tests + run: | + yarn lerna run test + + - name: Run awesome script + run: | + ./awesome.sh --copy --force --path temp + + - name: Configure git + run: | + git config --global user.email "jakpat.m@gmail.com" + git config --global user.name "WhatTheFar" + + - name: Checkout main branch + run: | + git checkout main + git fetch --all + git reset --hard origin/main + + - name: Copy generated contents + run: | + rm -rf content && cp -r ./temp/* . + + - name: Amend git commit + run: | + git add . + git commit --amend --no-edit + + - name: Force push!!! + run: | + git push --force origin main diff --git a/README.md b/README.md index 391faee..fdab931 100644 --- a/README.md +++ b/README.md @@ -15,16 +15,29 @@ - [My Programming Skills](#my-programming-skills) - [Developer](#developer) - [Android](#android) + - [Backend Go](#backend-go) + - [Logging](#logging) + - [ORM](#orm) + - [Utility](#utility) + - [Web Framework](#web-framework) - [Backend](#backend) - [Communicating](#communicating) + - [Protocol Buffer](#protocol-buffer) - [Database](#database) - [Flutter](#flutter) + - [Frontend CSS](#frontend-css) + - [Frontend React](#frontend-react) + - [Animation](#animation) + - [Icon](#icon) + - [State Management](#state-management) + - [Utilities](#utilities) + - [Frontend Vue](#frontend-vue) + - [State Management](#state-management) - [Frontend](#frontend) - - [Build Tool](#build-tool) - - [CSS](#css) + - [Animation](#animation) + - [Bundler](#bundler) + - [Dev server](#dev-server) - [Framework](#framework) - - [Framework React](#framework-react) - - [Framework Vue](#framework-vue) - [Language](#language) - [Library](#library) - [Principle](#principle) @@ -118,6 +131,51 @@ [Back to Top](#table-of-contents) +## Backend Go + +| Title | Expertise Level | +| :----------------------------------------- | :-------------: | +| [gRPC-Go](https://github.com/grpc/grpc-go) | Advanced | + +[Back to Top](#table-of-contents) + +### Logging + +| Title | Expertise Level | +| :------------------------------------ | :-------------: | +| [zap](https://github.com/uber-go/zap) | Intermediate | + +[Back to Top](#table-of-contents) + +### ORM + +| Title | Expertise Level | +| :-------------------------------------- | :-------------: | +| [ent](https://github.com/ent/entt) | Intermediate | +| [go-pg](https://github.com/go-pg/pg) | Intermediate | +| [GORM](https://github.com/go-gorm/gorm) | Intermediate | + +[Back to Top](#table-of-contents) + +### Utility + +| Title | Expertise Level | +| :------------------------------------------------------ | :-------------: | +| [errors](https://github.com/pkg/errors) | Advanced | +| [automaxprocs](https://github.com/uber-go/automaxprocs) | Intermediate | +| Viper | Intermediate | + +[Back to Top](#table-of-contents) + +### Web Framework + +| Title | Expertise Level | +| :-------------------------------------------- | :-------------: | +| [Fiber](https://github.com/gofiber/fiber) | Intermediate | +| [gorilla/mux](https://github.com/gorilla/mux) | Intermediate | + +[Back to Top](#table-of-contents) + ### Backend | Title | Expertise Level | @@ -126,8 +184,9 @@ | Django Rest Framework | Intermediate | | Express.js | Advanced | | [grpc-gateway](https://github.com/grpc-ecosystem/grpc-gateway) | Advanced | -| [gRPC-Go](https://github.com/grpc/grpc-go) | Advanced | | NestJS | Advanced | +| Prisma | Advanced | +| Prisma2 | Novice | | GraphQL | Advanced | | gRPC | Advanced | | Firebase | Intermediate | @@ -135,7 +194,7 @@ [Back to Top](#table-of-contents) -### Communicating +## Communicating | Title | Expertise Level | | :----------------- | :-------------: | @@ -147,15 +206,23 @@ [Back to Top](#table-of-contents) +### Protocol Buffer + +| Title | Expertise Level | +| :----------------- | :-------------: | +| Protocol Buffers 3 | Proficient | + +[Back to Top](#table-of-contents) + ### Database | Title | Expertise Level | | :--------- | :-------------: | +| Prisma | Advanced | +| Prisma2 | Novice | | Firebase | Intermediate | | MongoDB | Advanced | | PostgreSQL | Intermediate | -| Prisma | Advanced | -| Prisma2 | Novice | | Realm | Intermediate | [Back to Top](#table-of-contents) @@ -168,6 +235,66 @@ [Back to Top](#table-of-contents) +### Frontend CSS + +| Title | Expertise Level | +| :---------------------------------------------------------- | :-------------: | +| CSS | Intermediate | +| [Tailwind CSS](https://github.com/tailwindlabs/tailwindcss) | Intermediate | + +[Back to Top](#table-of-contents) + +## Frontend React + +### Animation + +| Title | Expertise Level | +| :----------------------------------------------------- | :-------------: | +| [Framer Motion](https://github.com/framer/motion) | Intermediate | +| [react-spring](https://github.com/pmndrs/react-spring) | Intermediate | + +[Back to Top](#table-of-contents) + +### Icon + +| Title | Expertise Level | +| :-------------------------------------------------------- | :-------------: | +| [React Icons](https://github.com/react-icons/react-icons) | Intermediate | + +[Back to Top](#table-of-contents) + +### State Management + +| Title | Expertise Level | +| :------------------------------------------------------- | :-------------: | +| [Jotai](https://github.com/pmndrs/jotai) | Intermediate | +| [Redux](https://github.com/reduxjs/redux) | Intermediate | +| [Redux Tookit](https://github.com/reduxjs/redux-toolkit) | Intermediate | +| [redux-saga](https://github.com/redux-saga/redux-saga) | Intermediate | +| [Zustand](https://github.com/pmndrs/zustand) | Intermediate | +| [SWR](https://github.com/vercel/swr) | Intermediate | + +[Back to Top](#table-of-contents) + +### Utilities + +| Title | Expertise Level | +| :-------------------------------------------------- | :-------------: | +| [react-use](https://github.com/streamich/react-use) | Intermediate | +| [SWR](https://github.com/vercel/swr) | Intermediate | + +[Back to Top](#table-of-contents) + +## Frontend Vue + +### State Management + +| Title | Expertise Level | +| :------------------------------------ | :-------------: | +| [Vuex](https://github.com/vuejs/vuex) | Intermediate | + +[Back to Top](#table-of-contents) + ## Frontend | Title | Expertise Level | @@ -178,7 +305,15 @@ [Back to Top](#table-of-contents) -### Build Tool +### Animation + +| Title | Expertise Level | +| :-------------------------------------- | :-------------: | +| [LottieFiles](https://lottiefiles.com/) | Intermediate | + +[Back to Top](#table-of-contents) + +### Bundler | Title | Expertise Level | | :---- | :-------------: | @@ -186,12 +321,11 @@ [Back to Top](#table-of-contents) -### CSS +### Dev server -| Title | Expertise Level | -| :----------- | :-------------: | -| CSS | Intermediate | -| Tailwind CSS | Intermediate | +| Title | Expertise Level | +| :---- | :-------------: | +| Vite | Intermediate | [Back to Top](#table-of-contents) @@ -200,27 +334,12 @@ | Title | Expertise Level | | :------ | :-------------: | | Angular | Intermediate | +| Apollo | Intermediate | | React | Advanced | | Vue.js | Intermediate | [Back to Top](#table-of-contents) -### Framework React - -| Title | Expertise Level | -| :---- | :-------------: | -| React | Advanced | - -[Back to Top](#table-of-contents) - -### Framework Vue - -| Title | Expertise Level | -| :----- | :-------------: | -| Vue.js | Intermediate | - -[Back to Top](#table-of-contents) - ### Language | Title | Expertise Level | @@ -274,7 +393,7 @@ | Title | Expertise Level | | :----------------------------------------------------------- | :-------------: | | Alfred | - | -| [Fork](https://git-fork.com/) | - | +| [Fork](https://git-fork.com) | - | | iTerm | - | | [Lens - The Kubernetes IDE](https://github.com/lensapp/lens) | - | | Neovim | Enthusiasm | @@ -314,6 +433,7 @@ | [Docker](https://www.docker.com/) | Advanced | | [docker-compose](https://github.com/docker/compose) | Advanced | | [Podman](https://github.com/containers/podman) | Novice | +| [Tini](https://github.com/krallin/tini) | Novice | [Back to Top](#table-of-contents) diff --git a/generated/book.md b/generated/book.md index 86903bd..bd7aa9b 100644 --- a/generated/book.md +++ b/generated/book.md @@ -24,46 +24,58 @@ ### Programming Book -| Book | Gene Kim | Done | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------ | :--: | -| The Go Programming Language (Addison-Wesley Professional Computing Series) | Alan A. A. Donovan and Brian Kernighan | | -| Think Bayes: Bayesian Statistics in Python | Allen B. Downey | | -| Think Python: An Introduction to Software Design | Allen B. Downey | | -| Think Stats: Probability and Statistics for Programmers | Allen B. Downey | | -| Practical Statistics for Data Scientists: 50 Essential Concepts | Andrew Bruce and Peter C. Bruce | | -| The Pragmatic Programmer: From Journeyman to Master | Andy Hunt and Dave Thomas | | -| Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems (2nd Edition) | Aurélien Géron | 70% | -| Category Theory for Programmer | Bartosz Milewski | | -| [Site Reliability Engineering: How Google Runs Production Systems](https://landing.google.com/sre/books/) | Betsy Beyer, Chris Jones, Jennifer Petoff, and Niall Richard Murphy | | -| [Professor Frisby's Mostly Adequate Guide to Functional Programming](https://github.com/MostlyAdequate/mostly-adequate-guide) | Brian Lonsdorf | ✓ | -| Docker for Serverless Applications | Chanwit Kaewkasi | | -| Domain-Driven Design: Tackling Complexity in the Heart of Software | Eric J. Evans | | -| Design Patterns: Elements of Reusable Object-Oriented Software | Erich Gamma, John Vlissides, Ralph Johnson, and Richard Helm | | -| R for Data Science: Import, Tidy, Transform, Visualize, and Model Data | Garrett Grolemund and Hadley Wickham | | -| Cracking the Coding Interview: 189 Programming Questions and Solutions | Gayle Laakmann McDowell | | -| The Unicorn Project: A Novel about Developers, Digital Disruption, and Thriving in the Age of Data | Gene Kim | | -| Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations | Gene Kim and Nicole Forsgren | | -| The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win | Gene Kim, George Spafford, and Kevin Behr | | -| Python Data Science Handbook: Essential Tools for Working with Data | Jake VanderPlas | | -| Computer Networking: A Top-Down Approach | Jim Kurose | ✓ | -| Programming Pearls (2nd Edition) | Jon Bentley | | -| [Eloquent JavaScript: A Modern Introduction to Programming](https://eloquentjavascript.net/) | Marijn Haverbeke | | -| Domain-Specific Languages (Addison-Wesley Signature Series (Fowler)) | Martin Fowler | | -| Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler)) | Martin Fowler | | -| Refactoring: Improving the Design of Existing Code (2nd Edition) (Addison-Wesley Signature Series (Fowler)) | Martin Fowler | 20% | -| Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems | Martin Kleppmann | | -| Agile Estimating and Planning | Mike Cohn | | -| [Clean Agile: Back to Basics (Robert C. Martin Series)](https://www.amazon.com/Clean-Agile-Basics-Robert-Martin-ebook/dp/B07XTL99JQ) | Robert C. Martin | ✓ | -| [Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series)](https://www.amazon.com/Clean-Architecture-Craftsmans-Software-Structure/dp/0134494164) | Robert C. Martin | ✓ | -| Clean Code: A Handbook of Agile Software Craftsmanship | Robert C. Martin | | -| The Clean Coder: A Code of Conduct for Professional Programmers | Robert C. Martin | | -| Building Microservices: Designing Fine-Grained Systems | Sam Newman | 30% | -| The Software Craftsman: Professionalism, Pragmatism, Pride (Robert C. Martin Series) | Sandro Mancuso | | -| Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F# | Scott Wlaschin | | -| Domain-Driven Design Distilled | Vaughn Vernon | 30% | -| Implementing Domain-Driven Design | Vaughn Vernon | 10% | -| [Learn Go with tests](https://quii.gitbook.io/learn-go-with-tests/) | | ✓ | -| [TypeScript Deep Dive](https://github.com/basarat/typescript-book) | | ✓ | +| Book | Gene Kim | +| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------ | +| The Go Programming Language (Addison-Wesley Professional Computing Series) | Alan A. A. Donovan and Brian Kernighan | +| Think Bayes: Bayesian Statistics in Python | Allen B. Downey | +| Think Python: An Introduction to Software Design | Allen B. Downey | +| Think Stats: Probability and Statistics for Programmers | Allen B. Downey | +| Practical Statistics for Data Scientists: 50 Essential Concepts | Andrew Bruce and Peter C. Bruce | +| The Pragmatic Programmer: From Journeyman to Master | Andy Hunt and Dave Thomas | +| Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems (2nd Edition) | Aurélien Géron | +| Category Theory for Programmer | Bartosz Milewski | +| [Site Reliability Engineering: How Google Runs Production Systems](https://landing.google.com/sre/books/) | Betsy Beyer, Chris Jones, Jennifer Petoff, and Niall Richard Murphy | +| [Professor Frisby's Mostly Adequate Guide to Functional Programming](https://github.com/MostlyAdequate/mostly-adequate-guide) | Brian Lonsdorf | +| Docker for Serverless Applications | Chanwit Kaewkasi | +| Domain-Driven Design: Tackling Complexity in the Heart of Software | Eric J. Evans | +| Design Patterns: Elements of Reusable Object-Oriented Software | Erich Gamma, John Vlissides, Ralph Johnson, and Richard Helm | +| R for Data Science: Import, Tidy, Transform, Visualize, and Model Data | Garrett Grolemund and Hadley Wickham | +| Cracking the Coding Interview: 189 Programming Questions and Solutions | Gayle Laakmann McDowell | +| The Unicorn Project: A Novel about Developers, Digital Disruption, and Thriving in the Age of Data | Gene Kim | +| Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations | Gene Kim and Nicole Forsgren | +| The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win | Gene Kim, George Spafford, and Kevin Behr | +| Python Data Science Handbook: Essential Tools for Working with Data | Jake VanderPlas | +| Computer Networking: A Top-Down Approach | Jim Kurose | +| Programming Pearls (2nd Edition) | Jon Bentley | +| [Eloquent JavaScript: A Modern Introduction to Programming](https://eloquentjavascript.net/) | Marijn Haverbeke | +| Domain-Specific Languages (Addison-Wesley Signature Series (Fowler)) | Martin Fowler | +| Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler)) | Martin Fowler | +| Refactoring: Improving the Design of Existing Code (2nd Edition) (Addison-Wesley Signature Series (Fowler)) | Martin Fowler | +| Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems | Martin Kleppmann | +| Agile Estimating and Planning | Mike Cohn | +| [Clean Agile: Back to Basics (Robert C. Martin Series)](https://www.amazon.com/Clean-Agile-Basics-Robert-Martin-ebook/dp/B07XTL99JQ) | Robert C. Martin | +| [Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series)](https://www.amazon.com/Clean-Architecture-Craftsmans-Software-Structure/dp/0134494164) | Robert C. Martin | +| Clean Code: A Handbook of Agile Software Craftsmanship | Robert C. Martin | +| The Clean Coder: A Code of Conduct for Professional Programmers | Robert C. Martin | +| Building Microservices: Designing Fine-Grained Systems | Sam Newman | +| The Software Craftsman: Professionalism, Pragmatism, Pride (Robert C. Martin Series) | Sandro Mancuso | +| Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F# | Scott Wlaschin | +| Domain-Driven Design Distilled | Vaughn Vernon | +| Implementing Domain-Driven Design | Vaughn Vernon | +| [Learn Go with tests](https://quii.gitbook.io/learn-go-with-tests/) | | +| [TypeScript Deep Dive](https://github.com/basarat/typescript-book) | | +| Database Internals: A Deep Dive into How Distributed Data Systems Work | Alex Petrov | +| [Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement, Second Edition](https://pragprog.com/titles/pwrdata/seven-databases-in-seven-weeks-second-edition/) | Luc Perkins, Eric Redmond, and Jim Wilson | +| [Design and Build Great Web APIs: Robust, Reliable, and Resilient](https://pragprog.com/titles/maapis/design-and-build-great-web-apis/) | Mike Amundsen | +| [The Pragmatic Programmer: Your Journey to Mastery, 20th Anniversary Edition](https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/) | Andy Hunt and Dave Thomas | +| [Practical Microservices: Build Event-Driven Architectures with Event Sourcing and CQRS](https://pragprog.com/titles/egmicro/practical-microservices/) | Ethan Garofolo | +| [Software Estimation Without Guessing: Effective Planning in an Imperfect World](https://pragprog.com/titles/gdestimate/software-estimation-without-guessing/) | George Dinwiddie | +| [Become an Effective Software Engineering Manager: How to Be the Leader Your Development Team Needs](https://pragprog.com/titles/jsengman/become-an-effective-software-engineering-manager/) | James Stanier | +| [Just Enough Software Architecture: A Risk-driven Approach](https://www.georgefairbanks.com/book/) | George Fairbanks | +| [Software Architecture for Developers - Volume 1: Technical leadership and the balance with agility](https://leanpub.com/software-architecture-for-developers) | Simon Brown | +| [Software Architecture for Developers - Volume 2: Visualise, document and explore your software architecture](https://leanpub.com/visualising-software-architecture) | Simon Brown | +| [System Design Interview – An insider's guide](https://www.amazon.com/System-Design-Interview-Insiders-Guide-ebook-dp-B08B3FWYBX/dp/B08B3FWYBX) | Alex Xu | +| [System Design Interview – An Insider's Guide: Volume 2](https://www.amazon.com/System-Design-Interview-Insiders-Guide/dp/1736049119) | Alex Xu | [Back to Top](#table-of-contents) @@ -137,7 +149,7 @@ | Make Time: How to Focus on What Matters Every Day | Jake Knapp and John Zeratsky | | | | Managing Oneself | Peter Drucker | ✓ | | | Marketing 4.0 : Moving from Traditional to Digital | Philip Kotler | | | -| Measure What Matters | John Doerr | | | +| Measure What Matters: How Google, Bono, and the Gates Foundation Rock the World with OKRs | John Doerr | | | | Misbehaving: The Making of Behavioral Economics | Richard H. Thaler | | | | Nudge: Improving Decisions about Health, Wealth, and Happiness | Cass Sunstein and Richard Thaler | | | | On Ethics & Economics | Sen Amartya | | | @@ -151,7 +163,7 @@ | Sprint: How to Solve Big Problems and Test New Ideas in Just Five Days | Jake Knapp | ✓ | | | Start With Why: How Great Leaders Inspire Everyone to Take Action | Simon Sinek | | | | The 7 Habits of Highly Effective People: Powerful Lessons in Personal Change | Stephen R. Covey | | | -| The Daily Drucker: 366 Days of Insight and Motivation for Getting the Right Things Done | Charles Duhigg | | | +| The Power of Habit: Why We Do What We Do in Life and Business | Charles Duhigg | | | | The Daily Drucker: 366 Days of Insight and Motivation for Getting the Right Things Done | Peter F. Drucker | | | | The First 20 Hours: How to Learn Anything ... Fast | Josh Kaufman | ✓ | | | The Five Dysfunctions of a Team: A Leadership Fable | Patrick Lencioni | ✓ | | @@ -176,6 +188,14 @@ | Zero to One: Notes on Startups, or How to Build the Future | Blake Masters and Peter Thiel | ✓ | | | Radical Focus: Achieving Your Most Important Goals with Objectives and Key Results | Christina Wodtke | | | | Dollars and Sense: How We Misthink Money and How to Spend Smarter | Dan Ariely and Jeff Kreisler | | | +| Never Split the Difference: Negotiating As If Your Life Depended On It | Christopher Voss and Tahl Raz | | | +| Build: An Unorthodox Guide to Making Things Worth Making | Tony Fadell | | | +| Trillion Dollar Coach: The Leadership Playbook of Silicon Valley's Bill Campbell | Alan Eagle, Eric Schmidt, and Jonathan Rosenberg | | | +| Holacracy: The New Management System for a Rapidly Changing World | Brian J. Robertson | | | +| High Output Management | Andrew Grove | | | +| Rework | David Heinemeier Hansson and Jason Fried | | | +| Empowered: Ordinary People, Extraordinary Products | Marty Cagan | | | +| Inspired: How to Create Tech Products Customers Love | | | | [Back to Top](#table-of-contents)