Skip to content

collection of interesting projects I see online or dream up in my spare time

License

Notifications You must be signed in to change notification settings

shailshouryya/Fun-Projects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Fun-Projects

I started reading articles that walk through how to make different things and decided to make one entirely self-contained repo that housed all the projects I've come across that I tried doing. The source for each project will always be at the top of the page with a url link to the page where I found it. I'll also include the basics of how to run the project in the README within each folder, but if that isn't descriptive enough, just check out the link to the article at the bottom under the Source heading.

If you're still stuck, Google! StackOverflow is a great resource with many relevant questions, and other tutorial sites often contain a wealth of information. If you're not getting what you want to work to work, keep digging around, there's probably a way. If it's taking too long though, it may be worthwhile to just take a step back and check if your environment is setup properly.

Happy coding!

Great Sources:

Git Resources:

Learning

Data Science:

Programming:

Interesting Repositories:

  • Google Filament

    "Filament is a real-time physically based rendering engine for Android, iOS, Linux, macOS, Windows, and WebGL. It is designed to be as small as possible and as efficient as possible on Android.

    Filament is currently used in the Sceneform library both at runtime on Android devices and as the renderer inside the Android Studio plugin."

  • gitea

    "The goal of this project is to make the easiest, fastest, and most painless way of setting up a self-hosted Git service. Using Go, this can be done with an independent binary distribution across all platforms which Go supports, including Linux, macOS, and Windows on x86, amd64, ARM and PowerPC architectures. Want to try it before doing anything else? Do it with the online demo! This project has been forked from Gogs since 2016.11 but changed a lot."

  • TimeSeries_Seq2Seq

    "This repo aims to be a useful collection of notebooks/code for understanding and implementing seq2seq neural networks for time series forecasting. Networks are constructed with keras/tensorflow."

  • mastodon

    "Mastodon is a free, open-source social network server based on ActivityPub. Follow friends and discover new ones. Publish anything you want: links, pictures, text, video. All servers of Mastodon are interoperable as a federated network, i.e. users on one server can seamlessly communicate with users from another one. This includes non-Mastodon software that also implements ActivityPub!"

  • Apache Thrift GitHub Page

    "Thrift is a lightweight, language-independent software stack with an associated code generation mechanism for point-to-point RPC. Thrift provides clean abstractions for data transport, data serialization, and application level processing. The code generation system takes a simple definition language as input and generates code across programming languages that uses the abstracted stack to build interoperable RPC clients and servers."

  • disentaglement_lib

    "disentanglement_lib is an open-source library for research on learning disentangled representation. It supports a variety of different models, metrics and data sets:

    Models: BetaVAE, FactorVAE, BetaTCVAE, DIP-VAE Metrics: BetaVAE score, FactorVAE score, Mutual Information Gap, SAP score, DCI, MCE Data sets: dSprites, Color/Noisy/Scream-dSprites, SmallNORB, Cars3D, and Shapes3D It also includes 10'800 pretrained disentanglement models (see below for details).

    disentanglement_lib was created by Olivier Bachem and Francesco Locatello at Google Brain Zurich for the large-scale empirical study"

  • eo-learn

    "eo-learn makes extraction of valuable information from satellite imagery easy.

    The availability of open Earth observation (EO) data through the Copernicus and Landsat programs represents an unprecedented resource for many EO applications, ranging from ocean and land use and land cover monitoring, disaster control, emergency services and humanitarian relief. Given the large amount of high spatial resolution data at high revisit frequency, techniques able to automatically extract complex patterns in such spatio-temporal data are needed."

  • Hologram framework - etiennepinchon/hologram

  • The SENTINEL-1 Toolbox - senbox-org/s1tbx

  • brotli

    • Brotli is a generic-purpose lossless compression algorithm that compresses data using a combination of a modern variant of the LZ77 algorithm, Huffman coding and 2nd order context modeling, with a compression ratio comparable to the best currently available general-purpose compression methods. It is similar in speed with deflate but offers more dense compression.

Development Practice:



Regular Expressions

RegEx in JavaScript

  • JAVASCRIPT.INFO - Regular Expressions Landing Page
    • Methods of RegExp and String - string.method(argument(s)) versus regexp.method(argument(s))
    • Character classes - aka metacharacters:
      • \d – digits.
      • \D – non-digits.
      • \s – space symbols, tabs, newlines.
      • \S – all but \s.
      • \w – English letters, digits, underscore '_'.
      • \W – all but \w.
      • . – any character if with the regexp 's' flag, otherwise any except a newline.
    • Escaping, special characters - remember to use double backslashes to escape special characters when using the "new RegExp()" constructor
    • Sets and ranges [...] - no need to escape special characters in character sets (still need to use backslash for character classes though), able to use ranges (e.g. [A-Za-z]), and negate characters (e.g. don't look for these characters) by including a "^" at the beginning: [^0-9] looks for everything but numberic characters
    • Quantifiers +, *, ? and {n} - quantifiers allow you to search for multiple consecutive appearance of selected character (the character that directly precedes the quantifier); quantity n enclosed in braces {n}, * indicates 0 or more, + indicates 1 or more, ? indicates 0 or 1 appearances
    • Greedy and lazy quantifiers - greedy quantifiers (, +, ?) will search until the character they are searching for no longer appears- which in many cases isn't until the end of line or such - then backtrack to find the next character in the regex; lazy searches (?, +?, ??) look for the designated character then try to match the next character in the regex, and extend the match until the next character in the regex matches what appears in the string
    • Capturing groups - also include nested groups - which go by the order of the opening parenthesis, named groups - which go by ? directly following opening parenthesis and referenced by name (no <>), and non-capturing groups - which are indicated by ?: immediately following the opening parenthesis
    • Backreferences in pattern: \n and \k -
      • To reference a group inside a replacement string – we use $1, while in the pattern – a backslash \1.
      • If we use ?: in the group, then we can’t reference it. Groups that are excluded from capturing (?:...) are not remembered by the engine.
      • For named groups, we can backreference by \k.
    • Alternation (OR) |
    • String start ^ and finish $ - aka anchors
    • Multiline mode, flag "m" - use the multiline flag "m" for the anchors ^ and & to match characters at the beginning and end of each line as opposed to just matching at the beginning and end of the string; using \n matches newline characters but consumes the newline character and adds it to the result, meaning the result would be something like: whatYouSearchedFor\n instead of whatYouSearchedFor
    • Lookahead and lookbehind - lookaheads and lookbehinds are not part of the resulting match unless wrapped internally in an additional set of parentheses: let reg = /\d+(?=(€|kr))/; // extra parentheses around €|kr
      • Pattern type matches
      • x(?=y) Positive lookahead x if followed by y
      • x(?!y) Negative lookahead x if not followed by y
      • (?<=y)x Positive lookbehind x if after y
      • (?<!y)x Negative lookbehind x if not after y
    • Infinite backtracking problem
    • Unicode: flag "u"
    • Unicode character properties \p
    • Sticky flag "y", searching at position
  • A Practical Guide to Regular Expressions (RegEx) In JavaScript A quick guide to effectively leveraging with regular expressions, with hands-on examples. - Bits and Pieces (Medium), by Sukhjinder Arora; August 6, 2018 - overview of basics with regular expressions in JavaScript

Websites

  • The 40 Point Checklist for Launching a Website (SMOOTHLY) - HackerNoon, By Maria Krause; Jun 9, 2019
    • Project launch is always quite stressful experience as well as a website launching. Great amount of tasks each part of the development team should finish before going live. Such challenge often leads to small mistakes that in some cases have critical outcomes.

C++

Python

Front-End

JavaScript

Angular

React

  • You probably shouldn’t be using React - Austin Tindle; May 2, 2019
    • Point of contention: abstracting away concepts before you ever learn them makes it hard for you to optimize your code since the smallest, "low-level" piece of code you understand is the abstraction of JavaScript; valid point, you should definitely try to understand how things work in JavaScript eventually, especially when working with larger, more complicated projects where the production size of app affects load times for users

CSS

Principles



Serverless Development

  • Executive's guide to serverless architecture
  • Serverless computing vs platform-as-a-service: Which is right for your business? - By James Sanders | May 1, 2019 -- 14:52 GMT (07:52 PDT) | Topic: Prepare for Serverless Computing | Understanding the difference between serverless computing and PaaS is the first step in deciding which is best for your organization.
  • What serverless computing really means, and everything else you need to know - By Scott Fulton III | April 9, 2019 -- 17:44 GMT (10:44 PDT) | Topic: Prepare for Serverless Computing | Serverless architecture is a style of programming for cloud platforms that's changing the way applications are built, deployed, and - ultimately - consumed. So where do servers enter the picture?
  • How to build a serverless architecture - By Joe McKendrick | May 1, 2019 -- 14:53 GMT (07:53 PDT) | Topic: Prepare for Serverless Computing | A serverless architecture can mean lower costs and greater agility, but you’ll still need to make a business case and consider factors like security and storage before migrating selected workloads
  • What Google Cloud Platform is and why you’d use it - By Scott Fulton III | May 20, 2019 -- 15:31 GMT (08:31 PDT) | Topic: Executive Guides
    • The challenger in any competitive market has greater incentive to produce sharper and more customer-focused products and services. Google has to make a bigger splash, and for a company that isn’t known for being flashy, it’s not doing a bad job.
  • Kubernetes: What the Hype is All About - HackerNoon, By jogetworkflow; Jun 7, 2019
    • With a practical tutorial on deploying Joget for low-code Application Development
  • Google updates GKE with release channels, Windows Server Containers - ZDNet, By Stephanie Condon for Between the Lines | May 21, 2019 -- 07:01 GMT (00:01 PDT) | Topic: Cloud -- The new release channels will let GKE customers automatically upgrade their Kubernetes clusters at a pace that meets their risk tolerance and business needs.
  • Microsoft Azure: Everything you need to know about Redmond's cloud service - ZDNet, By Ed Bott | May 20, 2019 -- 19:14 GMT (12:14 PDT) | Topic: Cloud
    • Second only to AWS among cloud providers, Microsoft Azure is an ever-expanding set of cloud-based computing services available to businesses, developers, government agencies, and anyone who wants to build an app or run an enterprise without having to manage hardware.
  • What makes Google Cloud Platform unique compared to Azure and Amazon - ZDNet, By Scott Fulton III | May 20, 2019 -- 16:31 GMT (09:31 PDT) | Topic: Executive Guides -- Since the 1980s, there’s been a rule that three major competitors don’t last long in a technology market. For Google to stay relevant and remain in contention, it has to keep innovating and changing the rules.

Security

Privacy

  • GDPR, USA? Microsoft says US should match the EU's digital privacy law - ZDNet, By Liam Tung | May 21, 2019 -- 12:12 GMT (05:12 PDT) | Topic: Innovation -- Microsoft ratchets up its lobbying for federal EU-style privacy laws for the US.
  • Where GDPR goes next: How digital privacy is taking over the world - ZDNet, By Danny Palmer | May 21, 2019 -- 10:00 GMT (03:00 PDT) | Topic: Security -- One year on from the EU introducing its data protection laws, the impact is spreading around the world.
    • "AI allows the mass processing and analysis of data. In lots of areas, we're suddenly looking for general counsels to be looking at the ethics of something, not just the legalities of something. It's not how can you behave, it's how should you behave."
    • This is especially the case when it comes to new technologies like AI and the Internet of Things, which rely on collecting vast piles of data and seeing how it can be used, rather than collecting data for a purpose.
    • "We still haven't properly addressed how we're creating digital identities for children and how they move away from that. The consent issue and the profiles that are being built by schools, parents and all manner and how we keep a sense of privacy for kids," says Wright.

Networking



Topics to Look Into

High Level

Computer Science Fundamentals

From javatpoint:

Data Science

hierarchy of needs

Types of Databases

  • wide colun store (aka column family database)
  • key value store
  • relational database
    • row based
      • indexing vs partitioning
    • column based
  • search engine
  • graph DBMS
  • Reference

Data storage concepts

  • ACID
  • Star schema
  • Snowflake schema
  • data reliability
  • distributed systems
  • pipeline:
    • Ingestion — gathering the necessary data
    • Processing — processing the data to get the end results
    • Storage — storing the end results for fast retrieval
    • Access — enable a tool or user to access the end results of pipeline
  • architect distributed systems
  • create reliable pipelines
  • combine data sources
  • architect data stores
  • collaborate with data science teams to build appropriate solutions for them
  • data engineer roles:
    • Generalist
    • Pipeline-centric
    • Database-centric
  • Eventual Consistency
  • Serializability

Data Engineering:

Data Providers

Overview

Interview Questions

Data Science:

Math and Logic

About

collection of interesting projects I see online or dream up in my spare time

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published