<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ccokeke0023</title>
    <description>The latest articles on DEV Community by ccokeke0023 (@ccokeke).</description>
    <link>https://dev.to/ccokeke</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1573182%2F55bd18d5-9ef8-443b-9030-a538cd3ffacc.jpeg</url>
      <title>DEV Community: ccokeke0023</title>
      <link>https://dev.to/ccokeke</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ccokeke"/>
    <language>en</language>
    <item>
      <title>Enhancing Manila UI: Adding Metadata Support to Share Snapshot Creation and Editing</title>
      <dc:creator>ccokeke0023</dc:creator>
      <pubDate>Mon, 22 Jul 2024 20:24:13 +0000</pubDate>
      <link>https://dev.to/ccokeke/enhancing-manila-ui-adding-metadata-support-to-share-snapshot-creation-and-editing-3m6e</link>
      <guid>https://dev.to/ccokeke/enhancing-manila-ui-adding-metadata-support-to-share-snapshot-creation-and-editing-3m6e</guid>
      <description>&lt;p&gt;To enhance the Manila UI by adding metadata support to the "Create Share Snapshot" dialog and allow for metadata editing, you need to understand and utilize the API microversions correctly. According to the REST API Version History, metadata for share snapshots was introduced in microversion 2.73. This blog post explain few steps to update the Manila UI and ensure you are using the correct microversion.&lt;/p&gt;

&lt;p&gt;Step 1: Ensure API Microversion Compatibility&lt;br&gt;
Before you start adding metadata fields to your forms, you need to make sure your code is set to use the correct API microversion (2.73 or later).&lt;/p&gt;

&lt;p&gt;In the Horizon settings or where you configure the Manila client, ensure that you are using microversion 2.73 or higher. Typically, this is done in a configuration file or directly in the API client initialization.&lt;/p&gt;

&lt;p&gt;Step 2: Adding the Metadata Textbox to the Create Snapshot Dialog&lt;br&gt;
I Updated the form used for creating share snapshots to include a metadata textbox. This form is defined in &lt;code&gt;manila_ui/dashboards/project/share_snapshots/forms.py&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Step 3: Connecting the API for Snapshot Creation&lt;br&gt;
To connect the API for creating snapshots with the new metadata field, ensure the handle method in the form processes the metadata correctly.&lt;/p&gt;

&lt;p&gt;Step 4: Implementing Metadata Editing for Share Snapshots&lt;br&gt;
To allow editing metadata for existing share snapshots, update the form and view for editing share snapshots.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Git Commands: Descriptions and Uses&lt;/strong&gt;&lt;br&gt;
  During the course of working on the task of enhancing the Manila UI, I had the opportunity to learn and use several Git commands. Below is a brief description of each command and its purpose:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;git rebase
git rebase is used to reapply commits on top of another base tip.I learnt this when I mistakenly used git commit --amend instead of using git commit then the commit message.  It is often used to keep a feature branch up to date with the latest changes in the main branch.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Uses:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Integrate changes from the main branch into a feature branch.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Clean up commit history by creating a linear sequence of commits.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;git rebase --continue&lt;br&gt;
After resolving conflicts during a rebase, git rebase --continue is used to resume the rebase process. It indicates that the conflicts have been resolved, and Git can continue applying the remaining commits.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Use:Continue the rebase process after resolving conflicts.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;git rm -rm
The command should be git rm (without the -rm). It is used to remove files from the working directory and the index (staging area). The -r option allows recursive removal, i.e., it can remove directories and their contents.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Use:Remove files or directories from the repository.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;git diff
git diff shows the differences between changes in the working directory and the index (staging area), or between different commits. It is useful for reviewing changes before committing them.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Uses:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;View changes made to files.&lt;/li&gt;
&lt;li&gt;Compare different versions of files.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;**&lt;/p&gt;

&lt;p&gt;By following these steps, you can enhance the Manila UI to include metadata support for creating and editing share snapshots. Ensure that your code uses API microversion 2.73 or later to take advantage of the metadata functionality introduced in this version. This allows users to provide and manage additional information in the form of metadata, improving the organization and management of share snapshots.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Add Filter choices to resources</title>
      <dc:creator>ccokeke0023</dc:creator>
      <pubDate>Mon, 01 Jul 2024 19:17:38 +0000</pubDate>
      <link>https://dev.to/ccokeke/add-filter-choices-to-resources-4g3a</link>
      <guid>https://dev.to/ccokeke/add-filter-choices-to-resources-4g3a</guid>
      <description>&lt;p&gt;I worked on the project Add Filter Choices to Resources as my first task, focusing on implementing filterable actions for both users and administrators. This enhancement ensures a user-friendly interface for managing Share Networks by utilizing filters and workflows.&lt;/p&gt;

&lt;p&gt;The ShareNetworksView class is central to this functionality, displaying a list of share networks using a table. It retrieves detailed data from the Manila API and applies user-defined filters to refine the results. The get_filters method enables filtering based on criteria such as name or description, making it easier to manage large sets of data.&lt;/p&gt;

&lt;p&gt;For updating share networks, the Update class provides a guided workflow that sets the necessary initial data and context for the process. Similarly, the Create class streamlines the creation of new share networks, defining the required forms and URLs.&lt;/p&gt;

&lt;p&gt;The Detail class offers an in-depth view of a specific share network, showcasing its properties and related information. It gathers additional details from the Neutron API, offering a comprehensive overview of the network’s subnets and availability zones. The get_data method further enriches the share network data with security services and share server information.&lt;/p&gt;

&lt;p&gt;Overall, this project enhances the functionality of the Horizon dashboard, making it more intuitive and efficient for managing Share Networks.&lt;/p&gt;

&lt;p&gt;The image attached here is the sample of the test.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjj8vu1nktyf6yvuypld6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjj8vu1nktyf6yvuypld6.png" alt="Image description" width="800" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Embracing Struggles: My Journey Through the Outreachy Internship</title>
      <dc:creator>ccokeke0023</dc:creator>
      <pubDate>Mon, 17 Jun 2024 07:34:41 +0000</pubDate>
      <link>https://dev.to/ccokeke/embracing-struggles-my-journey-through-the-outreachy-internship-9a7</link>
      <guid>https://dev.to/ccokeke/embracing-struggles-my-journey-through-the-outreachy-internship-9a7</guid>
      <description>&lt;p&gt;Everybody struggles in life every now and then. Struggling is a part of life. It doesn’t matter what other people think or say; it all depends on our perspectives. Our personal struggles are shaped by our unique experiences and challenges. Often, we might feel lazy or unmotivated, but struggles indicate that we need to push beyond our current limits. However, it's crucial to channel our efforts correctly because doing more of the wrong activities can lead to even greater challenges. Always remember, the struggle you face today is paving the way for a brighter tomorrow.&lt;/p&gt;

&lt;p&gt;To God be the glory, this is the third week of my internship period. When I first contributed to my project, I was incredibly nervous. I didn't have the confidence to believe I could succeed, and being a beginner only heightened my anxiety. Initially, I struggled to understand the concept of Share and Resources in Manila. Despite my nerves, one of my core values, dedication, kept me going. I refused to give up and dedicated myself to studying the project documentation and learning how everything worked. My perseverance paid off, and I found my contribution period to be fruitful. By the end of this period, I gained a lot of confidence and learned valuable skills, such as effective Googling and seeking help from my mentors and the community.&lt;/p&gt;

&lt;p&gt;During the internship, I had my first video call meeting with my mentors,Ashley, Carlos, and  Goutham. It was a wonderful experience to connect with them beyond email or chat. With their proper guidance, I successfully completed my tasks. They provided a thorough demo of the entire project and explained the concepts of Share and Resources in Manila in detail. Thanks to their support, I was able to quickly get started on my first task.&lt;/p&gt;

&lt;p&gt;Looking back, I see how my initial struggles were essential for my growth. They taught me resilience, the importance of dedication, and the value of seeking help when needed. Struggles are a universal experience; everyone faces them at different points in their lives. What matters is how we respond to them. By embracing the challenges and persevering, we can achieve great things.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>An OpenSource term I just learnt about</title>
      <dc:creator>ccokeke0023</dc:creator>
      <pubDate>Tue, 11 Jun 2024 14:54:24 +0000</pubDate>
      <link>https://dev.to/ccokeke/an-opensource-term-i-just-learnt-about-4pgp</link>
      <guid>https://dev.to/ccokeke/an-opensource-term-i-just-learnt-about-4pgp</guid>
      <description>&lt;h3&gt;
  
  
  Vocabulary Term: &lt;strong&gt;Linting&lt;/strong&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Introduction
&lt;/h4&gt;

&lt;p&gt;Before embarking on my journey with Outreachy, I came across a multitude of terms and concepts related to open source software development. One of the intriguing terms that stood out to me was &lt;strong&gt;"linting."&lt;/strong&gt; Although it might not be entirely rare in the broader programming community, it was new to me and has proven to be essential in the world of open source development.&lt;/p&gt;

&lt;h4&gt;
  
  
  What is Linting?
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Linting&lt;/strong&gt; refers to the process of running a program that analyzes code for potential errors, bugs, stylistic errors, and other problematic patterns. This automated tool, known as a &lt;strong&gt;linter&lt;/strong&gt;, reviews the source code to ensure that it adheres to certain coding standards and best practices. The primary goal of linting is to improve code quality and maintainability.&lt;/p&gt;

&lt;h4&gt;
  
  
  Origin of the Term
&lt;/h4&gt;

&lt;p&gt;The term "linting" originates from a Unix utility called &lt;strong&gt;lint&lt;/strong&gt;, which was created in 1978 to detect suspicious constructs in C language source code. The name "lint" was inspired by the small, often overlooked bits of fluff or fiber found in clothing, which can be seen as an analogy for the small, often overlooked errors in code.&lt;/p&gt;

&lt;h4&gt;
  
  
  Importance of Linting in Open Source
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consistency&lt;/strong&gt;: In open source projects, where multiple contributors work on the same codebase, consistency is crucial. Linting ensures that all contributors follow the same coding standards, making the code more readable and uniform.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Early Error Detection&lt;/strong&gt;: Linters can catch errors and potential bugs early in the development process, reducing the time spent on debugging later.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Code Quality&lt;/strong&gt;: By enforcing best practices and coding standards, linting improves the overall quality of the code, making it more robust and easier to maintain.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Learning Tool&lt;/strong&gt;: For new contributors, especially those unfamiliar with the project's coding standards, linters serve as an educational tool, guiding them to write better code.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Common Linting Tools
&lt;/h4&gt;

&lt;p&gt;Different programming languages have their own linting tools. Some popular ones include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ESLint&lt;/strong&gt;: A widely used linter for JavaScript.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pylint&lt;/strong&gt;: A linter for Python code that checks for errors and enforces a coding standard.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rubocop&lt;/strong&gt;: A Ruby linter that enforces the Ruby style guide.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ShellCheck&lt;/strong&gt;: A linter for shell scripts that detects syntax and semantic errors.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Applying Linting in My Internship
&lt;/h4&gt;

&lt;p&gt;During my Outreachy internship, I encountered linting as an integral part of the development workflow. Initially, it felt like an additional step, but I soon realized its value in maintaining high code standards. Using linters helped me write cleaner code and avoid common pitfalls, making my contributions more reliable and aligned with the project's guidelines.&lt;/p&gt;

&lt;h4&gt;
  
  
  Conclusion
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Linting&lt;/strong&gt; may not be the most glamorous term in the open source vocabulary, but it plays a pivotal role in ensuring code quality and consistency. Learning about linting and incorporating it into my development process has been a valuable experience during my Outreachy internship. It has taught me the importance of adhering to coding standards and the benefits of automated tools in maintaining a healthy codebase.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Outreachy Blog 1 - Introducing myself</title>
      <dc:creator>ccokeke0023</dc:creator>
      <pubDate>Tue, 04 Jun 2024 10:21:17 +0000</pubDate>
      <link>https://dev.to/ccokeke/outreachy-blog-1-introducing-myself-27ce</link>
      <guid>https://dev.to/ccokeke/outreachy-blog-1-introducing-myself-27ce</guid>
      <description>&lt;p&gt;Hello Everyone!&lt;/p&gt;

&lt;p&gt;Thanks in advance for your interest to read about me. Today, I would be telling you a little bit about myself and how I got selected for the Outreachy'24 Internship cohort.&lt;/p&gt;

&lt;p&gt;My name is Christian Chima Okeke, an Outreachy Intern with OpenStack Manila. I am a degree holder with B.Eng Electronic Engineering and strongly making a career switch to become a Software Engineer.I am also a trained Network Engineer.My interest are on Product Design, Frontend and Backend Development, as well as making contributions to OpenSource Projects.&lt;/p&gt;

&lt;p&gt;I got to know about Outreachy sometime last year and joined the OpenStack Manila Project. Though, I was not selected in my first and second attempt but I never stopped contributing to Manila. So, in this cohort, I am accepted to intern with OpenStack on the Project "Implement new features in the OpenStack Manila Dashboard". My mentor(s) are Goutham Pacha Ravi and Carlos da Silva and Ashley Rodriguez.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Outreachy
&lt;/h2&gt;

&lt;p&gt;Outreachy provides paid 3-month internships for OpenSource and OpenScience for the under-represented in the community. Within these 3-month internship period, interns are paid a stipend of $7,000 and work on select projects according to their skillsets. Outreachy internships run twice in the year between May to August or December to March. &lt;/p&gt;

&lt;h2&gt;
  
  
  How did I apply to Outreachy
&lt;/h2&gt;

&lt;p&gt;Last year, I applied to Outreachy but unfortunately I was not accepted. I did not relent though but kept connected to the Community which I have come to Love. I decided that the idea is to get involved and committed for a long-term to OpenSource so I used the period to hone my skills further. I also, was following the progress of interns on the twitter and community channels and by the next application, I was more prepared to apply again. Coincidentally, OpenStack Manila was selected to participate again in this cohort and I immediately jumped right in because this is the community I have come to identify with. Finally, on 3rd May, 2024, I received the good news that I have been selected to participate in this cohort. I could not contain my join and I immediately reached out to my Mentors, Goutham and Carlos da Silva who have been providing me all guides throughout the contribution phase. Indeed, I am very grateful to them both.&lt;/p&gt;

&lt;h2&gt;
  
  
  A short brief about OpenStack Manila
&lt;/h2&gt;

&lt;p&gt;The OpenStack Shared File Systems service (manila) provides coordinated access to shared or distributed file systems. The method in which the share is provisioned and consumed is determined by the Shared File Systems driver, or drivers in the case of a multi-backend configuration. There are a variety of drivers that support NFS, CIFS, HDFS, GlusterFS, CEPHFS, MAPRFS and other protocols as well.&lt;/p&gt;

&lt;p&gt;The Shared File Systems API and scheduler services typically run on the controller nodes. Depending upon the drivers used, the share service can run on controllers, compute nodes, or storage nodes.&lt;/p&gt;

&lt;h2&gt;
  
  
  My core values
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Dedication&lt;/strong&gt; - I was able to succeed as a result of my doggedness and dedication to whatever goal I set to achieve.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Curiosity&lt;/strong&gt; - I value curiosity, the desire to learn or know about what interests me drives me to achieve my goal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Growth&lt;/strong&gt; - I think investing a considerable amount of time and energy in one's personal development is needed for one's growth.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Compassion&lt;/strong&gt; - I value compassion, it drives our commitment to serve others with empathy and respect.&lt;/p&gt;

&lt;p&gt;Thanks for reading&lt;/p&gt;

</description>
      <category>outreachy</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
