Skip to content

mangalbhaskar/maskrcnn_sophisticate-

 
 

Repository files navigation

title description author created updated tags
codehub
codehub is an opinionated software development environment workflow
mangalbhaskar
16th-Nov-2019
07th-Jan-2020
ubuntu, linuxscripts, docker, aimldl, android, raspberry-pi

Table of Contents

  • TOC {:toc}

codehub

codehub is an opinionated software development environment workflow

Disclaimer

  • This is an opinionated workflow based on my individual preferences to organize my software development activities and digital content. If you do not like the concept of opinionated workflow, please do not use this repo.
  • I've tried my best to provide link for references and due credits in individual files for any piece of code if applicable, so that anybody reading the code can directly refer those links for better understanding; and any missing credits/references are unintentional.
  • It's forever opensource with commercial friendly license, though type of license may change.

Getting Started - First Time Setup

  1. Run the installer script
    • This step clones and initializes the /codehub repo on the local system
    • Installer script executes this setup script:/codehub/scripts/setup.sh
    • Run the following command on command prompt to clone and initialize the git repo on the local system:
      wget -O - https://raw.githubusercontent.com/mangalbhaskar/codehub/master/scripts/codehub.init.sh | bash
    • IMP NOTE:
      • Close the terminal and open the new terminal for the next steps for the environment variables to reflect in the shell
  2. Install the required software
    • Ref: How to Setup System and Install Required Software
    • Before setting up AI environment, ensure that the python is installed and virtualenv is properly configured. Default path of virtualenv would be: /codehub/virtualmachines/virtualenvs. This is to ensure maximum portability.
  3. Setup AI environment
  4. Setup AI API, deploy AI models
  5. Configure AI API to auto-start on system boot

Docker Setup for AI Development

Docker Images

Design Philosophy

  • Save time by automating the repetitive steps in setting up the development environment and toolchain
    • Provide sustainable and re-producible setup workflow and data-pipeline
  • Ease the migrating from one system to another, in case of new setup after formatting of the system, system crashes
    • Enforce consistency in software development activities across individuals and team
    • Taking care of system nuances like change in the user name, uid, gid and other subtle yet critical differences
  • Maintaining diversity in project dependencies by providing consistent docker containers, virtual environments
  • Compatibility for different type of devices; desktop/laptops, mobile, raspberry-pi and other edge devices
  • Multi-purpose built for tasks with or without docker containers
    • Computer Vision and Image Processing
    • AI: Machine Learning, Deep Learning
    • 3D GIS - Photogrammetry, Point Cloud, LiDAR, 3D Modeling
    • Data Analysis, Data Visualization
    • VR, AR
    • Computer Graphics, VFX, 3D
  • codehub strive to strike this by providing flexible conventions to:
    • Create directories for code, data, configurations, logs etc.
      • Creating separate directories based on functionality, growth rate in expected size and velocity of change
      • All the top level directories can be managed independently
      • Top level directories can be stored on different remote locations and mounted locally to work across distributed systems
    • Creating consistent local and remote system mount points with proper permissions for distributed system workflow
    • Creating up-to-date documentations, specifications and knowledge sharing collaterals
    • Empowers the developer to implement the distributed workflow across different machines and devices
    • Provide automation scripts
    • Limits to linux specific projects only
    • Creates a dedicated AI workflow referred as: aimldl
      • Plug-n-play of different DNN architectures, external software components and libraries
    • Empowering individuals to setup the practice code repo that is shared within team
    • Encouraging seamless integration with cloud services - storage, apis, project management tools, communication channels

Howto's

Design & Specifications

Copyright and License

  • Images/Annotations (if any) are copyright of the contributor(s). All rights reserved.
  • Licensed under [see LICENSE for details]
    Copyright (c):
    
    2019-2020 mangalbhaskar a.k.a Bhaskar Mangal
    
    2019-2020 Vidteq India Pvt. Ltd. - A MapmyIndia Company
    Written by mangalbhaskar
    

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Jupyter Notebook 95.1%
  • Shell 2.5%
  • Python 2.1%
  • HTML 0.2%
  • Dockerfile 0.1%
  • JavaScript 0.0%