Given | Topic | Description | Proposed by | Interested in it | Discussion Date | Moderator | Priority | Notes |
---|
| Documentation and landing pages using sphinx and jekyll | - Basic description of each one
- When to use one over the other
- Examples using Clowder docs and new landing page
| | | 2020-01-22 Meeting notes |
|
| OpenAPI, too? (see end of list) |
| Kubernetes for dummies | | | | 2020-02-05 Meeting notes |
|
|
|
| Ingress Controller on Kube (including API Gateway) | - Investigate ingress controller technologies
- Pick best practices and guideline to pick a right technology
- Possibly pros and cons of each option?
| | |
|
|
|
|
| Single-sign-on implementation on different platform (Kube vs VM cluster, etc) and identity management | - Keycloak vs CI-Logon
- OAuth 2, OIDC
- User (identity) management: NCSA service or not?
| | | 2020-04-15 Meeting notes |
|
|
|
| Directory of NCSA's Software Expertise | - Active software projects that could realistically be used on future projects
- Expertise in 3rd Party Software
- By department? By people? By software?
| | |
|
|
|
|
| Nest (Visual Analytics' Platform) | - One platform to transition from Data Science experiments
to a full web app - Lessons learned thus far and open problems
| |
|
|
|
|
|
| Upgrading large codebase from python2.7 to 3.6 | - I'm doing this right now (Nest and its projects: Knoweng, Omix, etc).
- Also adopted Conda for python and R dependencies
INSIDE our docker containers. - Plenty of pain points along the way if anyone wants to hear about it.
| |
|
|
|
|
|
| Type Hints in Python3.5+ | - Visual Analytics Group wants to do this in the next few months
- Any lessons learned would be helpful
| | |
|
|
|
|
| Hosting for Collaborators Vs. Open Source releases | - Which kind of project goes better at NCSA?
- Hosting a service vs. instances of open source software run by others?
| | Matt Berry |
|
|
|
|
| K8s and Autoscaling Vs. Traditional HPC jobs | - Software Directorate seems to be moving to standardize on containers
with orchestration. - NCSA still puts Condor or similar batch management software on the
cutting edge hardware. Can't even run a docker container. - This seems like a huge problem to me but maybe I'm the only one.
| | |
|
|
|
|
| Seed repos for reference architectures | developed internally or pointers to external | Matt Berry | Santiago Nunez-Corrales |
|
|
|
|
| Checklists/best practices docs for common scenarios | - Onboarding FT hires, student hires, collaborators
- Writing proposals
- Kicking off new projects
- Releasing open-source software
- Capturing UI/UX requirements, developing concepts, and arriving at final designs
- Translating UI/UX requirements into frontend implementations
- Lots more?
| Matt Berry | |
|
|
| what already exists within the directorate? wrong venue for this? |
| Custom elements w/ web components APIs | - "frameworkless" or cross-framework interactive HTML widgets
| | |
|
|
|
|
| Multi-window/tab/monitor web applications | | Matt Berry | |
|
|
|
|
| Monitoring and alerting | - what are we using? what do we like?
| | |
|
|
|
|
| Tools for software support | - service desks/user-facing ticketing
- knowledge bases
| Matt Berry |
|
|
|
|
|
| Jupyter notebook, lab, hub | - custom plugin capability of jupyterlab
- custom authenticator of jupyterhub
- How to deploy and mantain a Jupyter Hub instance for a community
| Chen Wang | |
|
|
|
|
| Library of common web components | - re-usable react components (e.g. login)
- other frontend libraries (angular?)
- visualizations?
| Christopher Navarro | |
|
|
|
|
| Swagger (OpenAPI) and maybe Connexion |
| from the meeting | |
| |
|
|
| Use lerna for managing multiple packages within a JS/TS project | https://lerna.js.org/ | | Matt Berry |
|
|
|
|
| Establish best practices, guidelines, and rules for different languages. | This can be in form of wiki pages and/or linting rules enforced with tools such as eslint (JS), black (python), and so on. | Kaveh Karimi Asli | |
|
|
|
|
| Ticket composition and why it matters (JIRA) | - A look at the less technical side of software development patterns
- Requirements-gathering, ticket composition, use cases, test plans, and CHANGELOGs
- Not JIRA-specific, but lots of JIRA examples
- An old slide deck
| | |
|
|
|
|
| Scaling up Geoserver | - How to create cluster of Geoserver for better scalabilty
- How to make Pods of Geoserver on Kube
- How to improve Geoserver performance
| | |
|
|
|
|
| How to manage Raster data on PostGIS (Postgresql) | - How to manage Raster data on PostGIS (Postgresql)
- What's the best practices with different options
- Examples of geospatial query over raster data on PostGIS
| | |
|
|
|
|
| OpenLayers vs Leaflet vs Mapbox GL | - Understands the differences (pro/con) between OpenLayers vs Leaflet
- Survey and review the JS libraries (i.e. react, bootstrap, etc.) working with OpenLayers or Leaflet
- What's the best practices with examples
- What's best practices working with Geoservers (WMS/WFS) services
| | |
|
|
|
|
| Parallelization of Geospatial analysis | - What's the options regarding parallelization of geospatial analysis (vector/raster) on HPC (CPU based) (MPI), HPC (GPU based), Cloud (i.e. dockers, kube)
- What's the best practices or recommendation?
| | |
|
|
|
|
| TypeScript | - TypeScript vs Flow
- When is TypeScript better than plain ES6
- Some projects at NCSA are currently using TypeScript
- Typescript on the backend (NestJS, Deno, tsc or ts-node w/ Node/Next/Ember/Fastify, etc.)
| Luigi Marini | |
|
|
|
|
| GridFS & other options to store large files in database | - File types: json, tif,shp, csv etc. Mostly files uploaded from webservices
- Pro & Cons
| Vara Veera Gowtham Naraharisetty | |
|
|
|
|
| Authorization of Data Access | - Roles, Groups, Users giving other users access to their data.
- Application level? database builtins? Are there libraries?
- Especially when querying large sets of data for analysis (but don't have permissions to all data of a type).
| | | 2020-04-29 Meeting notes |
|
|
|
| User interfaces and visualizations in jupyter notebooks | | Matt Berry | Michael Bobak |
|
|
|
|
| Cloud-enabled workflow languages and execution | Identifying the options and advantages of tools related to workflow execution, especially related to deployment on public clouds - Workflow Languages: Common Workflow Language (CWL); Workflow Descriptor Language (WDL)
- Execution Engines: Rabix; Toil; Cromwell; cwltool; Data Wolf; Apache Airflow; Parsl;
- Workflow-compatible Cloud Compute Platforms: Seven Bridges CGC; Terra/AnVIL;
- Workflow Language Support Tools: Dockstore registry, CWLviewer, argparse2tool
- Support communities: GA4GH Cloud Workstream
| | |
|
|
|
|
| Maintaining projects on GitHub best practices (versus NCSA Opensource) | - When to use GitHub vs NCSA opensource
- What Github features to use (or not)
- GitHub best practices
- Plugins for automatic interaction
- Personal experiences using GitHub
| | | 2021-01-27 Meeting Notes
|
|
|
|
| Radiant | - Benefits, price model, availability
| | | 2020-06-24 Meeting Notes |
|
|
|
| R programming language | - When should we use it
- How to scale
- Integration with existing software
| | |
|
|
|
|
| Yelp's Detect Secrets and TruffleHog | - Keeping your secret safe in git and github
| Sandeep Puthanveetil Satheesan | Rob Kooper Luigi Marini | 2020-08-19 SWG Meeting Notes |
|
|
|
| Data quality metrics | - Started as a request from INCORE team member
| | |
|
|
|
|
| Workflows | Best Practices Discussion | Round Table Discussion |
| 2020-11-16 |
|
|
|
| Sphinx, docstrings and autodoc | More advanced Sphinx topic, using docstrings and autodoc in Sphinx | Michal Ondrejcek | | | TBD |
|
|
| Basic principles of UI/UX design for developers | Good resources for developers; libraries, screen size issues, storybook JS | Luigi Marini | Wenjie Zhu |
|
|
|
|
| Best Practices for JS/TS Projects within the Software Group | The goal of this round table is to discuss some best practices for JavaScript/TypeScript projects within the Software Group. We will discuss our findings and open it up to discussion. We will show project templates that can be used to start new Vanilla JS/TS and React projects. The templates will include basic configuration for processes such as testing, linting, documentation, and build. These templates will be used to improve ongoing projects within the Software Group. | Kaveh Karimi Asli | Michal Ondrejcek | 2021-02-10 | Michal Ondrejcek |
|
|
| Best Practices for Helm Chart |
| Rob Kooper |
|
|
|
|
|
| Workbench | use cases for CHEESE/CDDR, as well as historical instances like the Workbench Public Beta, TERRAREF, EarthCube, PI4, and/or ETK among others.
| Rob Kooper | | 20221-03-24 | Sara Lambert |
|
|
| Ways to proxy services nginx, traefik | - what is the simplest way to expose a flask service to the world
- static web pages
- how to auto deploy containers, static web pages, services
- start stop docker container
- pull git repository
| |
|
|
|
|
|
| Helm charts | - when is a project big enough to use helm chart
- best practices, example, tutorials with helm charts
- standard repositories and practices
| | |
|
|
|
|
| Easiest out of box user management solution | - single sign on - Oauth vs cilogon
- external directory - Ldap
- identity.ncsa.illinois.edu
- manage local users
- (Jupyter hub authentication)
- GitHub Auth flow and scope
| | | 7/28/2021 | Chen Wang |
|
|
Yes | Scientific tabular data | - pandas, R data frames
- performance difference between APIs
- numpy arrays
- hdf5 serialization
- dask dataframes
- fits (astronomy)
- netcdf
- Apache Spark
| Chen Wang | | 9/22/2021 https://acrobat.adobe.com/link/track?uri=urn:aaid:scds:US:5544745d-4f14-498b-92e8-aa042fea3377#pageNum=1 | Mikolaj Kowalik |
|
|
| Asyc functions and nested call backs vs promises | - simplifying nested callbacks
| Wenjie Zhu | |
|
|
|
|
Yes | How to give a good tech talk | - for the kind of presentations that we give, what are best practices
- conferences vs outreach opportunities like engineering open house
- how to structure a talk
- verbose slides vs diagrams
- different audiences, technical, non-technical
- how detailed
- how to explain abstract ideas (diagrams, examples, code)
| | |
| | 1 |
|
| Social Engineering and Security |
| |
|
|
|
|
|
| Vulnerabilities in big packages repository (pypi, node, gems) |
| Matt Berry |
|
|
|
|
|
| What different cloud providers offer and specific services of interest to us |
| Luigi Marini |
|
|
|
|
|
| Singularity - different container technologies - run times and other container execution environments |
| Matt Berry | |
|
|
|
|
| R notebooks and Rstudio - compared to Google Colab and JupyterHub |
| |
|
| Michael Bobak |
|
|
| Submitting to HPC - integration with external services - scientific gateways - how to submit to HPC |
| Luigi Marini | |
|
|
|
|
| Introduction to HPC resources available at NCSA and on Campus - XSEDE - HAL - Campus Cluster - Options for Storage |
| | Sandeep Puthanveetil Satheesan |
|
|
|
|
| API/CRUD frameworks given a database schema (like PostgRest) | - Postgres/Supabase.io, Firebase, Python Eve, PostGraphile, (also related frameworks that go the other other way, model to schema, e.g., Django REST), etc. (maybe overview of differences)
- Basic CRUD functions plus Auth
- Could we offload some backend functions of our apps to these frameworks (eg build on top of a CRUD API instead of the database directly)?
- They were primitive 5 years ago but some of them look pretty good now.
- Graphql (e.g., PostGraphile)
| | |
|
|
|
|
| Software engineering best practices for notebook development | - Versioning
- Code review process and commenting (e.g., better way to review diffs than in the raw json notebook source? https://www.reviewnb.com/)
- Separating computation from presentation of results
- Debugging
- Latest developments with Jupyter Notebooks and JupyterHub
| Charles Blatti | |
|
|
|
|
| Keeping the design→dev link active after initial development | - Updates to design automatically flowing to dev
- Tools, now and coming
- Practices
| Chad Olson | |
|
|
|
|
| Small design details that make a big difference | - What are they (fonts, colors, padding/margin, etc.)
- How to get them right
| Chad Olson | |
|
|
|
|
| Best practices to store and encrypt user information | - user database tables
- personal information
| |
|
|
|
|
|
| Use of SPARQL compliant stores | | Michael Bobak |
|
|
|
|
|
| Best practices when picking standalone VM, Puppet Managed VM, Kubernetes clusters when deployment Radian |
| Elizabeth Yanello |
|
|
|
|
|
| New Python features | - type hints
- data classes
- coroutines
- automatic code formatters (black)
| | Michael Bobak |
|
|
|
|
| graphql | - how to build a web service in graphql
- autogeneration of graphql endpoint based on database (???)
| | |
|
|
|
|
| Slack etiquette | - effective and efficient use of Slack messaging
- parsing and storing important information
- what is expected, response time, priorities
| Vara Veera Gowtham Naraharisetty |
|
|
|
|
|
| Perspectives on quantum computing: hardware, software and future perspectives | - Basic concepts
- Fundamental algorithms
- Existing hardware architectures
- Currently accessible systems
- Open software frameworks
- Opportunities
- Potential for the IBM initiative on campus
- Focus group to build capacity and knowledge
- Look for experts (Eric Chitamber ECE)
| | |
| | 3 |
|
| Functional distributed and Web programming with Elixir, OTP and Phoenix | - Language features
- The Mix build system/toolchain
- Unit testing
- Distributed processing with OTP
- Web development with Phoenix
- Hands on show and tell / Demo / overview
- Round table
| | |
| | 3 |
|
| Writing performant Python code with Pandas and Numpy | - Pandas vs Numpy: when to use which?
- Four Pandas optimization strategies
- Numpy: harnessing vectorized operations
| Santiago Nunez-Corrales | |
| | 1 |
|
| visual regression testing for frontends | - Depends on the frontend tech
- Web browser
- Selenium
- Javascript Unit Testing - Mocha, etc.
| Matt Berry | |
| Round Table
| 3 |
|
| how to adapt agile practices when everyone on the team is assigned to multiple projects (and thus part of N simultaneous sprints) | possible complications: - potentially incurring N times the meeting overhead for all the associated ceremonies
- deadline collisions
- costs of context switching
- potentially rebalancing time devoted to each project on a week-to-week basis according to needs thereby complicating any tracking of velocity
| | |
| | 1 |
|
| documenting software for end users | - in-application help in various forms, manuals, video tutorials, knowledge bases
- best practices for maintaining/updating/versioning these artifacts as part of the development process
- gathering requirements for documentation
- testing documentation
- tools and other resources
- how does this apply to scientists vs general users
- docs for software engineers vs scientists
- Collecting information vs how to best write it
- Based on round table figure out focus
| Matt Berry | |
| | 2 |
|
Yes | What developers need to know about project management | - Both working with Project Managers and basic Project Management skills developers can/should learn
- How to work closely with project managers on a bigger project
- Tools such as JIRA/Confluence/GitHub Projects/Zenhub
- How to adapt agile practices when everyone on the team is assigned to multiple projects (and thus part of multiple simultaneous sprints)
- Dos and Don'ts
| | |
| | 2 |
|
| basics of animation in web pages | - why animate
- when and when not, what and what not
- css techniques
- js techniques
- libraries, guides, and other resources
| Matt Berry | Kaveh Karimi Asli |
| Focus Group TBD | 3 |
|
Yes | reactive programming | - paradigm and mental model (callbacks, promises, observables)
- marble diagrams
- pros, cons, alternatives
- implementations (RxJS and the rest of the ReactiveX family (http://reactivex.io/languages.html), many others)
- use cases
- testing
| Matt Berry | |
| Focus Group: Primer on Reactive Programming Luigi Marini | 2 |
|
Yes | Keycloak (hands on?) | - keycloak overview
- strengths and weaknesses
- hands on examples
| Luigi Marini |
|
| | 1 |
|
| Flask hands on | - flask overview
- flask + connexion
- how to start a bare-minimum flask app
- hands on excercises
| | |
| | 2 |
|
| React hands on | - overview of reactJs
- participants try to create an app together
- hooks
- redux examples
| | |
| Round Table: Introduction Focus Group: Handson training by going throught tutorial together over several session Chen Wang | 2 |
|
Yes | How to deploy services docker/kubernetes/ radiant | - workshops where participants deploy a services using docker/kubernetes on radiant together
| | |
| Focus Group TBD
| 1 |
|
| DevOps for Webapps | - overall network structure and knowledge introduction
- How to put apache/nginx in front of an existing app
- request domain name and enable SSL at NCSA
| | |
| | 2 |
|
| AWS hands on | - overview of popular components in AWS
- AWS has many tutorials which participants can try together:
firehose + dynamodb + lambda + S3 etc - Free educational accounts
| | |
| Round Table First Potential follow up focus groups to prepare materials using AWS well developed documentation Benjamin Galewsky | 3 |
|
| google cloud hands on | | |
|
| Round Table First Potential follow up focus groups to prepare materials TBD | 3 |
|
| Comparison of AWS / Google / Azure | - a comparison between the three
- follow up to the specific ones
| |
|
| Round Table First | 3 |
|
| Mobile app development | - react native
- flutter
- other
- how are people currently developing mobile apps for projects?
- Rokwire / Clowder / Farmdoc
- Tricks to make webapps easy to use on phones
| | |
| Round Table | 3 |
|
| University policy on releasing an app | | | |
| Round Table TBD | 3 |
|
| Relational Database design and SQL training | - mentioning SQL because we seem to be pretty familar with noSQL
- frequent used SQL commands
- maybe some quiz
| | |
| | 2 |
|
| Survey of Graph (nodes and edges) libraries to deal with large graphs. | - performance
- interoperability
- support
- using networkx, doesn't scale well
- common libraries and databaset
| Mikolaj Kowalik | |
| | 2 |
|
| Other flavors of Python? CPython, microPython, circuitPython (arduino) |
| |
|
| Focus Group TBD | 3 |
|
| Github Actions? Don't we have something similar ^ | - I think we had a round table about this
- maybe more hands on?
| | |
| | 1 |
|
| Tools to track web usage metrics | - Web apps
- HTML based analytics tools
- Track hits, page load times and user engagement on site
- google analytics, webvitals etc.
- Geographic location tracking
- Same for APIs - response times etc.
- Tools that can used with nginx/apache or api gateways
- Standalone? As opposed to Google Analytics?
| | Michael Bobak |
| | 2 |
|
Yes | Hands-on Machine Learning Study Materials (Beginner to Intermediate Levels) for Research Software Engineers | | | |
| Focus Group: Hands-on Machine Learning Study Materials for Research Software Engineers Sandeep Puthanveetil Satheesan
| 2 |
|
| Best Practices with AirFlow |
| | |
| Focus Group TBD |
|
|
| Best Practices with React |
|
| Chen Wang |
| Focus Group TBD |
|
|
| Functional programming for scientific applications | - What makes a programming language functional?
- Scientific code and equational reasoning
- Immutability and correctness
- Higher order functions
- Algorithmic skeletons
- Lessons for code maintainability
| | |
| Round Table TBD Focus group TBD |
|
|
Yes
| Pragmatics of computational reproducibility in scientific applications | - What is reproducibility?
- Conceptual models
- The effect of the software stack
- Architectural concerns
- Software design practices
- Can reproducibility become a design concern?
| | |
|
|
|
|
| Go Programming Language (hackaton/hands on?) | - Basic Introduction
- When should we use it
- How to scale
- Pros and Cons
| Vismayak Mohanarajan |
|
|
|
|
|
| Optimizing your command line | - Highlighting (Oh-my-zsh, PowerLevel10k)
- Fuzzy search (fzf) – truly amazing.
- Auto python env activation (PyEnv and Auto-Conda)
- Delightful git integration (via fzf)
- AutoJump & Z (frequent dir access)
| |
|
| Round Table & hands-on tutorial. |
|
|
| Productivity tools and tips | - jetbrains toolbox
- git clients
- git workflows
- pomodoro
- task tracking
- outlook viva insights
- Trello
| |
|
|
|
|
|
| Automate deployment of tools | - NCSA templates for dockerfiles, webapps,
- helm charts, docker compose
| |
|
|
|
|
|
Yes | Machine learning in practice | Tips and tricks: - Easy-to-remember when to use different types of ML.
- My checklist when taking on an ML project (normalizing, feature engineering, checkpointing)
- Intro to modern ML ops tools like WandB.ai and ModelFlow (used on Radiant).
| | Michael Bobak |
| |
|
|
| Learning a new programming language. | - Where to look for prospective candidates?
- What criteria use during the selection?
- How to maximze the likelihood of betting on the future "winner"?
| | Michael Bobak |
| Round Table TBD |
|
|