Difference between revisions of "CNM Tech Board 2023-12-28"
(→Lab to optimize) |
|||
(47 intermediate revisions by 2 users not shown) | |||
Line 4: | Line 4: | ||
==Critical priority== | ==Critical priority== | ||
All of "old" businesses are related to launch of [[iDosvid]] in Kenya in order to make [[iDosvid pitch]] real. | All of "old" businesses are related to launch of [[iDosvid]] in Kenya in order to make [[iDosvid pitch]] real. | ||
+ | |||
+ | ===Costs to save=== | ||
+ | :* '''Task''' (critical): To save current operational costs of running [[Opplet]] and new project costs. | ||
+ | :* '''Situation''': Kevin proposed forming a Finance Board or Financial Oversight Committee that would table, say, any new purchase or payment for discussion and expected returns from this investment, budgeting, identifying cost-saving opportunities, and any other matter that involves purchase and payment. Gary feels like those tasks can be done within the existing board. Kevin submitted the following,<blockquote><p>''Proposed cost saving plan'' (Kevin); I propose the implementation of an enhanced contractual system aimed at optimizing cost savings. This entails transitioning to a more stringent pay-per-project model, wherein contractors will be remunerated in full only upon successful completion of the documented scope of work or the agreed-upon outcome. In instances where challenges persist, compensation will be proportionally determined based on the work accomplished, potentially at half the initially agreed amount or a lesser figure. Should a project stall due to documentation needs or hindrances from our end, the contractor will be compensated proportionately for completed work, capped at no more than half of the agreed amount. Upon project resumption following obstacle clearance, the contractor will be re-engaged to conclude the work and receive the remaining balance.</p><p>Recognizing the need for proactive involvement, both Natalia and I will take a hands-on approach. As a financial advisor, I will actively participate in onboarding meetings with new contractors to effectively communicate the revised compensation terms. Simultaneously, Natalia will break down projects into milestones, establishing a transparent framework for determining proportionate compensation based on the pre-determined amount should a contractor be unable to complete the project.</p><p>Anticipating the submission of payment requests by contractors, a meticulous review process will be implemented by either Natalia or me. This review will assess the alignment of completed work with the requested amount. Subsequent to the evaluation, payments will either be approved or declined. In the case of a declined payment, clear reasons will be communicated, and the contractor will be guided to submit a revised request that aligns proportionately with the completed work.</p></blockquote> | ||
+ | :* '''Action decisions''': | ||
+ | :*# Kevin will suggest the action plan for cost savings, including a policy for new project hires and cost review for current operations. | ||
+ | ::Current operation cost saving plan; In conversation with Natalia to determine the infrastructure that we can cut to save costs. | ||
===Elementor to retire=== | ===Elementor to retire=== | ||
Line 9: | Line 16: | ||
:* '''Situation''': In order to save costs, we would like to retire [[Elementor]] that we barely use. Our primary websites that deploy ''Elementor'' are https://vebka.theeconomicgroup.com/ and https://scheje.com/ . The current subscriptions expire in April of 2024. | :* '''Situation''': In order to save costs, we would like to retire [[Elementor]] that we barely use. Our primary websites that deploy ''Elementor'' are https://vebka.theeconomicgroup.com/ and https://scheje.com/ . The current subscriptions expire in April of 2024. | ||
:* '''Action decisions''': | :* '''Action decisions''': | ||
− | :*# Gary will move the movable contents to other [[ | + | :*# Gary will move the movable contents to other [[Educaship WordPress]] instances. |
:*# Gary will assess whether we need to hire any contractors to move the unmovable parts. | :*# Gary will assess whether we need to hire any contractors to move the unmovable parts. | ||
===Farms to review=== | ===Farms to review=== | ||
:* '''Task''' (critical): To review [[Opplet Infrastructure]] in order to suggest optimization paths before each of the farms would be optimized further. | :* '''Task''' (critical): To review [[Opplet Infrastructure]] in order to suggest optimization paths before each of the farms would be optimized further. | ||
− | :* '''Situation''': We have been developing [[CNM Farms]] for many years, but have never really optimized it. Over the years, we generated many [[DNS record]]s that are no longer in use and just generate security vulnerabilities. We also created a few resources that require payments, but no longer produce any value. | + | :* '''Situation''': We have been developing [[CNM Farms]] for many years, but have never really optimized it. Over the years, we generated many [[DNS record]]s that are no longer in use and just generate security vulnerabilities. We also created a few resources that require payments, but no longer produce any value. Natalia summarized actual resources to compare against the expenses. At this time, Gary believes that: |
+ | :** Every of "infrastructure" wikage -- [[Bureau Infrastructure]], [[Lab Infrastructure]], [[Campus Infrastructure]], and [[Fed Infrastructure]] -- shall have its description of rented resources, the current expense report, and [[business need]]s with regards to the rented resources. Gary has already published the expense reports. | ||
+ | :** Every of "farm" wikage -- [[CNM Bureau Farm]], [[CNM Lab Farm]], and [[CNM Campus Farm]], -- shall have its software description, [[DNS record]]s, [[web server]] files, and [[business need]]s with regards to the farms. | ||
:* '''Action decisions''': | :* '''Action decisions''': | ||
− | + | :*# Gary is copying [[DNS record]]s to analyze; the analytic report will be published on [[Opplet DNS]] page. | |
− | :*# Gary | ||
:*# Natalia will copy [[web server]] files to analyze. | :*# Natalia will copy [[web server]] files to analyze. | ||
:*# We will move [[Fed Infrastructure]] into [[Bureau Infrastructure]] | :*# We will move [[Fed Infrastructure]] into [[Bureau Infrastructure]] | ||
Line 24: | Line 32: | ||
===GitLab to collaborate=== | ===GitLab to collaborate=== | ||
:* '''Task''' (critical): To create the single platform for technology collaborations | :* '''Task''' (critical): To create the single platform for technology collaborations | ||
− | :* '''Situation:''' Over the last years, unstructured onboarding of new technology contractors and collaboration of existing developers significantly slowed the development. Plus, we use no specialized tool to report bugs and issues, while relying on emails mostly. A couple of years ago, Natalia and Gary used Redmine, but later decided to switch to [[ | + | :* '''Situation:''' Over the last years, unstructured onboarding of new technology contractors and collaboration of existing developers significantly slowed the development. Plus, we use no specialized tool to report bugs and issues, while relying on emails mostly. A couple of years ago, Natalia and Gary used Redmine, but later decided to switch to [[Educaship GitLab]]. [[GitLab]] features software repository and, therefore, allows for file upload and version control; we don't plan to get rid of that software. The discussion is about its extension. [[GitLab]] features its own modules such as GitLab Issues (to manage and track tasks, bugs, and other project-related activities) and GitLab Boards (to visualize and manage our project tasks in a board format), as well as several integrations with standalone [[project management software]] such as Taiga or [[Redmine]]. |
:* '''Action decisions:''' | :* '''Action decisions:''' | ||
:*# Natalia will evaluate the alternatives and report her findings. | :*# Natalia will evaluate the alternatives and report her findings. | ||
===HumHub to cultivate=== | ===HumHub to cultivate=== | ||
− | :* '''Task''' (critical): To deliver [[ | + | :* '''Task''' (critical): To deliver [[Educaship HumHub]] as the primary tool for initial engagement with the students. |
− | :* '''Situation''': Traditionally, a pair of [[ | + | :* '''Situation''': Traditionally, a pair of [[Educaship Moodle]] and [[Educaship MediaWiki]] was used for initial engagement with the students. However, both of those tools lack social interaction, particularly, in meeting organizing. [[Educaship HumHub]] looks like a way better tool. For [[CNMCyber Event-Driven Projects]] practice specifically, we have added the "Meetings" module. Kevin planned to suggest the action plan, but he lacks power-user permissions. |
:* '''Action decisions''': | :* '''Action decisions''': | ||
:*# Natalia will grant [[power-user]] permissions to Kevin | :*# Natalia will grant [[power-user]] permissions to Kevin | ||
− | :*# Natalia will create an experimental [[HumHub]] instance on [[CNM Lab Farm]] and grant Kevin [[administrator-level]] permissions, so he can experiment without worrying about [[ | + | :*# Natalia will create an experimental [[HumHub]] instance on [[CNM Lab Farm]] and grant Kevin [[administrator-level]] permissions, so he can experiment without worrying about [[CNMCyber.com]] |
:*# Kevin will review the issues and propose the action plan. | :*# Kevin will review the issues and propose the action plan. | ||
+ | |||
+ | :* '''Action''': | ||
+ | :*#Kevin has been given power-user permission, this allowed him to tidy up non-English spaces on [[HumHub]]. | ||
+ | :*#The subsequent action involves setting up an experimental [[HumHub]] instance on [[CNM Lab Farm]] to explore and experiment with additional modules available within the [[HumHub]] platform. | ||
===Recording to improve=== | ===Recording to improve=== | ||
:* '''Task''' (critical): To make recording tools available to the students | :* '''Task''' (critical): To make recording tools available to the students | ||
− | :* '''Situation''': We have been trying to find a safe way of meeting recording for a while. Initially, we recorded [[ | + | :* '''Situation''': We have been trying to find a safe way of meeting recording for a while. Initially, we recorded [[Educaship Jitsi]] sessions using own device software and, later, published it. That way came with multiple drawbacks such as (a) it depends on the recording person's connectivity. If the recording person is disconnected, the recording is interrupted; (b) it consumes the recording person's data transfer, which can be costly; (c) it depends on the recording person's device and makes impossible to record the sessions using smartphones for instance. While trying to record the sessions via [[VM]]s on [[CNM Lab Farm]], we encountered two issues: (1) the recordings had some interruptions and (2) VMs went into sleeping modes. To make the newly-developed recording practical, we plan to use it for meetings of [[CNM Technology Board]]. |
:* '''Action decisions''': | :* '''Action decisions''': | ||
:*# Kevin will review the issues and propose the action plan. | :*# Kevin will review the issues and propose the action plan. | ||
+ | :* '''Challenges faced''': | ||
+ | :*#Virtual machine enters sleep mode, requiring Natalia's activation upon request. | ||
+ | :*#Virtual machine lag observed during operation. | ||
+ | :*#Initiating recording on Vokoscreen caused Kevin to be disconnected. | ||
+ | * '''Proposed Solutions''': | ||
+ | :*#Optimize virtual machine resources: Allocate sufficient CPU and memory resources to the virtual machine to reduce lag during recording | ||
+ | :*#Update Vokoscreen | ||
+ | :*#Natalia to configure the virtual machine settings to ensure it remains in an always-active state. | ||
+ | :*#Get an expert's opinion. | ||
+ | :*#Try out streaming on YouTube | ||
+ | :*#Research VM optimization information on YouTube | ||
===Revenue to plan=== | ===Revenue to plan=== | ||
:* '''Task''' (critical): To identify the ways for revenue generation | :* '''Task''' (critical): To identify the ways for revenue generation | ||
:* '''Situation''': Budget limitations have been slowing the development for a while. Although financing is not a technology issue, our technology shall be oriented on sales. For now, we build full-scope vocational orientation services, which will take at least a year to build and another year to sell. They are too big to be sold fast. The simpler the product, the faster the sales. Besides the products themselves, we also need (a) marketing to bring customers aboard for which we can particularly use [[CNMCyber Meetup]] group, (b) website and events to educate customers, and (c) payment option and assisting folks to charge and serve. With regards to those products, we may explore: | :* '''Situation''': Budget limitations have been slowing the development for a while. Although financing is not a technology issue, our technology shall be oriented on sales. For now, we build full-scope vocational orientation services, which will take at least a year to build and another year to sell. They are too big to be sold fast. The simpler the product, the faster the sales. Besides the products themselves, we also need (a) marketing to bring customers aboard for which we can particularly use [[CNMCyber Meetup]] group, (b) website and events to educate customers, and (c) payment option and assisting folks to charge and serve. With regards to those products, we may explore: | ||
− | :* | + | :** Short hands-on training sessions via [[#Training to offer]]. |
− | :* | + | :** Paid career days, other derivatives from [[Educaship pitch]] offerings, and add-ons such as paid certificates. For instance, emphasizing that students fulfilling program requirements will receive a notification of completion and, in turn, have the opportunity to obtain a certificate by paying a designated fee. Derivatives may include trips to Africa and other countries. |
− | :* | + | :** Career counseling and other services. More ideas are expressed in [[Talk:The Economic Group]]. |
:* '''Action decisions''': | :* '''Action decisions''': | ||
:*# Kevin will review the issues and propose the action plan. | :*# Kevin will review the issues and propose the action plan. | ||
+ | :* ''' Proposed Action''': | ||
+ | :To align with the shared vision of Kevin and Gary regarding the cooperation between iDosvid and offering A.I. trainings, Kevin proposes a plan that involves a strategic schedule and collaboration where: | ||
+ | :*#Monday to Thursday: Kevin focuses on iDosvid endeavors. | ||
+ | :*#Friday and Saturday: Kevin and Gary collaborate to discuss A.I. training matters. | ||
− | === | + | ===Sandboxes to MVP=== |
:* '''Task''' (critical): To define MVP of sandboxes that shall emulate workplaces for the students. | :* '''Task''' (critical): To define MVP of sandboxes that shall emulate workplaces for the students. | ||
:* '''Situation''': We have developed a range of technologies that we can offer our students for practice. However, we don't know at this moment what we shall offer initially and, therefore, what we are missing. Gary developed an initial draft on the [[Educaship pitch]] wikipage, but this draft needs reviews. | :* '''Situation''': We have developed a range of technologies that we can offer our students for practice. However, we don't know at this moment what we shall offer initially and, therefore, what we are missing. Gary developed an initial draft on the [[Educaship pitch]] wikipage, but this draft needs reviews. | ||
Line 59: | Line 86: | ||
:*# If we bring a school tech lady aboard via [[#Community to pivot]], she may review Natalia's draft. | :*# If we bring a school tech lady aboard via [[#Community to pivot]], she may review Natalia's draft. | ||
:*# Based on the latest draft, we will decide the scope of the sandbox MVP. | :*# Based on the latest draft, we will decide the scope of the sandbox MVP. | ||
+ | :* '''Emerged Problems''': | ||
+ | :*#Kevin reviewed the book stack but faced challenges in creating a space, a book, or a page. | ||
+ | :*#Natalia will provide additional guidance to address the difficulties Kevin encountered. | ||
===Wiki to public=== | ===Wiki to public=== | ||
− | :* '''Task''' (critical): To move public contents from [[ | + | :* '''Task''' (critical): To move public contents from [[Educaship MediaWiki]]. |
− | :* '''Situation:''' [[ | + | :* '''Situation:''' [[Educaship MediaWiki]] no longer satisfies us because of its (a) lack of [[Educaship LDAP]] integration, so new students cannot access the wiki, and (b) weak mobile-friendly design. We assessed several [[wiki engine]]s and are ready to make decisions. |
:* '''Action decisions:''' | :* '''Action decisions:''' | ||
− | :*# | + | :*# Kevin will lead the project undertaken to use [[CNMCyber.com]]/[[Educaship HumHub]]'s wiki as our primary vehicle to deliver public contents. |
:*# We shall keep [[XWiki]] in mind for its possible applications to our development and/or advanced training. | :*# We shall keep [[XWiki]] in mind for its possible applications to our development and/or advanced training. | ||
:*# We shall keep [[Wiki.js]] in mind for its possible applications to our website development training. | :*# We shall keep [[Wiki.js]] in mind for its possible applications to our website development training. | ||
:*# We shall use [[BookStack]] as our marketing vehicle for [[EmployableU Concepts]]. | :*# We shall use [[BookStack]] as our marketing vehicle for [[EmployableU Concepts]]. | ||
− | :*# We shall continue deploying [[ | + | :*# We shall continue deploying [[Educaship MediaWiki]] as our legacy system. |
:*# If we build demonstrations for wiki engines, we may utilize [[BlueSpice]]. | :*# If we build demonstrations for wiki engines, we may utilize [[BlueSpice]]. | ||
+ | :* '''Action:''' | ||
+ | :*#Kevin initiated this initiative by incorporating the current wiki page into the [[Educaship HumHub]]'s wiki as the initial step. | ||
===WordPress to populate=== | ===WordPress to populate=== | ||
:* '''Task''' (critical): To position our services on the market. | :* '''Task''' (critical): To position our services on the market. | ||
− | :* '''Situation''': We are getting closer to our MVP, so we can start positioning our services on the market. This may help attract both potential customers and staffers. Natalia set up several [[ | + | :* '''Situation''': We are getting closer to our MVP, so we can start positioning our services on the market. This may help attract both potential customers and staffers. Natalia set up several [[Educaship WordPress]] instances. |
:* '''Action decisions''': | :* '''Action decisions''': | ||
:*# Gary will start populating those instances that Natalia has set up. | :*# Gary will start populating those instances that Natalia has set up. | ||
Line 82: | Line 114: | ||
===Bureau to optimize=== | ===Bureau to optimize=== | ||
:* '''Task''' (critical, but having dependencies to be resolved): To optimize [[Bureau Infrastructure]] | :* '''Task''' (critical, but having dependencies to be resolved): To optimize [[Bureau Infrastructure]] | ||
− | :* '''Situation''': [[CNM Bureau Farm]] is the newest farm within [[Opplet Infrastructure]]. It features a cluster that is built on the top of three [[bare-metal server]]s using [[ProxmoxVE]]. Initially, we plan to use this cluster to host [[ | + | :* '''Situation''': [[CNM Bureau Farm]] is the newest farm within [[Opplet Infrastructure]]. It features a cluster that is built on the top of three [[bare-metal server]]s using [[ProxmoxVE]]. Initially, we plan to use this cluster to host [[CNMCyber.com]], [[CNM Corp]], and [[CNM Talk]]. However, the [[CNM Talk]] instance is not yet performing as desired. We may consider optimizing it or moving it to another farm. Our competencies are not enough to continue and we need to bring external experts. Equally importantly, launching full-scale production on the "Bureau Farm" may allow for transfer of [[Opplet.net]] and, in the future, [[WSO2 IS]] to this farm. |
− | :* '''Action decisions''': Until we complete [[#Farms to review]], the project | + | :* '''Action decisions''': Until we complete [[#Farms to review]], we postpone the project. |
===Campus to optimize=== | ===Campus to optimize=== | ||
:* '''Task''' (critical, but having dependencies to be resolved): To optimize [[Campus Infrastructure]] | :* '''Task''' (critical, but having dependencies to be resolved): To optimize [[Campus Infrastructure]] | ||
:* '''Situation''': [[CNM Campus Farm]] is the "oldest" farm within [[Opplet Infrastructure]]. It features a cluster that should be built on the top of three [[virtual private server]]s ([[virtual private server|VPS]]es) using [[HAProxy]]. Right now, the instances are standalone and not installed in a cluster. We believe that we have acquired sufficient expertise and should be able to complete this farm assembly. | :* '''Situation''': [[CNM Campus Farm]] is the "oldest" farm within [[Opplet Infrastructure]]. It features a cluster that should be built on the top of three [[virtual private server]]s ([[virtual private server|VPS]]es) using [[HAProxy]]. Right now, the instances are standalone and not installed in a cluster. We believe that we have acquired sufficient expertise and should be able to complete this farm assembly. | ||
− | :* '''Action decisions''': Until we complete [[#Farms to review]], the project | + | :* '''Action decisions''': Until we complete [[#Farms to review]], we postpone the project. |
===Community to pivot=== | ===Community to pivot=== | ||
:* '''Task''' (critical, but having dependencies to be resolved): To align meetings of [[CNMCyber Community Board]] with [[Educaship pitch]] | :* '''Task''' (critical, but having dependencies to be resolved): To align meetings of [[CNMCyber Community Board]] with [[Educaship pitch]] | ||
:* '''Situation''': Although we postponed the meetings in early October, Gary continued working on [[Educaship pitch]] and [[CNMCyber Event-Driven Projects]], which now can no longer be considered drafts, but rather MVPs. However, the meetings can be a good vehicle to connect with a school teacher. | :* '''Situation''': Although we postponed the meetings in early October, Gary continued working on [[Educaship pitch]] and [[CNMCyber Event-Driven Projects]], which now can no longer be considered drafts, but rather MVPs. However, the meetings can be a good vehicle to connect with a school teacher. | ||
− | :* '''Action decisions''': Until we need to bring a school teacher aboard via [[# | + | :* '''Action decisions''': Until we need to bring a school teacher aboard via [[#Tech prototype to MVP]], we postpone the project. |
===Lab to optimize=== | ===Lab to optimize=== | ||
:* '''Task''' (critical, but having dependencies to be resolved): To optimize [[Lab Infrastructure]] | :* '''Task''' (critical, but having dependencies to be resolved): To optimize [[Lab Infrastructure]] | ||
− | :* '''Situation''': [[CNM Lab Farm]] is a legacy [[CNM Bureau Farm]] before it was clustered. When the cluster was created, its non-clustered node was called "Lab Farm". By their definition, clusters require more resources; the "Lab Farm" shouldn't host any critical instances. | + | :* '''Situation''': [[CNM Lab Farm]] is a legacy [[CNM Bureau Farm]] before it was clustered. When the cluster was created, its non-clustered node was called "Lab Farm". By their definition, clusters require more resources; the "Lab Farm" shouldn't host any critical instances. It is vital to state that a big number of [[virtual machine]]s ([[virtual machine|VM]]s) would require [[#VMs to automate]] some day. |
− | :* '''Action decisions''': Until we complete [[#Farms to review]], the project | + | :* '''Action decisions''': Until we complete [[#Farms to review]], we postpone the project. |
===Training to offer=== | ===Training to offer=== | ||
Line 106: | Line 138: | ||
:*# ''Built by someone else, but delivered by us''. Recently, [[artificial intelligence]] ([[artificial intelligence|AI]]) also gains its grounds and many people are interested in obtaining some background. We are discussing opportunities to use partners' content and practices to introduce ''AI'' in our markets. In addition, a few software developers make their content available for learning. For instance, these are [[Odoo]]'s resources -- https://www.odoo.com/slides/all/ . We can further augment those resources with our practical tasks. | :*# ''Built by someone else, but delivered by us''. Recently, [[artificial intelligence]] ([[artificial intelligence|AI]]) also gains its grounds and many people are interested in obtaining some background. We are discussing opportunities to use partners' content and practices to introduce ''AI'' in our markets. In addition, a few software developers make their content available for learning. For instance, these are [[Odoo]]'s resources -- https://www.odoo.com/slides/all/ . We can further augment those resources with our practical tasks. | ||
:*# ''Built and delivered by partners''. Traditionally, we teamed up with partners to offer preparation for credential exams in [[PMP]], [[ITIL]], and so on. Especially, we are interested in those who were accredited by credentialing authorities. | :*# ''Built and delivered by partners''. Traditionally, we teamed up with partners to offer preparation for credential exams in [[PMP]], [[ITIL]], and so on. Especially, we are interested in those who were accredited by credentialing authorities. | ||
− | :* '''Action decisions''': Until [[#Revenue to plan]] tasks are resolved, the project | + | :* '''Action decisions''': Until [[#Revenue to plan]] tasks are resolved, we postpone the project. |
==Non-critical priority== | ==Non-critical priority== | ||
Line 113: | Line 145: | ||
:* '''Task''' (non-critical): To document clusters of [[Opplet]] | :* '''Task''' (non-critical): To document clusters of [[Opplet]] | ||
:* '''Situation''': During 2023, we have rebuilt [[CNM Bureau Farm]] and [[CNM Campus Farm]] into clusters. Their optimization undergoes under the [[#Farms to optimize]] project. However, they also need to be documented, particularly because the students will need that documentation during their operational practice. | :* '''Situation''': During 2023, we have rebuilt [[CNM Bureau Farm]] and [[CNM Campus Farm]] into clusters. Their optimization undergoes under the [[#Farms to optimize]] project. However, they also need to be documented, particularly because the students will need that documentation during their operational practice. | ||
− | :* '''Action decisions''': Until [[#Farms to optimize]] tasks are resolved, the project | + | :* '''Action decisions''': Until [[#Farms to optimize]] tasks are resolved, we postpone the project. |
===Committee to advise=== | ===Committee to advise=== | ||
:* '''Task''' (non-critical): To build our expertise in work with youth, as well as with high schools and other youth organizations | :* '''Task''' (non-critical): To build our expertise in work with youth, as well as with high schools and other youth organizations | ||
:* '''Situation''': Our expertise in work with youth and youth organizations is limited. To attract experts, we would like to create a body, either an organization or a group. At the same time, those experts shall be advocates for smoothing of school-to-work transitions, so a working name for that body is [[International Council for Vocational Orientation]]. | :* '''Situation''': Our expertise in work with youth and youth organizations is limited. To attract experts, we would like to create a body, either an organization or a group. At the same time, those experts shall be advocates for smoothing of school-to-work transitions, so a working name for that body is [[International Council for Vocational Orientation]]. | ||
− | :* '''Action decisions''': Until [[#Critical priority]] tasks are resolved, the project | + | :* '''Action decisions''': Until [[#Critical priority]] tasks are resolved, we postpone the project. |
===Email fields to hide=== | ===Email fields to hide=== | ||
:* '''Task''' (non-critical): To hide email fields from the registration, while offering to submit emails voluntarily through [[Opplet.net]] | :* '''Task''' (non-critical): To hide email fields from the registration, while offering to submit emails voluntarily through [[Opplet.net]] | ||
:* '''Situation''': Historically, email fields in the [[Opplet.net]] registration confuse the applicants. We plan to alternate the model; however, no developer is available at the moment. Gary wrote the initial code, which later was re-written by Sergey Zlomovsky. Then, Roman F. moved the code into the [[Yii]] framework. Gary failed to find Sergey. Natalia contacted Roman, but his original interest didn't fruit a solution. Now, we will look for new freelancers. | :* '''Situation''': Historically, email fields in the [[Opplet.net]] registration confuse the applicants. We plan to alternate the model; however, no developer is available at the moment. Gary wrote the initial code, which later was re-written by Sergey Zlomovsky. Then, Roman F. moved the code into the [[Yii]] framework. Gary failed to find Sergey. Natalia contacted Roman, but his original interest didn't fruit a solution. Now, we will look for new freelancers. | ||
− | :* '''Action decisions''': Until [[#Critical priority]] tasks are resolved, the project | + | :* '''Action decisions''': Until [[#Critical priority]] tasks are resolved, we postpone the project. |
===Help desks to create=== | ===Help desks to create=== | ||
:* '''Task''' (non-critical): To create help desks | :* '''Task''' (non-critical): To create help desks | ||
− | :* '''Situation''': Kevin raised an issue of help desks. Indeed, our customers and staffers need to have direct channels of bug reporting and troubleshooting. One, technical help desk should be delivered via the [[#GitLab to collaborate]] project; Natalia will serve it. For non-technical help desk, we plan to use a module of [[ | + | :* '''Situation''': Kevin raised an issue of help desks. Indeed, our customers and staffers need to have direct channels of bug reporting and troubleshooting. One, technical help desk should be delivered via the [[#GitLab to collaborate]] project; Natalia will serve it. For non-technical help desk, we plan to use a module of [[Educaship Odoo]]. |
− | :* '''Action decisions''': Until [[#Critical priority]] tasks are resolved, the project | + | :* '''Action decisions''': Until [[#Critical priority]] tasks are resolved, we postpone the project. |
===Odoo to explore=== | ===Odoo to explore=== | ||
− | :* '''Task''' (non-critical): To deliver [[ | + | :* '''Task''' (non-critical): To deliver [[Educaship Odoo]] as the primary tool for advanced engagement with the volunteers, staffers, and whomever are engaged with the enterprise. |
:* '''Situation''': As of December 2023, we don't deploy any [[ERP]] or another software that makes a company a company. For instance, our staffer candidates haven't applied for a job via the company's website, the staffers don't use the company's email and don't report work hours. Furthermore, we will not be able to function when we get to sales and accounting. | :* '''Situation''': As of December 2023, we don't deploy any [[ERP]] or another software that makes a company a company. For instance, our staffer candidates haven't applied for a job via the company's website, the staffers don't use the company's email and don't report work hours. Furthermore, we will not be able to function when we get to sales and accounting. | ||
− | :* '''Action decisions''': Until [[#Critical priority]] tasks are resolved, the project | + | :* '''Action decisions''': Until [[#Critical priority]] tasks are resolved, we postpone the project. |
==No priority backlog== | ==No priority backlog== | ||
Line 140: | Line 172: | ||
:* '''Task''' (no priority): To move those [[web resource]]s that have higher risks of attacks to [[Cloudflare]] | :* '''Task''' (no priority): To move those [[web resource]]s that have higher risks of attacks to [[Cloudflare]] | ||
:* '''Situation''': Obviously, [[CNM Farms]] have some limitations. [[Cloudflare]] is a leading global [[content delivery network]] ([[content delivery network|CDN]]), which security features [[DDoS protection]] and [[web application firewall]] ([[web application firewall|WAF]]). | :* '''Situation''': Obviously, [[CNM Farms]] have some limitations. [[Cloudflare]] is a leading global [[content delivery network]] ([[content delivery network|CDN]]), which security features [[DDoS protection]] and [[web application firewall]] ([[web application firewall|WAF]]). | ||
− | :* '''Action decisions''': Until [[#Non-critical priority]] tasks are resolved, the project | + | :* '''Action decisions''': Until [[#Non-critical priority]] tasks are resolved, we postpone the project. |
===LDAP to upgrade=== | ===LDAP to upgrade=== | ||
− | :* '''Task''' (no priority): To upgrade [[ | + | :* '''Task''' (no priority): To upgrade [[Educaship LDAP]] |
− | :* '''Situation''': Since its deployment in 2017, [[ | + | :* '''Situation''': Since its deployment in 2017, [[Educaship LDAP]] was never revised, upgraded, nor optimized. Particularly, we missed OpenLDAP Long Term Support Release 2.5.16. |
− | :* '''Action decisions''': Until [[#Non-critical priority]] tasks are resolved, the project | + | :* '''Action decisions''': Until [[#Non-critical priority]] tasks are resolved, we postpone the project. |
===LMS to practice=== | ===LMS to practice=== | ||
:* '''Task''' (no priority): To provide the students with [[LMS]] instances to practice | :* '''Task''' (no priority): To provide the students with [[LMS]] instances to practice | ||
− | :* '''Situation''': [[ | + | :* '''Situation''': [[Educaship Moodle]] looks like well-suited for [[CNMCyber Bootcamps]]. We also plan to use [[Canvas LMS]] and/or [[OpenEdX]]. All of them shall be available on [[CNM Lab Farm]] to practice. |
− | :* '''Action decisions''': Until [[#Non-critical priority]] tasks are resolved, the project | + | :* '''Action decisions''': Until [[#Non-critical priority]] tasks are resolved, we postpone the project. |
===Meetings to live-stream=== | ===Meetings to live-stream=== | ||
:* '''Task''' (no priority): To live-stream meetings | :* '''Task''' (no priority): To live-stream meetings | ||
− | :* '''Situation''': We would like to organize [[livestreaming]] of our meetings over [[CNM Tube]] and/or [[ | + | :* '''Situation''': We would like to organize [[livestreaming]] of our meetings over [[CNM Tube]] and/or [[Educaship YouTube Channel]]. |
− | :* '''Action decisions''': Until [[#Non-critical priority]] tasks are resolved, the project | + | :* '''Action decisions''': Until [[#Non-critical priority]] tasks are resolved, we postpone the project. |
===Servers to mail=== | ===Servers to mail=== | ||
:* '''Task''' (no priority): To advance [[mail server]]s from prototypes to MVPs | :* '''Task''' (no priority): To advance [[mail server]]s from prototypes to MVPs | ||
:* '''Situation''': Natalia has set up three [[mail server]]s -- mail.opplet.net, mail.bskol.com, mail.cnmcyber.com. However, we haven't revised, optimized, or integrated them with other of our applications but [[Opplet.net]]. | :* '''Situation''': Natalia has set up three [[mail server]]s -- mail.opplet.net, mail.bskol.com, mail.cnmcyber.com. However, we haven't revised, optimized, or integrated them with other of our applications but [[Opplet.net]]. | ||
− | :* '''Action decisions''': Until [[#Non-critical priority]] tasks are resolved, the project | + | :* '''Action decisions''': Until [[#Non-critical priority]] tasks are resolved, we postpone the project. |
===PHP to review=== | ===PHP to review=== | ||
:* '''Task''' (no priority): To review [[PHP]] support at [[Opplet]] | :* '''Task''' (no priority): To review [[PHP]] support at [[Opplet]] | ||
− | :* '''Situation''': Since its deployment in 2017, [[CNM PHP]] was never revised, upgraded, nor optimized. PHP troubles emerged a few times, particularly in connection with [[ | + | :* '''Situation''': Since its deployment in 2017, [[CNM PHP]] was never revised, upgraded, nor optimized. PHP troubles emerged a few times, particularly in connection with [[Educaship MediaWiki]]. |
− | :* '''Action decisions''': Until [[#Non-critical priority]] tasks are resolved, the project | + | :* '''Action decisions''': Until [[#Non-critical priority]] tasks are resolved, we postpone the project. |
===Time to track=== | ===Time to track=== | ||
:* '''Task''' (no priority): To track time of volunteers and staffers | :* '''Task''' (no priority): To track time of volunteers and staffers | ||
:* '''Situation''': To emulate corporate work environment, we would like to track work time of volunteers and staffers, tentatively, while they are using [[virtual machine]]s ([[virtual machine|VM]]s). | :* '''Situation''': To emulate corporate work environment, we would like to track work time of volunteers and staffers, tentatively, while they are using [[virtual machine]]s ([[virtual machine|VM]]s). | ||
− | :* '''Action decisions''': Until [[#Non-critical priority]] tasks are resolved, the project | + | :* '''Action decisions''': Until [[#Non-critical priority]] tasks are resolved, we postpone the project. |
===VMs to automate=== | ===VMs to automate=== | ||
:* '''Task''' (no priority): To automate delivery of [[virtual machine]]s ([[virtual machine|VM]]s) | :* '''Task''' (no priority): To automate delivery of [[virtual machine]]s ([[virtual machine|VM]]s) | ||
:* '''Situation''': We would like to automate creation, life, and retirement of [[CNM Lab Farm]]'s [[virtual machine]]s ([[virtual machine|VM]]s), most likely, via usage of [[Ansible]], [[Pulumi]], or similar [[COTS]]. | :* '''Situation''': We would like to automate creation, life, and retirement of [[CNM Lab Farm]]'s [[virtual machine]]s ([[virtual machine|VM]]s), most likely, via usage of [[Ansible]], [[Pulumi]], or similar [[COTS]]. | ||
− | :* '''Action decisions''': Until [[#Non-critical priority]] tasks are resolved, the project | + | :* '''Action decisions''': Until [[#Non-critical priority]] tasks are resolved, we postpone the project. |
===VPN and proxy=== | ===VPN and proxy=== | ||
:* '''Task''' (solved): To deploy [[VPN]] and [[Shadowsocks]] in [[Opplet]] | :* '''Task''' (solved): To deploy [[VPN]] and [[Shadowsocks]] in [[Opplet]] | ||
:* '''Situation''': Gary was going to a country with restricted Internet. Natalia successfully deployed [[OpenVPN]] and [[Shadowsocks]], which is the secure split proxy that is loosely based on [[SOCKS5]] and works with [[Outline VPN]]. This article -- https://www.howtogeek.com/802198/vpn-alternatives-what-can-you-use-besides-a-vpn/ -- prompted to explore [[Shadowsocks]]. The initial testing of [[OpenVPN]] showed that, at one place, it was blocked. Natalia changed the port and the block was lifted. Both worked amazingly well in the target country. Now, Gary proposes to consider deploying [[VPN]] and [[Shadowsocks]] as production instances in [[Opplet]]. | :* '''Situation''': Gary was going to a country with restricted Internet. Natalia successfully deployed [[OpenVPN]] and [[Shadowsocks]], which is the secure split proxy that is loosely based on [[SOCKS5]] and works with [[Outline VPN]]. This article -- https://www.howtogeek.com/802198/vpn-alternatives-what-can-you-use-besides-a-vpn/ -- prompted to explore [[Shadowsocks]]. The initial testing of [[OpenVPN]] showed that, at one place, it was blocked. Natalia changed the port and the block was lifted. Both worked amazingly well in the target country. Now, Gary proposes to consider deploying [[VPN]] and [[Shadowsocks]] as production instances in [[Opplet]]. | ||
− | :* '''Action decisions''': Until [[#Non-critical priority]] tasks are resolved, the project | + | :* '''Action decisions''': Until [[#Non-critical priority]] tasks are resolved, we postpone the project. |
===WSO2 IS=== | ===WSO2 IS=== | ||
:* '''Task''' (no priority): To augment [[Opplet.net]]'s [[identity and access management]] ([[Identity and access management|IAM]]) with [[WSO2 IS]] | :* '''Task''' (no priority): To augment [[Opplet.net]]'s [[identity and access management]] ([[Identity and access management|IAM]]) with [[WSO2 IS]] | ||
− | :* '''Situation''': When [[Opplet.net]] was initially deployed, it used [[simpleSAMLphp]], which allowed for [[single sign-on]] ([[single sign-on|SSO]]). However, [[SAML]] came with many limitations and itself was outdated protocol. In 2017, [[simpleSAMLphp]] was substituted with [[OpenLDAP]], which has many advantages, but no longer allows for [[SSO]]. Then, we decided to augment [[Opplet.net]]'s [[identity and access management]] ([[Identity and access management|IAM]]) with [[WSO2 IS]]. Natalia installed [[WSO2 IS]] on the [[CNM Lab Farm]] and plugged it into [[Opplet]]. She also plugged in our instances of [[ | + | :* '''Situation''': When [[Opplet.net]] was initially deployed, it used [[simpleSAMLphp]], which allowed for [[single sign-on]] ([[single sign-on|SSO]]). However, [[SAML]] came with many limitations and itself was outdated protocol. In 2017, [[simpleSAMLphp]] was substituted with [[OpenLDAP]], which has many advantages, but no longer allows for [[SSO]]. Then, we decided to augment [[Opplet.net]]'s [[identity and access management]] ([[Identity and access management|IAM]]) with [[WSO2 IS]]. Natalia installed [[WSO2 IS]] on the [[CNM Lab Farm]] and plugged it into [[Opplet]]. She also plugged in our instances of [[Educaship WordPress]], but need someone else's expertise in order to plug in the other applications. |
− | :* '''Action decisions''': Until [[#Non-critical priority]] tasks are resolved, the project | + | :* '''Action decisions''': Until [[#Non-critical priority]] tasks are resolved, we postpone the project. |
[[Category:CNM Tech Board Meetings]] | [[Category:CNM Tech Board Meetings]] |
Latest revision as of 16:02, 6 June 2024
CNM Tech Board 2023-12-28 is the meeting of CNM Technology Board that occurred on December 28th, 2023. The predecessor meeting is CNM Tech Board 2023-12-21; the successor meeting is CNM Tech Board 2024-01-04.
Critical priority
All of "old" businesses are related to launch of iDosvid in Kenya in order to make iDosvid pitch real.
Costs to save
- Task (critical): To save current operational costs of running Opplet and new project costs.
- Situation: Kevin proposed forming a Finance Board or Financial Oversight Committee that would table, say, any new purchase or payment for discussion and expected returns from this investment, budgeting, identifying cost-saving opportunities, and any other matter that involves purchase and payment. Gary feels like those tasks can be done within the existing board. Kevin submitted the following,
Proposed cost saving plan (Kevin); I propose the implementation of an enhanced contractual system aimed at optimizing cost savings. This entails transitioning to a more stringent pay-per-project model, wherein contractors will be remunerated in full only upon successful completion of the documented scope of work or the agreed-upon outcome. In instances where challenges persist, compensation will be proportionally determined based on the work accomplished, potentially at half the initially agreed amount or a lesser figure. Should a project stall due to documentation needs or hindrances from our end, the contractor will be compensated proportionately for completed work, capped at no more than half of the agreed amount. Upon project resumption following obstacle clearance, the contractor will be re-engaged to conclude the work and receive the remaining balance.
Recognizing the need for proactive involvement, both Natalia and I will take a hands-on approach. As a financial advisor, I will actively participate in onboarding meetings with new contractors to effectively communicate the revised compensation terms. Simultaneously, Natalia will break down projects into milestones, establishing a transparent framework for determining proportionate compensation based on the pre-determined amount should a contractor be unable to complete the project.
Anticipating the submission of payment requests by contractors, a meticulous review process will be implemented by either Natalia or me. This review will assess the alignment of completed work with the requested amount. Subsequent to the evaluation, payments will either be approved or declined. In the case of a declined payment, clear reasons will be communicated, and the contractor will be guided to submit a revised request that aligns proportionately with the completed work.
- Action decisions:
- Kevin will suggest the action plan for cost savings, including a policy for new project hires and cost review for current operations.
- Current operation cost saving plan; In conversation with Natalia to determine the infrastructure that we can cut to save costs.
Elementor to retire
- Task (critical): To retire Elementor by April 2024
- Situation: In order to save costs, we would like to retire Elementor that we barely use. Our primary websites that deploy Elementor are https://vebka.theeconomicgroup.com/ and https://scheje.com/ . The current subscriptions expire in April of 2024.
- Action decisions:
- Gary will move the movable contents to other Educaship WordPress instances.
- Gary will assess whether we need to hire any contractors to move the unmovable parts.
Farms to review
- Task (critical): To review Opplet Infrastructure in order to suggest optimization paths before each of the farms would be optimized further.
- Situation: We have been developing CNM Farms for many years, but have never really optimized it. Over the years, we generated many DNS records that are no longer in use and just generate security vulnerabilities. We also created a few resources that require payments, but no longer produce any value. Natalia summarized actual resources to compare against the expenses. At this time, Gary believes that:
- Every of "infrastructure" wikage -- Bureau Infrastructure, Lab Infrastructure, Campus Infrastructure, and Fed Infrastructure -- shall have its description of rented resources, the current expense report, and business needs with regards to the rented resources. Gary has already published the expense reports.
- Every of "farm" wikage -- CNM Bureau Farm, CNM Lab Farm, and CNM Campus Farm, -- shall have its software description, DNS records, web server files, and business needs with regards to the farms.
- Action decisions:
- Gary is copying DNS records to analyze; the analytic report will be published on Opplet DNS page.
- Natalia will copy web server files to analyze.
- We will move Fed Infrastructure into Bureau Infrastructure
- Kevin will suggest the action plan for cost savings
GitLab to collaborate
- Task (critical): To create the single platform for technology collaborations
- Situation: Over the last years, unstructured onboarding of new technology contractors and collaboration of existing developers significantly slowed the development. Plus, we use no specialized tool to report bugs and issues, while relying on emails mostly. A couple of years ago, Natalia and Gary used Redmine, but later decided to switch to Educaship GitLab. GitLab features software repository and, therefore, allows for file upload and version control; we don't plan to get rid of that software. The discussion is about its extension. GitLab features its own modules such as GitLab Issues (to manage and track tasks, bugs, and other project-related activities) and GitLab Boards (to visualize and manage our project tasks in a board format), as well as several integrations with standalone project management software such as Taiga or Redmine.
- Action decisions:
- Natalia will evaluate the alternatives and report her findings.
HumHub to cultivate
- Task (critical): To deliver Educaship HumHub as the primary tool for initial engagement with the students.
- Situation: Traditionally, a pair of Educaship Moodle and Educaship MediaWiki was used for initial engagement with the students. However, both of those tools lack social interaction, particularly, in meeting organizing. Educaship HumHub looks like a way better tool. For CNMCyber Event-Driven Projects practice specifically, we have added the "Meetings" module. Kevin planned to suggest the action plan, but he lacks power-user permissions.
- Action decisions:
- Natalia will grant power-user permissions to Kevin
- Natalia will create an experimental HumHub instance on CNM Lab Farm and grant Kevin administrator-level permissions, so he can experiment without worrying about CNMCyber.com
- Kevin will review the issues and propose the action plan.
- Action:
- Kevin has been given power-user permission, this allowed him to tidy up non-English spaces on HumHub.
- The subsequent action involves setting up an experimental HumHub instance on CNM Lab Farm to explore and experiment with additional modules available within the HumHub platform.
- Action:
Recording to improve
- Task (critical): To make recording tools available to the students
- Situation: We have been trying to find a safe way of meeting recording for a while. Initially, we recorded Educaship Jitsi sessions using own device software and, later, published it. That way came with multiple drawbacks such as (a) it depends on the recording person's connectivity. If the recording person is disconnected, the recording is interrupted; (b) it consumes the recording person's data transfer, which can be costly; (c) it depends on the recording person's device and makes impossible to record the sessions using smartphones for instance. While trying to record the sessions via VMs on CNM Lab Farm, we encountered two issues: (1) the recordings had some interruptions and (2) VMs went into sleeping modes. To make the newly-developed recording practical, we plan to use it for meetings of CNM Technology Board.
- Action decisions:
- Kevin will review the issues and propose the action plan.
- Challenges faced:
- Virtual machine enters sleep mode, requiring Natalia's activation upon request.
- Virtual machine lag observed during operation.
- Initiating recording on Vokoscreen caused Kevin to be disconnected.
- Proposed Solutions:
- Optimize virtual machine resources: Allocate sufficient CPU and memory resources to the virtual machine to reduce lag during recording
- Update Vokoscreen
- Natalia to configure the virtual machine settings to ensure it remains in an always-active state.
- Get an expert's opinion.
- Try out streaming on YouTube
- Research VM optimization information on YouTube
Revenue to plan
- Task (critical): To identify the ways for revenue generation
- Situation: Budget limitations have been slowing the development for a while. Although financing is not a technology issue, our technology shall be oriented on sales. For now, we build full-scope vocational orientation services, which will take at least a year to build and another year to sell. They are too big to be sold fast. The simpler the product, the faster the sales. Besides the products themselves, we also need (a) marketing to bring customers aboard for which we can particularly use CNMCyber Meetup group, (b) website and events to educate customers, and (c) payment option and assisting folks to charge and serve. With regards to those products, we may explore:
- Short hands-on training sessions via #Training to offer.
- Paid career days, other derivatives from Educaship pitch offerings, and add-ons such as paid certificates. For instance, emphasizing that students fulfilling program requirements will receive a notification of completion and, in turn, have the opportunity to obtain a certificate by paying a designated fee. Derivatives may include trips to Africa and other countries.
- Career counseling and other services. More ideas are expressed in Talk:The Economic Group.
- Action decisions:
- Kevin will review the issues and propose the action plan.
- Proposed Action:
- To align with the shared vision of Kevin and Gary regarding the cooperation between iDosvid and offering A.I. trainings, Kevin proposes a plan that involves a strategic schedule and collaboration where:
- Monday to Thursday: Kevin focuses on iDosvid endeavors.
- Friday and Saturday: Kevin and Gary collaborate to discuss A.I. training matters.
Sandboxes to MVP
- Task (critical): To define MVP of sandboxes that shall emulate workplaces for the students.
- Situation: We have developed a range of technologies that we can offer our students for practice. However, we don't know at this moment what we shall offer initially and, therefore, what we are missing. Gary developed an initial draft on the Educaship pitch wikipage, but this draft needs reviews.
- Action decisions:
- Kevin will review Gary's draft.
- Natalia will review Kevin's draft.
- If we bring a school tech lady aboard via #Community to pivot, she may review Natalia's draft.
- Based on the latest draft, we will decide the scope of the sandbox MVP.
- Emerged Problems:
- Kevin reviewed the book stack but faced challenges in creating a space, a book, or a page.
- Natalia will provide additional guidance to address the difficulties Kevin encountered.
Wiki to public
- Task (critical): To move public contents from Educaship MediaWiki.
- Situation: Educaship MediaWiki no longer satisfies us because of its (a) lack of Educaship LDAP integration, so new students cannot access the wiki, and (b) weak mobile-friendly design. We assessed several wiki engines and are ready to make decisions.
- Action decisions:
- Kevin will lead the project undertaken to use CNMCyber.com/Educaship HumHub's wiki as our primary vehicle to deliver public contents.
- We shall keep XWiki in mind for its possible applications to our development and/or advanced training.
- We shall keep Wiki.js in mind for its possible applications to our website development training.
- We shall use BookStack as our marketing vehicle for EmployableU Concepts.
- We shall continue deploying Educaship MediaWiki as our legacy system.
- If we build demonstrations for wiki engines, we may utilize BlueSpice.
- Action:
- Kevin initiated this initiative by incorporating the current wiki page into the Educaship HumHub's wiki as the initial step.
WordPress to populate
- Task (critical): To position our services on the market.
- Situation: We are getting closer to our MVP, so we can start positioning our services on the market. This may help attract both potential customers and staffers. Natalia set up several Educaship WordPress instances.
- Action decisions:
- Gary will start populating those instances that Natalia has set up.
Critical, but depended
For the purposes of this meeting, Critical, but depended refers to those endeavors that literally have #Critical priority, but which execution depends on other projects.
Bureau to optimize
- Task (critical, but having dependencies to be resolved): To optimize Bureau Infrastructure
- Situation: CNM Bureau Farm is the newest farm within Opplet Infrastructure. It features a cluster that is built on the top of three bare-metal servers using ProxmoxVE. Initially, we plan to use this cluster to host CNMCyber.com, CNM Corp, and CNM Talk. However, the CNM Talk instance is not yet performing as desired. We may consider optimizing it or moving it to another farm. Our competencies are not enough to continue and we need to bring external experts. Equally importantly, launching full-scale production on the "Bureau Farm" may allow for transfer of Opplet.net and, in the future, WSO2 IS to this farm.
- Action decisions: Until we complete #Farms to review, we postpone the project.
Campus to optimize
- Task (critical, but having dependencies to be resolved): To optimize Campus Infrastructure
- Situation: CNM Campus Farm is the "oldest" farm within Opplet Infrastructure. It features a cluster that should be built on the top of three virtual private servers (VPSes) using HAProxy. Right now, the instances are standalone and not installed in a cluster. We believe that we have acquired sufficient expertise and should be able to complete this farm assembly.
- Action decisions: Until we complete #Farms to review, we postpone the project.
Community to pivot
- Task (critical, but having dependencies to be resolved): To align meetings of CNMCyber Community Board with Educaship pitch
- Situation: Although we postponed the meetings in early October, Gary continued working on Educaship pitch and CNMCyber Event-Driven Projects, which now can no longer be considered drafts, but rather MVPs. However, the meetings can be a good vehicle to connect with a school teacher.
- Action decisions: Until we need to bring a school teacher aboard via #Tech prototype to MVP, we postpone the project.
Lab to optimize
- Task (critical, but having dependencies to be resolved): To optimize Lab Infrastructure
- Situation: CNM Lab Farm is a legacy CNM Bureau Farm before it was clustered. When the cluster was created, its non-clustered node was called "Lab Farm". By their definition, clusters require more resources; the "Lab Farm" shouldn't host any critical instances. It is vital to state that a big number of virtual machines (VMs) would require #VMs to automate some day.
- Action decisions: Until we complete #Farms to review, we postpone the project.
Training to offer
- Task (critical, but having dependencies to be resolved): To launch short-term hands-on training
- Situation: From our experience, short-term hands-on training sessions sold the fastest. "Short-term" implies anything from 90 minute sessions and up to packages of several sessions totaling 35 hours. "Hands-on" implies practical tasks during technology-based training. The training can be:
- Built and delivered by us. Particularly, it may relate to the technology that we use. Our professional groups such as CNM Proxmox Users, CNM Jitsi Users, and CNM TensorFlow Users can be instrumental.
- Built by someone else, but delivered by us. Recently, artificial intelligence (AI) also gains its grounds and many people are interested in obtaining some background. We are discussing opportunities to use partners' content and practices to introduce AI in our markets. In addition, a few software developers make their content available for learning. For instance, these are Odoo's resources -- https://www.odoo.com/slides/all/ . We can further augment those resources with our practical tasks.
- Built and delivered by partners. Traditionally, we teamed up with partners to offer preparation for credential exams in PMP, ITIL, and so on. Especially, we are interested in those who were accredited by credentialing authorities.
- Action decisions: Until #Revenue to plan tasks are resolved, we postpone the project.
Non-critical priority
Clusters to document
- Task (non-critical): To document clusters of Opplet
- Situation: During 2023, we have rebuilt CNM Bureau Farm and CNM Campus Farm into clusters. Their optimization undergoes under the #Farms to optimize project. However, they also need to be documented, particularly because the students will need that documentation during their operational practice.
- Action decisions: Until #Farms to optimize tasks are resolved, we postpone the project.
Committee to advise
- Task (non-critical): To build our expertise in work with youth, as well as with high schools and other youth organizations
- Situation: Our expertise in work with youth and youth organizations is limited. To attract experts, we would like to create a body, either an organization or a group. At the same time, those experts shall be advocates for smoothing of school-to-work transitions, so a working name for that body is International Council for Vocational Orientation.
- Action decisions: Until #Critical priority tasks are resolved, we postpone the project.
Email fields to hide
- Task (non-critical): To hide email fields from the registration, while offering to submit emails voluntarily through Opplet.net
- Situation: Historically, email fields in the Opplet.net registration confuse the applicants. We plan to alternate the model; however, no developer is available at the moment. Gary wrote the initial code, which later was re-written by Sergey Zlomovsky. Then, Roman F. moved the code into the Yii framework. Gary failed to find Sergey. Natalia contacted Roman, but his original interest didn't fruit a solution. Now, we will look for new freelancers.
- Action decisions: Until #Critical priority tasks are resolved, we postpone the project.
Help desks to create
- Task (non-critical): To create help desks
- Situation: Kevin raised an issue of help desks. Indeed, our customers and staffers need to have direct channels of bug reporting and troubleshooting. One, technical help desk should be delivered via the #GitLab to collaborate project; Natalia will serve it. For non-technical help desk, we plan to use a module of Educaship Odoo.
- Action decisions: Until #Critical priority tasks are resolved, we postpone the project.
Odoo to explore
- Task (non-critical): To deliver Educaship Odoo as the primary tool for advanced engagement with the volunteers, staffers, and whomever are engaged with the enterprise.
- Situation: As of December 2023, we don't deploy any ERP or another software that makes a company a company. For instance, our staffer candidates haven't applied for a job via the company's website, the staffers don't use the company's email and don't report work hours. Furthermore, we will not be able to function when we get to sales and accounting.
- Action decisions: Until #Critical priority tasks are resolved, we postpone the project.
No priority backlog
Cloudflare to utilize
- Task (no priority): To move those web resources that have higher risks of attacks to Cloudflare
- Situation: Obviously, CNM Farms have some limitations. Cloudflare is a leading global content delivery network (CDN), which security features DDoS protection and web application firewall (WAF).
- Action decisions: Until #Non-critical priority tasks are resolved, we postpone the project.
LDAP to upgrade
- Task (no priority): To upgrade Educaship LDAP
- Situation: Since its deployment in 2017, Educaship LDAP was never revised, upgraded, nor optimized. Particularly, we missed OpenLDAP Long Term Support Release 2.5.16.
- Action decisions: Until #Non-critical priority tasks are resolved, we postpone the project.
LMS to practice
- Task (no priority): To provide the students with LMS instances to practice
- Situation: Educaship Moodle looks like well-suited for CNMCyber Bootcamps. We also plan to use Canvas LMS and/or OpenEdX. All of them shall be available on CNM Lab Farm to practice.
- Action decisions: Until #Non-critical priority tasks are resolved, we postpone the project.
Meetings to live-stream
- Task (no priority): To live-stream meetings
- Situation: We would like to organize livestreaming of our meetings over CNM Tube and/or Educaship YouTube Channel.
- Action decisions: Until #Non-critical priority tasks are resolved, we postpone the project.
Servers to mail
- Task (no priority): To advance mail servers from prototypes to MVPs
- Situation: Natalia has set up three mail servers -- mail.opplet.net, mail.bskol.com, mail.cnmcyber.com. However, we haven't revised, optimized, or integrated them with other of our applications but Opplet.net.
- Action decisions: Until #Non-critical priority tasks are resolved, we postpone the project.
PHP to review
- Task (no priority): To review PHP support at Opplet
- Situation: Since its deployment in 2017, CNM PHP was never revised, upgraded, nor optimized. PHP troubles emerged a few times, particularly in connection with Educaship MediaWiki.
- Action decisions: Until #Non-critical priority tasks are resolved, we postpone the project.
Time to track
- Task (no priority): To track time of volunteers and staffers
- Situation: To emulate corporate work environment, we would like to track work time of volunteers and staffers, tentatively, while they are using virtual machines (VMs).
- Action decisions: Until #Non-critical priority tasks are resolved, we postpone the project.
VMs to automate
- Task (no priority): To automate delivery of virtual machines (VMs)
- Situation: We would like to automate creation, life, and retirement of CNM Lab Farm's virtual machines (VMs), most likely, via usage of Ansible, Pulumi, or similar COTS.
- Action decisions: Until #Non-critical priority tasks are resolved, we postpone the project.
VPN and proxy
- Task (solved): To deploy VPN and Shadowsocks in Opplet
- Situation: Gary was going to a country with restricted Internet. Natalia successfully deployed OpenVPN and Shadowsocks, which is the secure split proxy that is loosely based on SOCKS5 and works with Outline VPN. This article -- https://www.howtogeek.com/802198/vpn-alternatives-what-can-you-use-besides-a-vpn/ -- prompted to explore Shadowsocks. The initial testing of OpenVPN showed that, at one place, it was blocked. Natalia changed the port and the block was lifted. Both worked amazingly well in the target country. Now, Gary proposes to consider deploying VPN and Shadowsocks as production instances in Opplet.
- Action decisions: Until #Non-critical priority tasks are resolved, we postpone the project.
WSO2 IS
- Task (no priority): To augment Opplet.net's identity and access management (IAM) with WSO2 IS
- Situation: When Opplet.net was initially deployed, it used simpleSAMLphp, which allowed for single sign-on (SSO). However, SAML came with many limitations and itself was outdated protocol. In 2017, simpleSAMLphp was substituted with OpenLDAP, which has many advantages, but no longer allows for SSO. Then, we decided to augment Opplet.net's identity and access management (IAM) with WSO2 IS. Natalia installed WSO2 IS on the CNM Lab Farm and plugged it into Opplet. She also plugged in our instances of Educaship WordPress, but need someone else's expertise in order to plug in the other applications.
- Action decisions: Until #Non-critical priority tasks are resolved, we postpone the project.